召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

3 q! [5 L- A' ~8 K. J使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
. c4 F- j1 b6 A% Q 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
; l; B; e& ?; e, Z, e9 g9 h" w 使用以下命令即可安装 DenyHosts7 U9 L, T0 Q2 h+ t2 V1 n

# E! \. H. }( }, v6 H. O. b( o
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件: \/ e- ^& [) Q8 h8 S& y/ _
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)
    # H* v/ O7 H/ }. d3 J# m) {* ?+ j
: ]( B- R* z& E( m) i6 }% a
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    ' R4 q% t# r6 E2 ]# W
  2.   
    ) v$ O) p3 X- f) @
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    # x& |/ m6 w4 P) s2 _
  4.   ; s* J7 R: Z8 I5 p' S) J# F
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    5 _& P( X9 T9 y. v$ l5 @: ?
  6.   & s& o( f  E% z9 o; A' Q" I' F
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    : U, O: V  [- C' s$ C
  8.   " R' q- j0 N+ L7 f+ {( p; U9 m
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 % I- c, x4 k7 ]5 `1 Q, V0 P6 V3 X, h$ B
  10.     r% [; Q, s. g2 C& k6 G1 O
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    ; e" f1 ^4 x  _- B+ u
  12.   
    8 X9 X% W% h( K  n, [. B
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 ) A& t4 G; f- v( Z
  14.   
    / H# N7 B, L2 ]3 p
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 6 ^" @# t" w! ~  F; a3 b
  16.   2 x) Y5 O3 ]5 k
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    % O2 v5 b5 t8 Y6 `
  18.   " t6 p" M2 N, D6 m6 G
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    % C$ C# l% D; a: T6 Z, ]
  20.   
    ; [! R2 m$ v7 u2 ~4 x
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。$ Q1 X& f$ S# G0 O5 h! y
  22.   $ ?9 W. S& J( g% G6 x$ b
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址 1 _6 P5 z; r+ y: z$ ^
  24.   SMTP_HOST = localhost   H3 v/ ]  X5 \
  25.   SMTP_PORT = 25
    ' f: m1 n" g4 C* K. E5 t' i# f
  26.   SMTP_FROM = DenyHosts  
    ' y4 y( I2 I: o* j
  27.   SMTP_SUBJECT = DenyHosts Report
    # ^2 g7 n! O' E$ A
  28.   8 u) H/ U1 e  q7 V: {) D- X
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    $ _' r6 B' M) A
  30.   5 C& I0 U, [) s1 h6 D' A. `
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间% Y( ~. g- Y( r7 k! v/ q
  32.     b; C1 d9 Y0 N" K
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    7 p0 O' j# v+ V7 f" S  T, K

  34. ' N/ S2 M0 P3 n6 O8 D) k
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间( M, ?1 l" v5 z" S9 X& b7 s! r: J- t
  36.   - D9 S2 a3 _9 H6 M, c6 C
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件( i! c' {; M: R8 \

  38. + u; M8 Q; Z9 K; {2 e1 Q- b

  39. $ m, s- n& Z& W( ~, R, k/ O8 ^. W
复制代码

8 T  C* E& c6 u% P
4 U* ?  g# b  C0 u7 U! _
  • 查看和配置 IP 黑名单、白名单
    & X- W2 c1 T; d! A1 v
  1. vi /etc/hosts.deny    //黑名单(拦截记录)/ [/ Y' z' d$ Q# @
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
: w  s- J) z% k3 Q1 Y+ h7 s
    9 g- A4 z5 e. g

    ( ]' b6 x. ^$ Z0 j. i1 X
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    # F) S' l+ r' f+ H. D( l# J* { /var/lib/denyhosts/hosts
    1 b0 G- W0 c* l2 _" m  } /var/lib/denyhosts/hosts-restricted
    2 @4 m2 Y; X; v# Q0 g /var/lib/denyhosts/hosts-root1 @  g2 Q( a8 B5 I% S3 `% A
    /var/lib/denyhosts/hosts-valid
      D, ?$ p8 V. q; X* y! l! U /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:' [% H* l. R' F: D3 `
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    8 @1 g4 ?, [0 Q3 H$ h! t 搜索结果可能有' H+ @; u( W' X3 A
    /var/lib/denyhosts/hosts
    : h0 J  Q* D: W% P' s /var/lib/denyhosts/hosts-restricted
    & T. D1 a, a, }. l2 y /var/lib/denyhosts/hosts-root& ?9 t" h3 N- `9 k; N  j4 O
    /var/lib/denyhosts/hosts-valid
    $ e( B7 G& G* s  E/ X; I /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到; t+ M' u5 b' p5 g0 f5 C
  /var/lib/denyhosts/allowed-hosts
' l% c! B3 O( K- A8 S

    $ Q: m- @0 `. H* \+ }% q% l4 S/ u& g- C5 c, G7 Q
  • 在文件中的位置大概在这段代码下方:
    8 W! _* ]1 ]8 H
, P8 [3 q; {; K4 r$ ~! ^' a% }
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    & a1 g- k( P# x4 x6 G9 b
    ! u4 q5 D! W. d% K/ V) A
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    3 C2 A* w% u% O* n

! ~6 H& w. S* m. C' C* ^; D: i8 _8 y4 k& g  u2 ?* I  F, ]( q) s7 i
6 h- R) U9 F3 V9 b1 K) X
6 k6 F  o. S1 ?2 `7 V( {

0 _2 C7 j( y7 o4 A$ Z
4 u. T  Y6 }! g( E) `" g
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录8 Q4 V# ~+ f$ j
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-20 09:30 , Processed in 0.039653 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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