Linux 限制 ip 登录

本贴最后更新于 1006 天前,其中的信息可能已经渤澥桑田

登录后台的时候发现服务器被尝试登录 300 多次,没想到,找了个简单的办法,还真有效

1. 查看服务器失败登录 ip,以及时间

lastb > temp.txt

image.png

想着搞破坏的人还不少

然后将其中的 ip 通过正则提取出来

正则表达式
(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])

2. 禁用 ip 登录

vim /etc/hosts.deny

将上面的提取的 ip 添加进去

sshd:ip地址

保存即可,测试过指定 ip 的确实登录不了了

3. 后续

后来吧,我嫌弃这种方式太麻烦了,得完全手动操作,为啥不写个 shell 脚本呢

#bin/bash
#脚本产生日志文件位置
logFile=/root/limitLogin/log/limitlogin.log
#脚本产生的临时文件,执行完会自动删除,不用修改,默认是linux临时目录
tmpLogFile=/usr/lib/tmpfiles.d/login.tmp.txt
#禁用ip登录的文件,不用修改
denyfile=/etc/hosts.deny

#开始执行
echo "start limit login task,now is `date` " >> $logFile

# 从lastb命令创建临时文件
lastb > $tmpLogFile
if [ -f $tmpLogFile ];then
    echo "login file already created,now begin handler" >> $logFile
fi

#处理文件,正则过滤,然后去重,判断hosts.deny文件中是否已经存在这个ip,不存在的话进行追加
grep  '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' $tmpLogFile -o | sort -u | while read line
do
    if [ `grep -c "${line}" $denyfile` -eq '0' ];then
       echo "sshd:$line" >> $denyfile
    else
       echo "$line already exist" >> $logFile
    fi
  
done

echo "end limit login task,now is `date` " >> $logFile
#删除临时文件
rm $tmpLogFile

再做一个定时任务,每天执行一下

3.1 安装 crond

yum install vixie-cron
yum install crontabs

编写定时任务

crontab -e

进入编辑模式,每一行就是一个定时任务

0 1 * * * /root/loginLimitTask/limit.sh >> /root/loginLimitTask/limitTaskLog.log

每天 1 点执行一次

开启 crond 开机启动,打开 crond

systemctl start crond

将脚本权限改一下

chmod -x /root/loginLimitTask/limit.sh

4. 注意事项

不要把你自己的 IP 加到 hosts.deny 文件中,不然只能通过云服务器控制台进行连接

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    943 引用 • 943 回帖
  • EC2
    2 引用 • 12 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 74 回帖
1 操作
MingGH 在 2022-02-19 11:02:46 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...