分享
 
 
 

Netfilter/Iptables的防火墙功能介绍

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

防火墙介绍

Disclaimer: 下面描述的有些内容可能不完全正确.但希望对你理解iptables有帮助,如果你发现了错误,请通知我。

注意,此说明是非拷贝的(例如在GPL).如果你想做任何修改、发布、拷贝、引用,请先联系我。(哈哈,不管了)

什么是防火墙?

简单说,防火墙就是用来保护你的网络的一台主机,它对来自internet和你的内网(受保护)之间的通讯进行限制,反过来亦可。

非防火墙功能

误区 - 防火墙并不能保证你的网络绝对安全

堡垒主机(A bastion host)- In an ideal world, this would be true. However, a firewall is only as secure as the work you put into securing it.

主机安全替换(A replacement for host security) - 每一项防火墙允许的服务都是潜在的风险。

使用类型

本地 - 对于在实际的物理连接而言,没有安全可言。很明显,防火墙对此无能为力。

Local privilege escalation - The trojan horse attack. The attacker alreay has a local account on your box (inside the gates) and obtains root by some means (vulnerability or misconfiguration). A firewall cannot protect again this type of attacks.

Remote - Your host is listening on a port that the attacker is able to connect to remotely over a network and exploit a vunerability somehow. This is the only type of attack a firewall can (hopefully) protect you against. There is another important point here that most firewall howtos neglect. In order for someone to exploit your box remotely, it has to be listening on some ports (i.e. providing a way for an attacker to connect). Therefore, if your host isn't listening on any ports, you are safe from remote exploits (unless the attacker manages to attack the network stack itself).

为何需要防火墙?

提高网络安全 - 某些服务有着固有的风险,不可能作到安全性。防火墙可以帮助你提高网段或部分网络的安全性。

网络访问控制 - 防火墙可以强制性的在网络中应用安全规则。

日志记录 - 由于防火墙检测所有入站/出站的网络通讯,它可以记录网络中的活动。

防火墙的类型

代理防火墙 - 代理服务器.

包过滤防火墙 - 检测IP包 (Netfilter).

什么是 Netfilter/Iptables?

Linux 2.4内核中Netfilter是新的用来实现防火墙的. Iptables 是用来指定Netfilter规则的用户工具。

为什么Ipchains被改为Netfilter/Iptables

状态匹配 - 连接跟踪(can you trust the remote host to determine whether your firewall will accept a packet?).

自动碎片重装- Connection tracking automatically reassembles fragmented packets for examination.

改良的匹配规则 - 高级包匹配,例如速率限制、字符串匹配.

增强的日志功能 - 允许自定义日志级别和实体.

允许包撕裂(?mangle) - 允许撕裂包中的任何信息

用户队列Userspace queuing -允许userspace可以对包进行编程.

支持内置包转发 - 舍弃了IPMASQADM.

主要功能

状态包过滤(连接跟踪)

各种网络地址翻译

灵活、易扩展的急智机制

大量的增强型补丁包

Netfilter/iptables可以做什么?

建立Internet防火墙和基于状态的包过滤

用NAT和伪装(masquerading)共享上网

用NAT实现透明代理

和tc+iproute2配合使用可以实现QoS路由

用(mangling)修改IP包头的TOS字段来实现更复杂的功能

安装Iptables

下载

Iptables v1.2.2 (http://netfilter.samba.org/iptables-1.2.2.tar.bz2) md5sum 7d065a5d1e7003a061bece79a88d903

Linux kernel v2.4.5 (http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.5.tar.bz2)

安装提示

注意,在编译、安装iptables之前,不需要编译内核。并且某些内核选项不可用,除非用"make patch-o-matic".

在/usr/src/linux目录中, 'make oldconfig' (在没有.config文件时,'make menuconfig')。

在iptables包的解报目录中, 'make && make install'

打补丁,'make patch-o-matic',推荐只打你需要的补丁。

返回 /usr/src/linux目录, 'make menuconfig' ,选择新的、可用的选项

完成正常的内核编译过程(make dep; make clean; make bzImage)

编译 - Iptales编译一般比较简单

'make && make install' 将在缺省路径/usr/local中做一个最小安装.

'make pending-patches' 将给标准内核打上一些著名的漏洞补丁.

'make patch-o-matic' 将给标准内核打上一些增强功能的补丁.

'make experimental && make install-experimental' 将创建 iptables-save和 iptables-restore 二进制代码.

如果你想修改安装路径,可以带参数'BINDIR=/usr/sbin LIBDIR=/usr/lib MANDIR=/usr/man' 进行编译。 (e.g. 'make BINDIR=/usr/sbin LIBDIR=/usr/lib MANDIR=/usr/man install')

补丁包 - 每个补丁都有新的功能,但几乎每个都有漏洞,因此最好不要全部都安装。

注意: 下面列出的是v1.2.1a版本的,不是最新版本. 你可以用 'make patch-o-matic'命令列出补丁列表来.

CONFIG_IP_NF_TARGET_BALANCE 选项, 类似DNAT:把负载均分到一段地址上。(`--to-dest 1.2.3.4-1.2.3.7')

CONFIG_IP_NF_TARGET_NETLINK, 替代ipchains中的 -o 选项,通过增加一个NETLINK目标,把丢弃的包发往用户空间

CONFIG_IP_NF_TARGET_SAME ,类似SNAT,利用一段地址(`--to-source 1.2.3.4-1.2.3.7'),对客户端的每个连接给相同的地址.

CONFIG_IP_NF_TARGET_TTL ,允许用户修改IP包中的TTL值。

CONFIG_IP_NF_MATCH_AH_ESP, 支持两个扩展匹配(`ah' and `esp'),允许在IPSec包中的AH或者ESP包头中匹配一段SPI范围

CONFIG_IP_NF_DROPTABLE . 将要被丢弃的包将通过这个表,来允许做日志记录,(此补丁有漏洞)

CONFIG_IP_NF_EGG: 连接跟踪。Connection tracking for eggdrop bot networks.

CONFIG_IP_NF_TARGET_FTOS ,允许你任意设置TOS值。从0x0-0xff

ftp-multi.patch 允许ftp连接跟踪和地址翻译到最多8个端口。在ip_conntrack_ftp和ip_nat_ftp模块中用 `ports='选项. 不然,将使用缺省21端口。另外,它还支持FXP(direct FTP 2 FTP transport).使用模块载入参数`fxp=1`可以来支持FXP

ftp-pasv-fix.patch :可以在使用ip_conntrack_ftp.o模块的情况下,在FTP服务器上实现状态类型防火墙功能

CONFIG_IP_NF_MATCH_IPLIMIT 允许限制每个客户端(每个IP)并发TCP连接的最大个数

例如:

#每个客户端最多允许2个telnet连接

iptables -p tcp -dport 23 -m iplimit --iplimit-above 2 -j REJECT

# you can also match the other way around:

iptables -p tcp -dport 23 -m iplimit ! --iplimit-above 2 -j ACCEPT

# 每个C类地址允许的http连接的并发最大个数为16

iptables -p tcp -dport 80 -m iplimit --iplimit-above 16 --iplimit-mask 24 -j REJECT

#允许每个IP地址可同时发起4个HTTP连接

iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-above 4 -j REJECT

#允许整个A类地址中每个地址的HTTP访问为4

iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-mask 8 --iplimit-above 4 -j REJECT

CONFIG_IP_NF_IRC: IRC支持模块,允许 DCC和NAT、连接跟踪一起工作。此补丁依赖丢弃表(dropped-table)和段偏移(seqoffset).

masquerade+fwmark.patch :一种复杂的路由设置,依靠防火墙的标记来路由,和 MASQUERADE NAT target组合来用

nat+conntrack-hashsize.patch 设置连接跟踪代码和NAT代码中的模块参数(hashsize=xxx) hash表的大小,NAT的缺省值为内存的

1/16384(对于大多数机器来说,比先前的缺省值64好多了).

CONFIG_IP_NF_POOL, 提供了一种从IP地址段中的一个位的位映射,它依赖于源或目的地址是否在地址池中设置了位。它也提供了一个目标池

CONFIG_IP_NF_MATCH_PSD, 支持端口扫描检测(PSD:PortScanDetection). 可以检测TCP和UDP端口扫描. 它源自Solar Designer大 scanlogd.

支持的选项:

--psd-weight-threshold

从同一主机发往不同目的端口的TCP/UDP包的总的优先级,被用来作为端口扫描次序

--psd-delay-threshold

由同一主机发往不同目的端口的包的延迟 (in hundredths of second) ,用来作为可能的端口扫描子次序

--psd-lo-ports-weight

特权目的端口的优先级,即目标端口(

--psd-hi-ports-weight

非特权目的端口的优先级(1024).

举例:iptables -A INPUT -m psd -j DROP

CONFIG_IP_NF_MATCH_RPC,支持两个模块ip_conntrack_rpc_udp和ip_conntrack_rpc_tcp(用来分别跟踪UDP和TCP的端口映射请求),在iptabIe 中添加record_rpc(用来匹配是否包的源地址已经发过端口映射请求,或者是一个新的发往端口映射的GET请求,以允许RPC过滤)

seqoffset.patch - 新的NAT中的 API 函数. 此API函数隐藏了所有的协议翻译(例如:ftp/irc)中的包重

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有