2010年10月15日星期五

2010年10月14日星期四

成功将blog从wordpress转移到blogger

庆祝一下!

虽然还不是很完美,但是基本内容保存了。

稍后再整理吧。

2010年10月13日星期三

netfilter/iptables配置入门

NetFilter/IPtables
1.概述
Linux内核2.4版继承了一项防火墙功能,netfilter/iptables,前者是内核空间的,后者是用户空间的工具。
通常,netfilter/iptables提供了三条链
INPUT    系统向外发出的包
OUTPUT    从外面进入系统的包
FORWARD    从外面解收到的要到另一个外部系统的包
netfilter/iptables首先会检查包头中的源和目的地址来判断应该由哪一条链来处理。每一条链可以定义很多策略,处理本链中的包时,依次对策略进行匹配,如果都不成功,则使用默认策略,如ACCEPT,DROP,REJECT
2.安装netfilter/iptables
2.1.配置内核
netfilter/iptables需要配置内核中的一些选项
Networking support—->
Networking options——->
Network packet filtering framework(Netfilter) —–>
2.2.安装
在Gentoo下,默认是没有安装iptables的,因为它是用户空间的程序,接下来安装iptables
#emerge iptables
或手动下载源码包安装,只要参看了README,安装都不是问题。
安装iptables,然后加入到默认运行级别
#rc-update add iptables default
可以加入运行级别的服务都在/etc/init.d/目录下,而可用的运行级别在/etc/runlevels/目录下
注意:在Gentoo中,没有chkconfig可用,而是是用rc-update来管理。
3.建立规则和莲
$iptables [-t tables] command [match] [target]
#iptables -A -s 203.208.37.160 -j DROP
#/etc/init.d/iptables status 默认没有启动,然后启动
#/etc/init.d/iptables start,显示的结果如下:
* Not starting iptables.  First create some rules then run:
* /etc/init.d/iptables save
表示,要首先创建一些规则,然后执行/etc/init.d/iptables save,然后才能启动iptables
#/etc/init.d/iptables save
#/etc/init.d/iptables start
-D –delete    删除rule
#iptables -D OUTPUT 3
#iptables -D INPUT –dport 80 -j DROP
-P –policy    设置默认动作
#iptables -P INPUT ACCEPT
-N –new-chain    创建新的链
#iptables -N allowed-chain
-F –flush    清除指定链或所有链的规则
#iptables -F allowed-chain
#iptables -F
-L –list    列出指定链或所有链中所有的rules
#iptables -L INPUT
#iptables -L
4.匹配(match)
匹配分为两大类:通用匹配和特定于协议的匹配。
-p –protocol    指定协议,!表示不匹配,默认为ALL
#iptables -A INPUT -p TCP
#iptables -A INPUT -p ! ICMP或者
#iptables -A INPUT ! -p ICMP,iptables推荐使用后一种方式
-s –source    匹配IP源地址
-d –destination    匹配IP目的地址
源和目的地址都可以是用! -s IP[/mask]的形式
5.目标(target)
-j –jump target,target值如下:
ACCEPT    当匹配规则时接收
DROP    当匹配规则时,阻塞该信息包,并不对它做进一步处理
REJECT    工作同DROP,但是,REJECT不会在服务器和客户机上留下死套接字。另外,REJECT将错误消息发送给信息包发送发。
RETURN    当包匹配时,即停止往后遍历包含该规则的链(不是rules),即刻是用当前规则或链的默认策略
(只有主链才能设置默认策略)
另外还有一些高级规则:
LOG
REDIRECT
MARK
MIRROR
MASQERADE等
6.保存规则
当我们建立了规则以后,这些规则就存在内核中了,但是下次重新启动时,这些规则会自动丢失,所以下面就要保存定义好的规则
#iptables-save>iptables-rules
iptables-rules是一个文本文件。
下次启动后是用下面命令来启用配置
#iptables-restore iptables-rules
当然,你可以将这条命令加入到启动脚本中,在ubuntu中是/etc/rc.local。而在Gentoo中就是/etc/conf.d/local.start。
7.filter/iptables的优点
netfilter/iptables可以配置有状态防火墙,这里有四种有效状态:
ESTABLISHED  已经建立连接
INVALID     该包和任何连接都不相关,可能包含有错误的数据或头
NEW         该包已经或将要启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联
RELATED     该包正在启动新连接,或者与已建立的连接相关联