召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

+ Z: K) m) g2 |- M使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch) K% l+ Y2 e) u
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。1 K# E: _- X$ V0 Y3 [$ B
使用以下命令即可安装 DenyHosts
4 u6 D; d% ~* M8 K# X/ O( @) M, Z
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件& p+ j- Z' t/ u
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)7 [5 ?: T; w$ f! U+ x6 s
% Y- K, _/ D, ?% p: B6 n
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件, l- ^" y7 X$ O- S. F. c6 |
  2.   
    ! a6 V" s' A5 R/ G1 b3 \
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    % m* T8 o% r! K/ W! b
  4.   
    " c  s7 A$ v! o7 e8 c  k
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    + b1 e+ ~* t$ b! b' ]% \$ j
  6.   
    $ ]7 q0 m, L5 g/ C
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    1 u9 v8 z: H' h3 e! A; {
  8.   
    " j( I. i2 \+ H% H5 w  V& M
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 ' M1 H- i8 R% E: [4 ^1 T8 h$ w! J
  10.   ; M. v( ]) `8 ^$ }; n, A
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 1 B7 ^4 y+ I  i- \
  12.   $ a3 {' I2 m' V8 ?3 L
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 / d9 }3 ?+ m/ Y! o! `
  14.   / m  I/ b9 ]( Y5 s, d
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    , n4 a: K+ O' C# z& p/ [: b. b+ O
  16.   2 I! I; ^# U, R/ F( _* s
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    " `1 v7 a' e  I; b# i
  18.     K4 ^5 \; D/ m. |, Y- ?
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解* R1 E. I# z; w
  20.   
    6 f5 J* H# U4 c3 w, x% M
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。) V2 b- R7 y% @4 }+ y* v
  22.   5 H4 r. P$ |" z, y
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 6 j. l# g- X  k5 @
  24.   SMTP_HOST = localhost
      E* \) m7 v, v) ~+ l- _7 S3 k6 D; P
  25.   SMTP_PORT = 25   T! R# f- l5 }+ A. j' [$ w* }
  26.   SMTP_FROM = DenyHosts  
    6 s8 s9 X! X4 M9 T
  27.   SMTP_SUBJECT = DenyHosts Report
    4 u5 R0 q. l" }6 t0 C8 c- {
  28.   
    & L# G8 }$ p- Q
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)0 }/ L* Y( w: Z  I& ?3 F
  30.   / }! l% Y, Z3 E  b# N* |
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间) T, }; B& E- x
  32.   * z) P6 A# n' I  l$ {6 f* w
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间9 ^$ A+ g" ]# n  F/ M3 }

  34. * x& L' p6 i1 ?0 g
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间: H* u4 h# j7 J
  36.   
    8 E2 n* x3 U  m' @
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件* L' R- I0 s! ~) v1 p" Y  M6 o

  38. 4 H' {* I5 l, Q
  39. . u, d5 [  v) ]/ l
复制代码

' m; t# i% T6 V: i% F
7 j6 S) D  o. v) r
  • 查看和配置 IP 黑名单、白名单  R# i8 H5 @% H" z7 P
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    ! h$ h5 Q5 b1 V' K- {
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:& T7 [" i3 d5 M
    / Q4 J* M, ~) c% l5 p
    8 S, Q! y/ P# m6 J) M9 H/ [
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行# a0 b; _: s0 z1 m( Q3 i
    /var/lib/denyhosts/hosts% X% [: U$ A, z+ @7 y
    /var/lib/denyhosts/hosts-restricted
    & ~' f1 N/ A% h( s- |: t- r /var/lib/denyhosts/hosts-root
    : X( d! ]# r: f8 r/ K) O /var/lib/denyhosts/hosts-valid8 C6 K0 ^4 h* L" d- F
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    4 W4 R, c( g  B6 Y- ]" c $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    , s$ o% X0 r( s 搜索结果可能有
    ; f) l  w: O( I& b /var/lib/denyhosts/hosts
    , `! X5 C' _9 Y* G/ V1 S0 w /var/lib/denyhosts/hosts-restricted2 \/ x$ d- j+ U2 [4 e1 O0 F
    /var/lib/denyhosts/hosts-root
    9 X7 m" m% N7 W) y /var/lib/denyhosts/hosts-valid: ^& l2 S# n* \! _. \/ J
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    / O6 e2 n/ I$ V3 S0 w  r( A
  /var/lib/denyhosts/allowed-hosts
- H% d; Q2 T, }1 y; q+ T

    ( D/ `; P5 G' A" D/ B: y% ~: U0 S# I" T8 Y/ p7 r, V
  • 在文件中的位置大概在这段代码下方:
    ( P' s$ t4 _! X2 T# L' H+ n; W

& H/ M( b( |9 Q- a: a& |  K6 ]0 ]: |        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    7 V. w  y' P6 Z1 U% t2 b* Z7 u3 L

    , j# S. v0 s. s( V2 F
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁: A2 [' w; u9 ]4 a8 ?
6 Z7 p; u& T# f- [; s- E7 g; Y

" x* J# d+ v( v- \  q" b
/ ]1 j) k) i1 a7 A
$ r7 J1 d5 Y" P: y- I  E+ E$ Q7 e7 U( n* b
# q( f# v' x/ a0 s/ l
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录) B. S- _, U1 L/ t
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-2-28 17:36 , Processed in 0.045966 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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