iptable防火墙原理
iptable防火墙原理
简介
Linux 2.0 ipfs/firewalld
Linux 2.2 ipchain/firewall
Linux 2.4 iptables/netfilter (iptables 是在用户空间写规则的,neifilter工作在内核空间放置规则的位置)
netfilter是内核的一个数据包处理模块,具有如下功能:
网络地址转换
数据包内容修改
数据包过滤的防火墙功能
表和钩子函数
五个钩子函数:input output,forward,pre_routing,post_routing
表:
Mangle表:对数据进行修改,包含5条链
Raw表:,prerouting,output
Filter表:过滤 input,output,forward
Nat表:prerouting,postouting
目标地址转换是发生在路由决策前,刚进入本机的时候,源地址转换是在出去的时候。
防火墙处理数据包的方式
ACCEPT,DROP,REJECT,SNAT,DNAT
数据包路由的原理
网络数据包由底层数据包的网卡接收,通过数据链路层的捷报之后(去除数据链路层帧头),就进入了TCP/IP协议栈(本质上就是一个处理网络数据包的内核驱动)和netfilter混合的数据包的处理流程中了。
总结一下规律:
1)当一个数据包进入网卡的时候,数据包首先进入PREROUTING链,在PREROUTING链中我们有机会修改数据包的目的IP,然后内核的路由模块根据数据包的目的IP判断是否需要转出去
2)如果数据包就是进入本机的,数据包就会沿着图向下移动,到达INPUT链,数据包到达INPUT链后。任何进程都会收到它
3)本机上运行的程序发送数据包经过OUTPUT链,然后经过POSTROUTING链输出
4)如果数据包是要转发出去的,且内核允许转发,数据包就会香油移动,经过FORWARD链,然后到达POSTROUTING链输出。
iptable编写规则
-F 清除规则
-X 清除链
-t filter 指定表
-p tcp/udp
-j DROP/REJECT/ACCEPT/
-s源地址
-d 目的地址
-i eth0 从网络接口eth0进来
-o eth0 从网络接口eth0出去
--sport 源端口
--dportz 目的端口
iptable防火墙原理的更多相关文章
- 基于IMD的包过滤防火墙原理与实现
一.前言二.IMD中间层技术介绍三.passthru例程分析四.部分演示代码五.驱动编译与安装六. 总结 一.前言 前段时间,在安全焦点上看到了TOo2y朋友写的<基于SPI的数据报过滤原理与实 ...
- linux IPtable防火墙 禁止和开放端口(转)
linux IPtable防火墙 禁止和开放端口源:http://hi.baidu.com/zplllm/item/f910cb26b621db57c38d5983评: 1.关闭所有的 INPUT F ...
- iptables防火墙原理详解
1. netfilter与iptables Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤.数 ...
- Linux网卡驱动安装、防火墙原理
安装网卡驱动程序: 需要检查是否安装kernel依赖包: rpm –q kernel-devel #检查kernel依赖包是否安装 yum –y install kernel-devel 检查gcc和 ...
- linux IPtable防火墙 禁止和开放端口
1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放.下面是命令实现: iptables -P INPUT DROPiptables -P FORWARD DROPiptable ...
- Neutron的防火墙原理
确切的说这是fwaas,即防火墙即是服务. 防火墙与安全组区别防火墙一般放在网关上,用来隔离子网之间的访问.因此,防火墙即服务也是在网络节点上(具体说来是在路由器命名空间中)来实现. 安全组的对象是虚 ...
- IPtable防火墙概念介绍
1.iptables安全优化 1.不配外网,做代理转发或者防火墙映射 2.并发过大,不建议开启防火墙 2.防火墙的工作流程: 按照配置规则的顺序自上而下,从前到后进行过滤 如果匹配上新规则,表明是阻止 ...
- iptable防火墙配置
/etc/sysconfig/iptables /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save} ipta ...
- iptable防火墙案例
[root@WX020 firewall]# cat /etc/sysconfig/iptables# Firewall configuration written by system-config- ...
随机推荐
- Uep的静态下拉和动态下拉建立
uep的静态下拉和动态下拉的建立极其省事,下面介绍静态下拉的建立 静态下拉 第一步:点击增加,输入信息 第二步: 第三步:保存 第四部: 静态下拉就建立完毕了 下面介绍动态下啦建立,动态下拉更简单 动 ...
- cinder-----常用命令
云硬盘的创建查询 #创建卷类型 cinder type-create rbd #rbd是云硬盘类型名称,可自行定义 #查询卷类型 cinder type-list #卷类型扩展规格 cinder ty ...
- 八、MD5加密并封装,并调用封装方法
一.MD5加密 封装Md5 public class Md5 { //十六进制下数字到字符的映射数组 private static final char hexDigits[] = { '0', '1 ...
- java下载文件时文件名出现乱码的解决办法
转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249 java下载文件时文件名出现乱码的解决办法: String userAgent ...
- 关于 if __name__ == '__main__':的使用
当是用 if __name__ == '__main__': 时,下面调用函数只是在当前脚本调试, 而我们需要在别处导入这个脚本中的类或者函数时,这个if __name__ == '__main__ ...
- docker(常见调试技巧):docker打包镜像调试技巧
写Dockerfile可以先不指定CMD.ENTRYPOINT等启动命令,只要拷贝就好了 如下: # Dockerfile for basic-app-client # Build with: # d ...
- Web08_MySQL&JDBC回顾
数据库操作:DATABASE 查看正在使用的数据库: SELECT DATABASE(); 表操作:TABLE 修改表修改列明 ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) ...
- 【HTML】---HTML语义化
1.什么是HTML语义化? <基本上都是围绕着几个主要的标签,像标题(H1~H6).列表(li).强调(strong em)等等> 根据内容的结构化(内容语义化),选择合适的标签(代码语义 ...
- JS实现网页选取截屏 保存+打印 功能(转)
源码地址: 1.1 确定截图选取范围 用户在开始截图后,需要在页面上选取一个截图范围,并且可以直观的看到,类似如下效果: image 我们的选取范围就是鼠标开始按下的那个点到鼠标拖动然后松开的那个点之 ...
- flaskurl传参用法
from flask import Flask,request app = Flask(__name__) @app.route("/") def index(): return ...