iptables:如何允许除特定 IP 地址之外的所有人通过 ssh 进行连接?

iptables:如何允许除特定 IP 地址之外的所有人通过 ssh 进行连接?

想问一下这样是否可行,除了某些 IP 之外,允许所有人访问我的 ssh。

目前我得到:

iptables -A INPUT -p tcp -s 123.45.67.89 --dport 22 -j DROP

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

我用被阻止的 IP 测试了它,仍然可以登录。顺序是正确的,不是吗?

请不要提供ufw解决方案,我想要原始 iptables。谢谢。

答案1

好的。找到了问题并解决了我的问题。MASQUERADE这与我评论它有关,并且运行良好。

以下是代码片段:

...

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 8081 -j DROP

# LOCAL NETWORK ACCESS
#/sbin/iptables -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE <- cause
#/sbin/iptables -A POSTROUTING -s 192.168.9.0/24 -o eth0 -j MASQUERADE
/sbin/iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #SSH LOCAL HOME

# BLOCK IPs
/sbin/iptables -A INPUT -s 117.34.70.33 -j DROP

# Zeacurity rules
# {SSH_BLOCK_IPS}

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

...

/sbin/iptables -nvL

答案2

我正在使用 ufw 防火墙执行此操作。我建议您尝试一下,非常简单且成功。

ufw 允许从 123.45.67.89 到任何端口 22

相关内容