防火牆--管理網絡安全

防火牆

RHEL4/5/6 工具使用的是iptables

RHEL7 firewalld

RHEL8 firewalld

防火牆的管理工具是的作用,配置規則用的

允許:192.168.0.10/24 訪問你的系統的那個服務

規則的添加,刪除,或者修改,都是工具來完成的。

完成包過濾的不是由這個工具來完成的,比如ip: 10.10.10.10

就會被丟棄。完成匹配以及包處理是由防火牆的子系統來完成的!在系統由很多的包過濾模塊,所有的包處理都是由這些模塊來實現的。

7和8是有區別的

RHEL7:netfilter 子系統

RHEL8:nftables 增強了netfilter這是一個新的過濾包和數據分類子系統,其增強了netfileter的部分代碼,保留理論netfileter的架構。

前端的規則配置:firewalld

對於之前的版本iptables 7版本是可以使用的 8版本沒有安裝

firewalld是7和8 的主流工具,可以轉換成iptables不建議做

[root@server ~]# firewall-cmd --list-all #查看狀態

public (active)

target: default

icmp-block-inversion: no

interfaces: ens33

sources:

services: cockpit dhcpv6-client ssh

ports:

protocols:

masquerade: no

forward-ports:

source-ports:

icmp-blocks:

rich rules:

zone的類型

[root@server ~]# firewall-cmd --list-all-zones | grep ^[a-z]

block 任何一個數據包如果進入了block zone 默認丟棄

dmz ssh

drop 除非與傳出流量相關,否者丟棄所有

external ssh,通過此區域轉發給ipv4進行偽裝

home cockpit、dhcpv6-client、mdns、samba-cliebt、 ssh

internal ssh、mdns、ipp-client、samba/dhcpv6-client

public (active)cockpit、dhcpv6-client、ssh

trusted 任何一個數據包如果進入block zone默認允許通過

work cockpit、dhcpv6-client、ssh

firewall 的三個要素

(1)如果你定義了一個源ip關聯一個zone,那麼處於這個網段數據包,就會進入zone匹配規則

(2)如果一個數據包的源ip沒有關聯zone,就看這個數據包從那個網卡進入的,就可以將網卡關聯zone

(3)如果一個數據包的源或者進入的網卡都沒有關聯zone,那麼去默認zone匹配規則。

1.將源關聯到zone

firewall-cmd --permanent --add-source=192.168.0.10/24 --zone=home

source為空是應為要重新加載 firewalld-cmd --reload

重啟

--perman 永久生效 --source 來源 --zone 區 success 成功

查看

firewal-cmd --list-all --zone=home

重新加載

firewalld-cmd --reload 重啟

在zone內關聯到那些源

firewall-cmd --list-sources --zone=home

查看是否在zone內

firewall-cmd --query-source=192.168.0.10/24 --zone=home yes

修改一個源,去關聯一個zone

firewall-cmd --permanent --change-source=192.168.0.10/24 --zone=public

從一個zone中移除一個源

firewall-cmd --permanent --remove-source=192.168.0.10/24 --zone=public

2.通過網卡關聯zone

firewall-cmd --get-default-zone 查看zone規則

firewall-cmd --get-zone-of-interface=ens33

3.查看一個網卡是否加入一個zone

firewall-cmd --query-interface=ens33 --zone=public

4.對於網卡不會remove?

原因:優先級低 change修改

firewall-cmd --change-interface=ens33 --zone=home --per

The interface is under control of NetworkManager, setting zone to 'home'.

success

匹配規則

學會zonen內設置規則

基本規則;只要你將,服務,或者端口,協議加入到zone內,那麼就是允許訪問的。

添加服務

firewall-cmd --permanent --add-service=http --zone=home

移除服務

firewall-cmd --remove-service=http --permanent --zone=home

success

添加端口

firewall-cmd --add-port=80/tcp --permanent --zone=home

success

移除端口

firewall-cmd --remove-port=80/tcp --permanent --zone=home

success

添加協議

firewall-cmd --add-protocol=tcp --permanent --zone=home

success

移除協議 協議不用隨便添加

firewall-cmd --reload

target:一種默認的處理動作 如果你的數據包在整個zone內沒有找到規則,那麼默認的處理方式就可以使用。

accept: 允許trust 默認就是允許

drop 直接丟棄

reject 拒絕 會有一個

firewall-cmd --set-target=REJECT --zone=home --per

success 更改默認配置

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

並不能對源進行操作

firewall-cmd --remove-source=192.168.0.10/24 --zone=home

success

firewall-cmd --reload 重啟

success

firewall-cmd --list-all --zone=home 查看

home (active)

target: ACCEPT

icmp-block-inversion: no

interfaces: ens33

sources: 192.168.0.10/24

services: cockpit dhcpv6-client mdns samba-client ssh

ports:

protocols: tcp

masquerade: no

forward-ports:

source-ports:

icmp-blocks:

rich rules:

重新創建一個 IP

ip addr add 10.10.10.10/24 dev ens33

[root@server html]# ip a s

1: lo: <loopback> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000/<loopback>

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33: <broadcast> mtu 1500 qdisc fq_codel state UP group default qlen 1000/<broadcast>

link/ether 00:0c:29:3c:66:52 brd ff:ff:ff:ff:ff:ff

inet 192.168.0.10/24 brd 192.168.0.255 scope global noprefixroute ens33

valid_lft forever preferred_lft forever

inet 10.10.10.10/24 scope global ens33

valid_lft forever preferred_lft forever

inet6 fe80::1ef2:bc63:656d:1a4d/64 scope link noprefixroute

valid_lft forever preferred_lft forever

我們訪問一下

[root@server html]# curl http://192.168.0.10

test filewall rule

[root@server html]# curl http://10.10.10.10

test filewall rule

能通是應為子在zone內

rich rules :附加規則 RHEL7 版本 指定源和動作

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.10.10.10/24 service name=http reject'

端口

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.10.10.0/24 port port=80 protocol=tcp reject'

[root@server html]# firewall-cmd --list-all --zone=public

public

target: default

icmp-block-inversion: no

interfaces:

sources:

services: cockpit dhcpv6-client http ssh

ports:

protocols:

masquerade: no

forward-ports:

source-ports:

icmp-blocks:

rich rules:

rule family="ipv4" source address="10.10.10.10/24" service name="http" reject

rule family="ipv4" source address="10.10.10.0/24" port port="80" protocol="tcp" reject

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.10.10.0/24 protocol value=tcp reject'

端口轉發

firewall-cmd --permanent --zone=trusted --add-forward-port=port=5423:proto=tcp:toport=80

success

firewall-cmd --reload 重啟

port -m -t http_port_t -p tcp 5423


分享到:


相關文章: