VPS-CentOS 7-Security

包括:
修改SSH端口
使用密钥登陆SSH
SELinux
Firewalld

修改ssh端口

修改配置文件

vi /etc/ssh/sshd_config

#Port 22

改为

Port 22
Port 666   //自己定义

重要!!如果你的SELinux及Firewalld都关闭或已经开放了666端口,可以不再添加22,否则请暂时保留,等新的端口确认可以成功SSH,再回来注释掉22端口!

重启ssh服务

systemctl restart sshd

此时你可以尝试用新端口SSH

ssh -p 666 [email protected]

如果你成功了恭喜!如果没有请继续配置SELinux以及Firewalld

SELinux添加666端口

查看SELinux当前状态

getenforce

若是返回enforcingpermissive则是开启,若是返回disabled则是关闭状态。如果是关闭状态,就不用配置了请跳过直接看Firewalld添加666端口章节,如果想关闭SELinux或者更多关于SELinux用法见SELinux章节。

需要用到SELinux管理配置工具semanage来修改ssh可访问的端口。

安装semanage

yum -y install policycoreutils-python

查看当前SElinux允许的ssh端口

semanage port -l | grep ssh

返回

ssh_port_t tcp 22

为ssh打开666端口

semanage port -a -t ssh_port_t -p tcp 666

再次查看

semanage port -l | grep ssh

返回

ssh_port_t tcp 666, 22

Firewalld添加666端口

查看firewalld当前状态

systemctl status firewalld

返回结果中包括active (running)说明正在运行,若想直接关闭掉Firewalld或者更多关于Firewalld用法见Firewalld章节。

查看网络接口使用的区域(可跳过)

firewall-cmd --get-active-zones

返回

public
interfaces: enp0s3

查看public区域的所有配置(可跳过)

firewall-cmd --zone=public --list-all

返回

public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client
ports: 20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

开放666端口

firewall-cmd --permanent --zone=public --add-port=666/tcp

重启防火墙

firewall-cmd --reload

查看开放的端口

firewall-cmd --permanent --list-port

返回

20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 666/tcp

重启ssh服务

systemctl restart sshd

本地尝试重新SSH

ssh -p 666 [email protected]

如果成功,可以继续,禁用掉22端口

禁用22端口

修改ssh配置文件

vi /etc/ssh/sshd_config

改为

#Port 22
Port 666

防火墙移除 22 端口

firewall-cmd --permanent --zone=public --remove-port=22/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-port

返回

20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 666/tcp

重启ssh服务

systemctl restart sshd

再次从新测试

ssh -p 666 [email protected]
ssh -p 22 [email protected]

使用密钥登录SSH

详见

本地Windows: 使用SSH密匙认证登录VPS

本地Ubuntu: Ubuntu SSH密钥远程登陆VPS(CentOS)以及多SSH-KEY管理

SELinux

待补充

关闭SELinux

编辑配置文件

vi /etc/sysconfig/selinux

修改如下内容

SELINUX=disabled

#SELINUXTYPE=targeted //加#注释

重启生效

Firewalld

详见:CentOS 7下Firewalld使用讲解

Firewalld状态

开启

systemctl enable firewalld.service
systemctl disable firewalld.service

关闭

systemctl stop firewalld.service
systemctl disable firewalld.service