Ubuntu服务器需要做哪些安全设置?

平时自己喜欢捣鼓Linux来部署一些服务,而用的最多的版本就是Ubuntu和Centos。所以在阿里云或Linode上购买服务器后第一件事就是对服务器做一个简单的加固。避免被人黑了当肉鸡使,因为以前遇到过这种情况,之后这种加固对我来说几乎是必做的。

下面我就简单的说一下当拿到一台服务器或VPS的时候需要做哪些加固。

1.更新系统

apt-update 
apt-upgrade

2.添加新用户,避免使用root用户

root用户的权限太大,而且作为系统的默认管理员账户很容易被暴力破解,建议新增一个用户,用sudo来执行需要管理员权限的事,这样比较安全。

adduser example_user  #新建 用户
adduser example_user sudo  #给新建用户添加sudo权限

3.使用ssh密匙代替密码

在用密码登录的时候如果让黑客知道你的用户名就容易被暴力破解,存在安全隐患。而密匙就比较难被暴力破解,除非你泄露密匙文件。在设置密匙登录前我们先要在客户端生成密匙。

如果你的客户端时MAC或Linux那么直接用以下命令:

ssh-keygen -t rsa

如果你用的是Windows客户端, Putty和Xshell都带有生成密匙的功能。

密匙创建后,我们可以得到两个文件, id_rsa.pub和 id_rsa。也就是公钥文件和私钥文件。然后把 id_rsa.pub 文件上传到服务器用户文件夹下.ssh/authorized_keys/文件夹内就行。Mac和Linux可以使用ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_ip快速把生成的密匙上传到服务器。

4.关闭ssh的密码登录

在执行这个操作前,请先确认你的密匙可以正常登录了。修改 /etc/ssh/sshd_config 文件中的相关内容如下所列:

sudo vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

重启ssh服务

sudo service ssh restart

这个时候你再登录服务器的时候应该是自动登录,不用输密码,同时root用户也无法通过ssh登录服务器。当然你可以通过su来切换为root用户。

5.设置防火墙和 Fail2Ban

sudo iptables -F          #清空规则
sudo vi /etc/iptables.up.rules        #新建规则
#添加以下代码
*filter
# allow all connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow out traffic
-A OUTPUT -j ACCEPT
# allow https http
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 80  -j ACCEPT
# allow ssh port login
-A INPUT -p tcp -m state --state NEW --dport 49999  -j ACCEPT
# allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
# drop incoming sensitive connections (bad incoming)
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 150 -j DROP
# reject all other inbound
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
#这里结束
sudo iptables-restore < /etc/iptables.up.rules  #使规则生效
sudo ufw status    #查看防火墙状态
sudo ufw enable    #激活防火墙
#设置开机自动启动防火墙 
sudo vi /etc/network/if-up.d/iptables        #写入脚本
#!/bin/sh
iptables-restore  /etc/iptables.up.rules

sudo chmod +x /etc/network/if-up.d/iptables    # 给脚本权限

sudo apt-get install fail2ban
sudo vi /etc/fail2ban/jail.conf
改
bantime = 3600
....
destmail = 自己的
...
去到 action = %(action_mw)s
[ssh]部分不改动

sudo service fail2ban start

发表评论

邮箱地址不会被公开。 必填项已用*标注