网站流量推广,wordpress 多站 列表,域名买卖违法吗,中山比好的做网站的公司通信五元素
源ip和目标ip 源端口和目标端口 协议
通信四元素
源ip和目标ip 源端口和目标端口
iptables表链结构
Netfilter
Linux防火墙是由Netfilter组件提供的#xff0c;Netfilter工作在内核空间#xff0c;集成在linux内核中
Netfilter是Linux 2.4.x之后新一代的Li…通信五元素
源ip和目标ip 源端口和目标端口 协议
通信四元素
源ip和目标ip 源端口和目标端口
iptables表链结构
Netfilter
Linux防火墙是由Netfilter组件提供的Netfilter工作在内核空间集成在linux内核中
Netfilter是Linux 2.4.x之后新一代的Linux防火墙机制是linux内核的一个子系统。
Netfilter采用模块化设计具有良好的可扩充性提供扩展各种网络服务的结构化底层框架。
Netfilter与IP协议栈是无缝契合并允许对数据报进行过滤、地址转换、处理等操作。
netfilter/iptables关系
netfilter属于“内核态”又称内核空间的防火墙功能体系。linux 好多东西都是内核态 用户态那我们运维人员关注的是用户态 内核我们关注不是很多内核基本是我们开发人员关心的事情是内核的一部分由一些信息包过滤表组成这些表包含内核用来控制信息包过滤处理的规则集。
iptables :属于“用户态”的防火墙管理体系。 是一种用来管理Linux防火墙的命令程序它使插入、修改和删除数据包过滤表中的规则变得容易通常位于/sbin/iptables目录下。
netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙其中内置了raw、mangle、 nat和filter四个规则表。
表中所有规则配置后立即生效不需要重启服务。 iptables的四表五链结构介绍
iptables由四个表table和五个链chain以及一些规则组成SELinux也是一个表但它是独立的不在我们讨论的范围内
规则链
规则作用对数据包进行过滤处理
规则表作用容纳各种规则链
链作用容纳各种防火墙规则
链分类依据处理数据包不同时机
默认五种规则链 INPUT:处理入栈数据包
OUTPUT:处理出栈数据包
FORWARD:处理转发数据包
POATROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
表作用容纳各种规则链
表划分依据防火墙规则相似
默认包括四个规则表 raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中源目标IP地址或端口
filter表:确定是否放行该数据包过滤ip地址端口协议
按照顺序依次查当前表中链看链中是否有匹配规则匹配到立即停止找不到使用链默认策略处理
入栈PREROUTING----------INPUT
出栈OUTPUT-----------------POSTROUTING
转发PREROUTING----------FORWARD---------POSTROUTING
规则链内匹配顺序
按顺序依次检查匹配即停止LOG策略例外 若找不到相匹配规则则按该链默认策略处理 1.按照顺序查 raw表-------mangle表---------nat表---------filter表input让不让数据进来进不来丢弃--------路由转发不允许转发直接丢弃---------一般不会对数据限制-------r m n f--------nat对数据进行地址转换---------出去送达 nat PREROUTING目的地址转换把公网IP换成内网IP外网访问内网 nat POSTROUTING:源地址转换把内网地址转换成公网内网转成公网地址才能上网
总结
四表五链
规则表的作用容纳各种规则链 规则链的作用容纳各种防火墙规则 总结表里有链链里有规则
内核中数据包的传输过程 1. 当一个数据包进入网卡时数据包首先进入PREROUTING链内核根据数据包目的IP判断是否需要转送出去。
2. 如果数据包是进入本机的数据包就会沿着图向下移动到达INPUT链。 数据包到达INPUT链后 任何进程都会收到它。本机上运行的程序可以发送数据包这些数据包经过OUTPUT链然后到达
3. 如果数据包是要转发出去的且内核允许转发数据包就会向右移动经过FORWARD链然后到达POSTROUTING链输出
三种报文流向 流入本机PREROUTING -- INPUT--用户空间进程 httpd服务-目的转换-httpd 流出本机用户空间进程 --OUTPUT-- POSTROUTING httpd服务-out-源地址 转发PREROUTING -- FORWARD -- POSTROUTING -----FOR------
nat PREROUTING 目的地址转换要把别人的公网IP换成你们内部的IP nat POSTROUTING 源地址转换要把你的内网地址转换成公网地址才能上网一般用于对外发布内网的服务 规则内的匹配顺序 自上向下按顺序依次进行检查找到相匹配的规则即停止LOG策略例外表示记录相关日志 若在该链内找不到相匹配的规则则按该链的默认策略处理未修改的状况下默认策略为允许
iptables
iptables 安装 CentOS7默认使用firewalld防火墙没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙再安装iptables。
1.关闭firewalld防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2.安装iptables 防火墙
yum -y install iptables iptables-services
3.设置iptables开机启动
systemctl start iptables.service
systemctl enable iptables.service
4.iptables防火墙的配置方法: 1、使用iptables命令行。 2、使用system-config-firewall centso7不能使用 centos 6可以使用
iptables的命令格式
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
-t如果不指定 默认是filter 表名、链名用来指定 iptables 命令所操作的表和链未指定表名时将默认使用 filter 表
管理选项:表示iptables规则的操作方式如插入、增加、删除、查看等 匹配条件:用来指定要处理的数据包的特征不符合指定条件的数据包将不会处理 控制类型指的是数据包的处理方式如允许、拒绝、丢弃等。
注意事项 不指定表名时默认指filter表 不指定链名时默认指表内的所有链一般不这么操作 除非设置链的默认策略否则必须指定匹配条件 选项、链名、控制类型使用大写字母其余均为小写
数据包的常见控制类型 对于防火墙数据包的控制类型非常关键直接关系到数据包的放行、封堵及做相应的日志记录等。 在 iptables 防火墙体系中最常用的几种控制类型如下 ACCEPT允许数据包通过。 DROP 直接丢弃数据包不给出任何回 应信息。 REJECT拒绝数据包通过必要时会给数据发送端一个响应信息。 SNAT 修改数据包的源地址 DNAT 修改数据包的本地地址 LOG 在/var/log/messages 文件中记录日志信息然后将数据包传递给下一条规则。 iptables 命令的常用管理选项 管理选项 用法示例 -A 在指定链末尾追加一条 iptables -A INPUT 操作 -I 在指定链中插入一条新的未指定序号默认作为第一条 iptables -I INPUT 操作 -P 指定默认规则 iptables -P OUTPUT ACCEPT 操作 -D 删除 iptables -t nat -D INPUT 2 操作 -R 修改、替换某一条规则 iptables -t nat -R INPUT 操作 -L 查看 iptables -t nat -L 查看 -n 所有字段以数字形式显示比如任意ip地址是0.0.0.0而不是anywhere比如显示协议 端口号而不是服务名 iptables -L -n,iptables -nL,iptables -vnL 查看 | -v 查看时显示更详细信息常跟-L一起使用 查看 --line-numbers 规则带编号 iptables -t nat -L -n --line-number iptables -t nat -L --line-number -F 清除链中所有规则 iptables -F 操作 -X 清空自定义链的规则不影响其他链 iptables -X -Z 清空链的计数器匹配到的数据包的大小和总和iptables -Z -S 看链的所有规则或者某个链的规则/某个具体规则后面跟编号
匹配的条件 作用 -p 指定要匹配的数据包的协议类型 -s 指定要匹配的数据包的源IP地址 -d 指定要匹配的数据包的目的IP地址 -i 指定数据包进入本机的网络接口 -o 指定数据包离开本机做使用的网络接口 --sport 指定源端口号 --dport 指定目的端口号
添加规则 添加规则的两个常用选项 -A在末尾追加规则。 -I在指定位置前插入规则。如果不指定则在首行插入 添加新的防火墙规则时使用管理选项“-A”、“-I”前者用来追加规则后者用来插入规则。
iptables -F #清空规则
iptables -t filter -A INPUT -p icmp -j REJECT #禁止所有主机ping本机
iptables -t filter -A INPUT -p icmp -j ACCEPT #允许ping通-A在前一条规则后添加
iptables -t filter -I INPUT 1 -p icmp -j ACCEPT #指定序号插入插入到第一条
iptables -t filter -A INPUT -p tcp -j REJECT #允许任何主机tcp
iptables -I INPUT 1 -p udp -j ACCEPT #允许任何主机udp
iptables -nL --line-number #查看行规则的位置
iptables -t filter -A INPUT -s 192.168.233.22 -p icmp -j REJECT#拒绝某一台主机其他的可以
iptables -t filter -A INPUT -s 192.168.233.22,192.168.233.23 -p icmp -j REJECT#拒绝多台主机
iptables -t filter -A OUTPUT -s 192.168.233.21 -p icmp -j REJECT#不允许21的数据包出去其他的就都ping不通了
iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT#指定端口
iptables -t filter -A INPUT -s 192.168.233.22 -p tcp --dport 22 -j REJECT#指定IP地址的服务端口拒绝
iptables -t filter -A INPUT -s 192.168.233.22 -p tcp --dport 80 -j REJECT#禁止192.168.233.22:80的端口入访问
删除规则 D删除 1.根据序号删除内容 iptables -D INPUT 1 #删除指定的INPUT链中的第一条规则
2、内容匹配删除有两个
相同的则作用为去重 如果有两个重复的规则则删除序号较小的
注意按照内容匹配删除规则只能每次删除内容相同序号较小的规则。 直到删除最后一条时才能将该规则全部清除 。 一定要报保证该匹配的内容存在且完全匹配规则才能删除不然报错。
修改规则 -R 直接修改
iptables -R INPUT 1 -p icmp -j REJECT#原本的ACCEPT替换成了REJECT
修改默认规则 默认策略是指四表五链中链的默认策略INPUT,FORWARD,OUTPUT,filter三条链的默认值为ACCEPT 就像是设定黑名单一样默认其他的协议操作都是允许的只有指定加入的且声明权限的为DROP 或 REJECT是拒绝禁止的对象。
iptables -P INPUT DROP
注意
1.-F 仅仅是清空链中的规则并不影响 -P 设置的规则默认规则需要手动进行修改 2.-P 设置了DROP后使用 -F 一定要小心 #防止把允许远程连接的相关规则清除后导致无法远程连接主机此情况如果没有保存规则可重启主机解决
此时的解决方案有三种 第一种我的防火墙设置只是临时设置并为保存重启服务器即可
第二种操作服务器重启iptables服务
第三种进入机房操作该服务器将设置恢复重新修改规则炸
在生产中都是默认DROP
通用匹配 网络协议、IP地址、网络接口等条件。 协议匹配: -p协议名 地址匹配: -s 源地址、-d目的地址 #可以是IP、网段、域名、空(任何地址) 接口匹配: -i入站网卡、-o出站网卡 感叹号”!”表示取反
网络协议
iptables -A INPUT ! -p icmp -j ACCEPT #除了icmp以外所有的协议都可以进入
IP地址
iptables -A INPUT -s 192.168.233.22 -j DROP #禁止22的数据进入
使整个网段不能用指定的端口
iptables -t filter -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT #禁止整个网段访问80端口
显示匹配 多端口匹配 要求以“-m 扩展模块”的形式明确指出类型包括多端口、MAC地址、IP范围、数据包状态等条件
-m multiport --sport 源端口列表 -m multiport --dport 目的端口列表 iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT#多端口匹配一次性禁止多个tcp网络协议的端口匹配规则
iptables -A INPUT -p udp -m multiport --dport 53,54,55 -j ACCEP#多端口匹配一次性放通多个udp网络协议的端口匹配规则
IP范围匹配 -m iprange --src-range 源IP范围 -m iprange --dst-range 目的IP范围 iptables -A INPUT -p icmp -m iprange --src-range 192.168.233.20-192.168.233.30 -j REJECT#禁止网段内的ip地址ping主机
MAC匹配 -m mac --mac-source MAC地址 iptables -A INPUT -m mac --mac-source 00:0c:29:f7:24:38 -j DROP
备份与还原 我们对iptables命令行中的设置都是临时设置只要遇到服务器关机或者服务重启时所有的设置都会清空且还原为原本的设置。 为此我们可以对已经测试完毕符合我们需求的防火墙设置进行备份在必要时可以一键还原
备份iptables设置 格式iptables-save /指定的文件
iptables-save /opt/iptables.bak#备份到指定文件
iptables-restore /opt/iptables.bak #一键导入设置为当前防火墙设置
SNAT和DNAT SNAT又称源地址转换。 源地址转换是内网地址向外访问时发起访问的内网ip地址转换为指定的ip地址 可指定具体的服务以及相应的端口或端口范围这可以使内网中使用保留ip地址的主机访问外部网络 即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。
就是把内网地址转成指定的IP地址这个iP地址可以访问公网
DNAT目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。 通常来说合法地址的数量比起本地内部的地址数量来要少得多。
私网地址只能作为源地址来访问公网IP而无法作为目标地址被其他主机访问 所以DNAT将私网中web服务器映射到公网IP使其公网IP作为目标地址被公网中主机进行访问