文/虞国全
加固Linux SSH保证服务器安全
文/虞国全
SSH服务是目前类unix系统上使用最为广泛的远程安全登录服务之一,默认端口为tcp 22端口。由于远程管理的需要,很多防火墙都对外开放了22端口,这就使得SSH服务很容易成为黑客的攻击目标,可以通过查看类unix系统的安全日志,能发现大量针对tcp 22端口的非法连接。为避免系统的SSH服务被黑客攻击,我们需要对SSH服务进行一些加固操作,以保证服务器的安全。
下面以较普遍的centos6.2为例:
需要安装的操作系统是 centos6.2 minimal 版本,即最小安装版本,本着对服务器需要什么安装什么的要求,这个版本是最为简便的。在安装完成操作系统后,需要做以下几点操作。
1 修改ssh 端口
Linux修改ssh端口22
然后修改为port 8888
以root身份service sshd restart ,ssh_config和sshd_config必须同时修改成8888,方可生效
2 关闭远程root
把PermitRootLogin yes
改为PermitRootLogin no
重启sshd服务
1.4 统计学方法 采用SPSS 22.0软件处理,计数资料以(%)表示采用 χ2检验,计量资料以()表示采用独立样本t检验,P<0.05为差异有统计学意义。
3 创建普通用户
4 让用户user199可以通过sudo执行所有root可执行的命令
首先 #yun install sudo
以root身份用visudo打开配置文件,可以看到以下几行:
为了更好的保证安全性,作以下设置:
修改vi /etc/ssh/sshd_config 文件
(1)PermitEmptyPasswords no #不允许空密码用户login(仅仅是明文密码方式,非证书方式)。
(2)RSAAuthentication yes # 启用 RSA 认证。
(3)PubkeyAuthentication yes # 启用公钥认证。
补充:修改vi /etc/ssh/ssh_config 文件(全局配置文件)
RSAAuthentication yes
# 允许RSA私钥方式认证。
PasswordAuthentication no#,禁止明文密码登陆。(这里才是关键)
生成配置公钥与私钥
(生成私钥与公钥存放位置,使用哪个账户操作就放在哪个账户下面)
Enter passphrase (empty for no passphrase): 输入密码
Enter same passphrase again:再次输入密码
Your identification has been saved in /home/user/.ssh/id_rsa. (生成的私钥)
Your public key has been saved in /home/user/.ssh/id_rsa.pub. (生成的公钥)
The key fingerprint is:
76:04:4d:44:25:37:0f:b1:a5:b7:6e:63:d4:97:22:6b
将生成的公钥i d_r s a.p u b复制一份并重命名为authorized_keys放在服务器用户主文件夹的.ssh目录下。
将生成的私钥id_rsa拷贝到需要发起远程的客户端电脑上。
启动客户端连接软件(以Private Shell为例),点击Advanced选项,选择User Keys,点击Import Key,在弹出的“打开”中找到刚刚复制到本地的id_rsa文件并打开。输入在制作这个私钥时设置的密码,输入完确定之后为该key命名,确定后设置此证书在本地发起连接时是否需要输入密码,如需要则设置,不需要就留空,最后点击Ok,本地证书就制作添加完成了。
重新启动ssh服务:/etc/init.d/ssh restart。
(作者单位为南昌理工学院英雄校区计算机系)