ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CENTOS设置禁止部分IP访问

2021-04-30 14:03:18  阅读:164  来源: 互联网

标签:deny 20 CENTOS 访问 IP etc hosts ssh


    近期发现,我的服务器每次root登陆都有N次失败的登陆尝试,很明显被暴力破解ing。寻思着得提前“自救”。

    思路:

      ①、暴力破解都是按照字典尝试登陆,登陆失败20次就把该ip给拉黑(反正我的IP又不会输错密码登陆)

      ②、只允许密钥登陆

    由于我的环境还是需要密码登陆,故而选择方法1。

 

 

 

原理:

对于能过xinetd程序启动的网络服务,比如ftp telnet,我们就可以修改/etc/hosts.allow和/etc/hosts.deny的配制,来许可或者拒绝哪些IP、主机、用户可以访问。

但不是任何服务程序都能使用TCP_wrappers的,例如使用命令ldd /usr/sbin/sshd,如果输出中有libwrap,则说明可以使用TCP_wrappers, 即该服务可以使用/etc/hosts.allow和/etc/hosts.deny,如果输出没有libwrap则不可使用。

 

 

从上图看,我的server是可以用这种方法的。直接写脚本secure_ssh.sh,

#! /bin/bash
lastb > /tmp/lastb.txt
cat /tmp/lastb.txt |grep ssh|awk '{print $3}' |uniq -c|awk '($1>"1"){print}' > /tmp/black.txt

cat /tmp/black.txt | while read line
do
  IP=`echo $line |awk -F ' ' '{print $2}'`
  NUM=`echo $line |awk -F ' ' '{print $1}'`
  if [ $NUM -gt 20 ];then
    grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

    加定时任务。

#someone try to login server by ssh fail more than 20 times, then put it in black
*/5  *  *  *  *      /bin/sh /home/hik/secure_ssh.sh

    结果验证:没问题,自己用其他服务器试过,错20次就拉黑了。

 

 

PS:

1、可能会遇到脚本执行了,但是不生效,原因是openssh版本可能过低,最好yum重装一下最新版本openssh; 

2、方法比较拙,有更好的方法可以留言赐教,谢谢;

标签:deny,20,CENTOS,访问,IP,etc,hosts,ssh
来源: https://www.cnblogs.com/lynsen/p/14720693.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有