> CentOS > CentOS安全 >

CentOS下配置安全的SSH

这篇文章将介绍如何修改sshd的默认设置以确保sshd安全和受限制,进行保护你的服务器免受黑客入侵。每次你更改sshd的配置文件后需要重启sshd。这样做你当前的连接是不会关闭的。确保你有一个单独的以root登录的终端,以防止你错误的配置。这样做你就可以避免错误配置时仍可以使用root权限更正错误。


更改ssh默认端口号


首先,推荐把sshd默认端口号22改为比1024大的端口号。大多数的端口扫描器默认只扫描1024以下的端口。打开sshd配置文件/etc/ssh/sshd_config找到如下代码:


Port 22

并改为:


Port 10000

现在重启sshd:


/etc/init.d/ssh restart

从现在开始,你需要用10000端口登录服务器:


ssh -p 10000 name@myserver.local

只允许指定主机连接


这一步我们将通过客户端的IP地址来限制通过ssh连接服务器。编辑文件/etc/hosts.allow,增加如下代码:


sshd: X

X代表允许登录sshd的IP地址,如果允许多个IP地址登录则用空格分开。
现在编辑/etc/hosts.deny文件拒绝所有其它的主机登录:


sshd:ALL

只允许指定用户登录


不是每一个用户都需要使用ssh连接服务器。只允许指定用户通过ssh连接服务器增强了安全性。比如,只允许用户foobar通过ssh连接服务器,编辑/etc/ssh/sshd_config并增加如下代码:


AllowUsers foobar

如果想添加多个用户,可以使用空格分开。


拒绝root ssh登录


通常的不允许root用户通过ssh连接服务器是一个明智的举措。你可以编辑/etc/ssh/sshd_config文件更改或者添加如下代码:


PermitRootLogin no
(责任编辑:IT)