远程密令通过iptables临时开启ssh端口
Linux服务器我们一般是通过ssh远程管理,这就需要开启服务器的ssh端口(默认是22),但开启端口有被暴力破解的风险,网上自动扫描的机器一大堆,很多刚刚上线的服务器,并没开通任何服务都经常遭到ssh、ftp之类的扫描和恶意破解,一般情况想我们都是通过设置复杂的密码或修改ssh端口来避免被破解,但就算破解不了密码,但openssh也可能会有漏洞,更改ssh端口还是容易被扫描出来。还有一种选择,我们可以只允许指定IP访问ssh,通过vpn登录管理服务器,但局限很明显,万一紧急情况vpn的那台机器出了问题登录不上去了怎么办?
现在要说的就是一种我觉得比较满意的解决方案,即使用iptables的recent模块,通过“密令”临时开启ssh端口。当然,密令需要根据自己情况设置好,别让它人容易的尝试出来。方法如下:
1、iptables规则设定#指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入sshopen列表。 iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT #检查sshopen列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。 iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
2、临时开启ssh端口方法:
linux下:ping -s 50 host
windows下:ping -l 50 host
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables防火墙recent模块可模块参考:http://linux.fcbu.com/iptables-recent.htm
上一篇:iptables防火墙recent模块使用方法示例详解
下一篇:没有了
下一篇:没有了
评论列表
查看全部0条评论