iptables转发规则
来源:互联网 发布:java 微信支付demo 编辑:程序博客网 时间:2024/06/07 06:14
http://www.cnblogs.com/davidwang456/p/3540837.html
http://lesca.me/archives/iptables-examples.html
http://blog.chinaunix.net/uid-29442-id-2134000.html
对linux而言tcp/ip协议栈是在内核当中,意味着报文的处理是在内核中处理的,也就是说防火墙必须在工作在内核中,防火墙必须在内核中完成tcp/ip报文所流进的位置,用规则去检查,才真正能工作起来。
iptables用来衡量tcp/ip报文的属性:源ip、目标ip、源端口、目标端口;
1. 表:
mangle: 改变包的(TOS/TTL/MARK)属性。建议不加任何过滤。
nat: 用于转换包的源地址和目标地址。流的第一个包会进行匹配,后面的包会做按第一个包一样处理。包括DNAT/SNAT/MASQUERADE。
filter: 用于过滤,对包的抉择ACCEPT或者DROP。
2. 链:
PREROUTING: 所有进入的包最先进入的链
POSTROUTING: 所有发送包最后通过的链
INPUT: 进入本地的链
OUTPUT: 本地发送出去的链
FORWARD: 转发的链,不进入本地
通常有三种状态:
a) 进入本地的包:NETWORK-->(mangle)PREROUTING-->(nat)PREROUTING-->-->(mangle)INPUT-->(filter)INPUT-->
b) 从本地发出的包:-->(mangle)OUTPUT-->(nat)OUTPUT-->(filter)OUTPUT-->(mangle)POSTROUTING-->(nat)POSTROUTING-->NETWORK
c) 路由的包:NETWORK-->(mangle)PREROUTING-->(nat)PREROUTING-->-->(mangle)FORWARD-->(filter)FORWARD-->(mangle)POSTROUTING-->(nat)POSTROUTING-->NETWORK
iptables基本概念
对linux来说,是能够实现主机防火墙的功能组件,如果部署在网络边缘,那么既可以扮演网络防火墙的角色,而且是纯软件的
网络数据走向:
请求报文à网关à路由à应用程序(等待用户请求)à内核处理à路由à发送报文
iptables规则功能
表:
filter主要和主机自身有关,主要负责防火墙功能 过滤本机流入流出的数据包是默认使用的表;
input :负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包;
forward :负责转发流经主机但不进入本机的数据包,和NAT关系很大;
output :负责处理源地址的数据包,就是对本机发出的数据包;
NAT表:
负责网络地址转换,即来源于目的IP地址和端口的转换,一般用于共享上网或特殊端口的转换服务
snat :地址转换
dnat :标地址转换
pnat :标端口转换
mangle 表:
将报文拆开来并修改报文标志位,最后封装起来
5个检查点(内置链)
·PREROUTING
·INPUT
·FORWORD
·OUTPUT
·POSTROUTING
多条链整合起来叫做表,比如,在input这个链,既有magle的规则也可能有fileter的规则。因此在编写规则的时候应该先指定表,再指定链
netfilter主要工作在tcp/ip协议栈上的,主要集中在tcp报文首部和udp报文首部
具体实践:
1、先打开IP转发功能:
echo "1">/proc/sys/net/ipv4/ip_forward
通过以下命令可以查到返回值为1,表示打开成功
有些机器如果是DHCP PPPOE的话还要打开
echo "1" >/proc/sys/net/ipv4/ip_dynaddr
cat /proc/sys/net/ipv4/ip_forward
2、之后执行iptables命令,执行iptables命令需要在root权限下,所以在此之前先将模式切换至root
iptables -F
iptables -F -t nat
iptables -X
iptables -P FORWARD ACCEPT
3、路由转发规则设置
iptables -t nat -A PREROUTING -d 42.156.141.75 -p 6 --dport 80 -j DNAT--to 10.1.8.171:80
iptables -A FORWARD -p 6 -d 10.1.8.171 --dport 80 -j ACCEPT
iptables -nL 查看普通表规则
(iptables-t nat -L 查看NAT表规则)
iptables -nL 查看普通表规则
(iptables-t nat -L 查看NAT表规则)
- iptables转发规则
- 增加、删除、查看防火墙iptables转发规则
- CentOS下iptables设备双网卡的端口转发规则
- iptables转发
- iptables规则
- iptables 规则
- iptables规则
- iptables 规则
- [Linux]CentOS下iptables设备双网卡的端口转发规则
- iptables IP转发
- iptables IP转发
- iptables设置端口转发
- iptables 端口转发实例
- iptables实现路由转发
- iptables 实现端口转发
- iptables 网口转发
- iptables进行端口转发
- iptables转发配置
- 为什么不要在构造函数中调用虚函数
- Deepin 2014 SU认证
- apache 禁止在找不到index的时候返回文件列表
- 友元
- 64位 Windows 8.1 安装 MinGW 与简单测试
- iptables转发规则
- MySQL表索引的一些要点
- React-Native指南
- DuiVision开发教程(11)-托盘图标和托盘菜单
- android-Service
- MyTag自定义标签
- Bundle savedInstanceState的作用
- 好机要看“芯”如何
- C语言位图查找(面试题)