iptables使用

  • iptables简介
    • iptables路由表
      • 表(功能)<—— ——>链(钩子)
      • 处理动作(target)
        • iptables的帮助信息
    • iptables路由转发
    • iptables端口转发

iptables简介

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter

netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。

iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:

网络地址转换(Network Address Translate)

数据包内容修改

以及数据包过滤的防火墙功能

所以说,虽然我们使用service iptables start启动iptables"服务",但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能

iptables路由表

我们自定义的所有规则,都是这四种分类中的规则,所有规则都存在于这4张“表”中

  1. filter表 ,负责过滤功能,防火墙;内核模块:iptables_filter
  2. nat表 network address translation,网络地址转换功能;内核模块:iptable_nat
  3. mangle表 拆解报文,做出修改,并重新封装的功能;内核模块:iptable_mangle
  4. raw表 关闭nat表上启用的连接追踪机制;内核模块:iptable_raw

表(功能)<—— ——>链(钩子)

filter表中的规则可以被链:INPUT,FORWARD,OUTPUT 使用
nat表中的规则可以被链:PREROUTING,OUTPUT,POSTROUTING,INPUT 使用
mangle表中的规则可以被链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 使用
raw表中的规则可以被链:PREROUTING,OUTPUT使用

处理动作(target)

ACCEPT:允许数据包通过
DROP:直接丢弃数据包,不给任何回应信息
REJECT:拒绝数据包通过,必要时会给数据端发送一个响应的信息,客户端刚请求就会收到拒绝的信息
SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题
MASQUERADE:是SNAT的一种特殊形式,适用于动态的,临时会变的IP上
DNAT:目标地址转换
REDIRECT:在本机做端口映射
LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,任然让下一天规则去匹配

iptables的帮助信息

Usage: iptables -[AD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)

指令Commands:
Either long(单词,以 – 做前导) or short(字母,区分大小写,以 - 做前导) options are allowed.
–append -A chain Append to chain
–delete -D chain Delete matching rule from chain
–delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
–insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
–replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
–list -L [chain [rulenum]]
List the rules in a chain or all chains
–list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
–flush -F [chain] Delete all rules in chain or all chains
–zero -Z [chain [rulenum]]
Zero counters in chain or all chains
–new -N chain Create a new user-defined chain
–delete-chain
-X [chain] Delete a user-defined chain
–policy -P chain target
Change policy on chain to target
–rename-chain
-E old-chain new-chain
Change chain name, (moving any references)

参数(选项)Options:
[!] --proto -p proto protocol: by number or name, eg. `tcp’
[!] --source -s address[/mask][…]
source specification
[!] --destination -d address[/mask][…]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
–jump -j target
target for rule (may load target extension)
–goto -g chain
jump to chain with no return
–match -m match

iptables路由转发

需要转发的主机修改网关为路由转换主机IP地址

network:version: 2renderer: networkdethernets:eno1:addresses: [10.1.65.100/16]gateway4: 10.1.65.49          #此处修改路由主机IP地址nameservers:addresses: [10.1.1.1, 223.5.5.5]

]# echo ‘net.ipv4.ip_forward = 1’ >> /etc/sysctl.conf
]# sysctl -p
net.ipv4.ip_forward = 1
]# iptables -t nat -A POSTROUTING -o 外网网卡 -s 内网IP -j SNAT --to 外网IP地址
]# netplay apply

iptables端口转发

]# iptables -t nat -A PREROUTING  -p tcp --dport  8090 -j DNAT --to-destination  192.168.1.10:8080#8090为转发后目标主机的代理端口#192.168.1.10:8080为需要转发的端口
]# iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 8080 -j SNAT --to-source  192.168.1.20#192.168.1.20为代理主机IP地址

iptables路由转换相关推荐

  1. AEAI ESB路由转换机制说明

    1. 背景概述 相信了解数通畅联的人对AEAI ESB并不陌生,其设计器ESBDesigner中内置组件有:路由和转换.数据适配器.协议适配器.协议接入适配器等4类组件,每类组件下面包含各种类型的组件 ...

  2. android pppd流程,一种基于PPPD实现PPP‑Server功能的通信模块及其实现方法与流程...

    本发明涉及计算机通信 技术领域: ,具体涉及一种基于PPPD实现PPP-Server功能的通信模块及其实现方法. 背景技术: :在网络通信 技术领域: 中,通常采用以下方式进行通信:如4G数据模块多采 ...

  3. 路由及iptables学习笔记

    启动linux路由功能 echo "echo 1 >/proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local 或者 ...

  4. iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...

    实验原理图 实验环境 LVS调度器作为web服务器池的网关 LVS服务器配置两块网卡分别连接内外网 使用轮询(rr)调度算法 LVS负载调度器网段规划 内网33网关:192.168.144.1 外网3 ...

  5. iptables学习笔记:端口转发之“内网访问外网”

    我们一般使用路由上网,本机IP是内网私有IP,如192.168.1.100/24,而不是公网IP.至于能上网,是因为路由器已经做了转发.本文以实例介绍地址转换,实现内网设备与外部网络通信.有了前文的介 ...

  6. iptables 防火墙中的SNAT和DNAT

    目录 前言 一.SNAT策略 1.1 SNAT应用环境 1.2 SNAT原理 1.3 SNAT转换前提条件 1.4 SNAT转换流程 1.4 SNAT 应用 1.4.1 临时打开 1.4.2 永久打开 ...

  7. 鸟哥的Linux私房菜(服务器)- 第八章、路由观念与路由器设定

    第八章.路由观念与路由器设定 最近更新日期:2011/07/22 如果说 IP 是门牌,那么邮差如何走到你家就是『路由』的功能啦!局域网络如果想成是条巷子,那么路由器就是那间巷子内的邮局! 其实本章应 ...

  8. 第八章、路由观念与路由器设定

    如果说 IP 是门牌,那么邮差如何走到你家就是『路由』的功能啦!局域网络如果想成是条巷子,那么路由器就是那间巷子内的邮局! 其实本章应该是第二章网络基础的延伸,将网络的设定延伸到整个区网的路由器上而已 ...

  9. iptables应用大全

    iptables四表五链: 1."四表"是指 iptables 的功能 --filter 表(过滤规则表):控制数据包是否允许进出及转发 --nat 表(地址转换规则表):控制数据 ...

最新文章

  1. C#程序设计语言Version2.0简介
  2. STM32-内存管理
  3. 系统进程间的同步机制
  4. 创业-程序员独自5大思维障碍
  5. Codeforces Round #114 (Div. 1) A. Wizards and Trolleybuses 物理题
  6. 前端错误日志收集方案
  7. VCL组件之TPanel
  8. 学习 服务器部署 hello world
  9. 新手产品经理怎样去选择一款原型工具
  10. 1.Ubuntu Server下搭建LAMP环境
  11. 一个简单例子理解连表查询
  12. google 手机号码校验库libphonenumber
  13. latex中文简历,硕博士找工作实习用,顶级简约简历
  14. c语言库函数总结----ctype.h库
  15. 混淆电路的优化:PP、Free XOR、GRR
  16. html书签制作方法图片大全,简单纸书签的折法 纸书签制作方法步骤图
  17. [乡土民间故事_徐苟三传奇]第四回_张员外受骗摔新锅
  18. 固定资产模块-12月末结账提示制单业务未完成
  19. 盗版xp成功验证成正版,享受正版增值服务!(转)
  20. C语言 将一个字符串转换为字符,每两个字符间用空格隔开

热门文章

  1. 大地坐标系转换地心坐标系
  2. 软件测试工作学习必备指南——硬实力
  3. Java字节码角度分析方法调用 ——提升硬实力7
  4. canvas实现2019最酷炫3D特效
  5. 七月三日服务器维护,7月3日全部服务器更新维护公告
  6. rm命令删除特定文件或目录或不删除特定文件或目录
  7. Continous Integration.Continous Development,Continous Delivery之间的关系
  8. C语言求1到100的和
  9. 使用rpc(thrift或protobuf)进行前后端交互的若干种方式
  10. STM32 利用cubemx配置正点原子4.3寸TFT-LCD 驱动芯片NT35510