为了服务器安全,我们可以通过白名单的方法对服务器登录和SQL登录进行限制,仅让白名单上的IP通过而禁止其他用户登录SSH和SQL。具体原理为在iptables中加入Accept和Drop规则,仅让Accept的IP地址访问对应端口而Drop其他的请求。实现方法:
我们查看服务器初始的iptables
root@localhost:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
初始的iptables没有任何规则。
在/etc/network/目录中找到if-up.d/ if-down.d/两个文件夹,向其中分别加入shell脚本,不妨命名为login_protection,在脚本中写入IP限制规则。下面给出样例:
#/etc/network/if-up.d/login_protect
#!/usr/bin/env bash
/sbin/iptables -A INPUT -s -p tcp -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s -p tcp -m tcp --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
#/etc/network/if-down.d/login_protect
#!/usr/bin/env bash
/sbin/iptables -D INPUT -s -p tcp -m tcp --dport 22 -j ACCEPT
/sbin/iptables -D INPUT -s -p tcp -m tcp --dport 3306 -j ACCEPT
/sbin/iptables -D INPUT -p tcp -m tcp --dport 22 -j DROP
/sbin/iptables -D INPUT -p tcp -m tcp --dport 3306 -j DROP
将这两个sh设置为可执行,然后重启network服务
~# chmod 755 /etc/network/if-up.d/bfa_protection
~# chmod 755 /etc/network/if-down.d/bfa_protection
~# /etc/init.d/networking restart