召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

2 a- k" @+ h5 b% j& m6 W8 F7 R$ E使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch& u, _' a) [+ b) O6 v
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
# L7 B2 M4 {# J. t4 w 使用以下命令即可安装 DenyHosts
% A7 k/ a- ^1 h' d
6 e- ~+ o: v2 v; H, e
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件& v. X7 U4 G+ Z- W- u) g
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)
    , H8 n  v$ V& q0 f8 M( Y$ }
" s# O2 s) [1 U  @  x& ^5 t
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    9 [1 K, M' d' ]; {. L
  2.   
    $ f/ I7 r0 X* u8 ^  Q/ V
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    * M7 S0 r% T) }. Q
  4.   
    & t; I- \( Z- g+ V/ W
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟# X4 v2 y* Q8 ~' {: r2 E$ U$ v
  6.   : z8 o* F7 X, ]9 B* m! n* A
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    * l9 {0 Y' Q' b
  8.   / P! `# Z4 K6 E9 s* K% G! {6 f( ^- G
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 ! Z# b6 [( Q+ s  T+ O) m$ H
  10.   
      h& z1 p6 ?% d2 p' t3 b$ D; o
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    & n! R5 S: P- ^& {& Z+ H
  12.   $ m4 j1 h( F- C+ M' r
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要
    " N8 N9 }, _1 v6 B9 `1 M' v7 r/ A
  14.   
    ' }7 u& ~& m: J; k+ B4 ^  R" Y* `
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 3 G# g1 j4 ?% F- L! ^$ f: m. y5 s
  16.   - D' @# N2 R3 z1 f
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    7 A6 [  P4 u* E* ]+ Q
  18.   - U( ?5 D" z! t2 N
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    9 Y  D6 [/ j2 F. ?2 G; ?
  20.   
    - X1 ]: c8 O/ |' l1 D7 T
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。! @9 |% L9 d0 U" c' M
  22.   
    & e' G! C, ^9 }$ R
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    ) ~! n5 h7 v3 k: k4 r
  24.   SMTP_HOST = localhost
    * b; |% w3 U, S. W0 a  i
  25.   SMTP_PORT = 25 3 _6 L* O4 K5 S" m  ]
  26.   SMTP_FROM = DenyHosts  
    % A7 }5 H) \# }0 m3 @, i/ X
  27.   SMTP_SUBJECT = DenyHosts Report  v! D, n, r7 y* U) d1 u: F9 Z& ^' x
  28.   
    1 l# F8 G2 p* g0 ^+ F* n2 W# N
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天). \, p' M( |1 ]5 c6 O
  30.   * C0 n: M* b/ |; Z
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间) \+ ?! U% s0 I: y
  32.   2 J6 r9 A- O* ^/ m
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    4 T# \" a% {' x. l

  34. 2 {5 A# y! r& t
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间6 c, e! n2 ?: x1 Q  H" S$ K
  36.   
    $ _6 p- Q" @' [  T
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件5 ^: q; m& }8 y/ |

  38. 8 Q1 w. }7 L8 a

  39. 0 P( x3 F# ~/ l+ x& y
复制代码

" Q  D) ?" I: Y( P" @
# U& t& @8 E/ L& f4 @. N- ?$ o
  • 查看和配置 IP 黑名单、白名单0 E- n2 @. K% v" P" V8 N
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    " U9 g. [* b5 E3 f0 L% r8 r
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
" Z' ~& g% A4 \, z) W

    $ M$ h, s) V6 w: \4 X# B- j4 b9 V0 h/ G# H+ f# p# F7 q& z
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行) T$ _, @5 U, l0 q4 G
    /var/lib/denyhosts/hosts2 S2 q$ i1 X- `5 B! x& r; V' a6 ~' A
    /var/lib/denyhosts/hosts-restricted
    ! t4 I- ]0 N5 l: ] /var/lib/denyhosts/hosts-root; Y7 |9 E' k! H
    /var/lib/denyhosts/hosts-valid
    . K+ h6 G# ]. y0 v3 s( `+ X$ O /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:3 E6 t% ~; j  E6 p" e4 o5 @9 B
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*
    - Y" o0 x# r7 d! ?( u 搜索结果可能有
    8 b1 z! W0 C% P /var/lib/denyhosts/hosts( R" |6 Z# I0 \2 n- ]& S% x, z5 `0 g
    /var/lib/denyhosts/hosts-restricted- t4 E1 X* N$ r3 v5 T6 {
    /var/lib/denyhosts/hosts-root6 T( C. a' G- n+ e3 O; L% E2 y
    /var/lib/denyhosts/hosts-valid# L+ i3 O9 y5 ~) w+ Z$ l
    /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    7 x8 g3 i6 I0 R) s( E3 E% r  D, r
  /var/lib/denyhosts/allowed-hosts! Q" ~. Q; v/ Z/ E
    2 n3 ]4 N4 N+ _1 Q; l) c$ j# z- ^
    7 H# w! g* I% s8 D6 J* i& s
  • 在文件中的位置大概在这段代码下方:
    $ p% @3 V: ]3 J3 {* t9 O) P' j
1 T) |' \& b4 S( R" U! E
        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    8 c3 h/ T6 ?8 R3 I% ]" ]
    7 k( _/ {; t# J/ r7 M
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁
    ( n% J: O6 P- f8 x  Q
# @% F* V1 \7 H8 i0 ]" [+ V
9 v$ z. z) z  g& B) c- V
. e( ~1 ^( v7 i3 J

9 W1 l! f% ?/ u  c
2 A$ P0 C& f- U
9 ?1 j! K- e9 T
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录" P  P) i' `* _/ q- G" h5 D
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, 2025-1-20 17:09 , Processed in 0.033331 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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