召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1615|回复: 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" u9 Y+ o2 |' f使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
& z# O2 N2 D9 T( R1 _/ E  \# } 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。. M8 N/ h$ C4 m- z: {5 o
使用以下命令即可安装 DenyHosts+ w, y; d2 \, Q& k3 M+ k# T

( H  n; w, O$ n" u
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件5 u( O& L* M3 T4 u; E8 ^0 ~
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)' f- w5 U# {9 `& ^! e6 d

& E' m0 z. |1 M5 H; |% A9 {# J( f# X
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件8 D1 O3 y: n: Q$ d. v3 l
  2.   
    9 Y. a! d7 C4 S4 w4 R
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    7 ~% w' [5 h3 t4 R* C$ A; p& N
  4.   
    - L+ |% a# D8 n2 c
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    4 l; A9 B9 n& Y, T9 f0 e
  6.   ) t3 u/ E  L4 A9 u& K7 R: ?
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    2 J1 r9 l& [3 V  J7 N6 M! b
  8.     C" r+ K3 k3 S! {5 x; e
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    ) A* V- K6 S" ]. G
  10.   # j% ?7 I  p* U! b+ T
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    1 A/ N( r* F  L. i
  12.   3 i$ {6 @7 J0 j( M- S9 p7 |
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 4 |+ V3 z" L( e2 C
  14.   # G$ j* R- B5 M: W; D5 s
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 ( J+ r! d1 ^7 K( {" r9 W
  16.   , g# _3 X/ G8 b
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    & B0 a0 a' W# _7 U1 C: p$ Q. p
  18.   & a5 G8 ^# V5 R9 y2 U) \
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    * h( {& I2 J* N5 f! e* T$ q7 W
  20.   2 g  ]' j( M7 Z, s  F& ?. [* n/ H
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    * [5 U' Z$ d% q; h( ~& \6 Z7 I
  22.   $ m6 K) s6 |& I# @, ~& ?5 b
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    . j4 T) P3 E: e8 U
  24.   SMTP_HOST = localhost ( q7 ^0 T1 b) ], p* l# M. ?
  25.   SMTP_PORT = 25
    # D7 s! A3 K1 k
  26.   SMTP_FROM = DenyHosts  ) K' j1 s, `/ U- c9 n( O
  27.   SMTP_SUBJECT = DenyHosts Report6 Z  Q& g1 U$ }: Z4 s
  28.   
    $ ]' T( B+ M/ J
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)( S2 n* Q; h! b* r" f! a7 a( K
  30.   
    # D8 s) B3 u" Q/ z9 @
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间* {3 b" c$ B" l
  32.   - D) e0 Y5 U; G  P; V4 `
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间5 h7 l0 ^+ @5 g* f; c+ {* y; r$ n
  34. 9 W0 q7 i" r. i& [5 j0 h, J
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间
    # z( T  ^7 I5 \: b* K- [( t4 a% A2 [
  36.   6 {0 O% {: e# ]( T6 G( q" B
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件* R$ z4 u9 j: m% a
  38. + F8 E2 s7 C6 u! d% B

  39. 3 y& a$ {3 r# ]7 r: N# F. h
复制代码
7 n) h" ~' {( ~
; I& V" F* J" F" Y1 t. ]
  • 查看和配置 IP 黑名单、白名单( m3 {: z4 s$ a% i- k% F8 }) z2 Y
  1. vi /etc/hosts.deny    //黑名单(拦截记录)9 L  I2 d$ ~8 z4 w
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
! `2 c2 u' j/ E/ [) o+ e

    ' Z( B3 Y2 @7 x! f$ g1 N; q% l: Q8 t: t; w; ?* {7 i( W3 b, g. c
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    ) r! D0 p' a' s. ]4 N /var/lib/denyhosts/hosts
    " m7 C" E4 x) d; D$ ` /var/lib/denyhosts/hosts-restricted3 `6 i& S; Z) Y" x
    /var/lib/denyhosts/hosts-root" }# w5 b) y/ V  G, i4 x  N
    /var/lib/denyhosts/hosts-valid
    8 a* M  d3 I2 O1 d! s' e2 R /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    : A3 b7 U9 X- H& ^5 m( l# j. } $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*: l5 {, l: y( S* B1 y; S2 x9 ]4 z
    搜索结果可能有# a; r- h$ U2 U: |" J
    /var/lib/denyhosts/hosts. n& Q2 \; o& u6 c7 ^- d+ ~# p
    /var/lib/denyhosts/hosts-restricted
    ! c/ h+ @: }; p8 N6 O /var/lib/denyhosts/hosts-root5 `- u2 H. J7 ?* k% ^
    /var/lib/denyhosts/hosts-valid, E$ b3 p, p, g9 i9 ?
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    * }+ ^$ i0 A: @0 g4 {+ Q) Y. l  ?7 u
  /var/lib/denyhosts/allowed-hosts* W3 ], h! [' G3 K
    + ?! t' m& \1 L
    - h5 ^1 ?, ?1 j% E$ U( F+ g5 ~" R
  • 在文件中的位置大概在这段代码下方:
    + i# S6 D& T  Z9 Z  |

. v2 K8 W1 }  q        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    ( n4 E1 o# u( g/ {! l3 m4 D

      O1 D( _) A' Z
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    / V- u& y0 e' y. f
6 J! v/ j9 A' E! e: |0 R

' M8 E' i# w4 D2 ]6 a, }
7 o2 v! j2 I+ u# \+ b
  L# l' Z: P9 W( f4 {) z; U1 O, C5 V! L% ^6 `  m- s+ k' s: z

+ j4 F* D2 r, Y" t. O
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
6 l' l) V; b) ^' ghttps://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-10-14 06:20 , Processed in 0.031254 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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