在这里让我们一起学习,一起提高!
1)  什么是raw表?做什么用的?

iptables有5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING,4个表:filter,nat,mangle,raw.

4个表的优先级由高到低的顺序为:raw-->mangle-->nat-->filter

举例来说:如果PRROUTING链上,即有mangle表,也有nat表,那么先由mangle处理,然后由nat表处理

RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.

centos禁止ip段和禁止icmp 包 不指定

jed , 2012-5-28 10:31 , 服务器技术 , 评论(0) , 阅读(9880) , Via 本站原创
# iptables -F
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -A FORWARD -s 124.115.0.0/24 -j DROP
# iptables -I FORWARD -d 202.96.170.164 -j DROP

补充::

单个IP的命令是
iptables -I INPUT -s 124.115.0.199 -j DROP

封IP段的命令是
iptables -I INPUT -s 124.115.0.0/16 -j DROP
iptables -I INPUT -s 124.115.3.0/16 -j DROP
iptables -I INPUT -s 124.115.4.0/16 -j DROP

封整个段的命令是
iptables -I INPUT -s 124.115.0.0/8 -j DROP

封几个段的命令是
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

用iptables禁止一个IP地址范围

iptables -A FORWARD -s 10.0.0.1-255 -j DROP

用防火墙禁止(或丢弃) icmp 包
iptables -A INPUT -p icmp -j DROP
Tags: ,

iptables清空规则 不指定

jed , 2012-3-3 09:41 , 服务器技术 , 评论(0) , 阅读(7543) , Via 本站原创
可以通过/sbin/iptables -F清除所有规则来暂时停止防火墙: (警告:这只适合在没有配置防火墙的环境中,如果已经配置过默认规则为deny的环境,此步骤将使系统的所有网络访问中断)

如果想清空的话,先执行
/sbin/iptables -P INPUT ACCEPT
然后执行
/sbin/iptables -F
通过iptables -L 看到如下信息


同时需要保存,并重启服务
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
Tags:

安装Squid 不指定

jed , 2011-4-28 14:44 , 服务器技术 , 评论(0) , 阅读(6130) , Via 本站原创

[root@localhost]#./configure --prefix=/usr/local/server/squid --enable-async-io=100 --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups --enable-snmp --enable-large-cache-files --with-large-files
[root@localhost]#make && make install

或使用如下安装方法:

[root@localhost]#yum install squid

如果是2.6的内核,才能支持epoll的IO模式,旧版本的内核则只能选择poll或其他模式了;另外,记得带上支持大文件的选项,否则在access
log等文件达到2G的时候就会报错。设定 squid 的配置大概如下内容:
Tags:
一,测试环境
1,硬件是奔腾双核,机子三年前买的。系统是archlinux

2,测试varnish和squid的时候,web服务用的apache

3,测试apache的时候,启动了5个进程,不过随着压力的增加,进程会增加的。

4,测试nginx的时候,启动了十个nginx进程,20个php-cgi进程

5,varnish,squid,nginx用的是反向代理的形势,也就是说访问图片的时候,要先透过缓存工具

二,测试
1,varnish
[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=476508 pages/min, 47258114 bytes/sec.
Requests: 158836 susceed, 0 failed.

访问了这么次,没有缓存只有一次,效率真的很高。

2,squid
[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=133794 pages/min, 7475018 bytes/sec.
Requests: 44598 susceed, 0 failed.

从测试效果来说,squid挺让我失望的,在测试前,我心里是这样估计的,缓存最好的是varnish,其次是squid,然后nginx,最后是apache,现在呢,squid是最差的。后来我看了一下log文件,发现正常情况下,缓存和没有缓存的比率不是1:2,如果在高压力下,缓存和没有缓存的比率更小。

iptables应用 不指定

jed , 2011-4-2 00:22 , 服务器技术 , 评论(0) , 阅读(3594) , Via 本站原创

iptables -L -n --line-numbers 查看iptables规则
iptables -D INPUT 5 删除INPUT链上的第5条规则
一。例如:iptables -A INPUT -p icmp -j DROP
所有进来的icmp协议类型的数据包被拒绝。
1.-A 增加一条规则 -D 删除一条规则 -I 插入一条规则 -R 替换一条规则 -F 清空一条规则
2.-p 协议类型 -s 源 -d 目标 -i 进入的接口 -o 出去的接口 -j 跳转(后面跟动作)-m 匹配条件
二。例如:iptables -A INPUT -p tcp -d 10.0.0.1 --dprot 21 -j DROP
协议类型是tcp,目标地址是10.0.0.1且端口为21的数据包被拒绝进入主机。
三。我们做规则要现在INPUT OUTPUT链路上拒绝所有数据包的访问,然后在允许部分安全的数据包进入主机,如下。

iptables的具体应用规则 不指定

jed , 2010-9-10 14:56 , 服务器技术 , 评论(0) , 阅读(3701) , Via 本站原创
一些iptables的具体应用
ICMP相关应用
使自己不能ping 通 127.0.0.1

iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
192.168.0.0/24 网段无法ping能本机

iptables -A INPUT -s 192.168.0.0/24 -p icmp -j DROP

禁所有机器
# iptables -A INPUT -s 0/0 -p icmp -j DROP

# ICMP(PING) 接受 ! echo-request

/sbin/iptables -A INPUT -p icmp –icmp-type ! echo-request -j ACCEPT

accept_redirects

# echo “0″ > /proc/sys/net/ipv4/conf/all/accept_redirects

or

# sysctl net.ipv4.conf.all.accept_redirects=”0″

禁止IP访问自己
[root@linux root]# iptables -A INPUT -s 192.168.0.253 -j DROP

封杀MSN
/sbin/iptables -I FORWARD -d gateway.messenger.hotmail.com -j DROP

/sbin/iptables -I FORWARD -p tcp –dport 1863 -j DROP

封杀QQ
/sbin/iptables -A FORWARD -p tcp -d tcpconn.tencent.com –dport 80 -j DROP

/sbin/iptables -A FORWARD -p tcp -d tcpconn.tencent.com –dport 443 -j DROP

/sbin/iptables -A FORWARD -p tcp -d tcpconn2.tencent.com -j DROP

/sbin/iptables -A FORWARD -i eth0 -p udp –dport 8000 -j DROP

封杀BT
/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 6881:6890 -j DROP

WWW
# 禁止>>WWW

/sbin/iptables -A FORWARD -p tcp –dport 80 -j DROP

# 开放>>WWW

/sbin/iptables -A FORWARD -p tcp –dport 80 -j ACCEPT

FTP
# 禁止FTP

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 20 -j DROP

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 21 -j DROP

# 开放FTP

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 20 -j ACCEPT

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 21 -j ACCEPT

SMTP,POP3
# 禁止SMTP,POP3

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 25 -j DROP

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 110 -j DROP

# 开入SMTP,POP3

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 25 -j ACCEPT

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 110 -j ACCEPT

Samba
# 禁止Samba

[root@linux root]# iptables -A FORWARD -p tcp –sport 137:139 -j DROP

[root@linux root]# iptables -A FORWARD -p udp –sport 137:139 -j DROP

DROP
# DROP OTHERS

/sbin/iptables -A FORWARD -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j DROP

使用iptables -L -n命令查看当前防火墙的规则,结果类似下面这样,其中(policy ACCEPT)指的就是预设的策略
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all — 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

iptables定义策略的语法:
iptables [-t tables] [-P] [INPUT, OUTPUT, FORWARD | PREROUTEING, OUTPUT, POSTROUTING] [ACCEPT, DROP]
-P 定义Policy
用于fliter表中的参数
INPUT 请求主机的信息包
OUTPUT 主机发出的信息包
FORWARD 转发的信息包

用于nat表的参数
PREROUTING 路由之前处理
OUTPUT 主机发出的信息包
POSTROUTING 路由之后处理
iptables查看规则的语法:
iptables [-t table] [-L] [-n]
-t 后面接 iptables 的 table,默认就是 -t filter。
-L 列出当前的 table 的规则
-n 不进行 IP 与 hostname 的转换

iptables清除规则的语法:
iptables [-t table] [-FXZ]
-F 清除所有规则;
-X 杀掉所有用户建立的链
-Z 将所有链的计数与流量统计都清零

iptables增加和定义规则的语法:
iptables [-t table] [-AI INPUT,OUTPUT,FORWARD] [-s IP/network] -j [ACCEPT,DROP]

-A:将一条规则添加到最后面
-I:插入一条规则,默认放在最前面
-s:来源数据包的IP地址或地址段
-j:要执行的动作(drop、accept、log)

iptables删除规则语法:
iptables -D INPUT 2,表示删除INPUT链中的第二条规则

Linux VPS下简单解决CC攻击 不指定

jed , 2010-6-14 08:55 , 服务器技术 , 评论(0) , 阅读(3429) , Via 本站原创
一,准备工作
1,登录进VPS控制面板,准备好随时重启VPS。
2,关闭Web Server先,过高的负载会导致后面的操作很难进行,甚至直接无法登录SSH。
3,以防万一,把设置的Web Server系统启动后自动运行去掉。
(如果已经无法登录进系统,并且重启后负载过高导致刚刚开机就已经无法登录,可联系管理员在母机上封掉VPS的IP或80端口,在母机上用虚拟控制台登录 进系统,然后进行2&3的操作,之后解封)

二,找出攻击者IP

1,在网站根目录建立文件ip.php,写入下面的内容。
Tags: , , ,
如果你的IPTABLES基础知识还不了解,建议先去看看。


们来配置一个filter表的防火墙

1、查看本机关于IPTABLES的设置情况

[root@tp ~]# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)

target prot opt source destination

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
Tags: ,
当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。
1.系统要求
(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。
(2)iptables版本:1.3.7
2. 安装
安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit
3. 配置相应的iptables规则
示例如下:
(1)控制单个IP的最大并发连接数
iptables -I INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 50 -j REJECT  
#允许单个IP的最大连接数为 30(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp --dport 80 -m recent \
--name BAD_HTTP_ACCESS --update --seconds 60 \
--hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent \
--name BAD_HTTP_ACCESS --set -j ACCEPT
#单个IP在60秒内只允许最多新建30个连接4. 验证
(1)工具:flood_connect.c(用来模拟攻击)
(2)查看效果:
使用
watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'实时查看模拟攻击客户机建立起来的连接数,
使用
watch 'iptables -L -n -v | \grep<模拟攻击客户机的IP>'查看模拟攻击客户机被 DROP 的数据包数。
5.注意
为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:
#cat/etc/modprobe.conf
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
#记录1000个IP地址,每个地址记录60个数据包
#modprobe ipt_recent
本文来自黑色电视机,原文地址:http://www.blacktv.com.cn
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]