iptables防火牆配置

iptables防火牆配置

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

相關文章
相關標籤/搜索