一、什么是防火墙?

防火墙其实就是一个隔离工具:工作于主机或者网络的边缘

对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测

对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬件,也可以是软件)

种类:

主机防火墙、网络防火墙

硬件防火墙、软件防火墙

硬件防火墙:思科(AIR-CT5508-300-K9)、华为(USG6670)

报文:报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。比如里面有报文类型,报文版本,报文长度,报文实体等等信息。

报文就是在各个系统之间进行请求和响应时用来交换信息的,还需要遵守规定好的格式。另外,应用报文多是多个系统之间需要通信的时候,比如银行的ESB系统到网关系统再到银联系统。在这中间报文就承担了装载数据,运输数据的功能,可能在这三个系统中报文的格式互不相同,但是承载的数据都是一样的。

套接字:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。

二、四表五链:

1、、功能(表)

filter:过滤,防火墙

nat:network address translation,网络地址转换

mangle:拆分报文,做出修改,封装报文

raw:关闭nat表上启用的连接追踪机制

2、链(内置)chain

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

3、应用优先级

表:filter nat mangle raw

策略应用优先级:raw > mangle > nat > filter

策略常用优先级:filter > nat > mangle > raw

链:prerouting input forward output postrouting

4、表中的链:(各功能可以在哪些链上实现)

filter:INPUT,FORWARD,OUTPUT

nat:PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT)

mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw:PREROUTING,OUTPUT

5、数据报文的流向:

流入:PREROUTING --> INPUT

流出:OUTPUT --> POSTROUTING

转发:PREROUTING --> FORWARD --> POSTROUTING

6、路由发生的时刻(PREROUTING,POSTROUTING)

报文进入本机后:判断目标主机

报文发出之前:判断经由哪个借口送往下一跳

7、添加规则时的考量点:

(1)要实现什么功能:判断添加在哪张表上;

(2)报文流经的路径:判断添加在哪个链上;

三、工具

规则管理工具,就是负责在5个钩子函数中添加删除修改等操作

在6中管理防火墙工具:iptables/netfilter

在7中管理防火墙工具:firewalld

常用选项:

1、链管理

-F: flush,清空规则链:省略链,表示清空指定表上的所有的链

-N: new,  创建新的自定义规则链:

-X: drop, 删除用户自定义的空的规则链

-P: Policy, 为指定链这是默认策略,对filter表中的链而言,默认策略通常有ACCEPT,DROP,REJECT;

2、规则管理

-A:append,将新规则追加于指定链的尾部

-I:insert,将新规则插入至指定链的指定位置

-D:delete,删除指定链上的指定规则:

3、查看防火墙策略

-L:list, 列出指定链上的所有规则:

-n:number,以数字格式显示地址和端口号

-v:verbose,显示详细信息

                 -vv,-vvv

--line-numbers:显示规则编号:

4、匹配条件

-s, source:检查报文中源ip地址是否符合此处指定的地址范围

-d, destination:检查报文中ip地址是否符合此处指定的地址范围

-p, protocol(udp|tcp|icmp):检查报文中的协议

-i, input-interface:数据报文的流入接口:仅能用于PREROUTING,INPUT,FORWARD链上(从指定网卡流入的报文)

-o, out-interface:数据报文的流出接口:仅能用于POSTROUTING,OUTPUT,FORWARD链上(从指定网卡流出的报文)

    -j target:jump至指定的target

 ACCEPT:接受

 DROP:丢弃

 REJECT:拒绝

 RETURN:返回调用链

 REDIRECT:端口重定向

 LOG:记录日志

 MARK:做防火墙标记

 DNAT:目标地址转换

 SNAT:源地址转换

 MASQUERADE:地址伪装

 ....

 自定义链:由自定义链中的的规则进行匹配

--dport:指定目标端口

--sport:指定源端口

-m:multiport PORT,PORT,[PORT]    设置多个端口

iprange --src-range 192.168.1.1-192.168.1.254

string --algo bm --string 'STRING'

state --state NEW,ESTABLISHED,RELATED,INVALID

保存防火墙配置:iptables-save > filename

恢复防火墙配置:iptables-restore < filename

四、例子:

1、拒绝访问本主机的web服务(80端口)

iptables -t filter -A INPUT -p tcp --dport 80 -j DROP

iptables -t filter -I OUTPUT -p tcp --sport 80 -j DROP

2、限制所有主机拒绝ping本主机

iptables -t filter -A INPUT -s 192.168.254.0/24 -d 192.168.254.13 -p icmp -j REJECT

iptables -t filter -A INPUT -s 192.168.254.1 -d 192.168.254.13 -p icmp -j REJECT

3、拒绝192.168.254.1这个主机发送icmp协议的报文流入本主机的ens33网卡

iptables -t filter -A INPUT -s 192.168.254.1 -i ens33 -p icmp -j REJECT

iptables -t filter -A OUTPUT -d 192.168.254.1 -o ens33 -p icmp -j REJECT

4、修改INPUT链上的默认策略

iptables -P INPUT DROP

5、拒绝192.168.254.1-254的机器访问本主机的21,80端口

iptables -t filter -A INPUT -p tcp -m multiport --dports 21,80 -m iprange --src-range 192.168.254.1-192.168.254.254 -j REJECT

6、访问的报文中出现hello字符的那么就拒绝传输

iptables -I OUTPUT -m string --algo bm --string 'hello' -j REJECT

nat表:

#开启核心转发功能

临时性:

echo 1 > /proc/sys/net/ipv4/ip_forward

永久性:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

7、源地址为192.168.20.2的主机地址经过防火墙都转换成172.16.100.1这个ip地址(SNAT:源地址转换)

iptables -t nat -A POSTROUTING -s 192.168.20.2 -d 172.16.100.2 -j SNAT --to-source 172.16.100.1

8、访问目标地址为172.16.100.1这个机器并且是tcp协议80号端口的都转发给192.168.20.2的80端口(DNAT目标地址转换)

iptables -t nat -A PREROUTING -d 172.16.100.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.20.2:80

9、访问目标地址为172.16.100.1这个机器并且是tcp协议80号端口的都转发给192.168.20.2的8080号端口(DNAT目标端口地址转换)

iptables -t nat -A PREROUTING -d 172.16.100.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.20.2:8080

五、关键技术

1、包过滤技术

防火墙的包过滤技术一般只应用于OSI7层的模型网络层的数据中,其能够完成对防火墙的状态检测,从而预先可以把逻辑策略进行确定。逻辑策略主要针对地址、端口与源地址,通过防火墙所有的数据都需要进行分析,如果数据包内具有的信息和策略要求是不相符的,则其数据包就能够顺利通过,如果是完全相符的,则其数据包就被迅速拦截。计算机数据包传输的过程中,一般都会分解成为很多由目和地质等组成的一种小型数据包,当它们通过防火墙的时候,尽管其能够通过很多传输路径进行传输,而最终都会汇合于同一地方,在这个目地点位置,所有的数据包都需要进行防火墙的检测,在检测合格后,才会允许通过,如果传输的过程中,出现数据包的丢失以及地址的变化等情况,则就会被抛弃。

2、加密技术

计算机信息传输的过程中,借助防火墙还能够有效的实现信息的加密,通过这种加密技术,相关人员就能够对传输的信息进行有效的加密,其中信息密码是信息交流的双方进行掌握,对信息进行接受的人员需要对加密的信息实施解密处理后,才能获取所传输的信息数据,在防火墙加密技术应用中,要时刻注意信息加密处理安全性的保障。在防火墙技术应用中,想要实现信息的安全传输,还需要做好用户身份的验证,在进行加密处理后,信息的传输需要对用户授权,然后对信息接收方以及发送方要进行身份的验证,从而建立信息安全传递的通道,保证计算机的网络信息在传递中具有良好的安全性,非法分子不拥有正确的身份验证条件,因此,其就不能对计算机的网络信息实施入侵。

3、防病毒技术

防火墙具有着防病毒的功能,在防病毒技术的应用中,其主要包括病毒的预防、清除和检测等方面。防火墙的防病毒预防功能来说,在网络的建设过程中,通过安装相应的防火墙来对计算机和互联网间的信息数据进行严格的控制,从而形成一种安全的屏障来对计算机外网以及内网数据实施保护。计算机网络要想进行连接,一般都是通过互联网和路由器连接实现的,则对网络保护就需要从主干网的部分开始,在主干网的中心资源实施控制,防止服务器出现非法的访问,为了杜绝外来非法的入侵对信息进行盗用,在计算机连接的端口所接入的数据,还要进行以太网和IP地址的严格检查,被盗用IP地址会被丢弃,同时还会对重要信息资源进行全面记录,保障其计算机的信息网络具有良好安全性。

4、代理服务器

代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。

代理服务器是防火墙技术引用比较广泛的功能,根据其计算机的网络运行方法可以通过防火墙技术设置相应的代理服务器,从而借助代理服务器来进行信息的交互。在信息数据从内网向外网发送时,其信息数据就会携带着正确IP,非法攻击者能够分局信息数据IP作为追踪的对象,来让病毒进入到内网中,如果使用代理服务器,则就能够实现信息数据IP的虚拟化,非法攻击者在进行虚拟IP的跟踪中,就不能够获取真实的解析信息,从而代理服务器实现对计算机网络的安全防护。另外,代理服务器还能够进行信息数据的中转,对计算机内网以及外网信息的交互进行控制,对计算机的网络安全起到保护。

基本功能:

(1)    一个lP地址或Internet帐户供多个用户同时使用

(2)    缓存功能,可以降低费用,提高速度

(3)    对内部网络用户进行权限和信息流量计费管理

(4)    对进入内部网络的Internet信息实施监控和过滤

Linux中级之netfilter防火墙(iptables)的更多相关文章

  1. linux中级之netfilter防火墙(firewalld)

    一.firewalld主要概念 dynamic firewall daemon.支持ipv4和ipv6.Centos7中默认将防火墙从iptables升级为了firewalld.firewalld相对 ...

  2. Linux中级之netfilter/iptables应用及补充

    一.iptables介绍 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常 ...

  3. linux web服务器,防火墙iptables最简配置

    配置防火墙(服务器安全优化) 安全规划:开启 80  22 端口并 打开回路(回环地址 127.0.0.1) # iptables –P INPUT ACCEPT # iptables –P OUTP ...

  4. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  5. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  6. (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?

    转自:http://blog.chinaunix.net/uid-23069658-id-3160506.html 本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之 ...

  7. linux下的防火墙iptables

    防火墙(firewall),也称为防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网.它是一项信息安全的防护系统,依照特定的规则,允许或者是限制传输的数据通过. ...

  8. linux平台下防火墙iptables原理(转)

    原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables( ...

  9. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

随机推荐

  1. 简单模拟实现javascript中的call、apply、bind方法

    目录 引子 隐式丢失 硬绑定 实现及原理分析 总体实现(纯净版/没有注释) 写在最后 引子 读完<你不知道的JavaScript--上卷>中关于this的介绍和深入的章节后,对于this的 ...

  2. 02 . MongoDB复制集,分片集,备份与恢复

    复制集 MongoDB复制集RS(ReplicationSet): 基本构成是1主2从的结构,自带互相监控投票机制(Raft(MongoDB)Paxos(mysql MGR 用的是变种)) 如果发生主 ...

  3. “改造” VS Code 编辑器,一起写个插件吧!

    作者:HelloGitHub-小夏(首发于 HelloGitHub 公众号) 作为一个靠代码作为"生计"的开发者,bug 写的好不好,编辑器真的很重要!那么 Visual Stud ...

  4. pwnable.tw orw

    orw 首先,检查一下程序的保护机制 开启了canary保护,还是个32位的程序,应该是个简单的题

  5. java反射Array的使用

    1.什么是Array Array是一个类的简写,全限定类名是java.lang.reflect.Array. 2.Array有什么用 Array可以代表所有的数组,可以通过Array动态创建与修改里面 ...

  6. aws EKS EFS storageclass PV PVC Pod

    storageclass [root@localhost specs]# cat storageclass.yaml kind: StorageClass apiVersion: storage.k8 ...

  7. mooc人大单元测试1

    @font-face { font-family: Wingdings } @font-face { font-family: 宋体 } @font-face { font-family: " ...

  8. 【cypress】4. 丰富的调试工具

    Cypress附带了一系列调试工具来帮助我们弄明白测试的经过,利于我们更好的调试. 具体这些工具的能力都有啥? 回到每个命令的快照. 可以看到特殊的已发生的page events. 接收关于每个命令的 ...

  9. Summary: DOM modification techniques

    Modifying an existing element We covered various ways that you can modify aspects of an existing ele ...

  10. ListBox控件简单的数据绑定

    <ListBox Margin="17,8,15,26" Name="ListBoxName" ItemsSource="{Binding Ta ...