Linux(Ubuntu)SSH登录白名单设置

为了服务器安全,我们可以通过白名单的方法对服务器登录和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 <YOUR_IP> -p tcp -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s <YOUR_IP> -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 <YOUR_IP> -p tcp -m tcp --dport 22 -j ACCEPT
/sbin/iptables -D INPUT -s <YOUR_IP> -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

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注