召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2001|回复: 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 的功能。
) X2 _! M2 k! l2 o
使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
) O% A, f* o: a# m2 u( ] 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。3 E2 r( v- {' `- H) K5 m; U, S% c
使用以下命令即可安装 DenyHosts
$ y5 L6 X) i, p/ p) k4 Q. T; V  y& R4 c; I1 g3 p
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件# T' s' w( q0 v9 G7 s3 [
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)/ z7 f. @0 v$ A0 C+ E! E
% L% ?4 L  D; A/ S4 q+ t* s: R
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件8 `& e3 G  g* p8 M
  2.   
    , F& |  T5 f6 Z  |; E
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    ) \7 @* a) s" \
  4.   
    / G" }( b4 |! y. p# {& i1 H( s
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    8 k9 c1 S0 Q' \4 z" h
  6.   
    ( ~5 |, T$ c0 D  G& D
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    , @* g5 \; O. ~4 o6 L
  8.   $ I2 _) Q" T& T! I4 ?5 ~* R; M
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    0 z- d, B% l& C' G1 o
  10.   
    0 _) c4 Y: X4 q8 y, l: W" s1 ]8 j
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 3 V9 M% f1 k  X, j) w
  12.   + k2 t6 ]/ z, d/ T6 V
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 & q) N6 ]: e2 C+ Q8 a
  14.   
    4 R9 @; n' d2 D! `
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要
    # C5 b7 D; R5 Q/ @' |
  16.   5 k7 ~( c: `# U6 W; W
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)7 b# Z7 f* o% a1 h" D" U( s6 M
  18.   9 _4 x  W( ~1 G4 C5 J( |
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解8 w4 a& F, @8 S5 I- Q9 l
  20.   
    4 I3 N, g# E# ?0 K- q' Q5 \6 O
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。( x8 G# u$ u  j& C/ J4 h
  22.   8 m" j1 _+ H: p% x
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 0 S9 K; D7 D0 _2 O
  24.   SMTP_HOST = localhost
    ( U. ?" a5 Q% p$ c3 A. H- f
  25.   SMTP_PORT = 25
    3 f* H2 ~* K5 n( N
  26.   SMTP_FROM = DenyHosts  1 z$ L, ?* t) G6 k! }, f4 O$ F
  27.   SMTP_SUBJECT = DenyHosts Report9 M0 P& K- Z7 O% c' i
  28.   ( ?2 n6 K2 Y, |' g" {
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)0 P$ b+ {( ?" Y
  30.   
    7 E  J, M% {9 b% ?$ `: L/ n
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间
    + W/ R; @4 n$ A4 g, ~- e
  32.   
    % s2 l% \# \* b$ [
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间* w' e' x5 u6 G" z! r/ B) L$ k

  34. 9 q3 r% _1 L8 q6 h; k$ l, ?8 W" B
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间' n, R- Z& d; {! Y! O4 G' J
  36.   + K  l; ?! R' Z4 |2 f) a
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件
    , m9 z9 J( q6 n1 A1 `& }

  38. 0 L- b1 x9 b  ]* m* k1 A4 T
  39. ! X  b2 `- D6 c  m! ]: q: Y
复制代码

& S8 |7 I8 J$ z8 g* i$ E* Y( Y
8 ]* g$ P# J; k+ i$ C% Q  y1 f
  • 查看和配置 IP 黑名单、白名单
    * X5 y6 a2 R4 ^6 u7 X5 K! U6 t7 D
  1. vi /etc/hosts.deny    //黑名单(拦截记录)! L/ k! [0 [- G3 l
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:# y, {5 M$ ]( j. D' L, w# q

    9 ^5 F. Y0 c9 x0 i9 O( R- C
      ~1 [2 z0 Q9 Q
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行% s3 c; N/ T) J* r) c5 b' U/ B
    /var/lib/denyhosts/hosts: Z& z) \- _, N) j0 U
    /var/lib/denyhosts/hosts-restricted; R7 x% V  N( F5 z5 p
    /var/lib/denyhosts/hosts-root
    2 w* R3 I. V7 n0 `2 { /var/lib/denyhosts/hosts-valid! P3 C" x3 o/ ^/ h. v
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    6 a* I# S) |9 [, j2 ^ $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    6 ?" h7 G: z! I7 S% x 搜索结果可能有
    " c1 Z: S6 [8 k! E0 P# o( \ /var/lib/denyhosts/hosts
    8 H3 r  J6 j2 K+ e /var/lib/denyhosts/hosts-restricted
    + u1 I3 u: ]: r5 W9 r0 F /var/lib/denyhosts/hosts-root" g- @! J. q( Y, c( R% T4 `
    /var/lib/denyhosts/hosts-valid
    3 n' \; t& D5 i% p( }9 D /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到2 O& w# |/ J& P+ Q; X
  /var/lib/denyhosts/allowed-hosts% s7 @+ K) _2 a' P! z
    2 u6 d  M# Y& x$ x! Y3 o. D

    ) U: V* _( b' M8 N- B
  • 在文件中的位置大概在这段代码下方:
    4 D( v4 c) h4 m* \* Y; ?- M
1 @; @4 W2 L  D
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    5 G+ v( G. e" `) E* l0 u( R/ O9 J. M! ^# G3 L- F# O  P, o' f1 `9 S
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    % O& V* r  p, X$ m
5 z0 p9 f  R1 s& S0 b' O
, L0 F( \2 R! |5 x" ?6 j9 P4 P

2 p) E( c7 Q5 q/ ?; |( z! |) [2 d1 W  _+ S) _5 J. }
! F, {  U* e% T( u4 J
# ~0 B1 k8 {5 R
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录7 z% p2 D. e! ~8 z) P; D. l5 g
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-7-2 15:35 , Processed in 0.039019 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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