Firewall 防火墻,工作在網(wǎng)絡(luò)或主機(jī)的邊緣,對(duì)進(jìn)出本網(wǎng)絡(luò)或主機(jī)的數(shù)據(jù)包根據(jù)事先設(shè)置好的規(guī)則進(jìn)行檢查并且能夠在數(shù)據(jù)包匹配到之后由預(yù)置的動(dòng)作進(jìn)行處理的組件的組合,有規(guī)則(符合條件,就有規(guī)則指定的動(dòng)作進(jìn)行處理); 主機(jī)防火墻:管理本主機(jī); 網(wǎng)絡(luò)防火墻:管理整個(gè)網(wǎng)絡(luò); 防火墻的分類: 1、包過濾型防火墻:工作在TCP/IP層,根據(jù)tcp首部或ip首部數(shù)據(jù)進(jìn)行判斷,安全性較 低,效率較高; 1、簡單包過濾; 2、帶狀態(tài)檢測的包過濾; 1)NEW狀態(tài);-建立連接; 2)ESTABLISHED狀態(tài);-建立連接并傳輸數(shù)據(jù); 3)INVALID狀態(tài)(無法識(shí)別的狀態(tài)); 4)RELATED(相關(guān)聯(lián)的狀態(tài)); 2、應(yīng)用層網(wǎng)關(guān)防火墻:工作在應(yīng)用層,根據(jù)數(shù)據(jù)包傳輸?shù)膶?shí)際數(shù)據(jù)進(jìn)行判斷,安全性較高,效率較低; 防火墻工作在內(nèi)核空間,需要在內(nèi)核空間開口子去定義規(guī)則(只有管理員可以定義規(guī)則,命令是否正確等),在內(nèi)核上開的口子稱為Netfilter(網(wǎng)絡(luò)過濾器); 地址轉(zhuǎn)換功能:NAT 網(wǎng)絡(luò)地址轉(zhuǎn)換; 1)SNAT 源網(wǎng)絡(luò)地址轉(zhuǎn)換;在POSTROUTING上做轉(zhuǎn)換; 連接跟蹤; 2)DNAT目標(biāo)地址轉(zhuǎn)換;在PREROUTING上做轉(zhuǎn)換; mangle 數(shù)據(jù)包每經(jīng)過一次路由減1然后將ip首部打開修改TTL值加1,讓訪問用戶不知 道有防火墻; raw----沒多做解釋; filter過濾在INPUT,OUTPUT和FORWARD接口上; nat地址轉(zhuǎn)換在PREROUTING,POSTROUTING,OUTPUT接口上; mangle撕裂在PREROUTING,INPUT,F(xiàn)ORWARD,OUTPUT,POSTROUTING接口上; raw在PREOUTING和OUTPUT接口上; 優(yōu)先級(jí)排序:raw--->mangle--->nat--->filter iptables命令用法: iptables [-t TABLE] COMMAND CHAIN [creteria] -j ACTION -t {raw|mangle|nat|filter},默認(rèn)filter COMMAND的分類: 規(guī)則管理類: -A 追加到最后一條(append); -I # 插入第幾條(insert); -D # 表示刪除第幾條(delete); -R # 表示替換某條規(guī)則; 鏈接管理類: -F 清空(flush)鏈中規(guī)則,加鏈表示清空某條鏈; -N 新建鏈(new),可以用-j跳轉(zhuǎn)到這個(gè)鏈上; -X 刪除自己定義的空鏈; -E 重命名(rename); 默認(rèn)策略: -P (policy); 清空計(jì)數(shù)器: -Z (zero); 每條規(guī)則(包括默認(rèn)策略)都有兩個(gè)計(jì)算器; 1)被此規(guī)則匹配到的所有數(shù)據(jù)包的個(gè)數(shù); 2)被此規(guī)則匹配到的所有數(shù)據(jù)包的大小之和; 查看類: -L (list)列表的格式顯示; -L的子選項(xiàng):-n (以純數(shù)字的格式顯示numeric); -v 詳細(xì)的信息(verbose),-vv或-vvv更詳細(xì); -x 顯示精確信息不做單位換算(exactly); --line-numbers 規(guī)則顯示行號(hào); 匹配條件creteria: 基本匹配: -s SOURCE:(IP,NETWORK)或加!表示取反(例:! -s NETWORK);(可以省略表示多有主機(jī)) -d DESTIONIP(目標(biāo)地址); -p {tcp|udp|icmp}; -i INTERFACE 表示從哪個(gè)網(wǎng)卡流進(jìn)來;(僅用于INPUT,FORWARD,POSTROUTING) -o INTERFACE 表示從哪個(gè)網(wǎng)卡流出去;(僅用于OUTPUT,FORWARD,PRETROUTING) 擴(kuò)展匹配:指的是調(diào)用iptables的模塊,以便擴(kuò)展iptables的匹配功能; 隱含擴(kuò)展 -p tcp --sport PORT --dport PORT --tcp-flags 檢查tcp的標(biāo)志位; 只檢查ACK,SYN,RST,FIN SYN的簡寫--syn -p udp --sport PORT --dport PORT -p icmp --icmp-type ping命令的TYPE: echo-request請(qǐng)求用8代替; www.jb51.net echo-reply 回應(yīng)用0代替; 3----自己查看TCP/IP詳解書; 顯示擴(kuò)展(必須用-m指定檢測狀態(tài)); -m state --state 檢測狀態(tài) -m multiport這個(gè)模塊匹配一組源或目標(biāo)端口,可以指定多達(dá)15個(gè)端口; --source-ports 22,53,80 --destination-ports 22,53,80 --ports 22,53,80 -m iprange(指定ip范圍) --src-range ip-ip --dst-range ip-ip -m connlimit(并發(fā)連接限定) --connlimit-above # (超過#個(gè)) -m limit --limit rate 限定速率; --limit-burst number 限定峰值; -m string 字符串匹配; --algo bm|kmp(算法); --string “STRING” -m time 時(shí)間限制; --timestart value(10:00); --timestop value --days lsitofday --datestart date --datestop date -j ACTION(ACTION的選項(xiàng)); ACCEPT 允許; DROP 拒絕(悄悄的丟棄); REJECT 拒絕(直接拒絕); SNAT 源地址轉(zhuǎn)換; DNAT 目標(biāo)地址轉(zhuǎn)換; REDIRECT 重定向端口; RETURN 返回INPUT鏈; 如何開放FTP服務(wù): 主動(dòng)模式下: tcp 20(數(shù)據(jù)),21(命令); 被動(dòng)模式下: tcp 21,>1023的端口; 上述需要將RELATED(相關(guān)聯(lián)的狀態(tài))打開; modprobe ip_nat_ftp lsmod | grep tcp redhat中iptables的腳本文件為/etc/rc.d/init.d/iptables service iptables start 啟用保存的規(guī)則; service iptables stop 清空鏈; /etc/sysconfig/iptables 保存規(guī)則的文件; /etc/sysconfig/iptables-config 向iptables腳本提供配置文件的文件; 將規(guī)則保存到配置文件中的方法: 1)service iptables save 將規(guī)則保存到配置文件中的命令; 2)iptables-save > /etc/sysconfig/iptables-test (將生效的規(guī)則保存至自己指定文件中); iptables-restore < /etc/sysconfig/iptables-test (從另外自己指定的規(guī)則文件啟用規(guī)則); 地址轉(zhuǎn)換: 源地址轉(zhuǎn)換: -j SNAT --to-source 192.168.100.1 指定源地址轉(zhuǎn)換成其它地址; -j MASQUERADE(地址偽裝,比SNAT占用更多的資源,當(dāng)ADSL撥號(hào)上網(wǎng)做轉(zhuǎn)換時(shí)比較常用); 目標(biāo)地址轉(zhuǎn)換:一般要限定協(xié)議和端口; -j DNAT --to-destination 192.168.100.2 PNAT端口轉(zhuǎn)換: -j DNAT --to-destination 192.168.100.2[:port]請(qǐng)求的和轉(zhuǎn)發(fā)的相同可省略,不相 同不省略; -j LOG 轉(zhuǎn)發(fā)日志; --log-prefix “DNAT for web”可以與-m limit --limit 3/minute --limit-burst 3合用; 利用iptables的recent模塊來抵御DOS攻擊;(以拒絕服務(wù)的方式實(shí)現(xiàn),很有限) -m recent --set --name SSH --update --seconds 300 --hitcount 3 利用iptables的recent模塊來抵御DOS攻擊示例; ssh: 遠(yuǎn)程連接, iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP 1.利用connlimit模塊將單IP的并發(fā)設(shè)置為3,會(huì)誤殺使用NAT上網(wǎng)的用戶,可以根據(jù)實(shí)際情況增大該值; 2.利用recent和state模塊限制單IP在300s內(nèi)只能與本機(jī)建立3個(gè)新連接,被限制一分鐘后即可恢復(fù)訪問; 下面對(duì)最后兩句做一個(gè)說明: 1.第一句是記錄訪問tcp 22端口的新連接,記錄名稱為SSH; --set 記錄數(shù)據(jù)包的來源IP,如果IP已經(jīng)存在將更新已經(jīng)存在的條目; 2.第三句是指SSH記錄中的IP,300s內(nèi)發(fā)起超過3次連接則拒絕此IP的連接; --update 是指每次建立連接都更新列表; --seconds必須與--rcheck或者--update同時(shí)使用; --hitcount必須與--rcheck或者--update同時(shí)使用; 3.iptables的記錄:/proc/net/ipt_recent/SSH 摘自 凌駕于linux之上博客 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長網(wǎng)微信