Firewalld - 03フールール、バックアップとリカバリは、内部インターネットをオンにします

リッチファイアウォールルール、バックアップとリカバリ、内部インターネット上のターン

1.豊富なファイアウォールポリシールール

リッチルールFirewalldは、より詳細な、より詳細なファイアウォールポリシーの設定を示し、それは、システムサービス、ポート番号、送信元アドレスと宛先アドレス、および他の多くの情報については、より多くのターゲットにポリシー設定することができ、すべてのファイアウォールポリシーで優先順位それはまた、最高です。以下はFirewalld豊かなルールのヘルプマニュアルです。

[root@web01 ~]# man firewalld                #Firewalld帮助手册
[root@web01 ~]# man firewalld.richlanguage    #Firewalld富规则手册
rule
[source]
[destination]
service|port|protocol|icmp-block|masquerade|forward-port
[log]
[audit]
[accept|reject|drop]


rule [family="ipv4|ipv6"]
source address="address[/mask]" [invert="True"]
destination address="address[/mask]" invert="True"
service name="service name"
port port="port value" protocol="tcp|udp"
protocol value="protocol value"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"]
accept | reject [type="reject type"] | drop

#富规则相关命令
--add-rich-rule='<RULE>' #在指定的区添加一条富规则
--remove-rich-rule='<RULE>' #在指定的区删除一条富规则
--query-rich-rule='<RULE>' #找到规则返回0 ,找不到返回1
--list-rich-rules #列出指定区里的所有富规则

こうしたポート11211への172.16.1.0/24のアクセスを許可するアクセスHTTPサービスへのホストを許可するなど1)。10.0.0.1

[root@firewalld ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 service name=http accept'
success

[root@firewalld ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 port port="11211" protocol="tcp" accept'
success

[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client test
ports: 80/tcp 443/tcp
protocols:
masquerade: yes
forward-ports: port=5555:proto=tcp:toport=22:toaddr=10.0.0.7
source-ports:
icmp-blocks:
rich rules:
    rule family="ipv4" source address="10.0.0.1/32" service name="http" accept
    rule family="ipv4" source address="172.16.1.0/24" port port="11211" protocol="tcp" accept

#验证测试
[C:\~]$ telnet 10.0.0.6 80

Connecting to 10.0.0.6:80...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

[root@web01 ~]# telnet 10.0.0.6 80
Trying 10.0.0.6...
telnet: connect to address 10.0.0.6: No route to host
[C:\~]$ telnet 10.0.0.6 11211

Connecting to 10.0.0.6:11211...
Canceled.

[root@web01 ~]# telnet 172.16.1.6 11211
Trying 172.16.1.6...
Connected to 172.16.1.6.
Escape character is '^]'.

2)開いているすべての公共エリアサービスのデフォルトはssh経由で接続しますが、SSHを介してサーバに172.16.1.0/24のネットワーク接続を拒否しました


[root@firewalld ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name="ssh" drop'
success

#验证测试
[root@web01 ~]# ssh [email protected]
[email protected]'s password:
[root@web01 ~]# ssh [email protected]
^C

3)。FirewalldアクセスにHTTP、HTTPSサービスを誰でもできますが、唯一10.0.0.1ホストがSSHサービスにアクセスすることができます

[root@firewalld ~]# firewall-cmd --zone=public --add-service={http,https}
success
[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client http https
ports: 443/tcp
protocols:
masquerade: yes
forward-ports: port=5555:proto=tcp:toport=22:toaddr=10.0.0.7
source-ports:
icmp-blocks:
rich rules:
    rule family="ipv4" source address="10.0.0.1/32" service name="http" accept
    rule family="ipv4" source address="172.16.1.0/24" port port="11211" protocol="tcp" accept
    rule family="ipv4" source address="172.16.1.0/24" service name="ssh" drop


[root@firewalld ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 service name=ssh accept'
success

[root@firewalld ~]# firewall-cmd --remove-service=ssh
success

[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client http https
ports: 443/tcp
protocols:
masquerade: yes
forward-ports: port=5555:proto=tcp:toport=22:toaddr=10.0.0.7
source-ports:
icmp-blocks:
rich rules:
    rule family="ipv4" source address="10.0.0.1/32" service name="http" accept
    rule family="ipv4" source address="172.16.1.0/24" port port="11211" protocol="tcp" accept
    rule family="ipv4" source address="172.16.1.0/24" service name="ssh" drop
    rule family="ipv4" source address="10.0.0.1/32" service name="ssh" accept


#验证测试


[root@web01 ~]# telnet 10.0.0.6 80
Trying 10.0.0.6...
Connected to 10.0.0.6.
Escape character is '^]'.
^]
telnet> Connection closed.
[root@web01 ~]# ssh [email protected]
ssh: connect to host 10.0.0.6 port 22: No route to host


[C:\~]$ ssh [email protected]


Connecting to 10.0.0.6:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

4)ユーザソースホストのIPアドレス10.0.0.1は、ユーザは、ポート172.16.1.7の後端部22には、前方ポート5555に要求されると

[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client test
ports: 80/tcp 443/tcp
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:


#开启地址转发
[root@firewalld ~]# firewall-cmd --add-masquerade
Warning: ALREADY_ENABLED: masquerade already enabled in 'public'
success

[root@firewalld ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 forward-port port=5555 protocol="tcp" to-port="22" to-addr=172.16.1.7'
success
[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client test
ports: 80/tcp 443/tcp
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
    rule family="ipv4" source address="10.0.0.1/32" forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.7"

#验证测试
[C:\~]$ ssh [email protected] 5555

Connecting to 10.0.0.6:5555...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last failed login: Sun Dec 8 20:12:23 CST 2019 from 10.0.0.100 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sun Dec 8 18:59:02 2019 from 10.0.0.100

[root@web02 ~]# ssh [email protected] 5555
[email protected]'s password:
bash: 5555: command not found

5)。ルールの設定を確認し、パラメータが追加されていない場合は、再起動--permanent Firewalldは失敗します。優先順位のルールを有効にマッチする豊富なルール年代順マッチング、

[root@firewalld ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="10.0.0.1/32" forward-port port="5555" protocol="tcp" to-port="22" to-addr="10.0.0.7"

2.Firewalldバックアップとリカバリ

#我们所有针对public区域编写的永久添加的规则都会写入备份文件(--permanent)

[root@firewalld ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<service name="test"/>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="443"/>
<masquerade/>
</zone>

バックアップは、単にインポートした後、再起動を有効にするには、ライン上のコンフィギュレーションファイルをコピーする必要がある場合。

[root@web01 ~]# firewall-cmd   --zone=public   --add-service=http  --permanent
success
[root@web01 ~]# firewall-cmd   --list-all

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    
[root@web01 ~]# firewall-cmd   --reload
success
[root@web01 ~]# firewall-cmd   --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client http
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@web01 ~]# firewall-cmd  --zone=public  --remove-service=http  --permanent
success
[root@web01 ~]# firewall-cmd  --reload
success
[root@web01 ~]# firewall-cmd   --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

#备份配置文件
#只保存永久添加的规则
[root@web01 ~]# ll  /etc/firewalld/zones/public.xml     #公共区的配置文件
[root@web01 ~]# ll /etc/firewalld/zones/        #区域的配置规则文件都在这个区中

3.インターネットファイアウォールの内側にオンになっています

スタートFirewalldは、オンライン内部ホストを達成するために、指定されたパブリックIP NATアドレス変換とインスタンスのファイアウォールを。

1. Firewalldは、ファイアウォール、アドレス変換を実装し、なりすましを回し

1. Firewalld防火墙开启masquerade,实现地址转换
[root@firewalld ~]# firewall-cmd --add-masquerade --permanent
success
[root@firewalld ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="10.0.0.1/32" forward-port port="5555" protocol="tcp" to-port="22" to-addr="10.0.0.7" --permanent
[root@firewalld ~]# firewall-cmd --reload
success

[root@firewalld ~]# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client test
ports: 80/tcp 443/tcp
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:

2. 客户端将网关指向Firewalld服务器,将所有网络请求交给Firewalld
[root@web01 ~]# tail -1 /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.6

3. 客户端还需配置dns服务器
[root@web01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5

4. 关闭eth0网卡,重启eth1,使其配置生效
[root@web01 ~]# systemctl restart network && ifdown eth0

5. 测试后端web的网络是否正常

[C:\~]$ ssh [email protected] 5555


Connecting to 10.0.0.7:5555...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.


Last failed login: Sun Dec 8 20:38:58 CST 2019 from gateway on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sun Dec 8 20:12:25 2019 from 10.0.0.100
[root@web01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 00:0c:29:2a:a7:17 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:2a:a7:21 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.7/24 brd 172.16.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2a:a721/64 scope link
valid_lft forever preferred_lft forever

[root@web02 ~]# ping baidu.com
ping: baidu.com: Name or service not known
#重启eth1
[root@web02 ~]# ifdown eth1 && ifup eth1
Device 'eth1' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
[root@web01 ~]# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=127 time=32.6 ms
^C
--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 32.653/32.653/32.653/0.000 ms

おすすめ

転載: www.cnblogs.com/gongjingyun123--/p/12018442.html