`
ssxxjjii
  • 浏览: 958981 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自动拒绝恶意IP远程登录Linux服务器脚本

 
阅读更多

http://wgkgood.blog.51cto.com/1192594/1108537

随着整个IT行业的发展,安全对于人们来说非常的重要,小到个人电脑,到IT企业大数据存储,大到整个互联网安全,其实要做好安全,不能光看整体,有时候细节才是最重要的,相对而言,个人电脑的安全,需要我们从多方面来防御,例如使用目前权威主流的360杀毒软件,然后结合自己上网的习惯,不要打开来历不明的东西等等。

那对于服务器级别的安全,我们该如何来做呢,首先是服务器本身处在的机房环境安全,人为操作安全,以及操作系统方面的安全,禁止不必要的端口和服务、配置服务器自身防火墙,例如iptables,除了这些,服务器就安全了吗,就算我们做到这些,也只是相对的安全。安全是要靠长期和点滴来保证。

说了那么多,呵呵,那我们今天要讨论的是什么呢?今天我们一起来研究一下Linux下如何拒绝恶意IP的攻击,当然这里有很多种方法,我们今天使用脚本来实现。

有部分服务器由于业务的需求,配置了外网IP,允许22端口对外访问,(当然我们这里是来讨论这种情况的初步解决方法,真实环境中如果加强安全的话,服务器前端我们可以配置硬件防火墙,后端管理的话,我们可以使用VPN接入、IP限制、中控机密钥登录、权限命令控制等一系列的方法来巩固局域网服务器的相对安全。)

当我们已经配置了iptables防火墙,我们允许22端口对外网所有人访问,当然这也是为了方便,我们在任何地方都连接上,没有做VPN,也没有做ssh密钥验证,但是我们的密码设置得非常复杂,大小写、特殊符、数字 32位,连自己都记不住,就别人扫描没有3-5年是无法攻破的哈哈。所以每天看/var/log/secure文件里面,全部是恶意攻击的ip,那怎么拒绝这些ip下次再攻击,或者怎么让这些IP尝试3-4次就拒绝访问22端口了,看代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh
#auto drop ssh failed IP address
#wugk 2013-1-2
#定义变量
SEC_FILE=/var/log/secure
#如下为截取secure文件恶意ip 远程登录22端口,大于等于4次就写入防火墙,禁止以后再登录服务器的22端口
IP_ADDR=`tail -n 1000 /var/log/secure |grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -nr | uniq -c |awk ' $1>=4 {print $2}'`
IPTABLE_CONF=/etc/sysconfig/iptables
echo
cat <<EOF
++++++++++++++welcome to use ssh login drop failed ip+++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++------------------------------------++++++++++++++++++
EOF
#打印动态滚动条,参照老男孩博客-数组分析文章
echo -n "请等待5秒后开始执行 "
for ((j=0;j<=4;j++)) ;do echo -n "----------";sleep 1 ;done
echo
for in `echo $IP_ADDR`
do
    #查看iptables配置文件是否含有提取的IP信息
    cat $IPTABLE_CONF |grep $i >/dev/null
if
    [ $? -ne 0 ];then
    #判断iptables配置文件里面是否存在已拒绝的ip,如何不存在就不再添加相应条目
    sed -i "/lo/a -A INPUT -s $i -m state --state NEW -m tcp -p tcp --dport 22 -j DROP"$IPTABLE_CONF
else
    #如何存在的话,就打印提示信息即可
    echo  "This is $i is exist in iptables,please exit ......"
fi
done
#最后重启iptables生效
/etc/init.d/iptables restart

如上脚本编写完毕,如何实现自动添加恶意IP呢,执行如下命令,添加到crontab即可,实现每5分钟自动执行该脚本。

  1. echo  "*/5 * * * *  /bin/sh /data/sh/auto_deny_Login.sh >>/data/logs/login/login.log 2>&1" >>/var/spool/cron/root

过几天观察,我们会发现IPTABLES配置文件里面发生了如下变化:截图如下,全部是恶意攻击的IP:

以上方法仅供参考,还有另外一种方法也非常不错,通过读取恶意IP登录信息,然后把IP写入/etc/hosts.deny 文件高效,一样可以达到效果。

根据自己的实际情况修改,欢迎大家共同交流和探讨,这里链接一下比较全的恶意攻击ip表http://pastebin.com/0b6S86sV

分享到:
评论

相关推荐

    linux服务器远程控制系统(wdcp)安装[整理].pdf

    《Linux服务器远程控制系统(wdcp)安装与管理详解》 Linux服务器因其稳定性和安全性,常被用于网站服务器系统。然而,对于不熟悉Linux命令行操作的用户来说,管理Linux服务器可能会显得有些困难。这时,Linux服务器...

    基于Linux的远程管理系统服务器端的实现.doc

    例如,在用户认证方面,系统要求管理员使用远程服务器的root权限和密码进行登录,并且只允许执行预定义的安全任务,以避免意外或恶意的操作导致系统受损。 - **界面显示技术**:考虑到用户体验的重要性,系统采用了...

    Linux如何查看当前有多少IP连接了这台机子.如何查看都谁连接了我

    在生产环境中,结合`fail2ban`等工具可以自动识别并阻止恶意IP,保护系统免受攻击。 总之,Linux提供了多种方式来查看和管理网络连接,根据具体需求选择合适的方法,确保系统的安全和高效运行。通过学习和熟练掌握...

    Linux Network 用于发送 指令到服务器,服务器将结果发送到客户端输出.gz

    5. **自动化工具(如Ansible)**:在大型企业环境中,通常会使用自动化工具,如Ansible,来批量管理和配置Linux服务器。Ansible可以通过SSH连接发送指令,执行脚本,并收集服务器的输出,而无需手动干预。 6. **...

    快速架设安全的Linux服务器组.pdf

    《快速架设安全的Linux服务器组》 在构建服务器架构时,确保系统的安全性是至关重要的。Linux操作系统因其开源、稳定和高效的特点,被广泛应用于服务器领域。本文主要讨论如何在Linux环境中快速且安全地搭建服务器...

    卡巴斯基Linux 文件服务器快速安装指南

    ### 卡巴斯基Linux文件服务器快速安装指南知识点详解 #### 一、产品概述 ...通过其强大的实时保护、手动扫描、隔离、备份及远程管理等功能,能有效抵御各种类型的恶意软件攻击,确保服务器的安全稳定运行。

    XRDP一键安装脚本(支持多个ubuntu版本)

    1. **远程桌面连接**:通过网络连接到Linux服务器,提供一个图形化的桌面环境,便于远程管理或进行日常操作。 2. **跨平台兼容**:XRDP协议与多种操作系统兼容,如Windows、macOS和Linux,使得不同平台间的协作变得...

    用Linux建立高性能的拨号服务器.pdf

    这种卡允许Linux服务器同时处理多个拨入连接,提高服务器的并发处理能力。安装和配置多串口卡在Linux中相对简单,只需正确安装驱动程序并进行相应的系统设置。 接着,配置PPP服务。在Linux中,pppd(PPP daemon)是...

    韩老师Linux2021系列教程

    教程将涵盖网络配置,包括IP地址、子网掩码、路由等设置,以及SSH服务的使用,让你能够远程管理Linux系统。同时,还会讲解如何使用FTP、SFTP等文件传输协议来在Linux系统间交换文件。 系统管理是Linux管理员的必备...

    「Linux下如何限制Root用户进行远程登陆」.docx

    本文主要讨论如何限制root用户进行远程登录,以降低系统被恶意攻击的风险。以下是四种有效的方法: 方法一:修改`/etc/default/login`文件 在该文件中添加`CONSOLE=/dev/tty01`这行设置,可以使root用户只能通过...

    SecureCRT-含注册机

    《SecureCRT:远程访问Linux服务器的安全利器》 SecureCRT是一款强大的终端模拟软件,尤其在IT行业中,它被广泛用于远程连接Linux服务器进行管理和操作。这款软件支持多种协议,包括SSH(Secure Shell)、Telnet、...

    Linux系统服务器安全配置与优化方向概述

    ### Linux系统服务器安全配置与优化方向概述 #### 一、软件源管理与更新 对于Linux系统服务器的安全配置与优化,首要任务是确保所使用的软件来自可靠来源且为最新稳定版本。这一步骤能够有效避免使用可能包含恶意...

    SSHSecureShellClient

    SSHSecureShellClient是一款广泛使用的软件,它允许Windows用户通过安全的SSH(Secure SHell)协议连接到Linux系统,实现远程登录、...通过熟练掌握其使用方法,你可以在Windows环境下高效地管理和维护远程Linux系统。

    Linux讲义(最全)送给初学Linux的朋友

    Linux是世界上最受欢迎的开源操作系统之一,它为个人用户、企业级服务器和云计算环境提供了稳定、安全且可定制的平台。这份“Linux讲义(最全)”是为初学者量身打造的学习资源,旨在帮助他们从零开始,逐步掌握...

    linux大纲资料.txt

    安全远程登录和文件传输可以通过SSH(Secure Shell)来实现。此外,SELinux(Security-Enhanced Linux)是一种内核模块,可以增强Linux系统的安全性。 在Linux系统运行过程中,难免会遇到各种问题。故障排除包括...

    使用wget命令从清华源下载anaconda的安装脚本,结果返回403错误,无法下载。_-wget-403.zip

    当用户试图使用wget命令从清华大学的镜像站点下载Anaconda安装脚本时,却遇到了403 Forbidden的错误代码,这意味着服务器理解用户的请求,但是由于访问被拒绝,因此不能完成该请求。这种情况通常是由于权限问题,...

    red hat linux 7.2系统管理.rar

    6. **Shell脚本编程**: Bash shell是Linux的主要交互式环境,学习编写shell脚本可以自动化日常任务,提高工作效率。 7. **安全管理**: 防火墙配置、SELinux(Security-Enhanced Linux)、SSH安全远程访问等都是保障...

    AWD比赛各类必备脚本

    脚本可能包含了自动生成或解析IP地址的功能,这可能涉及到IP地址的随机生成算法或网络扫描工具。 2. **Kill命令**:用于终止特定进程或服务,可能是为了阻止对手的服务运行或清理自身的痕迹。这涉及到操作系统级别...

    《LINUX基础课程》课件

    11. **远程访问**:掌握SSH(Secure Shell)协议,用于安全地远程登录到Linux系统,以及文件传输工具如scp和sftp。 12. **日志管理**:了解系统日志文件的位置和用途,以及如何分析和处理日志信息。 13. **防火墙...

    Linux安全应急响应之日志分析

    适用人群:有一定经验的运维工程师、安全研究人员和技术主管,他们关注于Linux服务器的安全配置管理和威胁追踪调查工作。 使用场景及目标:①快速判断当前服务器是否有遭受外部恶意程序攻击的风险;②为加强SSH远程...

Global site tag (gtag.js) - Google Analytics