firewalld
1.基本信息
(1)Firewalld:
動態防火牆後臺程序 firewalld 提供了一個 動態管理的防火牆,用以支持網絡 “ zones” ,以分配對一個網絡及其相關鏈接和界面一定程度的信任。
(2)firewalld與iptables 的區別:
• iptables service 在 /etc/sysconfig/iptables 中儲存配置,而 firewalld將配置儲存在/usr/lib/firewalld/和 /etc/firewalld/ 中的各種XML文件裏.
• 使用 iptables service每一個單獨更改意味着清除所有舊有的規則和從/etc/sysconfig/iptables裏讀取所有新的規則,然而使用 firewalld卻不會再創建任何新的規則;僅僅運行規則中的不同之處。因此,firewalld可以在運行時間內,改變設置而不丟失現
行連接。
(3)用戶對網絡中設備的信任程度
網絡區名稱 默認配置
trusted( 信任 ) 可接受所有的網絡連接
home( 家庭 ) 用於家庭網絡,僅接受ssh、mdns、ipp-client、samba-client、或dhcpv6-client服務連接
internal( 內部 ) 用於內部網絡,僅接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服務連接
work( 工作 ) 用於工作區,僅接受ssh、ipp-client或dhcpv6-client服務連接
public( 公共 ) 在公共區域內使用,僅接受ssh或dhcpv6-client服務連接,爲firewalld的默認區域
external( 外部 ) 出去的ipv4網絡連接通過此區域僞裝和轉發,僅接受ssh服務連接
dmz( 非軍事區 ) 僅接受ssh服務接連
block( 限制 ) 拒絕所有網絡連接
drop( 丟棄 ) 任何接收的網絡數據包都被丟棄,沒有任何回覆
2.管理firewalld
(1)配置服務
yum install -y firewalld firewall-config ##安裝防火牆軟件
systemctl start firewalld ; systemctl enable firewalld ##啓動防火牆
systemctl disable firewalld ; systemctl stop firewalld ##禁用防火牆
(2)使用命令行接口配置firewalld
firewall-cmd --state ##查看firewalld的狀態
firewall-cmd --get-active-zones ##查看當前活動的區域,並附帶一個目前分配給它們的接口列表
firewall-cmd --get-default-zone ##查看默認區域
firewall-cmd --get-zones ##查看所有可用區域
firewall-cmd --zone=public --list-all ##列出指定域的所有設置
firewall-cmd --get-services ##列出所有預設服務
(這樣將列出 /usr/lib/firewalld/services/ 中的服務器名稱。PS:配置文件是以服務本身命名的service-name. xml)
firewall-cmd --list-all-zones ##列出所有區域的設置
firewall-cmd --set-default-zone=dmz ##設置默認區域
firewall-cmd --permanent --zone=internal --add-source=172.25.78.0/24 ##設置網絡地址到指定的區域
(--permanent參數表示永久生效設置,如果沒有指定--zone參數,那麼會加入默認區域)
firewall-cmd --permanent --zone=internal --remove-source=172.25.78.0/24 ##刪除指定區域中的網路地址
@@添加、改變、刪除網絡接口
firewall-cmd --permanent --zone=internal --add-interface=eth0
firewall-cmd --permanent --zone=internal --change-interface=eth0
firewall-cmd --permanent --zone=internal --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選項)
firewalld的規則被保存在/etc/firewalld目錄下的文件中,你也可以直接編輯這些文件達到配置防火牆的目的。/usr/lib/firewalld目錄下的內容是不可以被編輯的,但可以用做默認模板
(3)僞裝和端口轉發
server 有兩個ip處在不同網段
172.25.78.11 172.25.254.179
firewall-cmd --add-forward-port=80:proto=tcp:toport=22:toaddr=172.25.78.11
firewall-cmd --add-masquerade ##在進行僞裝和轉發時 要先將masquerade打開
firewall-cmd --list-all
yum remove httpd
firewall-cmd --add-port=80/tcp
firewall-cmd --permanent --zone=public--remove-forward-port=port=80:proto=tcp:toport=22:toaddr=172.25.78.11
firewall-cmd --reload
firewall-cmd --permanent --add-masquerade
desktop 172.25.78.10
yum install httpd -y
systemctl start httpd
vim /var/www/html/index.html
172.25.78.10
firewall-cmd --add-port=80/tcp
kiosk:
ssh [email protected] -p 80 最後會連接到desktop
firefox:
172.25.254.179:80
172.25.78.10