为什么 iptables 规则没有自动执行

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
la ubuntu
帖子: 150
注册时间: 2008-05-29 20:48
送出感谢: 0
接收感谢: 0

为什么 iptables 规则没有自动执行

#1

帖子 la ubuntu » 2008-12-10 23:00

我把编写的规则拷贝到 etc/rc.local 里面

rc.local 的内容如下:

#!/bin/bash -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

iptables -F
iptables -P INPUT DROP
# 清除所有防火牆規則,並建立全部阻擋封包進入

# blow only 4 eth1 internet
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
# 因特網的禁止內網登錄
# eth1 介面,進入方向,來源 192.168.0.0/24,封包丟棄

iptables -A INPUT -i lo -j ACCEPT
# lo 所產生的 port 都允許接受

iptables -A INPUT eth1 -p icmp --icmp-type 8 -j DROP
iptables -A INPUT eth1 -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT eth1 -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT eth1 -p icmp --icmp-type 3/3 -j ACCEPT
iptables -A INPUT eth1 -p icmp --icmp-type 3/4 -j ACCEPT
# 對於 ping 要求的封包全部拒絕,不過對於自己發出去的 ping 封包要接受
# p2p icmp allow type 0 reply 8 request 11 timeexceed 3/3 port Unreachable 3/4 fragmentation needed and don't

iptables -A INPUT -i eth1 -p tcp i --dport 6881-j ACCEPT
iptables -A INPUT -i eth1 -p udp i --dport 6882 -j ACCEPT
# p2p ports allow in

iptables -A INPUT -i eth1 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -i eth1 -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -i eth1 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -i eth1 -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -i eth1 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -i eth1 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# 檔掉 scan port 的程式

iptables -A INPUT -i eth1 -m state --state RELATED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state --state NEW,INVALID -j DROP
# 不正確的封包檔掉
# upon only 4 eth1 internet

# blow only 4 eth0 local
iptables -A INPUT -i eth0 -s ! 192.186.0.0/24 -j DROP
# 內網的禁止因特網訪問 (非內網的網段)
# eth0 介面,進入方向,來源「不是」192.186.0.0/255,封包丟棄

for port in 20 21 22 80
do
iptables -A INPUT -i eth0 -p tcp --dport $port -j ACCEPT
done
# 開放 ftp (20,21) ,ssh (22),http (80) tcp port

for uport in 22 53
do
iptables -A INPUT eth0 -p udp --dport $uport -j ACCEPT
done
# 開放 ssh (22),bind (53) udp port
# 請參考 /etc/services
# upon only 4 eth0 local

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 對於自己所產生的連線,並且後續的要求封包都接受

exit 0


然而重新启动后 ,iptables 的规则依然是默认的,而不是这个。
头像
xc1427
帖子: 276
注册时间: 2008-10-11 4:11
来自: 瑞金无线电学校
送出感谢: 0
接收感谢: 0
联系:

Re: 为什么 iptables 规则没有自动执行

#2

帖子 xc1427 » 2009-01-03 3:04

你可以先用iptables命令定下一系列防火墙规则。
然后在root权限下,
保存防火墙设置:

代码: 全选

# iptables-save > /root/iptables
每次开机
载入防火墙设置:

代码: 全选

# iptables-restore < /root/iptables
You never know if you don't try
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
送出感谢: 0
接收感谢: 0
联系:

Re: 为什么 iptables 规则没有自动执行

#3

帖子 Jarson » 2009-01-03 11:12

学习了~~
回复

回到 “网卡问题以及网络和拨号”