其实限制IP登陆用防火墙和这没有区别,只是有些没有使用防火墙的服务器,用该方法,就更方便一些。
有2个文件,一个是配置允许规则(/etc/hosts.allow),一个是配置拒绝规则(/etc/hosts.deny)。
设置/etc/hosts.allow允许规则
方法一:代码登录后可见 在最后面添加规则即可
方法二:代码登录后可见
添加单条规则
代码登录后可见 (此规则为允许192.168.0.段的IP访问SSH服务)
添加多条
多个IP用逗号隔开即可:
代码登录后可见
注:代码登录后可见 和代码登录后可见:都是放开一个段的格式
这些规则设置完毕后是默认生效的,如果没有立即生效,可以重启xinetd服务:代码登录后可见
设置/etc/hosts.deny拒绝规则
如果我们只是想拒绝某些ip登陆,其他都允许,则在/etc/hosts.deny中添加需要拒绝的IP或IP段即可,添加规则和/etc/hosts/allow一样。
但一般情况使用更多的是,只允许某些IP或IP段能登陆,其他都拒绝,则我们在allow中设置好允许登陆的IP,然后deny中直接all(拒绝所有)即可。 因为规则是以allow优先的,即使重复了,也是以allow为准。
拒绝所有
设置拒绝所有之前,务必先配置好allow中的规则,否则自己也登陆不了了,只能通过后台弄,稍显麻烦。
代码登录后可见
这些规则设置完毕后是默认生效的,如果没有立即生效,可以重启xinetd服务:代码登录后可见
hosts.deny不生效处理方法
- hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。
- 查看某服务(如ssh)是否应用了libwrapped库文件的方法是:
ldd /usr/sbin/sshd |grep libwrap.so.0
- 没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件,这台服务器不清楚为什么不支持)
- 我这有台主机就不支持【BClinux8.2】,如下,2个服务和正常的对比,白色的为正常的。
- 方式1
- 方式2
解决方法【linux官方下载rpm包地址】
最极端的方式重新安装SSH。慎用
代码登录后可见
你可以根据你的系统,自行百度 : 安装 代码登录后可见方法
提供一个官方下载rpm包的地址,官方的,很全。
[链接登录后可见]
iptables拒绝所有ip访问22端口,开通白名单
临时生效
只允许1.2.3.4上使用ssh远程登录,其他IP禁止使用ssh,注意顺序,要先允许在拒绝
代码登录后可见