提高Ubuntu服务器系统安全
Ubuntu服务器全新安装后的基本安全设置
当你创建一个新的 Ubuntu server 时,有若干个基本配置需要做,这可以提高系统安全性和可用性,为你后续工作打造坚实的基础。
任何暴露主机都是黑客潜在的攻击对象,下面的几个简单的技巧就可以提高系统安装。
- 保持系统最新,封堵已知漏洞
- 设置复杂密码
- 使用最严格的访问控制,不要图方便
- 使用防火墙
第一步-root登录
ssh root@SERVER_IP_ADDRESS
root用户是linux系统中的管理员账户,有非常高的权限。由于它的权限过高,所以不建议是使用root用户操作linux系统。一不小就悲剧了。
第二步-创建新用户
用root登录之后我们创建一个新用户,下面命令创建一个demo用户:
# adduser demo
设置一个复杂的密码
第三步-Root 权限
现在我们有了一个普通权限的新用户,但是我们有时需要执行管理员权限的任务。为了避免在普通用户和root用户之间来回切换,我们可以赋予普通用户执行root权限任务的权限,也就是在命令前加 sudo。
为了赋予新用户权限,我们需要把新用户加入到 “sudo” 组。在ubuntu14.04默认设置下,在‘sudo’组的可以执行sudo命令。
用root执行下面命令,把新用户加入打sudo组
# gpasswd -a demo sudo
现在 demo 用户可以执行root权限命令了。
第四步-公开密钥认证(Public Key Authentication)
首先,不需要通过网络传输ssh key其次,ssh key是经过加密后保存的,即使让人偷了还需要有加密串才能解密。相反,如果密码被偷了,可以直接用来登陆的。这样还可以避免别人对我们的ssh服务器进行暴力破解。
我们这边提到的ssh key实际上是一对key,分别保存在两个文件中。其中私钥也就是我们所谓的密钥保存在客户端的机器上,并使用密窜加密。而公钥则存储在服务器上。在创建ssh链接时,客户端和服务端之间使用公钥和私钥进行协商,如果它们之间匹配(当然是在加密状态下),则成功创建链接。
生成一对key,在本地计算机终端执行:
$ ssh-keygen
回车使用默认文件(或输入名称),下一要你输入密码
生成两个文件:其中id_rsa是私钥,id_rsa.pub是公钥。注意私钥不要分享给别人。
拷贝公钥到服务器
我们介绍两种方法:
方法一:ssh-copy-id:
$ ssh-copy-id demo@SERVER_IP_ADDRESS
执行完这条命令之后,公钥被拷贝到服务器的 .ssh/authorized_keys 文件,现在你可以用对应的私钥登录服务器。
方法二:手动安装:
你现在可以通过ftp或scp将公钥传到远程的ssh服务器上。
$ scp id_rsa.pub demo@SERVER_IP_ADDRESS
(当然,现在你们还是使用密码认证,而不是公钥认证,还没完成呢)
远程登陆到ssh服务器
$ ssh -l demo@SERVER_IP_ADDRESS
在远程服务器上的用户当前目录,看看有没有.ssh目录,通常都会有的,如果没有,则创建。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
把公钥文件id_rsa.pub
的内容附加到 ~/.ssh/authorized_keys
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
第五步:配置后台SSH驻留进程
现在有了一个新用户,我们可以通过修改ssh配置稍微提要以下服务器安全:禁用ssh登录root用户。
$ vi /etc/ssh/sshd_config
PermitRootLogin yes
改为
PermitRootLogin on
强烈建议关闭root登录。
重启SSH:
$ service ssh restart