防火墙与NAT服务器

1、认识防火墙

防火墙就是定义一些有顺序的规则,并管理进入到网络内的主机数据数据包的一种机制。广义的来讲,只要能够分析与过滤出我们管理的网络的数据包的数据,就可以称为防火墙

防火墙又分为  “硬件防火墙” 和 “软件防火墙”,放火墙的最大功能是帮助你限制某些服务的访问

建议利用 Shell scripts来撰写属于你自己的防火墙机制,这样比较清晰

防火墙最重要的规划

切割被信任(子域)与不被信任(Internet)的网段

划分出可提供Internet的服务与必须受保护的服务

分析出可接受与不可接受的数据包状态

1.2、Linux系统上防火墙的主要类别

基本上,依据防火墙的管理范围,我们可以将防火墙区分为 “网络型” 和 “单一主机型” 的管理。

单一型主要是 NetFilter 和 TCP Wrapper两种,区域性防火墙都是充当路由器角色,因此包含了 NetFilter 和 利用代理服务器(Proxy Server)

Netfilter (数据包过滤机制):主要分析 Header,Port,Mac,IP,Flags。提供了 iptables 这个软件来作为防火墙数据过滤命令

TCP Wrappers(程序管理):主要是通过分析服务器程序来管理,因此与启动的端口无关,只与程序名有关

Proxy(代理服务器):代理服务器其实是一种网络服务。

Proxy Server 的运作原理简介

1.3、防火墙的一般网络布线示意

防火墙除了保护防火墙机制本身所在的那台主机之外,还可以保护防火墙后面的主机。

1.3.1、单一网络,仅有一个路由器

单一网域,仅有一个路由器的环境示意图

架设在路由器上的防火墙可以管理整个局域网的数据包进出

因为内外网网络分开,所以安全维护在内部可以开放的权限较大

安全机制的设置可以针对 Linux 防火墙主机来维护即可

对外只看到Linux防火墙主机,对于内网的可以达到有效的保护

1.3.2、内部网络包含安全性更高的子网,需内部防火墙切开子网

内部网络包含需要更安全的子网防火墙

防火墙对于LAN的防护不会设置的那么严密,所以公司中有什么特别重要的部门需要更安全的网络环境。那么在LAN里面在加一个防火墙,将安全等级分类,那么将会让重要的数据获得更佳的保护

1.3.3、在防火墙后面架设网络服务器主机

非军事化隔离区(DMZ)

将网络服务器独立放置在两个防火墙中间的网络,我们称之为 ”非军事化隔离区(DMZ)“。DMZ重点在于保护服务器本身,所以将 Internet 和 LAN都隔离开来。如此依赖,不论是服务器本身还是LAN被攻陷时,另一个区域还是完好无损的。

1.4、防火墙使用的限制

拒绝让 Internet 的数据包进入主机的某些端口

拒绝让某些来源 IP 的数据包进入

拒绝让带有某些特殊标志(Flag)的数据包进入:如 SYN 连接

分析硬件地址(MAC)来决定连接与否

防火墙并不能有效阻挡病毒或木马程序

防火墙对于来自内部的LAN的攻击无能为力

所以,还是前面那几句话:

关闭几个不安全的服务

升级几个可能有问题的软件

使用防火墙架设好最起码的安全防护



2、TCP Wrappers

说穿了,TCP Wrappers 就是通过  /etc/hosts.allow、/etc/hosts.deny 这两个宝贝来管理的一个类似防火墙的机制

但必须是由

 super daemon  (xinetd)所管理的服务 : 配置文件在 /etc/xinetd.d/  里面的服务就是 xinetd 所管理

支持  libwrap.so 模块的服务 : 使用 ldd 命令来查看

2.2、/etc/hosts.{ allow | deny }

这两个文件的顺序与优先级

先以 /etc/hosts.allow 进行比对,规则符合就予以放行

再以 /etc/hosts.deny 比对,规则符合就予以阻挡

若不再这两者之内,亦即规则都不符合,最终予以放行

这两者的配置举例

ALL : 127.0.0.1

xxxx : 111.222.221.15/255.255.255.0<ip, domain, hostname>    #tcp wrappers 理论上不支持 CIDR形式的掩码,只支持Net mask的地址显示形式



3、IPv4的内核管理功能:/proc/sys/net/ipv4/*

除了 iptabels 这个防火墙软件外,Linux还提供了很多内核默认的攻击阻挡机制。由于是内核的网络功能,所以相关的设置数据都是放在 “/proc/sys/net/ipv4/" 这个文件夹下

Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。

为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中,如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程(可以想象得到,在某进程结束后其相关目录则会消失)。

3.1、/proc/sys/net/ipv4/tcp_syncookies

我们谈到的阻断式服务(Dos)攻击,就是利用 TCP 数据包的 SYN 三次握手原理实现的,这种方式称为 SYN Flooding。我们可以启用内核的 SYN Cookies 模块,在系统用来启动随机连接的端口(1024:65535)即将用完时自动启动。

当启动 SYN Cookies 时,主机在发送 SYN/ACK 确认数据包前,会要求 Client 端在短时间内回复一个序号,这个序号包含许多原 SYN 数据包内的信息,包括 IP、Port等。若 Client 端可以回复正确的序号,那么主机就确定该数据包为可信的,因此会发送 SYN/ACK 数据包,否则就不理会此数据包。

通过这一机制,可以大大降低大量无效的 SYN 等待端口,避免 SYN Flooding 的 Dos 攻击。

要启用此模块,只需把 " /proc/sys/net/ipv4/tcp_syncookie " 的值置为 1

但是这个设置值由于违反了 TCP 的三次握手(因为主机在发送 SYN/ACK之前需要先等待 Client 的序号响应),所以可能会造成某些服务的延迟现象。不适合用在负载已经很高的服务器内,因为负载太高的主机有时会让内核误判遭受 SYN Flooding 的攻击。

/proc/sys/net/ipv4/tcp_syncookie

3.2、/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

我们来谈谈 Ping Flooding 攻击(不断发 ping,并且发送大量数据包,无数的僵尸主机)

ping广播地址就是把ping包发给网络中所有主机,只要主机在线,那么就会回包,可以用来查看有哪些主机在线。

关闭 ping broadcasts 只需把 " /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts " 的值置为 1

/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

3.3、/proc/sys/net/ipv4/conf/网络接口/*

Linux的内核还可以针对不同的网络接口进行不一样的参数设置,网络接口的相关设置放置在此。

/proc/sys/net/ipv4/conf/eth0/



4、NAT服务器的设置

4.1、NAT,DNAT,SNAT

Network Address Translation,Destination,Source

修改数据包报头来源项目,修改数据包报头目标项目

4.2、最简单的NAT服务器:IP 分享功能

举例,伪装(MASQUERADE):

$innet 是内网域,MASQUERADE 就是 IP 伪装成为数据包出去(-o)的那块设备上的IP。  即只要来自于 $innet 网域的IP则从eth0这个接口的IP出去。

iptables  -t  nat  -A  POSTROUTING  -s  $innet  -o  eth0  -j  MASQUERADE  

除了 IP 伪装之外,我们还可以直接指定修改 IP 数据包报头的来源IP:

iptables  -t  nat  -A  POSTROUTING  -o  eth0  -j  SNAT  --to-source  192.168.xx.xx

# --to-source  192.168.xx.10-192.168.xx.20 表示某一段

4.3、在防火墙后端的网络服务器上做DNAT 设置

DNAT 是在 nat  PREROUTING 链

iptables  -t  nat  -A  PREROUTING  -p  tcp -i  eth0  --dport 80  -j  DNAT  --to-destination  192.168.xx.xx:80

iptables  -t  nat  -A  PREROUTING  -p  tcp  --dport  80  -j  REDIRECT  --to-ports 8080



重点回顾:

要拥有一台安全的主机,必须要有良好的主机权限设置、随时的更新套件、定期的重要数据备份、完善的员工教育机制。仅有防火墙是不够的。

防火墙最大的功能就是帮助你 “限制某些服务的访问来源”,可以管理来源与目标的IP。

防火墙根据数据包阻挡的层次,可以分为Proxy以及IP Filter两种类型。

在防火墙内,但不在LAN内的服务器所在网络,通常被称为DMZ(非军事化隔离区)。

数据包过滤机制的防火墙,通常至少可以分析 IP、Port、flag(如tcp的syn)

防火墙对于病毒的阻挡并不敏感

防火墙对于来自内部的网络误用或滥用的阻挡性比较不足

并不是架设了防火墙之后系统就一定安全,还是需要更新软件漏洞以及管制用户行为和权限等

内核2.4以后的Linux使用iptables作为防火墙软件

防火墙的制定与规则顺序有很大的关系,若规则顺序错误,可能会导致防火墙的失效。

iptables 的默认table共有3个,分别是Filter、NAT及Mangle,常用的为Filter(本机)和NAT(后端主机)

filter table 主要为针对本机的防火墙设置,根据数据包的流向又分为 INPUT、OUTPUT、FORWARD 3条链

NAT table主要针对防火墙的后端主机,根据数据包流向又分为PREROUTING、OUTPUT、POSTROUTING 3条链,其中 PREROUTING 与 DNAT有关,POSTROUTING 则与SNAT有关。

iptables 的防火墙规则比对,但所有规则都不符合时,则以默认的策略(Policy)作为数据包的行为依据。

防火墙可以多重设置,例如虽然已经设置了 iptables,但仍可以持续设置TCP Wrappers,因为谁也不晓得什么时候iptables会有漏洞,或者是规则规划不合适。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,438评论 0 2
  • 防火墙的概念iptables的简介iptables命令网络防火墙NATfirewalld服务 一、防火墙的概念 (...
    哈喽别样阅读 1,789评论 0 1
  • 一.防火墙概念 (一)安全技术介绍 (1) 入侵检测与管理系统(Intrusion Detection Syste...
    楠人帮阅读 1,429评论 0 3
  • 茕茕采药谁家女, 一见公子误终身。 寂寂宫墙静十载, 窃窃心事藏七分。 庭院石楠吹又绿, 朝堂旧事入微尘。 昭雪沉...
    萧亦行阅读 347评论 0 1
  • 这个常见吧?! DOCTYPE声明位于html文档中的第一行,告知浏览器的解析器用什么文档标准来解析这个文档。这玩...
    Ken宣霖阅读 207评论 0 0