『壹』 網路安全干貨知識分享 - Kali Linux滲透測試 106 離線密碼破解
前言
最近整理了一些 奇安信&華為大佬 的課件資料+大廠面試課題,想要的可以私信自取, 無償贈送 給粉絲朋友~
1. 密碼破解簡介
1. 思路
目標系統實施了強安全措施
安裝了所有補丁
無任何已知漏洞
無應用層漏洞
攻擊面最小化
社會 工程學
獲取目標系統用戶身份
非授權用戶不受信,認證用戶可以訪問守信資源
已知用戶賬號許可權首先,需要提權
不會觸發系統報警
2. 身份認證方法
證明你是你聲稱你是的那個人
你知道什麼(賬號密碼、pin、passphrase)
你有什麼(令牌、token、key、證書、密寶、手機)
你是誰(指紋、視網膜、虹膜、掌紋、聲紋、面部識別)
以上方法結合使用
基於互聯網的身份驗證仍以賬號密碼為主要形式
3. 密碼破解方法
人工猜解
垃圾桶工具
被動信息收集
基於字典暴力破解(主流)
鍵盤空間字元爆破
字典
保存有用戶名和密碼的文本文件
/usr/share/wordlist
/usr/share/wfuzz/wordlist
/usr/share/seclists
4. 字典
1. 簡介
鍵盤空間字元爆破
全鍵盤空間字元
部分鍵盤空間字元(基於規則)
數字、小寫字母、大寫字元、符號、空格、瑞典字元、高位 ASCII 碼
2. crunch 創建密碼字典
無重復字元
crunch 1 1 -p 1234567890 | more
1
必須是最後一個參數
最大、最小字元長度失效,但必須存在
與 -s 參數不兼容(-s 指定起始字元串)
crunch 4 4 0123456789 -s 9990
讀取文件中每行內容作為基本字元生成字典
crunch 1 1 -q read.txt
1
字典組成規則
crunch 6 6 -t @,%%^^ | more
-t:按位進行生成密碼字典
@:小寫字母 lalpha
,:大寫字母 ualpha
%:數字 numeric
^:符號 symbols
輸出文件壓縮
root@kali:~# crunch 4 5 -p dog cat bird
1
-z:指定壓縮格式
其他壓縮格式:gzip、bzip2、lzma
7z壓縮比率最大
指定字元集
root@kali:~# crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o w.txt -t @d@@ -s cdab
1
隨機組合
root@kali:~# crunch 4 5 -p dog cat bird
1
crunch 5 5 abc DEF + !@# -t ,@^%,
在小寫字元中使用abc范圍,大寫字元使用 DEF 范圍,數字使用佔位符,符號使用!@#
佔位符
轉義符(空格、符號)
佔位符
root@kali:~# crunch 5 5 -t ddd%% -p dog cat bird
1
任何不同於 -p 參數指定的值都是佔位符
指定特例
root@kali:~# crunch 5 5 -d 2@ -t @@@%%
1
2@:不超過兩個連續相同字元
組合應用
crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
crunch 10 10 12345 –stdout | airolib-ng testdb -import passwd -
3. CUPP 按個人信息生成其專屬的密碼字典
CUPP:Common User Password Profiler
git clone https://github.com/Mebus/cupp.git
python cupp.py -i
4. cewl 通過收集網站信息生成字典
cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
-m:最小單詞長度
-d:爬網深度
-e:收集包含email地址信息
-c:每個單詞出現次數
支持基本、摘要 身份認證
支持代理
5. 用戶密碼變型
基於 cewl 的結果進行密碼變型
末尾增加數字串
字母大小寫變化
字母與符號互相轉換
字母與數字互相轉換
P@$w0rd
6. 使用 John the Ripper 配置文件實現密碼動態變型
2. 在線密碼破解
1. hydra
簡介
密碼破解
Windows 密碼破解
Linux 密碼破解
其他服務密碼破解
圖形化界面
xhydra
HTTP表單身份認證
密碼破解效率
密碼復雜度(字典命中率)
帶寬、協議、伺服器性能、客戶端性能
鎖定閾值
單位時間最大登陸請求次數
Hydra 的缺點
穩定性差,程序時常崩潰
速度控制不好,容易觸發服務屏蔽或鎖死機制
每主機新建進程,每服務新建實例
大量目標破解時性能差
2. pw-inspector
Hydra 小工具 pw-inspector
按長度和字元集篩選字典
pw-inspector -i /usr/share/wordlists/nmap.lst -o p1.lst -l
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u -m 3 -M 5
3. mesa
Mesa 的特點
穩定性好
速度控製得當
基於線程
支持模塊少於hydra(不支持RDP)
WEB-Form 支持存在缺陷
查看支持的模塊
參數
-n:非默認埠
-s:使用SSL連接
-T:並發主機數
mesa -M ftp -q
3. 離線密碼破解
1. 簡介
身份認證
禁止明文傳輸密碼
每次認證使用HASH演算法加密密碼傳輸(HASH演算法加密容易、解密困難)
伺服器端用戶資料庫應加鹽加密保存
破解思路
嗅探獲取密碼HASH
利用漏洞登陸伺服器並從用戶資料庫獲取密碼HASH
識別HASH類型
長度、字元集
利用離線破解工具碰撞密碼HASH
優勢
離線不會觸發密碼鎖定機制
不會產生大量登陸失敗日誌引起管理員注意
2. HASH 識別工具
1. hash-identifier
進行 hash 計算
結果:
進行 hash 識別
2. hashid
可能識別錯誤或無法識別
3. HASH 密碼獲取
1. sammp2
Windows HASH 獲取工具
利用漏洞:Pwmp、fgmp、 mimikatz、wce
物理接觸:sammp2
將待攻擊主機關機
使用 Kali ISO 在線啟動此主機
發現此 windows 機器安裝有兩塊硬碟
mount /dev/sda1 /mnt
將硬碟掛載
cd /mnt/Windows/System32/config
切換目錄
sammp2 SYSTEM SAM -o sam.hash
導出密碼
利用 nc 傳輸 HASH
HASH 值:
2. syskey 工具進行密碼加密
使用 syskey 進行加密(會對 SAM 資料庫進行加密)
重啟需要輸入密碼才能進一步登錄
使用 kali iso live
獲取到 hash 值
hashcat 很難破解
使用 bkhive 破解
使用 Bootkey 利用RC4演算法加密 SAM 資料庫
Bootkey 保存於 SYSTEM 文件中
bkhive
從 SYSTEM 文件中提取 bootkey
Kali 2.0 拋棄了 bkhive
編譯安裝 :http://http.us.debian.org/debian/pool/main/b/bkhive/
在windows的 kali live 模式下,運行
sammp2 SAM key (版本已更新,不再支持此功能)
建議使用 Kali 1.x
1. Hashcat
簡介
開源多線程密碼破解工具
支持80多種加密演算法破解
基於CPU的計算能力破解
六種模式 (-a 0)
0 Straight:字典破解
1 Combination:將字典中密碼進行組合(1 2 > 11 22 12 21)
2 Toggle case:嘗試字典中所有密碼的大小寫字母組合
3 Brute force:指定字元集(或全部字元集)所有組合
4 Permutation:字典中密碼的全部字元置換組合(12 21)
5 Table-lookup:程序為字典中所有密碼自動生成掩碼
命令
hashcat -b
hashcat -m 100 hash.txt pass.lst
hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d
結果:hashcat.pot
hashcat -m 100 -a 3 hash -i –increment-min 6 –increment-max 8 ?l?l?l?l?l?l?l?l
掩碼動態生成字典
使用
生成文件
計算 hash 類型
結果 MD5
查看 MD5 代表的值
進行破解
2. oclhashcat
簡介
號稱世界上最快、唯一的基於GPGPU的密碼破解軟體
免費開源、支持多平台、支持分布式、150+hash演算法
硬體支持
虛擬機中無法使用
支持 CUDA 技術的Nvidia顯卡
支持 OpenCL 技術的AMD顯卡
安裝相應的驅動
限制
最大密碼長度 55 字元
使用Unicode的最大密碼長度 27 字元
關於版本
oclHashcat-plus、oclHashcat-lite 已經合並為 oclhashcat
命令
3. RainbowCrack
簡介
基於時間記憶權衡技術生成彩虹表
提前計算密碼的HASH值,通過比對HASH值破解密碼
計算HASH的速度很慢,修改版支持CUDA GPU
https://www.freerainbowtables.com/en/download/
彩虹表
密碼明文、HASH值、HASH演算法、字元集、明文長度范圍
KALI 中包含的 RainbowCrack 工具
rtgen:預計算,生成彩虹表,時的階段
rtsort:對 rtgen 生成的彩虹錶行排序
rcrack:查找彩虹表破解密碼
以上命令必須順序使用
rtgen
LanMan、NTLM、MD2、MD4、MD5、SHA1、SHA256、RIPEMD160
rtgen md5 loweralpha 1 5 0 10000 10000 0
計算彩虹表時間可能很長
下載彩虹表
http://www.freerainbowtables.com/en/tables/
http://rainbowtables.shmoo.com/
彩虹表排序
/usr/share/rainbowcrack
rtsort /md5_loweralpha#1-5_0_1000x1000_0.rt
密碼破解
r crack *.rt -h
rcrack *.rt -l hash.txt
4. John
簡介
基於 CPU
支持眾多服務應用的加密破解
支持某些對稱加密演算法破解
模式
Wordlist:基於規則的字典破解
Single crack:默認被首先執行,使用Login/GECOS信息嘗試破解
Incremental:所有或指定字元集的暴力破解
External:需要在主配配文件中用C語言子集編程
默認破解模式
Single、wordlist、incremental
主配置文件中指定默認wordlist
破解Linux系統賬號密碼
破解windows密碼
Johnny 圖形化界面的john
5. ophcrack
簡介
基於彩虹表的LM、NTLM密碼破解軟體
彩虹表:http://ophcrack.sourceforge.net/tables.php
『貳』 linux網路安全是什麼
Linux網路安全的大概學習內容要掌握這么多吧:網路服務:
.網路概述、 TCP/IP 基礎 .Linux 下基本網路配置與管理 .Dhcp 伺服器的原理、配置與管理 .DNS 伺服器的原理、配置與管理 .Linux 與 Windows 互聯技術 samba 伺服器的配置與管理 .Unix/Linux 經典文件服務 nfs 伺服器的配置與管理 .Vsftp 伺服器的原理、配置與管理 .Xinetd 超級守護進程服務原理、配置與管理 .WWW 伺服器原理、配置與管理
安全管理:
.本機安全 .文件系統的安全 .網路伺服器的安全策(dns,dhcp,apache,vsftp,nfs 等) .Linux 網路防火牆的搭建 iptables .配置安全的透明代理伺服器iptables+squid .安裝配置 OpenSSH 伺服器 .Linux 網路環境下的 VPN 構建 .Linux 下的網路掃描和嗅探 nmap sniffer .Linux 下的網路流量監控 cati .Linux 系統日誌服務管理 syslog
會了以上的那些,估計網路安全方面就沒問題了。
『叄』 如何學習網路安全知識
首先,必須(時刻)意識到你是在學習一門可以說是最難的課程,是網路專業領域的頂尖課程,不是什麼人、隨隨便便就能學好的。不然,大家都是黑客,也就沒有黑客和網路安全的概念了。
很多朋友抱著學一門課程、讀好一本書就可以掌握網路安全的知識和技能。不幸的是,網路安全技術決不是幾本書、幾個月就可以速成的。你需要參考大量的參考書。
另一方面,在學校接受的傳統教育觀念使我們習慣由老師來指定教材、參考書。遺憾的是走向了社會,走到工作崗位,沒有人給你指定解決這個安全問題需要什麼參考書,你得自己研究,自己解決問題。
網路安全涉及的知識面廣、術語多、理論知識多。正給學習這門課程帶來很多困難。也需要我們投入比其它課程多的時間和精力來學習它。
概括來說,網路安全課程的主要內容包括:
l 安全基本知識
l 應用加密學
l 協議層安全
l Windows安全(攻擊與防禦)
l Unix/Linux安全(攻擊與防禦)
l 防火牆技術
l 入侵監測系統
l 審計和日誌分析
下面分別對每部分知識介紹相應的具體內容和一些參考書(正像前面提到的那樣,有時間、有條件的話,這些書都應該看至少一遍)。
一、安全基本知識
這部分的學習過程相對容易些,可以花相對較少的時間來完成。這部分的內容包括:安全的概念和定義、常見的安全標准等。
大部分關於網路安全基礎的書籍都會有這部分內容的介紹。
下面推薦一些和這部分有關的參考書:
l 《CIW:安全專家全息教程》 魏巍 等譯,電子工業出版社
l 《計算機系統安全》 曹天傑,高等教育出版社
l 《計算機網路安全導論》 龔儉,東南大學出版社
二、應用加密學
加密學是現代計算機(網路)安全的基礎,沒有加密技術,任何網路安全都是一紙空談。
加密技術的應用決不簡單地停留在對數據的加密、解密上。密碼學除了可以實現數據保密性外、它還可以完成數據完整性校驗、用戶身份認證、數字簽名等功能。
以加密學為基礎的PKI(公鑰基礎設施)是信息安全基礎設施的一個重要組成部分,是一種普遍適用的網路安全基礎設施。授權管理基礎設施、可信時間戳服務系統、安全保密管理系統、統一的安全電子政務平台等的構築都離不開它的支持。
可以說,加密學的應用貫穿了整個網路安全的學習過程中。因為之前大多數人沒有接觸過在這方面的內容,這是個弱項、軟肋,所以需要花費比其它部分更多的時間和精力來學習。也需要參考更多的參考書。
下面推薦一些和這部分有關的參考書:
l 《密碼學》 宋震,萬水出版社
l 《密碼工程實踐指南》 馮登國 等譯,清華大學出版社
l 《秘密學導引》 吳世忠 等譯,機械工業(這本書內容較深,不必完全閱讀,可作為參考)
三、協議層安全
系統學習TCP/IP方面的知識有很多原因。要適當地實施防火牆過濾,安全管理員必須對於TCP/IP的IP層和TCP/UDP層有很深的理解、黑客經常使用TCP/IP堆棧中一部分區或來破壞網路安全等。所以你也必須清楚地了解這些內容。
協議層安全主要涉及和TCP/IP分層模型有關的內容,包括常見協議的工作原理和特點、缺陷、保護或替代措施等等。
下面推薦一些和這部分有關的參考書(經典書籍、不可不看):
l 《TCP/IP詳解 卷1:協議》 范建華 等譯,機械工業出版社
l 《用TCP/IP進行網際互聯 第一卷原理、協議與結構》 林瑤 等譯,電子工業出版社
四、Windows安全(攻擊與防禦)
因為微軟的Windows NT操作系統已被廣泛應用,所以它們更容易成為被攻擊的目標。
對於Windows安全的學習,其實就是對Windows系統攻擊與防禦技術的學習。而Windows系統安全的學習內容將包括:用戶和組、文件系統、策略、系統默認值、審計以及操作系統本身的漏洞的研究。
這部分的參考書較多,實際上任何一本和Windows攻防有關系的書均可。下面推薦一些和這部分有關的參考書:
l 《黑客攻防實戰入門》 鄧吉,電子工業出版社
l 《黑客大曝光》 楊繼張 等譯,清華大學出版社
l 《狙擊黑客》 宋震 等譯,電子工業出版社
五、Unix/Linux安全(攻擊與防禦)
隨著Linux的市佔率越來越高,Linux系統、伺服器也被部署得越來越廣泛。Unix/Linux系統的安全問題也越來越凸現出來。作為一個網路安全工作者,Linux安全絕對佔有網路安全一半的重要性。但是相對Windows系統,普通用戶接觸到Linux系統的機會不多。Unix/Linux系統本身的學習也是他們必須餓補的一課!
下面是推薦的一套Linux系統管理的參考書。
l 《Red Hat Linux 9桌面應用》 梁如軍,機械工業出版社(和網路安全關系不大,可作為參考)
l 《Red Hat Linux 9系統管理》 金潔珩,機械工業出版社
l 《Red Hat Linux 9網路服務》 梁如軍,機械工業出版社
除了Unix/Linux系統管理相關的參考書外,這里還給出兩本和安全相關的書籍。
l 《Red Hat Linux安全與優化》 鄧少鵾,萬水出版社
l 《Unix 黑客大曝光》 王一川 譯,清華大學出版社
六、防火牆技術
防火牆技術是網路安全中的重要元素,是外網與內網進行通信時的一道屏障,一個哨崗。除了應該深刻理解防火牆技術的種類、工作原理之外,作為一個網路安全的管理人員還應該熟悉各種常見的防火牆的配置、維護。
至少應該了解以下防火牆的簡單配置。
l 常見的各種個人防火牆軟體的使用
l 基於ACL的包過濾防火牆配置(如基於Windows的IPSec配置、基於Cisco路由器的ACL配置等)
l 基於Linux操作系統的防火牆配置(Ipchains/Iptables)
l ISA配置
l Cisco PIX配置
l Check Point防火牆配置
l 基於Windows、Unix、Cisco路由器的VPN配置
下面推薦一些和這部分有關的參考書:
l 《
網路安全與防火牆技術
》 楚狂,人民郵電出版社
l 《Linux防火牆》
余青霓
譯,人民郵電出版社
l 《高級防火牆ISA Server 2000》 李靜安,中國鐵道出版社
l 《Cisco訪問表配置指南》 前導工作室 譯,機械工業出版社
l 《Check Point NG安全管理》
王東霞
譯,機械工業出版社
l 《虛擬專用網(VPN)精解》 王達,清華大學出版社
七、入侵監測系統(IDS)
防火牆不能對所有應用層的數據包進行分析,會成為網路數據通訊的瓶頸。既便是代理型防火牆也不能檢查所有應用層的數據包。
入侵檢測是防火牆的合理補充,它通過收集、分析計算機系統、計算機網路介質上的各種有用信息幫助系統管理員發現攻擊並進行響應。可以說入侵檢測是防火牆之後的第二道安全閘門,在不影響網路性能的情況下能對網路進行監測,從而提供對內部攻擊、外部攻擊和誤操作的實時保護。
『肆』 怎樣規劃linux網路安全學習路線
防火牆的原理
防火牆的作用
主要作用:過濾兩個網路之間的數據包
INERNET------fire wall------server------LAN
Linux內核的Netfilter
Linux內核空間和應用程序空間是不一樣的
內核空間是受保護的,任何進出伺服器的數據包都要經過內核處理
所有發送給本地的數據包都要經過INPUT
任何從本機產生的數據包發送給其它人都要經過OUTPUT
一個數據從本機路由轉發,目標不是自己,是發給別人的將從FORWARD經過
INPUT/OUTPUT保護的是本機FORWARD保護的是區域網用戶
包過濾原理
一個數據包要經過本地的路由,要判斷怎麼走,ROUTING是非常重要的,它決定了要怎麼走
如果一個包和我本地網卡地址一樣,本地可以收到,進入INPUT,否則FORWARD
如果一個包是本地產生的,發出去的經過OUTPUT
包過濾就是在這三個地方設置條件,設置障礙,阻止或通過數據包,及設置包的處理方式
包的處理方式
iptable -A INPUT -p icmp -j DROP
包的處理方式常見的有目標(Target) 丟棄(DROP) 接受(ACCEPT) (彈回)REJECT 日誌(LOG)等
iptables命令
iptables -A INPUT -p icmp -j DROP 增加一個過濾規則
ping 192.168.0.101
iptables -L -n查看過濾規則
iptables -F清空過濾規則
iptables --help | more
iptables -L -n –line-number
增加一條規則把拒絕所有訪問21埠的數據包
iptables -A INPUT -p tcp -d 192.168.0.101 --dport 21 -j DROP
iptables -F修改的時候要把防火牆的門全部關起來 然後一個一個埠打開
iptables -L -n –line-numbers
假設我們一個伺服器只開啟一個http
那麼我們要開啟http/ssh(遠程管理)
所有的http 埠grep http /etc/services
打開ssh grep ssh /etc/services
iptables -A INPUT -p tcp -d 192.168.0.101 --dport 22 -j ACCEPT 接收進來,目標IP是本地IP,目標埠是22
iptables -A OUTPUT -p tcp -s 192.168.0.101 --sport 22 -j ACCEPT 發送出去,源IP是本地IP,源埠是22
iptables -L -n
iptables -P INPUT DROP改變防火牆的默認策略為DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -p tcp -d 192.168.0.101 --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.0.101 --sport 80 -j ACCEPT
iptables -L -n
iptables -L -n --line-numbers
netstat -tnl 就算本地開啟了很多服務,但只有22和80埠可以被訪問到
service iptables save保存當前的設置或用iptables-save > /etc/sysconfig/iptables
對於作何一個伺服器來說都少不了DNS解析請求,自己作為客戶機
grep domain /etc/services 搜索域名服務的埠號
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT DNS解析回應,目標埠是53
iptables -A INPUT -p udp --sport 53 -j ACCEPT 請求DNS解析,源埠是53
檢查客戶機DNS伺服器配置
more /etc/resolv.conf
host www.redhat.org.cn
如果這台伺服器本身也是DNS伺服器
iptables -A INPUT -p udp --dport 53 -j ACCEPT 接收來自別的機器的DNS解析請求
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT這台DNS伺服器發送DNS解析回應
iptables -D INPUT 5刪除在INPUT上的第5條規則
如果這台伺服器也要連上其它伺服器的SSH
到目前為止,在本機訪問本機的服務給忽略
在本機上,有很多服務都守護在127.0.01上,所以我們要打開本地的回環設備
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
^IN^OUT命令替換功能
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
service iptables save
現在我們注意一下22埠
Chain INPUT (policy DROP)
1 ACCEPT tcp -- 0.0.0.0/0 192.168.0.101 tcp dpt:22
Chain OUTPUT (policy DROP)
1 ACCEPT tcp -- 192.168.0.101 0.0.0.0/0 tcp spt:22
所有進來的包都要通過22埠
所有出去的包都要通過22埠,但是如果由於系統漏洞或是病毒,從22埠主動送出包出去,而不是通過請求進來的包回應的,這時就會出現比較大的問題
所以我們要增加一條規則看這個包是不是別人請求我,我回應別人的
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -D OUTPUT 1刪除第一條規則
iptables -n -L --line-numbers
Chain OUTPUT (policy DROP)
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22 state ESTABLISHED
針對80埠也是一樣
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
service iptables save
作為客戶機訪問別人的SSH也是有問題的
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT從客戶機發送出去的包,肯定被無條件接受
iptables -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT接受別人的服務
器SSH回應如果有病毒,是主動發給本客機的,就出現問題了,這時加上必須是我請求過SSH服務數據包回應的
LOG目標
iptables -A INPUT -p tcp –dport 22 -j LOG –log-level 5 –log-prefix 「IPTABLES」
編輯/etc/syslog.conf
注意:日誌級別5要跟syslog.conf中的級別一致。級別可以通過syslog的manual幫助獲得。
iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 5 --log-prefix "iptable:"
vi /etc/rsyslog.conf
kern.=notice /var/log/firewall.log
這里為什麼是notice?
man syslog查看消息的級別
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
在防火牆中我們定的級別是5,所以對應的內核是notice
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -n -L –line-number
iptables -D INPUT 8
iptables -I INPUT 6 -p tcp --dport 22 -j LOG --log-level 5 --log-prefix "iptable:"
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -D INPUT 1 把前擁同樣規則的移到日誌後面
service iptables save
tail /var/log/firewall.log -f
NAT地址轉換
http://www.netfilter.org/
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT允許本地互聯網訪問
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
光這樣還不行,還要打開內核里的轉發文件
more /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
這時只能臨時生效,若伺服器重啟,這個值又變成0
vi /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
service iptables save
此時我們還是不能用,因為區域網通過本機轉發到互聯網上,網路上的地址並不知道本地區域網的IP
所以我們要通過NAT
iptables -t nat -L -n
Netfilter的NAT表
內核空間---->PREROUTING---->ROUTING---->FORWARD---->POSTROUTING
SNAT發生在POSTROUTING
PREROUTING---->FORWARD---->POSTROUTING
destination: 11.22.33.1:22 destination: 11.22.33.1:22
source: 10.0.0.1:<port> source: 11.22.33.44:<port>
proto: tcp proto: tcp
本機地址:
eth0: 10.0.0.254
eth1: 11.22.33.44
SNAT應用
10.0.0.241 eth0:10.0.0.254 /eth1:192.168.0.254 192.168.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT –to-source 192.168.0.254
IP:10.0.0.241 getway: 10.0.0.254 subnet mask:255.255.255.0
ping 192.168.0.1若能ping通,說明訪問成功
在實際的運用中
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE支持動態的翻譯
回來時自動找到源IP
iptables -t nat -F
DNAT發生在PREROUTING
PREROUTING---->FORWARD---->POSTROUTING
destination: 11.22.33.44:22 destination: 10.0.0.1:22
source: 11.22.33.1:<port> source: 11.22.33.1:<port>
proto: tcp proto: tcp
本機地址:
eth0: 10.0.0.254
eth1: 11.22.33.44
DNAT應用
10.0.0.241 eth0:10.0.0.254 /eth1:192.168.0.254 192.168.0.1
iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1
192.168.0.1這是一台實際的伺服器,不讓訪問者10.0.0.241看到,訪問者看到只是一個防火牆
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/beauty9235/archive/2008/12/01/3423069.aspx