Linux服务器的安全问题一直以来都是运维重中之重,虽然它比windows系统的安全系数好很多,但是不对Linux服务器操作点什么总感觉不是很放心,下面我就给大家介绍一下如何修改修改默认远程端口22、免密码登录以及禁止root远程登录,设置好了这些再加上平时没事多看看日志,我认为安全问题应该可以减少90%以上
服务器版本:CentOS7.4 远程软件:Xshell
此教程已通过本人多次尝试没有问题,理论上直接按顺序复制代码然后回车就可以了,如有问题另行讨论。
一:CentOS7修改默认远程端口
1,vim /etc/ssh/sshd_config ---找到#Port22,去掉#后在下方添加一个Port 12137(我的是这个,你随意)
2,systemctl restart sshd.service ---重启SSH服务
3,firewall-cmd --zone=public --add-port=12137/tcp --permanent ---向防火墙中添加端口12137
4,firewall-cmd --reload ---重载防火墙
5,firewall-cmd --zone=public --query-port=12137/tcp ---查看端口是否添加成功
6,yum install policycoreutils-python ---安装semanage(先执行semanage命令,如果执行不成功再安装)
7,semanage port -l | grep ssh ---查询当前 ssh 服务端口
8,semanage port -a -t ssh_port_t -p tcp 12137 ---向 SELinux(防火墙)中添加 ssh(远程)端口
9,semanage port -l | grep ssh ---验证 ssh 端口是否添加成功
10,systemctl restart sshd.service ---重启 ssh 服务 (如果是阿里云服务器的话,需要控制台安全组规则添加12137端口)
11,试验一下12137端口能否连上服务器,如果可以删除22端口:
12,vim /etc/ssh/sshd_config ---删除Port22端口
13,systemctl restart sshd.service ---重启SSH服务
14,firewall-cmd --zone=public --remove-port=22/tcp --permanent --防火墙禁用22端口
15,firewall-cmd --reload ---重载防火墙
二:Xshell免密码远程登录CentOS+禁止root远程登录
免密码远程登录是和禁止root远程登录时放在一起的,顺序不能改变,一定要先建立一个其他账户进行免密码操作,不能再root目录下直接设置,不然会出现登录不上的情况造成麻烦!(说的啥也听不懂,没关系,跟着我做就好了,因为我也是被坑过的)
1,打开Xshell,点击工具(tool)-> 新建用户秘钥生成向导(User Key Generation Wizard...)
2,秘钥类型(Key Tpye)->RSA 秘钥长度(Key Length)->3072
3,秘钥名称自拟(比如:neiwang) 密码自拟(建议8位以上无规则大小写字母+数字组合)
4,另存为桌面备用
5, 在服务上添加一个账户,例如waican (一下出现的waican都是基于这个账号名,你自己设置的随意) 并设置密码,不会的话直接运行以下命令就好了吧?
adduser waican(账户名)
passwd waican(密码)
6, 使waican账户有suroot权限(重要):
vim /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
7, 修改完毕,现在可以用waican帐号登录,然后用命令 su root ,即可获得root权限进行操作。
8, 接下进行免密码操作:
mkdir /home/waican/.ssh ---在用户目录下创建一个.ssh空文件夹
touch /home/waican/.ssh/authorized_keys ---创建一个密钥文件
将秘钥上传到.ssh文件夹(可以用rz命令 安装rz:yum install lrzsz,也可以用ftpshell随便你)
运行命令cat neiwang.pub >> authorized_keys
9,测试一下是否可以登录,如果可以就禁用密码登录和禁止root直接远程连接了
vim /etc/ssh/sshd_config,将PasswordAuthentication参数修改为no ---禁用密码登录。
#PermitRootLogin yes改为PermitRootLogin no ---禁止root直接远程连接
保存退出,然后运行命令:systemctl restart sshd.service 刷新服务就可以了
感谢支持!
--end--