`
zqjshiyingxiong
  • 浏览: 439827 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

网关服务器设置手册(iptables+iptables_logger_v0.4)

阅读更多

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
 

 

 

Linux iptables执行顺序分析

 

转一个iptables实战应用

 

【经典】iptables详解

 

iptables详解[中文版]

 

 

---------------------------------------------------------------------------------------

通过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(透明代理)便可

 

重新设置配置文件以后,使其生效:

  1. sbin/squid -k parse   
  2. sbin/squid -k reconfigure   

 

 

经过怎么多天,对linux的进一步的人生,让我感受到了linux的强大和灵活。

 

加油每一天。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics