召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

5 x3 y1 c) ~+ }7 m1 Y9 e使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch
1 k+ l& p/ V6 Y; Q5 T) X  `, Y) K) c. t 如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
  `, V1 j) L, R5 C9 {. x7 P$ d 使用以下命令即可安装 DenyHosts9 s1 y/ W1 o; M' W5 ^
' L" q0 u6 [  s) Z- M
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件) G: B$ ^* }% I! Q2 X  u
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改)
    ! q$ Y6 W# a. O& L, |) Z7 l

0 ^" Q" y- D7 y+ l! p
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件
    ( r, W; v+ J# h( E
  2.   ! n2 _( h/ L, m* _* @7 K
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
    ! G  T) K1 q/ a/ ]6 s
  4.   
    % @' K5 C3 t4 t6 F
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
    2 u& D. C& ?% J9 o. _: x
  6.   ' E: T' X& Y$ ~  S3 N- a1 ~
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    + F6 @  f7 Z9 q, v6 W
  8.   , x! m1 _" g7 K) u" A. b1 B  o2 X
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要
    $ @2 c# o& _, N& Z! n& r2 Q) F5 N  L1 U
  10.   5 z/ U: J+ h/ ]& @. m* N8 b
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要 $ m* g( ~% l+ _4 x
  12.   
    - q: L+ r# e( r0 S9 K- n
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 9 U8 t6 W( w; a2 E
  14.   
    ! N7 q! S0 C0 y$ c
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 $ X. i5 B' F4 s6 i$ _
  16.   ' ?9 b7 P+ d0 x+ r
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)* g. ]! k3 G- F( q$ [; l/ G9 J
  18.   
    * }2 }; w! u1 L4 {
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    / ^" ]2 d+ K, V3 {9 }. J
  20.   - H" i9 S% a. {% n, j! P0 C
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。' y  I0 F; M# c1 Q' I# s+ w
  22.   
    & V1 K4 A, \9 n9 c, P
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    ; [$ p5 n3 z$ s) u8 A5 A. {% l
  24.   SMTP_HOST = localhost
      B3 l* f" q9 x
  25.   SMTP_PORT = 25
    . ?& X: f" Q1 k: j' `7 b5 Z
  26.   SMTP_FROM = DenyHosts  : b9 [, ^; v- A  u4 O
  27.   SMTP_SUBJECT = DenyHosts Report, |$ r( k4 {8 d% m1 |$ B! |
  28.   $ b) t1 Q3 @- Q7 `& i
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    4 R, |) E9 t: t4 n
  30.   
    - ^2 z; ?  u% N4 Z2 K% L
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间9 x7 z2 I& ~+ q& w3 e0 O
  32.   
    5 o, W0 h7 X" v& c% Y
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间5 A! D' E, [8 }3 M5 y4 g. N

  34. : w9 k7 e4 [- a7 \+ U4 F' J, ~) k& N% n
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间/ |- B8 ?5 t% A+ ?0 X, k5 j9 _  U
  36.   
    & N: u9 B, _0 B( Q
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件
    1 J) S- l1 p, K. w+ K

  38. ; ]5 G6 s* m* o  J0 q. ]2 U" |5 P

  39.   L- J  t" E" ?" A
复制代码
( {6 k% M. k5 R6 H" @+ j* E

8 S9 {% k- o& l
  • 查看和配置 IP 黑名单、白名单
    2 n8 k3 e! H9 p  g5 v6 q; X' }
  1. vi /etc/hosts.deny    //黑名单(拦截记录)
    6 y8 m  \& b0 c6 D( N# B9 Z
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
6 A" p9 M- Y3 D/ Q. w( s1 h5 }. S
    , ~  s7 ?" }! D+ Z

    0 i3 `* u! a6 m
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    $ N/ u! ], f. u: m4 c7 m /var/lib/denyhosts/hosts% I# t! M$ h1 o6 ?8 d
    /var/lib/denyhosts/hosts-restricted* n* u2 ^" z* F" [5 L; r6 R$ q
    /var/lib/denyhosts/hosts-root
    , Y+ J9 o5 f) {9 U. a /var/lib/denyhosts/hosts-valid
      O+ l" A7 A0 A /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:8 h9 m" T2 R: w$ z3 n4 d7 p
    $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/*# `- x# s! r% R) t" D4 _1 K3 L
    搜索结果可能有/ f( C( k% Q; |4 o
    /var/lib/denyhosts/hosts
    : ?: }* h, ]- m! `0 V /var/lib/denyhosts/hosts-restricted
    4 {3 s5 d2 U# I! g- B! }0 K' A- r /var/lib/denyhosts/hosts-root, N  r. G9 Q& j7 k! E) U6 s! E4 Z
    /var/lib/denyhosts/hosts-valid
    5 A) j* \' |/ U+ \6 U3 V /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到
    ( L) {+ e: u4 a" `0 I
  /var/lib/denyhosts/allowed-hosts/ d8 ~& i1 u. I* v

    ) C$ {" `: ?9 p9 Q  I6 q5 Q7 x  r4 u2 K, W. a
  • 在文件中的位置大概在这段代码下方:9 d: L) {7 R6 j: u! U" Z( \

% s% Q5 P2 V* j6 ~        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     
    : ?% u( \8 T3 |, R: b6 ]- u
    / o7 Z" |2 t' q" C& m
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁  q' s# O8 G4 v( n8 U2 E
5 K- G* d; p  @* N$ a- P, p, E
7 E( M& c1 u: G$ y

  v9 j& v" Y3 B/ M5 O/ v% c
/ |' a$ l: G1 s, U4 b
. D; \: ]; F6 d8 B1 B1 q- M# b1 o- H' O, k8 |* i5 B
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
# N" R# ]: D9 O/ W6 F- Y+ @) r4 p( 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, 2025-8-22 06:58 , Processed in 0.032506 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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