召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8 j8 G6 d4 b% \/ \& J$ Y使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
1 [6 v! y# \: N4 u# c$ k 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
! A) |& e) F8 T9 `& x 使用以下命令即可安装 DenyHosts
4 O7 H% P0 E, {0 s6 s' j( q. O" e3 r% p) Z+ B& g+ N; v- {
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件5 D& W! G8 F, G8 c8 }5 H
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)% V% |( k8 b" a7 v' H% ?5 \

% n; H' G* U) y, j
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件  t0 @: K# f* N! m5 n( \: M( @  E
  2.   
    7 m# d. D# N0 m! {+ S
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    - u: q# v6 n  }+ X7 s
  4.   
    & O1 }; h% F) M1 ?1 A
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    1 k) {0 }) X6 L& I9 R
  6.   
    6 \$ f$ z2 ?; t% H
  7.   BLOCK_SERVICE  = sshd  #阻止服务名$ J3 `3 `$ v' b5 ~
  8.   
    6 K  u6 k# }5 g0 E
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 7 o& T& B# p  ^/ P6 Q  c7 G- D
  10.   
    5 f' v$ Y4 z% O: Y+ D7 L5 M' z
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    7 q$ O+ n2 y4 ^0 {
  12.   
    ) D4 V+ q& J9 @5 j( v+ `
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要
      y  R# L, ?2 g6 M" g, G; }; h
  14.   - s" t( m1 w9 C+ a5 |; t9 n
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 7 D7 k* K) a( E- w" w/ J
  16.   
    1 V5 e9 N2 D  K
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    ( v4 S) Z6 L2 j- C
  18.   
    7 @  [5 }6 T! Y8 i
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    - T( N  w+ K) t- x: F
  20.   ; L+ o" ]0 U; g3 L5 q% u$ ~: m
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    % \* G' d2 k/ v% R6 f
  22.   0 _+ y1 |6 S  U0 x9 @/ y3 {7 `1 c
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 . ?. I* T2 S; L$ i
  24.   SMTP_HOST = localhost : V: q6 Q/ W+ v+ U, p0 d
  25.   SMTP_PORT = 25
    # g5 |  }  T& f( T: u$ T4 z
  26.   SMTP_FROM = DenyHosts  ; l& M$ k" {& z) Q2 ^: X
  27.   SMTP_SUBJECT = DenyHosts Report! |/ @0 z& A3 r- R5 j& Y! p  i$ a
  28.   ' o  }2 S& r3 r* j7 `4 ]
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    2 F: ?+ H8 o. p3 v# x  T9 U
  30.   : _; Y* Q$ Y( s3 j* E- J5 u
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间
    : v5 [; F& ~, |/ Y% v0 i# S! T
  32.     y; E' s7 H5 s
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
      r3 U4 I; M6 N+ t) R8 ]) f7 A* e7 b

  34. 3 i, P5 R, O7 O+ X7 s
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间
    * O$ G& z( \1 {& }5 r) T" ~
  36.   4 X7 E: W$ [5 Q4 _/ o
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件9 L, N& J! ~7 Q0 h5 v

  38. - X( W& Z1 ]/ U  Y. N  t2 n

  39. ' F1 Y8 g* e2 f# e! h- N! l
复制代码
) u, t! h. Q5 J: x$ |
# J* a) b" e4 \' Z
  • 查看和配置 IP 黑名单、白名单
    ' y* Z) [: F  b3 f2 U( C
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    . R4 x/ W$ ]& `3 H
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:5 {/ c. o3 h3 N& {

    ( _' x" _: ~- p- s1 T
    , M+ L' C/ C) L5 _
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    ; h/ j0 ~" D1 [% d! ^ /var/lib/denyhosts/hosts7 s; v8 I2 @, y, j, b) W: D# G
    /var/lib/denyhosts/hosts-restricted8 ]4 i' w7 }" e) V, L- R+ g
    /var/lib/denyhosts/hosts-root
    4 H' [, g2 M7 ]+ z /var/lib/denyhosts/hosts-valid
    + ]# Q; \* Q  O8 _ /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:" Y$ t- Q2 ~6 `  ]
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    4 y7 b" W' v+ [9 v 搜索结果可能有
    ) m) X+ D5 ]" Q/ X( T+ m' N /var/lib/denyhosts/hosts
    6 }# _  c  Q2 s5 }5 r# j /var/lib/denyhosts/hosts-restricted
    * z5 V0 i0 ~0 i& l /var/lib/denyhosts/hosts-root
    ' d; I1 ~: @( Z: M& @ /var/lib/denyhosts/hosts-valid$ R; s0 y$ Q7 A- t: D6 I: \
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到0 F. ~2 q& y( ?& R
  /var/lib/denyhosts/allowed-hosts% s& f& C; s( l- Z# b/ _

    % \+ p; Y: s) t) M9 }+ N3 I; G5 u" N( g" U/ t- r6 R
  • 在文件中的位置大概在这段代码下方:5 G9 h7 A$ h6 ^* H: h" ?

6 ?9 v, q5 q, h, ?( U4 q        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    + e% r4 p# a' K! B
    . j& M- V9 V6 K# a
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
      ?" u' N, h$ D  |' p% B
4 v# C0 d: {$ o" x+ V
! y0 N2 x6 b  t$ Q; u
( y5 U1 y6 V: a" l7 |+ }9 b' c

6 c! f- o# q! G: c' G! n) L6 E. E: }& V, q$ I" ]/ A

% a/ C- U8 N$ W0 T9 H- L
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录: ~2 j8 d: @) A2 Y0 M/ N9 l
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-6-2 02:24 , Processed in 0.031035 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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