Linux防火牆(Firewalls)


結構關系圖

查看這兩個防火牆文件

# cat /etc/hosts.deny 

# cat /etc/hosts.allow

查看Linux中防火牆的狀態

某個服務是否能由tcpwraps來進行控制關鍵在於這個服務的模塊

圖形化界面firewall-config

 

 

 

命令行firewall-cmd

 

 

區域:

查看firewall防火牆有幾個zone(區域)

# firewall-cmd --get-zones

 

查看firewall防火牆默認區域

 # firewall-cmd --get-default-zone

查看eno16777736 是否與默認zone綁定在一起。

# firewall-cmd --query-interface=eno16777736 

查看eno16777736是否與home=zone綁定在一起。

# firewall-cmd --query-interface=eno16777736 --zone=home

查看eno16777736與那個zone綁定在一起

# firewall-cmd --get-zone-of-interface=eno16777736

 

 

 

 

接口

刪除eno16777736接口

# firewall-cmd --remove-interface=eno16777736

查看eno16777736接口

# firewall-cmd --get-zone-of-interface=eno33554992

添加接口

 # firewall-cmd --zone=home --add-interface=eno33554992

直接更改到默認接口

# firewall-cmd --change-interface=eno33554992

直接更改到指定接口

# firewall-cmd --change-interface=eno33554992 --zone=home

 

 

 

服務:

查看防火牆所有服務

# firewall-cmd --get-services

查看具體的某個服務

# firewall-cmd --get-services | grep http

查看某個服務是否開啟

# firewall-cmd --query-service=http 

查看某個服務在指定區域是否開啟

# firewall-cmd --query-service=http --zone=home

 添加某個服務

 # firewall-cmd --add-service=http 

移除某個服務

# firewall-cmd --remove-service=http 

以上都是臨時生效的

設置成永久生效應該添加permanent

設置成永久生效

# firewall-cmd --remove-service=http --permanent

 

 

 

 

端口

查看端口是否存在

# firewall-cmd --query-port=88/tcp 

# firewall-cmd --query-port=88/tcp --zone=home

臨時添加端口(永久)+  --permanent

 # firewall-cmd --add-port=88/tcp 

臨時(永久)刪除端口  +  --permanent

# firewall-cmd --remove-port=88/tcp 

 

 

更改默認區域:

更改默認的zone為home(永久生效)不需要加permanent

# firewall-cmd --set-default-zone=home 

更改默認的zone為trusted(綠色通道)永久生效不需要加permanent

# firewall-cmd --set-default-zone=trusted 

 

以上為命令行如何操作、設置firewall-config

 

---------------------------------------------------------------------------------------------------------------------------------------------

查看默認的zone里面所有的設置

# firewall-cmd --list-all

查看home、zone里面所有的設置。

 # firewall-cmd --list-all --zone=home 

查看是否配置Apache  httpd服務

# systemctl is-active httpd

 

 

 

source(來源):

 

添加source(來源)規則到home,zone里面並查看

# firewall-cmd --add-source=192.168.0.0/24 --zone=home

# firewall-cmd --list-all --zone=home

刪除home,zone里面source(來源)規則

# firewall-cmd --remove-source=192.168.0.0/24 --zone=home

 

 

 

 

ICMP過濾器

在圖形界面中,打鈎不允許,不打鈎允許。

ICMP類型:

echo-request(沒有打鈎允許ping,打鈎不允許ping)

echo-reply

查看ICMP服務

# firewall-cmd --get-icmptypes 

查看ICMP某一模塊的狀態

# firewall-cmd --query-icmp-block=echo-request

刪除ICMP某一模塊

# firewall-cmd --remove-icmp-block=echo-request

添加ICMP某一模塊

# firewall-cmd --add-icmp-block=echo-request

 

 

 

 

准備三台虛擬機,分別作為內網、外網、路由器(兩張網卡)

 

路由器:

路由器需要兩張網卡,第二張網卡需要同內網在同一個LAN區段

 路由器IP地址

 路由器查看轉發功能、並開啟

# cat /proc/sys/net/ipv4/ip_forward 

# echo 1 > /proc/sys/net/ipv4/ip_forward 

查看並配置網關

# route -n

添加網關

# route add default gw 10.0.0.1

 

內網:

內網網卡,要與路由器LAN在同一區段

內網IP

 

外網:

外網網卡

 外網IP

外網網關與路由器IP相同,則內網能ping同

外網網關與路由器IP不同,則內網不能ping同

但不影響抓包

內網ping外網抓包

抓包

# tcpdump -i eno16777736 icmp

 

 

 

偽裝:

抓包的時候隱藏私有地址

 

查看偽裝區域

# firewall-cmd --query-masquerade

添加偽裝區域(臨時生效)

# firewall-cmd --add-masquerade 

刪除偽裝區域(臨時生效)

# firewall-cmd --remove-masquerade 

 

 

 

端口轉發(端口映射)

查看firewall信息

# firewall-cmd --list-all

刪除映射端口

# firewall-cmd --remove-forward-port='port=80:proto=tcp:toport=:toaddr=10.0.0.2'

添加映射端口

# firewall-cmd --add-forward-port='port=80:proto=tcp:toport=:toaddr=10.0.0.2'

 

 

付規則(Rich Rules)

打開英文版的,中文版的有bug

#LANG=C firewall-config &

查看Rich Rules 信息

# firewall-cmd --list-rich-rules 

 

刪除Rich Rules

# firewall-cmd --remove-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" port port="80" protocol="tcp" accept'

 

添加Rich Rules

remove改add

控制是否能上網:masquerade


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM