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