召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

1 x7 ]# o( p* ~; U8 ^. t$ u使用 安装 我的 Linux 版本:CentOS 7,编写这篇博客时,DenyHosts 的版本为:denyhosts-2.9-4.el7.noarch1 I' \7 T# C) W! u
如何查看 DenyHosts 的版本?使用命令 $ rpm -qa | grep denyhosts 即可查看。
2 Y4 N, v4 P% C7 e' o1 |7 y, l 使用以下命令即可安装 DenyHosts
: R: L' K5 l4 s
, w  e* b& y* l3 }# j0 g+ h- u
  1. yum install -y denyhosts
复制代码
配置和使用
  • 打开配置文件
      c: W! K6 Y. `/ a- [6 V" c1 r
  1. vim /etc/denyhosts.conf
复制代码
  • 然后配置 DenyHosts(有默认配置,可以按需修改): p" w- ?$ q1 U  N" D3 n

7 M9 c" z- _/ f% D7 P( B
  1.   SECURE_LOG = /var/log/secure  #ssh日志文件! h. m6 Y/ T- n% e1 ]( |4 Q/ r
  2.   
    1 T! k$ e5 C, p6 g0 h- _
  3.   HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny3 U8 Q6 k8 g6 I4 ^
  4.   5 G, u; w' N  U+ S* ], j
  5.   PURGE_DENY = 4w  #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟' ~9 b9 }* b2 {- B- V
  6.   
    9 W( w% R. `8 h' E( A* G7 H
  7.   BLOCK_SERVICE  = sshd  #阻止服务名
    ( F2 [; a  f4 c3 o8 m2 H  M
  8.   
    ' @! x+ M: F, g8 T8 Z) y
  9.   DENY_THRESHOLD_INVALID = 5  #无效用户名限制登陆次数。 // --> 主要 $ [! m# y5 ^& z
  10.   
    , i; A' l3 g) b# q
  11.   DENY_THRESHOLD_VALID = 10  #有效用户名限制登陆次数。 // --> 主要
    " p: k5 n, r" h( C4 Z  K. w
  12.   
    + _- x. S- X) @- p+ H) h2 s
  13.   DENY_THRESHOLD_ROOT = 5  #root限制登陆次数。  // --> 主要 ) _0 S. J3 y& p2 U4 g
  14.   4 t2 C4 d6 [  m$ x# t  O7 T9 H
  15.   DENY_THRESHOLD_RESTRICTED = 1  #受限用户限制登录次数。  // --> 主要 % P) ^! @/ E8 h+ S
  16.     v4 p, H/ @' \" b- W  V% @
  17.   WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
    - I7 [, \# p; V* g) e* H: s# o
  18.   
    % `' h. l' s) [5 M3 l8 T$ S
  19.   HOSTNAME_LOOKUP=YES  #是否做域名反解
    # {0 v, l  k0 H. m1 o- V
  20.   / y8 W* h$ i# P; B  |$ F$ Z3 B
  21.   LOCK_FILE = /var/lock/subsys/denyhosts  #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
    . ]0 {6 J1 [. S) n- W% X9 X" x
  22.   
    / ?9 f: F' c1 F
  23.   ADMIN_EMAIL = denyhosts@163.com  #设置管理员邮件地址
    ' u$ o( i4 b2 }" ^: G
  24.   SMTP_HOST = localhost
    % b; e. j/ M* Y% |
  25.   SMTP_PORT = 25
    ) |" x2 V5 J3 p% i1 P
  26.   SMTP_FROM = DenyHosts  * x% t* m  m1 e5 k+ P
  27.   SMTP_SUBJECT = DenyHosts Report
    4 g: v8 x  a- M5 {# ?
  28.   ' G* P+ L) H5 ?8 U6 Z. ]
  29.   AGE_RESET_ROOT = 1d  #root用户登录失败计数归零的时间(1d:1天)
    + M! l" k# y  {, {
  30.   
    3 M, Q, q7 i6 D5 n: I8 t* a4 j
  31.   AGE_RESET_RESTRICTED=25d  #受限用户的失败登录计数归零的时间! ?! Y, _+ w3 C6 [  I" L/ e5 `
  32.   
    . G2 E! V' J* `1 s, y
  33.   AGE_RESET_VALID=1d   #有效用户登录失败计数归零的时间
    ! C! ^/ `5 c6 j' }
  34. ; q# r9 y: @" m" N
  35.   AGE_RESET_INVALID=10d  #无效用户登录失败计数归零的时间  ?1 {) i/ k; Q  k
  36.   
    4 g, z& d* i, r4 ?: @" L# p* Z5 I
  37.   DAEMON_LOG = /var/log/denyhosts  #自己的日志文件
    4 \% G$ T: a5 A% i) k" g

  38. ; b0 L, M$ e2 m0 g4 g! H. }

  39. , f( G9 G  c* V/ \6 k
复制代码

. [+ B0 C7 x" k' V' ?" B" N, O" H' v$ P2 q- q  ~; ]
  • 查看和配置 IP 黑名单、白名单2 u, r$ E8 p8 }4 i; o% F
  1. vi /etc/hosts.deny    //黑名单(拦截记录)% y1 r* e& b$ R2 r# @1 {
  2.   vii /etc/hosts.allow    //白名单
复制代码
想要解禁一个已经被禁止掉的 IP,并加入到允许主机列表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作:
9 K+ I4 I; `1 r) [
    1 u# u- J7 {3 S, J: X0 Q  K

    7 ?/ z( @5 }4 T/ H
  • 1、停止 DenyHosts 服务:$ sudo service denyhosts stop
  • 2、在 /etc/hosts.deny 中删除你想取消禁止的主机 IP
  • 3、编辑 DenyHosts 工作目录(配置文件中 WORK_DIR)的所有文件,一个个删除文件中你想取消的主机 IP 所在的行
    1 |/ |4 a3 V/ H! q /var/lib/denyhosts/hosts. c( P0 q9 }6 U0 A, d. w
    /var/lib/denyhosts/hosts-restricted
    2 l" t2 R( l: |' [" s /var/lib/denyhosts/hosts-root) k$ b6 c# d4 u: o9 q4 q
    /var/lib/denyhosts/hosts-valid1 S9 n6 U( d2 b- L% C& ~6 J! E" M9 j
    /var/lib/denyhosts/users-hosts
  • 不知道有哪些文件包含了这个 IP 地址,可以使用以下命令:
    , }# M4 j. I; ^" W/ o" t! n) ^ $ sudo grep *.*.*.*(IP地址) /var/lib/denyhosts/** L: ]. x2 B3 q% i
    搜索结果可能有
    4 E# @7 K+ S$ P* m /var/lib/denyhosts/hosts+ G) p/ `4 W$ C+ j1 b$ S( l
    /var/lib/denyhosts/hosts-restricted- k8 n- P" _# x0 o
    /var/lib/denyhosts/hosts-root$ d0 C' r1 f* k2 u; x& O
    /var/lib/denyhosts/hosts-valid
    7 V3 @& `4 q+ @5 K5 v0 v% z6 M6 y /var/lib/denyhosts/users-hosts
  • 4、添加你想允许的主机 IP 地址到$ U$ f- a; a4 Q) j- [
  /var/lib/denyhosts/allowed-hosts
! U/ z  ]) M$ A8 w* y

    # p6 I$ y9 \  J. \* z3 L' k& V5 V6 ]2 M
  • 在文件中的位置大概在这段代码下方:
    6 i& e* ]" U( W' ]8 K, u# i

& u9 E: N* J" N* E$ o& Z9 ]        # We mustn’t block localhost         127.0.0.1         *.*.*.*   //你想添加允许的IP地址     

    & y& A2 m4 I9 T5 S$ ^5 v! p' _7 Y, D$ @* ]
  • 5、启动 DenyHosts 服务: service denyhosts start
  • 6、如果不想自己解禁,可以等到一个重置周期后,自动解禁- s  D# T  M6 B

1 h- }! X1 X1 L% b$ D. A
3 ~8 P! r# }9 @( q# ?' V" d. X9 f6 G: l! g4 }8 w7 z, b# k
" t, ~% w: e, ~% C- l& m
3 Z$ S7 ~9 G* U/ a$ V
! N# V, V( }0 c5 O
回复

使用道具 举报

24

主题

5

回帖

199

积分

公司现有员工

积分
199
 楼主| 发表于 2020-3-8 23:37:01 | 显示全部楼层
临时记录
* y$ O1 m. v: Y& u* p2 J" dhttps://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-1-3 10:16 , Processed in 0.036589 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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