#运维#Linux-VPS安全配置 / 防护措施

VPS的安全防护绝对是运行网站的重中之重。防护措施做不好,轻者给后期运行带来无穷无尽的烦恼,重者造成网站瘫痪甚至数据清空,那就真的欲哭无泪了。

好在Linux本身已经足够安全稳定,只要你不泄露关键的登录信息(比如SSH端口和ROOT密码等),通常不会产生重大事故。但即便如此,我们还是应该未雨绸缪,提前做好VPS的安全防护措施。

那么,VPS安全配置究竟该如何做呢?

在这里,博主结合自己建站经验,介绍一下Linux-VPS安防措施里最有效的三个方面:修改SSH端口阻止SSH暴力破解防御DDOS攻击

修改SSH端口(强烈推荐)

首先,编辑配置文件:

# vi /etc/ssh/sshd_config

找到 #Port 22 这行(默认端口22),把前面的 # 去掉,然后再添加一个新的端口(不超过65535),比如 Port 56789:

保存,重启SSH即可:

# service sshd restart

接下来,在防火墙 /etc/sysconfig/iptables 里开启此端口:

# iptables -A INPUT -p tcp -m tcp --dport 56789 -j ACCEPT

保存并重启防火墙:

# service iptables save
# service iptables restart

或者,也可以编辑 /etc/sysconfig/iptables 文件,复制端口 22 的规则,粘贴在其下另起一行。

按 :wq 保存退出后,重启防火墙。

查看防火墙状态,看看端口是否开启成功:

# service iptables status

现在,使用新的端口连接SSH。

若成功登录,则再次编辑 /etc/ssh/sshd_config,将里面的 Port 22 前加 # 保存后,重启SSH即可。

CentOS7防火墙中开启相关端口:

CentOS7.X中默认的防火墙 firewalld 而非CentOS6.X中的 iptables 。如果你也像博主一样感觉用着很不爽,需要换回 iptables 的,可以参考如下设置。

1、关闭firewall并禁止开启启动:

# service firewalld stop
# systemctl disable firewalld.service

2、安装iptables:

# yum -y install iptables-services

3、修改iptables配置:

# vi /etc/sysconfig/iptables

粘贴如下内容(可按需要自行增删;如已更改SSH端口,下面的22端口那行可以删除):

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp –dport 56789 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3306 -j DROP
-A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 11211 -j DROP
-A INPUT -p udp -m udp –dport 11211 -j DROP
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT

按 :wq 保存退出后,重启iptables,并设置为开机启动:

# service iptables restart
# systemctl enable iptables.service

温馨提示搬瓦工VPS生成的SSH端口是随机的(非默认端口22),因此,可无需再次修改。

阻止SSH暴力破解(可选)

设置高强度密码 + 更改默认SSH的22端口后,已经可以阻止绝大多数的SSH非法请求了。因此,安装DenyHosts这步可以省略。

如果遇到程序自动扫描SSH端口并进行暴力破解,那么仅仅修改端口的话,可能还是不够的。因此,我们需要安装DenyHosts进行自动拦截。

首先,下载 DenyHosts 并解压到 root 目录:

# cd ~

# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz

# tar -zxvf DenyHosts-2.6.tar.gz

# cd DenyHosts-2.6

接下来,进行安装和配置:

# python setup.py install

# cd /usr/share/denyhosts/

# cp denyhosts.cfg-dist denyhosts.cfg

# cp daemon-control-dist daemon-control

然后,设置开机启动:

# chown root daemon-control

# chmod 700 daemon-control

# ./daemon-control start

# echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local

至此,DenyHosts就算安装完成了。通常,DenyHosts默认的阻拦配置就可以。当然,你也可以自行设置:

# vi /usr/share/denyhosts/denyhosts.cfg

自行设置如下几个主要的参数:

PURGE_DENY = 5d
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 5
DENY_THRESHOLD_ROOT = 5
HOSTNAME_LOOKUP = NO

最后,重启一下DenyHosts即可:

# /usr/share/denyhosts/daemon-control restart

倘若自己的IP(如何查看)被误封,可在 /etc/hosts.deny 中删除对应的IP后重启DenyHosts即可。

卸载DenyHosts

卸载DenyHosts比较麻烦,官方貌似没有提供具体卸载方法。

不过,我们可以通过 停用 + 禁止开机启动 来将其关闭。

停用DenyHosts:

# /usr/share/denyhosts/daemon-control stop

禁止开机启动,编辑 /etc/rc.local :

# vi /etc/rc.local

将 /usr/share/denyhosts/daemon-control start 这行删除,保存退出。

如此,就实现了停用DenyHosts的目的

防御DDOS攻击(可选)

也许是设置的问题,也许是DDoS-Deflate确实有问题,经过长时间的运行,发现效果并不是很好。无奈,博主自己写了一个简单的防DD/CC的脚本,效果还不错。因此,安装DDoS-Deflate这步也可以省略。

这里主要用到一款优秀的免费软件DDoS-Deflate:http://deflate.medialayer.com/

首先,下载DDoS Deflate并安装:

# cd ~

# wget http://www.inetbase.com/scripts/ddos/install.sh

# chmod 0700 install.sh

# ./install.sh

按 Q 键退出,然后编辑配置文件:

# vi /usr/local/ddos/ddos.conf

推荐做如下更改,其余默认即可:

NO_OF_CONNECTIONS = 100
APF_BAN = 0
BAN_PERIOD = 36000

保存后退出。

原文链接:https://www.seoimo.com/wordpress-vps/#linux-vps-security

未经允许不得转载:Mr.T的世界 » #运维#Linux-VPS安全配置 / 防护措施

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏