频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

基于中软Linux实现代理服务器与防火墙(1)

来源: 作者: 出处:巧巧读书 2006-08-06 进入讨论组

  作者:李宇
  
   #!/bin/bash
   #proxy and firwall
   #定义变量
   EXT_IFACE=eth0
   EXT_ADDR=192.9.100.8
   INT_IFACE=eth1
   INT_ADDR=192.168.0.0/24
   Manager_Addr=192.168.0.3/32
    
   #初始化设置
   service iptables stop
   iptables -F
   iptables -t nat -F
   iptables -X
   iptables -t nat -X
   iptables -Z
   iptables -t nat -Z
    
   iptables -P INPUT DROP
   iptables -P OUTPUT DROP
   iptables -P FORWARD DROP
   iptables -t nat -P POSTROUTING DROP
  
   #启动模块
   cd /lib/modules/2.4.3-3/kernel/net/ipv4/netfilter
   modprobe ip_conntrack_ftp
   modprobe ip_nat_ftp
   cd /
  
   #设置核心参数
  
   ##避免ping of death攻击
   echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
   ##禁止广播回应(可选)
   #echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    ##防止源路由攻击
    echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route
    ##不接受重定向的icmp数据包
    #echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects
    ##防止IP欺骗
    for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
     /bin/echo 1 > ${interface}
     done
    ##禁止IP转发(在配置防火墙时,建议用户先关闭数据包的转发功能)
    echo 0 >/proc/sys/net/ipv4/ip_forward
    #IP伪装
    iptables -t nat -A POSTROUTING -s $INT_ADDR -o $EXT_IFACE -j MASQUERADE
    #定义forward 链规则
    iptables -A FORWARD -m state --state INVALID -j DROP
    iptables -A FORWARD -i $INT_IFACE -o $EXT_IFACE -s $INT_ADDR -m state --state
  RELATED,NEW,ESTABLISHED -j ACCEPT
    #iptables -A FORWARD -i $ INT_IFACE -s 192.168.0.3/32 -m mac --mac-source
  00:D0:59:08:5f:23 -o $EXT_IFACE -j ACCEPT(可以使用该方法实现IP地址物理地址的捆绑)
    iptables -A FORWARD -i $EXT_IFACE -o $ INT_IFACE -d $ INT_ADDR -m state --state
  RELATED,ESTABLISHED -j ACCEPT
    #对包碎片的限制(会影响代理服务器的性能)
    #iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
    #对外部访问该防火墙作的限制
    iptables -A INPUT -i $EXT_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i $EXT_IFACE -p tcp ! --syn -j ACCEPT
    #对内部用户访问防火墙的限制
    iptables -A INPUT -i $ INT_IFACE -p icmp -j DROP #(可以对其他协议做限制)
    #...........
    #允许管理员对防火墙的操作
    iptables -A INPUT -s $Manager_Addr -i $ INT_IFACE -p tcp --dport 3000 -j ACCEPT
    iptables -A INPUT -s $Manager_Addr -i $ INT_IFACE -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -d $Manager_Addr -o $ INT_IFACE -m state --state ESTABLISHED
  -j ACCEPT
    #允许发送的数据包(from gateway)
    iptables -A OUTPUT -o $EXT_IFACE -j ACCEPT
  
    #允许IP数据包转发
    echo 1 >/proc/sys/net/ipv4/ip_forward本U R L:http://www.qqread.com/linux/2006/08/f883195061.html 更多文章 更多内容请看代理服务器技术专题FTP服务器网站服务器的选型专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章