发布时间:2014-09-05 17:15:37作者:知识屋
在查看freebsd日志的时候总免不了在auth.log中发现大量的ssh用户名扫描,说实话,这帮人实在无聊,就算我用户名和密码都告诉他了他一样登陆不了,何必呢?本文将说说freebsd下的ssh安全我们可以做些什么。按本文操作,不敢说你的ssh就100%安全,不过至少我们可以更安全点。下面是日志的一段:
Dec 13 10:16:30 ddd sshd[46500]: Invalid user raimundo from 59.124.60.69
Dec 13 10:17:49 ddd sshd[46512]: Invalid user alexandre from 59.124.60.69
Dec 13 10:20:18 ddd sshd[46523]: Did not receive identification string from 59.124.60.69
Dec 13 10:21:10 ddd sshd[46524]: Invalid user a from 59.124.60.69
Dec 13 10:22:06 ddd sshd[46541]: Invalid user mercedes from 59.124.60.69
Dec 13 10:23:26 ddd sshd[46545]: Invalid user raimundo from 59.124.60.69
Dec 13 10:23:36 ddd sshd[46547]: Invalid user raimundo from 59.124.60.69
Dec 13 10:23:40 ddd sshd[46549]: Did not receive identification string from 59.124.60.69
Dec 13 10:23:49 ddd sshd[46550]: Invalid user raimundo from 59.124.60.69
Dec 13 10:24:25 ddd sshd[46552]: Invalid user raimundo from 59.124.60.69
Dec 13 10:24:33 ddd sshd[46554]: Invalid user raimundo from 59.124.60.69
Dec 13 10:24:37 ddd sshd[46556]: Did not receive identification string from 59.124.60.69
首先,如果你采用默认的验证(pam)登录方式,且允许root登陆,如果不做其他安全防护的话那么你的服务器被攻入的概率非常高。现在暴力破解软件非常之多,想想,以现在电脑的效率,10位以内的密码你认为多少时间能被算出来?况且很多人的密码没有达到十位。
一、无论如何,我建议fb的服务器开启防火墙ipfw,iptables什么的都行,看个人习惯。以ipfw为例:我的原则是没用的端口全部封了,对于进入的链接全部采取限制,比如ssh对于同一个ip我一般只允许有一条链接,这样可以降低暴力破解的速度节省服务器资源:
01500 allow tcp from any to me dst-port 22 in via em0 setup limit src-addr 1
二、禁止root登陆
#ee /etc/ssh/sshd_config
Port 22 #这里的端口可根据需要修改,不过要注意防火墙也要开启其端口
Protocol 2
PermitRootLogin no #这将禁止root直接登录
# Authentication:
PermitRootLogin no #以下相同颜色的几行将允许采用密匙验证
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# Change to yes to enable built-in password authentication.
PasswordAuthentication no
PermitEmptyPasswords no
# Change to no to disable PAM authentication
三、采用密匙登陆
这在操作上要及其小心以免把自己关注外面。原则上等密匙登陆成功后再关闭pam登陆模式(openssh默认的验证方式)。制作密匙的过程如下:
登陆服务器切换到你需要登陆的用户名,然后执行如下命令:
#ssh-keygen -t rsa -b 1024
执行上面命令后将问你密匙保存位置和密码。最后将在用户的家庭目录下的.ssh/下生成一个公匙(id_rsa.pub)和一个私匙(id_rsa)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ezool/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ezool/.ssh/id_rsa.
Your public key has been saved in /home/ezool/.ssh/id_rsa.pub.
上面的过程你可以不输入密码,那样只要载入密匙就登陆服务器,不过不建议那样做。生成后你需要切换到ssh密匙目录下修改公匙文件名
#cd /home/test/.ssh #test改成你生成密匙的用户名
#cat id_rsa.pub > authorized_keys #也可以用 mv id_rsa.pub authorized_keys直接修改文件名
#chmod 600 authorized_keys #仅供本人读写
#rm id_rsa.pub #移除刚生成的公匙文件
接着你需要把私匙下载下来:
#cat id_rsa > /www/myweb/mykey.ppk #注意路劲哦,这里由于是承接上面,因此用户还在.ssh目录下
#rm id_rsa
通过ftp把密匙下载下来,然后需要注意,这里下载下来的密匙还没办法直接用于PuTTY,需要通过puttygen转换
启用putty key generator,点击load载入刚下载下来的私匙,这时他会提示转换,只要在save private key就可以,这样这个文件就能用。
登陆的时候注意左边的ssh下面有个 Auth,通过这个载入私匙,然后就可以登录。如果登陆成功,这这时可以关闭默认的pam验证方式
#ee /etc/ssh/sshd_config 修改以下的两行
ChallengeResponseAuthentication no
UsePam no
#/etc/rc.d/sshd restart #重启sshd使配置生效
四、禁止ssh暴力破解
我们采用密匙验证方式后,除非你的私匙、用户名、密码泄露,否则不管别人扫描你都不用担心了。唯一不爽的是天天有人扫描,这极大浪费了服务器资源,我们可以通过软件来禁止别人无故扫描。基本工作原理是:
读取auth.log文件,从中匹配用户登录失败用户,如果连续几次登陆失败,则把ip加入denyhost或者防火墙,或者断开该ip的链接,这样使得他的扫描无法继续下去。相关的软件如:fail2ban、Sshguard、DenyHosts等,详细的以后会介绍
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能