安装完CentOS 7 后必做事——系统配置
新增一个普通账号
-
首先我们新增一个帐号
adduser accountName
-
设置密码
passwd accountName
禁止 root 使用 ssh 登入
编辑 /etc/ssh/sshd_config
#PermitRootLogin yes
修改为:
PermitRootLogin no
最后输入以下指令重新启动 sshd:
然后重启sshd服务
systemctl restart sshd.service
使用非常规的 ssh 端口
-
编辑/etc/ssh/sshd_config,:
#Port 22
修改为:
Port ****
你可以把 **** 改为任何 1024 – 65535 之间的任何数字,若果怕与某些系统服务发生冲突,可以参考一下这里。
重新启动 sshd:
systemctl restart sshd.service -
然后是设定防火墙,CentOS 7 的内核已经有防火墙 netfilter,但你的系统未必安装了用户界面,较前版本的 CentOS 默认使用 iptables,但 CentOS 7 开始使用效能更高、稳定性更好的 firewalld,若果服务器尚未安装firewalld,可以使用以下指令安装,不确定是否已经安装的话也可以输入这个指令,它会告诉你已经安装然后退出。
yum install firewalld
跟着启动:
systemctl start firewalld
设定 firewalld 的方法有两个,- 第一个是修改 firewalld 有关 sshd 的设定,把端口 22 改为 10837,这是正统的做法,但步骤比较多;
- 第二个是要求 firewalld 开启端口 10837,不指定它属于哪一个服务,这个做法通常处理临时的端口开启/封锁,步骤简单,但是日后你要是忘记了这个端口为什么开启了呢?什么时候开启的呢?为了哪一项服务开启呢?可能有点麻烦。我两种方法都会介绍一下,但作为专业的系统管理员(即使不是真正的专业,也应该具备这样的心态),我推荐使用第一种方法。
-
设定防火墙方法一:
复制 firewalld 有关 sshd 的设定档案:
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
使用 vim (或任何文本编辑器) 开启 /etc/firewalld/services/ssh.xml,寻找:
<port protocol="tcp" port="22"/>
修改为:
<port protocol="tcp" port="10837"/>
储存后重新加载 firewalld:重启
firewall-cmd --reload
-
设定防火墙方法二:
输入以下指令:
firewall-cmd --zone=public --add-port=10837/tcp --permanent
启用公钥验证登入ssh
公钥验证法。
首先每一名用户建立一对加密钥匙(密钥和公钥),密钥储存在日常使用的电脑,公钥则储存在服务器,使用 ssh联系到服务器的时候,电脑会把一些建立连线请求的资料,其中包括帐号名称和公钥,并且把部分资料用密钥制作数码签署,一股脑儿送到服务器,服务器检查自己的“公钥库”是否包含送来的公钥,有的话再验证数码签署,成功的话便直接登入服务器,无需输入帐号密码。
-
第一步在自己的电脑上使用 ssh-keygen 指令建立一对加密钥匙,它会询问储存加密钥匙的档案名称,和把钥匙加密的密码,档案名称使用默认的路径和名称便可以,密码则无需输入:
-
这个指令会创造两个档案,一个名为 id_rsa,是你的 RSA 密钥,另一个是 id_rsa.pub,是你的 RSA 公钥。公钥必需上传到服务器并且附加于用户帐号里面的 .ssh/authorized_keys 档案中,这个档案储存所有可透过 ssh 登入到这一个帐号的公钥,一行一条公钥: