程序猿 程序猿

修改Linux服务器默认ssh登录端口和禁止root账户直接登录

in 技术教程 阅读[710] ShiKun 文章转载请注明来源!

今天早上阿里云给我发短信,大致内容是

【阿里云】尊敬的h**@126.com:云盾安骑士为您服务器进行基线检查时发现存在高危安全风险,建议您登录云盾-安骑士控制台,进行查看和处理,及时加固您的服务器,防止被黑客入侵。

到公司后登录阿里云控制台的云盾服务器安全(安骑士)管理控制台查看,风险项如下:

一般情况,我都是直接用root账户操作的,所以有的时候手快的话,一不小心就删了一些重要的文件。然而我还是按照阿里云的建议,打算把root账户直接登录关掉,并且修改了ssh默认登录端口。

一、禁止root账户直接通过ssh远程登录

不过在此之前你要创建一个普通用户,要不然你禁用了root账户,还怎么登录服务器。

创建一个普通权限的用户:

# useradd –d /home/abc -m abc
 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
 -s Shell文件 指定用户的登录Shell。

修改abc的密码

# passwd abc

为了让普通用户abc能直接sudo执行命令,还需要配置abc的权限。

# vim /etc/sudoers

找到

## Allow root to run any commands anywhere 
root    ALL=(ALL)   ALL

在这行后面添加

abc     ALL=(ALL)   NOPASSWD:ALL

:wq保存退出
这样,abc账户就直接使用sudo执行各种命令,并且不需要输入abc的密码。

生产机器禁止ROOT远程SSH登录:

#vim /etc/ssh/sshd_config

PermitRootLogin yes

改为

PermitRootLogin no

重启sshd服务

#service sshd restart

远程管理用普通用户abc登录,然后用 su root 切换到root用户拿到最高权限,或者直接sudo执行命令。

二、修改ssh远程登录的默认端口号

由于linux服务器默认远程ssh登录端口号是22,众所周知,所以使用默认端口号登录就很不安全。

通过修改/etc/ssh/sshd_config来修改ssh登录端口号

# sudo vim /etc/ssh/sshd_config

找到

#Port 22

将其修改为

Port 其他端口号

即去掉Port前的#号,并将22改为你想要的端口号,建议修改为1024 - 65535之间一个没有被其他应用软件等占用的端口号。

然后重启sshd服务

# sudo service sshd restart

其实做完以上操作,你并不一定能使用新端口登录服务器,你还要修改防火墙,开放你所修改的端口号。

由于我用的是阿里云服务器,所以可以直接在阿里云控制台上修改防火墙开放端口

登录控制台->云计算基础服务->云服务器ECS,找到你要修改的实例,点击更多,找到安全组配置

点击配置规则

点击右上角的添加安全组规则,然后配置如下,假如修改的端口号是1111

注意修改红框里的配置就可以了,其他默认

然后可以就通过新的端口远程登录服务器了。为了安全起见,把之前的22端口号删掉。

技术教程
最后由ShiKun修改于2018-05-15 16:31
发表新评论
雷姆
拉姆