新手的 iptables 设置

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
zhudachang
帖子: 40
注册时间: 2007-06-25 8:19
来自: 德国

新手的 iptables 设置

#1

帖子 zhudachang » 2007-06-29 23:50

使用 ubuntu 已经有两个星期了, 才忽然发现原来一直都没有安装防火墙, 赶紧去找些资料看看, 下面给出我自己的 iptables 设置, 供和我一样新来的兄弟们参考,水平有限,多多指教。(对于防火墙的设置,有两种策略:一种是全部通讯口都允许使用,只是阻止一些我们知道的不安全的或者容易被利用的口;另外一种,则是先屏蔽所有的通讯口,而只是允许我们需要使用的通讯端口。这里使用的是第二种原则,如果你需要开启其他端口,请先参考计算机通讯口说明,然后自己添加。)

代码: 全选

#删除原来 iptables 里面已经有的规则
iptables -F
iptables -X

#抛弃所有不符合三种链规则的数据包
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#设置:本地进程 lo  的 INPUT 和 OUTPUT 链接 ; eth1的 INPUT链
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state --state NEW,INVALID -j LOG
iptables -A OUTPUT -o lo -j ACCEPT

#对其他主要允许的端口的 OUTPUT设置:
# DNS
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 1024:65535 --dport 53 -j ACCEPT

#HTTP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 80 -j ACCEPT

#HTTPS
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 443 -j ACCEPT

#Email 接受 和发送
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 110 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 25 -j ACCEPT

# FTP 数据和控制
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 20 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 21 -j ACCEPT

#DHCP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 68 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 1024:65535 --dport 68 -j ACCEPT

#POP3S Email安全接收
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 995 -j ACCEPT

#时间同步服务器 NTP
iptables -A OUTPUT -o eth1 -p TCP --sport 1024:65535 --dport 123 -j ACCEPT

#拒绝 eth1 其他剩下的
iptables -A OUTPUT -o eth1 --match state --state NEW,INVALID -j LOG
最后是有关于iptables存储的命令:

代码: 全选

iptables-save > /etc/iptables.up.rule # 存在你想存的地方

代码: 全选

iptables-restore < /etc/iptables.up.rules #调用
因为iptables 在每次机器重新启动以后,需要再次输入或者调用,为了方便操作,使用

代码: 全选

sudo gedit /etc/network/interfaces

代码: 全选

 auto ath0
       iface ath0 inet dhcp
后面加上

代码: 全选

pre-up iptables-restore < /etc/iptables.up.rules #启动自动调用已存储的iptables

代码: 全选

post-down iptables-save > /etc/iptables.up.rule #关机时,把当前iptables 储存
chasye
帖子: 333
注册时间: 2007-05-13 15:20

#2

帖子 chasye » 2007-06-30 19:15

这个都不是给个人电脑用的
个人用:

iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

iptables -P INPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

这样就可以了
zhudachang
帖子: 40
注册时间: 2007-06-25 8:19
来自: 德国

#3

帖子 zhudachang » 2007-06-30 20:03

经过大半天的努力,总算是了解了一些,呵呵,
首先多谢大大帮助,让我又有了找答案的动力,
现在的总算基本满意了,谢谢

PS: 不过大大给的这个也是太简陋了点,呵呵
2007年6月进入 Linux 世界,你可以嘲讽我的无知与浅薄,但是你不能否定我的努力和不断进步。
zhengdsp
帖子: 18
注册时间: 2007-05-18 13:11

Re: 新手的 iptables 设置

#4

帖子 zhengdsp » 2007-07-28 15:00

代码: 全选

pre-up iptables-restore < /etc/iptables.up.rules #启动自动调用已存储的iptables

~~~~~~~~~~

代码: 全选

post-down iptables-save > /etc/iptables.up.rule #关机时,把当前iptables 储存
[/quote]

刚想让机器重起能自动加载规则,但把"<"抄成">"了,再重起在网络配置那就卡住了,起不来了,请问各位现在我怎样能进去?
loosky
帖子: 34
注册时间: 2007-08-22 11:38

#5

帖子 loosky » 2007-08-24 12:53

支持一个
ubuntu289
帖子: 97
注册时间: 2007-08-11 16:28

#6

帖子 ubuntu289 » 2007-08-25 19:07

支持~~
头像
XEUY
帖子: 247
注册时间: 2007-08-20 8:13
联系:

#7

帖子 XEUY » 2008-04-10 18:37

在学习Iptable.....
头像
sancome
帖子: 8
注册时间: 2008-04-13 12:43

#8

帖子 sancome » 2008-04-13 13:51

楼主总结的不错,iptables的确是很好的东西,就看会不会用了,呵呵
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#9

帖子 hubert_star » 2008-04-13 14:20

我觉得最好的规则如下:

-A INPUT -i eth0 -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j DROP

也就是说除了ssh以外,禁止所有的连接请求,当然lo是全开的

然后就是配置ssh增强安全性了

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT这句在配置文件里可以不要,如果手动给规则的话最好第一个加上这句
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
tigerdoo
帖子: 327
注册时间: 2006-11-17 23:02

#10

帖子 tigerdoo » 2008-04-17 23:16

在同一条规则里似乎不能同时存在--sport和--dport吧
IBM T41-P4M 1.5G/1GB/40GB HDD/DVD/14.1TFT/IPW2100 & 10-100M
OS:Xubuntu 11.10
生活就是折腾
活在成都
使用update-rc.d管理Linux服务
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

#11

帖子 hcym » 2008-04-17 23:22

现在的规则总算基本满意了
:roll:
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

#12

帖子 hcym » 2008-04-18 11:06

hubert_star 写了:我觉得最好的规则如下:

-A INPUT -i eth0 -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j DROP

也就是说除了ssh以外,禁止所有的连接请求,当然lo是全开的

然后就是配置ssh增强安全性了

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT这句在配置文件里可以不要,如果手动给规则的话最好第一个加上这句

ssh都不要,又该如何简化规则,强化安全性

:shock:

代码: 全选

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [22:2359]
-A INPUT -i ppp0 -p tcp -m tcp --sport 80 -j ACCEPT 
-A INPUT -i ppp0 -p udp -m udp --sport 53 -j ACCEPT 
-A INPUT -m state --state NEW -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j DROP 
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP 
-A INPUT -j DROP 
-A INPUT -i -s -j DROP 
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu 
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING DROP [34:4158]
:OUTPUT ACCEPT [22:2359]
-A POSTROUTING -o ppp0 -j MASQUERADE 
COMMIT
jjh_79
帖子: 1
注册时间: 2009-05-08 10:47

Re: 新手的 iptables 设置

#13

帖子 jjh_79 » 2009-05-12 9:33

刚刚准备入门iptables 学习中阿。有没有基础的教程。阿
taylor
帖子: 41
注册时间: 2008-05-28 18:15

Re: 新手的 iptables 设置

#14

帖子 taylor » 2009-05-12 11:50

jjh_79 写了:刚刚准备入门iptables 学习中阿。有没有基础的教程。阿
man iptables是最基础的
头像
dwl301
帖子: 1130
注册时间: 2007-04-14 11:17

Re: 新手的 iptables 设置

#15

帖子 dwl301 » 2009-06-19 11:41

收藏。。。
回复