有关iptables防火墙的疑问,不知如何设置

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

有关iptables防火墙的疑问,不知如何设置

#1

帖子 jjwawa » 2009-08-28 23:34

查了一些iptables的资料,还是有点疑问,概念还不清楚,请教大家 :em03

说明一下自己的网络情况
ADSL猫(好像是常用端口号改了)<----->路由器<----->内网10.0.1.0(单网卡eth1,10.0.1.18)

目标是
因为猫和路由器在房东那不敢动,只要我的机器装防火墙能上网,QQ,MSN,ubuntu更新
SSH我也不知是干啥的 :em04 ,不影响网内的其他电脑使用,防止网内其他人的骚扰

1、局域网内的单客户机可以装iptables?
看到网上的的一些设置大多是iptables作路由防火墙放在局域网之前,但是如在局域网内的单机iptables防火墙
是否也可以发挥一样的强大功能?装了防火墙是否会影响其它机器上网? :em06

2、例子看多了,把自己绕晕了 :em04 ,一块网卡,input和output 的方向老搞不清楚,还有dport,和sport晕阿 :em20
防火墙的具体范围我度搞晕拉 :em19

3、可以临时手动开启和关闭防火墙?万一调试QQ不能用,还有余地时间调整

4、内网怎么表达,是! lo ?还是先要定义个变量什么的 ! $INT_NET (INT_NET=10.0.1.0)

5、网关(猫)和防火墙的通信如何设置? :em20

那如果要上web,是不是这样:
##
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
##
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp ! --syn --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp ! --syn --dport 21 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp ! --syn --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp ! --syn --dport 443 -m state --state NEW -j ACCEPT
##
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 21 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 443 --syn -m state --state NEW -j ACCEPT
上次由 jjwawa 在 2009-08-30 0:30,总共编辑 6 次。
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 有关iptables防火墙的疑问

#2

帖子 jjwawa » 2009-08-29 20:59

自己顶起来 :em06
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 有关iptables防火墙的疑问

#3

帖子 jjwawa » 2009-08-29 21:17

周末都休息了吧 :em02
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 有关iptables防火墙的疑问,不知如何设置

#4

帖子 angelus » 2009-08-30 7:25

iptables可以做网关式防火墙,保护整个网络或某段网络,
也可以做单机防火墙,保护本机安全
单机防火墙,不会影响其他机器的通讯,就像你给自家装防盗门,跟隔壁没关系一样
网关式你可以理解为给小区大门变成防盗门或是只给一楼道安装防盗门,这样结果就会影响整个小区或一楼道人的出入,只有这时候才考虑其他人的通讯问题

根据纵深防御原则,仅仅有网关防火墙并不能算安全了,单机防火墙依然有存在的必要,而且越来越重要了

对与单机防火墙来说,包的进出与网卡接口并不对应,进入包接口与出去包接口往往都是同一网卡
比如你连接WEB,包从eth0接口出去,而别人访问你机器的程序,进入的包依然从eth0接口进入

input,output是iptables中filter表中的两条链,执行保护本机和限制本机的功能
--dport, --sport是iptables语法中匹配数据包的选项,相当与检查一个苹果从什么地方出产的,要买到什么地方去
比如,--sport 80 ,就是匹配这个包是WEB服务器产生的包
--dport 80,代表着这个包的目的地是WEB服务器

lo 是本机的网络回环接口,是127.0.0.1或localhost的带名词
!lo ,一般是为了防止伪装成本机127.0.0.1,而产生接口却不是lo的包

单机防火墙,只要你能上网就可以了,自家防盗门应该不需要和小区防盗门通讯的,两个互不干涉

规则上INPUT写的有点烦琐了,只需要两前两句就可以了,换句话说,就是拒绝所有主动连接本机的包
OUTPUT规则写的不错,属于严格限制本机对外的连接,一般只用在服务器上,个人用有时候会比较麻烦,但如果只上网页就没问题
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
头像
devin
帖子: 189
注册时间: 2008-08-26 22:57
来自: 长沙

Re: 有关iptables防火墙的疑问,不知如何设置

#5

帖子 devin » 2009-08-30 8:42

规则写得太繁琐了,没有这个必要。
其实4句就能搞定

代码: 全选

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
默认策略已经设置成了DROP就没有必要对非法包进行过滤,除了浪费cpu没任何作用,

OUPUT上没必要设置规则,因为从你自己机器发出的包是可信的,除非你的机器已经被别人“搞定了” :em04
i7 2630QM+ 4G ram + 500g hd + arch
11.04装新机器上死机,只好换arch了
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

Re: 有关iptables防火墙的疑问,不知如何设置

#6

帖子 hcym » 2009-08-30 10:46

内核默认开ufw了
sudo ufw default deny
基本够了吧
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 有关iptables防火墙的疑问,不知如何设置

#7

帖子 jjwawa » 2009-08-31 21:49

回复 angelus :
言简意赅,解释很清楚,谢谢你大侠 :em11 :em11 :em11

我修改了,在烦扰你看看看是否正确 :em03

#!/bin/sh
IPTABLES=/sbin/iptables
INTER=10.0.1.0

## flushing the exist iptables rules
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

## input chain
$IPTABLES -A INPUT -m state --state INVALID -j LOG --log-prefix "DROP INVALID " --log-ip-options --log-tcp-options
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## anti-inter
$IPTABLES -A INPUT -i -s $INTER -j DROP 为了防止内网骚扰,不知是否多余?还有本机和网关的通信包是否会丢弃?

## output chain
$IPTABLES -A OUTPUT -m state --state INVALID -j LOG --log-prefix "DROP INVALID " --log-ip-options --log-tcp-options
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 21 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 443 --syn -m state --state NEW -j ACCEPT

这些设置ubuntu的更新安装是否影响?
上次由 jjwawa 在 2009-08-31 22:14,总共编辑 1 次。
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 有关iptables防火墙的疑问,不知如何设置

#8

帖子 jjwawa » 2009-08-31 21:54

hcym 写了:内核默认开ufw了
sudo ufw default deny
基本够了吧
谢谢你,我也去看看 :em11 :em11
我先把理论和概念弄清楚 :em04 ,自己先实践一下iptables,
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 有关iptables防火墙的疑问,不知如何设置

#9

帖子 jjwawa » 2009-08-31 22:03

devin 写了:规则写得太繁琐了,没有这个必要。
其实4句就能搞定

代码: 全选

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
默认策略已经设置成了DROP就没有必要对非法包进行过滤,除了浪费cpu没任何作用,

OUPUT上没必要设置规则,因为从你自己机器发出的包是可信的,除非你的机器已经被别人“搞定了” :em04
不知道我的电脑是否被黑了 :em06 ,先学习严的规则,将来可能再添电脑,本机就做网关防火墙,就不要到房东那拉线付钱哦 :em05 :em05 :em05
回复