本文目录一览:
- 1、iptables防攻击
- 2、有人用软件反复向我的网站post请求,php程序如防止来自同一IP的攻击?
- 3、linux系统下怎么预防php木马
- 4、配置iptables防火墙的方法(十万火急)跪求
- 5、linux系统怎么防止DDOS攻击
iptables防攻击
如果处于半开放状态的连接绑定服务器上的资源,则可能通过向服务器大量发送SYN消息来占用所有这些资源。Syn flood是常见的攻击,可以通过以下iptables规则进行阻挡:
所有进入的连接是允许的,直到达到极限:
-limit 1/s:以秒为单位的最大平均匹配率
-limit-burst 3:要匹配的包的最大初始数量
举例1:限制 ssh连接数
假设您需要限制到ssh服务器(端口22)的传入连接在10分钟内不超过10个连接:
举例2:防范DoS攻击
上面的iptables规则将帮助您防止拒绝服务(DoS)攻击您的web服务器。
在上面的例子中:
-m limit:它使用limit iptables扩展名
–limit 25/minute:这限制了每分钟最多25个连接。根据您的具体需求更改此值
-limit-burst 100:这个值表示只有当连接总数达到了limit-burst级别时才会执行limit/min。
举例3:限制每个IP /主机的SSH连接
每个客户端主机只允许3个ssh连接:
举例4:限制每个IP /主机的HTTP连接
如果IP在100秒内尝试了10次以上的80端口连接(将规则添加到iptables shell脚本中),下面的示例将删除传入的连接
如何测试防火墙规则
使用下面的shell脚本连接到202.1.2.3托管的web服务器:
nc命令是一个功能强大的网络工具,通过它不仅可以探测端口,还能作为客户端连接服务。
有人用软件反复向我的网站post请求,php程序如防止来自同一IP的攻击?
无论使用PHP还是Apache(.htaccess)的手段,这个IP的请求还是被彻底执行了。CPU还是被占用了,虽然可能会占用的稍微少一点。
所以通过服务器设置,比如在Linux使用iptables防火墙。或者使用其他的前置的硬件防火墙。过滤这种同一IP在短时间内的不间断访问。这才是有效的手段。
linux系统下怎么预防php木马
现在我给大家讲一下在linux下如何预防php木马。1.首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: php_admin_valueopen_basedir /usr/local/apache/htdocs 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误: Warning:open_basedirrestrictionineffect.Fileisinwrongdirectoryin/usr/local/apache/htdocs/open.phponline4等等。 2、防止php木马执行webshell 打开safe_mode,在php.ini中设置disable_functions=passthru,exec,shell_exec,system二者选一即可,也可都选 3、防止php木马读写文件目录 在php.ini中的disable_functions=passthru,exec,shell_exec,system后面加上php处理文件的函数主要有fopen,mkdir,rmdir,chmod,unlink,dir fopen,fread,fclose,fwrite,file_exists
配置iptables防火墙的方法(十万火急)跪求
Linux系统里配置iptables代理防火墙视频全过程
配置iptables静态防火墙
1、初始化防火墙
在shell提示符#下键入:
iptables -F
iptables -X
iptables -Z
利用iptables配置您自己的防火墙之前,首先要清除任何以前配置的规则。
2、配置规则:
2.1、配置默认策略
iptables -P INPUT DROP
这一条命令将阻止任何从网络进入电脑的数据包丢弃(drop)。此时,假如您ping 127.0.0.1,您就会发现屏幕一直停在那里,因为ping收不到任何应答数据包。
2.2、创建用户自定义的链
iptables -N MYINPUT
iptables -N MYDROPLOG
2.3 、添加规则
iptables -A INPUT -j MYINPUT
这条规则将任何进入电脑的包转发到自定义的链进行过滤。
iptables -A MYINPUT -p icmp -j ACCEPT
此时再输入命令 ping 127.0.0.1,结果还会和刚才相同吗?
假如要访问www服务
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
这条规则允许来自网络并且源端口是80的数据进入电脑。80端口正是www服务所使用的端口。现在能够看网页了。但是,假如您在浏览器的地址中输入,能看到网页吗?您得到的结果一定是:很难找到主机。假如您再输入211.94.144.100,您仍然能够访问baidu的网页。为什么?因为假如访问,电脑需要先进行域名解析获取对应的ip地址211.94.144.100才能正常访问。我们还需要打开DNS。
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
这条规则接受任何UDP协议53端口的数据。53正是DNS服务所用的端口。此时测试一下,您能通过域名访问www吗?您能通过ip访问www吗?当然,都能够!
丢弃其他的任何网络数据包
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
2.4、记录日志
iptables -I MYDROPLOG 1 -j LOG --log-prefix '〔IPTABLES DROP LOGS〕:' --log-level debug
这样任何被丢弃的网络数据包都被记录下来了,访问网络的周详信息能够查看日志。至此,一个安全的个人静态防火墙已构建,能够根据访问网络的具体需求再次配置防火墙,满足各种需求。
3、查看防火墙
此时能够查看防火墙了
iptables -L --line-number
能够将上面的实验内容总结一下,写成一个脚本。
#!/bin/bash
# This is a script of
# a personal static firewall
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -N MYINPUT
iptables -N MYDROPLOG
iptables -A INPUT -j MYINPUT
iptables -A MYINPUT -p icmp -j ACCEPT
iptables -A MYINPUT -p tcp --sport 80 -j ACCEPT
iptables -A MYINPUT -p udp --sport 53 -j ACCEPT
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
iptables -I MYDROPLOG 1 -j LOG --log-prefix '〔IPTABLES DROP LOGS〕:' --log-level debug
iptables -L --line-number
运行脚本快速实现自己的防火墙。
linux系统怎么防止DDOS攻击
用squid是利用端口映射的功能,可以将80端口转换一下,其实一般的DDOS攻击可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的参数就行了,默认参数一般都很小,设为8000以上,一般的DDOS攻击就可以解决了。如果上升到timeout阶段,可以将/proc/sys/net/ipv4/tcp_fin_timeout设小点。
大家都在讨论DDOS,个人认为目前没有真正解决的方法,只是在缓冲和防御能力上的扩充,跟黑客玩一个心理战术,看谁坚持到最后,网上也有很多做法,例如syncookies等,就是复杂点。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 1 /proc/sys/net/ipv4/tcp_syncookies
sysctl -w net.ipv4.tcp_max_syn_backlog="2048"
sysctl -w net.ipv4.tcp_synack_retries="3"
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
# Limit 12 connections per second (burst to 24)
iptables -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN
这个地方可以试着该该:
iptbales -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。
通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底
的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以考虑利用Linux
系统本身提供的防火墙功能来防御。
1. 抵御SYN
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际
建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie
功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN
的重试次数。
加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分
SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
2. 抵御DDOS
DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,
25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于一般Apache配置的接受连接
数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行。
使用ipchains抵御DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断
攻击。发现一个阻断一个。
首先查看ipchains服务是否设为自动启动:
chkconfig --list ipchains