FirewallD配置
FirewallD Configuration
我有一台 CentOS 7 机器,我正在尝试启用 FirewallD 以使其比现在更安全。它目前用作在单个接口上配置的 11 个不同子网之间的路由器,以及允许外部流量进入 VPN 的第二个接口。我已经按照几个指南在互联网上设置 FirewallD,但似乎没有什么可以通过,除了pings。下面是我当前的配置。
firewall-cmd --zone=internal --list-all
internal
interfaces: eth0
sources: 192.168.0.0/16
services: adws dhcpv6-client dns http https ipp-client kerberos ldap ldaps mdns ms-gc ms-gc-ssl ms-wbt msrpc mssql ntp samba samba-client smtp ssh
ports: 49152-65535/tcp 49152-65535/udp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd --zone=public --list-all
public (active)
interfaces: eth1
sources:
services: dhcpv6-client ssh
ports: 81/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -i eth1 -p tcp --dport 1723 -j ACCEPT
ipv4 filter INPUT 0 -p gre -j ACCEPT
ipv4 filter POSTROUTING 0 -t nat -o eth1 -j MASQUERADE
ipv4 filter FORWARD 0 -i ppp+ -o eth1 -j ACCEPT
ipv4 filter FORWARD 0 -i eth1 -o ppp+ -j ACCEPT
ip 地址显示
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:33:c8:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.20.1/24 brd 192.168.20.255 scope global ens160:1
valid_lft forever preferred_lft forever
inet 192.168.33.1/24 brd 192.168.33.255 scope global ens160:2
valid_lft forever preferred_lft forever
inet 192.168.10.1/24 brd 192.168.10.255 scope global ens160:3
valid_lft forever preferred_lft forever
inet 192.168.25.1/24 brd 192.168.25.255 scope global ens160:4
valid_lft forever preferred_lft forever
inet 192.168.55.1/24 brd 192.168.55.255 scope global ens160:5
valid_lft forever preferred_lft forever
inet 192.168.18.1/24 brd 192.168.18.255 scope global ens160:6
valid_lft forever preferred_lft forever
inet 192.168.88.1/24 brd 192.168.88.255 scope global ens160:7
valid_lft forever preferred_lft forever
inet 192.168.137.1/24 brd 192.168.137.255 scope global ens160:8
valid_lft forever preferred_lft forever
inet 192.168.181.1/24 brd 192.168.181.255 scope global ens160:9
valid_lft forever preferred_lft forever
inet 192.168.182.1/24 brd 192.168.182.255 scope global ens160:10
valid_lft forever preferred_lft forever
inet 192.168.26.1/24 brd 192.168.26.255 scope global ens160:11
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:8b:62:3d brd ff:ff:ff:ff:ff:ff
inet 172.16.0.10/24 brd 172.16.0.255 scope global dynamic ens192
valid_lft 4718sec preferred_lft 4718sec
VPN 规则工作正常,我可以在 172.16.0.10:81 上访问管理页面,但是除了 icmp 之外,eth0 上的所有数据包都无法通过。如果您需要更多详细信息,请告诉我。
编辑:我也试过将 eth0 移动到受信任的区域,然后允许流量,所以我知道这不是接口配置错误。
编辑 2: 通过进一步测试,我发现 CentOS 机器接受允许的服务(例如 ssh、dns)的直接连接,但不会将流量路由到其他子网上的目的地就像防火墙关闭时一样。
卸载 FirewallD 并下载并安装 iptables-services pkg 以仅使用 iptables 尝试此操作并成功配置 FORWARD 链以正确路由流量后,我重新评估了 --direct
的 FirewallD 配置并注意到了一个我缺少的行。
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth0 -j ACCEPT
firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -i eth1 -p tcp --dport 1723 -j ACCEPT
ipv4 filter INPUT 0 -p gre -j ACCEPT
ipv4 filter POSTROUTING 0 -t nat -o eth1 -j MASQUERADE
ipv4 filter FORWARD 0 -i ppp+ -o eth1 -j ACCEPT
ipv4 filter FORWARD 0 -i eth1 -o ppp+ -j ACCEPT
ipv4 filter FORWARD 0 -i eth0 -o eth0 -j ACCEPT
我有一台 CentOS 7 机器,我正在尝试启用 FirewallD 以使其比现在更安全。它目前用作在单个接口上配置的 11 个不同子网之间的路由器,以及允许外部流量进入 VPN 的第二个接口。我已经按照几个指南在互联网上设置 FirewallD,但似乎没有什么可以通过,除了pings。下面是我当前的配置。
firewall-cmd --zone=internal --list-all
internal
interfaces: eth0
sources: 192.168.0.0/16
services: adws dhcpv6-client dns http https ipp-client kerberos ldap ldaps mdns ms-gc ms-gc-ssl ms-wbt msrpc mssql ntp samba samba-client smtp ssh
ports: 49152-65535/tcp 49152-65535/udp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd --zone=public --list-all
public (active)
interfaces: eth1
sources:
services: dhcpv6-client ssh
ports: 81/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -i eth1 -p tcp --dport 1723 -j ACCEPT
ipv4 filter INPUT 0 -p gre -j ACCEPT
ipv4 filter POSTROUTING 0 -t nat -o eth1 -j MASQUERADE
ipv4 filter FORWARD 0 -i ppp+ -o eth1 -j ACCEPT
ipv4 filter FORWARD 0 -i eth1 -o ppp+ -j ACCEPT
ip 地址显示
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:33:c8:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.20.1/24 brd 192.168.20.255 scope global ens160:1
valid_lft forever preferred_lft forever
inet 192.168.33.1/24 brd 192.168.33.255 scope global ens160:2
valid_lft forever preferred_lft forever
inet 192.168.10.1/24 brd 192.168.10.255 scope global ens160:3
valid_lft forever preferred_lft forever
inet 192.168.25.1/24 brd 192.168.25.255 scope global ens160:4
valid_lft forever preferred_lft forever
inet 192.168.55.1/24 brd 192.168.55.255 scope global ens160:5
valid_lft forever preferred_lft forever
inet 192.168.18.1/24 brd 192.168.18.255 scope global ens160:6
valid_lft forever preferred_lft forever
inet 192.168.88.1/24 brd 192.168.88.255 scope global ens160:7
valid_lft forever preferred_lft forever
inet 192.168.137.1/24 brd 192.168.137.255 scope global ens160:8
valid_lft forever preferred_lft forever
inet 192.168.181.1/24 brd 192.168.181.255 scope global ens160:9
valid_lft forever preferred_lft forever
inet 192.168.182.1/24 brd 192.168.182.255 scope global ens160:10
valid_lft forever preferred_lft forever
inet 192.168.26.1/24 brd 192.168.26.255 scope global ens160:11
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:8b:62:3d brd ff:ff:ff:ff:ff:ff
inet 172.16.0.10/24 brd 172.16.0.255 scope global dynamic ens192
valid_lft 4718sec preferred_lft 4718sec
VPN 规则工作正常,我可以在 172.16.0.10:81 上访问管理页面,但是除了 icmp 之外,eth0 上的所有数据包都无法通过。如果您需要更多详细信息,请告诉我。
编辑:我也试过将 eth0 移动到受信任的区域,然后允许流量,所以我知道这不是接口配置错误。
编辑 2: 通过进一步测试,我发现 CentOS 机器接受允许的服务(例如 ssh、dns)的直接连接,但不会将流量路由到其他子网上的目的地就像防火墙关闭时一样。
卸载 FirewallD 并下载并安装 iptables-services pkg 以仅使用 iptables 尝试此操作并成功配置 FORWARD 链以正确路由流量后,我重新评估了 --direct
的 FirewallD 配置并注意到了一个我缺少的行。
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth0 -j ACCEPT
firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -i eth1 -p tcp --dport 1723 -j ACCEPT
ipv4 filter INPUT 0 -p gre -j ACCEPT
ipv4 filter POSTROUTING 0 -t nat -o eth1 -j MASQUERADE
ipv4 filter FORWARD 0 -i ppp+ -o eth1 -j ACCEPT
ipv4 filter FORWARD 0 -i eth1 -o ppp+ -j ACCEPT
ipv4 filter FORWARD 0 -i eth0 -o eth0 -j ACCEPT