/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。如果两个文件的配置有冲突,以/etc/hosts.deny为准。下面是一个/etc/hosts.allow的示例:
ALL:127.0.0.1 #允许本机访问本机所有服务进程smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务
ALL关键字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。
今天用来禁止一些恶意的ip地址登陆到服务器。因为远程登陆需要sshd进程,所以:
修改步骤如下:
1:修改“/etc/hosts.allow”文件,在最下面添加一行:
sshd:192.168.100.0/255.255.255.0        #允许局域网内所有机器访问服务器上的sshd进程
sshd:60.28.160.244                                  #允许外网的60.28.160.244访问这个服务器上的sshd进程
2:修改“/etc/hosts.deny”文件,在最后一行添加:
sshd:all                                                    #禁止所有
注:   1):修改前,请先修改“/etc/hosts.allow”文件,并且修改完毕之后切勿立即退出,应该做登陆测试
        2):文件修改后,立即生效,但是对于已经运行的程序则不生效。



1登录主机,如果是普通账户先切换至root账号

su root

 

2编缉/etc/hosts.allow文件

vi /etc/hosts.allow

允许内容

书写格式(改成自自需要的IP或IP段)

ssh允许单个ip

sshd:192.168.220.1

ssh允许ip段

sshd:192.168.220.

telnet允许单个ip

in.telnetd:192.168.220.1

telnet允许ip段

in.telnetd:192.168.221.

 

 

 

 

 

 

 

 

ssh允许192.168.220.1telnet允许192.168.220网段为例,具体在/etc/hosts.allow加入内容如下:

 

 

3、编辑/etc/hosts.deny文件

vi /etc/hosts.deny

在文件中加入:

sshd:ALLin.telnetd:ALL

具体在/etc/hosts.deny加入内容如下:

 

4、保存文件退出编缉后,重启ssh服务telnet服务可选

service sshd  restart
service  xinetd  restart

 

说明:

1.一个IP请求连入,linux的检查策略是先看/etc/hosts.allow中是否允许,如果允许直接放行;如果没有,则再看/etc/hosts.deny中是否禁止,如果禁止那么就禁止连入。

2.实验发现对/etc/hosts.allow/etc/hosts.deny的配置不用重启就立即生效,但不管重启不重启当前已有会话都不会受影响;也就是说对之前已经连入的,即便IP已配置为禁止登录会话仍不会强制断开。不过不知是否所有linux都一样,由此第四步标为可选。

3.网上发现有些教程写成不是sshd而是in.sshd不是in.telnetd而是telnetd的,个人觉得应该是独立启的不用加in.托管于xinetd的需要加in.


参考:

https://blog.csdn.net/u013634961/article/details/39855543

https://www.cnblogs.com/lsdb/p/7095288.html