最新文章专题视频专题问答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
当前位置: 首页 - 正文

防火墙的设置

来源:动视网 责编:小OO 时间:2025-09-28 12:42:00
文档

防火墙的设置

7.3.1Netfilter/iptables简介netfilter/iptables允许为防火墙建立可定制的规则来控制数据包过滤,并且还允许配置有状态的防火墙。netfilter/iptables还可以实现NAT(网络地址转换)和数据包的分割等功能。netfilter组件也称为内核空间。iptables组件是一种工具,也称为用户空间,它使插入、修改和删除数据包过滤表中的规则变得容易。使用用户空间(iptables)构建自己定制的规则,这些规则存储在内核空间的过滤表中。这些规则中的目标告诉内核
推荐度:
导读7.3.1Netfilter/iptables简介netfilter/iptables允许为防火墙建立可定制的规则来控制数据包过滤,并且还允许配置有状态的防火墙。netfilter/iptables还可以实现NAT(网络地址转换)和数据包的分割等功能。netfilter组件也称为内核空间。iptables组件是一种工具,也称为用户空间,它使插入、修改和删除数据包过滤表中的规则变得容易。使用用户空间(iptables)构建自己定制的规则,这些规则存储在内核空间的过滤表中。这些规则中的目标告诉内核
7.3.1 Netfilter/iptables简介

netfilter/iptables允许为防火墙建立可定制的规则来控制数据包过滤,并且还允许配置有状态的防火墙。

netfilter/iptables还可以实现NAT(网络地址转换)和数据包的分割等功能。

netfilter组件也称为内核空间。

iptables组件是一种工具,也称为用户空间,它使插入、修改和删除数据包过滤表中的规则变得容易。

使用用户空间(iptables)构建自己定制的规则,这些规则存储在内核空间的过滤表中。这些规则中的目标告诉内核,对满足条件的数据包采取相应的措施。 

根据规则处理数据包的类型,将规则添加到不同的链中。

处理入站数据包的规则被添加到INPUT链中。

处理出站数据包的规则被添加到OUTPUT链中。

处理正在转发的数据包的规则被添加到FORWARD链中。

这三个链是数据包过滤表(filter)中内置的缺省主规则链。每个链都可以有一个策略,即要执行的缺省操作,当数据包与链中的所有规则都不匹配时,将执行此操作(理想的策略应该丢弃该数据包)。 

数据包经过filter表的过程如图7-43所示。

图7-43  数据包经过Filter表的过程

7.3.2 iptables的语法及其使用

添加、删除和修改规则的命令语法如下:

#iptables [-t table] command [match] [target] 

1.table

[-t table]有三种可用的表选项:filter、nat和mangle。该选项不是必需的,如未指定,则filter作为缺省表。 

filter表用于一般的数据包过滤,包含INPUT、OUTPUT和FORWARD链。

nat表用于要转发的数据包,包含PREROUTING、OUTPUT和POSTROUTING链。

mangle表用于数据包及其头部的更改,包含PREROUTING和OUTPUT链。

2.command

command是iptables命令中最重要的部分,它告诉iptables命令要进行的操作,如插入规则、删除规则、将规则添加到链尾等等。常用的一些命令见表7-3:

表7-3  iptables常用命令

操作命令功能
-A 或 --append

该命令将一条规则附加到链的末尾
-D 或 --delete

通过用-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则

-P 或 --policy

该命令设置链的缺省目标,即策略。所有与链中任何规则都不匹配的数据包都将被强制使用此链的策略
-N 或 --new-chain

用命令中所指定的名称创建一个新链
-F 或 --flush

如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除
-L 或 --list

列出指定链中的所有规则
示例:

#iptables -A INPUT -s 192.168.0.10 -j ACCEPT 

该命令将一条规则附加到 INPUT 链的末尾,确定来自源地址 192.168.0.10 的数据包可以 ACCEPT。 

#iptables -D INPUT --dport 80 -j DROP

该命令从INPUT链删除规则。 

#iptables -P INPUT DROP 

该命令将INPUT链的缺省目标指定为 DROP。这将丢弃所有与INPUT链中任何规则都不匹配的数据包。 

3.match

match部分指定数据包与规则匹配所应具有的特征,比如源IP地址、目的IP地址、协议等。常用的规则匹配器见表7-4:

示例:

#iptables -A INPUT -p TCP,UDP

#iptables -A INPUT -p ! ICMP 

#iptables -A OUTPUT -s 192.168.0.10

#iptables -A OUTPUT -s ! 210.43.1.100 

#iptables -A INPUT -d 192.168.1.1

#iptables -A OUTPUT -d ! 210.43.1.100 

4.target

目标是由规则指定的操作,常用的一些目标和功能说明见表7-5:

5.保存规则

用上述方法建立的规则被保存到内核中,这些规则在系统重启时将丢失。如果希望在系统重启后还能使用这些规则,则必须使用iptables-save命令将规则保存到某个文件(iptables-script)中。

#iptables-save > iptables-script

执行如上命令后,数据包过滤表中的所有规则都被保存到iptables-script文件中。当系统重启时,可以执行iptables-restore iptables-script命令,将规则从文件iptables-script中恢复到内核空间的数据包过滤表中。

7.3.3防火墙的设置

实例7-2 设置防火墙

在终端窗口执行system-config-securitylevel命令,打开【安全级别设置】窗口,如图7-44所示。可以启用或停用防火墙。

下面是一个iptables的脚本实例,读者要根据自己的环境需求进行相应的调整。

#!/bin/bash

INET_IF="ppp0"    #接口

LAN_IF="eth0"        #内网接口

LAN_IP_RANGE="192.168.1.0/24"    #内网IP地址范围,用于NAT

IPT="/sbin/iptables"                #定义变量

MODPROBE="/sbin/modprobe"

$MODPROBE ip_tables            #下面9行加载相关模块

$MODPROBE iptable_nat

$MODPROBE ip_nat_ftp

$MODPROBE ip_nat_irc

$MODPROBE ipt_mark

$MODPROBE ip_conntrack

$MODPROBE ip_conntrack_ftp

$MODPROBE ip_conntrack_irc

$MODPROBE ipt_MASQUERADE

for TABLE in filter nat mangle ; do    # 清除所有防火墙规则

$IPT -t $TABLE -F

$IPT -t $TABLE -X

done

$IPT -P INPUT  DROP            #下面6行设置filter和nat表的默认策略

$IPT -P OUTPUT  ACCEPT

$IPT -P FORWARD  DROP

$IPT -t nat -P PREROUTING  ACCEPT

$IPT -t nat -P POSTROUTING  ACCEPT

$IPT -t nat -P OUTPUT  ACCEPT

#允许内网samba、smtp和pop3连接

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -p tcp -m multiport --dports 1863,443,110,80,25 -j ACCEPT

$IPT -A INPUT -p tcp -s $LAN_IP_RANGE --dport 139 -j ACCEPT

#允许dns连接

$IPT -A INPUT -i $LAN_IF -p udp -m multiport --dports 53 -j ACCEPT

#为了防止Dos攻击,可以最多允许15个初始连接,超过的将被丢弃

$IPT -A INPUT -s $LAN_IP_RANGE -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -i $INET_IF -p tcp --syn -m connlimit --connlimit-above 15 -j DROP

$IPT -A INPUT -s $LAN_IP_RANGE -p tcp --syn -m connlimit --connlimit-above 15 -j DROP

#设置icmp阈值,记录攻击行为

$IPT -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "

$IPT -A INPUT -p icmp -m limit --limit 6/m -j ACCEPT

$IPT -A INPUT -p icmp -j DROP

#开放的端口

$IPT -A INPUT -p TCP -i $INET_IF --dport 21 -j ACCEPT        # FTP

$IPT -A INPUT -p TCP -i $INET_IF --dport 22 -j ACCEPT        # SSH

$IPT -A INPUT -p TCP -i $INET_IF --dport 25 -j ACCEPT        # SMTP

$IPT -A INPUT -p UDP -i $INET_IF --dport 53 -j ACCEPT        # DNS

$IPT -A INPUT -p TCP -i $INET_IF --dport 53 -j ACCEPT        # DNS

$IPT -A INPUT -p TCP -i $INET_IF --dport 80 -j ACCEPT        # WWW

$IPT -A INPUT -p TCP -i $INET_IF --dport 110 -j ACCEPT        # POP3

#禁止BT连接

$IPT -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -m ipp2p --edk --kazaa --bit -j DROP

$IPT -A FORWARD -p tcp -m ipp2p --ares -j DROP

$IPT -A FORWARD -p udp -m ipp2p --kazaa -j DROP

#只允许每组ip同时15个80端口转发

$IPT -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 24 -j DROP

#MAC、IP地址绑定

$IPT -A FORWARD -s 192.168.0.1 -m mac --mac-source 00:E2:34:A1:56:C2 -p tcp --dport 80 -j ACCEPT

$IPT -A FORWARD -s 192.168.0.10 -m mac --mac-source 00:22:DA:32:C1:8B -p tcp --dport 80 -j ACCEPT

$IPT -A FORWARD -s 192.168.0.62 -m mac --mac-source 00:0C:A1:2E:BC:16 -p tcp --dport 80 -j ACCEPT

$IPT -A FORWARD -s 192.168.0.254 -m mac --mac-source 00:0D:E3:F2:C2:56 -p tcp --dport 80 -j ACCEPT

# 禁止192.168.0.22使用QQ

$IPT -t mangle -A POSTROUTING -m layer7 --l7proto qq -s 192.168.1.12/32 -j DROP

$IPT -t mangle -A POSTROUTING -m layer7 --l7proto qq -d 192.168.1.12/32 -j DROP

# 禁止192.168.0.22使用MSN

# $IPT -t mangle -A POSTROUTING -m layer7 --l7proto msnmessenger -s 192.168.0.22/32 -j DROP

# $IPT -t mangle -A POSTROUTING -m layer7 --l7proto msnmessenger -d 192.168.0.22/32 -j DROP

#192.168.0.22流量

$IPT -t mangle -A PREROUTING -s 192.168.0.22 -j MARK --set-mark 30

$IPT -t mangle -A POSTROUTING -d 192.168.0.22 -j MARK --set-mark 30

文档

防火墙的设置

7.3.1Netfilter/iptables简介netfilter/iptables允许为防火墙建立可定制的规则来控制数据包过滤,并且还允许配置有状态的防火墙。netfilter/iptables还可以实现NAT(网络地址转换)和数据包的分割等功能。netfilter组件也称为内核空间。iptables组件是一种工具,也称为用户空间,它使插入、修改和删除数据包过滤表中的规则变得容易。使用用户空间(iptables)构建自己定制的规则,这些规则存储在内核空间的过滤表中。这些规则中的目标告诉内核
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top