只是试图做一个简单的脚本,将configurationiptables阻止所有传入和传出的stream量,除了默认端口22上的ssh和端口8888上的udp。
这是我有:
#!/bin/sh # # Flush all current rules from iptables # iptables -F # # Set default policies for INPUT, FORWARD and OUTPUT chains # iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # # Allow SSH connections on tcp port 22 # iptables -A INPUT -i eto0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eto0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # # Set access for localhost # iptables -A INPUT -i lo -j ACCEPT # # Accept connections on 8888 for vpn access from client # iptables -A INPUT -i eth0 -p udp --dport 8888 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --sport 8888 -m state --state ESTABLISHED -j ACCEPT # # Apply forwarding for OpenVPN Tunneling # iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0./24 -o eth0 -j MASQUERADE iptables -A FORWARD -j REJECT # # Enable forwarding # echo 1 > /proc/sys/net/ipv4/ip_forward # # List rules # iptables -L -v
但是,当我运行它,我被locking了我的VPS,不得不重新启动它,以便重新进入。我真的不能看到我要去哪里错了…也是运行此防火墙后,vpn将无法正常工作。
我也想阻止所有端口上的公共IP,但不知道如何。
因为你被locking的原因是“eto0!= eth0”,并且configuration完所有的规则并且你已经允许所有接口上的所有传出stream量,最后configuration策略。
对于ping相关的规则做man iptables并读取icmp
此外,在将来创build一个允许所有规则的东西
/sbin/iptables -P INPUT ALLOW和OUTPUT和FORWARD一样,并把它放在你的cron上,每5/10分钟运行一次,即使有些东西没有用完,你也可以login。