当前位置:文档之家› linux 构建一个独立的防火墙

linux 构建一个独立的防火墙

linux 构建一个独立的防火墙
linux 构建一个独立的防火墙

CIW课程之

用LINUX AS构建和安装一个独立的防火墙

防火墙架设前的知识点补充

防火墙支持状态过滤。状态主要有以下四种:

NEW说明这个包是我们看到的第一个包。意思就是,这是

conntrack(内核包跟踪)模块看到的某个连接第一个包,它即

将被匹配了。比如,我们看到一个SYN 包,是我们所留意的连

接的第一个包,如UDP包,就要匹配它Array

ESTABLISHED在两个方向上的数据传输。即只需要接到应答包

即可,不管这个包是发往防火墙的,还是要由防火墙转发的。

ICMP的错误和重定向等信息包也被看作是ESTABLISHED,只要

它们是我们所发出的信息的应答就认为是此状态。

RELATED是个比较麻烦的状态。当一个连接和某个已处于

ESTABLISHED状态的连接有关系时,就被认为是RELATED的了。

换句话说,一个连接要想是RELATED的,首先要有一个

ESTABLISHED的连接。这个ESTABLISHED连接再产生一个主连

接之外的连接,这个新的连接就是 RELATED的了,当然前提是

conntrack模块要能理解RELATED。ftp是个很好的例子,FTP-data 连接就是和FTP-control有关的一个RELATED

INVALID说明数据包不能被识别属于哪个连接或没有任何状

态。有几个原因可以产生这种情况,比如,内存溢出,收到不知属于哪个连接的ICMP 错误信息。一般地,我们DROP这个状态的任何东西。

本章所建立的防火墙是基于“禁止一切”的默认策略的。按照默认的情况,所有的网络数据流都被禁止,服务作为策略的例外来单独启用。

对于单系统的家庭或是小型商业用户配置,假设大多用户都使用一个单独的计算机来连接Internet,或用单个防火墙来保护一个小型的专用的局域网。之所以这样假设是因为这样的站点一般不会去花更多资金来扩展原有系统结构以构建更高级的防火墙。

“最小安全”并不是“不安全”,这种“最小保护”防火墙只是比拥有较多机器的更复杂的防火墙稍差一些。安全性是一种可利用的资源与逐渐减少的回报之间的均衡。如果要求更高的安全性,付出更多的投入,不一定能在效益上有相应倍数的提高。

日后我们会介绍更多的安全配置,以提供保护较为复杂的局域网的附加内部安全性,也提供比单系统防火墙更安全的服务器配置。

作为防火墙的管理程序,iptables为输入和输出规则链建立单独的数据包过滤规则以组成防火墙。定义防火墙规则的一个重要方面就是规则的定义顺序。

数据包过滤规则以它们被定义的顺序存储在内核的输入、输出或转发规则链中。单个规则被插入到链的开头或添加到链的结尾。本章例子中的所有规则都是添加到链的结尾的

本章所有过滤器的例子中使用的是数字服务端口号而不是它们的符号名称,如在/etc/services中列出的那样。iptables支持符号化的服务端口名称,之所以不使用符号名称而使用数字是因为在Linux的不同版本中符号名称不太统一

本章将会用到一个名为rc.firewall的脚本,这个脚本的位置依赖于Linux调用该脚本的方式而不同。例如,在Red Hat,或SUSE系统中,此脚本位于/etc/rc.d目录;但在Debian 中,它位于/etc/init.d目录。鉴于用到的shell语法可能不同,在例子中会用Bourne(sh)或Bourne Again(bash)shell的语法来编写。

脚本应该以“shebang”开头来调用shell作为脚本的解释程序。脚本中的第一行如下:#!/bin/sh

定制还是购买Linux内核

最好不要在防火墙运行X Window,进一步说,最好不要安装。因为一般这个软件没有太多用处,而且曾被用做攻击服务器的途径。

有人需要从成百上千英里以外的某地方控制一台Linux计算机,和他们一样,我也要从很远的地方启动防火墙脚本,在这种情况下,最好做两项准备:首先,将防火墙脚本开始的一个或几个执行动作的默认策略定为接受,这样做是为了调试脚本,而不是规则语法即是如此。在脚本被调试正确后,再将策略改回为丢弃策略。

其次非常重要的一点是,在从远程执行防火墙脚本时,最好设置corn作业,使防火墙可以在不久后的某一时间停止下来。这样可以有效地允许你启用防火墙并进行一些测试,并且,当存在错误设置的(或者丢失的)规则时,不至于将你锁在计算机外面而无法返回与计算机的连接。

临时客串知识点:

Linux 技巧: 用cron 和at 调度作业

系统管理员需要在系统负载低的午夜运行作业,或者需要每天或每月运行作业,同时又不愿意牺牲睡眠时间或假期。调度任务的其他原因包括自动执行日常任务或者确保每次都以相同的方式处理任务。本文帮助您使用cron和at功能调度作业定期运行或在指定的时间运行一次。

以一定的时间间隔运行作业

以一定的时间间隔运行作业需要使用cron设施进行管理,它由crond守护进程和一组表(描述执行哪些操作和采用什么样的频率)组成。这个守护进程每分钟唤醒一次,并通过检查crontab 判断需要做什么。用户使用crontab命令管理crontab。crond守护进程常常是在系统启动时由init 进程启动的。

为了简单,假设希望定期运行清单1 所示的命令。这个命令实际上只报告日期和时间,其他什么事都不做,但是它可以说明如何使用crontab设置cron 作业,而且还可以通过输出看到作业运行的时间。设置crontab 条目需要一个包含转义的shell 元字符的字符串,所以适合于简单的命令和参数。在这个示例中,将从脚本/home/ian/mycrontab.sh 运行echo命令,这个脚本不需要参数。这可以减少处理转义字符的工作。

创建crontab

使用crontab命令和-e(表示“edit”)选项创建crontab。这会打开vi编辑器,除非在EDITOR 或VISUAL 环境变量中指定了另一种编辑器。

每个crontab 条目包含六个字段:

1. 分钟

2. 小时

3. 日

4. 月

5. 星期

6. 由sh执行的字符串

分钟和小时的范围分别是0-59 和0-12,日和月的范围分别是1-31 和1-12。星期的范围是0-6,0 表示星期日。星期也可以指定为sun、mon、tue 等等。第6 个字段包含前5 个字段之后的所有内容,它是要传递给sh的字符串。百分号(%)将转换为空行,所以如果要使用% 或其他任何特殊字符,就要在前面加上反斜线(\)。第一个% 之前的一行传递给shell,这个% 之后的所有行都作为标准输入传递。

各个与时间相关的字段可以指定一个单独的值、值的范围(比如0-10 或sun-wed)或者以逗号分隔的单独值和范围列表。清单2 给出一个crontab 条目示例。

在这个示例中,我们的命令在7 月的每个星期五和星期六晚上10 点到午夜之间的第0、20、40 分钟(每20 分钟)执行。

crontab 存储在哪里?

用crontab 命令创建的crontab 存储在/etc/spool/cron 下面的一个子目录中,这个子目录与创建crontab 的用户同名,所以上面的crontab 存储在/etc/spool/cron/ian 中。

在指定的时间运行作业

有时候,需要只运行作业一次而不是定期运行。为此,应该使用at 命令。要运行的命令是从-f 选项指定的文件读取的,-v 选项显示运行作业的时间

例如:

[ian@lyrebird ~]$ at -f mycrontest.sh 10pm tomorrow

job 14 at Sun Jul 8 22:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 tuesday

job 15 at Tue Jul 10 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 july 11

job 16 at Wed Jul 11 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 next week

job 17 at Sat Jul 14 02:00:00 2007

可以管理cron 和at 作业。使用crontab 命令和-l 选项列出crontab,使用atq 命令显示用at 命令加入队列中的作业

[ian@lyrebird ~]$ crontab -l

0,20,40 22-23 * 7 fri-sat /home/ian/mycrontest.sh

[ian@lyrebird ~]$ atq

16 Wed Jul 11 02:00:00 2007 a ian

17 Sat Jul 14 02:00:00 2007 a ian

14 Sun Jul 8 22:00:00 2007 a ian

15 Tue Jul 10 02:00:00 2007 a ian

可以使用cron 命令和-r 选项删除所有调度的cron 作业

[ian@lyrebird ~]$ crontab -l

0,20,40 22-23 * 7 fri-sat /home/ian/mycrontest.sh

[ian@lyrebird ~]$ crontab -r

[ian@lyrebird ~]$ crontab -l

no crontab for ian

用atq 和atrm 显示并删除作业

[ian@lyrebird ~]$ atq

16 Wed Jul 11 02:00:00 2007 a ian

17 Sat Jul 14 02:00:00 2007 a ian

14 Sun Jul 8 22:00:00 2007 a ian

15 Tue Jul 10 02:00:00 2007 a ian

[ian@lyrebird ~]$ atrm 16 14 15

[ian@lyrebird ~]$ atq

17 Sat Jul 14 02:00:00 2007 a ian

以上是关于作业调度的知识点补充。如果有了以上的CRON我们就不会把自己锁在外面了。例如,在调试防火墙脚本时,可以创建一个corn作业,每两分钟停止防火墙一次,这样可以安全地运行防火墙脚本并可以知道是否已锁定SSH会话。如果已经锁定,只需要等待防火墙脚本再运行几分钟,等待防火墙自行关闭,然后就可以去修订脚本继续运行了。

本节课防火墙示例中使用的符号常量

如果为经常使用的名字或地址定义了符号常量,防火墙的脚本就极易读懂和维护。下面的常量或者是本章例子中用到的,或者是在网络标准中定义的通用常量。在下面的例子中,也是以“shebang”行作为开头。

#!/bin/sh IPT="/sbin/iptables" # Location of iptables on your system INTERNET="ethO" # Internet-connected interface LOOPBACK_INTERFACE="1o" # however your system names it IPADDR="my.ip.address" # your IP address MY_ISP="my.isp.address.range" # ISP server & NOC address range SUBNET_BASE="https://www.doczj.com/doc/252556492.html,work" # Your subnet's network address SUBNET_BROADCAST="my.subnet.bcast" # Your subnet's broadcast address LOOPBACK="127.0.O.O/8" # reserved loopback address range CLASS_A="IO.O.O.O/8" # class A private networks CLASS_B="172.16.O.O/12" # class B private networks CLASS_C="192.168.0.0/16" # class C private networks CLASS_D_MULTICAST="224.0.O.O/4" # class D multicast addresses CLASS_E_RESERVED_NET="240.0.O.O/5" # class E reserved addresses BROADCAST_SRC="O.O.O.O" # broadcast source address BROADCAST_DEST="255.255.255.255" # broadcast destination address PRIVPORTS="0:1023" # well-known, privileged port range UNPRIVPORTS="1024:65535" # unprivileged port range

删除预先存在的规则

定义一组过滤规则时,首先要做的事情就是从规则链中清除任何已经存在的规则。否则任何新定义的规则将加到已有的规则之后。那么,数据包在到达链上新定义的点之前,很容易与一个先前存在的规则匹配。

删除规则也叫做刷新规则链,当没有参数直接针对特定的链时,下面的命令一次性刷新所有链上的规则:

$IPT –flush

$IPT -t nat –flush

$IPT -t mangle --flush

规则链变为空,但所有用户自定义规则链仍存在,刷新链并不影响当时处于有效的默认策略的状态。

下一步是删除所有用户自定义规则链,下面的命令可以删除它们:

$IPT-X

$IPT-t nat-X

$IPT-t mangle-X

停止防火墙

$IPT --policy INPUT ACCEPT

$IPT --policy OUTPUT ACCEPT

$IPT --policy FORWARD ACCEPT

$IPT -t nat --policy PREROUTING ACCEPT

$IPT -t nat --policy OUTPUT ACCEPT

$IFT -t nat --policy POSTROUTING ACCEPT

$IPT -t mangle --policy PREROUTING ACCEPT

$IPT -t mangle --policy OUTPUT ACCEPT

下面就可以容易地停止防火墙了,将下面代码置于上面代码之后,当你使用参数“stop”时,脚本会直接而干净地重置默认策略并将防火墙完全停止:

if [ "$1" = "stop" ];then

echo "Firewall completely stopped! WARNING: THIS HOST HAS NO FIREWALL RUNNING. " exit 0

fi

启动回环接口

本地服务依赖于回环网络接口。系统启动之后,系统的默认策略是接受所有的数据包,清除所有预先存在的规则链对此也没有任何影响。但是,当防火墙被重新初始化时并且先前使用了默认禁止策略,丢弃策略在此时也将依然有效。在没有任何接受规则的情况下,回环接口是不能被访问的。

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

重置默认策略

使用丢弃默认策略时,除非定义规则为明确允许或拒绝一个匹配的数据包,否则数据包将被丢弃。我们想要的是,自动丢弃我们不想要的入站数据包且并不通知远方的发送者,拒绝出站数据包并向内部发送者返回一个ICMP错误消息。对用终端用户来说,其不同之处举例来讲,如果有人在远程站点试图连接你的Web服务器,他的浏览器会挂起,直到系统返回TCP 超时状态,但他未得到你的站点或Web服务器是否存在的指示。另一方面,如果你试图连接一个远程Web服务器,你的浏览器会立即收到一个错误通知,指示这个操作是不允许的:$IPT --policy INPUT DROP

$IPT --policy OUTPUT DROP

$IPT --policy FORWARD DROP

这样,结合上面的设置除了本地回环业务流外的其他网络业务流都会被阻塞。

如果防火墙主机只有一个网络接口,转发(FORWARD)策略当然是没有必要的。定义转发策略是为以后做准备的,这样,最好加入下面的代码:

$IPT -t nat --policy PREROUTING DROP

$IPT -t nat --policy OUTPUT DROP

$IPT -t nat --policy POSTROUTING DROP

$IPT -t mangle --policy PREROUTING DROP

$IPT -t mangle --policy OUTPUT DROP

默认策略规则和最先匹配规则为准默认策略看起来似乎是最先匹配规则为准的例外。默认策略命令不依赖于其位置,它们本身不是规则。一个规则链的默认策略是指,一个数据包与规则链上的规则都做了比较却未找到匹配之后所采用的策略。

默认策略用于定义默认的数据包处理方式,它相对规则来说需要首先在脚本中定义。假设策略命令在脚本最后执行,此时如果防火墙脚本包含一个语法错误导致它过早地退出,那么接受一切的默认策略将生效。

拒绝扫描

排在最前面的状态标记列表列出的是必须进行检测的位,除了那些位以外,第二张状态标记列表列出了必须在检测中设为匹配的位。

$IPT -A INPUT -m unclean -j DROP# All of the bits are cleared

$IPT -A INPUT -ptcp --tcp-flags ALL NONE -j DROP# SYN and FIN are both set $IPT -A INPUT -p top --tcp-flags SYN,FIN SYN,FIN -j DROP# SYN and RST are both set $IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP# FIN and RST are both set $IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP# FIN is the only bit set, without the expected accompanying ACK

$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP# PSH is the only bit set, without the expected accompanying ACK

$1PT -A INPUT -p top --top-flags ACK,PSH PSH -j DROP# URG is the only bit set, without the expected accompanying ACK

$1PT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

利用连接状态绕过规则检测

因为状态模块相对一些Linux防火墙来说会需要更多的内存,所以本章的防火墙示例,将会提供有状态模块和没有状态模块两种选择。

使用状态模块可以让正在进行的交换在正常操作的情况下绕过标准防火墙规则。但是,如果一个连接的状态表中某项发生循环或超时,就必须转而使用标准的规则。

防火墙静态和动态规则

资源限制的可测性和状态表超时要求同时使用动态和静态规则。这种限制成为了大型商业防火墙的一个卖点。

限制的可测性问题主要是因为,一个大型的防火墙往往需要处理50,000~100,000个同时的连接,这样就有大量的状态要处理。系统资源有时被用尽,这样连接就无法建立起来,这时就需要放弃新的连接或是让软件退回到无状态模式。

还有一个就是超时问题,连接状态并不能永远保持。一些慢速或静止态的连接的状态信息有时会被清除掉,这样可以为更活跃的连接留出更多的空间。当一个相关的新的数据包又传来时,状态信息将被重新建立。同时,在传输栈查询连接信息并通知状态模块此数据包确实是已经存在的一个数据交换连接的一部分时,数据包的网络流又回到无状态模式下。

if [ "$CONNECTION_TRACKING" = "1" ]; then

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

# Using the state module alone, INVALID will break protocols that use

# bi-directional connections or multiple connections or exchanges,

# unless an ALG is provided for the protocol. At this time, FTP and

# IRC are the only protocols with ALG support.

$IPT -A INPUT -m state --state INVALID -j LOG \

--log-prefix "INVALID input: "

$IPT -A INPUT -m state --state INVALID -j DROP

$IPT -A OUTPUT -m state --state INVALID -j LOG \

--log-prefix "INVALID output: "

$IPT -A OUTPUT -m state --state INVALID -j DROP

fi

源地址欺骗及其他不合法地址

在众多的源地址欺骗中,你可以确定识别出的一种欺骗,那就是它伪装成了你的IP地址。下面的规则可以丢弃那些声称是来自你的机器的入站数据包:

$IPT -A INPUT -i $INTERNET -s $IPADDR -j DROP

正如第1章和第2章中介绍的那样,A、B、C类地址范围中都有一些私有IP地址专门留给局域网使用。这些地址不会在Internet中使用,路由器也不会使用这些私有地址去路由数据包。然而事实上,有些路由器确实会转发含私有源地址的数据包。

另外,如果和你同在一个ISP子网(即与你在路由器的同一侧)中的某些人向外发送了带有私有地址的数据包,即使路由器没有转发,这些数据包你也可以看到。如果你的NAT或代理设置不当,和你在同一局域网下的机器也会泄漏私有地址。

下面三个规则不允许以任何A、B或C类私有网络地址为源地址的数据包入站。在一个公用网络中,这样的数据包不允许出现:

$IPT -A INPUT -i $INTERNET -s $CLASS_A -j DROP

$IPT -A INPUT -i $1NTERNET -s $CLASS_B -j DROP

$IPT -A INPUT -i $INTERNET -s $CLASS_C -j DROP

下面的规则不允许来自回环网络地址的数据包:

$IPT -A INPUT -i $INTERNET -s $LOOPBACK -j DROP

因为回环接口是内部的本地软件接口,任何声称来自这样的地址的数据包都是故意伪造的。

下面的两个规则用于记录匹配的数据包。防火墙的默认策略是禁止一切,这样的话,广播地址也被默认地丢弃了,如果需要使用,必须明确地启用它:

$1PT -A INPUT -i $1NTERNET -s $BROADCAST_DEST -j LOG

$1PT -A INPUT -i $INTERNET -s $BROADCAST_DEST -j DROP

$IPT -A INPUT -i $INTERNET -d $BROADCAST_SRC -j LOG

$1PT -A INPUT -i $INTERNET -d $BROADCAST_SRC -j DROP

澄清IP地址0.0.O.0的意义

地址O.0.0.0保留作为广播源地址。在Netfilter中,指明与任意地址(如any/0,0.0.0.0/0或者 O.0.0.0/0.0.0.0)进行匹配的规则不与广播地址匹配。原因是广播数据包在其数据包头中有一标记位用以指示这是一个发给网络上所有接口的广播数据包,而不是一个点对点发给特定目的地址的单点传送数据包。对广播数据包的处理与非广播数据包不同,不存在IP地址是0.0.0.O的合法的非广播数据包。

下面两条规则阻塞两种形式的直接广播:

# Refuse directed broadcasts# Used to map networks and in Denial of Service attacks $IPT -A INPUT -i $INTERNET -d $SUBNET_BASE -j DROP$IPT -A INPUT -i $INTERNET -d $SUBNET_BROADCAST -j DROP

由于默认禁止策略,以及部分依靠匹配目的地址来明确地接受某些数据包的防火墙规则,所有这些直接广播消息都不会被防火墙接受。在局域网使用真实网络地址进行更大规模配置时,设置这些规则将非常困难。

由于使用了变长的网络前缀,一个站点的网络或主机地址域可能是,也可能不是一个字节的长度。为了讲起来简单,假设SUBNET_BASE是你的网络地址,如192.168.1.0;SUBNET_ BROADCAST是你的网络广播地址,如192.168.1.255。

后面的章节中会为DHCP客户机设置一些例外。在DHCP的客户机及服务器端口初始化时,广播源和目的地址要被用到。

多播地址只能被用做目的地址,下面的规则丢弃假冒的多播网络数据包:

# Refuse Class D multicast addresses# illegal as a source address

$IPT -A INPUT -i $1NTERNET -s $CLASS_D_MULTICAST -j DROP

合法的多播数据包都是UDP数据包下面的规则禁止了非UDP协议的多播数据包:

$IPT-A INPUT-i$INTERNET-P ! udp-d$CLASS_D_MULTICAST-j DROP

#保留地址块在注册之前是不能路由的。它们在拒绝服务攻击中可以被用做源地址。防火墙可以阻塞以这些保留地址块为源地址的数据包

但是,因为自2000年以后IANA开始灵活地

为站点分配这些地址块,所以防火墙这样运作也变得有些不太现实了。下面的规则定义丢弃以那些地址块为源地址的数据包:

$IPT -A INPUT -i $INTERNET -s 0.0.0.0/8 -j DROP

$IPT -A INPUT -i $INTERNET -s 169.254.0.0/16 -j DROP

$IPT -A INPUT -i $INTERNET -s 192.0.2.0/24 -j DROP

上面是一些应该注意的地方,下面我们以一个脚本来讲述本课程的重点

本课涉及的脚本是为各种服务的应用协议设立的防火墙规则主要是应用于独立的Linux主机。并且每个服务的客户端规则以及服务端规则同时存在,尽管并不是每一个规则都是必要的。完整的 iptables防火墙脚本应该放在/etc/rc.d/rc.firewall或者/etc/init.d /firewall中,如下所示:

#!/bin/sh/sbin/modprobe ip_conntrack_ftp CONNECTION_TRACKING="1" ACCEPT_AUTH="O" SSH_SERVER="O" FTP_SERVER="O" WEB_SERVER="O" SSL_SERVER="O" DHCP_CLIENT="1"

IPT="/sbin/iptables" # Location of iptables on your system INTERNET="ethO" # Internet-connected interface LOOPBACK_INTERFACE="lo" # however your system names it IPADDR="my.ip.address" # your IP address SUBNET_BASE="my,subnet,base" # ISP network segment base address SUBNET_BROADCAST="my.subnet.bcast" # network segment broadcast address MY_ISP="my.isp.address.range" # ISP server & NOC address range NAMESERVER="https://www.doczj.com/doc/252556492.html,.server.l" # address of a remote name server POP_SERVER="isp,pop,server" # address of a remote pop server MAIL_SERVER="isp.mail.server" # address of a remote mail gateway NEWS_SERVER="isp.news.server" # address of a remote news server TIME_SERVER="some.time.server" # address of a remote time server DHCP_SERVER="isp.dhcp.server" # address of your ISP dhcp server LOOPBACK="127.0.O.O/8" # reserved loopback address range CLASS_A="1O.O.O,O/8" # Class A private networks CLASS_B="172.16.0.O/12" # Class B private networks CLASS_C="192.168.0.0/16" # Class C private networks CLASS_D_MULTICAST="224.0.O.O/4" # Class D multicast addresses CLASS E RESERVED NET="240.O.O.O/5" # Class E reserved addresses

BROADCAST_SRC="0.O.O.O" # broadcast source address BROADCAST_DEST="255.255.255.255" # broadcast destination address PRIVPORTS="0:1023" # well-known, privileged port range UNPRIVPORTS="1024:65535" # unprivileged port range SSH_PORTS="1024:65535" NFS_PORT="2049" LOCKD_PORT="4045" SOCKS_PORT="1080n OPENWINDOWS_PORT="2000" XWINDOW_PORTS="6000:6063" SQUID_PORT="3128"############################################################## ## Enable broadcast echo Protection echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts# Disable Source Routed Packets for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do

echo 0 > $ f done# Enable TCP SYN Cookie Protection echo i > /proc/sys/net/ipv4/tcp_syncookies# Disable ICMP Redirect Acceptance for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do

echo 0 > $ f done# Don't send Redirect Messages for f in /proc/sys/net/ipv4/conf/*/send_redirects; do

echo 0 > $f done# Drop Spoofed Packets coming in on an interface, which, if replied to,# would result in the reply going out a different interface. for f in /proc/sys/net/ipv4/conf/*/rp_filter; do

echo 1 > $f done# Log packets with impossible addresses. for f in /proc/sys/net/ipv4/conf/*/log_martians; do

echo 1 > $ f done################################################################ Remove any existing rules from all chains$IPT --flush$IPT -t nat --flush

$IPT -t mangle --flush$IPT -X$IPT -t nat -X$IPT -t mangle -X$IPT --policy INPUT ACCEPT$IPT --policy OUTPUT ACCEPT$IPT --policy FORWARD ACCEPT$IPT -t nat --policy PREROUTING ACCEPT$IPT -t nat --policy OUTPUT ACCEPT$IPT -t nat --policy POSTROUTING ACCEPT$IPT -t mangle --policy PREROUTING ACCEPT$IPT -t mangle --policy OUTPUT ACCEPT if [ "$1" = "stop" ] then echo "Firewall completely stopped! WARNING: THIS HOST HAS NO FIREWALL RUNNING." exit 0 fi# Unlimited traffic on the loopback interface$IPT -A INPUT -i lo -j ACCEPT$IPT -A OUTPUT -o lo -j ACCEPT# Set the default policy to drop$IPT --policy INPUT DROP$IPT --policy OUTPUT DROP$IPT --policy FORWARD DROP$IPT -t nat --policy PREROUTING DROP$IPT -t nat --policy OUTPUT DROP$IPT -t nat --policy POSTROUTING DROP$IPT -t mangle --policy PREROUTING DROP$IPT -t mangle --policy OUTPUT DROP################################################################ Stealth Scans and TCP State Flags# Unclean$IPT -A INPUT -m unclean -j DROP# All of the bits are cleared$IPT -A INPUT -ptcp --tcp-flags ALL NONE -j DROP# SYN and FIN are both set$IPT -A INPUT -ptcp --tcp-flags SYN,FIN SYN,FIN -j DROP# SYN and RST are both set$IPT -A INPUT -p top o-tcp-flags SYN,RST SYN,RST -j DROP# FIN and RST are both set$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP# FIN is the only bit set, without the expected accompanying ACK$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP# PSH is the only bit set, without the expected accompanying ACK$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP# URG is the.only bit set, without the expected accompanying ACK$IPT -A INPUT -ptcp --tcp-flags ACK,URG URG -j DROP################################################################ Using Connecti6n State to By-pass Rule Checking

if [ "$CONNECTION_TRACKING" = "1" ]; then

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

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

# Using the state module alone, INVALID will break protocols that use

# bi-directional connections or multiple connections or exchanges,

# unless an ALG is provided for the protocol. At this time, FTP and

# IRC are the only protocols with ALG support.

$IPT -A INPUT -m state --state INVALID -j LOG \

--log-prefix "INVALID input: "

$IPT -A INPUT -m state --state INVALID -j DROP

$IPT -A OUTPUT -m state --state INVALID -j LOG \

--log-prefix "INVALID output: "

$IPT -A OUTPUT -m state --state INVALID -j DROP fi################################################################ Source Address Spoofing and Other Bad Addresses# Refuse spoofed packets pretending to be from# the external interface's IP address$IPT -A INPUT -i $INTERNET -s $IPADDR -j DROP# Refuse packets claiming to be from a Class A private network$IPT -A INPUT -i $INTERNET -s $CLASS_A -j DROP# Refuse packets claiming to be from a Class B private network$IPT -A INPUT -i $INTERNET -s $CLASS_B -j DROP# Refuse packets claiming to be from a Class C private network$IPT -A INPUT -i $INTERNET -s $CLASS_C -j DROP# Refuse packets claiming to be from the loopback interface$IPT -A INPUT -i $INTERNET -s $LOOPBACK -j DROP# Refuse malformed broadcast packets $IPT -A INPUT -i $INTERNET -s $BROADCAST_DEST -j LOG$IPT -A INPUT -i $INTERNET -s $BROADCAST_DEST -j DROP$IPT -A INPUT -i $INTERNET -d $BROADCAST_SRC -j LOG$IPT -A INPUT -i $INTERNET -d $BROADCAST_SRC -j DROP if [ "$DHCP_CLIENT" = "0" ]; then

# Refuse directed broadcasts

# Used to map networks and in Denial of Service attacks

$IPT -A INPUT -i $INTERNET -d $SUBNET_BASE -j DROP

$IPT -A INPUT -i $INTERNET -d $SUBNET_BROADCAST -j DROP

# Refuse limited broadcasts

$IPT -A INPUT -i $INTERNET -d $BROADCAST_DEST -j DROP fi# Refuse Class D multicast addresses

# illegal as a source address$IPT -A INPUT -i $INTERNET -s $CLASS_D_MULTICAST -j DROP$IPT -A INPUT -i $INTERNET -p ! udp -d $CLASS_D_MULTICAST -j DROP$IPT -A INPUT -i $INTERNET -p udp -d $CLASS_D_MULTICAST -j ACCEPT# Refuse Class E reserved IP addresses$IPT -A INPUT -i $INTERNET -s $CLASS_E_RESERVED_NET -j DROP if [ "$DHCP_CLIENT" = "1" ]; then

$IPT -A INPUT -i $INTERNET -p udp \

-s $BROADCAST_SRC --sport 67 \

-d $BROADCAST_DEST --dport 68 -j ACCEPT fi# refuse addresses defined as reserved by the IANA# 0.*.*.* - Can't be blocked unilaterally with DHCP# 169.254.0.0/16 - Link Local Networks# 192.0.2.0/24 - TEST-NET $IPT -A INPUT -i $INTERNET -s 0.0.0.0/8 -j DROP$IPT -A INPUT -i $INTERNET -s 169.254.0.0/16 -j DROP$IPT -A INPUT -i $INTERNET -s 192.0.2.0/24 -j DROP################################################################ Disallowing Connections to Common TCP Unprivileged Server Ports# X Window connection establishment$IPT -A OUTPUT -o $INTERNET -p tcp --syn \

--destination-port $XWINDOW_PORTS -j REJECT# X Window: incoming connection attempt$IPT -A INPUT -i $INTERNET -p tcp --syn \

--destination-port $XWINDOW_PORTS -j DROP# Establishing a connection over TCP to NFS, OpenWindows, SOCKS, or squid$IPT -A OUTPUT -o $INTERNET -p tcp \

-m multiport --destination-port \

$NFS_PORT,$OPENWINDOWS_PORT,$SOCKS_PORT,$SQUID_PORT \

--syn -j REJECT$IPT -A. INPUT -i $INTERNET -p tcp \

-m multiport --destination-port \

$NFS_PORT,$OPENWINDOWS_PORT,$SOCKS_PORT,$SQUID_PORT \

--syn -j DROP################################################################ Disallowing Connections to Common UDP Unprivileged Server Ports# NFS and lockd if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p udp \

-m multiport --destination-port $NFS_PORT,$LOCKD_PORT \ -m state --state NEW -j REJECT

$IPT -A INPUT -i $INTERNET -p udp \

-m multiport --destination-port $NFS_PORT,$LOCKD_PORT \ -m state --state NEW -j DROP else

$IPT -A OUTPUT -o $1NTERNET -p udp \

-m multiport --destination-port $NFS_PORT,$LOCKD_PORT \ -j REJECT

$IPT -A input -i $INTERNET -p udp \

-m multiport --destination-port $NFS_PORT,$LOCKD_PORT \ -j DROP fi################################################################ DNS Name Server# DNS Forwarding Name Server or client requests if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p udp \

-s ¢IPADDR --sport $UNPRIVPORTS \

-d $NAMESERVER --dport 53 \

-m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $INTERNET -p udp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $NAMESERVER --dport 53 -j ACCEPT$IPT -A INPUT -i $INTERNET -p udp \

-s $NAMESERVER --sport 53 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT# TCP is used for large responses if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -ptcp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $NAMESERVER --dport 53 \

-m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $1NTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $NAMESERVER --dport 53 -j ACCEPT$IPT -A INPUT -i $INTERNET -p tcp! --syn \

-s $NAMESERVER --sport 53 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT# DNS Caching Name Server (local server to primary server)

if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p udp \

-s $IPADDR --sport 53 \

-d $NAMESERVER --dport 53 \

-m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $INTERNET -p udp \

-s $IPADDR --sport 53 \

-d $NAMESERVER --dport 53 -j ACCEPT$IPT -A INPUT -i $INTERNET -p udp \

-s $NAMESERVER --sport 53 \

-d $IPADDR --dport 53 -j ACCEPT################################################################

Filtering the AUTH User Identification Service (TCP Port 113)# Outgoing Local Client Requests to Remote Servers

$IPT -A OUTPUT -o $INTERNET -ptcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 113 -m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $INTERNET -ptcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 113 -j ACCEPT$IPT -A INPUT -i $INTERNET -p tcp ! --syn \ --sport 113 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT# Incoming Remote Client Requests to Local Servers if [ "$ACCEPT_AUTH" = "1" ]; then

if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A INPUT -i $INTERNET -p tcp \

--sport $UNPRIVPORTS \

-d $IPADDR --dport 113 \

-m state --state NEW -j ACCEPT

fi$IPT -A INPUT -i $INTERNET -p tcp \

--sport $UNPRIVPORTS \

-d $IPADDR --dport 113 -j ACCEPT$IPT -A OUTPUT -o $INTERNET -p tcp! --syn

-s $IPADDR --sport 113 \

--dport $UNPRIVPORTS -j ACCEPT else$IPT -A INPUT -i $INTERNET -p tcp\

--sport $UNPRIVPORTS \

-d $IPADDR --dport 113 -j REJECT --reject-with tcp-reset fi################################################################ Sending Mail to Any External Mail Server# Use "-d $MAIL_SERVER" if an ISP mail gateway is used instead if [ '$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 25 -m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 25 -j ACCEPT$IPT -A INPUT -i $INTERNET -p tcp ! --syn \ --sport 25 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT################################################################ Retrieving Mail as a POP Client (TCP Port 110} if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -ptcp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $POP_SERVER --dport 110 -m state --state NEW -j ACCEPT fi $IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $POP_SERVER --dport 110 -j ACCEPT$IPT -A INPUT -i $INTERNET -p tcp ! --syn \

-s $POP_SERVER --sport 110 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT################################################################ Accessing Usenet News Services (TCP NNTP Port 119) jf [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p tcp\

-s $IPADDR --sport $UNPRIVPORTS \

-d $NEWS_SERVER --dport 119 -m state --state NEW -j ACCEPT fi $IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

-d $NEWS_SERVER --dport 119 -j ACCEPT$IPT -A INPUT -i $INTERNET -ptcp ! --syn \

-s $NEWS_SERVER --sport 119 \

-d $IPADDR --dport $UNPRIVPORTS -j ACCEPT

# ssh (TCP Port 22)# Outgoing Local Client Requests to Remote Servers if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $SSH_PORTS \

--dport 22 -m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADOR --sport $SSH_PORTS \

--dport 22 -j ACCEPT$IPT -A INPUT -i $INTERNET -p tcp ! --syn \

--sport 22 \

-d $IPADDR--dport $SSH_PORTS -j ACCEPT# Incoming Remote Client Requests to Local Servers if [ "$SSH_SERVER" = "1" ]; then

if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A INPUT -i $INTERNET -ptcp \

--sport $SSH_PORTS \

-d $IPADDR--dport 22 \

-m state --state NEW -j ACCEPT

fi$IPT -A INPUT -i $INTERNET -p tcp \

--sport $SSH_PORTS \

-d $IPADDR --dport 22 -j ACCEPT$IPT -A OUTPUT -o $INTERNET -p tcp ! --syn \

-s $IPADDR --sport 22 \

--dport $SSH_PORTS -j ACCEPT fi################################################################ ftp (TCP Ports 21, 20)# Outgoing Local Client Requests to Remote Servers# Outgoing Control Connection to Port 21 if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT -A OUTPUT -o $INTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 21 -m state --state NEW -j ACCEPT fi$IPT -A OUTPUT -o $1NTERNET -p tcp \

-s $IPADDR --sport $UNPRIVPORTS \

--dport 21 -i ACCEPT

linux防火墙iptables配置(Linux下多网段Nat实现与应用)

Linux下多网段Nat实现与应用 Iptables/netfilter是一个可以替代价格昂贵的商业防火墙的网络安全保护解决方案,能够实现数据包过滤、数据包重定向和网络地址转换(NAT)等多种功能。 准备: 操作系统安装光盘:CentOS-6.1版本 硬件要求:dell poweredge 410(需双网卡) 实现功能: 192.168.11.0/24、192.168.10.0/24网段通过防火墙NAT转换访问外网,并实现数据包过滤。 过程: 步骤#1. 安装操作系统(最基本安装即可) 步骤#2. 设置网卡地址 外网eth0 IP:xx.xx.xx.xx 内网eth1 IP:172.16.1.254 网卡路径:/etc/sysconfig/network-scripts DEVICE=eth0 HWADDR=00:0e:0c:3a:74:c4 NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet BOOTPROTO=none IPV6INIT=no USERCTL=no IPADDR=xx.xx.xx.xx NETMASK=255.255.255.252 DEVICE=eth1 HWADDR=00:0e:0c:3a:74:c4 NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet BOOTPROTO=none IPV6INIT=no USERCTL=no IPADDR=172.16.1.254 NETMASK=255.255.255.0 步骤#3. 添加路由 把路由写到 /etc/rc.d/rc.local文件里,这样每次启动就不用重新设置了。 route add -net 172.16.1.0 netmask 255.255.255.0 gw 172.16.1.1 route add -net 192.168.11.0 netmask 255.255.255.0 gw 172.16.1.1 route add -net 192.168.10.0 netmask 255.255.255.0 gw 172.16.1.1 route add default gw 60.190.103.217 172.16.1.1是交换机与Linux的内网网卡接口的地址

firewall防火墙配置-RHEL7

尽管工作在Linux内核的网络过滤器代码上,总体上和旧有的配置防火墙的方法是不兼容的。Red Hat Enterprise Linux 7 和其他的新版本则需要依靠新的配置方法。 本文的所有命令都基于RHEL 7. 防火墙工作网络 首先,检查防火墙是否在运行。使用列表1中的systemctl status firewalld命令。 列表1.下面的序列表明防火墙是活动状态且在运行中。这些斜线是有帮助的,当你试图将表1全面显示出来,使用-1命令。 [root@rhelserver ~]# systemctl status firewalld - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/; enabled) Active: active (running)since Thu 2014-05-22 07:48:08 EDT; 14min ago Main PID: 867 (firewalld) CGroup: / └─867 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid May 22 07:48:08 systemd[1]: Started firewalld - dynami… 防火墙中的一切都与一个或者多个区域相关联。 配置之后,RHEL 7服务器正常会在公共区域,但是你也许会想将它放置在另一个网络配置防火墙访问。这时使用firewall-cmd --get-default-zone命令,该命令显示你的服务器在哪一个网络。如果你想查看配置特定网络的详细信息,你可以使用列表2中的firewall-cmd --zone=zonename --list-all命令。

Linux6 防火墙配置

linux配置防火墙详细步骤(iptables命令使用方法) 通过本教程操作,请确认您能使用linux本机。如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重! 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 referenc es) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPTah--0.0.0.0/00.0.0.0/0 ACCEPTudp--0.0.0.0/0224.0.0.251udpdpt:5353 ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:631 ACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHED ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:22 ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:80 ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:25 REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited

2018Linux防火墙iptables配置详解

2018-Linux防火墙iptables配置详解 一、开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口. 如果你在安装linux时没有选择启动防火墙,是这样的 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 什么规则都没有. (2)清除原有规则. 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则. [root@tp ~]# iptables -F清除预设表filter中的所有规则链的规则 [root@tp ~]# iptables -X清除预设表filter中使用者自定链中的规则 我们在来看一下

2.1.5 节点防火墙和SELinux配置.

2.1.5 节点防火墙和SELinux配置 1.防火墙设置 在控制和计算节点上分别执行以下操作进行防火墙设置。(1)停止iptables服务。 [root@controller ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] (2)将iptables服务配置为开机不自动启动。 [root@controller ~]# chkconfig iptables off 2.SELinux设置 在控制和计算节点上分别执行以下操作进行SELinux设置。(1)编辑SELinux的配置文件。 [root@controller ~]# vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # 将SELinux配置为允许模式 # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 配置完成后,重新启动控制节点和计算节点。

linux防火墙配置实验

单个IP地址建立连接 和DOS 攻击 实验 第九组 2017.05.19 单个IP地址限制连接 实验原理: 防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。 netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件是一种工具,

也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。 实验环境 攻击者win7 64位 ip:172.16.9.1,被攻击者虚拟机vm构造,与宿主机采用桥接,在同一网段,ip为1.1.1.2 实验目的: 通过Vmware虚拟机,配置网关,以及模拟外网,内网,Web服务器。通过 外网来进行DOS攻击,通过在被攻击的主机上抓包可以清楚地看到整个攻击过程,并且在网关上设置了NAT地址转换,在访问外网时将内网地址转换成公网地址(SNAT),以及外网访问内网时将公网地址转换成内网地址(DNAT)。并且可以在网关上设置上网时间,限制某些应用访问Internet等。 实验拓扑:

实验步骤: 搭建实验环境(Vmware虚拟机作为平台),按照逻辑拓扑图进行连接。 1.配置网关 1)配置三块网卡,分别是eth0,eth1,eth2,全部设置为桥接模式。 2)Eth1 ip地址192.168.9.1,eth2 ip地址192.168.19.1,eth0 ip地址1.1.9.1 3)使用命令echo “1”> /proc/sys/net/ipv4/ip_forward,打开路由功能 4)使用命令 /etc/init.d/iptables stop。关闭防火墙。 5)制定NAT转化策略,建议当底层网络全部通时再测试NAT。 2.配置主机(包括web服务器,外网主机) 1)配置一块网卡eth0 添加ip地址,模式为桥接。 2)增加各自的默认网关。 3)关闭本地防火墙。 3.调试dos攻击程序,在模拟外网的pc上编译执行,在web服务器上抓包观察。 4.观察NAT转化是否实现 5.实验截图: 5.1.将网卡配置为桥接模式。

Linux 防火墙的功能及安全策略

Linux 防火墙的功能及安全策略 防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。因此,防火墙的功能有以下几点: ●防火墙是网络安全的屏障 一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全的NFS 协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。 ●防火墙可以强化网络安全策略 通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。 ●对网络存取和访问进行监控审计 如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的。首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。 ●防止内部信息的外泄 通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。

Linux防火墙 iptables详细介绍

周旭光unixzhou@https://www.doczj.com/doc/252556492.html, Linux防火墙iptables 周旭光 unixzhou@https://www.doczj.com/doc/252556492.html, 2011年5月10日 目录 1、Linux防火墙基础 (2) 1、iptables的规则表、链结构 (2) 1.1 规则表 (2) 1.2 规则链 (2) 2、数据包的匹配流程 (2) 2.1 规则表之间的优先级 (2) 2.2 规则链之间的优先级 (2) 2.3 规则链内部各防火墙规则之间的优先顺序 (3) 2、管理和设置iptables规则 (3) 2.1 iptables的基本语法格式 (3) 2.2 管理iptables规则 (3) iptables命令的管理控制项 (3) 2.3 条件匹配 (5) 2.3.1 通用(general)条件匹配 (5) 2.3.2 隐含(implicit)条件匹配 (6) 2.3.3 显示(explicit)条件匹配 (6) 2.4 数据包控制 (7) 3、使用防火墙脚本 (8) 3.1 导出、导入防火墙规则 (8) 3.2 编写防火墙脚本 (8)

1、Linux防火墙基础 1、iptables的规则表、链结构 1.1 规则表 iptables管理4个不同的规则表,其功能由独立的内核模块实现。 filter表:包含三个链INPUT , OUTPUT , FORWARD nat表:PREROUTING , POSTROTING , OUTPUT mangle表:PREROUTING , POSTROUTING , INPUT , OUTPUT , FORWARD raw表:OUTPUT , PREROUTING 1.2 规则链 INPUT链当收到访问防火墙本机的数据包(入站)时,应用此链中的规则 OUTPUT链当防火墙本机向外发送数据包(出站)时,应用此链中的规则 FORWARD链收到需要通过防火墙发送给其他地址的数据包,应用此链 PREROUTING链做路由选择之前,应用此链 POSTROUTING链对数据包做路由选择之后,应用此链中的规则 2、数据包的匹配流程 2.1 规则表之间的优先级 Raw mangle nat filter 2.2 规则链之间的优先级 入站数据流向:来自外界的数据包到达防火墙,首先呗PREROUTING规则链处理(是否被修改地址),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT 链进行处理,通过以后再交给上次的应用程序进行响应 转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后进行路由选择,如果数据包的目标地址是其他外部地址,则内核将其传递给FPRWARD链进行处理,然后再交给POSTROUTIING 规则链(是否修改数据包的地址等)进行处理。 出站数据流向:防火墙本身向外部地址发送数据包,首先被OUTPUT规则链处理,之后进行路由选择,然后

linux防火墙的设置

linux 防火墙的设置

Linux防火墙配置(一) 随着In ternet规模的迅速扩大,安全问题也越来越重要,而构建防火墙是保护系统免受侵害的最基本的一种手段。虽然防火墙并不能保证系统绝对的安全,但由于它简单易行、工作可靠、适应性强,还是得到了广泛的应用。本章主要介绍与Linux系统紧密集成的iptables防火墙的工作原理、命令格式,以及一些应用实例。 9.1 iptables 防火墙介绍 netfilter/iptables 是Linux系统提供的一个非常优秀的防火墙工具,它完全免费、功能强大、使用灵活、占用系统资源少,可以对经过的数据进行非常细致的控制。本节首先介绍有关iptables防火墙的基本知识,包括netfilter 框架、iptables 防火墙结构与原理、iptables命令格式等内容。 9.1.1 netfilter 框架 Linux内核包含了一个强大的网络子系统,名为netfilter ,它可以为iptables内核防火墙模块提供有状态或无状态的包过滤服务,如NAT IP伪装 等,也可以因高级路由或连接状态管理的需要而修改IP头信息。netfilter 位 于Linux网络层和防火墙内核模块之间,如图9-1所示。 图9-1 netfilter 在内核中的位置 虽然防火墙模块构建在Linux内核,并且要对流经IP层的数据包进行处理,但它并没有改变IP协议栈的代码,而是通过netfilter 模块将防火墙的功能引 入IP层,从而实现防火墙代码和IP协议栈代码的完全分离。netfilter 模块的结构如图9-2所示。

对IPv4协议来说,netfilter 在IP数据包处理流程的5个关键位置定义了 5个钩子(hook)函数。当数据包流经这些关键位置时,相应的钩子函数就被调用。从图9-2中可以看到,数据包从左边进入IP协议栈,进行IP校验以后,数据包被第一个钩子函数 PRE_ROUTING理,然后就进入路由模块,由其决定该数据包是转发出去还是送给本机。 若该数据包是送给本机的,则要经过钩子函数LOCAL_IN处理后传递给本机 的上层协议;若该数据包应该被转发,则它将被钩子函数FORWARD理,然后 还要经钩子函数POST_ROUTIN处理后才能传输到网络。本机进程产生的数据包要先经过钩子函数LOCAL_OU处理后,再进行路由选择处理,然后经过钩子函数POST_ROUTING理后再发送到网络。 %说明:内核模块可以将自己的函数注册到钩子函数中,每当有数据包经过该钩子点时,钩子函数就会 按照优先级依次调用这些注册的函数,从而可以使其他内核模块参与对数据包的处理。这些处理可以是 包过滤、NAT以及用户自定义的一些功能。 9.1.2 iptables 防火墙内核模块 netfilter 框架为内核模块参与IP层数据包处理提供了很大的方便,内核 的防火墙模块正是通过把自己的函数注册到n etfilter 的钩子函数这种方式介 入了对数据包的处理。这些函数的功能非常强大,按照功能来分的话主要有4种,包括连接跟踪、数据包过滤、网络地址转换(NAT和对数据包进行修改。其中,NAT还分为SNATCH DNAT分别表示源网络地址转换和目的网络地址转换,内核防火墙模块函数的具体分布情况如图9-3所示。 由图9-3可以看出,防火墙模块在netfilter 的LOCAL_IN FORWARD LOCAL_OUT 个位置分别注册了数据包过滤函数,数据包经过这些位置时,防火墙模块要对数据包进行过滤。这三个位置也称为三条链,名称分别为INPUT

Linux防火墙的配置实例

Linux防火墙的配置实例 我们该如何利用Linux操作系统自带的防火墙来提高网络的管理控制功能呢?具体的来说,我们可以分三步走。一是先在Linux服务器上开一个后门,这个后门是专门给我们网络管理员管理服务器用的。二是把所有的进站、出站、转发站接口都关闭,此时,只有通过我们上面开的后门,管理员才能够远程连接到服务器上,企图任何渠道都不能连接到这台主机上。三是根据我们服务器的用途,把一些需要用到的接口开放出去。 1) 永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后复原 开启: service iptables start 关闭: service iptables stop 清除原有规则. 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则. [root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则 [root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则 我们在来看一下 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存. [root@tp ~]# /etc/rc.d/init.d/iptables save

LINUX在防火墙环境下DNS的安装与设置

经过几天的研究BIND,终于解决了我们单位的DNS问题。 在一般防火墙下,都是采用DMZ区内放服务器,外部访问DMZ区得到外部的IP,内部访问DMZ区时得到内部的IP。 如一个, 内部IP地址<--->放在DMZ的web服务器的IP<----->外部IP地址 从DNS上可以从以下四个方面解决: 一.iptables应用 1. 核心思想 配置动态DNS服务器的核心思想是:在DNS服务器上运行多个BIND,每个BIND为来自不同区域的用户提供解析,因此每个BIND都应具有不同的配置文件和域文件,并且分别监听在不同的端口。在接到客户端DNS请求时,根据客户的ip地址将请求重定向不同的BIND 服务端口。BIND响应时,再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行不同的BIND及运用iptables进行ip地址及端口改写操作。 2 配置过程 步骤1:配置内核 netfilter要求内核版本不低于2.3.5,在编译新内核时,要求选择和netfilter相关的项目。这些项目通常都是位于"Networking options"子项下。以,我们应该选中的项目有: ?Kernel/User netlink socket [ ] Routing messages <*>; Netlink device emulation ?Network packet filtering (replaces ipchains) ....... 然后,在"IP: Netfilter Configuration ---->;"选中: Connection tracking (required for masq/NAT) FTP protocol support IP tables support (required for filtering/masq/NAT) limit match support MAC address match support Netfilter MARK match support Multiple port match support TOS match support

linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)

linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链) 一、iptables:从这里开始 删除现有规则 iptables -F (OR) iptables --flush 设置默认链策略 iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。默认的链策略是ACCEPT,你可以将它们设置成DROP。 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP 你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,

除非你明确指定哪些数据包可以通过网卡。 屏蔽指定的IP地址 以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机: BLOCK_THIS_IP="x.x.x.x" iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP (或者仅屏蔽来自该IP的TCP数据包) iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP 允许来自外部的ping测试 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT 允许从本机ping外部主机 iptables -A OUTPUT -p icmp --icmp-type echo-request -j

Linux 防火墙的分类

Linux 防火墙的分类 世界时没有两种一样的事物,防火墙也是如此,防火墙的分类方法有很多,可以从形式上、技术上、结构上、性能上对其进行分类。 1.从形式上分类 从形式上分类,可以把防火墙分为软件和硬件防火墙两大类。 ●软件防火墙 软件防火墙运行于特定的计算机上,它需要用户预先安装好的计算机操作系统的支持,一般来说这台计算机就是整个网络的网关。软件防火墙就像其它的软件产品一样需要先在计算机上安装并做好配置才可以使用。使用这类防火墙,需要用户对操作系统平台比较熟悉。 ●硬件防火墙 硬件防火墙是一种以物理形式存在的专用设备,通常架设在内部局域网和外部互联网的连接处,直接在网络设备上检查过滤有害的数据,位于防火墙设备后端的网络或服务器接收到的是经过防火墙处理过的相对安全的数据,其不必占用CPU资源,进行基于软件的架构的NDIS(网络驱动程序接口)数据检测,这样大大提高了工作效率。 普通硬件防火墙,其拥有标准计算机的硬件平台和一些功能经过简化处理的Unix、Linux操作系统已及防火墙软件,这种防火墙措施相当于专门在一台计算机上安装了软件防火墙,除了不需要处理其他事务以外,其仍使用一般的操作系统,因此操作系统的安全问题,会对其造成影响。 芯片级防火墙基于专门的硬件平台,使用专用的OS(操作系统)。专有的ASIC 芯片促使它们比其他种类的防火墙速度更快,处理能力更强,性能更高。这类防火墙最出名的厂商有Juniper、Cisco、NetScreen、等。这类防火墙由于使用专用OS,因此防火墙本身的漏洞比较少,不过价格相对比较高昂。 2.从技术上分类 从技术上,可以把防火墙分为包过滤型、应用代理型(网关防火墙)和状态监视型防火墙3大类。 ●包过滤(Packet filtering)型 包过滤型防火墙工作在OSI网络参考模型的网络层和传输层,它根据数据包头源地址,目的地址、端口号和协议类型等标志确定是否允许通过。只有满足过滤条件的数据包才被转发到相应的目的地,其余数据包则被从数据流中丢弃。 包过滤方式是一种通用、廉价和有效的安全手段。之所以通用,是因为它不是针对各个具体的网络服务采取特殊的处理方式,适用于所有网络服务;之所以廉价,是因为大多数路由器都提供数据包过滤功能,所以这类防火墙多数是由路由器集成的;之所以有效,是因为它能很大程度上满足了绝大多数企业安全要求。

linux下防火墙的配置

Linux 自带的iptables 配置防火墙 一.实验目的: 通过自己所学的网络安全知识,完成Linux 自带的iptables 配置防火墙。 二.设计内容: 利用Linux 自带的iptables 配置防火墙。完成如下配置: 要求: (1)阻止任何外部世界直接与防火墙内部网段直接通讯 (2)允许内部用户通过防火墙访问外部HTTP 服务器允许内部用户通过防 火墙访问外部HTTPS 服务器 (3)允许内部用户通过防火墙防问外部FTP 服务器 三.实验步骤: 用实体机做内网,Linux 做防火墙,Redhat 做外网。 Linux 防火墙的设置 : Renhat 的设置: —————————————————装 订 线————————————————————————————————

内网的IP地址: 首先内网拼通防火墙内的路由器和外网: 防火墙启动IP转发功能: 外网添加路由使得外网可以拼同内网:

添加成功: 此时外网可以拼通内网: 在外网Redhat中编写脚本语言,使得允许内部用户通过防火墙访问外部HTTP服务器允许内部用户通过防火墙访问外部HTTPS服务器,允许内部用户通过防火墙防问外部FTP服务器: 外网启动http和ftp:

外网中编写网页内容: 启动编写的脚本,启动防火墙 此时再用外网拼内网拼不通,即防火墙阻止了外网访问内网: 用内网访问外网http://192.168.23.23 内部用户通过防火墙访问外部HTTP服务器,内部用户通过防火墙访问外部HTTPS服务器

用内网访问外网ftp://192.168.23.23 允许内部用户通过防火墙防问外部FTP服务器

Linux防火墙 配置文件 iptables详解

对于Internet上的系统,不管是什么情况都要明确一点:网络是不安全的。因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。 Linux提供了一个非常优秀的防火墙工具—netfilter/iptables。它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。本文将简单介绍使用netfilter/iptables实现防火墙架设和Internet连接共享等应用。 netfilter/iptabels 应用程序,被认为是 Linux中实现包过滤功能的第四代应用程序。netfilter/iptables包含在2.4以后的内核中,它可以实现防火墙、NAT(网络地址翻 译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。netfilter/iptables 从ipchains和ipwadfm(IP防火墙管理)演化而来,功能更加强大。下文将netfilter/iptabels统一称为iptables。 可 以用iptables为Unix、Linux和BSD个人工作站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。iptales只读取 数据包头,不会给信息流增加负担,也无需进行验证。要想获得更好的安全性,可以将其和一个代理服务器(比如squid)相结合。 基本概念 典型的防火墙设置有两个网卡:一个流入,一个流出。iptables读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。 通 过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用iptables系统提 供的特殊命令iptables建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。关于添加、去除、编辑规则的命令,一般语法如下: iptables [-t table] command [match] [target] 1.表(table) [-t table]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和 mangle。该选项不是必需的,如果未指定,则filter作为缺省表。各表实现的功能如表1所示。 表1 三种表实现的功能

信息安全实验报告Linux下的防火墙配置

【实验6】 使用iptables 实现防火墙 一、 实验目的: 1. 掌握iptables 命令的语法。 2. 掌握Linux 下防火墙的配置。 二、 【实验环境】 1. 虚拟机软件VM Ware 6.0,Redhat Enterprise Linux 虚拟机或光盘镜像文件。 2. 3台以上机器组成的局域网。 三、 实验内容: 某单位由于业务需要,假设了3台服务器,分别提供WWW 服务、FTP 服务和电子邮件服务。 该单位拥有一个局域网,IP 地址范围是192.168.1.0/24;使用一台Linux 主机配置包过滤防火墙以保护内部网络的安全,该Linux 主机有两个网络接口: eth0: 192.168.1.1,用于连接内网。 Eth1: 218.98.1.26,用于连接外网(internet )。 三台服务器的IP 地址分别为: WWW 服务器:192.168.1.11 FTP 服务器:192.168.1.12 电子邮件服务器:192.168.1.13 WWW 192.168.1.11 FTP 192.168.1.12

这个实验中以虚拟机模拟Linux防火墙 四、实验步骤 1、配置内网和外网接口的网络参数 内网接口eth0:192.168.1.1 子网掩码:255.255.255.0 外网接口eth0:218.98.1.26 子网掩码:255.255.255.0

2、建立脚本文件,使防火墙在Linux启动时自动运行。 在/etc/rc.d目录下建立一个名为“filter-firewall”的文件; 打开/etc/rc.d目录下的rc.local文件,在最后一行添加:/etc/rc.d/filter-firewall 保存,退出。

如何在RedHat Linux设置防火墙

如何在RedHatLinux设置防火墙 RedHatLinux是目前世界上使用最多的Linux操作系统。 因为它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价,但他同时也跟普通操作系统一样需要保护,下面是小编整理的一些关于REDHATLinux防火墙配置的方法资料,供你参考。 RedHatLinux下防火墙配置技巧 RedHatLinux为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。一个正确配置的防火墙可以极大地增加你的系统安全性。 为你的系统选择恰当的安全级别。 高级 如果你选择了“高级”,你的系统就不会接受那些没有被你具体指定的连接(除了默认设置外)。只有以下连接是默认允许的:DNS回应 DHCP—任何使用DHCP的网络接口都可以被相应地配置。如果你选择“高级”,你的防火墙将不允许下列连接: 1.活跃状态FTP(在多数客户机中默认使用的被动状态FTP 应该能够正常运行。) 2.IRCDCC文件传输。 3.RealAudio.

4.远程X窗口系统客户机。 如果你要把系统连接到互联网上,但是并不打算运行服务器,这是最安全的选择。如果需要额外的服务,你可以选择“定制”来具体指定允许通过防火墙的服务。 注记:如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。 中级 如果你选择了“中级”,你的防火墙将不准你的系统访问某些资源。访问下列资源是默认不允许的: 1.低于1023的端口—这些是标准要保留的端口,主要被一些系统服务所使用,例如:FTP、SSH、telnet、HTTP、和NIS. 2.NFS服务器端口(2049)—在远程服务器和本地客户机上,NFS都已被禁用。 3.为远程X客户机设立的本地X窗口系统显示。 4.X字体服务器端口(xfs不在网络中监听;它在字体服务器中被默认禁用)。 如果你想准许到RealAudio之类资源的访问,但仍要堵塞到普通系统服务的访问,选择“中级”。你可以选择“定制”来允许具体指定的服务穿过防火墙。注记:如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。 无防火墙

防火墙DNS配置详解(有图)

Linux服务器配置 一、网卡配置 Linux配置网络有两种方法: (1)鼠标配置:系统——首选项——网络连接——编辑——IPV4设置为自动——配置IP地址,例Ipaddress 202.206.90.129 NETMASK 255.255.255.0 GW 202.206.90.4 DNS 202.206.80.33 (2)用命令配置:按住Ctrl+Alt+F2进入命令编辑模式,键入以下代码: ——cd /etc/sysconfig/network-scripts ——vi ifcfg-eth0 配置:ipaddress:202.206.90.129 Netmask:255.255.255.0 Gw: 202.206.90.4 Dns: 202.206.80.33 退出并保存(ESC+:+wq) 二、DNS服务器 网卡设置好后,可以访问校园网了,接着配置DNS服务器 在命令行下:输入以下命令 1、创建挂载点文件夹mkdir rong 2、将文件挂起,以便安装包的使用mount /dev/cdrom rong 3、进到rong里找到Packages服务安装包cd rong/Packages 4、查看服务的安装情况,当前情况下是没有安装的ls –q dns 5、找到安装包并进行安装ls bind*.* rmp –ivh bind-9.7.8-5.P2.e16.i686.rpm 6、启动服务service named start 三、对安装上的服务做配置 1、对named.conf 文件编辑cd /etc vi named.conf 2、对resolv.conf 文件编辑vi /etc/resolv.conf 3、对正向区域文件name.rong 和反向区域文件name.ma 编辑 4、重启服务测试service network restart和service named restart 四、服务做好之后,把本地计算机上的DNS指向虚拟机里服务器的IP地址即202.206.90.129 7、安装dns服务rmp –ivh bind-9.7.8-5.P2.e16.i686.rpm

相关主题
文本预览
相关文档 最新文档