OpenSSH安全配置

OpenSSH的配置文件为/etc/ssh/sshd_config

下面介绍了7个需要更改的地方, 也不能说是需要, 只能说, 这样做会让你的主机在互联网中更安全.

在上面那个配置文件中, 有好多行的开始是一个#字符, 这表示这个行是一个注释, 而里面的配置则是默认的, 也让就是说, 注释掉的行都是默认配置, 你可以把注释取消, 然后更改选项.

禁止root账户登录

服务器默认是允许root登陆的, 但是最好不要允许root直接登陆, 而是用你的账户登陆, 然后su -来进入root账户.

(其实这一点我本人不敢苟同, 也有可能是因为手里的服务器都是自己掌控, 所以不分你我, 但我想大多数人也就一台自用的服务器, 这个时候就无所谓那个账户了, 而且在后面开启证书验证, 关闭密码登陆的时候, 服务器是相当安全的(就非法登陆而言,漏洞除外), 所以, 如果你只有一台机子而这台机子就你自己用的话, 还是忽略这点吧.)

之所以这么做, 是因为, 如果允许root登陆, 那么每一个以root登录的用户在进行一系列操作之后, 无法查出具体是谁做的, 也就是, 翻了错误可以丢锅… 但是当禁止root登陆之后, 每个用户要想行使root权限, 就必须使用su -, 这一切都是记录下来的 :) 所以犯了错就有据可查咯~

具体操作:

  1. $ vi /etc/ssh/sshd_config
  2. PermitRootLogin no #修改这个地方

仅允许特定用户/组登陆

具体操作:

  1. $ vi /etc/ssh/sshd_config
  2. AllowUsers ramesh john jason #允许登陆的用户
  3. AllowGroups sysadmin dba #允许登陆的用户组

仅禁止特定用户/组登陆

具体操作:

  1. $ vi /etc/ssh/sshd_config
  2. DenyUsers ramesh john jason #禁止登陆的用户
  3. DenyGroups sysadmin dba #禁止登陆的用户组

更改sshd的默认端口

SSHD默认登陆端口为22, 安全起见(防止被爆破), 最好改成一个乱七八糟的端口

  1. $ vi /etc/ssh/sshd_config
  2. Port 23333

更改登陆时限

默认的时间限制是2分钟, 如果2分钟内没有成功登陆, 服务器就会断开连接. 2分钟貌似有点长, 所以我们最好把他改小点:

  1. $ vi /etc/ssh/sshd_config
  2. LoginGraceTime 1m

更改监听的网卡

假设服务器有四个网卡, 每个网卡对应的IP地址分别是:

  • eth0 – 192.168.10.200
  • eth1 – 192.168.10.201
  • eth2 – 192.168.10.202
  • eth3 – 192.168.10.203

但是你只想在特定的网卡上监听服务, 那么你就可以在配置文件中写道:

  1. $ vi /etc/ssh/sshd_config
  2. ListenAddress 192.168.10.200 # 这是网卡0
  3. ListenAddress 192.168.10.202 # 这是网卡2

不活动时断开连接

这个不活动, 指的是没有命令执行,无论命令成功获失败, 也就是说, 只要你在某一时间段内没有按下回车,且当前没有任务在运行, 那么服务器就会主动断开连接(把你踢出去).

如果是在bash里面,可以利用 TMOUT这个变量.

在OpenSSH中, 可以这样修改:

  1. $ vi /etc/ssh/sshd_config
  2. ClientAliveInterval 600
  3. ClientAliveCountMax 0 #从不检查

设置600内,如果无活动就断开连接.