召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

* k- Y) P$ B' M# v3 I使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
* V5 S0 N  r5 o9 t. K) i 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
5 n7 r; q- {9 u- A, e; D8 V 使用以下命令即可安装 DenyHosts5 X0 J" r+ Z5 P/ H8 a7 E: _

* |" J+ j- c& q" B7 O9 V3 L: H
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件
    " n- q6 y" z" x" o- M7 ^  f; i
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)! ~+ k$ E; ^& H0 |2 m) {! Y+ s
0 n6 {5 ^8 N) D' e5 r- I6 {% Q; T
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件( N( y8 U" p: P, Z8 E
  2.   , g$ L% w- c) `& ~4 r1 I. ]
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    3 \: u; i; a: p7 t$ F1 r
  4.   : S! A, }7 a( L
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
      D) P5 i3 x  d" k
  6.   
    $ D* y+ q3 V5 `/ ^- a
  7.   BLOCK_SERVICE  = sshd  #阻止服务名. J: ^6 Q0 p5 _! }
  8.   # y: t. n! ?3 W
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    # V' y) B; q$ S
  10.   % j4 Z& b6 O3 L( l% G
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 6 ?7 H; s" E) [- F0 t9 v1 S1 {( c3 w4 l2 U
  12.   " n" W/ H$ F$ q5 z: C1 B$ C# ?+ f
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 ) J6 Q& i7 u2 m
  14.   $ k3 R  }0 p  C
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    ) c9 c1 V/ r* b: g) Q8 B3 T% Q- G: E
  16.   
    / H) D7 T, ~- {0 S- [, l# A' Z
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)- L2 {' Q% _4 c, G
  18.   
    ' |# X' u% l: \: T9 J
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    # b; J  ~0 J8 r8 i+ |; e
  20.   
    9 r# ^+ \7 l, i' |' ]: J6 t( Y  q. K
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。3 b- _' k9 f# {! G$ c( F/ B2 ~8 L
  22.   7 U  U2 J7 E+ r, n9 B
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 4 o7 z4 B  p2 G# p
  24.   SMTP_HOST = localhost ' A. H) w0 A( g0 |" F6 U& Z
  25.   SMTP_PORT = 25
    : Y5 [5 w! ?5 }
  26.   SMTP_FROM = DenyHosts  . x! J; c4 j( R8 v5 H5 b8 a% w; J; b
  27.   SMTP_SUBJECT = DenyHosts Report
    1 D" S$ H' Z# i  Z% x: m; F% S6 W: `
  28.   
    $ E9 K! u5 [2 F8 V1 D, t3 b
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    $ C0 S; N! R: |  i
  30.   
    - B# v$ y3 d- P* L7 J4 f
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间
    ! P) E; |8 o' g5 l# c6 B2 D1 J
  32.   
    & N5 b1 t' }1 Q& @, b/ i
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    3 g& E# S, q8 o

  34. 6 H5 i2 l' R; P* W6 B3 J( ~) Z
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间
    & F( e' K8 {. P2 S, ]
  36.   
    ' @5 ?) a/ E4 ?0 q0 w: x
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件) ]- {: [5 j7 }- r. U/ L

  38. 7 S5 M7 y4 R9 a
  39.   O# W" K4 R! M
复制代码
4 T( ]1 J, |! O4 R
. y) M( y/ \& N! E& ~
  • 查看和配置 IP 黑名单、白名单
    $ ?+ }/ H/ W' k4 t- v' v. B0 b
  1. vi /etc/hosts.deny    //黑名单(拦截记录)! Z" p' c; Y& c9 q2 ?: E
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:& L0 m9 g1 C3 `6 b0 Y
    ' o; d4 ]/ [1 y, n+ U# o

    ' x8 y6 J: ~2 w/ I
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行' n$ y( g* b9 r. }
    /var/lib/denyhosts/hosts# \( M: e2 }4 l6 e4 H
    /var/lib/denyhosts/hosts-restricted, j8 R: w2 X: n
    /var/lib/denyhosts/hosts-root
    4 i8 R0 T' C4 b' \  q' _ /var/lib/denyhosts/hosts-valid
    1 ?7 a) V2 q) I+ _& X /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    3 u- e, Y9 W% C1 o2 O' d& d# @( ` $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    ; E, |4 s3 \. M) H+ g/ ?. B 搜索结果可能有
    & a& ~( f- P% f" O /var/lib/denyhosts/hosts$ _0 U/ q) G9 `9 D0 Z' S7 v( `
    /var/lib/denyhosts/hosts-restricted3 g3 Y1 {4 N# j# u. y
    /var/lib/denyhosts/hosts-root
    4 Z' X: L( `, {. P$ ?+ ^( V" H /var/lib/denyhosts/hosts-valid' M- Y1 S% S9 i& ]& Y
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到4 l  q4 n8 I7 j. g
  /var/lib/denyhosts/allowed-hosts5 S. h) Q% N5 q4 X
    ' N3 _( T! \. h$ M
    & X% V  q4 d' j. [1 k( J  q
  • 在文件中的位置大概在这段代码下方:9 D4 }5 }9 X5 J9 w  U
* q8 n- w  e2 }1 y
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    ; s1 p. c4 ?4 A5 d- h% R
      E0 H5 i9 f$ C8 _6 U# o, ~
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    2 Q: J: A$ e  A4 L& f/ p& N* p

: v0 e1 c9 }% S- o( ?& j" w. p$ H- ]( ?' r$ o, w

9 e" N4 n2 s- a! H* o, }- ?/ G7 t8 d
5 j& p8 v) s* `% y$ R) B$ @$ {( b
- e( S- w/ i3 k
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录& H- c0 c" o. V
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, 2025-4-24 15:57 , Processed in 0.035374 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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