淘主机 发表于 2012-4-28 23:19:17

Linux服务器禁止某个IP访问的方法(防止SSH暴力破解等)

Linux服务器有的时候如果遇到使用字典猜解root密码的情况就需要把那些有问题的IP屏蔽掉。

/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

如果请求访问的主机名或IP不包含在/etc/hosts.allow中,那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或IP有没有包含在hosts.deny文件中。如果包含,那么访问就被拒绝;如果既不包含在/etc/hosts.allow中,又不包含在/etc/hosts.deny中,那么此访问也被允许。

文件内的命令格式规则:

<daemon list>:<client list>[:<option>:<option>:...]

daemon list   服务进程名列表,如telnet的服务进程名为in.telnetd
client list   访问控制的客户端列表,可以写域名、主机名或网段,如.taohost.net或者192.168.1.
option          可选选项,这里可以是某些命令,也可以是指定的日志文件

例子:/etc/hosts.allow文件

in.telnetd:.taohost.net
vsftpd:192.168.0.
sshd:192.168.0.0/255.255.255.0

第一行taohost.net表示,只有taohost.net这个域里的主机允许访问TELNET服务,注意vpser.net前面的那个点(.)。
第二行表示,只有192.168.0这个网段的用户允许访问FTP服务,注意0后面的点(.)。
第三行表示,只有192.168.0这个网段的用户允许访问SSH服务,注意这里不能写为192.168.0.0/24。虽然在CISCO路由器种这两中写法是等同的。

在/etc/hosts.deny里加上:

sshd:11.11.11.11
sshd:abc.com

这样就把11.11.11.11 和abc.com 访问SSH的全部给拒绝了!

Linux也有GFW啊!

淘主机 发表于 2012-4-28 23:28:13

Linux 服务器上安装DenyHosts阻止SSH暴力攻击

现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议使用Linux服务器的用户尽量设置复杂的ssh登录密码。

1楼的帖子中虽然可以屏蔽一部分IP地址,但是功能方面欠缺,如:不能自动屏蔽。

下面介绍denyhosts这款软件了,它会分析/var/log/secure(redhat,Fedora Core)等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。很好很强大吧?

下面介绍下如何使用:

DenyHosts官方网站为:http://denyhosts.sourceforge.net/ 本站下载地址:

1、下载DenyHosts 并解压

# wget http://downloads.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6

2、安装、配置和启动

# python setup.py install
默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# cp daemon-control-dist daemon-control
默认的设置已经可以适合centos系统环境,你们可以使用vi命令查看一下denyhosts.cfg和daemon-control,里面有详细的解释
接着使用下面命令启动denyhosts程序
# chown root daemon-control
# chmod 700 daemon-control
# ./daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置:
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 2345 denyhosts on
或者执行下面的命令,将会修改/etc/rc.local文件:
# echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local

3、DenyHosts配置文件denyhosts.cfg说明:

SECURE_LOG = /var/log/secure
#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。

HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件

PURGE_DENY = 5m
#过多久后清除已经禁止的

BLOCK_SERVICE= sshd
#禁止的服务名

DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数

DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数

DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数

HOSTNAME_LOOKUP=NO
#是否做域名反解

DAEMON_LOG = /var/log/denyhosts
#程序日志

更多的说明请查看自带的README文本文件!

这样设置后服务器就会省一些心了,但是各位注意了,安全都是相对的哦,没有绝对安全,请定期或不定期的检查你的服务器,并养成定期备份的好习惯!

内容部分转自vpser!
页: [1]
查看完整版本: Linux服务器禁止某个IP访问的方法(防止SSH暴力破解等)