召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1964|回复: 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 的功能。
( T; N9 n" U+ c& v7 c8 K3 r8 I2 q% T
使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch* Z! Y. S) v# H0 r
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。  L" c& O7 f1 F$ M( O6 G3 {
使用以下命令即可安装 DenyHosts
1 S3 L! s& p4 Q8 x" t, \. L  W% J! U5 X9 b5 j* J  I; l
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件, O$ D/ w" C- e% H* Z, l
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)8 b- o. e  ]+ L% f

3 p2 @) S5 C3 Q; B+ @% C. d
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    $ r  y; i/ P& e% Q! Z) j: @
  2.   : k: k6 k  U( W$ B( e; C
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny; P% r3 `* g8 U2 L1 n8 j- q
  4.   
    # S1 A2 C6 ~% ?% w, Z6 j" n- p* e
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    3 F, V. v4 M  k: c5 n/ S1 P2 o. L
  6.   7 K# Y  J1 Q" z% i! M
  7.   BLOCK_SERVICE  = sshd  #阻止服务名. X# h, k: Z9 K+ X8 W; y  l
  8.   2 ^/ Z# z1 U) y! _# J: C, m7 D# k
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    7 `/ z* R% f  H) O
  10.   
    % [3 {# i2 U: U: Q8 m
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    5 }0 ?; t8 }7 m2 [& e# w) G
  12.   6 S' Q3 J! B* f  @' e: S3 w4 K# i
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要
    3 x8 I2 O& b& `4 g  H) |
  14.   ; R0 l$ {% K/ m5 E# H
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 5 M3 H" j. G7 ^, `0 W
  16.   ! I0 f% k4 D( ~: {& y& e
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    - G) s1 q4 I8 ]( V7 _' d
  18.   ; [4 t' {5 u5 H/ L4 F/ T) A
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解4 l+ K3 r3 L3 v1 g4 }! y
  20.   
    / ]  m- t8 Z3 w6 j0 E& u% R
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    & B0 ~% P7 ~$ v; Q) |3 l
  22.   
    % @) {' Q0 P: \, g) o
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    2 G7 s& F' W4 q* z: C
  24.   SMTP_HOST = localhost
    6 `# Y! t- L" ~7 _! Y- ^
  25.   SMTP_PORT = 25
    5 [) r: _! m) @0 ]& `- i: I6 N
  26.   SMTP_FROM = DenyHosts  
    ( O/ B3 F, e% D9 p/ i7 A
  27.   SMTP_SUBJECT = DenyHosts Report
    $ O% G2 k$ S. ]- F  i+ Z
  28.   2 R: T6 r3 h% l$ v! m9 c" @1 m$ l
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    8 w1 l! Z( V7 N+ y" e6 k6 u
  30.   
    + R. ~  ]$ W8 o5 w* h" w+ Y
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间
    0 |6 t# ]9 a. V: M
  32.   1 W' P8 t: q8 L( A( g, z
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    0 b" f# D; b1 R& U; U
  34. - n, Z( N4 s: N9 q5 V  S8 X
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间
    " j; t8 w, X1 v5 b+ M
  36.   # j* z. o; N6 `, ]$ a; M
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件9 Q, y: i) w: E0 l/ G) A

  38. " ^  [1 p, U! J2 h. X) F) S
  39. + g6 j, E' i. ]) Z
复制代码
7 d$ I  [5 M  I% k
* W) e! ?; I  ~! w& w
  • 查看和配置 IP 黑名单、白名单: F" m& q; l" Z, e
  1. vi /etc/hosts.deny    //黑名单(拦截记录)% y/ n8 z; A( S
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:. T0 k- t: [7 H; z. m& U, |
    2 J8 A( a2 `2 e. `1 L7 ^: Y

    1 k' V  \' w! o, x/ E  W/ Q
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行7 J# z7 g" ~+ \* z8 c5 S6 N$ v$ R9 X
    /var/lib/denyhosts/hosts
    , Q2 N7 ]4 O( W& O! \8 @) I /var/lib/denyhosts/hosts-restricted
    % E! }0 _1 `& T /var/lib/denyhosts/hosts-root
    : y" u- d$ u1 l$ Q& i7 `3 C" X /var/lib/denyhosts/hosts-valid" n- R8 d8 X! c0 V
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:5 N& n! X* K# j$ `
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    1 `5 G! p  j2 i# o3 L% T 搜索结果可能有& R/ g% A; m6 ~' `) M
    /var/lib/denyhosts/hosts
    ' |' B/ U: D7 ^6 P- L( M/ J  }( m /var/lib/denyhosts/hosts-restricted/ Q: a. M# j3 }9 L' F0 C
    /var/lib/denyhosts/hosts-root
    + S' Q1 J7 h7 q# y" l. ^ /var/lib/denyhosts/hosts-valid
    6 S! a- X0 _$ P9 a/ ]. ] /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    8 g8 x- Q( T. Z3 f! ]7 j9 F7 m
  /var/lib/denyhosts/allowed-hosts4 K; \" s6 r' {
    " L  I: b9 @- B4 q, V0 c) ~+ b; B
    7 S9 ]  O! ?3 m
  • 在文件中的位置大概在这段代码下方:  k$ C  T/ s* p7 Q9 R# T- _( w; D- J
( D+ {, Y; z7 v$ @: m
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    - ]; m. N- r. J1 x  ]
    ! Y! Z# X7 M% d0 p& ?6 c4 v
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁. h2 I* p. y. B4 J" ?9 o8 P
- p5 B4 n' Y& O" `/ g

5 n* @7 @8 Q) Y1 s; Y/ P1 R6 h+ H* C  l* P" j6 e
4 `, w1 U  \8 g- u( m, T# J
9 Z- X8 V5 z7 R5 v$ y6 l8 T  ]

- d' E7 ]. @8 B+ `6 p3 w
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
. b' t% C: N) o! A0 |7 k1 Nhttps://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-6-11 08:59 , Processed in 0.036869 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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