通过iptables规则对SSH进行保护
1. 安装iptables
1 | yum -y install iptables |
2. 配置流量访问的规则
2.1 伪装服务器不在线
简单来说是ping不通,ping主要是icmp协议,我们就添加一条icmp包丢弃的规则。
1 | iptables -t raw -A PREROUTING -p icmp -j DROP |
我们可以看到icmp的丢弃包规则已经成功设置,我们通过ping主机访问一下。
发现已经ping不通且100%丢包,我们开一个白名单给ping的主机(192.168.2.132)试试。
1 | # 除了2.132发来的icmp请求,全部丢弃 |
2.2 设置22端口的tcp请求拦截
1 | iptables -t raw -A PREROUTING -p tcp --dport 22 -j DROP |
我们看看成功ssh的状态:
我们再看看iptables规则修改后的状态:
发现一直收不到请求,连接是失败的。
我们设置一个ssh白名单,给这个服务器,本来是用ip去访问但是如果我们ip变化就连不上服务器了,我们就使用mac地址作为一个识别标识。
1 | # iptables -m模块是不能取反的,所以我们先ACCEPT然后再DROP(如果全部丢弃就无法接受了) |
先看看该mac地址的结果:
再看看其他mac地址的结果:
3. 使用nmap测试扫描
3.1 不使用规则前
1 | nmap -sS 192.168.186.130 |
发现22端口的SSH被扫出来了。
3.2 配置规则
1 | iptables -t raw -A PREROUTING -j DROP # 如果有需要就开一个有条件的白名单自己访问 |
发现22端口并没有被扫出来。