CentOS 7云服务器如何做好初始安全设置?

  • 发布时间:2020-02-17 17:17:04
  • 阅读次数:253

云服务器开通完成后,在交付生产之前还应该做好初始安全设置,以适应错综复杂的真实网络环境。本篇文章就以比较流行的CentOS 7操作系统为例,在朝暮数据购买的云服务器环境下,讲解如何一步步的做好初始安全设置。

在做完全设置之前,请确保可以用默认的root账户远程登录系统。

第一步:创建非root的标准账户

出于安全原因,不建议在云服务器的日常管理中使用root账户来进行操作。更好的做法是,创建一个标准账户,然后在这个账户下以管理员身份来操作。本文假设创建一个名为"zhaomu"的账户,创建命令如下:

adduser zhaomu

然后用passwd命令修改这个账户的密码。

passwd

再把这个账户添加到wheel用户组中,以便可以用sudo命令来获得管理员权限。

gpasswd -a zhaomu wheel

最后,测试一下使用这个新创建的账户能否正常登录系统。

第二步:禁用root账户登录

因为我们准备用非root的标准账户来远程管理云服务器,所以root账户登录就没有必要存在了,禁用root账户可以更进一步提升系统安全性。我们通过以下命令打开SSH的设置文件。

sudo vi /etc/ssh/sshd_config

使用:w/命令搜索以下两行,删除这两行前面的注释#,并把值都设置为no。

PermitRootLogin     no
PasswordAuthentication      no

使用:wq命令保存之后,再输入以下命令让刚才的设置生效。

sudo systemctl reload sshd

第三步:设置时区

CentOS系统的默认时区是UTC时区(世界标准时间),我们最好把时区改成当地时间,这样我们的应用程序的时间才能显示准确。请通过以下命令把时区设置为北京时间。

sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置完成后,用data命令来确认一下时区是否设置成功,即服务器时间是否和本地电脑时间一致。

root@zhaomu:/# date
Mon 17 Feb 2020 04:53:31 PM CST

其中CST代表China Standard Time(中国标准时间)。

第四步:启用iptables防火墙

我们知道,CentOS 7引进了一个新的防火墙程序叫做firewalld,虽然firewalld很好的替代了iptables,不过目前还是有很多安全软件不支持firewalld。因此,如果从兼容性最大化的角度考虑,可以卸载firewalld,仍然使用传统的iptables防火墙。

卸载firewalld的命令是:

sudo yum remove -y firewalld

安装并启用iptables:

sudo yum install -y iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables

iptables安装完毕后,会默认带有数条防火墙规则,可以通过以下命令查看。

root@zhaomu:/# sudo iptables -L -n

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

可以看出,第四条规则允许TCP协议下的22端口,因此即使开启了iptables防火墙,通过SSH远程登录也是没有问题的。

由于这些防火墙规则是加载到内存中的,重启系统后就会丢失,所以最好保存到文件中。用下面的命令来保存iptables初始规则:

sudo /usr/libexec/iptables/iptables.init save

第五步:允许常用的端口

我们知道,云服务器最常见的一个应用是运行网站,因此需要把和网站相关的端口添加到防火墙的允许规则中,以便网站能正常访问。我们首先打开iptables的规则文件。

sudo vi /etc/sysconfig/iptables

在规则文件的最后,添加以下规则,允许SSH(22端口)、HTTP(80端口)、HTTPS(443端口)的访问。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

最后执行下面的命令,让iptables设置生效。

sudo systemctl reload iptables

以上五个步骤执行完毕后,你的CentOS 7云服务器已做好初始安全设置,整装待发,正式进入生产环境了。

【全文完】

< 上一篇:系统崩溃了!如何取回云服务器上的数据? 下一篇:俄罗斯云服务器的测试IP信息 >