傅令江的光影色彩世界
留住记忆的点滴
  • 首页
  • 文学
    • 诗词鉴赏
    • 美文共读
    • 原创
  • 编程
    • php
    • asp
    • .net
    • VB
    • C/C++
    • 易语言
    • js
    • 其他
    • 逆向
  • 运维
    • windows
    • linux
  • 光影色彩
    • 电影
    • 音乐
  • 科技
    • 互联网
    • 手机
  • 生活
    • 情感
  • 微语
3月172015

防御暴力破解SSH攻击

作者:令狐江   发布:2015-3-17 15:12   分类:linux   阅读:3400次   评论:0条  
托管在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://www.fulingjiang.cn/linux/119.html

blogger
该日志由 令狐江 于2015-3-17 15:12 Tuesday发表在 linux 分类下。
版权所有:《傅令江的光影色彩世界》 → 《防御暴力破解SSH攻击》;
除特别标注,本博客所有文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:
上一篇::编译替换curl默认的nss方式的openssl
下一篇:vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

热门文章

  • 兄弟二周年祭

相关文章

  • centos6.4安装socket5做代理
  • 一键解决BT宝塔面板的强制登陆限制要求教程
  • 编写stop.sh脚本kill进程,批量杀掉进程
  • apache 实现虚拟目录代理方式
  • Nginx/LVS/HAProxy负载均衡软件的优缺点详解
取消回复

发表评论

亲,头像对么?

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


  • 日历

  • 存档

    • 2024年10月(1)
    • 2023年2月(1)
    • 2022年11月(1)
    • 2022年10月(10)
    • 2022年9月(13)
    • 2022年8月(2)
    • 2022年7月(14)
    • 2022年6月(2)
    • 2022年5月(8)
    • 2022年4月(7)
    • 2022年3月(13)
    • 2022年2月(2)
    • 2022年1月(9)
    • 2021年12月(2)
    • 2021年11月(4)
    • 2021年10月(2)
    • 2021年9月(6)
    • 2021年7月(4)
    • 2021年6月(3)
    • 2021年5月(3)
    • 2021年4月(11)
    • 2021年3月(13)
    • 2021年2月(2)
    • 2021年1月(1)
    • 2020年12月(1)
    • 2020年4月(5)
    • 2019年9月(1)
    • 2019年8月(1)
    • 2019年5月(3)
    • 2018年3月(1)
    • 2017年10月(1)
    • 2016年7月(1)
    • 2016年4月(1)
    • 2015年12月(1)
    • 2015年11月(3)
    • 2015年9月(1)
    • 2015年8月(10)
    • 2015年7月(1)
    • 2015年6月(1)
    • 2015年4月(1)
    • 2015年3月(3)
    • 2015年2月(8)
    • 2015年1月(4)
    • 2014年12月(1)
    • 2014年11月(27)
    • 2014年10月(13)
    • 2014年9月(14)
    • 2014年8月(26)
    • 2014年7月(21)
  • 最新评论

    • 令狐江:
      喜欢这首歌是因为可以引起共鸣!
  • 链接

    • 演讲稿网
    • Recollect
    • 演讲稿
    • 祁阳人生活网
    • 我爱演讲稿网
  • 搜索

  • 标签

      函数 自定义方法 SEO 分页 分页函数 分页方法 nginx重新的一些规则
  • 分类

    • 文学(0)
    • 编程(0)
    • 运维(0)
    • 光影色彩(0)
    • 科技(0)
    • 生活(0)
    • 诗词鉴赏(3)
    • 美文共读(1)
    • 原创(10)
    • php(111)
    • asp(1)
    • .net(0)
    • VB(0)
    • C/C++(0)
    • 易语言(0)
    • js(8)
    • 其他(9)
    • 逆向(2)
    • windows(11)
    • linux(121)
    • 电影(0)
    • 音乐(1)
    • 互联网(4)
    • 手机(0)
    • 情感(2)
  • 最新文章热门文章随机文章

    • 兄弟二周年祭
    • openai给的ionCube 解密代码,应该是老版本可以这样
    • WordPress – 5秒盾防CC(PHP通用代码)
    • 我高中最好的朋友今天猝死了-伤心得不行
    • Linux系统中 systemd-journaldCPU占用异常的解决方法
    • SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法
    • 解决Linux读写nfs共享盘速度慢的问题
    • php 获取302跳转后的地址
    • 让vsftp显示隐藏文件的办法,比如显示 .htaccess
    • 添加自签名https证书到centos系统信任的问题
    • Kali逆向工程工具
    • Python打包文件夹的方法小结(zip,tar,tar.gz等)
    • php复制文件,目录不存在就创建
    • PHP实现的AES加密、解密封装类与用法示例
    • php 获取301 302的真实地址
Copyright © 2001-2025 傅令江的光影色彩世界. Powered by www.fulingjiang.cn ICP备案:京ICP备14015190号-5