有问题的特定服务器运行 CentOS 7,并在以下端口上提供服务:端口 22 (SSH) 和端口范围 11224-12224(主要是反向 ssh 隧道)。可以从公共 IP 访问服务器,仅允许通过证书登录使用 SSH,并且已设置fail2ban。
端口 22:保持开放以供公众访问。 (当远程服务器连接到此并绑定以下范围内的端口进行访问时)
端口范围 11224-12224 - 保持开放状态,仅允许来自私有 IP 范围的访问(10.0.0.0 – 10.255.255.255、172.16.0.0 – 172.31.255.255、192.168.0.0 – 192.168.255.255)
ICMP :保持开放状态,仅允许来自私有 IP 范围的访问(10.0.0.0 – 10.255.255.255、172.16.0.0 – 172.31.255.255、192.168.0.0 – 192.168.255.255)
我对此感到满意,iptables
但firewalld
对我来说是新的,而且我自己是远程连接的ssh
,因此寻找权威的答案,而不是反复试验并将自己锁定在外面。Firewalld
处于库存状态,没有任何修改。
答案1
端口22:
firewall-cmd --permanent --zone=public --add-service=ssh # persistent setting
firewall-cmd --reload
端口范围 11224-12224:
firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port port="11224-12224" protocol="tcp" accept'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.16.0.0/12" port port="11224-12224" protocol="tcp" accept'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/16" port port="11224-12224" protocol="tcp" accept'
firewall-cmd --reload
看:https://fedoraproject.org/wiki/Features/FirewalldRichLanguage
ICMP:
不要盲目阻止所有ICMP。您将破坏路径 MTU 发现,从而导致通过 VPN、IPv6 网关、多种类型的云服务等传输最大大小数据包的任何连接无法工作,除非您降低所有连接的 MTU 值。操作系统已将发送 ICMP 响应视为低优先级任务,如果会导致工作负载过大,则可以忽略该任务。
当有人尝试 ping 不存在的主机时,丢失主机的上游路由器将向 ping 者发送回 ICMP“主机无法到达”消息。如果您阻止 ping 响应,pinger 仍然可以确定您的主机是否存在,如下所示:
- 收到 ping 响应 = 主机存在
- 没有 ping 响应,但来自最靠近目标主机的路由器的 ICMP“主机无法访问”= 主机不存在
- 无 ping 响应和no ICMP = 主机很可能存在并且正在阻止 ping。
这是相当简单的事情。