Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1215955
  • 博文数量: 275
  • 博客积分: 6445
  • 博客等级: 准将
  • 技术积分: 2863
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-04 23:22
文章分类

全部博文(275)

文章存档

2024年(4)

2023年(5)

2022年(3)

2021年(18)

2020年(9)

2019年(1)

2018年(13)

2017年(11)

2015年(9)

2013年(2)

2012年(4)

2011年(24)

2010年(114)

2009年(6)

2008年(29)

2007年(13)

2006年(10)

我的朋友

分类: LINUX

2007-11-01 11:55:59

关于 Slackware 9.1.0 的配置说明



*********************************************************
*                                                       *
*******关于防火墙系统恢复操作和启动方法说明*******************
*                                                       *
*********************************************************

该系统主要作用就是对内部服务器作静态nat映射和端口访问控制。

在防火墙中,系统启动时已经自动启动了以上防火墙脚本,启动位置为:/etc/rc.d/rc.local文件中,
sh /etc/rc.d/nat_firewall.sh #在系统启动时自动启动该脚本

如果需要手动启用防火墙和静态nat映射功能,操作以下步骤即可。
 cd /etc/rc.d/
./portnat.sh

如果用户不需要对内部服务器作任何端口控制,只需要作静态nat映射,只要执行以下文件,即可恢复不设防火墙状态。
cd /etc/rc.d/
./no_firewall.sh

**********************************************************
*                                                        *
****关于 Slackware 9.1.0 系统配置防火墙和NAT功能的配置说明*****
****(nat_firewall.sh)                                   *
**********************************************************

#!/bin/sh
# make:zcatlinux
# time:2004-06-18
# e-mail:

PATH=/sbin:/bin:/usr/sbin:/usr/bin

#设置内部服务器对外的tcp端口,如果需要修改对内部访问的端口号,直接在这里修改即可,
#添加规则就是之间端口号之间有一个空格就可以了。下面upd端口添加规则也一样
##tcp allow ports
TPORTS="80 22"  #在远程只允许用户访问防火墙的22、80端口

#设置内部服务器对外的udp端口
##udp allow ports
UPORTS="53 123"

#设置防火墙对外网卡及ip地址
##config out_eth interface
OUT_ETH="eth1"
OUT_ETH_IP="202.138.164.110"

#设置防火墙外网卡的tcp端口
##set out_eth_ip(firewall out ip) ports
OUT_ETH_IP_PORTS="22" #在远程只允许用户访问防火墙的22端口

#设置防火墙对内网卡及ip地址
##config in_eth interface
IN_ETH="eth0"
IN_ETH_IP="10.10.11.110"

#设置防火墙内部服务器的ip地址段
##internal ip range
SERVER_IP="10.10.11.0/24"

1、系统对ip传发包的配置文件初始化操作,输入值为0表示不转发,1为开启转发功能,此处需要初始化为0
#Disable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

#即初始化iptables规则列表。
#reset default policies
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#删除iptables所有规则
##del all iptables rules
iptables -F INPUT ##删除iptables中INPUT规则
iptables -F FORWARD ##删除iptables中FORWARD规则
iptables -F OUTPUT ##删除iptables中OUTPUT规则

#清空所有规则链
##clean all non-default chains
iptables -X
iptables -t nat -X

#定义iptables安全的默认规则
##iptables default rules
iptables -P INPUT DROP  ##拒绝所有外部发往本机的数据包,即禁止所有对内部的数据包通过
iptables -P FORWARD DROP ##不允许所有数据包转发
iptables -P OUTPUT ACCEPT ##允许所有内部发往外部的包通过

#允许icmp包通过,即允许ping
##allow ping packets
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

#当建立联机状态时,允许数据互相转发。其中,ESTABLISHED表示该封包属于某个已经建立的联机,
#RELATED 表示该封包是属于某个已经建立的联机,所建立的新联机。
##enable forwarding
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
 ##允许要求联机封包或响应封包之间转发包

#数据包状态为联机和响应状态时允许进入
##STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 ##允许要求联机封包或响应封包进入

#允许源地址为服务器ip段发往防火墙内网卡的包进入
##accept internal packets on the internal i/f
iptables -A INPUT -i $IN_ETH -s $SERVER_IP -p tcp -j ACCEPT

#控制防火墙本身对外ip地址的端口
##accept firewall out eth ip ports
for OEP in $OUT_ETH_IP_PORTS
do
     iptables -A INPUT -d $OUT_ETH_IP -p tcp --destination-port $OEP -j ACCEPT
done

#控制内部服务器对外的端口
##open ports on router for server/services
#TCP PORTS
(tcp类型的端口)
for ATP in $TPORTS
do

    #允许源地址为非内部服务器段的所有ip,目的地址为内部服务器ip的tcp端口的连接包进入
    iptables -A INPUT ! -s $SERVER_IP -d $SERVER_IP -p tcp --destination-port $ATP -j ACCEPT
    iptables -A FORWARD -p tcp --destination-port $ATP -j ACCEPT #被允许目的端口连接之间互相传送数据包
done

#UDP PORTS(udp类型的端口)
for AUP in $UPORTS
do
    iptables -A INPUT -p udp --destination-port $AUP -j ACCEPT
    iptables -A FORWARD -p udp --destination-port $AUP -j ACCEPT
done

#在对内访问的连接中,只要是INVALID(即无效的连接)就丢弃该包
##bad_packets chain
##drop INVALID packets immediately
#iptables -A INPUT -p ALL -m state --state INVALID -j DROP

#限制过滤规则的比对频率为每秒钟平均流量100个封包,将瞬间流量设定为一次最多处理100个封包
(超过上限的封包将丢弃不予处理),防止有拒绝服务性的攻击,即洪水性的大量数据包攻击。
##limit SYN flood
#iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
##限制对内部封包的发送速度
#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT##限制建立联机的转发包的速度

#允许本机Loopback 接口,即127.0.0.1
##allow loopback
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT

#启动IP Forward 接口
##enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

#当本机做NAT时,在外网卡上面绑定多个静态映射的ip地址。如果要添加修改nat静态映射的ip地址,在这里按照规则添加即可
##config net-eth ip address
ifconfig eth0:1 202.138.164.101 netmask 255.255.255.128
ifconfig eth0:2 202.138.164.102 netmask 255.255.255.128
ifconfig eth0:3 202.138.164.103 netmask 255.255.255.128
ifconfig eth0:4 202.138.164.104 netmask 255.255.255.128
ifconfig eth0:5 202.138.164.105 netmask 255.255.255.128
ifconfig eth0:8 202.138.164.108 netmask 255.255.255.128

#设置做静态nat的映射规则。如果需要添加删除静态nat的条目,在这里修改添加即可。
##set static IP nat rule, POSTROUTING/PREROUTING
##(snat)iptables -t nat -A POSTROUTING -j SNAT --to 202.202.210.10
##(dnat)iptables -t nat -A PREROUTING -j DNAT --to 10.10.10.10
#
iptables -t nat -A POSTROUTING -s 10.10.11.101 -j SNAT --to 202.138.164.101
##收到的源ip地址为10.10.10.101的数据包进行源NAT(SNAT)
iptables -t nat -A PREROUTING -d 202.138.164.101 -j DNAT --to 10.10.11.101##收到的目的ip为202.38.64.101的所有数据包进行目的NAT(DNAT)

iptables -t nat -A POSTROUTING -s 10.10.11.102 -j SNAT --to 202.138.164.102
iptables -t nat -A PREROUTING -d 202.138.164.102 -j DNAT --to 10.10.11.102

iptables -t nat -A POSTROUTING -s 10.10.11.103 -j SNAT --to 202.138.164.103
iptables -t nat -A PREROUTING -d 202.138.164.103 -j DNAT --to 10.10.11.103

iptables -t nat -A POSTROUTING -s 10.10.11.104 -j SNAT --to 202.138.164.104
iptables -t nat -A PREROUTING -d 202.138.164.104 -j DNAT --to 10.10.11.104

iptables -t nat -A POSTROUTING -s 10.10.11.105 -j SNAT --to 202.318.164.105
iptables -t nat -A PREROUTING -d 202.138.164.105 -j DNAT --to 10.10.11.105

iptables -t nat -A POSTROUTING -s 10.10.11.108 -j SNAT --to 202.138.164.108
iptables -t nat -A PREROUTING -d 202.138.164.108 -j DNAT --to 10.10.11.108


********************************************************************
*                                                                  *
**********附:删除防火墙规则只做nat的文件说明(no_firewall.sh)**********
*                                                                  *
********************************************************************

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

#删除iptables所有规则
##del all iptables rules
iptables -F INPUT
 ##删除iptables中INPUT规则
iptables -F FORWARD ##删除iptables中FORWARD规则
iptables -F OUTPUT ##删除iptables中OUTPUT规则

#清空所有规则链
##clean all non-default chains
iptables -X
iptables -t nat -X

##对所有连接包都做默认接受处理,即不作任何控制
#reset the default policies in the nat table.
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

##打开ip forward转发接口
echo 1 > /proc/sys/net/ipv4/ip_forward

阅读(1748) | 评论(0) | 转发(0) |
0

上一篇: 忠告

下一篇:msn在iptables 上的开放脚本

给主人留下些什么吧!~~