多语言展示
当前在线:1136今日阅读:103今日分享:49

操作系统防火墙配置:[2]Linux防火墙配置

防火墙:一种位于内部网络与外部网络之间的网络安全系统。所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上内部的人进行通信。
方法/步骤
1

1.netfilter/iptables介绍数据包经过filter表的过程如图5-46所示。

2

通过使用iptables命令建立过滤规则,并将这些规则添加到内核空间过滤表内的链中。添加、删除和修改规则的命令语法如下:#iptables [-t table] command [match] [target](1)table[-ttable]有3种可用的表选项:filter、nat和mangle。该选项不是必需的,如未指定,则filter表作为默认表。filter表用于一般的数据包过滤,包含INPUT、OUTPUT和FORWARD链。nat表用于要转发的数据包,包含PREROUTING链、OUTPUT链和POSTROUTING链。mangle表用于数据包及其头部的更改,包含PREROUTING和OUTPUT链。(2)commandcommand是iptables命令中最重要的部分,它告诉iptables命令要进行的操作,如插入规则、删除规则、将规则添加到链尾等。常用的一些命令如表5-15所示。 示例:#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)matchmatch部分指定数据包与规则匹配所应具有的特征,比如源IP地址、目的IP地址、协议等。常用的规则匹配器如表5-16所示。

3

linxu防火墙文档示例:#iptables -A INPUT -p TCP#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目标是由规则指定的操作,常用的一些目标和功能说明如表5-17所示。 (5)保存规则#iptables-save> iptables-script#iptables-restoreiptables-script2.Linux防火墙的配置创建“iptables_example.sh”文件,内容如下所示,执行如下两条命令:#serviceiptables start            //启动iptables#shiptables_example.sh        //配置防火墙的过滤规则下面是对“iptables_example.sh”文件的说明。第3行:开启内核对数据包的转发功能。第6行:开启内核对DOS(syn-flood)攻击的防范功能。第8、9行:eth0(ppp0)外网接口,如果通过宽带带动局域网上网,则用ppp0。第10行:eth1内网接口。第16~24行:加载模块。第26~30行:清空filter、nat、mangle表中的规则。第32~37行:对filter和nat表设置默认过滤规则。第44~47行:允许dns连接。第57~65行:根据指定端口和IP地址来过滤掉数据包。第67行:通过字符串匹配来阻止内网用户访问一些网站(“fund”指包含该单词的网页受阻)。第69~73行:根据是否是通过宽带(ppp0)带动局域网上网来选择相应的规则。第80、81行:对局域网内电脑的MAC和IP地址进行绑定,可以防止内网用户随意修改IP地址。iptables_example.sh文件内容如下:1   #!/bin/bash2  3   echo 1 >/proc/sys/net/ipv4/ip_forward4   #echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts5   #echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all6   echo 1 >/proc/sys/net/ipv4/tcp_syncookies7  8   #INET_IF='ppp0'9   INET_IF='eth0'10   LAN_IF='eth1'11   LAN_IP_RANGE='192.168.0.0/24'12   IPT='/sbin/iptables'13   TC='/sbin/tc'14   MODPROBE='/sbin/modprobe'15  16   $MODPROBE ip_tables17   $MODPROBE iptable_nat18   $MODPROBE ip_nat_ftp19   $MODPROBE ip_nat_irc20   $MODPROBE ipt_mark21   $MODPROBE ip_conntrack22   $MODPROBE ip_conntrack_ftp23   $MODPROBE ip_conntrack_irc24   $MODPROBE ipt_MASQUERADE25  26   for TABLE in filter nat mangle ; do27   $IPT -t $TABLE -F28   $IPT -t $TABLE -X29   $IPT -t $TABLE -Z30   done31  32   $IPT -P INPUT DROP33   $IPT -P OUTPUT ACCEPT34   $IPT -P FORWARD DROP35   $IPT -t nat -P PREROUTING ACCEPT36   $IPT -t nat -P OUTPUT ACCEPT37   $IPT -t nat -P POSTROUTING ACCEPT38  39   #拒绝互联网用户访问内网40   $IPT -A INPUT -i $INET_IF -m state --stateRELATED,ESTABLISHED -j ACCEPT41   $IPT -A INPUT -p tcp --dport 22 -j ACCEPT42   $IPT -A INPUT -i $INET_IF -m state --stateNEW,INVALID -j DROP43  44   for DNS in $(grep ^n /etc/resolv.conf|awk'{print $2}'); do45   $IPT -A INPUT -p tcp -s $DNS --sport domain-j ACCEPT46   $IPT -A INPUT -p udp -s $DNS --sport domain-j ACCEPT47   done48  49   # anti bad scaning50   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsALL FIN,URG,PSH -j DROP51   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsALL ALL -j DROP52   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsALL SYN,RST,ACK,FIN,URG -j DROP53   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsALL NONE -j DROP54   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsSYN,RST SYN,RST -j DROP55   $IPT -A INPUT -i $INET_IF -p tcp --tcp-flagsSYN,FIN SYN,FIN -j DROP56  57   $IPT -A INPUT -p tcp --sport 1080 -j DROP58   $IPT -A INPUT -p tcp --sport 1090 -j DROP59   $IPT -A INPUT -i $INET_IF -s 60.2.139.192/27-j DROP60   $IPT -A INPUT -i $INET_IF -s 60.3.246.162/32-j DROP61  62   $IPT -A FORWARD -p tcp --sport 1080 -j DROP63   $IPT -A FORWARD -p tcp --dport 1080 -j DROP64   $IPT -A FORWARD -s 60.2.139.192/27 -j DROP65   $IPT -A FORWARD -d 60.2.139.192/27 -j DROP66  67   $IPT -A FORWARD -m string --algo bm --string'fund' -j DROP68  69   if [ $INET_IF = 'ppp0' ] ; then70   $IPT -t nat -A POSTROUTING -o $INET_IF -s$LAN_IP_RANGE -j MASQUERADE71   else72   $IPT -t nat -A POSTROUTING -o $INET_IF -s$LAN_IP_RANGE -j SNAT --to-source 1.2.3.473   fi74  75   #no limit76   $IPT -A FORWARD -s 192.168.0.18 -m mac--mac-source 00-16-EC-A8-F1-A5 -j ACCEPT77   $IPT -A FORWARD -d 192.168.0.18 -j ACCEPT78  79   #MAC、IP地址绑定80   $IPT -A FORWARD -s 192.168.0.2 -m mac--mac-source 00-18-F3-30-86-45 -jACCEPT81   $IPT -A FORWARD -s 192.168.0.3 -m mac--mac-source 00-15-60-B9-94-8E -j ACCEPT82  83   $IPT -A FORWARD -d 192.168.0.2 -j ACCEPT84   $IPT -A FORWARD -d 192.168.0.3 -j ACCEPT

推荐信息