2021-05-12 14:32:11
Linux基礎教學學習筆記32——防火牆的使用與設定
Linux基礎教學學習筆記32——防火牆的使用與設定
一、RHEL7中的防火牆型別
以下防火牆只能同時使用一張,firewall底層呼叫的還是Iptables的服務:
firewalld:預設
iptables:RHEL6使用
ip6tables
ebtables
二、防火牆的設定方式
1、圖形化設定
使用firewall-config
允許某項服務只需打上勾即可
2、命令列
三、防火牆的區域與設定
檢視區域:
[root@linuxidc ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
檢視預設區域
[root@linuxidc ~]# firewall-cmd --get-default-zone
public
每個區域設定多個服務,對應多個介面
[root@linuxidc ~]# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
檢視允許的服務
[root@linuxidc ~]# firewall-cmd --list-services --zone=public
dhcpv6-client ssh
某些服務,對應多個埠,在防火牆允許某項服務則可能意味著允許該服務對應的多個埠:
給區域新增服務:
[root@linuxidc ~]# firewall-cmd --add-service=ftp --zone=public --permanent
刪除區域服務:
[root@linuxidc ~]# firewall-cmd --remove-service=ftp --zone=public
檢視某項服務是否被允許:
[root@linuxidc ~]# firewall-cmd --query-service=http --zone=public
no
區域新增埠:
[root@linuxidc ~]# firewall-cmd --add-port=8000/tcp --zone=public --permanent
刪除埠:
1 firewall-cmd --remove-port=8000/tcp --zone=public
檢視埠是否被允許:
[root@linuxidc ~]# firewall-cmd --query-port=8000/tcp --zone=public
一個區域可以繫結多個網絡卡,一個網絡卡只能系結一個區域:
檢視網絡卡和區域系結:
[root@linuxidc ~]# firewall-cmd --get-zone-of-interface=ens33
區域新增埠:
[root@linuxidc ~]# firewall-cmd --add-interface=ens34 --zone=public --permanent
區域刪除網絡卡:
[root@linuxidc ~]# firewall-cmd --remove-interface=ens34 --zone=public --permanent
修改網絡卡的區域:
[root@linuxidc html]# firewall-cmd --change-interface=ens33 --zone=public --permanent
trusted區域的所有服務都被允許:
網絡卡如果不屬於任何區域,那麼來自該介面的所有封包將使用預設的區域規則:
區域新增來源地址,如果介面不屬於某個區域,那麼來自於該介面的流量如果匹配來源地址,那麼流量將從來源的區域通過:
檢視某個區域的所有設定資訊:
[root@linuxidc html]# firewall-cmd --list-all
public (default, active)
interfaces: br1 ens34 ens37 virbr0
sources:
services: dhcpv6-client ssh
ports: 443/tcp 464/tcp 88/udp 88/tcp 123/udp 389/tcp 53/tcp 53/udp 636/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
所有的設定操作如果想永久生效,則需要加--permanent選項,否則設定只會在當前執行環境生效
三、firewall對ICMP的過濾
firewall可以對以下型別的ICMP進行過濾:
firewall對ICMP的過濾存在BUG,對RHEL6及windows的機器均不能很好的支援,只能對RHEL7有效
四、富規則rich rule
富規則可以對伺服器端口協定進行更詳細的設定:
命令列設定富規則:
檢視富規則:
[root@linuxidc ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="10.35.89.0/24" service name="http" accept
[root@linuxidc ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=10.35.89.0/24 service name=ftp log prefix="ftp" level=info accept' --permanent
[root@linuxidc ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=10.35.89.0/24 port port=80 protocol=tcp log prefix="80" level=info accept' --permanent
刪除富規則
[root@linuxidc ~]# firewall-cmd --remove-rich-rule 'rule family=ipv4 source address=10.35.89.0/24 service name=ftp accept'
五、埠轉發
圖形化設定:
本地轉發
轉發到其他主機:
命令列設定:
[root@linuxidc log]# firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=
forward-ports: port=8000:proto=tcp:toport=80:toaddr=
port=8080:proto=tcp:toport=80:toaddr=
六、偽裝masque
圖形化設定很簡單,勾上偽裝區域即可
命令列設定也很簡單:
[root@linuxidc log]# firewall-cmd --add-masquerade
啟用偽裝功能的主機同時也需要開啟轉發服務:
[root@linuxidc log]# echo 1 > /proc/sys/net/ipv4/ip_forward
富規則中使用偽裝功能可以更精確詳細的限制:
[root@linuxidc log]# firewall-cmd --add-rich-rule '
rule family=ipv4 source address=10.10.10.2/24 masquerade'
rule family="ipv4" source address="192.168.10.30" forward-port port="808" protocol="tcp" to-port="80" to-addr="10.10.10.2"
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-04/115989.htm
相關文章