召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2204|回复: 2

DenyHosts让你的linux服务器少受点攻击

[复制链接]

24

主题

5

回帖

199

积分

公司现有员工

积分
199
发表于 2020-3-8 22:50:16 | 显示全部楼层 |阅读模式
DenyHosts 是 Python 语言写的一个程序软件,运行于 Linux 上预防 SSH 暴力破解的,它会分析 sshd 的日志文件(/var/log/secure),当发现重复的攻击时就会记录 IP 到/etc/hosts.deny 文件,从而达到自动屏 IP 的功能。
8 X1 @+ S% h. S) }
使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch6 d3 k7 F9 V% a7 t- D3 O# ]
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。7 g6 g1 v! T: a* h
使用以下命令即可安装 DenyHosts:" ]% ~/ O+ b6 h5 f. U+ _% d

5 e8 D( H! k7 g# d
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件" _# [  Z  W/ }+ s' }+ @
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)* ~4 K: C) l$ z

4 U" E- [+ f5 k8 Q, v7 c
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    : J0 }! x6 d# g5 W- ]  l8 C+ Q& j
  2.   * D9 O# P: @: g) _
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    - I. L) l: |/ C( f7 i. d8 E4 R
  4.     T  b. e/ q" s/ E+ J
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟  Y* w3 z" s( L$ E  D0 U& \
  6.   . t$ t4 J1 v9 p6 N! N: \8 J
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    2 e" U; A2 z: f! X  R' w
  8.   / V2 X" u/ k2 g) }  }
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 4 E- V6 ~& N6 W7 c  t
  10.   . ~: o. \. V% ?- h1 ?( I
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要   R" C  l$ \0 o! x1 t. {! |- Z
  12.   
    3 B% K) s" r& O- t* R/ Q
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 # z, l, r$ P" t5 e( b6 t/ @, I4 ~
  14.   
    7 F6 q9 ^# r$ Q$ Z0 }
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    , p2 Z; ]) x5 n! Q( C0 L8 _2 P( C
  16.   . j8 w2 e; C* w/ f* h5 L/ E/ w
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    8 W$ g/ P5 N8 ]! n' D, F9 @) p' K
  18.   ! `8 Y3 l% i8 h# @, t
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解  F7 _4 K1 L# V+ v2 K: p  r0 N) K
  20.   
    1 i* i/ o( N* H' H
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    $ z& _* O; e/ x) a
  22.   
    ( D) e  G4 X! ]/ Q, @
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 ! E& G# b  E- Y, Q) A$ f1 x
  24.   SMTP_HOST = localhost ' U- U. R5 C7 S; j5 @& j/ ^' @
  25.   SMTP_PORT = 25
    7 ~5 {9 t" k* D# K8 y  G
  26.   SMTP_FROM = DenyHosts  / `. m# Q! M! Z8 n
  27.   SMTP_SUBJECT = DenyHosts Report
    % e+ Q, I# v9 {1 s& @
  28.   4 P/ S3 K3 `8 ?. E+ ]
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)  ~% d8 @8 M# q+ j8 \% ^, L
  30.   7 L9 V1 K" L1 R$ r0 n! A
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间
    % @" V2 N# W# J
  32.   . ^* b( _3 Y9 h
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    7 _( n9 c6 [: A$ [. h6 p$ o

  34. % p9 Q4 E' A/ H% U9 T+ l1 x
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间6 ~. m, Y* c9 E  L* L+ r
  36.   8 I$ B- `" T% Z+ T( h
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件
    6 o: r7 `' M. ~0 ~
  38. ! f9 x/ \* ?' I6 p% e# Y2 L; R

  39. * p" J9 t. B5 z; V
复制代码

( a& E* v6 D  j; Z
: q+ u0 Z/ W3 U$ `
  • 查看和配置 IP 黑名单、白名单
    2 d4 X  u$ a# t0 F* L- @/ \3 Y4 |
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    ) o' N0 `" [7 V+ r+ x2 `
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:% T" \) ^, Q' K( @1 f& l( \
    9 b2 y9 P# Y' ]3 q7 f% G* u
    & P. ^0 K/ L5 @4 C
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    # Q# s, M0 B2 s% m /var/lib/denyhosts/hosts
    ( \% v4 s: ^% e$ C /var/lib/denyhosts/hosts-restricted
    8 V: T# L  b& o( U /var/lib/denyhosts/hosts-root
    ) |- ?2 P% f) F, F2 C/ C/ {0 t  F /var/lib/denyhosts/hosts-valid
    2 A3 f0 C, e2 ~ /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:& ]. |' J& ]* u6 o9 H, K
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*. @) i" Y( C0 Z; C
    搜索结果可能有# S$ @' g8 b2 a# R; C
    /var/lib/denyhosts/hosts
    . E9 `) D; P0 f/ ~, b  F3 a /var/lib/denyhosts/hosts-restricted
    # q6 U2 R3 v1 L% v9 Z  V  M3 K2 Y /var/lib/denyhosts/hosts-root. S% G/ a  s$ t8 M2 i- Y& i
    /var/lib/denyhosts/hosts-valid
    * a; d7 J9 I' E" E& _, x4 W- Q /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到* p& s+ e/ [3 a9 N0 X3 ^# V2 [
  /var/lib/denyhosts/allowed-hosts
2 p$ R7 j6 J+ H( t" p, q2 H' Y' L

    7 z6 r: d; G" T/ K  }1 \
    ! S4 R/ f' Z! r& j& o1 z. H
  • 在文件中的位置大概在这段代码下方:
    . a/ E7 E! _0 @: ?+ y

2 v/ p; c- r( J! O& O        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    , t& d; A2 ?5 D# O* s, e0 d( N$ J2 C
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    7 C3 D+ z0 y' J, a: o, v
/ \* m1 x5 U( z0 {7 E( o4 A
1 n2 S! R4 L: P* N/ `

4 E/ D1 n/ x- A# n) g; ^  Q: E/ @6 ~1 G3 O+ I( a! s$ c! Q1 J& G
1 A" u3 D, b* T( H! |
& r% s( h  G9 a  ^! S/ E- B. S* F
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录/ h8 q. {, }( G) U( j# V) P
https://www.cnblogs.com/l-hh/p/11204251.html
回复 支持 反对

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:39:21 | 显示全部楼层
另外Centos7以上版本可以使用Fail2ban
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|召隆企博汇 ( 粤ICP备14061395号 )

GMT+8, 2026-9-30 01:54 , Processed in 0.035366 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表