1、防火牆簡介html
一、功能:算法
1)經過源端口,源IP地址,源MAC地址,包中特定標記和目標端口,IP,MAC來肯定數據包是否能夠經過防火牆安全
2)分割內網和外網【附帶的路由器的功能】服務器
3)劃分要被保護的服務器tcp
若是Linux服務器啓用了防火牆,SELinux等的防禦措施,那麼,他的安全級別能夠達到B2[原來是C2]spa
二、防火牆分類代理
1)數據包過濾【絕大多數的防火牆】htm
分析IP地址,端口和MAC是否符合規則,若是符合,接受blog
2)代理服務器dns
三、防火牆的限制
1)防火牆不能有效防止病毒,因此防火牆對病毒攻擊基本無效,可是對木馬仍是有必定的限制做用的。
2)防火牆通常不設定對內部[服務器本機]訪問規則,因此對內部攻擊無效
【附】現當今的殺毒軟件對病毒的識別率大約在30%左右。也就是說,大部分的病毒是殺毒軟件並不認識的!
四、防火牆配置原則【交叉使用】
拒絕全部,逐個容許
容許全部,逐個拒絕
【附:】防火牆規則:誰先配置,誰先申請!
五、Linux常見防火牆
2.4/2.6內核 iptables #如今經常使用的
2.2內核 ipchains
二 、iptables防火牆
一、結構:表-------鏈--------規則
PREROUTING 和 POSTROUTING
二、表:在iptables中默認有如下三個表
filter表 數據過濾表 #filter過濾,滲透
NAT表 內網與外網地址轉換
Mangle 特殊數據包標記
三、鏈
filter表中: INPUT OUTPUT FORWARD
3、iptables基礎語法
一、規則的查看和清楚
iptables [-t表名] [選項]
選項:
-L 查看
-F 清除全部規則
-X 清除自定義鏈
-Z 清除全部鏈統計
-n 以端口和ip顯示
示例:
iptables -t nat -L #查看nat表中規則
iptables -L #查看filter表中規則,不寫表名默認查看的是filter表!
二、定義默認策略
iptables -t 表名 -P 鏈名 ACCEPT|DROP #-P(大) 定義默認策略
實例:
iptables -t filter -P INPUT DROP
注意:不要把本身踢出服務器,因此這條規則應該最後設定。
三、限定IP和網卡接口設置
iptables [-AI 鏈] [-io 網卡接口] [-p 協議] [-s 源IP] [-d 目標ip] -j 動做
說明:
-A 追加鏈規則 #在鏈規則最後加入此規則
-I INPUT 2 #把此規則插入到INPUT鏈,變成第二條規則
-D 鏈 條數 #刪除指定鏈的指定條數防火牆
示例:
iptables -D INPUT 2 #刪除input鏈上的第二條規則
-i eth0 #指定進入接口,要在INPUT鏈上定義
-o eth0 #指定傳出接口,要在OUTPUT鏈上定義
-p 協議 #[tcp/udp/icmp/all]
-j 動做 #[ACCEPT|DROP]
實例:
iptables -A INPUT -i lo -j ACCEPT
容許本機迴環網卡通訊,在INPUT鏈
iptables-A INPUT -i eth0 -s 192.168.140.254 -j ACCEPT
容許254進入eth0
iptables-A INPUT -i eth0 -s 192.168.140.0/24 -j DROP
拒絕140網段訪問
四、設定端口訪問
iptables -A INPUT -i eth0 -p all -s源ip --sport 源端口 -d 目標IP --dport 目標端口-j 動做
#通常須要指定的是目標端口,並且必定要設置協議類型!
實例:
iptables -A INPUT -i eth0 -p tcp -s 192.168.140.0/24 --dport 22 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.140.0/24 --dport 137:139 -j ACCEPT #容許訪問137到139端口
注意:指定端口時,協議不能用all,要指定確切協議,如TCP
五、設置多端口訪問
iptables能夠方便的配置多個端口。其中根據端口的連續性,又可分爲連續端口配置和不連續端口配置。
1)、連續端口配置
如:
iptables -A INPUT -p tcp --dport 81:89 -j ACCEP
2)、使用multiport參數配置不連續端口
如:
iptables -A INPUT -p tcp -m multiport --dport 21:25,135:139 -j DROP
六、模塊調用
-m 模塊名 模塊選項加載iptables功能模塊
1) -m state --state ESTABLISHED,RELATED
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#state狀態模塊常見狀態ESTABLISHED【聯機成功的狀態】RELATED【返回包狀態】
2)-m mac --mac-source按照mac地址限制訪問
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j DROP
#拒絕某mac訪問
3)-mstring --string "想要匹配的數據包中字串"
iptables -A FORWARD -p udp --dport 53 -m string --string "tencent"--algo kmp -j DROP
#經過dns拒絕QQ登陸
#--algo指定字符串模式匹配策略,支持KMP和BM兩種字符串搜索算法,任意指定一個便可
七、簡易防火牆實例
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp --dport 22 -s <IP地址>-j ACCEPT
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -P INPUT DROP
攔截目的或者源端口爲相應服務端口(123 - ntp)的全部UDP報文(一次UDP反射DDOS攻擊設置規則)
iptables -A INPUT -p udp -m udp --sport 123 -j DROP
iptables -A INPUT -p udp -m udp --dport 123 -j DROP
iptables -A OUTPUT -p udp -m udp --sport 123 -j DROP
iptables -A OUTPUT -p udp -m udp --dport 123 -j DROP
八、防火牆服務開機自啓動
chkconfig iptables on
九、防火牆規則開啓自啓動
1) service iptables save
會把規則保存到/etc/sysconfig/iptables文件中,重啓會自動讀取
2) a.手工寫防火牆腳本
如 vi /root/iptables.rule
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -P INPUT DROP
b.賦予執行權限 chmod 755 /root/iptables.rule
c.開機運行 vi/etc/rc.local
d.寫入 /root/iptables.rule
轉載自:http://www.cnblogs.com/luyiba/p/6304032.html