召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

* ^4 r& p/ N! E使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
) Y( E. |) ?6 a, n; Z" b& [6 C 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
) r; i  F: V: q; T 使用以下命令即可安装 DenyHosts
8 h0 J/ X2 ?' X" x* r/ e. P7 t$ ^3 T+ q5 j- z; H
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件( }+ A5 }* |& b0 O; E3 x0 a% n
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)9 ?' E& Q) b3 p% i% V$ K
# Q2 m0 V1 E, K( t
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
      }$ b$ m- n) n6 G; z
  2.   
    ; {& `  f3 s$ L/ [( j' H
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny" F2 s8 j1 z5 u8 t
  4.   
    3 X: L0 ^# r) @  Q
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟3 }8 y, d9 [% `  @) q* g4 j
  6.   
    " R7 h2 l" H$ F
  7.   BLOCK_SERVICE  = sshd  #阻止服务名* o5 q8 c$ J2 M, p& I" X+ ~7 p- Q' W
  8.   
    / [8 N* G+ a# K* f  V
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    ' J0 C4 [1 M" j9 S7 c) ]- \: X" M* U
  10.   3 I0 @. c+ ]7 d3 e/ I
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    ! l, K: e2 d8 _+ ]  A" T
  12.   
    3 l7 |2 J( T( b, A* A- t  Y
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要
    5 E+ c" i  x, M- U# A2 p4 h
  14.   
    8 `* d/ I( D6 x" ^& L
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    ) o( _; i; @& c: o$ e3 g" J* y
  16.   , x+ T7 e- i1 Y3 U9 `/ T+ a
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)5 s2 j9 n4 A* c% P: \8 x$ K; {
  18.   / o& U1 G5 m" g' ~, u1 Z  i/ p
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解8 K; \8 {/ o  r) ]( k, W2 B7 O
  20.   4 u; Z. o9 \% g4 H
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。$ Z) j+ I8 w8 J- |7 i2 P) y- a
  22.   2 w8 N4 w5 c, d$ \, G
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 / X1 X- C1 N' w, ?0 s
  24.   SMTP_HOST = localhost   S$ A8 y' U& m& }8 |$ R
  25.   SMTP_PORT = 25 ' A  l% ^8 f- }3 b% @" g
  26.   SMTP_FROM = DenyHosts  1 e- f6 ~. {" D5 [# |$ Z. v( J
  27.   SMTP_SUBJECT = DenyHosts Report4 }: [) }0 G, o3 D4 l$ m; n
  28.   3 o/ E  g" |* c2 F' @/ l
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    2 ~0 f  c% |1 F7 V5 j1 R4 `
  30.   ) z4 N) B+ d+ p3 K6 x/ N, ~' c* ]
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间2 I" h2 `" Y/ p4 J: W2 e
  32.   5 ~3 ^0 R- n) t: F/ P! `4 R
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间+ P7 n! \) T' w! V

  34. 9 r# T( i2 D# Q. w& O; W
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间
    2 x) h" g5 a1 _% u* W1 Q5 m+ H0 ]. D4 a
  36.   
    6 ^/ Z1 B& W/ T6 `/ B5 L
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件: c, z% Z; ]; n& ?

  38. % l8 A- ~: E0 k
  39. 3 R9 y0 U. e: F  L) f9 T: C6 e& z
复制代码
2 l  D- U+ p1 u. p. B

- T0 Y* g: {, s, u. @8 z
  • 查看和配置 IP 黑名单、白名单
    / X% `6 w, }8 \5 s
  1. vi /etc/hosts.deny    //黑名单(拦截记录)/ d9 l# \) j, \6 f# O6 ]- B
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
6 G4 R2 a  \4 b2 x4 Z
    4 P( l" j/ Z5 j* v
    & O; i# |* h% A, K
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行& j, a. M: k# }# e# m. K4 z% Y5 H7 l
    /var/lib/denyhosts/hosts( p' d% h( ^1 \+ B- X: H. u! L
    /var/lib/denyhosts/hosts-restricted( X' o. ]" O% l4 b& V% \$ @1 D5 u
    /var/lib/denyhosts/hosts-root
    8 k, a/ x0 f) a. E9 _% G /var/lib/denyhosts/hosts-valid; j6 v, A9 p% I6 X4 a/ y
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    5 ]  D: Q- I: k1 A/ I5 f+ T4 q $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*- t$ y- N. P' E0 u& @, {
    搜索结果可能有: s7 ?- o3 V2 l4 w7 a1 k
    /var/lib/denyhosts/hosts4 k2 [7 @& D2 b& }& _9 Z8 B2 e
    /var/lib/denyhosts/hosts-restricted5 r8 U6 P# E* }8 a, v- ~7 Y
    /var/lib/denyhosts/hosts-root* e! _, F9 a, m7 C
    /var/lib/denyhosts/hosts-valid
    * P; w* K% S4 n9 z  T6 { /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    - t) J( l( [) z" h
  /var/lib/denyhosts/allowed-hosts9 N/ ?) [5 x6 a" x$ O
    ) ^  g) k% |5 M. D) i# x

    % z0 ~1 s! |1 j) ~
  • 在文件中的位置大概在这段代码下方:
    $ d$ U( b: g' b% B
* o) Z# p; C- D$ w5 J' v7 i4 E" [& G
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    2 U, W0 F7 v9 Z$ O; e) q2 T$ x$ o' Y' s2 w3 y1 B, d3 \
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁( u% I$ L' T- h

+ a$ D, O& R0 W) l) c  C9 K7 K
4 b7 J- U  n% t( @. P3 H& j. m9 i! m( J5 V7 k: x

7 J% a3 i4 c( t  m6 x. W. m, j. e. O; j

0 z* C6 L1 K$ @# B( k" y& g
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
* C- U4 W' c& i& w8 k' v/ zhttps://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-7-5 15:46 , Processed in 0.036145 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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