您的位置:

利用iptables防止php的简单介绍

本文目录一览:

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