iptables之forward

1. forward链的作用

2. 实现


1. forward链的作用

  根据数据报文的流向,若数据报文是由本机转发的则会经由以下几个链prerouting --> forward --> postrouting。
  forward实现的是数据转发的功能,当数据报文经过本机时,网卡接收数据报文至缓冲区,内核读取报文ip首部,发现报文不是送到本机时(目的ip不是本机),由内核直接送到forward链做匹配,匹配之后若符合forward的规则,再经由postrouting送往下一跳或目的主机。


2. 实现

2.1 试验环境:


  试验环境如上图
  防火墙网卡1与客户端在一个物理网络,ftp服务器与http服务器与防火墙网卡2在同一物理网络。
  四台主机防火墙规则都清空,默认规则都为ACCEPT,仅充当防火墙的主机FORWARD链默认规则为DROP。且SELinux与firewalld服务关闭。

~]# systemctl stop firewalld
#关闭firewalld
~]# systemctl disable firewalld
#禁止firewalld服务开机启动
~]# iptables -P FORWARD DROP
#FORWARD默认规则置为DROP
~]# setenforce 0
#关闭selinux

2.2 试验步骤

  1. 防火墙开启核心转发

      ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
  2. 实现1.1.1.0网络与192.168.1.0网络的通信
      客户端添加路由规则:
    ~]# route add -net 192.168.1.0/24 gw 1.1.1.1

      http服务器与ftp服务器分别添加规则

    ~]# route add -net 1.1.1.0/24 gw 192.168.104
  3. 开放1.1.1.0网络对192.168.1.0网络的回显请求
    ~]# iptables -A FORWARD -s 1.1.1.0/24 -d 0/0 -p icmp --icmp-type 8 -j ACCEPT
    #放行1.1.1.0网络的主机对任意主机的回显请求(ping请求)
    ~]# iptables -A FORWARD -s 0/0 -d 1.1.1.0/24 -p icmp --icmp-type 0 -j ACCEPT
    #开启任意主机至1.1.1.0网络主机的ping回显响应(ping响应)

    完成操作后如下图:



      若基于状态追踪机制实现以上功能则方法如下:

    ~]# iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
    #对状态是ESTABLISHED状态的相关请求放行
    ~]# iptables -A FORWARD -s 1.1.1.0/24 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
    #放行来自1.1.1.0网络,状态是NEW的icmp回显请求(ping请求)

    完成后效果同上图(需事先清空防火墙)

  4. 基于状态追踪机制实现1.1.1.0网络对192.168.1.0网络80、21端口的请求(需服务器支持状态追踪机制)
    ~]# iptables -R FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
    #把第3步forward链第一条规则修改为放行已经连接状态地址的连接和相关联的连接
    ~]# modprobe nf_conntrack_ftp
    #ftp服务器加载nf_conntrack_ftp模块
    ~]# lsmod | grep ^nf_conntrack_ftp
    #查看已加载模块中是否有nf_conntrack_ftp
    nf_conntrack_ftp       12049  0
    ~]# iptables -A FORWARD -s 1.1.1.0/24 -d 0/0 -p tcp -m multiport --dport 21,80 -m state --state NEW -j ACCEPT

原文地址:http://blog.51cto.com/11975865/2093587

时间: 2024-11-03 09:04:07

iptables之forward的相关文章

iptables的FORWARD链

在iptables的filter表中的FORWARD链的使用是配合nat表进行使用的它负责的是对nat表做ip地址转发的规则检查,如果你有用路由转发就要对FORWARD链进行严格管理(nat表的具体使用可看http://jim123.blog.51cto.com/4763600/1842202),以部署过openvpn的服务器为例(openvpn部署具体可以看http://jim123.blog.51cto.com/4763600/1840776的相关文章) 在我们的nat表有做过IP地址转发

iptables之网络防火墙(FORWARD链)初步实验

网络结构如下: A.B.C三台主机,A主机扮演外网访问角色:B主机打开核心转发,启用防火墙.两张网卡配置不同网段IP:C主机为内网HTTP服务器.以下为配置流程: 本次实验使用2台虚拟机,一台物理机:主机A和主机B虚拟机网卡设置成VMnet3 1.打开主机B中的核心转发功能: # vi /etc/sysctl.conf   将net.ipv4.ip_forward值修改为1   net.ipv4.ip_forward = 1 # sysctl -p  查看是否生效 2.主机C安装APACHE 在

CentOS7安装iptables防火墙

CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services 禁用/停止自带的firewalld服务 #停止fir

Iptables防火墙(一)

一.Linux防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. netfilter和iptables都用来指Linux防火墙,主要区别是: netfilter:指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系. iptables:指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于"用户态"的防火墙管理体系. 1.iptables的表.链结构 Ipt

iptables man中文手册

名称        iptables - IP包过滤器管理 总览        iptables -ADC  指定链的规则  [-A  添加 -D 删除 -C 修改]        iptables - RI        iptables -D chain rule num[选项]        iptables -LFZ 链名 [选项]        iptables -[NX] 指定链        iptables -P chain target[选项集]        iptables

linux防火墙--iptables(二)

五.filter过滤和转发 a.打开内核的IP转发 # sysctl -w net.ipv4.ip_forward=1 或 # echo 1 > /proc/sys/net/ipv4/ip_forward b.基本匹配条件 ·通用匹配 → 可直接使用,不依赖于其他条件或扩展 → 包括网络协议.IP地址.网络接口等条件 ·隐含匹配 → 要求以特定的协议匹配作为前提 → 包括端口.TCP标记.ICMP类型等条件 类别 选项 用法 通用匹配 协议匹配 -p 协议名 地址匹配 -s 源地址      

经典好用anti-DDos的iptables shell脚本

#!/bin/bash # Description: This script applies to both RHEL and CentOS systems.This is # a powerful firewall, anti DDOS attacks, and not limitedto this, you can # make your Linux server as router, http/ftp server etc. ,but also as # required to open

iptables 防火墙在网络中的应用及设置ftp服务的外网访问

由前面所说已经建立了内外网已经建立了链接. 而防火墙在网络中的应用设置在网关的FORWARD链上 默认FORWARD是ACCEPT. 这里我们将其改为DROP iptables -P FORWARD DROP 然后添加规则. 这里我们限制只有外网可以访问内网的web服务.而内网不允许访问外网 这里一旦转发设置为DROP那么所有服务都不能访问,必须设置规则. iptables -A FORWARD -d 192.168.20.2 -p tcp --dport 80 -j ACCEPT iptabl

Linux防火墙--iptables学习

iptables是Linux系统提供的一个强大的防火墙工具,可以实现包过滤.包重定向.NAT转换等功能.iptables是免费的,iptables是一个工具,实际的功能是通过netfilter模块来实现的,在内核2.4版本后默认集成到了Linux内核中. 一. iptables的构成 1. 规则(rules) 规则是iptables对数据包进行操作的基本单元.即"当数据包符合规则定义的条件时,就按照规则中定义的动作去处理". 规则中定义的条件一般包括源地址/端口.目的地址/端口.传输协