vps折腾记三vps的基础防护
1.更新软件
保持软件最新可以防止旧软件的漏洞,保证系统更加安全
# 列出可更新的软件
yum check-update
# 更新所有可更新的软件
yum update
2.ROOT修改强密码
非法分子会自动扫描IP地址,SSH的默认端口是22,用户肯定有root,所以只有密码是非法分子不知道,保持强密码可以防止暴力破解
随机密码生成器,也可以使用VPS服务商提供的密码
# 修改root的密码
passwd
3.修改SSH端口
关闭selinux
vi /etc/selinux/config
#########################
SELINUX=enforcing
# 修改为
SELINUX=disabled
#########################
reboot
修改端口
vi /etc/ssh/sshd_config
########################
#Port 22
# 修改为
Port 12345
防火墙开放12345端口
# 打开12345端口
firewall-cmd --zone=public --add-port=12345/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
4.Root禁止登陆
# 新建用户并设置密码,密码可以用上面的网址
useradd vpsadmin
passwd vpsadmin
# 普通用户赋予sudo
visudo
#########################################
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
vpsadmin ALL=(ALL) NOPASSWD:ALL
#########################################
# 禁登root
vi /etc/ssh/sshd_config
#########################################
PermitRootLogin yes
# 修改为
PermitRootLogin no
###########################################
systemctl restart sshd
5.配置免密登陆、
5.1.生成密钥对并上传公钥
终极大招,禁用密码登陆,直接免密登陆
我使用的是mobxterm,新建连接,选择shell,点击OK
# 生成密钥对
ssh-keygen -t rsa -b 4096 -C "myvps"
输入上面的命令后,一路回车,在windows下C:\Users\${yourname}\AppData\Roaming\MobaXterm\home\.ssh
下会生成密钥对
# 将公钥上传到服务器,-p后面是你修改的SSH端口
ssh-copy-id -i .ssh/id_rsa.pub -p 12345 vpsadmin@xxx.xxx.xxx.xxx
登陆服务器,查看在用户家目录下是否有.ssh/authorized_keys文件
以后进入,在shell里面输入即可直接进入服务器
ssh -p 12345 vpsadmin@xxx.xxx.xxx.xxx
5.2.禁用密码登陆
sudo vi /etc/ssh/sshd_config
################################
#PasswordAuthentication yes
# 修改为
PasswordAuthentication no
################################
sudo systemctl restart sshd
6.Centos7防火墙基础操作
# 查看开放了哪些端口和服务
firewall-cmd --list-all
# 查看开放了那些端口
firewall-cmd --zone=public --list-ports
# 开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 删除开放的端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 查看开放了那些服务
firewall-cmd --zone=public --list-services
# 开放服务
firewall-cmd --zone=work --add-service=smtp
# 删除开放的服务
firewall-cmd --zone=work --remove-service=smtp
# 重新加载防火墙
firewall-cmd --reload
#
firewall-cmd --get-zones