召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1691|回复: 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 的功能。
9 e3 {- X7 h* ?6 s; f4 a
使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch* P) i* N5 X  E5 x( i
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。2 t9 {- f# [* L; [$ H6 p$ n/ @/ K. N* R
使用以下命令即可安装 DenyHosts- I* M5 s9 ?0 w8 H: q. G( k
+ K, S) L( d$ P) ~
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件
    & T2 c6 F' i6 i  \7 Q
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)
    7 s4 Q" w& h: }+ {; [8 F
; Y* |2 W  D$ p& c
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    6 c  E6 E  F: }, Z/ L
  2.   
    ( Y# _6 T: Y1 O1 p; O
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    0 @; B* Y  O# |0 h; t
  4.   
    , K% L8 F$ z' e, G
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟( ?5 O3 C/ {7 E- K
  6.   
    + x! ]' |+ q7 o0 D8 y
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    4 d8 ^' }5 N9 s. b0 J) y- k
  8.   
    $ f, W  I- B& e4 k- E
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    . n: @7 C0 p* N
  10.   ; e& r/ o# z. e
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    4 p- _" \6 g& z6 d* o
  12.   3 N) C/ @6 D. b3 h. H8 F
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 ( m# d# s: j0 j7 G# e: M
  14.   ! w5 R1 e0 @4 @9 F, U8 @. t
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    : ~8 l& L7 U/ }$ p+ ^
  16.   2 v" |5 B9 ?9 z
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)( j) V& V7 {  G9 l; ~
  18.   
    2 [0 y3 ]/ K# H4 C6 J. g7 Q8 p2 w
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解+ i; W. G: ]  t/ |9 s. B
  20.   ) T' A2 W, P1 A6 C. G
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    " r4 Y% B9 p  O
  22.   5 g0 l) n! c- F, G& g
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 $ I# ]* E% w' D* B- U
  24.   SMTP_HOST = localhost
    " }  d' b) x% \& n# w* Q
  25.   SMTP_PORT = 25 ( D2 y% \+ u0 v9 J7 N4 r* g' z; W) n, o
  26.   SMTP_FROM = DenyHosts  
    + ^( _0 O) [" V7 ?) T
  27.   SMTP_SUBJECT = DenyHosts Report
    ; l- @) ?0 d2 A6 N% u
  28.   
    3 c% M: U' X. w( P* L  a* W. Y6 r7 U% o
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    2 x9 g9 N8 c: C; n: d
  30.   ' h  l7 u: |" l) T
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间% ]; M/ Q# c; |* t" F4 \$ Y
  32.   + o0 L4 _5 H( e5 ?4 F* n2 h! d8 B
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间! U2 T  f5 T$ _$ c  A3 t1 X

  34. : T3 Y: v3 f0 \6 c; Q. g# [3 x
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间. @3 c" J( e" O
  36.   5 |+ G. Q: C7 W  H
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件, e* L  o4 n. ^: a3 m0 ]
  38. & ?6 l6 S8 G$ B

  39. , H5 F) N+ i; _: ~- v1 y
复制代码
' p6 Z7 W6 ^8 l' k. {$ s
- h0 |1 [" n) D. `! C. ?
  • 查看和配置 IP 黑名单、白名单- n$ f* ~% u/ J0 W0 k% B
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    7 w/ S  j+ ]6 c) l
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
8 a0 d& d8 x" |
    + B6 t  d  a  v) _

    . C) e8 ?& s& D3 S
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行7 Y) m; B1 }5 C7 D1 V* U
    /var/lib/denyhosts/hosts0 e. z1 n2 d+ n2 G# ^& `) `; K
    /var/lib/denyhosts/hosts-restricted
    # p; N+ D0 w/ z, l, ~ /var/lib/denyhosts/hosts-root# g/ L" f4 F8 t- |+ N/ S6 n+ K
    /var/lib/denyhosts/hosts-valid
    8 M6 t- {) w2 c, n /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:7 S0 w( H& i, c) K
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    . @) \& ?% e3 k" k8 l) u6 b 搜索结果可能有( T( n8 L: f2 R( T* m% F" S4 P3 v
    /var/lib/denyhosts/hosts9 @. d$ Z( o8 K
    /var/lib/denyhosts/hosts-restricted1 x  `: h% u$ V" y! k0 j9 O
    /var/lib/denyhosts/hosts-root3 c- }8 Q" E% \4 [( D; y
    /var/lib/denyhosts/hosts-valid9 j" ^; q  M1 d4 S
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    8 J( W' L: w$ ]; h4 D, C: v# D# y
  /var/lib/denyhosts/allowed-hosts# n; L' P( v+ ], J. T3 `* Q2 Y
    * w0 k' Q3 d! [7 k3 o
    7 e4 B# L& g: ?( ^1 t3 R
  • 在文件中的位置大概在这段代码下方:& J: ^- }* g% X5 c5 K3 x

" G$ T4 v( t$ A/ M' ?1 L: B        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    3 o2 u% l4 g$ F/ y1 }) R+ g( @' \

    1 f* D& L7 @' H3 Q0 S& H+ J
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁0 h+ k8 J& @0 j9 H: ]

* g  s7 |" ?+ d$ i7 W& ?0 ]; M" A2 z# y+ d: p! C

! b# Q) A! J6 M3 x) |$ U% l- @7 X* u# F* j: ?. b, Q

$ ], S$ v4 ~, ~! d5 l$ K  Z0 @5 n, l$ M& f& K, U! a! w* N$ E
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
9 ~" o* h* s: F! Bhttps://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, 2025-11-30 14:59 , Processed in 0.039198 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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