Linux防止暴力破解

Linux防止暴力破解,第1张

Linux防止暴力破解的一种方法

SofM 2020-03-20 15:26:24

修改/etc/hosts.allow和/etc/hosts.deny的配制,来允许或者拒绝哪些IP、主机、用户可以访问。

比如我们在 /etc/hosts.allow中加入sshd:192.168.10.

这样就会允许来自192.168.10.*网段的所有的客户来访问。

如果我们在 /etc/hosts.deny中加入sshd:all,就限制了所有IP地址访问。

当hosts.allow和 host.deny相冲突时,以hosts.allow设置优化。

SSH防暴力破解的解决方法:

1、禁止root用户ssh登陆;

1.1、修改PermitRootLogin项:

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Root /etc/ssh/sshd_config

PermitRootLogin no      ### 将默认的  #PermitRootLogin yes 修改成这样的 ###

# the setting of "PermitRootLogin without-password".

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Root /etc/ssh/sshd_config

PermitRootLogin no      ### 将默认的  #PermitRootLogin yes 修改成这样的 ###

# the setting of "PermitRootLogin without-password".

1.2、重启sshd服务

Stopping sshd:                                   [  OK  ]

Starting sshd:                                   [  OK  ]

Stopping sshd:                                   [  OK  ]

Starting sshd:                                   [  OK  ]

2、修改ssh默认端口22;

2.1、将默认端口22修改为自定义的2020端口

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Port /etc/ssh/sshd_config

Port 2020

#GatewayPorts no

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Port /etc/ssh/sshd_config

Port 2020  

#GatewayPorts no

2.2、在防火墙中加入2020端口的策略

[root@localhost ~]# vi /etc/sysconfig/iptables

[root@localhost ~]# grep 2020 /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2020 -j ACCEPT

[root@localhost ~]# vi /etc/sysconfig/iptables

[root@localhost ~]# grep 2020 /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2020 -j ACCEPT

2.3、重启防火墙策略

[root@localhost ~]# /etc/init.d/iptables restart

iptables: Setting chains to policy ACCEPT: nat filter      [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

iptables: Applying firewall rules:                         [  OK  ]

[root@localhost ~]# /etc/init.d/iptables restart

iptables: Setting chains to policy ACCEPT: nat filter      [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

iptables: Applying firewall rules:                         [  OK  ]

2.4、重启sshd服务

[root@localhost ~]# /etc/init.d/sshd restart

Stopping sshd:                                   [  OK  ]

Starting sshd:                                   [  OK  ]

Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举。

众所周知,暴露在互联网上的计算机是非常危险的。并不要因为网站小,关注的人少或不惹眼就掉以轻心:互联网中的大多数攻击都是没有目的性的,黑客们通过大范围IP端口扫描探测到可能存在漏洞的主机,然后通过自动扫描工具进行穷举破解。笔者的某台服务器在修改SSH 22号端口之前,平均每天接受近百个来自不同IP的连接尝试。而DenyHosts正是这样一款工具。下文将对该工具的安装与使用方法进行介绍。

DenyHosts阻止攻击原理

DenyHosts会自动分析 /var/log/secure 等安全日志文件,当发现异常的连接请求后,会自动将其IP加入到 /etc/hosts.deny 文件中,从而达到阻止此IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常智能。

官方网站

Denyhosts的官方网站为:http://denyhosts.sourceforge.net/ (杜绝Putty后门事件,谨记安全软件官网)

安装方法

1、下载DenyHosts源码并解压(目前最新版为2.6)

1[root@www ~]# wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz

2[root@www ~]# tar zxvf DenyHosts-2.6.tar.gz

3[root@www ~]# cd DenyHosts-2.6

2、安装部署

1[root@www DenyHosts-2.6]# yum install python -y

2[root@www DenyHosts-2.6]# python setup.py install

3、准备好默认的配置文件

1[root@www DenyHosts-2.6]# cd /usr/share/denyhosts/

2[root@www denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg

3[root@www denyhosts]# cp daemon-control-dist daemon-control

4、编辑配置文件denyhosts.cfg

1[root@www denyhosts]# vi denyhosts.cfg

该配置文件结构比较简单,简要说明主要参数如下:

PURGE_DENY:当一个IP被阻止以后,过多长时间被自动解禁。可选如3m(三分钟)、5h(5小时)、2d(两天)、8w(8周)、1y(一年);

PURGE_THRESHOLD:定义了某一IP最多被解封多少次。即某一IP由于暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;

BLOCK_SERVICE:需要阻止的服务名;

DENY_THRESHOLD_INVALID:某一无效用户名(不存在的用户)尝试多少次登录后被阻止;

DENY_THRESHOLD_VALID:某一有效用户名尝试多少次登陆后被阻止(比如账号正确但密码错误),root除外;

DENY_THRESHOLD_ROOT:root用户尝试登录多少次后被阻止;

HOSTNAME_LOOKUP:是否尝试解析源IP的域名;

大家可以根据上面的解释,浏览一遍此配置文件,然后根据自己的需要稍微修改即可。

5、启动Denyhosts

1[root@www denyhosts]# ./daemon-control start

如果需要让DenyHosts每次重启后自动启动,还需要:

6、设置自动启动

设置自动启动可以通过两种方法进行。

第一种是将DenyHosts作为类似apache、mysql一样的服务,这种方法可以通过 /etc/init.d/denyhosts 命令来控制其状态。方法如下:

1[root@www denyhosts]# cd /etc/init.d

2[root@www init.d]# ln -s /usr/share/denyhosts/daemon-control denyhosts

3[root@www init.d]# chkconfig --add denyhosts

4[root@www init.d]# chkconfig -level 2345 denyhosts on

第二种是将Denyhosts直接加入rc.local中自动启动(类似于Windows中的“启动文件夹”):

1[root@www denyhosts]# echo '/usr/share/denyhosts/daemon-control start' >>/etc/rc.local

如果想查看已经被阻止的IP,打开/etc/hosts.deny 文件即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8554400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存