Linux_iptables
Linux:网络防火墙
netfilter:Frame iptables: 生成防火墙规则,并附加到netfilter上实现数据报文过滤 NAT mangle等规则生成的工具
TCP有限状态机
LISTEN:等待客户端发起请求 SYN_SENT:客户端发送SYN SYN_RECEIVED:服务器端收到SYN报文 ESTABLISHED:已经建立连接 FIN_WAIT1:等待对方的确认 CLOSE_WAIT:服务器响应客户机的FIN,等待关闭 LAST_ACK:服务器向客户机发送FIN,等待客户机的最后一次确认 CLOSING:等待关闭连接,客户机最后一次向服务器发送ACK,确保服务器可以收到ACK的过程 CLOSED:双方收到FIN的ACK确认,断开连接
防火墙:硬件,软件:规则(匹配标准、处理办法)
工作在网络的边界,对进、出的数据报文按照预先定义好的规则进行检查,一旦发现按照相应规则处理
Framework:
默认规则: 开放:堵 关闭:通
规则:匹配标准
IP:源IP、目标IP TCP:sport/dport,SYN= FIN= RST= ACK= UDP:sport/dport ICMP:icmp-type ping echo-request echo-reply
数据报文过滤
Linux 2.0 ipfw/firewall Linux 2.2 ipchain/firewall Linux 2.4 iptables/netfilter
hook function:钩子函数
input output forward prerouting postrouting
规则链:
PREROUTING INPUT FORWARD OUTPUT POSTROUTING
filter(过滤)表
INPUT FORWARD OUTPUT
nat(地址转换)表
PREROUTING POSTROUTING OUTPUT
mangle(修改报文首部)表
PREROUTING INPUT FORWARD OUTPUT POSTROUTING
raw表
PREROUTING OUTPUT
数据包匹配流程
PREROUTING:raw---mangle---nat
INPUT:mangle----filter FORWARD:mangle--------filter OUTPUT:raw---mangle---nat----filter POSTROUTING:mangle----postrouting
用户可以自定义链,但只能是在被调用时才可以使用,如果自定义链中没有存在任何匹配规则,还应该有返回机制
用户可以删除自定义链,但不允许删除非空链
默认链无法删除
每个规则都有两个内置的计数器
记录被匹配的报文个数 记录被匹配的报文的大小
规则=匹配标准+处理动作
iptables [ -t table ] COMMAND CHAIN [num] 匹配标准 -j 处理办法
匹配标准:
通用匹配 扩展匹配(必须启用netfilter模块) 隐含扩展:不用特别指明由哪个模块进行的扩展,此时使用-p {tcp|udp|icmp} 显式扩展:必须指定使用哪个模块,通过iptables的-m选项完成
通用匹配:
-s,--src 指定源IP -d,--dst 指定目的IP -p { tcp | udp | icmp } 指定协议 -i INTERFACE 指定数据报文流入的接口,一般用在PREROUING INPUT FORWARD链 -o INTERFACE 指定数据报文流出的接口,一般用在OUTPUT POSTROUTING FORWAD链
扩展匹配
隐含扩展
-p tcp --sport PORT:源端口 --dport PORT:目的端口 --tcp-flags mask compare --tcp-flags SYN,FIN,ACK,RST SYN,ACK 将检查SYN/FIN/RST/ACK这4个标志位,只允许SYN,ACK为1 --syn 匹配SYN标志位为1的数据
-p icmp
--icmp-type 类型0:echo-reply 类型8:echo-request
- p udp --sport --dport
处理办法:
ACCEPT 允许通过 DROP 丢弃 REJECT 丢弃 DNAT 转换目的IP SNAT 转换源IP REDIRECT 端口重定向 MASQUERADE 作PAT LOG 记录日志 MARK 打标记
COMMAND命令:
管理规则
-A CHAIN:附加一条规则,添加在链的尾部 -I CHAIN [num]:插入一条规则,插入在对应CHAIN的第num条 -D CHAIN num:删除指定链中的第num条规则 -R CHAIN num:替换指定的规则
管理链
-F [CHAIN]:清空指定链的所有规则,如果省略CHAIN,则实现删除对应表中的所有链 -P CHAIN { ACCEPT | DROP }:设置指定链的默认策略 -N NEW_CHAIN:自定义新的空链 -X NEW_CHAIN:删除自定义的空链 -Z:将指定链中的所有规则中的计数器置零 -E OLD-CHAIN-NAME NEW-CHAIN-NAME:重命名自定义的链
查看
-L 显示指定表中的所有规则 -n:以数字格式显示主机地址、端口号 -v:显示详细信息(计数器) -x:显示计数器的精确值 --line-numbers:显示规则号码
iptables基础练习:
、查看nat表中的所有规则 iptables -t nat -nL 、查看filter表中所有的规则 Iptables -filter -nL 、将nat表中的所有链的默认策略修改为DROP 、在INPUT链中添加一条拒绝源IP为172.16.1./24进入本机的规则 、在INPUT链中添加一条允许源IP为172.16.1./24进入本机的规则 、在INPUT链中最前方加入一条允许192.168.1.1访问本机10.1.1.1的规则 、在INPUT链中的第2个位置插入一条规则,允许从本机eth0网卡进入数据, 、替换INPUT链中第2条规则 、删除INPUT链中第3条规则 、清空INPUT链中所有的规则
iptables不是服务,但有服务脚本,服务脚本的主要作用在于管理保存的规则
装载及移除iptables/netfilter相关的内核模块
iptables_nat,iptables_filter,iptables_mangle,iptables_raw,ip_nat,ip_conntrack
也可以打开/etc/sysconf/iptables
# iptables -A INPUT -p tcp --dport -j ACCEPT
# iptables -A OUTPUT -p tcp --sport -j ACCEPT
Linux_iptables的更多相关文章
- linux_iptables 详解
iptables工具__过滤包—命令(-A.-I.-D.-R.-L等).参数(-p.-s.-d.--sport.--dport.-i.-o等).动作-j (ACCEPT.DROP.REJECT.RED ...
- Linux_IPtables防火墙详解
目录 目录 Iptables Iptables结构 规则表 规则链 iptables指令用法详解 综合案例 SNAT 策略 DNAT 策略 Iptables规则的备份和还原 iptables 练习 I ...
- Linux运维相关目录
随机推荐
- 【Unity】11.8 关节
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Unity提供了下面的关节组件:铰链关节(Hinge Joint).固定关节(Fixed Joint).弹簧关节(Spr ...
- 有用的 JS 和 CSS 库
1. Moon Moon 是一个灵感源于 Vue.js 的 JavaScript UI 库,但它却更轻量.简单.它具备优化的虚拟 DOM 引擎,对用户友好的 API,并且在 gzip 压缩后仅有 6K ...
- 趣味讲解:移动互联网 VS 传统互联网
趣味讲解:移动互联网 VS 传统互联网 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...
- pyenv管理多python版本
手动安装 cd ~ git clone git://github.com/yyuu/pyenv.git .pyenv echo 'export PYENV_ROOT="$HOME/.pyen ...
- nfs 客户端启动报错rpc.mountd: svc_tli_create: could not open connection for tcp6
# /etc/init.d/nfs start Starting NFS services: [ OK ] Starting NFS mountd: rpc.mountd: svc_tli_creat ...
- Leetcode:【DP】Longest Palindromic Substring 解题报告
Longest Palindromic Substring -- HARD 级别 Question SolutionGiven a string S, find the longest palindr ...
- jetty 7.0 笔记
codehaus download:http://dist.codehaus.org/jetty/ 找到7.0 tar.gz 解压 拉取 Lib下jar 和 Lib--jsp下jar 代码同启动 ...
- 在windows下nginx+django+flup python3
1.安装python 下载最新的python版本,在本文撰写时为 python 3.4, 下载地址:https://www.python.org/ftp/python/3.4.0/python-3.4 ...
- Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)
相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...
- Python开源机器学习框架:Scikit-learn六大功能,安装和运行Scikit-learn
Python开源机器学习框架:Scikit-learn入门指南. Scikit-learn的六大功能 Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预 ...