我正在尝试设置我的网络防火墙,但遇到了麻烦,因为我总是因为错误而被踢出 SSH。以下是我目前的情况:
# Custom Rules
iptables -F
iptables -X
iptables -P FORWARD DROP
iptables -N mc
iptables -A mc --src 123.456.789.1 -j ACCEPT
iptables -A mc --src 123.456.789.2 -j ACCEPT
iptables -A mc --src 50.50.50.50 -j ACCEPT
iptables -A mc -i lo -j ACCEPT
iptables -A mc -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A mc -m state --state INVALID -j DROP
iptables -A mc -j DROP
# Server Rules (Main Server)
iptables -A INPUT -p tcp --match multiport --dports 64000:64321 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source ping.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j mc
iptables -A INPUT -p tcp -m multiport ! --dports 20,21,22,80,443,9987,20117,25565 -j mc
iptables -A INPUT -j DROP
基本上:
- 允许访问端口 64000:64321
- 允许通过 TCP(从 sport 53)访问端口 1024:65535
- 允许通过 UDP(从 sport 53)访问端口 1024:65535
- 允许来自上面列出的来源的 ICMP ping 请求进行访问
mc
使用规则允许访问端口 330620,21,22,80,443,9987,20117,25565
通过mc
规则过滤端口的访问- 拒绝所有其他输入
答案1
首先,使用以下规则“通过 mc 规则过滤来自端口 20、21、22、80、443、9987、20117、25565 的访问”:
iptables -A INPUT -p tcp -m multiport ! --dports 20,21,22,80,443,9987,20117,25565 -j mc
将无法工作,因为有感叹号。您的规则适用于除 之外的每个端口20,21,22,80,443,9987,20117,25565
。如果您想要“通过 mc 规则过滤来自端口 20、21、22、80、443、9987、20117、25565 的访问”,则应使用:
iptables -A INPUT -p tcp -m multiport --dports 20,21,22,80,443,9987,20117,25565 -j mc
目前,在您的配置中,您只允许一个源地址进行 ssh 访问cache.ovh.net
- 在您的主INPUT
规则中。对于与其他端口的连接,您有规则:
iptables -A mc -m state --state RELATED,ESTABLISHED -j ACCEPT
允许相关和已建立的连接工作。我认为来自您的 mc 自定义规则的源地址的连接应该可以正常工作,但对于您的主规则,您应该 在此行之后INPUT
添加类似以下内容:
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
您还应该检查 DNS 设置。是否ping.ovh.net
解析到正确的 IP 地址?