文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>IPCop

IPCop

时间:2007-01-27  来源:fishjin

IPCop一個簡單的防火牆設置。   有知道IPCop的進來討論討論。 #######################################################################
# 模塊的加載和設定為內核工作
#######################################################################
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe ipt_LOG  
modprobe ipt_REJECT
modprobe ipt_limit
# 允許IP masquerade(變換)
echo 1 > /proc/sys/net/ipv4/ip_forward
# 忽視PING的broadcast
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# 檢查源IP
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo “1” > $f; done
#記錄不可能的(虛假)IP
for f in /proc/sys/net/ipv4/conf/*/log_martians; do echo “1” > $f; done
# 忽視ICMP redirect message
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do echo “1” > $f; done
####################################################################
# 初始化規則
#####################################################################
iptables –P INPUT DROP      #清空INPUT原始定義
iptables –P OUTPUT DROP    #清空OUPUT原始定義
iptables –P FORWARD DROP   #  清空FORWARD原始定義
iptables –F    # flash chain
iptables –F –t nat       
iptables –X         #  刪除用戶定義的Chain
#######################################################################
#  用戶定義的chain
#######################################################################
#
#   記錄並丟棄非法的包
#
iptables –N DROPPACKET # DROPPACKT chain 的生成
iptables –A DROPPACKET –j LOG –log-prefix “INVALID_PACKET:” \ --LOG-LEVEL=3 –m limit –limit 1/s –limit-burst 10
iptables –A DROPPACKET –j DROP
#
# 檢查SYNFlood攻擊的chain
#
iptables –N SYNFLOOD  #SYNFLOOD chain 的生成
# 沒有超過限定值的話返回
iptables –A SYNFLOOD –m limit –limit 10/s –limit-burst 20 –j RETURN
# 超過限定值,就視為SYNFLOOD攻擊,記錄並丟棄
iptables –A SYNFLOOD –m limit –limit 1/s –limit-burst 10 –j LOG \ --log-level=1 –log-prefix “SYNFLOOD”
iptables –A SYNFLOOD –j DROP
#  記錄非法的Flag TCP,並丟棄
iptables –N DROPFLAGS    #   DROPFLAGS chain 的生成
iptables –A DROPFLAGS –j LOG –log-prefis “INVALID_FLAGS:”\ --log-level=3 –m limit –limit 1/s –limit-burst 10
iptables –A DROPFLAGS –j DROP
#檢查TCP Flag 的非法組合
#
iptables –N CHKFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ACK,FIN FIN –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ACK,PSH PSH –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ACK,URG URG –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags FIN,RST FIN,RST –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags SYN,FIN SYN,FIN –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags SYN,RST SYN,RST –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ALL ALL  –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ALL NONE –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ALL FIN,PSH,URG  –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ALL SYN,FIN,PSH,URG –j DROPFLAGS
iptables –N CHKFLAGS –p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG –j DROPFLAGS
#
#   拒絕Microsoft 網絡相關的FORWARD
#
iptables –N CHKFLAGS
iptables –A CHKFLAGS  -p tcp –dport 42 –j DROP    #    wins dup
iptables –A CHKFLAGS  -p tcp –dport 135 –j DROP  #  MS-RPC
iptables –A CHKFLAGS  -p udp –dport 135 –j DROP  #MS-RPC
iptables –A CHKFLAGS  -p udp –dport 137:138 –j DROP  # MS browse
iptables –A CHKFLAGS  -p tcp –dport 139 –j DROP          # SMB
$IPTABLES –A CHKFLAGS  -p tcp –dport 445 –j DROP          # DHSMB
#############################################################################
#   INPUT Chain
#############################################################################
# Localhost 的話,全部許可
iptables –A INPUT –I lo –j ACCEPT
#檢查包的正確性
iptables –A INPUT –m state –state INVALID –j DROPPACKET
#檢查包是否是SYN攻擊
iptables –A INPUT –p tcp –syn –j SYNFLOOD
# TCP FLAG  的檢查
iptables –A INPUT –p tcp –j CHKFLAGS
#許可LAN內的連接
iptables –A INPUT –I $INNER_PORT –s $INNER_NET –j ACCEPT
#許可已經建立的連接
iptables –A INPUT –m state –state ESTABLISHED RELATED –j ACCEPT
#檢查是否是IP偽裝
iptables –A INPUT –i $OUTER_PORT –s $INNER_NET –j DROP
# 許可的服務(對外公開的服務,也可以自定)
iptables –A INPUT –p tcp --dport 22 –m state –state NEW –j ACCEPT  # SSH
iptables –A INPUT –p tcp  --dport 80 –m state –state NEW –j ACCEPT
iptables –A INPUT –p tcp --dport 8080 –m state –state NEW –j ACCEPT
iptables –A INPUT –p tcp --dport 443 –m state –state NEW –j ACCEPT
iptables –A INPUT –p tcp --dport 53 –m state –state NEW –j ACCEPT
iptables –A INPUT –p udp --dport 53 –m state –state NEW –j ACCEPT
#拒絕AUTH請求
iptables –A INPUT –p tcp --dport 113 –j REJECT –reject-with tcp-reset
# icmp(IN)
iptables –A INPUT –p icmp --icmp-type echo-request –s $INNER_NET –j ACCETP
iptables –A INPUT –p icmp  --icmp-type echo-reply –s $INNER_NET –j ACCETP
iptables –A INPUT –p icmp  --icmp-type destination-unreachable –j ACCETP
iptables –A INPUT –p icmp  --icmp-type source-quench –j ACCETP
iptables –A INPUT –p icmp  --icmp-type time-exceeded –j ACCETP
iptables –A INPUT –p icmp  --icmp-type parameter-roblem –j ACCETP
# 除了上面以外所有的包,都記錄下來,並通過Default Policy 丟棄
$IPTABLES –A INPUT –j LOG –log-prefix “UNDEFIND_INPUT:” \ --log-level=3 –m limit –limit 1/s –limit-burst 10
#############################################################################
#  OUTUT Chain
#############################################################################
#許可由localhost 出來的包
iptables –A OUTPUT –o lo –j ACCEPT
#TCP FLAG 的檢查
iptables –A OUTPUT –p tcp –j CHKFLAGS
#許可從服務器到LAN的連接
iptables –A OUTPUT –o $INNER_PORT –s $FWALL_IP  –j ACCEPT
# 檢查Microsoft 網絡
iptables –A OUTPUT  –j  CHKMSNET
#許可已經連接的包
iptables –A OUTPUT –m state –state ESTABLISHED,RELATED –j ACCEPT
# 許可由服務器到互聯網的新加連接
iptables –A OUTPUT –m state –state NEW -j ACCEPT
# icmp(OUT)
iptables –A OUTPUT –p icmp –icmp-type echo-request –j ACCEPT
iptables –A OUTPUT –p icmp –icmp-type echo-reply –j ACCEPT
iptables –A OUTPUT –p icmp –icmp-type destination-unreachable –j ACCEPT
iptables –A OUTPUT –p icmp –icmp-type fragmentation-needed –j ACCEPT
iptables –A OUTPUT –p icmp –icmp-type source-quench –j ACCEPT
iptables –A OUTPUT –p icmp –icmp-type parameter-problem –j ACCEPT
#除了上面以外所有的包,都記錄下來,並通過Default Policy 丟棄
iptables –A OUTPUT –j LOG –log-prefix “UNDEFIND_ICMP:” –log-level=3 \ -m limit –limit 1/s –limit-burst 10
#############################################################################
#     IP變換
#############################################################################
#檢查Microsoft 網絡
iptables –A FORWARD –j CHKMSNET
#許可Lan內機器的IP變換
iptables –t nat –A POSTROUTING –o $OUTER_PORT –s $INNER-NET –j MASQUERADE
#從外部到Lan的連接,許可已經連接的FROWARD
iptables –A FORWARD –i $OUTER_JPORT –o $INNER_PORT –d $INNER_NET –m state \ --state ESTABLISHED,RELATED –j ACCCEPT
#許可LAN到外部的連接
iptables –A FORWARD –I $INNER_PORT –o $OUTER_PORT –s $INNER_NET –m state \ --state NEW,ESTABLISHED,RELATED –j ACCEPT
 
相关阅读 更多 +
排行榜 更多 +
时间日志iLog时间方块

时间日志iLog时间方块

商务办公 下载
豆沙追书

豆沙追书

浏览阅读 下载
京山

京山

购物比价 下载