防火墙和代理服务器设置规划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
防火墙和代理服务器设置规划
1.Firewall
设计目标:通过一个脚本实现内网对外发布服务器,benet局域网透明代理上网,允许VPN,SSH,DNS,DHCP,WWW,FTP,SNMP,POP3.POP3S,IMAP,IMAPS,SMTP通过,其它拒绝。
环境:iptables:200.0.0.1(外网卡)192.168.200.254(内网卡)
脚本设计原则:先拒绝后允许,先写明确条目,后宏观。一定注意顺序。
#vi MY_Firewall.sh
#!/bin/bash
#MY_Firewall.sh
#auth:ajian
#date:2007.5.15
#######################################################################
####
#Set variable
IPT="/sbin/iptables"
INET_DEV="eth0"
INET_IP="200.0.0.1"
LAN_DEV="eth1"
LAN_IP="192.168.200.254"
LAN_WWW1="192.168.200.1"
LAN_WWW2="192.168.200.2"
LAN_MAIL="192.168.200.3"
####################################################################### ####
# Needed to initially load modules
#/sbin/depmod -a
#Load module
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_gre
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_state
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
####################################################################### ####
#
# /proc set up.
##
# Required proc configuration
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#######################################################################
####
#clear and flush rule
$IPT -F
$IPT -X
$IPT -t nat -X
$IPT -t nat -F
#Set default policy,all drop
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
###############################start set chain#####################################
####################################################################### ####
#1.set allowed ports (SSH,DNS,DHCP,WWW,FTP,SNMP,POP3.POP3S,IMAP,IMAPS,SMTP)
$IPT -A INPUT -p tcp -m multiport --dport 22,80,546,547 -i $INET_DEV -j ACCEPT
$IPT -A FORWARD -p tcp -m multiport --dport 20,21,22,995,143,993,465,3306,546,547 -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dport 53,22,80,546,547 -i $INET_DEV -j ACCEPT
$IPT -A FORWARD -p udp -m multiport --dport 53,20,21,22,995,143,993,465,3306,546,547 -j ACCEPT
##$IPT -A OUTPUT -p tcp -m multiport --dport 53,22,80,546,547 -o $INET_DEV
-j ACCEPT
####################################################################### ####
#2.allow vpn access
$IPT -A INPUT -p tcp -m multiport --dport 1723,500,47 -i $INET_DEV -j ACCEPT $IPT -A FORWARD -p tcp -m multiport --dport 1723,500,47 -j ACCEPT
##$IPT -A OUTPUT -p tcp -m multiport --dport 1723,500,47 -i $INET_DEV -j ACCEPT
$IPT -A INPUT -p gre -j ACCEPT
$IPT -A FORWARD -p gre -j ACCEPT
##$IPT -A OUTPUT -p gre -j ACCEPT
################################# NAT ##########################################
#3.DNAT
$IPT -t nat -A PREROUTING -i $INET_DEV -p tcp --dport 80 -j DNAT --to $LAN_WWW1-$LAN_WWW2
$IPT -t nat -A PREROUTING -i $INET_DEV -p tcp --dport 110 -j DNAT --to $LAN_MAIL
$IPT -t nat -A PREROUTING -i $INET_DEV -p tcp --dport 25 -j DNAT --to $LAN_MAIL
# 4.Transparent Proxy
$IPT -t nat -A PREROUTING -i $LAN_DEV -p tcp --dport 80 -j REDIRECT --to-port 3128
# 5.SNAT or MASQUERADE
#------------------------------------------------------------------------
$IPT -t nat -A POSTROUTING -o $INET_DEV -j SNAT --to $INET_IP
#----------------------------------------------------------------------