Linux学习笔记 --iptables防火墙配置
iptables防火墻配置
一、防火墻簡介
1、功能:
? ? 1)通過源端口,源IP地址,源MAC地址,包中特定標記和目標端口,IP,MAC來確定數(shù)據(jù)包是否可以通過防火墻
? ? 2)分割內(nèi)網(wǎng)和外網(wǎng)【附帶的路由器的功能】
? ? 3)劃分要被保護的服務器
如果Linux服務器啟用了防火墻,SELinux等的防護措施,那么,他的安全級別可以達到B2[原來是C2]
2、防火墻分類
? ? 1)數(shù)據(jù)包過濾【絕大多數(shù)的防火墻】
? ? ? ? ? ? 分析IP地址,端口和MAC是否符合規(guī)則,如果符合,接受
? ? 2)代理服務器
3、防火墻的限制
? ? 1)防火墻不能有效防止病毒,所以防火墻對病毒攻擊基本無效,但是對木馬還是有一定的限制作用的。
? ? 2)防火墻一般不設定對內(nèi)部[服務器本機]訪問規(guī)則,所以對內(nèi)部攻擊無效
【附】現(xiàn)當今的殺毒軟件對病毒的識別率大約在30%左右。也就是說,大部分的病毒是殺毒軟件并不認識的!
4、防火墻配置原則【交叉使用】
? ? 拒絕所有,逐個允許
? ? 允許所有,逐個拒絕
【附:】防火墻規(guī)則:誰先配置,誰先申請!
5、Linux常見防火墻
? ? 2.4/2.6內(nèi)核? ? ? ? iptables #現(xiàn)在常用的
? ? 2.2內(nèi)核? ? ? ? ? ? ? ipchains
二?、iptables防火墻
1、結(jié)構:表-------鏈--------規(guī)則
2、表:在iptables中默認有以下三個表
? ? ?filter表 ? ? ? ?數(shù)據(jù)過濾表 #filter過濾,滲透
? ? ?NAT表 ? ? ? ?內(nèi)網(wǎng)與外網(wǎng)地址轉(zhuǎn)換
? ? ?Mangle ? ?特殊數(shù)據(jù)包標記
3、鏈
filter表中: INPUT OUTPUT FORWARD
三、iptables基礎語法
1、規(guī)則的查看和清楚
? ? iptables [-t表名] [選項]
選項:
? ? -L ? ?查看
? ? -F ? ?清除所有規(guī)則
? ? -X ? ?清除自定義鏈
? ? -Z ? ?清除所有鏈統(tǒng)計
? ? -n ? ?以端口和ip顯示
示例:
? ? iptables -t nat -L ? ?#查看nat表中規(guī)則
? ? iptables -L ? ? ? ? ? ? #查看filter表中規(guī)則,不寫表名默認查看的是filter表!
2、定義默認策略
? ?iptables ?-t?表名 ?-P?鏈名?ACCEPT|DROP ? ? ? ?#-P(大) 定義默認策略
實例:
? ? iptables -t filter -P INPUT DROP
注意:不要把自己踢出服務器,所以這條規(guī)則應該最后設定。
3、限定IP和網(wǎng)卡接口設置
? ? iptables [-AI?鏈] [-io?網(wǎng)卡接口] [-p?協(xié)議] [-s?源IP] [-d?目標ip] -j?動作
說明:
? ? -A ? ?追加鏈規(guī)則? ? ?#在鏈規(guī)則最后加入此規(guī)則
? ? -I ? ? ?INPUT 2 ? ? #把此規(guī)則插入到INPUT鏈,變成第二條規(guī)則
? ?-D ? ??鏈 條數(shù)? ? ? ? ?#刪除指定鏈的指定條數(shù)防火墻
示例:
? ? iptables -D INPUT 2 #刪除input鏈上的第二條規(guī)則
? ?-i ? ? eth0 #指定進入接口,要在INPUT鏈上定義
? -o ? ? eth0 #指定傳出接口,要在OUTPUT鏈上定義
? -p ? ?協(xié)議? #[tcp/udp/icmp/all]
? -j ? ??動作? #[ACCEPT|DROP]
實例:
? ? ? iptables -A INPUT -i lo -j ACCEPT
允許本機回環(huán)網(wǎng)卡通信,在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網(wǎng)段訪問
4、設定端口訪問
iptables -A INPUT -i eth0 -p all -s源ip --sport?源端口?-d?目標IP --dport 目標端口-j?動作
#一般需要指定的是目標端口,而且一定要設置協(xié)議類型!
實例:
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端口
注意:指定端口時,協(xié)議不能用all,要指定確切協(xié)議,如TCP
5、模塊調(diào)用
-m?模塊名 模塊選項加載iptables功能模塊
1) -m state --state ESTABLISHED,RELATED
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#state狀態(tài)模塊常見狀態(tài)ESTABLISHED【聯(lián)機成功的狀態(tài)】RELATED【返回包狀態(tài)】
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 "想要匹配的數(shù)據(jù)包中字串"
iptables -A FORWARD -p udp --dport 53 -m string --string "tencent"--algo kmp -j DROP
#通過dns拒絕QQ登錄
#--algo指定字符串模式匹配策略,支持KMP和BM兩種字符串搜索算法,任意指定一個即可
6、簡易防火墻實例
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
7、防火墻服務開機自啟動
chkconfig iptables on
8、防火墻規(guī)則開啟自啟動
1) service iptables save
會把規(guī)則保存到/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.賦予執(zhí)行權限 chmod 755 /root/iptables.rule
c.開機運行 vi/etc/rc.local
d.寫入 /root/iptables.rule
總結(jié)
以上是生活随笔為你收集整理的Linux学习笔记 --iptables防火墙配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java和PHP在Web开发方面的比较
- 下一篇: 如何汉化美化Citrix的WEB界面