Linux 防SSH暴力攻击
在下这几天发现我的VPS 总是莫名遭受到 江苏镇江那边的IP 登录请求攻击 ,跟踪了下路由,发现ip是从蒙古那边出去的,然后意识到可能是有扫描端口的。。
方法一:
现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议vps主机的空间,尽量设置复杂的ssh登录密码,那么有什么更好的办法来解决这个问题?,就可以使用denyhosts这款软件了,它会分析/var/log/secure(redhat,Fedora Core)等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。
DenyHosts是一个脚本,旨在由Linux系统管理员运行以帮助阻止SSH服务器攻击(也称为基于字典的攻击和蛮力攻击)。
如果你曾经查看过ssh日志(在Redhat上是/ var / log / secure,在Mandrake上是/var/log/auth.log,等等...),可能会警觉看到有多少黑客试图访问您的服务器。希望他们都没有成功(但是,话又说回来,你怎么知道?)。自动阻止攻击者继续进入您的系统不是会更好吗?
安装脚本
DenyHosts官方网站为:http://denyhosts.sourceforge.net/
如果使用了 LNMP一件安装包 布置的环境,该包自带该软件可以一键安装,命令:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5/tools/ && ./denyhosts.sh 回车确认即可开始安装配置,不需要下面的步骤进行安装配置。(该tools目录下也有denyhosts相似的工具fail2ban的一键安装工具 ./fail2ban.sh 安装即可)
1、下载DenyHosts 并解压
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
2、安装、配置和启动
安装前建议执行:echo "" > /var/log/secure && service rsyslog restart 清空以前的日志并重启一下rsyslog
# python setup.py install
因为DenyHosts是基于python的,所以要已安装python,大部分Linux发行版一般都有。默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# cp daemon-control-dist daemon-control
默认的设置已经可以适合centos系统环境,你们可以使用vi命令查看一下denyhosts.cfg和daemon-control,里面有详细的解释
接着使用下面命令启动denyhosts程序
# chown root daemon-control
# chmod 700 daemon-control
# ./daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置:
# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig --add denyhosts
# chkconfig --level 2345 denyhosts on
或者执行下面的命令加入开机启动,将会修改/etc/rc.local文件:
# echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local
DenyHosts配置文件/usr/share/denyhosts/denyhosts.cfg说明:
SECURE_LOG = /var/log/secure
#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
DAEMON_PURGE = 5m
#过多久后清除已经禁止的IP,如5m(5分钟)、5h(5小时)、5d(5天)、5w(5周)、1y(一年)
BLOCK_SERVICE = sshd
#禁止的服务名,可以只限制不允许访问ssh服务,也可以选择ALL
DENY_THRESHOLD_INVALID = 5
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
DAEMON_LOG = /var/log/denyhosts
为防止自己的IP被屏蔽,可以:echo "你的IP" >> /usr/share/denyhosts/allowed-hosts 将你的IP加入白名单,再重启DenyHosts:/etc/init.d/denyhosts ,如果已经被封,需要先按下面的命令删除被封IP后再加白名单。
如有IP被误封,可以执行下面的命令解封:wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhosts_removeip.sh 要解封的IP
更多的说明请查看自带的README文本文件,好了以后维护VPS就会省一些心了,但是各位VPSer们注意了安全都是相对的哦,没有绝对安全,将密码设置的更Strong,并请定期或不定期的检查你的VPS主机,而且要定时备份你的数据哦。
与DenyHosts类似的软件还有fail2ban功能上更多,还可以对ftp进行保护,自己可以搜索看一下。
采用lnmp的 tools 工具包提供的fail2ban 的话, 可以进入到 /etc/init.d/fail2ban 打印 该脚本信息 ,查看脚本配置信息。
方法二:
SSH服务器(sshd)作为Linux上非常重要的服务,安全性是很重要的,首先网上有很多专门的服务器用来扫描SSH默认的22端口并使用弱口令之类的密码字典进行暴力破解,虽然可以使用上面所说的 lnmp自带的denyhosts、fail2ban之类的安装脚本,但是将默认SSH端口改掉能过滤掉大部分SSH暴力破解的访问。该教程适合常见的CentOS/Fedora/RedHat、Debian/Ubuntu等常见的Linux发行版。
SSH服务器的配置文件为:/etc/ssh/sshd_config
具体修改步骤如下:
1、备份原sshd配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
2、修改sshd配置文件
可以使用winscp、nano、vim之类的软件编辑 /etc/ssh/sshd_config
查找Port 22,有可能 Port 22 是注释的(即前面有#号,有的话删掉 # 号)。
在 Port 22 下面添加一行 Port 3322 其中3322为你更改SSH后的端口。
这里建议先保留原来的22端口,待新的SSH端口测试正常工作后再删掉原Port 22 端口行。
修改完成后保存。
3、重启SSH服务器
重启SSH服务器命令:systemctl restart sshd
如果没有systemctl的话可以执行:/etc/init.d/sshd restart 或 /etc/init.d/ssh restart
如果没有报错的话就生效了,可以 ss -ntl 或 netstat -ntl 查看一下端口。
4、防火墙、安全组规则设置
iptables添加SSH新端口规则:
iptables -A INPUT -p tcp --dport 3322 -j ACCEPT #3322替换为新的端口#
然后保存iptables规则
firewalld添加SSH新端口规则:
firewall-cmd --permanent --zone=public --add-port=3322/tcp #3322替换为新的端口#
firewall-cmd --reload #重载firewalld#
阿里云之类的安全组规则添加SSH新端口规则:
阿里云之类的有安全组之类设置的云服务器一定要在安全组规则里将新端口添加到“入方向”的允许规则。
5、putty、xshell之类的SSH软件连接测试
添加上新的SSH端口后一定要通过putty、xshell之类的SSH软件连接测试一下,测试可以正常连接然后再编辑 /etc/ssh/sshd_config 将Port 22 这一行直接删除或这一行前面加 # 注释掉,然后再按前面的命令重启SSHd服务。
Linux 防SSH暴力攻击的更多相关文章
- Linux VPS上DenyHosts阻止SSH暴力攻击
2009年07月23日 下午 | 作者:VPS侦探 现在的互联网非常不安全,很多人没事就拿一些扫描机扫描ssh端口,然后试图连接ssh端口进行暴力破解(穷举扫描),所以建议vps主机的空间,尽量设置复 ...
- DenyHosts 阻止SSH暴力攻击
当你的 Linux 服务器暴露在互联网之中,该服务器将会遭到互联网上的扫描软件进行扫描,并试图猜测SSH登录口令. 你会发现,每天会有多条SSH登录失败纪录.那些扫描工具将对你的服务器构成威胁,你必须 ...
- linux 防止ssh暴力破解密码
收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面 #!/bin/bash #Denyhosts SHELL S ...
- 增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击
VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门 ...
- Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码
Linux用root强制踢掉已登录用户 首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...
- Linux应急响应(一):SSH暴力破解
0x00 前言 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...
- Linux CentOS 防止SSH暴力破解
一. 问题的发现 昨晚苦逼加班完后,今早上班继续干活时,SSH连接服务器发现异常的提示,仔细看了一下吓一小跳,昨晚9点钟到现在,一夜之间被人尝试连接200+,慌~~~ 1. 速度查一下log [roo ...
- iptables限制同一IP连接数,防防CC/DDOS攻击
启动sftp本机的iptables防火墙功能,限制每个ip连接22端口(sftp连接端口即是ssh端口)最大为50个,当超过50后的连接数的流量就会被DROP掉! 同时iptables需要开放5000 ...
- SSH 暴力破解趋势——植入的恶意文件属 DDoS 类型的恶意文件最多,接近70%,包括 Ganiw、 Dofloo、Mirai、 Xarcen、 PNScan、 LuaBot、 Ddostf等家族。此外挂机、比特币等挖矿程序占5.21%
SSH 暴力破解趋势:从云平台向物联网设备迁移 | 云鼎实验室出品 from: http://www.freebuf.com/articles/paper/177473.html 导语:近日,腾讯云发 ...
随机推荐
- C语言入门:一维数组的概要
数组的概念: 具有相同数据的有序集合 一维数组的定义格式: int a[5]; 类型说明符 数组名(标识符)[常量表达式(长度)]; 一维数组下标 : 数组的下标 从0开始 最大下标值 为 数组的 ...
- PYTHON经典算法-完美平方
问题描述: 给定一个正整数n,找到若干个完全平方数(例如:1,4,9),使得 它们的和等于n,完全平方数的个数最少. 问题示例: 给出n=12,返回3,因为12=4+4+4:给出n=13,返回2,因为 ...
- postgresql spi开发笔记
#include "postgres.h" #include "fmgr.h" #include <string.h> #ifdef PG_MODU ...
- JAVA byte数组转化为16进制字符串输出
最简单的方法: 利用javax.xml.bind包下的DatatypeConverter printHexBinary public static java.lang.String printHexB ...
- Java数据结构系列(1)——自平衡二叉树
1.基本概念 所谓自平衡二叉树,就是当我们插入或删除元素之后,二叉树的高度会自动调整到最小,这样我们就可以在对数时间内查找二叉树内的元素. 2.定义 TreeSet<Elemtype> s ...
- Cheat sheet PySpark SQL Python(PySpark 速查表)
- CCF_ 201509-3_模板生成系统
又是一道考验细心和耐心的题,不知道哪里出问题了,一直只有90分 = =! #include<cstdio> #include<iostream> #include<cst ...
- LeetCode22 生成所有括号对
本文始发于个人公众号:TechFlow,原创不易,求个关注 链接 Generate Parentheses 难度 Medium 描述 Given n pairs of parentheses, wri ...
- ELK:日志收集分析平台
简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋 ...
- win10系统安装VMware虚拟机软件以及linux系统
一.安装VMware 1.在VMware官网下载VMware Workstation Pro 15.5.1 下载地址:https://my.vmware.com/cn/web/vmware/detai ...