Linux 的管理使用者是 root,远端连线的预设埠是 22,这是通常有 IT 经验的人都知道的。为了系统安全,我们通常都会修改这些预设的设定,下面就说下怎么修改 ssh 的配置。实验用的系统为 CentOS6.9,其他的 Linux 也可以参考。
1 、修改 ssh 连线的埠
ssh 的埠预设为 22,我们可以通过修改配置档案改为一个非著名的埠,比如 2222.
vim /etc/ssh/sshd_config
用 vim 编辑器开启 sshd_config,把 22 埠改为 2222,然后储存退出。
注意:配置档案生效之前,我们要在防火墙放行 2222 埠,设定 iptables 。
iptables -I INPUT -p tcp -m tcp –dport 2222 -j ACCEPT #放行 2222 埠
/etc/init.d/iptables save #储存 iptables 配置
/etc/init.d/iptables restart #重启 iptables 服务
过载 ssh 配置档案,不建议用 restart 来重启 ssh 服务,这样会影响到现有的 ssh 连线。
/etc/init.d/sshd reload
然后用 XShell 重新连线看看,连线成功。
2 、禁止 root 使用者直接 ssh 连线
root 这个帐号是所有人都知道并且拥有最高许可权的帐号,直接暴露在互联网中不大安全,我们可以禁止 ssh 使用 root 连线,同样只需要修改 ssh 的配置档案即可。在这里要确认自己的系统有一个可以登入的普通帐号,用该帐号登入之后再 su -切换到 root,或者将该帐号加入 sudoers 里面。
用 vim 编辑器开启 ssh 的配置档案,找到 PermitRootLogin 那行,去掉注释,引数改为 no,或者直接在最后几行加入下面的几条引数。(这几个命令都可以在配置档案找到的)
PermitRootLogin no #是否允许 root 登入
PermitEmptyPasswords no #是否允许空密码登入
UseDNS yes #是否对远端 WordPress 主机名进行反向解析,关闭会提高连线的速度
GSSAPIAuthentication no #解决 Linux 之间使用 ssh 连线慢的问题
修改之后,储存退出,然后重新载入 ssh 档案即可。
3 、其他
如果对安全有更高的要求,可以更高 ssh 的监听 ip,使其只监听内网的 ip 。可以通过防火墙来限制来源的 IP 地址
iptables -I INPUT -s 192.168.17.0/24 -p tcp –dport 2222 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart