SSHログイン失敗の記録と防止(CentOS):DenyHostsの予備分析

1sshレコード

環境:サーバー、システムCentOS 7.2

1.1通常のログインを表示する

コマンドを使用する

last

1.2sshログイン失敗レコードの表示

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

2ブルートフォースクラッキングを防ぐためにdenyhostsを使用します

  DenyHostsはPython言語で記述されたプログラムで、sshdログファイル/ var / log / secureを分析し、攻撃が繰り返されるとIPを/etc/hosts.denyファイルに記録して、IPを自動的にスクリーニングする機能を実現します。

2.1インストールスクリプト

   インストールサーバーは、インターネットにアクセスして/ workディレクトリを作成する必要があります

#!/bin/bash
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz    #下载软件 
tar -zxvf DenyHosts-2.6.tar.gz                                  #解压
mv DenyHosts-2.6 denyhost                                       #为了方便改个名
cd denyhost/                                                    #进入目录
yum install python -y                                           #安装python
python setup.py install                                         #安装denyhost,脚本
cd /usr/share/denyhosts/                                        #进入配置目录
cp daemon-control-dist daemon-control                           #为了方便改变配置文件名称
cp denyhosts.cfg-dist denyhosts.cfg                             #修改服务文件名称
chown root daemon-control                                       #修改服务文件名称
chmod 700 daemon-control                                        #提高安全级别修改权限
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts #创建启动服务连接软连接
chkconfig denyhosts on                                          #添加启动项
cp denyhosts.cfg denyhosts.cfg.bak                          #备份配置文件为修改配置做准备
#cat /workspace/denyhost.txt > /usr/share/denyhosts/denyhosts.cfg  
#将配置文件内容导入配置文件我的配置文件安装之前已经配置好了
/etc/init.d/denyhosts start                                     #启动服务

 

エコーインストールが成功しました!

2.2構成ファイルの内容

#cat /workspace/denyhost.txt> /usr/share/denyhosts/denyhosts.cfg

########################### 2 ###################### ############

[root@107 workspace]# more denyhost.txt

SECURE_LOG = /var/log/secure

#ssh日志文件

HOSTS_DENY = /etc/hosts.deny

#将阻止IP写入到hosts.deny

PURGE_DENY = 5m

#过多久后清除已经禁止的其中w代表周d代表天h代表小时s代表秒m代表分钟

BLOCK_SERVICE = sshd

#阻止服务名

DENY_THRESHOLD_INVALID = 5

#允许无效用户在/etc/passwd未列出登录失败次数,允许无效用户登录失败的次数.

DENY_THRESHOLD_VALID = 5

#允许普通用户登录失败的次数

DENY_THRESHOLD_ROOT = 5

#允许root登录失败的次数

DENY_THRESHOLD_RESTRICTED = 1

#设定 deny host 写入到该资料夹

WORK_DIR = /usr/share/denyhosts/data

#将deny的host或ip纪录到Work_dir中

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = YES

HOSTNAME_LOOKUP=YES

#是否做域名反解

LOCK_FILE = /var/lock/subsys/denyhosts

#将DenyHOts启动的pid纪录到LOCK_FILE中已确保服务正确启动防止同时启动多个服务。

ADMIN_EMAIL = [email protected]

#设置管理员邮件地址

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts

SMTP_SUBJECT = DenyHosts Report

AGE_RESET_VALID=1d

#有效用户登录失败计数归零的时间

AGE_RESET_ROOT=1d

#root用户登录失败计数归零的时间

AGE_RESET_RESTRICTED=5d

#用户的失败登录计数重置为0的时间(/usr/share/denyhosts/data/restricted-usernames)

AGE_RESET_INVALID=10d

#无效用户登录失败计数归零的时间

DAEMON_LOG = /var/log/denyhosts

#自己的日志文件

DAEMON_SLEEP = 30s

DAEMON_PURGE = 5m

#该项与PURGE_DENY 设置成一样也是清除hosts.deniedssh 用户的时间

2.3その他

    禁止されているホストIPを削除して、許可されているホストのリストに追加する場合は、/ etc /hosts.denyでのみ削除しても意味がありません。次の操作を入力するには、/ var / lib / denyhostsディレクトリに入る必要があります

1.DenyHostsサービスを停止します$ sudo service denyhosts stop

2./etc/hosts.denyでキャンセルするホストIPを削除します

3.DenyHosts作業ディレクトリ内のすべてのファイルを編集して渡します

$ sudo grep 192.168.1.191 / usr / share / denyhosts / data / *

次に、ファイル内でキャンセルするホストIPの行を1つずつ削除します。

* / usr / share / denyhosts / data / hosts

* / usr / share / denyhosts / data / hosts-制限付き

* / usr / share / denyhosts / data / hosts-root

* / usr / share / denyhosts / data / hosts-valid

* / usr / share / denyhosts / data / users-hosts


4.許可するホストのIPアドレスを追加します

/ var / lib / denyhosts / allowed-hosts

vi / usr / share / denyhosts / data / allowed-hostsps

#ローカルホストをブロックしてはいけません

127.0.0.1

192.168.1。*

5.DenyHostsサービスサービスを開始しますdenyhostsstart

denyhostsサービスステータスの表示:

/etc/init.d/denyhosts status

または

service denyhosts status

 

 

参考資料:

1. DenyHostsの予備的分析

2. SSHログイン失敗ログの表示と攻撃の防止

おすすめ

転載: blog.csdn.net/qq_27158179/article/details/90438932