首页 > 系统相关 >iptables之forward转发

iptables之forward转发

时间:2023-05-10 09:34:00浏览次数:39  
标签:iptables 0.0 ping 防火墙 192.168 转发 forward root


1、网络防火墙
2、iptables之FORWARD转发实例
3、iptables之FORWARD过滤实例
1、网络防火墙
网络防火墙处于网络入口的边缘,针对网络入口进行防护,针对整个网络入口后面的局域网。
作用:
当外部网络主机与内部网络主机互相进行通讯时,都要经过iptables所在的主机,由iptables所在的主机进行 “过滤并转发”,这就是防火墙的主要工作。

但是这又跟forward链有什么关系呢?

网络防火墙的主要职责是"过滤并转发",在五链中,只有INPUT,OUTPUT和FORWARD有filter(过滤)功能,要想实现转发,报文必须经过FORWARD链,因此,iptables的角色变为"网络防火墙"时,规则只能定义在FORWARD链。

2、iptables之FORWARD转发实例
实验环境:

外网主机 ip地址:192.168.119.5 网关为:192.168.119.2
防火墙主机 eth0 :192.168.119.132 网关为: 192.168.119.2 eth1:192.168.116.132 网关为:192.168.116.1
内网主机 ip地址:192.168.116.7 网关为:192.168.116.132
注意:

内网的网关必须为防火墙内网的地址
外网和防火墙的eth0网卡设置为nat模式,
内网和防火墙的eth1设置为仅主机模式
具体关系如下图所示:

 

1、在外网上新增一条路由,让外网访问192.168.116.0网段都发送给防火墙的eth0网卡上

[root@li ~]# route add -net 192.168.116.0/24 gw 192.168.119.132
[root@li ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.116.0 192.168.119.132 255.255.255.0 UG 0 0 0 eth0
192.168.119.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.119.2 0.0.0.0 UG 0 0 0 eth0


2、外网可以ping通防火墙的两块网卡,但还是ping不通内网

[root@li ~]# ping 192.168.119.132
PING 192.168.119.132 (192.168.119.132) 56(84) bytes of data.
64 bytes from 192.168.119.132: icmp_seq=1 ttl=64 time=0.330 ms
64 bytes from 192.168.119.132: icmp_seq=2 ttl=64 time=0.491 ms
^C
#可以ping通防火墙的eth0网卡
[root@li ~]# ping 192.168.116.132
PING 192.168.116.132 (192.168.116.132) 56(84) bytes of data.
64 bytes from 192.168.116.132: icmp_seq=1 ttl=64 time=0.528 ms
64 bytes from 192.168.116.132: icmp_seq=2 ttl=64 time=0.831 ms
^C
#可以ping通防火墙的eth1网卡
[root@li ~]# ping 192.168.116.7
PING 192.168.116.7 (192.168.116.7) 56(84) bytes of data.
^C
--- 192.168.116.7 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4997m
#内网的IP地址不能ping通

3、为什么已经设置路由了,但还是ping不通呢?

我们在这里设置了静态路由,凡是192.168.116.0的网络通通下一跳给了192.168.119.132,当我们ping192.168.116.132的时候,防火墙收到了这个报文发现这个IP地址是自己的,给了外网回应,所以可以ping通。
(这是新增路由的作用,192.168.119.132把报文给了192.168.116.132)

那为什么192.168.116.7无法ping通呢,防火墙在收到这个报文的时候,发现这不是自己的地址,没有回应。

这里就需要打开防火墙的转发功能,才可以让报文转发。

4、打开防火墙转发功能

临时打开转发功能
[root@liyu ~]# cat /proc/sys/net/ipv4/ip_forward
0 #0表示转发功能关闭
[root@liyu ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@liyu ~]# cat /proc/sys/net/ipv4/ip_forward
1 #将0改为1,打开转发功能



永久修改
#Centos6 :
vi /etc/sysctl.conf
将net.ipv4.ip_forward = 0修改为net.ipv4.ip_forward= 1
#Centos7 :
vi /usr/lib/sysctl.d/00-system.conf
加入net.ipv4.ip_forward=1

此时用外网ping内网,可以ping通
用内网ping外网也可以ping通
注意:在此步骤前要删除之前所有的iptables规则,以防出错
[root@li ~]# ping 192.168.116.7
PING 192.168.116.7 (192.168.116.7) 56(84) bytes of data.
64 bytes from 192.168.116.7: icmp_seq=1 ttl=63 time=0.969 ms
64 bytes from 192.168.116.7: icmp_seq=2 ttl=63 time=1.63 ms
^C
#此为外网ping内网
[root@localhost ~]# ping 192.168.119.5
PING 192.168.119.5 (192.168.119.5) 56(84) bytes of data.
64 bytes from 192.168.119.5: icmp_seq=1 ttl=63 time=1.11 ms
64 bytes from 192.168.119.5: icmp_seq=2 ttl=63 time=2.62 ms
64 bytes from 192.168.119.5: icmp_seq=3 ttl=63 time=1.71 ms
#此为内网ping外网

可以相互ping通,实现了防火墙的转发功能
3、iptables之FORWARD过滤实例
iptables作为网络防火墙时负责“过滤和转发”,过滤是在filter表中,要转发需要配置FORWARD链。

#在防火墙上配置FORWARD链,拒绝任何报文通过,此时内外网都无法访问
[root@li~]# iptables -A FORWARD -j REJECT

#打开内外网的apache服务
外网:
[root@li~]# echo "OUTSIDE SERVER" > index.html
[root@li~]# cat index.html
OUTSIDE SERVER
[root@li~]# service httpd status
httpd (pid 9433) is running...

内网:
[root@localhost ~]]# echo "INSIDE SERVER" > /var/www/html/index.html
[root@localhost ~]]# cat /var/www/html/index.html
INSIDE SERVER
[root@localhost ~]# service httpd status
httpd (pid 3238) is running...


#配置访问规则,允许内网可以访问外网的web服务
[root@li ~]# iptables -I FORWARD -s 192.168.116.0/24 -p tcp --dport 80 -j ACCEPT
[root@li ~]# iptables -I FORWARD -d 192.168.116.0/24 -p tcp --sport 80 -j ACCEPT
#配置访问规则,允许外网可以访问内网的web服务
[root@li ~]# iptables -I FORWARD -s 192.168.119.0/24 -p tcp --dport 80 -j ACCEPT
[root@li ~]# iptables -I FORWARD -d 192.168.119.0/24 -p tcp --sport 80 -j ACCEPT


#此时查看防火墙的规则
[root@liyu ~]# iptables -nL
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 192.168.119.0/24 tcp spt:80
ACCEPT tcp -- 192.168.119.0/24 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 192.168.116.0/24 tcp spt:80
ACCEPT tcp -- 192.168.116.0/24 0.0.0.0/0 tcp dpt:80
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable


隐藏问题:如何安装apache?

#yum install httpd 安装
#service httpd restart 重启

标签:iptables,0.0,ping,防火墙,192.168,转发,forward,root
From: https://www.cnblogs.com/cheyunhua/p/17387018.html

相关文章

  • [C++特性]对std::move和std::forward的理解
    左值、右值、左值引用以及右值引用std::move和std::forward这两个API主要服务于左值引用和右值引用的转化和转发,因此再了解这两个API之前,需要先弄清楚这几个概念。左值:一般指的是在内存中有对应的存储单元的值,最常见的就是程序中创建的变量右值:和左值相反,一般指的是没有对应存......
  • ssh,socat端口转发
    ssh隧道我们将要研究的第一个协议是SSH,因为它已经内置了通过SSH隧道进行端口转发的功能。虽然SSH曾经是与Linux系统相关联的协议,但现在Windows默认安装了OpenSSH客户端,因此您可以期望在许多系统中找到它,而不受其操作系统的限制。SSH隧道可以以不同的方式用于通过SSH连接转发端口......
  • C++11完美转发及实现方法详解
    C++11标准为C++引入右值引用语法的同时,还解决了一个C++98/03标准长期存在的短板,即使用简单的方式即可在函数模板中实现参数的完美转发。那么,什么是完美转发?它为什么是C++98/03标准存在的一个短板?C++11标准又是如何为C++弥补这一短板的?别急,本节将就这些问题给读者做一一......
  • c++11:std::forward,完美转发
    目录1、不完美转发2、完美转发2.1、引用折叠2.2、std::forward1、不完美转发所谓完美转发,是指在函数模板中,完全按照模板的参数的类型,将参数传递给函数模板中调用的另一个函数。比如:template<typenameT>voidIamForwording(Tt){IrunCodeActually(t);}上面的例子中,IamF......
  • C++之forward
    不管是T&&、左值引用、右值引用,std::forward都会按照原来的类型完美转发。forward主要解决引用函数参数为右值时,传进来之后有了变量名就变成了左值。 #include<QCoreApplication>#include<memory>#include<iostream>usingnamespacestd; template<typenameT>void......
  • 关于完美转发中forward的作用的一点理解
     首先先描述一下C++中各种类型的值(以下无特殊说明“类型”皆按如下分法)lvalue(leftvalue)左值:有标识符,且不能被回收rvalue(rightvalue)右值:有无标识符皆可,可以被回收glvalue(generalizedleftvalue)泛左值:有标识符,可不可被回收皆可prvalue(purerightvalue)纯右值:没有标识符......
  • nginx 转发
    server{listen80;#listen443ssl;server_name*.*.com;#rewrite^(.*)$https://$host$1permanent;gzipon;gzip_staticon;#需要http_gzip_static_module模块gzip_min_length1k;gzip_comp_level4;gzip_proxiedany;......
  • Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)
    一、前言上次实现的文件推流,尽管优点很多,但是只能对现在存在的生成好的音视频文件推流,而现在更多的场景是需要将实时的视频流重新推流分发,用户在很多设备比如手机/平板/网页/电脑/服务器上观看,这样就可以很方便的将分散的视频流统一集中的流媒体服务器上,然后统一对外分发视频,而不......
  • 很实用(极少使用的词)的键盘消息转发(热键间接设置程序) [有代码]
    有些重复的点击是需要做的.但是有时这些点击是不需要看着操作.所以把该窗口切换到前台再去点击让我te不爽.于是写了这么个东西来方便方便.比如我自己写的试听清风网站的dj音乐这种东西.是需要发现这个歌曲不好听就换下首的,直到找到我喜欢的歌曲才去看它一下,那么这个程序可以帮我......
  • CentOS7 iptables防火墙 常用的命令
    CentOS7iptables防火墙常用的命令 iptables-Lvi/etc/sysconfig/iptablesserviceiptablesstatusnetstat-an|grep自定义的端口iptables-AINPUT-ptcp--dport自定义的端口-jACCEPTserviceiptablessavesystemctlrestartiptables.servicenetsta......