网站日常维护难免遇到各种攻击,没有全面的防御知识和手段?高防价格简直是天价,无法承受……
针对网上的各种吐槽,给大家精心准备了这套教程,全面防御服务器各种攻击,帮助大家“零成本”维护服务器安全
目录
1、服务器攻击介绍
DDOS攻击是服务器常见的一种攻击,它的攻击方式有很多,最常见的是通过服务请求来占用服务资源,从而导致用户无法得到服务响应。预防DDOS攻击的最有效的方法是选择设有硬防的机房,硬件防火墙能够有效预防DDOS攻击和黑客攻击。硬防虽然能够有效预防DDOS攻击,但对CC攻击的基本无效,CC攻击需要通过软件防火墙来防御。
CC攻击可以算是DDOS攻击的一种,CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成资源耗尽。CC主要是用来攻击页面的,模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
漏洞也是黑客最主要的入侵途径,黑客可以通过系统漏洞、程序漏洞等对服务器实行攻击。每个系统、程序或多或少会存在有一些漏洞,或系统本身就存在的漏洞,或系统管理员配置错误导致的漏洞,站长朋友应该及时给服务器系统打新补丁,及时升级程序新版本。
端口是病毒、木马入侵的最主要途径,所有端口都有可能是黑客的利用对象,通过端口对服务器进行攻击。具体怎么攻击这里就不细说了,主要讲一下怎么预防,想要预防黑客通过端口攻击服务器,最有效的方法是关闭不必要端口,修改重要端口。对外少开放一个端口,黑客就少一个入侵途径,在关闭端口的同时也要关闭一些不必要的服务。此外,修改一些重要端口可以加大黑客的扫描难度,这样也能有效地保护我们的服务器。
黑客也有可能通过暴力破解的方法来破解超级管理员密码,从而对服务器实行攻击。要预防超级管理员密码被暴力破解,购买服务器后一定要修改超级管理员的默认密码,把密码修改成为一个复杂的英文加数字的组合密码,这样可以加大黑客破解密码的难度。再复杂的密码也有被破解的风险,所以建议密码定期修改。
2、Iptables防火墙安装以及开放特定端口设置
CentOS切换为iptables防火墙
切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。
- service firewalld stop
- systemctl disable firewalld.service #禁止firewall开机启动
-
- # 不行的话换下面的
- systemctl stop firewalld
- systemctl mask firewalld
yum install iptables-services #安装
vi /etc/sysconfig/iptables
下边是一个开放部分端口的配置文件:
- -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
- -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
- -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
- service iptables start #开启
- systemctl enable iptables.service #设置防火墙开机启动
-
-
- service iptables stop #关闭
- service iptables restart #重启
3、Iptables防火墙常规攻击优化
查看服务器上是否能看到大量的半连接状态时,特别时源IP地址时随机的,基本可以断定这是一次SYN攻击
- netstat -ntp | grep SYN_RECV
-
- netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
解决方式
复制- # 传入的tcp链接是SYN数据包,如果不是就丢弃
- -A INPUT -p tcp --syn -m state --state NEW -j DROP
- # 强制检查碎片包,把带有传入片段的数据包丢弃
- -A INPUT -f -j DROP
- # 丢弃格式错误的XMAS数据包
- -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
- # 丢弃格式错误的NULL数据包
- -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-
- # 限制syn并发数每秒1次
- -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
- -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT
- # 防止各种端口扫描
- -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
- # Ping洪水攻击(Ping of Death)
- -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
- -A INPUT -s 8.8.8.8 -p UDP --sport=53 -j ACCEPT
- -A INPUT -s 8.8.4.4 -p UDP --sport=53 -j ACCEPT
- -A INPUT -p UDP -j DROP
- #-A OUTPUT -p UDP -d 8.8.8.8 --dport 53 -j ACCEPT
- #-A OUTPUT -p UDP -d 8.8.4.4 --dport 53 -j ACCEPT
- #-A OUTPUT -p UDP -j DROP