转载来源:https://blog.csdn.net/weixin_42313749/article/details/117593636?spm=1001.2014.3001.5502

文章目录

  • 如何快速将恶意IP 加入防火墙黑名单
    • 前言
    • 需求描述
    • 实验步骤
  • 总结

如何快速将恶意IP 加入防火墙黑名单

前言

经常我们的服务器在深夜,往往会遭到Nmap 扫描,然后有很多ip 试探登录连接我们的服务器,那么我们该如何面对这种情况呢?

需求描述

分析Linux系统/var/log/secure安全日志文件,将黑客或者恶意登陆次数大于20次的IP地址加入Iptables防火墙黑名单;

实验步骤

  • 首先查看安全日志文件

    [root@localhost ~]# cat  /var/log/secure|more
    Jun  5 10:25:56 localhost sshd[10165]: Accepted password for root from 192.168.10.1 port 58525 ssh2
    Jun  5 10:25:56 localhost sshd[10165]: pam_unix(sshd:session): session opened for user root by (uid=
    0)
    Jun  5 10:25:59 localhost sshd[10184]: Accepted password for root from 192.168.10.1 port 58528 ssh2
    Jun  5 10:25:59 localhost sshd[10184]: pam_unix(sshd:session): session opened for user root by (uid=
    0)
    Jun  5 12:51:19 localhost sshd[10394]: Accepted password for root from 192.168.10.1 port 64063 ssh2
    Jun  5 12:51:19 localhost sshd[10394]: pam_unix(sshd:session): session opened for user root by (uid=
    0)
    Jun  5 13:03:00 localhost sshd[10428]: pam_unix(sshd:auth): authentication failure; logname= uid=0 e
    uid=0 tty=ssh ruser= rhost=192.168.10.1  user=root
    Jun  5 13:03:00 localhost sshd[10428]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met
    by user "root"
    Jun  5 13:03:02 localhost sshd[10428]: Failed password for root from 192.168.10.1 port 64400 ssh2
    Jun  5 13:03:06 localhost sshd[10428]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met
    by user "root"
    Jun  5 13:03:08 localhost sshd[10428]: Failed password for root from 192.168.10.1 port 64400 ssh2
    Jun  5 13:03:14 localhost sshd[10428]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met
    --More--
    
  • 过滤其它ip,只看登录失败的ip地址

    [root@localhost ~]# grep "Failed password" /var/log/secure
    Jun  5 13:03:02 localhost sshd[10428]: Failed password for root from 192.168.10.1 port 64400 ssh2
    Jun  5 13:03:08 localhost sshd[10428]: Failed password for root from 192.168.10.1 port 64400 ssh2
    Jun  5 13:03:16 localhost sshd[10428]: Failed password for root from 192.168.10.1 port 64400 ssh2
    Jun  5 13:03:27 localhost sshd[10431]: Failed password for root from 192.168.10.1 port 64438 ssh2
    Jun  5 13:15:33 localhost sshd[10442]: Failed password for root from 192.168.10.10 port 49796 ssh2
    Jun  5 13:15:38 localhost sshd[10442]: Failed password for root from 192.168.10.10 port 49796 ssh2
    Jun  5 13:15:38 localhost sshd[10442]: Failed password for root from 192.168.10.10 port 49796 ssh2
    Jun  5 13:15:46 localhost sshd[10444]: Failed password for root from 192.168.10.10 port 49798 ssh2
    Jun  5 13:15:50 localhost sshd[10444]: Failed password for root from 192.168.10.10 port 49798 ssh2
    Jun  5 13:15:53 localhost sshd[10444]: Failed password for root from 192.168.10.10 port 49798 ssh2
    Jun  5 13:15:59 localhost sshd[10446]: Failed password for root from 192.168.10.10 port 49800 ssh2
    Jun  5 13:16:00 localhost sshd[10446]: Failed password for root from 192.168.10.10 port 49800 ssh2
    Jun  5 13:16:02 localhost sshd[10446]: Failed password for root from 192.168.10.10 port 49800 ssh2
    [root@localhost ~]#
    

  • 打印登录失败的ip

    [root@localhost ~]# grep "Failed password" /var/log/secure |awk '{print$(NF-3)}'
    192.168.10.1
    192.168.10.1
    192.168.10.1
    192.168.10.1
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    192.168.10.10
    [root@localhost ~]#
    
  • 进行排序,统计次数

    [root@localhost ~]# grep "Failed password" /var/log/secure |awk '{print$(NF-3)}'|sort|uniq -c|sort -nr9 192.168.10.104 192.168.10.1
    [root@localhost ~]#
    
  • 匹配恶意登录次数大于5次的ip

    [root@localhost ~]# grep "Failed password" /var/log/secure |awk '{print$(NF-3)}'|sort|uniq -c|sort -nr|awk '{if ($1>=5) print $2}'
    192.168.10.10
    [root@localhost ~]#
    
  • 对匹配出来的做一个for循环,然后写入防火墙文件

    [root@localhost ~]# for i in $(grep "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort|uniq -c|sort -nr|awk '{if($1>=5) print $2}');do sed -i "/lo/a -A INPUT -s $i -j DROP" /etc/sysconfig/iptables ;done
    

总结

运维安全在实际生产环境中有着很重要的地位,我们面对黑客疯狂扫描试探的时候,我就需要见流量封杀IP。如何快速封杀IP角色需要我们掌握数量掌握linux命令。特别是awk,sed。在我们脚本中很常用。一定要掌握好。

创作不易,点个赞,留个爱心吧

手把手教你封杀恶意登录服务器的ip相关推荐

  1. 6步教你封杀恶意登录服务器的ip

    文章目录 如何快速将恶意IP 加入防火墙黑名单 前言 需求描述 实验步骤 总结 如何快速将恶意IP 加入防火墙黑名单 前言 经常我们的服务器在深夜,往往会遭到Nmap 扫描,然后有很多ip 试探登录连 ...

  2. 手把手教你搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流

    手把手教你搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流 转载自:https://www.jianshu.com/p/06c2025edcd3 by – paperfish 最近尝试着搭建 ...

  3. 【2022最新】手把手教你拥有自己的服务器与网站(无需备案)

    手把手教你如何拥有服务器及网站,此文章适用于想拥有自己服务器做网站的小白. 前言 手把手教你如何拥有服务器及网站,此文章适用于想拥有自己服务器做网站的小白. 要求有一定的编程基础,成本大概花30元就可 ...

  4. 手把手教您使用第三方登录

    今天讲一下第三方登录 市面很多应用都有登录注册功能,有的公司自己建立服务器,自己完成功能.但是现在有一些公司为了节省开发时间,会选择第三方登录.回想自己刚学安卓那会,就想怎么才能实现登录注册,甚至傻傻 ...

  5. 手把手教你在阿里云服务器上安装Java环境(图文教程)

    前言:最近闲买了个阿里云的服务器,主要有三个用途: 1.学习Redis 2.复习一下Linux命令 3.尝试将一个Spring项目搭建到云服务器上. 1.准备工具 磨刀不误砍柴功,我们先准备好需要用到 ...

  6. 手把手教你搭建NOD32升级服务器

    企业内网管理是我们这些网络管理员的主要工作,而管理的大敌则是那些危害甚多的病毒,安装杀毒软件固然可以有效解决病毒问题,但是病毒库的升级却非常麻烦,一方面员工计算机上杀软升级要消耗大量网络带宽,另一方面 ...

  7. 手把手教你配置阿里云服务器安全组规则完整教程

    阿里云安全组概述 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程 在购买阿里云ECS服务器的时候,阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组.那么,这个安 ...

  8. 服务器群装系统,手把手教你安装及配置服务器集群系统

    今天,我们方案大家谈的经销商为我们提供了安装及配置服务器集群系统的详细步骤.下面,我们来手把手的教您配置服务器集群系统吧! 1.集群服务器安装及配置: 步骤 节点1 节点2 存储 注释 安装配置系统 ...

  9. kali mysql停止服务器_从零开始:手把手教你黑客入门攻破服务器并获取ROOT权限...

    有许多人对神秘的黑客一直感兴趣,却苦于网上资料繁杂,无法入门,在学黑客之前,你要知道什么是黑客,黑客就是那些对计算机有着强烈探索欲的人,一个真正的黑客,必须要至少掌握一门编程技术和熟悉系统的操作命令. ...

最新文章

  1. android用java_原来android不是只能用java写软件
  2. 检测不到信号,是加点噪声?还是滤除噪声?
  3. 复习-css列表和表格相关属性
  4. html如何左侧固定div,详解左右宽度固定中间自适应html布局解决方案
  5. 更小的刘海和更宽的5G天线,下一代iPhone你期待吗?
  6. KVM的安装和配置命令详解
  7. bootstrap拖动div_BootStrap modal实现拖拽功能
  8. 万物互联-stm32单片机简介、烧录、编程及其项目环境搭建
  9. iVX低代码平台系列制作简单的登录界面
  10. 微信注册验证成功之后不跳转_微信公众号申请教程,怎么创建公众号?
  11. 微信小程序云函数数组删除和添加并排序操作pull,push 用法
  12. android农历日历,万年历农历日历app
  13. 三款骨传导耳机性价比推荐-2023年最受欢迎的骨传导牌子
  14. c# excel导入后处理不固定列数据
  15. 经销商、业务人员和销售提成的三个故事
  16. VPS与云服务器应该如何选择?
  17. 用python计算残差等
  18. 计算机桌面刷新位置不可用,Win10开机提示桌面位置不可用的三种解决办法
  19. 某A的工口游戏创作者体验记(下)
  20. CSS+HTML学习笔记005

热门文章

  1. loss函数取对数的作用和意义
  2. Selenium Webdriver——去哪儿网输入实例
  3. 剪枝优化RIPPER算法
  4. [全程建模]迭代与瀑布对立统一(两者的最大区别)
  5. java的八种基本蕾西_(1/7)[代码整洁之道]你真的会用枚举吗?非也!
  6. 医学影像数据格式转换(.mha转.jpg)
  7. hpp文件和h文件有什么区别
  8. 使用 Docusaurus 搭建个人网站项目
  9. 电脑公司 GHOST WIN10 X64 装机专业版 V2018.04(64位)
  10. 如何把两段即以上视频合并成一个