OpenSSH安全配置
OpenSSH的配置文件为/etc/ssh/sshd_config
下面介绍了7个需要更改的地方, 也不能说是需要, 只能说, 这样做会让你的主机在互联网中更安全.
在上面那个配置文件中, 有好多行的开始是一个#
字符, 这表示这个行是一个注释, 而里面的配置则是默认的, 也让就是说, 注释掉的行都是默认配置, 你可以把注释取消, 然后更改选项.
禁止root账户登录
服务器默认是允许root登陆的, 但是最好不要允许root直接登陆, 而是用你的账户登陆, 然后su -
来进入root账户.
(其实这一点我本人不敢苟同, 也有可能是因为手里的服务器都是自己掌控, 所以不分你我, 但我想大多数人也就一台自用的服务器, 这个时候就无所谓那个账户了, 而且在后面开启证书验证, 关闭密码登陆的时候, 服务器是相当安全的(就非法登陆而言,漏洞除外), 所以, 如果你只有一台机子而这台机子就你自己用的话, 还是忽略这点吧.)
之所以这么做, 是因为, 如果允许root登陆, 那么每一个以root登录的用户在进行一系列操作之后, 无法查出具体是谁做的, 也就是, 翻了错误可以丢锅... 但是当禁止root登陆之后, 每个用户要想行使root权限, 就必须使用su -
, 这一切都是记录下来的 :) 所以犯了错就有据可查咯~
具体操作:
$ vi /etc/ssh/sshd_config
PermitRootLogin no #修改这个地方
仅允许特定用户/组登陆
具体操作:
$ vi /etc/ssh/sshd_config
AllowUsers ramesh john jason #允许登陆的用户
AllowGroups sysadmin dba #允许登陆的用户组
仅禁止特定用户/组登陆
具体操作:
$ vi /etc/ssh/sshd_config
DenyUsers ramesh john jason #禁止登陆的用户
DenyGroups sysadmin dba #禁止登陆的用户组
更改sshd的默认端口
SSHD默认登陆端口为22
, 安全起见(防止被爆破), 最好改成一个乱七八糟的端口
$ vi /etc/ssh/sshd_config
Port 23333
更改登陆时限
默认的时间限制是2分钟, 如果2分钟内没有成功登陆, 服务器就会断开连接. 2分钟貌似有点长, 所以我们最好把他改小点:
$ vi /etc/ssh/sshd_config
LoginGraceTime 1m
更改监听的网卡
假设服务器有四个网卡, 每个网卡对应的IP地址分别是:
- eth0 – 192.168.10.200
- eth1 – 192.168.10.201
- eth2 – 192.168.10.202
- eth3 – 192.168.10.203
但是你只想在特定的网卡上监听服务, 那么你就可以在配置文件中写道:
$ vi /etc/ssh/sshd_config
ListenAddress 192.168.10.200 # 这是网卡0
ListenAddress 192.168.10.202 # 这是网卡2
不活动时断开连接
这个不活动, 指的是没有命令执行,无论命令成功获失败, 也就是说, 只要你在某一时间段内没有按下回车,且当前没有任务在运行, 那么服务器就会主动断开连接(把你踢出去).
如果是在bash里面,可以利用 TMOUT
这个变量.
在OpenSSH中, 可以这样修改:
$ vi /etc/ssh/sshd_config
ClientAliveInterval 600
ClientAliveCountMax 0 #从不检查
设置600内,如果无活动就断开连接.