liunx系统的SSH远程端口非常容易遭受口令爆破,如果密码设置太简单很容易直接被网络攻击爆破而植入恶意程序,木马,恶意脚本等,进而导致数据被删,盗,沦为黑客的肉鸡对外DDoS,服务器公网IP容易被监管部门封禁,给运营带来诸多的麻烦。
那如何防止类似的情况发生呢 ?
用iptables防火墙设置远程端口放行,只允许自己本地IP访问,注:此方法适合本地IP是固定用户或固定IP段。
centos 6:
只放行本地IP 访问:
iptables -I INPUT -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT
拦截所有22端口访问:
iptables -I INPUT -p tcp --dport 22 -j DROP
开放用到业务端口比如80端口:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
保存:
service iptables save
重启iptable生效:
service iptables restart
centos 7 :
安装iptable:
yum install iptables.service
只放行本地IP 访问:
iptables -I INPUT -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT
拦截所有22端口访问:
iptables -I INPUT -p tcp --dport 22 -j DROP
开放用到业务端口比如80端口:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
保存:
service iptables save
重启iptable生效:
systemctl restart iptables.service
那么问题来了,大部分用户本地IP都是动态分配,过几天就会变一个IP ,万一IP变了 那进不去岂不是非常麻烦?
有些人本地IP变化是有规律的,比如一个固定的网段,115.224.0.0-115.225.255.255
通过https://ipip.net/ IP查询看下自己的本地IP城域网段115.224.0.0/12
那IP规则指定访问规则可以这样改写:
iptables -I INPUT -s 115.224.0.0/12 -p tcp --dport 22 -j ACCEPT