防火墙基础知识

防火墙概念

隔离功能,工作在网络或主机边缘,对进出网络或主机的 数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一 组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允 许访问的策略

工作特性(防火墙默认放行两种类型的数据包):

1.企业内网中的主机向外网发送的请求数据包

2.外网主机对内网主机的请求进行响应的数据包

防火墙种类

主机防火墙

网络层防火墙

通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议 状态等因素,或他们的组合来确定是否允许该数据包通过

无法检查网络病毒等功能

应用层防火墙

在应用层对数据进行检查,比较安全 可以检查请求网站的域名分析http请求头中的各种数据

Netfilter组件

内核空间,集成在linux内核中

内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、 PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一 个命令工具(iptables)向其写入规则

由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放 在链(chain)上

1.如果数据包是发送给本机的,那么需要经过 prerouting 和i nput 两个钩子函数

2.如果数据包是要转发给别的主机的需要经过 prerouting forward postrouting 三个钩子函数

3.如果数据包是从本机直接向外发送的那么需要经过 output postrouting 两个钩子函数

四表:

filter表:  起到数据包的过滤功能

nat表 (网络地址转换表):   修改数据报文的IP地址

mangle:  给数据报文打标签做分类

Raw :      关闭NAT表示启用的连接跟踪机制,加快封包穿越防火墙速度

优先级从高到低:   raw  >  mangle  > nat > filter

四表和五链之间关系:

防火墙工具

iptables

命令行工具,工作在用户空间

用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

firewalld

CentOS 7引入新的前端管理工具

防火墙匹配规则:

分别从每个表从上往下依次匹配,当匹配到合适的规则时候便即刻生效,不会再向下匹配规则记录.基于此机制,越精细的匹配规则需要放置在表中越靠前位置.

当所有的规则都没有匹配到后,即启用默认规则

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)    policy ACCEPT就是默认规则  默认规则不能清除,只能修改

定义防火墙规则之前先把系统的防火墙策略进行一个备份,然后定义一个计划任务在一段时间后还原备份的防火墙策略,防止修改防火墙规则后导致自己无法连接到远程主机,保证即使有误操作也能在一段时间后自动恢复原来的策略.

使用命令行关闭防火墙的实质是告诉内核不使用内核的默认防火墙规则,而不是关闭内核防火墙的功能,内核的防火墙功能是一直存在的.

iptables添加要点:

匹配条件:

1.基础模块

基本匹配条件:无需加载模块,由iptables/netfilter自行提供

-s, --source  address[/mask][,...]:源IP地址或范围

-d, --destination address[/mask][,...]:目标IP地址或范围

-p, --protocol protocol:指定协议,可使用数字如0(all)

protocol: tcp, udp, icmp, icmpv6, udplite,esp, ah, sctp, mh or  “all“  参看:/etc/protocols

-i, --in-interface name:报文流入的接口;只能应用于数据报文流入环节,只应用于 INPUT、FORWARD、PREROUTING链

-o, --out-interface name:报文流出的接口;只能应用于数据报文流出的环节,只应用 于FORWARD、OUTPUT、POSTROUTING链

2.扩展模块

隐式扩展:在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块的扩展 机制,不需要手动加载扩展模块

iptables -A INPUT -s 129.168.30.7 -p tcp --dport 446:450 -j REJECT

显式扩展:必须使用-m选项指明要调用的扩展模块的扩展机制,要手动加载 扩展模块

iptables -A INPUT -p tcp -m multiport --dports 21,80,445 -j REJECT

iptables规则管理

-A:append,追加

-I:insert, 插入,要指明插入至的规则编号,默认为第一条

-D:delete,删除

(1) 指明规则序号

(2) 指明规则本身

-R:replace,替换指定链上的指定规则编号

-F:flush,清空指定的规则链

-Z:zero,置零

iptables的每条规则都有两个计数器

(1) 匹配到的报文的个数

(2) 匹配到的所有报文的大小之和

iptables处理动作:

-j      targetname [per-target-options]

简单: ACCEPT,DROP

扩展: REJECT:--reject-with:icmp-port-unreachable默认

RETURN:返回调用链

REDIRECT:端口重定向

LOG:记录日志,dmesg

MARK:做防火墙标记

DNAT:目标地址转换

SNAT:源地址转换

MASQUERADE:地址伪装

iptables扩展模块

1.tcp协议的扩展选项

iptables   -A  INPUT  -s  172.16.0.0/16 -d 172.16.100.10 -p tcp -m multiport --dports 20:22,80 -j ACCEPT

2.iprange扩展

iptables   -A   INPUT  -d  172.16.1.100 -p  tcp --dport 80 -m iprange --src-range 172.16.1.5172.16.1.10 -j DROP

3.mac扩展

iptables -A INPUT -s 172.16.0.100 -m mac  --mac-source 00:50:56:12:34:56   -j   ACCEPT

4.string扩展 (具有检测应用层报文字符串的功能,但是不能检测加密后的报文)

iptables -A OUTPUT -s 172.16.100.10 -d 0/0 -p tcp --sport 80 -m string --algo bm -string “google" -j REJECT

5.time扩展

iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp --dport 80 -m time --timestart 14:30 --timestop 18:30 --weekdays Sat,Sun --kerneltz -j DROP

--kerneltz:内核时区,不建议使用,CentOS7系统默认为UTC

6.connlimit扩展

iptables -A INPUT -d 172.16.100.10 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT

7.limit扩展

iptables -I INPUT -d 172.16.100.10 -p icmp --icmp-type 8 -m limit --limit 10/minute -limit-burst 5 -j ACCEPT

8.state扩展

iptables -A INPUT -d 172.16.1.10 -p tcp -m multiport --dports 22,80 -m state -state NEW,ESTABLISHED -j ACCEP

iptables自定义链(模块化管理规则)

iptables   -N    WEB

iptables  -A  WEB  -p  tcp  -m  multiport --dports  80,443   -j   ACCEPT

iptables  -I  INPUT  -j   WEB

防火墙规则保存

用户添加的防火墙规则默认是不能持久保存的,重启服务或者重启系统后所有的规则都会被清空

系统默认的防火墙规则的配置文件路径  /etc/sysconfig/iptables

保存iptables规则       iptables-save      >    /etc/iptables-201806

还原iptables规则       iptables-restore  <    /etc/iptables-201806

原文地址:https://www.cnblogs.com/yxh168/p/9235939.html

时间: 2024-09-30 10:54:32

防火墙基础知识的相关文章

Linux防火墙基础知识及配置

Linux防火墙基础知识 Linux的防火墙正确的来说并不算是防火墙,只是一种防火墙的功能体现.我们现在来讲解下Linux的这个防火墙功能的详细解释. Linux的防火墙是由iptables与netfilter两个程序组成的,而iptables是一个单独的程序,netfilter是集成到内核中的一个程序,两个程序合作才能拥有完整的防火墙功能. Iptables的功能是向netfiler提供规则,netfilter则是将规则执行起来. Linux防火墙还分为主机防火墙与网络防火墙. 主机防火墙:工

绿盟防火墙基础知识

1.定义接口类型 接口:指网络物理硬件接口的逻辑对象,拥有配置网络地址并进行网络通讯的能力. 接口的模式 :  全双工  半双工 以及 auto  . 绿盟防火墙的默认接口模式为 auto . 子接口:信息流进出安全区的开口 (安全区域的类型为type 3 ,能够配置不同网段的地址) 即一个物理接口,可以分为多个子接口 (类似VLAN的划分模式) 2.绿盟防火墙的5种工作模式 1.透明(layer2)--配置在同一种安全区的多个接口处于二层交换工作模式. 2.路由(layer3)--配置在同一种

防火墙基础知识--TCP Wrappers和IPtables两种机制

认识防火墙 概念 作用 Linux上防火墙类别 封包过滤机制Netfilter 程序管控机制TCP Wrappers 一般网络布线 使用能力限制 TCP Wrappers程序管控 概念: 简单来说,TCP wrappers就是透过/etc/hosts.allow和/etc/hosts.deny这两个文件来管理,但并非所有软件都可以. 支持的服务 super daemon (xinetd)管理的服务 chkconfig --list 显示内容下的xinetd based services: 支持l

网络基础知识查询

第一章.基础网络概念 1.1 网络是个什么玩意儿 全世界的人种有很多,人类使用的语言种类也多的很.那如果你想要跟外国人沟通时,除了比手划脚之外,你要如何跟对方讲话? 大概只有两种方式啰,一种是强迫他学中文,一种则是我们学他的语言,这样才能沟通啊.在目前世界上的强势语言还是属于英语系国家, 所以啰,不管是啥人种,只要学好英文,那么大家都讲英文,彼此就能够沟通了.希望不久的未来,咱们的中文能够成为强势语言啊! 这个观念延伸到网络上面也是行的通的,全世界的操作系统多的很,不是只有 Windows/Li

Linux基础知识(2)

Linux基础知识: 一.程序管理: (1)程序的组成部分: (2)二进制程序: (3)配置文件: (4)库文件: (5)帮助文件: 二.程序包管理器: X: (1)程序的组成文件打包成一个或有限几个文件: (2)安装: (3)卸载: (4)查询: 三.安装Linux: 虚拟机安装Linux系统 需要设置计算机的CPU, 内存, IO等 四.虚拟化软件程序: vmwareworkstation和virtualbox虚拟机都可以安装系统 五.CentOS的镜像站点: http://mirrors.

如何成为一名黑客(网络安全从业者)——计算机基础知识篇

大家好,我是Mr.Quark,大家可以叫我夸克,欢迎大家在微信公众号(Quark网络安全)上给我留言,如果有时间我一定会一一回复大家的.今天我将和大家一起学习"如何成为一名黑客"或者说"如何成为一名网络安全专家". 在进入正题之前,我们先来给黑客下一个定义,毕竟如果连黑客的含义都不了解,成为黑客更是无从谈起. "黑客"称呼的变迁 在很久很久以前(别问我有多久,不要在意这些细节),"黑客"指的是喜爱钻研技术.精通计算机技术的程序

Kali Linux渗透基础知识整理(二)漏洞扫描

Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网络上传输的数据量. TCP协议 TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议. 连接建立 TC

你得学会并且学得会的Socket编程基础知识

这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解. 本文源代码,可以通过这里下载 http://files.cnblogs.com/chenxizhang/SocketWorkshop.rar 第一步:创建解决方案 第二步:创建服务端程序 这里可以选择“Console Application”这个类型,比较方便调试 然后编写如下代码,实现服务器的基本功能 using System; using System.Coll

三层控件基础知识

一. 基础知识Delphi Multi-tier程序多以MIDAS为基础,因此以MIDAS为基础建立的Delphi Multi-tier程序,客户端和服务器端都要MIDAS.DLL文件的支持.1) 远程数据模块:远程数据模块是一个类似于COM Automation Server或是Corba Server的数据模块,它存在于应用程序服务器中,负责提供应用程序服务器上的数据提供者组件(Provider)接口给客户端应用程序使用.Delphi目前提供的远程数据模块有TRemoteDataModule