召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

+ i" [5 h. d3 L. [使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
9 v0 Z, x! `! J7 A5 s 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。. K% c- }( ~, V1 y
使用以下命令即可安装 DenyHosts  C" ]! T& i" _1 _
& P; h. X  D$ f% L  d
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件! y0 _! h' a- a$ d8 C# `6 k
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)! P; \- E, @2 j5 B1 E

+ X; A) P' v3 P8 [; t, a
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件0 u9 B  J$ K- m/ X
  2.   - P" P+ m) j- v0 |
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    $ o" m9 j9 H  q9 a7 q0 d
  4.   % W4 p; v. x6 e7 c
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟. m, _" x, o& Q4 v" w4 ]
  6.   
    1 @$ B' k! R( F9 T5 _& D0 N
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    5 k7 o: D/ m2 c6 e
  8.   1 P1 t6 J0 Z' G* u0 \
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    ' t5 y( x7 q( b3 A7 T1 q  Z' o* S0 `
  10.   
    * e2 X8 V" V) e: C6 o3 D$ O  B
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    % y! u! V, e. }9 D0 S
  12.   
      u' J, G7 d6 h, K9 N$ Y$ f. p$ |# P
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 / f% G% S( U9 j
  14.   
    4 x5 N& w. R( L6 j
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 * e- [  h7 |$ @+ o
  16.   
    : S) [2 e; E- J$ x# `1 `2 |) l
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)! d9 I+ V$ P% c3 o+ u
  18.   + z2 }% H- m/ \
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解. W# e& \3 X+ d% l, R; e
  20.   $ A/ w) E+ j+ G3 x* y* k. E
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    & r2 S8 o/ T0 H; J- H1 w% R& g
  22.   
    & c/ j# a3 ]6 t* n0 m9 H
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    " a  v# g0 ^/ Z7 a
  24.   SMTP_HOST = localhost
    2 r5 G7 A, e7 ~" E1 h9 [
  25.   SMTP_PORT = 25 0 l, v, @/ Q$ N' N
  26.   SMTP_FROM = DenyHosts  0 V3 B4 h% N4 p& W) Y  g4 [6 d5 ^1 Z9 _
  27.   SMTP_SUBJECT = DenyHosts Report. U; ~! ^2 d3 S2 Z4 J4 Z+ S
  28.   8 U3 X8 t  Q6 G' @$ U
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天); |# l# F; Z0 G% v* ^/ H$ u9 Y: W
  30.     [( Y; o1 T' J  w5 m
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间/ u) p: {7 t" A0 ^
  32.   
    5 [6 g/ M  a$ E$ `+ e2 R; `
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间3 C" C4 v0 r# w! U5 Y$ p
  34. 0 S2 k. P0 K5 |8 j# J
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间, a) r; e7 p& h  `9 B$ Y7 K  [
  36.   
    6 _( Q8 v# h( e! |# L
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件
    5 o# z8 T) t, S1 [3 a* r8 C

  38. ( J1 h9 v. _& ]8 i- ~
  39. ( Y4 r3 b  K9 z/ [
复制代码

) h5 f  S7 x$ v3 n5 ~3 A2 w  g2 Q( y6 S0 }6 C) d
  • 查看和配置 IP 黑名单、白名单" a" I6 C  C) b) `/ K: L
  1. vi /etc/hosts.deny    //黑名单(拦截记录); P1 m$ w. ?% G6 ~6 \. |" p2 v0 L
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
; |6 W2 U3 P6 X
    5 Z8 l% @( f$ S4 g: Q

    : x) U$ _& O- |& ?# _3 X# i
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    ) H/ D6 _( a0 t0 }, E, x: E /var/lib/denyhosts/hosts
    ) z4 j# Z# Y+ A  |. k /var/lib/denyhosts/hosts-restricted, a. j6 J* x7 N% |
    /var/lib/denyhosts/hosts-root
    2 r! r- ?3 P( H+ C /var/lib/denyhosts/hosts-valid- N5 z2 u7 t4 d$ B7 @
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    ' O/ D$ h% N, ^0 c6 `2 K9 ^ $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    5 x* O/ G. o* U1 d2 Y$ h# n; n 搜索结果可能有
    ! R$ H7 E0 e. k3 ~; L /var/lib/denyhosts/hosts# W, B& l& n+ J5 ~# t: Z! t
    /var/lib/denyhosts/hosts-restricted
    " y$ p, U" D9 V8 c' U6 n /var/lib/denyhosts/hosts-root6 C4 s8 q0 U, T, H$ k
    /var/lib/denyhosts/hosts-valid0 C/ |& y0 E. Y7 x
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到: b6 R) }. c4 ?, o  V+ B
  /var/lib/denyhosts/allowed-hosts
9 y8 d/ q7 D: i1 M/ i7 v0 e. U( i6 v

    4 z, r2 P  N, Z/ k5 W# z( E/ D( F7 a8 F" A) U$ J
  • 在文件中的位置大概在这段代码下方:: ?# o- E* U6 `1 ~
5 C9 z  W' c9 y
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    1 _' k8 H, b1 o7 I
    " |) c4 p8 a0 t& H. V' f
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁+ b2 K4 M! g, I9 @# }! Y7 J

+ R4 a! j- \/ _7 e
! w. R2 n' g: _, y% n8 D: a$ r0 ~- `4 y

) o" ^  w' K2 `3 ^' D2 q- n  n  Y( g% W( X% n3 f- W5 Z4 A
: P: N- \; F* n
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
" O% z3 l# W7 R: e, f7 hhttps://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-5-19 12:22 , Processed in 0.036844 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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