ゲートウェイを達成するためにイカ+ iptablesファイアウォール

需要説明:このサーバーは、ゲートウェイとして動作MAIL(オープンウェブ、SMTP、POP3)、FTP、機械内部のDHCPサーバ(192.168.0.254)は、外部提供のDNSサービスをこのサーバーが開きます見に不注意の簡単なのを防止するために、SSHサーバ、これへのsshのポート2018、他のポートへのプロキシ60080

eth0の:218.28.20.253、外部ネットワークポート

eth1の:192.168.0.1/24、内部ネットワークポート

[jackylau @ PROXYSERVER init.dディレクトリ] $猫の/etc/squid/squid.conf(部份如下
HTTP_PORT 192.168.0.1:60080
httpd_accel_port 80
httpd_accel_host仮想
上のhttpd_accel_with_proxy
上httpd_accel_uses_host_header
ACL allow_lan SRC 192.168.0.0/24
のhttp_access許可allow_lan
visible_hostname PROXYSERVER
[jackylau @ init.dディレクトリPROXYSERVER] $猫のファイアウォール
ます。#!/ bin / shの
#著者:jackylau <[email protected]>。
#1のchkconfig:2345年08 92
#説明:ファイアウォール
2005年8月2日の#時間

#1 killproc
#設定ENV
INET_IP = "218.28.20.253"
INET_IFACE = "eth0の"
LAN_IP = "192.168.0.1"
LAN_IP_RANGE = "192.168.0.0/24"
LAN_BROADCAST_ADDRESS = "192.168.0.255"
LAN_IFACE = "eth1の"
LO_IFACE = "LO"
LO_IP = "127.0.0.1"
IPTABLES = "/ sbinに/ iptablesの"

{開始()
:$ "ファイアウォールを起動"エコー-n
/ sbinに/でdepmod -a
/ sbinに/ modprobeのip_tables
/ sbinに/ modprobeのip_conntrack
/ sbinに/ modprobeのiptable_filter
/ sbinに/ modprobeのiptable_mangle
/ sbinに/ modprobeのiptable_nat
/ sbinに/ modprobeのipt_LOG
/ sbinに/ modprobeのipt_limit
/ sbinに/ modprobeのipt_state

エコー "1">; / proc / sys / net / IPv4の/ ip_forward

#セットポリシー
$ IPTABLES -P INPUT DROP
$ iptablesの-P OUTPUT DROP
$ iptablesの-P FORWARD DROP

#追加bad_tcp_packets、許可されるとicmp_packets
$ IPTABLES -N bad_tcp_packets
$ IPTABLES -N tcp_packets
$ IPTABLES -N udp_packets
$ IPTABLES -N許さ
$ IPTABLES -Nのicmp_packets

#bad_tcp_packets
$ IPTABLES -A bad_tcp_packets -p TCP!--syn -m状態--state NEW -j LOG --log-レベルINFO --log-接頭辞"新ませんシン:"
$ IPTABLES -Aのbad_tcp_packets -p TCP!-m状態--state NEW -j DROP --syn

#は許さ
$ IPTABLES -Aが許さ-p TCP --syn -j ACCEPT
iptablesの-Aは、ESTABLISHED ACCEPT -j関連--state TCP -m状態を-p許さ$
$ IPTABLES -Aは、TCP -j DROPを許可-p

$ IPTABLES -A INPUT -p ALL -i $ LAN_IFACE -d $ LAN_BROADCAST_ADDRESS -j ACCEPT

#のTCPルール
$ IPTABLES -A tcp_packets -p TCP -s 0/0は20 -j許可--dport
$ IPTABLES -Aのtcp_packets -p TCP -s 0/0 -j 21 --dport許さ
$ IPTABLES -A tcp_packets -p TCPは0/0が25 -j許可--dport -s
$ IPTABLES -Aのtcp_packets -p TCP -s 0/0 -j 80 --dport許さ
110 --dport $ IPTABLES -Aのtcp_packets -p TCP -s 0/0 -j許さ
$ IPTABLES -Aのtcp_packets -p TCPは2018 --dport 0/0が許可-J -s

#のUDPルール
$ IPTABLES -Aのudp_packets -p UDP -s 0/0 --destination-ポート67 -j ACCEPT

#ICMPルール
$ IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp型8 ACCEPT -j
$ IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp型11は、ACCEPT -j

#入力チェーン
$ IPTABLES -A INPUT -p tcpのは-j bad_tcp_packets

$ IPTABLES -A INPUT -p ALL -i $ LAN_IFACE -s $ LAN_IP_RANGE -j ACCEPT
$ IPTABLES -A INPUT -p ALL -i $ LO_IFACE -s $ LO_IP -j ACCEPT
$ IPTABLES -A INPUT -p ALL -i $ LO_IFACE -s $ LAN_IP -j ACCEPT
$ IPTABLES -A入力を-p ALL -i $ LO_IFACE -s $ INET_IP -j ACCEPT
$ IPTABLES -A入力を-p ALL -d $ INET_IP -m状態が--state ESTABLISHED、RELATED -j ACCEPTは、
TCP -i $ INET_IFACE -j tcp_packets -p $ IPTABLES -A INPUT
$ IPTABLES -A INPUT -p UDP -i $ INET_IFACE -j udp_packets
$ IPTABLES -A INPUT -p ICMP -i $ INET_IFACE -j icmp_packets
$ IPTABLES -A INPUT -mリミット3 /分--limit-バースト3 -j LOG --logレベルDEBUG --log-接頭辞"IPT入力パケットが死んだ:" --limit

#FORWARDチェーン
bad_tcp_packets -j $ IPTABLES -A FORWARD -p tcpの

$ IPTABLES -A FORWARD -i $ LAN_IFACE -j ACCEPT
ACCEPT -j関連IPTABLES -A FORWARD -m状態がESTABLISHED --state $、
$ IPTABLES -A FORWARD -m限界を--limit 3 /分--limitバースト3 - J LOG --logレベルDEBUG --log-プレフィックスは"IPTはFORWARDパケットは死にました:"

#出力チェーン
bad_tcp_packets -j $ IPTABLES -AのOUTPUT -p TCP

$ IPTABLES -AのOUTPUT -p ALL -s $ LO_IP -j ACCEPT
$ IPTABLES -AのOUTPUT -p ALL -s $ LAN_IP -j ACCEPT
$ IPTABLES -A OUTPUT -p ALL -s $ INET_IP -j ACCEPT

$ IPTABLES -AのOUTPUT -m制限--limit 3 /分--limit-バースト3 -j LOG --logレベルDEBUG --log-接頭辞 "IPTの出力パケットは死にました:"

#のSNATテーブル
$ iptablesの-tのnat -A POSTROUTING -o $ INET_IFACE -j SNAT --to-ソース$ INET_IP

#のDNATテーブル
$ iptablesの-tのnat -A PREROUTING -p!ICMP -d $ INET_IP -dport 53 -j DNAT --to先192.168.0.254:53

#リダイレクト
$ iptablesの-tのnat -A PREROUTING -i $ LAN_IFACE -p TCP -s $ LAN_IP_RANGE --dport 80 -j --to-ポート60080 REDIRECT
タッチは/ var / lock / subsys /ファイアウォールを
}

(){停止
エコー-n $ "ストーピングファイアウォールを:"
"0"をエコー>;は、/ proc / sys / net / IPv4の/ ip_forward
$ IPTABLES -P INPUT ACCEPT
$ IPTABLES -P FORWARD ACCEPT
$ IPTABLES -P OUTPUT ACCEPT
$ iptablesの-トンのnat -P PREROUTING ACCEPT
$ IPTABLES -t NAT -P POSTROUTING ACCEPT
$ IPTABLES -t NAT -P OUTPUT ACCEPT
-P PREROUTINGはACCEPTマングル-t $ iptablesの
iptablesのはACCEPTマングル-P OUTPUTを-t $を
$ IPTABLES -F
$ iptablesの-t NAT -F
$ iptablesの-t mangleの-F
$ IPTABLES -X
$ iptablesの-t NAT -X
$ iptablesの-t mangleの-X
のrm -fは/ var / lock / subsys /ファイアウォール
}

ステータス(){
クリア
エコー「------------------------------------------- ------------------------ "
$ IPTABLES -L
エコー" ------------------- ------------------------------------------------」
$ iptablesの-tのnat -L POSTROUTING
エコー「----------------------------------------- --------------------------」
$ iptablesの-tのnat -L PREROUTING
}

場合は「$ 1」
スタート)
スタート
;;
停止)
を停止
;;
再起動)
を停止
開始
;;
*)
エコー"$ 0 [スタート|再起動| |停止状態]を"
;;
ESACの
CPのファイアウォール/etc/init.d/の
はchmod 700 /etc/init.d/firewall
のchkconfig --addファイアウォール

おすすめ

転載: www.cnblogs.com/fanweisheng/p/11130234.html