防火墙阻止我使用 ssh

防火墙阻止我使用 ssh

只是尝试编写一个简单的脚本,该脚本将配置 iptables 以阻止除默认端口 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

但是当我运行它时,我被锁定在我的 vps 之外,必须重新启动它才能重新进入。我真的不知道我哪里做错了......而且运行这个防火墙后 vpn 将无法工作。

我还想阻止所有端口上对公共 IP 的所有 ping,但不知道如何做。

答案1

您被锁定的原因是“eto0!=eth0”,在配置完所有规则并允许所有接口上的所有传出流量后,最后配置策略。

有关 ping 的规则请继续man iptables阅读icmp

此外,将来还可以创建一个允许所有规则,例如

/sbin/iptables -P INPUT ALLOW对 OUTPUT 和 FORWARD 也同样如此,将其放在你的 cron 上,每 5/10 分钟运行一次,这样,即使出现某些失控的情况,你也可以登录。

相关内容