分类: LINUX
2012-02-20 15:42:19
ssh(安全外壳协议)是大家常用的登录linux服务器的方式,但是为了安全考虑,有时候我们需要针对ssh做一些特殊处理,本文记录笔者曾经做过的一些修改,供大家参考。
传统的网络服务程序,如:、和在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
SSH的英文全称是SecureShell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。
一、修改ssh端口
ssh默认为22端口,如果需要修改成其它端口,则可以修改/etc/ssh/sshd_config文件,将
#Port 22
注释去掉,修改成需要的端口(比如8888),然后使用如下命令重启ssh服务
service sshd restart
二、关闭root用户远程ssh登录的权限
如果不希望root用户远程登录,可以按照如下修改:
vi /etc/ssh/sshd_config
将
#PermitRootLogin yes
注释去掉,yes改为no,重启ssh服务(这里最好reboot一下)
三、禁止某些特定用户远程登录
1. 修改/etc/pam.d/sshd
在#%PAM-1.0后加入一行:
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail
2. 启用用户远程登录(例如允许abc远程登录):
echo abc>> /etc/ssh_users
3. 禁止用户远程登录:
rm –rf /etc/ssh_users
如上示例只是简单删除文件,其实如果不允许某个用户登录,则将该用户从ssh_users文件中删除即可。
四,安装ssh服务
apt-get install openssh-server
注:文章转自http://blog.chinaunix.net/space.php?uid=20691565&do=blog&id=3077572