iptables_logger的配置网站:
http://blog.chinaunix.net/u/32818/showart_254682.html
iptables_logger网站:
http://www.gege.org/iptables/
start-stop-daemon-IR1_9_18-2.tar.gz
1.scripts/feed_db.pl
这个脚本文件使用perl编写,需要修改其中参数才能才能运行。
2.php+mysql+apache整合
安装是需要安装php+php-mysql,不然php和mysql不能调用连接。
3.通过执行文件去寻找根源
- iptables屏蔽QQ与MSN
目前环境如下:
内网网段:192.168.10.0/24;
网关:192.168.10.254(在大楼物业处);
因此现在在内部做一个自己的网关,在上面做iptables策略.
今后内网网络更换为192.168.9.0/24;网关为192.168.9.254
笔记如下:
1.配置网关服务器网卡信息:
ifconfig eth0 192.168.10.222 //配置网卡0
ifconfig eth1 192.168.9.254 //配置网卡1
route add default gateway 192.168.10.254 //配置默认网关
2.利用iptables设置NAT
iptables -t nat -a POSTROUTING -o eth0 -s 192.168.9.0/24 -j SNAT --to 192.168.10.222 //将9网段NAT为192.168.10.222出去
3.利用iptables做策略限制QQ与MSN
QQ服务器端口为:8000;客户端端口为:4000(开启第二个QQ时为4001,依次类推);均为UDP.
MSN端口数较多:1863为登陆所需要的端口以及3000-4000等等;MSN服务器为gateway.messenger.hotmail.com.
iptables -A FORWARD --protocol udp --dport 8000 -j REJECT //屏蔽QQ服务器
iptables -A FORWARD -d gateway.messenger.hotmail.com -j REJECT //屏蔽msn服务器
iptables -A FORWARD --protocol tcp --dport 1863 -j REJECT //屏蔽msn客户端端口
不是就想对百度进行封。而是所有的网址。比如www.qq.com ,news。qq.com。mail。qq.com。要只要写入*。qq.com就可以禁止上面3个网址了。我是在路由上做的(开发路由)。
#! /bin/bash /etc/init.d/iptables stop 1>/dev/null echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ip_conntrack_ftp modprobe ip_nat_ftp /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -A INPUT -s 127.0.0.1 -j ACCEPT /sbin/iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -o eth1 -j SNAT --to x.x.x.x /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #ACCEPT EXCEPTION iptables -A FORWARD -s 192.168.168.157 -j ACCEPT iptables -A FORWARD -s 66.161.95.128/25 -j ACCEPT iptables -A FORWARD -d 66.161.95.128/25 -j ACCEPT #DROP QQ iptables -A FORWARD -p udp --dport 1080 -j DROP iptables -A FORWARD -p udp --dport 4000 -j DROP iptables -A FORWARD -p udp --dport 8000 -j DROP iptables -A FORWARD -d 61.135.131.240 -j DROP iptables -A FORWARD -d 61.141.194.0/24 -j DROP iptables -A FORWARD -d 61.144.238.0/24 -j DROP iptables -A FORWARD -d 218.17.209.23 -j DROP iptables -A FORWARD -d 218.17.209.42 -j DROP iptables -A FORWARD -d 218.17.217.103 -j DROP iptables -A FORWARD -d 218.18.95.0/24 -j DROP iptables -A FORWARD -d 219.133.38.0/24 -j DROP iptables -A FORWARD -d 219.133.40.15 -j DROP iptables -A FORWARD -d 219.133.45.15 -j DROP iptables -A FORWARD -d 219.133.49.0/24 -j DROP iptables -A FORWARD -d 202.96.170.0/24 -j DROP iptables -A FORWARD -d 202.103.190.61 -j DROP iptables -A FORWARD -d 202.103.149.40 -j DROP iptables -A FORWARD -d 202.104.129.0/24 -j DROP #DROP MSN iptables -A FORWARD -p tcp --dport 1863 -j DROP iptables -A FORWARD -p udp --dport 1863 -j DROP iptables -A FORWARD -p tcp --sport 1863 -j DROP iptables -A FORWARD -p udp --sport 1863 -j DROP iptables -A FORWARD -d 207.46.104.20 -j DROP iptables -A FORWARD -d 207.46.110.0/24 -j DROP iptables -A FORWARD -s 207.46.104.20 -j DROP iptables -A FORWARD -s 207.46.110.0/24 -j DROP #DROP dianlv,emule iptables -A FORWARD -p udp --dport 4661 -j DROP iptables -A FORWARD -p udp --dport 4662 -j DROP iptables -A FORWARD -p tcp --dport 4661 -j DROP iptables -A FORWARD -p tcp --dport 4662 -j DROP iptables -A FORWARD -p udp --sport 4661 -j DROP iptables -A FORWARD -p udp --sport 4662 -j DROP iptables -A FORWARD -p tcp --sport 4661 -j DROP iptables -A FORWARD -p tcp --sport 4662 -j DROP #ACCEPT ICMP iptables -A FORWARD -p icmp -j ACCEPT #ACCEPT SSH iptables -A FORWARD -p tcp --sport 22 -j ACCEPT iptables -A FORWARD -p tcp --dport 22 -j ACCEPT #ACCEPT HTTP iptables -A FORWARD -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -p tcp --sport 80 -j ACCEPT iptables -A FORWARD -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -p tcp --sport 443 -j ACCEPT #ACCEPT FTP iptables -A FORWARD -p tcp --dport 20 -j ACCEPT iptables -A FORWARD -p tcp --dport 21 -j ACCEPT iptables -A FORWARD -p tcp --sport 20 -j ACCEPT iptables -A FORWARD -p tcp --sport 21 -j ACCEPT #ACCEPT MAIL iptables -A FORWARD -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -p tcp --dport 433 -j ACCEPT iptables -A FORWARD -p tcp --sport 25 -j ACCEPT iptables -A FORWARD -p tcp --sport 110 -j ACCEPT iptables -A FORWARD -p tcp --sport 433 -j ACCEPT #ACCEPT DNS iptables -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -p udp --dport 53 -j ACCEPT iptables -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -A FORWARD -p udp --sport 53 -j ACCEPT
# 动态的查看上网记录
tail -f /var/log/squid/access.log
# 动态的iptables记录
tail -f /var/log/iptables.log
# 开启iptables 的log解析到mysql数据库中
/etc/rc.d/init.d/iptablelog start
Iptables服务全攻略之实战配置 之学习笔记(1)
一、netfilter 链 表 规则 之间的关系及相关认识 netfilter是表的容器,表是链的容器,链是规则的容器。 1、filter表 实现包过滤(默认的表) INPUT 链 处理进入本机的数据包 FORWORD 链 处理转发的数据包 OUTPUT 链 处理本地生成的数据包 该表只允许两种规则 ACCEPT DROP 2.、 nat表 网络地址转换用 (可实现一对一,一对多,多对多等的NAT工作) PREROUTING 链 处理即将进入本机的数据包 POSTROUTING 链 处理即将发出的数据包 OUTPUT 链 处理在路由之前待转换的本地生成的数据包 3. Mangle 表 主要用于对指定的包进行修改,适用于以上五种链。 二、 此句示例 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.100 将数据包的源地址转换为 192.168.1.100 此句示例 Iptables -t nat -A PREROUTING -i etho -p tcp --dport 80 -j DNAT --to 5.6.7.8:8080 改变对网卡eth0 80端口的请求的数据包的目的地址到5.6.7.8的8080端口 注:DNAT 多用于发布内网的服务。 三、将案例说明中的规则写成了脚本 ,以方便于实际适用 该案例图片来源于[url]http://redking.blog.51cto.com/27212/143185[/url] 该案例图片来源于[url]http://redking.blog.51cto.com/27212/143185[/url] 具体脚本如下: #!/bin/bash echo "starting iptables rules...." #启用路由转发功能 echo "1" > /proc/sys/net/ipv4/ip_forward iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #以下三步可省略,默认是开启的 iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptalbes -t nat -P POSTROUTING ACCEPT #允许回环地址的通信 iptables -A INPUT -i lo -j ACCEPT #添加连接状态设置 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #开放80端口 iptables -A FORWARD -p tcp --dport 80 -j ACCEPT #开启DNS使用UDP、TCP的53端口 iptables -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -p udp --dport 53 -j ACCEPT #开启SSH使用的TCP协议22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放QQ,MSN相关端口 iptables -A FORWARD -p tcp --dport 1863 -j ACCEPT iptables -A FORWARD -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -p tcp --dport 8000 -j ACCEPT iptables -A FORWARD -p udp --dport 8000 -j ACCEPT iptables -A FORWARD -p tcp --dport 4000 -j ACCEPT #开放邮件端口 iptables -A FORWARD -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -p udp --dport 110 -j ACCEPT iptables -A FORWARD -p tcp --dport 143 -j ACCEPT iptables -A FORWARD -p udp --dport 143 -j ACCEPT iptables -A FORWARD -p tcp --dport 993 -j ACCEPT iptables -A FORWARD -p udp --dport 993 -j ACCEPT iptables -A FORWARD -p tcp --dport 995 -j ACCEPT iptables -A FORWARD -p udp --dport 995 -j ACCEPT #nat设置 iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE #发布内网web服务器 iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80 #end 附注:屏蔽QQ MSN时 除了可以屏蔽端口外,还可以屏蔽域名和IP Iptables -A FORWARD -d 域名或IP -j DROP 可将以上脚本内容命名为filter-dnat 并加入启动文件中 具体操作 Touch /etc/rc.d/filter-dnat Chmod u+x /etc/rc.d/filter-dnat Echo "/etc/rc.d/filter-dnat" >> /etc/rc.d/rc.local
---------------------------------------------------------------------------------------
通过squid2.6(yum install)和iptables结合使用,达到透明代理上网的nat功能。
iptables -t nat -A PREROUTING -s $INNET -p tcp --dport 80 -j REDIRECT --to-ports 3128
通过上面的规则,我们就可以实现将所有网页的信息通过squid来控制上网和记录上网记录等等功能。
但是这里碰到一个问题,就是tcp/ip(80端口)协议到squid后,不经过forward规则,mac地址和ip绑定的效果
也就没有了中影,某一台机器修改了自己的ip后,使用ping命令是ping不通的,这是因为,ping没有经过透明代理
squid,我们通过浏览器上网,是可以进过的。所以这里自然就想到了使用squid来绑定mac和ip。搜寻了好长时间
在找到真正原因。其中一条就是重新编译squid,我以前刚刚使用linux时,最怕最烦的就是手工的安装程序,有时候
一下午也装不好一个程序,所以,我尽量想找其他方法来解决这个问题,就是通过arp命令来静态的绑定mac ip,好多
人也想要这么去做,可是通过我的实际证明其中大部分方法都是没有经过实验或者是没有说明清楚。
最后还是要重新编译squid,网上的信息也不是太多,其中有一篇非常好。其实重新编译一下也不是太烦,只要掌握
一定的规则和技巧便可。
http://blog.chinaunix.net/u3/103362/showart_2027877.html
除了安装上面的安装步骤外还要添加(/etc/squid/squid.conf):
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on # 這四行為Transparent proxy 設定
squid2.6版本以后,就不需要怎么麻烦了,只要在 端口3128后面加 transparent(透明代理)便可
重新设置配置文件以后,使其生效:
- sbin/squid -k parse
- sbin/squid -k reconfigure
经过怎么多天,对linux的进一步的人生,让我感受到了linux的强大和灵活。
加油每一天。