2019独角兽企业重金招聘Python工程师标准>>>

托管在IDC的机器我们通常都用SSH方式来远程管理.但是经常可以发现log-watch的日志中有大量试探登录的
信息,为了我们的主机安全,有必要想个方法来阻挡这些可恨的"HACKER"
有很多办法来阻挡这些密码尝试
1 修改端口
2 健壮的密码
3 RSA公钥认证
4 使用iptables脚本
5 使用sshd日志过滤
6 使用tcp_wrappers过滤
7 使用knockd
1 vi /etc/ssh/sshd_config
#Port 22
默认端口为22,为了避免被扫描,去掉#,改成一个其他的端口,比如45632
保存后重启sshd服务.service sshd restart
2没什么可说的,密码的复杂性可以增加破解的难度,大小写混合加上数字并且有足够的密码长度就比较安全
了,唯一的问题就是要牢记密码.
3.默认的登录方式是password,如果需要用RSA公钥登录,需要先创建RSA Key
#ssh-keygen -t rsa -b 1024
会生成私钥/home/username/.ssh/id_rsa
同时生成公钥/home/username/.ssh/id_rsa.pub
输入一个加密短语(也可省略)
修改sshd 设置,编辑/etc/ssh/sshd_config
'PasswordAuthentication no'
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/id_rsa.pub
 
将公钥下载到本地计算机,然后在ssh客户端软件Secure CRT中设置好,就可以登录了
4 iptbles脚本
此脚本允许每分钟3个连接.有白名单,并有日志纪录
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set  --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update  --seconds 60 --
hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update  --seconds 60 --
hitcount 4 --rttl --name SSH -j DROP
iptables的版本需要>1.2.11 (1.2不支持 --rttl参数)
5使用sshd日志过滤
有几个软件(脚本)可以做到.
sshfilter  [url]http://www.csc.liv.ac.uk/~greg/sshdfilter/[/url]
Fail2Ban   [url]http://fail2ban.sourceforge.net/[/url]
DenyHosts  [url]http://denyhosts.sourceforge.net/[/url]
需要sshd支持tcp_wrappers此功能.
[root@as4test include]# ldd /usr/sbin/sshd | grep libwrap
        libwrap.so.0 => /usr/lib64/libwrap.so.0 (0x0000002a9566c000)
如果有libwrap.so.0这个库说明支持此功能
另一种测试方法:在/etc/hosts.deny加入一行127.0.0.1
然后ssh localhost,如果无法连接,说明支持.
$ tar zxvf DenyHosts-2.6.tar.gz      
$ cd DenyHosts-2.6
as root:
# python setup.py install
#cd /usr/share/denyhost
# cp denyhosts.cfg-dist denyhosts.cfg
配置文件
 
# cp daemon-control-dist daemon-control
启动脚本
# chown root daemon-control
# chmod 700 daemon-control
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
添加到开机启动服务中
6 使用tcp_wrappers过滤
1 下载脚本 [url]http://www.la-samhna.de/misc/sshblock.sh[/url]
2 设置可执行权限 chmod 755 /usr/local/bin/sshblock.sh
3 在/etc/hosts.allow中添加以下内容
#__START_SSHBLOCK__
#__END_SSHBLOCK__
sshd : ALL : spawn (/usr/local/bin/sshblock.sh %a)&
设置
 
DONTBLOCK 白名单
BURST_MAX=5
BURST_TIM=60
60秒内登录5次就封锁
PURGE_TIM=3600
3600秒后解冻
7  使用KNOCKD
knockd 监视一个预定义模式在iptables的日志,例如一次击中端口6356,一次击中端口63356,两次击中端口
9356,这相当于敲一个关闭的门用一种特殊的暗码来被konckd识别,konckd 将使用iptables来打开一个预定
义端口例如ssh的22端口在一个预定定义时间.(比如一分钟),如果一个ssh session 在这个时间范围内打开,
这个端口会一直保留.直到预定义时间过期后ssh端口被knockd关掉.
缺点:比较复杂的方案,不适合普通人
需要客户端(knockd-client)来实现port knocking",同时需要knockd-server来响应.
实际上,很容易检测到这种通讯模式,一旦攻击者可以监控你的通讯,这种解决方案无法提供安全防护针对本
地攻击者.

转载于:https://my.oschina.net/zhangdapeng89/blog/54709

防御暴力破解SSH攻击相关推荐

  1. Freebsd 下用 sshguard 防止暴力破解 ssh 密码

    2019独角兽企业重金招聘Python工程师标准>>> 在 Freebsd 控制台或用 dmesg -a 查看系统消息的时候会发现类似于下面的大量信息,这是因为有人在尝试暴力破解 S ...

  2. 第八天 02.hydra暴力破解ssh密码以及ftp密码

    hydra暴力破解ssh密码 实验环境: ​ windows7 ,kali 实验步骤: windows进入hydra目录 cd 命令 使用命令爆破SSH hydra -l 用户名 -p 密码字典 ss ...

  3. 使用Medusa美杜莎暴力破解SSH密码

    使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...

  4. hydra笔记-利用hydra暴力破解ssh弱口令

    这里我搭了台虚拟机.ssh开放的22端口.用户名密码都是root. 下载windows版本的hydra GitHub - maaaaz/thc-hydra-windows at v9.1 解压就可以了 ...

  5. DenyHosts教程:防暴力破解SSH密码

    背景 此前服务器多次被恶意挖矿,我们通过下面的命令搜索SSH远程登录日志,发现攻击者的IP尝试登录了200多次,即暴力破解了被攻击用户的密码.通过询问该用户得知,设置的密码确实比较简单,为了防止后面被 ...

  6. Linux 利用hosts.deny 防止暴力破解ssh

    一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...

  7. hydra暴力破解ssh密码

    环境:centos7.0 hydra,是一个非常好用的暴力破解工具,而且名字也很cool. 下面是官网上的介绍: AFP, Cisco AAA, Cisco auth, Cisco enable, C ...

  8. 使用Hydra批量暴力破解SSH、RDP登录口令

    破解环境:Kali 2021.1 使用namp扫描SSH端口开放的主机 nmap -p 22 -n --open 192.168.1.0/24 | grep 192 |awk '{print $5}' ...

  9. 使用fail2ban防止暴力破解ssh及vsftpd密码

    介绍 此文介绍一个linux下通过监控日志防止密码被暴力破解的软件-fail2ban.fail2ban支持常用的服务,如sshd, apache, qmail, proftpd, sasl, aste ...

最新文章

  1. C#模拟最简单的交通信号灯
  2. s7.net 写数据到plc_西门子1200复位PLC、欧姆龙常见问题解答
  3. linux监测node进程,通过node_exporter监控linux服务器一
  4. 键盘改键软件_一秒五键,一键三招,万种光污染,杜伽K310樱桃轴机械键盘感受...
  5. PHP封装curd,CURD · TookPHP开发手册 · 看云
  6. 如何用PPT编制方案 (2)PPT内容的逻辑表达
  7. 简单的3个SQL视图搞定所有SqlServer数据库字典 (转载)
  8. BZOJ3235 [Ahoi2013]好方的蛇 【单调栈 + dp】
  9. postman添加cookie_有了这款IDEA插件,再也不需要postman了
  10. 多线程-Thread.join()的运用
  11. linux安装 soapui_在Linux/Unix上安装开源测试工具SoapUI
  12. foobar 更换皮肤
  13. 刷新计算机dns缓存的命令,如何刷新dns缓存 刷新dns缓存命令(ipconfig /flushdns)
  14. qtablewidget 添加一行
  15. 前端职业规划 - 写给年轻的前端韭菜们
  16. html 自动生产,HTML5 Three.js 3D人偶玩具自动化生产车间动画
  17. Hdu 3929 Big Coefficients (容斥原理 二项式性质)
  18. 岁月温柔-9 妈妈吃人参果的后遗症
  19. 北京市社会保险个人权益记录(参保人员缴费信息)-社保定制
  20. Java笔记总结(二)

热门文章

  1. CMM已经落伍了,敏捷才是王道
  2. mysql 前端proxy_【4.分布式存储】-mysql及proxy
  3. 练习1.account表 添加一条记录
  4. cad插入块_CAD中的quot;块quot;能否修改?能!一个命令可快速解决
  5. 大专适合学习php么_我想自学PHP,可以么?
  6. php 多字节截取,将多字节字符串截断为n个字符
  7. 函数传参数_算法笔记(7)第二章C、C++快速入门函数,main函数,
  8. javascript是什么?有哪些特点?
  9. C语言常见基础错误大全总结
  10. linux如何查看jupyter日志_在Linux服务器上运行Jupyter notebook server教程