如何在不危及我的 vps 状态的情况下阻止除 vpn 和 ssh 之外的所有连接?

如何在不危及我的 vps 状态的情况下阻止除 vpn 和 ssh 之外的所有连接?

我有一些 vps 空间,但根据我在 iftop 中看到的内容,我得到了很多扫描结果。我尝试了一些 iptables 东西,但把我看到的所有 ips 都放到日志中既累又没用。我想知道最好的方法是什么,以确保我可以与我的 vps 建立稳定的连接,同时保持几乎所有东西都关闭,直到我想通过 iptables 启用。/

目前我使用的是 Debian,并且在上面运行了活动的 Vpn 和 Ssh。我希望使用最基本的必需品 +vpn +ssh 来接受传入和传出连接,其余的可以放在我的前院之外。

基本上,我正在寻找一个可以与 Debian 配合使用的命令列表。我根据在网上看到的内容尝试了很多东西。有些东西出错了,有些东西让我感到困惑。无论如何,我能够将一些事情结合起来,比如接受 vpn 上的连接。我想我只是需要一个清晰的列表。

我不需要定义负责连接的单个 IP,因此端口会帮我完成这项工作。我可以稍后自己添加 IP 目的地。

谢谢

答案1

以下是教程:https://help.ubuntu.com/community/IptablesHowTo

总结一下:

# Allow packets for existing connections (this is required for replies
# from the internet to connections you initiate from the vps):
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Allow connecting to SSH, the established session is handled above:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT

# Allow connecting to the VPN server, assuming default OpenVPN w/ TCP:
iptables -A INPUT -p tcp --dport openvpn -j ACCEPT

# Does anybody need to ping you? If you never want to do that:
# iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j DROP
#
# (Almost) All other ICMP is important, don't bother trying to make exceptions:
iptables -A INPUT -p icmp -j ACCEPT

# If you run OpenVPN in UDP mode, want to run traceroute to yourself,
# or use NFS over UDP, accept them here. Remember to explicitly allow replies,
# for services you access.

# Drop everything else. Two ways to do this:
# The common catch-all rule, which makes adding rules later harder
# (need to "-I"nsert instead of "-A"ppend; order matters!):
# iptables -A INPUT -j DROP
#
# Alternatively, set the default policy:
iptables -P INPUT DROP

但是,我不确定这样做能给你带来什么好处。扫描数据包无论如何都会进入你的网络接口,因此你只需要保存出站的“此端口上没有任何监听”回复(如果有监听:如果不需要,请将其关闭,如果需要,则无论如何都需要允许访问),并且只要打开几个端口,你无论如何都不会隐形。

不过,祝你好运。请记住,很容易意外把自己锁在门外,所以要小心行事。

相关内容