安全是一个VPS最基本的必备条件,若您的VPS三天两头被人攻破,那么对于网站来说也没什么意义了,所以,在创建了Web服务器之后,您首先要做的事情就是将您的VPS加固,至少让普通黑客没有办法能够攻破您的网站。

用户密码

用户口令是一个非常重要的信息,您在设置您的账户密码时请遵循几点原则来设置:1. 密码不要过于简单,至少要8位以上,且同时拥有大小写字母+数字+特殊字符;2. 密码不要使用统一密码,网站密码一个、VPS密码一个,避免黑客破解其中一个就让您的VPS全盘被破;3. 不要使用生日、电话等个人信息作为密码;4. 定期更换您的密码;5. 不要把您的密码记录在任何别人能够看到的地方,最好记在心里。

删除不使用的用户和用户组

Linux默认自带了一些用户和用户组,而这些用户和用户组在平时我们根本使用不到,所以,删除吧!
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp #若您需要使用匿名FTP请保留此用户,否则删除
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers

root是Linux下权限最大的一个用户,而也是黑客最喜欢的一个用户,若获取到了root权限,则代表了您的VPS完全陷落,所以,将root用户禁止登录SSH,使用另外一个用户来管理您的VPS将是一个很不错的主意。

首先添加一个用户

useradd iw3c #添加一个用户iw3c

设置密码

passwd iw3c

输入两次密码就OK了。

更改SSH端口

vi /etc/ssh/sshd_config

配置如下

Port 12345 #SSH尽量设置大一点
PermitRootLogin no #禁止root登录
X11Forwarding no #禁止X11转发
PermitEmptyPasswords no #禁止空密码登录
AllowUsers iw3c #设置刚才创建的iw3c可以登录

重启下SSH

service sshd restart (/etc/init.d/sshd restart)

限制su命令

vi /etc/pam.d/su

添加如下两行

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isd

执行

usermod -G10 iw3c

这样就只有iw3c用户可以使用su命令了

注意以上显示su命令的操作只使用于centos6

在centos7中要这样

执行

vi /etc/pam.d/su

然后

#auth required pam_wheel.so use_uid ←找到此行,去掉行首的“#”

Debian中刚装完系统时,先用root安装sudo

apt-get install sudo

有些发行版的sudo提供了sudoedit,有的则提供了visudo,功能上基本是一样的。你也可以使用其他编辑器如vi进行编辑/etc/sudoers,但由于文件是只读的,请强制保存(如w!)或去除只读属性再保存。

前提条件是我新建了一个帐号

useradd iw3c
此时我的帐号和帐号所在的组都是iw3c

查找

root ALL=(ALL) ALL

在下面加入

%iw3c ALL=(ALL) ALL

如果sudo时不想输入密码,可以把上句改成:

%iw3c ALL=(ALL) NOPASSWD: ALL

然後iw3c这个用户就可以用sudo`了。

然后执行

usermod -G wheel iw3c

禁止Ping

防止别人Ping通自己的服务器是一个很不错的安全设置,运行命令
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

这样别人Ping自己的服务器时就根本无法Ping通了

启用防火墙(Centos6)

您可以通过设置防火墙来关闭一些不必要的端口,而每一个端口的关闭,就意味着您的服务器更加安全一分

首先清空原有防火墙规则

#这个一定要先做,不然清空后可能会悲剧
iptables -P INPUT ACCEPT
#清空默认所有规则 
iptables -F
#清空自定义的所有规则 
iptables -X
#计数器置0
 iptables -Z

配置防火墙

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 80,443,11000,12200:12300,20000 -j ACCEPT #允许端口开放
/etc/init.d/iptables save #保存配置规则
service iptables restart #重启防火墙

或者

vi /etc/sysconfig/iptables

打开防火墙配置文件,修改成如下内容

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:168]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443,11000,12200:12300,20000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

启用防火墙(Centos7)

1、查看firewalled是否安装

systemctl status firewalld
#如果没有安装,请执行并开启服务
yum install firewalld
systemctl start firewalld

2、执⾏行行命令打开要开放的端⼝口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=10004/tcp --permanent
firewall-cmd --zone=public --add-port=10005/tcp --permanent
firewall-cmd --zone=public --add-port=10006-10105/tcp --permanent

3、重新载⼊服务

firewall-cmd --reload

4、查看已打开的端⼝口情况

firewall-cmd --zone=public --list-ports

5、如果端⼝口开启错误,使⽤用如下命令删除已开放的端⼝口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

启用防火墙(Debian)
1、安装并启用

sudo apt-get install ufw

sudo ufw enable # 启用

sudo ufw disable # 关闭

sudo ufw status # 查看状态

2、开启/禁用相应端口或服务举例

sudo ufw allow 80  # 允许外部访问80端口

sudo ufw delete allow 80 # 禁止外部访问80端口

sudo ufw allow from 192.168.1.1  # 允许此IP访问所有的本机端口

sudo ufw deny smtp  # 禁止外部访问smtp服务

sudo ufw delete allow/deny smtp  # 删除上面建立的smtp的规则,上面建立的规则为allow,这里就删除allow;为deny,这里就删除deny

sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22  # 要拒绝所有的TCP流量从10.0.0.0/8 到 192.168.0.1地址的22端口

# 可以允许所有RFC1918网络(局域网/无线局域网)访问这个主机(/8, /12, /16是一种网络分级)
sudo ufw allow from 10.0.0.0/8

sudo ufw allow from 172.16.0.0/12

sudo ufw allow from 192.168.0.0/16

推荐设置

sudo apt-get install ufw

sudo ufw enable

sudo ufw default deny

这样设置已经很安全了,如果有特殊需要,可以使用sudo ufw allow开启相应服务。

使用DDOS deflate抵御DDOS攻击

DDOS deflate并不能完全防御DDOS攻击,这东西是专业的硬件防火墙来干的事情,DDOS deflate只能稍微抵御一点点,但一点点也是防护不是?

http://www.inetbase.com/scripts/ddos/install.sh
chmod +x install.sh
./install.sh

这样DDOS deflate就安装好了,剩下的只需要配置一下

vi /usr/local/ddos/ddos.conf

一般来说只需要修改几个配置

APF_BAN=0 #默认为1,改为0
EMAIL_TO="admin@admin" #这里更改为您的邮箱,被攻击时会有邮件发送给我们

好了,基本的一些简单防护已经完成了,至于其他更高深的就得自己去搜索与加固了!