【基礎部分】之Firewall和iptables

Firewalliptables

firewall 和 iptables 默認只能開一個

火牆:

圖形界面形式配置火牆 firewall-config

使用命令行接口配置防火牆

查看firewalld的狀態: firewall-cmd --state

查看當前活動的區域,並附帶一個目前分配給它們的接口列表:

# firewall-cmd --get-active-zones

查看默認區域: # firewall-cmd --get-default-zone

查看所有可用區域: # firewall-cmd --get-zones

列出指定域的所有設置: # firewall-cmd --zone=public --list-all

列出所有區域的設置: # firewall-cmd --list-all-zones

設置默認區域: # firewall-cmd --set-default-zone=trusted

設置網絡地址到指定的區域:

# firewall-cmd --permanent --zone=tursted --add-source=172.25.15.0/24

(--permanent參數表示永久生效設置,如果沒有指定--zone參數,那麼會加入默認區域)

刪除指定區域中的網路地址:

# firewall-cmd --permanent --zone=trusted --remove-source=172.25.0.0/24

添加、改變、刪除網絡接口:

# firewall-cmd --permanent --zone=trusted --add-interface=eth0

# firewall-cmd --permanent --zone=trusted --change-interface=eth0

# firewall-cmd --permanent --zone=trusted --remove-interface=eth0

添加、刪除服務:

# firewall-cmd --permanent --zone=public --add-service=smtp

# firewall-cmd --permanent --zone=public --remove-service=smtp

列出、添加、刪除端口:

# firewall-cmd --zone=public --list-ports

# firewall-cmd --permanent --zone=public --add-port=8080/tcp

# firewall-cmd --permanent --zone=public --remove-port=8080/tcp

重載防火牆:

# firewall-cmd --reload

(注意:這並不會中斷已經建立的連接,如果打算中斷,可以使用 --complete-reload選項)

比如你正在ssh連接該主機,該主機重載防火牆 ssh不會斷開 仍然可以操作該主機

如果--complete-reload 則ssh會斷開。

列出所有預設服務: # firewall-cmd --get-services

在/usr/lib/firewalld/services/ 中的可以查看服務名稱。注意:配置文件是以服務本身命名的

service-name. Xml 如下

clip_image002

以http爲例子

clip_image004

默認 端口爲80 如果想改端口 可以在這裏修改

Direct Rules

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 22 -s 172.25.15.10 -j REJECT

添加rule 拒絕172.25.15.10 主機訪問22端口(ssh)

firewall-cmd --direct --get-all-rules 查看所有rule

clip_image006

firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -p tcp --dport 22 -s 172.25.15.10 -j REJECT (刪除的是上面查看出來的)

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 22 ! -s 172.25.15.10 -j REJECT

添加rule 拒絕除了172.25.15.10主機以外的任何主機連接

Rich Rules

使用規則

clip_image008

firewall-cmd --remove-service=ssh (禁止訪問ssh服務)

firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.25.15.10" accept'

允許172.25.15.10主機所有連接。

firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop' (禁止 ping )

丟棄所有icmp包

端口轉發:(外網通過端????口轉發連接內網)

clip_image010

325:開啓地址轉換功能

326:訪問本機的80端口轉發到15.10主機的22端口

僞裝:(內網通過ip僞裝訪問外網)

要求:一臺單網卡172.25.15.10。一臺雙網卡作爲網關172.25.15.11 172.25.254.115

雙網卡:firewall-cmd --add-masquerade

firewall-cmd --add-rich-rule=’rule family=ipv4 source address=172.25.254.115’

(地址僞裝爲254.115)

則單網卡機器 可以ping通 254網段

IPTABLES

Iptables -nL 查看策略

Iptables -t filter -nL 查看filter表的策略

Iptables -t nat -nL 查看nat表的策略

Iptables -F 刷新策略(清空)

Iptables-save > /etc/sysconfig/iptables (保存修改的策略)

如何寫策略:

clip_image012

131行: 寫入允許該主機連接任何端口

133行: 寫入允許lo迴環連接任何端口

135行:拒絕所有寫入

137行:允許訪問22端口

139行:刪除INPUT裏第4行

141行:插入允許訪問22端口到第三行

143行:修改拒絕訪問22端口在第三行

145行:刪除第三行策略

策略有從上至下的順序問題:拒絕所有訪問在第三行,允許訪問22端口在第四行,結果22端口不能被訪問。因爲策略的順序問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章