召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1936|回复: 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 的功能。

& {# Y! ?" |- q使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch, W, }& T- s5 b9 o
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
. \% r! E# |9 r2 _3 [ 使用以下命令即可安装 DenyHosts
( W9 q: ]5 k6 x6 B; w: y0 W) X
: B! f# G( y$ K, [( t# b; P
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件
    5 L* H; Z6 y+ s# H0 {
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)
    % m, O: d. g) L  O* y: A
" n6 \- F3 v! Z: A
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件2 t- `- _7 f3 s4 f
  2.   
    , }) V9 d8 y% _6 K1 V) F
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny: D+ c8 x% u) K4 s9 W$ a( ~; e
  4.   " p4 i$ l; d, k- N: Y3 R0 F( i
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    $ e9 h' w( v3 m8 Y7 a! z9 k
  6.   
    ( f, [* O. X; f% y* v* |; w
  7.   BLOCK_SERVICE  = sshd  #阻止服务名& h& w* v7 Q* @8 w4 m
  8.   ( G5 S. P  X! G2 c/ P! G) x5 ~
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 7 O! \! r4 e! z1 d$ c0 N
  10.   
    8 J4 w" y. p3 w) I
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 ) G+ @" F6 H/ v& d4 ~
  12.   # A; A7 n4 [, \% _# }& t5 k
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要
    2 r! F% |  a& B* a, q, K1 s
  14.   ' v2 W5 i. }- G" z6 p& h" R1 B4 v
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 4 x- \8 F& X* \' T% O" o2 j2 y$ |
  16.   9 E! D  N9 i; v
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    $ E0 S: Q; L; S& I5 ^
  18.     @" i' d" r5 v' a" T# L% ^
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    % N: {' o4 j9 J# v
  20.   
    " c- E; R: A* _, T& Y% ]+ |
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。9 u: F) X5 q0 A& E  m+ e( J5 ?! Q& n
  22.   
    6 O. w' y( E' _8 j
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    7 N5 [; o( g8 z! x/ A" o* w1 M
  24.   SMTP_HOST = localhost
    8 i- n- p# i  D" i
  25.   SMTP_PORT = 25
    % T9 ^! t6 \* }2 G/ T. ^0 b
  26.   SMTP_FROM = DenyHosts  8 v# q; l3 `+ O7 p: y, [; P0 G
  27.   SMTP_SUBJECT = DenyHosts Report2 c8 e# }4 |+ P& W5 u3 R$ |! i7 o
  28.     R; z' V" c  Y7 t1 Y
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天). S; X! |. ]' p$ C2 Q
  30.   
    4 a! o' Z  }# A. o4 r6 }
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间+ m+ `+ j; [) J
  32.   + ~5 D- t& r5 T
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间; S& |  I6 I! i! L
  34. 5 z* I+ O9 U2 R8 ~
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间  S) z" g  {6 P; M  k& P% }
  36.   ' E: z. F5 P3 f" g
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件8 X0 G; ~9 Y7 m0 L. V  }8 V3 c, o

  38. 0 L0 d2 {3 L$ ]

  39. & u- X. E( ~- w5 l
复制代码

2 z" O" d0 B. b7 n7 x7 Y# U
6 ?+ x5 b; K4 X& W# M6 d2 Y% e% \
  • 查看和配置 IP 黑名单、白名单
    9 o8 v( [3 V+ h8 G7 W
  1. vi /etc/hosts.deny    //黑名单(拦截记录)4 `6 j$ W( v$ r( x" `7 l
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
2 U9 K4 t) }8 V, p

    ; a5 n8 ^) P, C8 Z/ y( \0 |* x, T, d$ p8 l) Y. F
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行& G5 u8 A& V  M0 v& q; t2 C
    /var/lib/denyhosts/hosts
    ( h& K! w+ m7 `6 j& S  d /var/lib/denyhosts/hosts-restricted
    9 S; I% c6 p/ G& F+ |. m  y) j; U /var/lib/denyhosts/hosts-root
    # P$ O$ I& V9 S' ^' o1 ? /var/lib/denyhosts/hosts-valid
    0 w" F- W4 R5 D4 [$ x- N /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:  ?3 B+ `# W2 I7 ~5 F! r
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*% N6 Q, S- _$ Z0 f& s' l
    搜索结果可能有$ c8 h, }: g( L& H9 I
    /var/lib/denyhosts/hosts
    6 R3 @' d+ b& n+ O" F- q3 v /var/lib/denyhosts/hosts-restricted
    . d) }2 m( @8 _  W6 ? /var/lib/denyhosts/hosts-root
    ; m, F* [  J. b1 r /var/lib/denyhosts/hosts-valid! x3 m$ J" Q8 E: t0 D# r: t
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    5 O' M* H! Y" Y' M9 m
  /var/lib/denyhosts/allowed-hosts7 D: q7 {5 l5 M" o7 z. Y' a* g3 P
    7 `) S9 ?/ _! {; K. ?4 h3 Y

    6 j  K' \  U0 e; o1 B4 M% P
  • 在文件中的位置大概在这段代码下方:
    " p4 ~8 x9 l$ T, }% w! X
: C) }: c, d- ^( I5 V
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    9 P' d9 I' P6 k+ k" r% H5 T. T' Q7 j5 `, l( ]$ u& C
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁* c* a6 r; M! t2 A0 X# G

; G3 p# ?* O( v4 Q
4 F+ W* J1 h6 I& T; r
# Z- W$ b8 ?0 q3 k6 I, ]6 @) R) I7 P% t! D/ R$ ^* S, C4 m

5 B* j  E0 n  K' m! m3 B% h8 p! y% p* H% ^3 ]; f
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录" p% a. J4 Z+ K
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-5-20 12:17 , Processed in 0.060725 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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