这里的SSH安全主要对应个人VPS,没有前端硬件防火墙的小型运营服务器,或者是企业小规模服务器。总结性文章,都是可以再网络上可以搜索到。1)禁止root登陆
vi /etc/ssh/sshd_configPermitRootLogin yes
改成
PermitRootLogin no重启ssh服务使用普通用户登陆,然后使用sudo的方式进入root。PS:在FreeBSD系统默认关闭root登陆2)禁止root登陆之后,还要禁止使用password登陆,只能使用ssh key认证方式登陆
vim /etc/ssh/sshd_configPasswordAuthentication yes
改成
PasswordAuthentication no这样默认会使用key登陆,不会允许输入密码3)使用ssh key认证方式,老生常谈了!a.在本地生成一个RSA的公共KEY
# ssh-keygen -t rsab.将生成的id_rsa.pub拷贝到远程机器上,且命名为authorized_keys
scp /root/.ssh/id_rsa.pub root@x.x.x.x:/root/.ssh/authorized_keysc.远程服务上修正权限
chmod 600 ~/.ssh/authorized_keys4)用pkill踢掉ssh用户
如果发现已经被入侵了,但是服务器此时不宜做重启ssh,或者重启server的操作,使用以下方式踢掉其他用户[root@localhost tmp]# w
03:40:28 up 71 days, 51 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.0.1 00:03 0.00s 0.09s 0.01s w[root@localhost tmp]# pkill -kill -t pts/15)使用TCP-wrapped(host.allow & host.deny)控制登陆权限[root@localhost ~]# ldd /usr/sbin/sshd | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x0000002a9566c000)
[root@localhost ~]# 使用ldd检测是否可以用tcp-wrap, 即该服务可以使用/etc/hosts.allow和/etc/hosts.deny,如果输出没有libwrap则不可使用编辑/etc/host.allow,host.deny
.
允许sys.com域访问cat host.allow
sshd: .sys.comcat host.deny
ALL:ALL允许sysv.com和192.168.1.x可以访问,但是不允许主机名是stu1,stu2的机器访问cat host.allow
sshd: .sys.com,192.168.1.,EXCEPT stu1,stu2还有很多其他方式,具体使用查man。一些补充:a)常有人说修改ssh默认22端口可以保证一定的安全性。
几乎无用。使用端口扫描工具nmap,改神马端口都可以找到!并且随意改成其他端口之后,可能会和其他应用的端口冲突。b)用密码比用key安全,设置复杂无规则密码就可以避免暴力破解
属于拍脑袋的想法
ssh key 认证机制比密码要安全, 密码会让别人看到,并且在网络中传输会有风险。
而key相当于你的家门钥匙,谁会把自己的钥匙给别人呢?如果还不放心,也可以设置一个passphrase,这样,别人拿到ssh密钥也没有用。在windows里用putty连接也是可以用key的。使用puttygen.exe转换下,具体google,文章一大把。c)iptables和密钥认证谁更好。
使用iptable指定只允许固定IP可以实现访问控制。缺点是如果iptables崩溃或者忘记启动了,则没有防范效果了。
而且对于iptables来说,规则越少,效率越好。
不过可以使用脚本方式结合iptables限制尝试多次登录的IP,这样可以防止穷举,或者在ssh的config里配置密码错几次之后一段时间内禁止登录。netstat -an | grep -v LISTEN | awk ‘{print $5}’ |grep -v 127.0.0.1|grep -v 本机ip|sed "s/::ffff://g"|awk ‘BEGIN { FS=":" } { Num[$1]++ } END { for(i in Num) if(Num[i]>8) { print i} }’ |grep ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’| xargs -i[] iptables -I INPUT -s [] -j DROPHP Photosmart打印机本地拒绝服务漏洞Boost "ordered_malloc()"缓冲区溢出漏洞相关资讯 SSH SSH安全
- SSH/SSL 源码编译安装简易操作说明 (今 07:03)
- Mac使用ssh出现permission denied( (03月23日)
- Mac OS X下配置远程Linux 服务器 (12/22/2015 15:21:41)
| - Teleport:面向集群及团队的 SSH (04月11日)
- 如何在 CentOS / RHEL 上设置 SSH (01月18日)
- SSH相互信任配置 (12/20/2015 19:58:17)
|
本文评论 查看全部评论 (0)