修改ssh远程登录端口
1.修改ssh服务的配置文件:/etc/ssh/sshd_config ,将 Port 22 改为 Port 3120 保存退出。
[root@localhost ~]# vi /etc/ssh/sshd_config
2.修改防火墙规则
# 打开防火墙配置文件 [root@localhost ~]# vi /etc/sysconfig/iptables # 同意3120端口,在文件里面添加下面一行,保存退出 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3120 -j ACCEPT
3.重启防火墙与ssh服务
# 重启防火墙 [root@localhost ~]# service iptables restart # 重启ssh服务 [root@localhost ~]# service sshd restart [root@localhost ~]# /etc/init.d/ssh restart
现在可以使用 3120 端口远程登录了。建议在修改过程中在本地 tcping -t ip 端口,实时检测下修改的远程端口通没通。
禁止root远程登录
1.修改ssh服务的配置文件:/etc/ssh/sshd_config ,找到PermitRootLogin,将后面的yes改为no,这样root就不能远程登录了,保存退出。
[root@localhost ~]# vi /etc/ssh/sshd_config
2.重启ssh服务
[root@localhost ~]# service sshd restart
值得一提的是,如果你的Linux中只有root用户,在关闭root远程登录之前,请一定要建立一个新用户,否则会导致无法使用ssh远程登录服务器!
允许或禁止指定用户或IP进行SSH登录
限制用户 SSH 登录
1.只允许指定用户进行登录(白名单):
在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:
AllowUsers aliyun test@192.168.1.1 # 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
2.只拒绝指定用户进行登录(黑名单):
在 /etc/ssh/sshd_config 配置文件中设置 DenyUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:
DenyUsers zhangsan aliyun # 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统 DenyUsers mayun@35.12.15.2 # 拒绝 mayun 帐户且IP为25.12.15.2 通过 SSH 登录系统
限制IP SSH 登录
除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这两个文件,可以实现限制或者允许某个或者某段IP地址远程 SSH 登录服务器。
hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许 192.168.0.1 这个 IP 地址的 ssh 登录,其它的 IP 都会拒绝。
1.vim /etc/hosts.allow, 添加
sshd:ALL # 允许全部的 ssh 登录 sshd:192.168.0.1:allow # 允许 192.168.0.1 这个 IP 地址 ssh 登录 sshd:192.168.0.1/24:allow # 允许 192.168.0.1/24 这段 IP 地址的用户登录
2.vim /etc/hosts.deny,添加
sshd:ALL # 拒绝全部的 ssh 登录