多IP的ssh访问控制

问题:
LINUX系统的服务器有3个IP A B C
我想要的效果是,在防火墙上只允许访问 A 这个IP的999端口,其它另外的2个IP不能访问这个999端口。
如:远程的端口是999,用A加远程端口 999 可以连接得上, 另外的2个IP加999不能连接上。

【方法一】

方案:使用/etc/hosts.allow 限制ip ssh远程登陆访问
规则先匹配hosts.allow 后hosts.deny 如果hosts.allow匹配,忽略hosts.deny

1:修改LINUX 远程端口号,若想使用默认的端口22,此处操作可以省略。
若想修改远程端口号,比如修改成999 , 操作如下:
a: 修改 vi /etc/ssh/sshd_config 中的port端口号为你想设置的服务器的远程端口号,比如999
b: 保存sshd_config配置文件
c: 重启 sshd服务 # service sshd restart

设置完远程端口号后,做如下操作,下面操作的意思是: 将远程端口号比如999、网站端口80、FTP的20、21号端口加入到linux的系统防火墙中,例外放行。
操作命令如下:
#iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 999 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
#service iptables save (注意网卡是不是eth0 )

设置完以上部分, 接下来, 做linux系统IP访问控制

1: #vi /etc/hosts.allow
在这个文件里面加入
sshd : ALL
编辑完毕,保存配置此配置文件

2: #vi /etc/hosts.deny
sshd : B.B.B.B
sshd : C.C.C.C
编辑完毕,保存配置此配置文件

 

【方法二】

方案:ssh 监听多个端口方法
A IP负责监听999端口
B 和 C IP负责监听22 端口
让他们互相独立起来
这样一来,只有A IP能远程通过999这个端口远程连接到服务器 , B 和C ip是不可以的(B和C ip要远程连接服务器需要ssh加22端口号了)。

这样我们就需要设置多个远程端口号了, 如何设置?

修改sshd的配置文件
# vi /etc/ssh/sshd_config
注释掉 Port 这行
#Port
然后添加 ListenAddress 行(可以直接添加到sshd_config配置文件的末尾处)

ListenAddress A.A.A.A:999
ListenAddress B.B.B.B:22
ListenAddress C.C.C.C:22

修改之后,注意保存该配置文件
然后 /etc/int.d/sshd restart 重启sshd服务,使得配置生效。
需要注意的是 iptables同样要开放端口 (若不清楚的话, 我们就不开启系统防火墙, service iptables stop关闭系统防火墙)
若需要开系统防火墙,那就需要添加iptables的例外端口。

操作命令如下:
#iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 999 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
#service iptables save (注意网卡是不是eth0 )

测试!

 

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部