-
安装
CentOS 7
后必做的七件事
CentOS
是最多人用来运行服务器的
Linux
版本,
最新版本是
CentOS 7
。
当你兴趣勃
勃地在一台主机或
VPS
上安装
CentOS 7
后,首要的工作肯定是加强它的安全性,
以下列出的七件事,是你进一步
配置系统和安装其他软件前必须做的。
1.
更改
root
密码
若果你是自行安装
CentOS 7
的话,
安装程序会让你自行设定
root
的密码。
不过很多
VPS
服务商只会提供预先安装好的
CentOS 7
映像档,这种情况下他们会透过主控界
p>
面告诉你
root
的密码,这个密码的安全性谁也不知道,它是如何产生的呢?随机性可
靠吗?复杂性
足够吗?服务商的服务器是否记录了密码的副本?我们实在有必要第一
时间重设这个密码
。
首先使用
ssh
登入服务器,
在
Windows
可以使用
Putty
、
Tera
Term
、
或者在
Cygwin
环
境下执行
OpenSSH
。在
Mac
和
Linux
上只需在终端机
(terminal)
中执行以下指令
便可以了,比
Windows
简单得多:
由于你从来没有使用过
ssh
联系到这台服务器,
你的电脑
会把服务器的加密公钥下载,
然后询问你是否信任它,这台新鲜安装好的
CentOS 7
应该还未引起黑客的兴趣,也<
/p>
不大可能在这么短的时间内被攻陷,
所以可以放心接受这个加密公
钥。
跟着输入
root
的
密码登入服务器:
登入后立即更改
root
的密码,你需要输入新密码两次:
好的密码应该同时包含数字、小写英文字母、大写英文字母、和标点符号,最少
15
个
字符,这样的密码强度大概有
90 bit
,勉强可以应付密码被“暴力破解”,当然我假设
了
你的密码是真正随机产生,有些人喜欢把个人资料例如名字、出生日期、车牌号码、地
址、配偶和子女的名字等等崁入密码中,或者使用字典里的字词拼凑密码,这样密码的<
/p>
强度将会大幅下降,甚至不堪一击,这些问题我曾经在《
如何管理
密码?
》讨论过。
网上有很多随机密码产生器,
例如
<
/p>
,
大都可用,
但
记紧必须使用
HTTPS
造访这些
网站。
如果你有使用“密码夹万”一类的软件,
不妨使用它们内
建的密码产生器。
完成后
不要
登出系统,
使用另一个视窗用新密码尝试登入,即使失败也可以在原来
的视
窗重复以上步骤。
2.
新增一个普通帐号
这一步连同下一步
,相当于为一个城市筑起两道城墙,既可加强防卫,也建立了一道警
报机制,当敌人(黑
客)卒然来袭,第一道城墙被袭击和破坏,我们还有第二道城墙阻
延一下,
有时间部署防卫甚至反击。
所以这是一个很多人忽略,
但其实非常重要的步骤。
首先我们新增一个帐号:
这个新帐号
ahhang
没有默认密码,即是说登入
ahhang
时系统不用输入密码!所以
我们立即要设定密码:
有些人
认为不应该把建立帐号和设定密码两件事分开来做,一来可能会不慎遗忘,
二来
也给黑客一道时间缝隙登入这个新帐号,
所以他们会在
< br> adduser
指令中一并提供加密后
的默认密码,
方法是加入
-p
参数,不过这样做也有风险,因为黑客可以
透过列出系统
的进程,得知加密了的新密码,然后把密码破解。
3.
禁止
root
使用
ssh
登入
CentOS 7
默认容许任何帐号透过
ssh
登入,
包括
root
和一般帐号,
为了不让
root
帐
号被黑客暴力入侵,我们必须禁止
root
帐号的
ssh
功能,事实上
root
也没有必
要
ssh
登入服务器,因为只要使用
su
或
sudo
(
当然需要输入
root
的密码
)
普通帐号
便可以拥有
root
的权限。使用
vim
(
或任何文本编辑器
)
开启
/etc/ssh/sshd_config
,
寻找:
1
#
PermitRootLogin
yes
修改为:
1
PermitRootLogin no
最后输入以下指令重新启动
sshd
:
1
systemctl
restart e
这样黑客要取得
root
的权限,必须破解
root
和一个普通用户的密码,难度增加了。
完成后
不要
登出系统,使用另一个视窗尝试登入
root
和普通帐号,测试无误便可进行
下一步。
4.
使用非常规的
ssh
端口
Ssh
默认使用端口
22
,这是在
IANA
注册的官方端口,但没有人说
ssh
不能使用其
他端口,
很多黑客专门向服
务器的
22
端口发动攻击,即使你
的服务器固若金汤、牢不
可破,但是要系统日以继夜接受攻击,消耗的系统资源(网络、
处理器、内存等等)也
不会少,
何况它是否真的牢不可破还说不
定呢!
所以有必要让
ssh
使用其他端口,只让
有权使用
ssh
的用户知道。
使用
vim
(
或任何文本编辑器
)
开启
/etc/ssh/sshd_config
,寻找:
1
#
Port 22
修改为:
1
Port
10837
你可以把
10837
改为任何
1024
–
65535
之间的任何数字,若果怕与某些系统服务
发生冲突,可以参考一下
这里
。
跟着重新启动
sshd
:
1
systemctl
restart e
然后是设定防火墙,
CentOS 7
的内核已经有防火墙
netfilter
,但你的系统未必安装了
用户界面,
较前版本的
CentOS
默认使用
iptables
,
但
CentOS 7
开始使用效能更高、
稳定性更好的
firewalld
,若果服务器尚未安装
p>
firewalld
,可以使用以下指令安装,不确
定是否已经安装的话也可以输入这个指令,它会告诉你已经安装然后退出。
1
yum
install firewalld
跟着启动:
1
systemctl start
firewalld
设定
firewalld
的方法有两个,
第一个是修改
firewalld
有关
sshd
的设定,
把端口
22
改
为
10837
,
这是正统的做法,
但步骤比较多;
第二个是要求
firewalld
开启端口
10
837
,
不指定它属于哪一个服务,这个做法通常处理临时的端
口开启/封锁,步骤简单,但是
日后你要是忘记了这个端口为什么开启了呢?什么时候开
启的呢?为了哪一项服务开
启呢?可能有点麻烦。我两种方法都会介绍一下,但作为专业
的系统管理员(即使不是
真正的专业,也应该具备这样的心态),我推荐使用第一种方法
。
设定防火墙方法一:
复制
firewalld
有关
sshd
的设定档案:
1
cp
/usr/lib/firewalld/services/
/etc/firewalld/services/
使用
vim
(
或任何文本编辑器
)
开启
/etc/firewalld/services/
,寻找:
1
修改为:
1
储存后重新加载
firewalld
:
1
firewall-cmd
--reload
设定防火墙方法二:
输入以下指令:
1
firewall-cmd
--zone=public --add-port=10837/tcp
--permanent
就是这样简单!
不论使用哪种方法,
完成后
不要
登出系统,使用另一个视窗尝试登入,例如:
1
ssh -p 10837
ahhang@192.168.1.188
5.
启用公钥验证登入
ssh
现在只有普通帐号才能透过
ssh
登入服务器,
但是
ssh
提供一个更先进更安全的验证方
法:公钥验证法。
首先每一名用户建立一对加密钥匙(密钥和公钥),密钥储存在日常使用的电脑,公
钥
则储存在服务器,使用
ssh
联系到服务器的时候,电脑会把一些建立连线请求的资料,
-
-
-
-
-
-
-
-
-
上一篇:zune一代从3.X回滚到1.X再刷中文顺便换字体
下一篇:快速维护手册