远程服务器安全 : iptables: 给 4 分钟?

远程服务器安全 : iptables: 给 4 分钟?

远程服务器

我想配置 iptables 来阻止所有传入流量..

..系统完全启动后4分钟

这样我就可以拥有4 分钟即可通过 SSH 进行连接
我被锁在门外之前。

实现这一目标的最佳方法是什么?

步骤1可能是:

 chkconfig iptables off

什么是第2步

答案1

您可以创建一个在系统启动时运行的脚本,以便它首先休眠 4 分钟,然后执行所需的 iptables 指令。

就像是:

#!/bin/bash
/etc/init.d/iptables stop
sleep 4m
/etc/init.d/iptables start
iptables -P INPUT DROP

为了在系统启动时执行它,请chmod +x yourscript.sh在 /etc/init.d 下复制具有适当权限 ( ) 的脚本并更新您的 rc,例如:

update-rc.d yourscript.sh defaults 100

答案2

从安全角度来看,最好在运行任何应用程序之前就安装防火墙。

因此,您可能更适合使用knockd.通过这种方式,您可以设置端口敲门序列,打开ssh端口并在指定时间后关闭端口。

示例配置可以是:

/etc/knockd.conf
[options]
    logfile = /var/log/knockd.log

[opencloseSSH]
                   sequence      = 8081,8082,8083
                   seq_timeout   = 5
                   tcpflags      = syn
                   start_command = /usr/sbin/iptables -I IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT
                   cmd_timeout   = 15
                   stop_command  = /usr/sbin/iptables -D IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT

如果你想进入,你可以使用类似的东西:

nc -w 1 myhost 8081
nc -w 1 myhost 8082
nc -w 1 myhost 8083
ssh user@myhost

由于我们仅检查数据包,因此没有必要为上述端口设置侦听器syn。不过,有必要在外部防火墙上打开端口,以便数据包可以到达您的主机。您还可以使用更常见的端口,例如 80,25,443,这些端口很可能已经开放。

根据配置,此序列必须在 5 秒内完成,15 秒后端口将再次关闭。现有会话将保持打开状态,因此可以安全使用。

也可以看看http://www.zeroflux.org/projects/knock有关如何配置此功能的详细信息。

相关内容