最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Linux 防火墙的配置

来源:动视网 责编:小OO 时间:2025-10-03 20:04:55
文档

Linux 防火墙的配置

Linux防火墙——Iptables1、防火墙分类:A、硬件防火墙和软件防火墙●硬件防火墙国外的有ciscoPIX、ASA,junipernetscreen●国内的有联想、天融信等B、软件防火墙:MicrosoftISA和Linux下的iptables用iptables配置防火墙能达到硬件防火墙一样的功能,对于小企业用iptables是理想的选择。对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,
推荐度:
导读Linux防火墙——Iptables1、防火墙分类:A、硬件防火墙和软件防火墙●硬件防火墙国外的有ciscoPIX、ASA,junipernetscreen●国内的有联想、天融信等B、软件防火墙:MicrosoftISA和Linux下的iptables用iptables配置防火墙能达到硬件防火墙一样的功能,对于小企业用iptables是理想的选择。对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,
Linux 防火墙——Iptables

1、防火墙分类:

A、硬件防火墙和软件防火墙

●硬件防火墙国外的有cisco PIX、 ASA,juniper netscreen

●国内的有联想、天融信等

B、软件防火墙:Microsoft  ISA和Linux下的iptables

用iptables配置防火墙能达到硬件防火墙一样的功能,对于小企业用iptables是理想的选择。

对于连接到网络上的Linux 系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,防火墙依靠它所包含的由网络或系统管理员预定义的一组规则。这些规则告诉防火墙某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。

2、什么是iptables

iptables是一种基于包过滤的防火墙。

包过滤:网络流量由IP信息包以流的形式从源系统传输到目的地系统的一些小块数据组成。这些信息包有包头,即在每个包前面所附带的一些数据位,它们包含有关信息包的源、目的地址及协议类型等信息。防火墙根据一组规则检查IP包的头部,以确定接受哪个包或拒绝哪个包。这一过程称之为包过滤。Iptables需要2.4以上版本的内核支持。

Iptables只是一个管理内核包过滤的工具,可以加入、修改或删除核心包过滤表(链)中的规则。实际上真正来执行这些过滤规则的是netfilter(Linux核心中一个通用架构)及其相关模块(如iptables模块和nat模块)。

IP信息包过滤系统由两个组件net filter和iptables组成

net filter组件也称为内核空间(kernel space),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables:是一种工具,也称为用户空间(user space),它使的添加、修改和删除信息包

过滤表中的规则变得更容易。

3、netfilter的工作原理

netfilter是Linux核心中一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链中可以有一条或数条规则(rules)组成。我们可以这样来理解,netfilter是表的容器,表是链的容器,而链又是规则的容器。

系统缺省的表为"filter",该表中包含了INPUT、FORWARD和OUTPUT 3个链。每一条链中可以有一条或数条规则,每一条规则都是这样定义的“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件: 如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。最后,如果该数据包不符合该链中任一条规则的话,系统就会根据该链预先定义的策略(policy)来处理该数据包。

当有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有以下三种情况:

1)、如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉;

2)、如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉;

3)、如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。

4、数据包流向图示

数据包    NAT                   否            filter           NAT

---------->PREROUTING----->路由走向判断--------->FORWARD-------->POSTROUTING-------->

       目标地址转换      |                                   |  源地址转换

                        是|到本机来                           |

                           |                                   |

                     filter | INPUT                        filter | OUTPUT                                           |                                   |

                          |                                   |

                         本机处理—— —— —— —— —— ——

5、Iptables中的表和链

iptables包含下面三种表

1)、filter table,过滤表

2)、nat table,用于地址转换

3)、mangle table,俗称矫正表,我们不做过多讨论

iptables的链

1)、INPUT链:用于处理输入包,即目的地是本地的包。

2)、OUTPUT链:用于处理输出包,即由本地生成的包。

3)、FORWARD链:用于处理转发包,即不是本地产生的且目的地也不是本地包。

4)、PREROUTING链:用于目标地址的转换。

5)、POSTROUTING链:用于源地址的转换

filter table包含INPUT、FORWARD、OUTPUT链

nat table包含PREROUTING、POSTROUTING、OUTPUT链

6、Iptables的语法格式

iptables  [-t table]  command  [match]  [target/jump ]

Command:告诉程序该做什么,如:插入或删除一个规则。

Match:细致地描述了包的某个特点,以使这个包区别于其他包。在这里可以指定包的源IP地址、网络接口、端口、协议类型等。

Target/jump:通过对数据包与所有规则的匹配结果,内核将做出相应的处理。

1)command

●#iptables  -F = --flush             #清除所有规则

●#iptables  -X = --delete-chain        #清除所有自定义规则

●#iptables  - L = --list                #列出当前所有规则

●#iptables  -A = --append             #在所选链的尾追加一条规则

●#iptables  -D = --delete             #从所选链中删除一条规则

●#iptables  –R = --replace             #在所选链中替换一条匹配的规则

●#iptables  –I = --insert             #插入规则

●#iptables  –P = --policy             #指定缺省规则

2)match

●根据源地址进行匹配的 –s  [!]  addr[netmask]

●根据目的地址进行匹配  -d  [!]  addr[netmask]

●根据协议进行匹配的  –p   [!] icmp  |  [!] tcp  |  [!] udp

●根据端口进行匹配,这时必须指定协议,必须是tcp或udp协议。

●根据数据包源端口进行匹配的 --sport  [!] port  --source-port = --sport

●根据封包的目的端口进行匹配  --dport [!] port   --destination-port = --dport

●根据包进入本地所使用的网络接口来匹配包 –i,--in-interface,要注意这个匹配操作只能用于INPUT、FORWARD和PREROUTING这三个链

●根据包离开本地所使用的网络接口来匹配包 -o,--out-interface,只能用于FORWARD, OUTPUT and POSTROUTING

3)target/jump

●ACCEPT        #接受,等于不进行过滤

●DROP         #丢弃,别人可以判断出您的系统使用了防火墙

●REJECT        #弹回,貌似跟本没有打开这端口。

7、Iptables实例

开启server 端的telnet  pop3 smtp http ssh服务 

1)思考题:当client连接server的telnet服务时,client和server各使用什么端口

2)使得只有192.168.16.x和192.168.16.y 的机器可以连接您的pop3服务器。但同一

网段的其他人不行。

3)使用lsmod|grep ip命令,查看内核中iptables modules 的载入情况

4)禁止某一人ping到你,但别人可以

5)使得你不能telnet 到192.168.16.50 ,分别用INPUT 和OUTPUT方法实现。

6)理解下面的脚本

#!/bin/bash

iptables-F;iptables-X; IP=”192.168.16”

iptables -A INPUT -p tcp --dport 110 -s $IP.101 -j ACCEPT

iptables -A INPUT -p tcp --dport 110 -s $IP.102 -j ACCEPT

iptables -A INPUT -p tcp --dport 110 -s $IP.0/24 -j REJECT

iptables -A INPUT -p icmp -s $IP.101 -j REJECT

iptables - A INPUT -s $IP.101 -p tcp—dport 23 -j REJECT

iptables -A INPUT -s $IP.0/24 -p tcp—dport 23 -j ACCEPT

7)下面脚本的用途

for i in nat filter mangle ;do

iptables -t $i  -F

iptables -t $i  -X

done

8)设置缺省策略为INPUT 和OUTPUT拒绝全部,但允许你对你自己的ip地址(192和127)进行任何访问。

9)允许1个指定主机访问本地80和22端口,其他不行

10)把默认策略设为drop,允许自己ping 自己,所有人包括自己能访问自己的80端口

11)当默认策略drop以后,能访问别人的80和22端口

8、常用命令

service iptables status            #状态

service iptables start            #启动

service iptables stop            #关闭

service iptables save           #保存,重启依然生效

9、对前面学过的服务进行控制,允许一部分人访问,拒绝其他人

文档

Linux 防火墙的配置

Linux防火墙——Iptables1、防火墙分类:A、硬件防火墙和软件防火墙●硬件防火墙国外的有ciscoPIX、ASA,junipernetscreen●国内的有联想、天融信等B、软件防火墙:MicrosoftISA和Linux下的iptables用iptables配置防火墙能达到硬件防火墙一样的功能,对于小企业用iptables是理想的选择。对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top