【问题处理】银河麒麟操作系统实例分享,ipelbats转发端口访问ftp目录空白问题处理

1.问题环境

系统环境

物理机

网络环境

私有网络

硬件环境

处理器

arm

软件环境

操作系统版本

V10-SP1-0518-arm

内核版本

4.19.90-23.15.ky10.aarch64

2.问题描述

iptables转发端口访问ftp目录空白,同一个脚本在redhat7.8上正常

2023/2/27,iptables转发端口访问ftp目录空白,环境中ftp转发模块和ip_forward都开启了.

现场测试iptables转发端口,访问ftp不生效,无法telnet通,使用firewalld可以正常访问。

2.1.测试红帽7.8转发ftp

红帽7.8转发机配置如下所示,经测试可以转发ftp。

# 开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 清空iptables
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

# 加载模块
modprobe ip_conntrack_ftp port=21,55550
modprobe ip_nat_ftp

#用于将TCP流量的目标端口10021重定向到IP地址为203.40.64.2的主机上的端口21。其中,-t nat选项指定了iptables表为nat表,-A PREROUTING选项指定了规则应用于PREROUTING链,-p tcp选项指定了匹配TCP协议的流量,-d 203.3.105.3选项指定了匹配目标IP地址为203.3.105.3的流量,–dport 10021选项指定了匹配目标端口为10021的流量,-j DNAT选项指定了匹配的流量应该被重定向,–to-destination 203.40.64.2:21选项指定了重定向到的IP地址为203.40.64.2的主机上的端口21。
iptables -t nat -A PREROUTING -p tcp -d 203.3.105.3  --dport 20021 -j DNAT --to-destination 203.40.64.2:21


#用于将TCP流量源地址改为本机地址。其中,-t nat选项指定了iptables表为nat表,-A POSTROUTING选项指定了规则应用于POSTROUTING链,tcp选项指定了匹配TCP协议的流量,–destination 203.40.64.2选项指定了匹配目标IP地址为203.40.64.2的流量,-j MASQUERADE选项指定了匹配的流量源地址应该被改为本机地址。
iptables -t nat -A POSTROUTING tcp --destination 203.40.64.2 -j MASQUEREADE

麒麟V10 SP1 不可行。

# 开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 清空iptables
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

# 加载模块
modprobe nf_conntrack_ftp
modprobe nf_nat
modprobe ip_tables

iptables -t nat -A PREROUTING -p tcp -d 203.3.110.29  --dport 10021 -j DNAT --to-destination 203.40.64.2:21

iptables -t nat -A POSTROUTING tcp --destination 203.40.64.2 -j MASQUEREADE

3. 问题复现

3.1.测试机准备

测试服务器功能

IP地址

vsftpd服务器

192.168.122.210

ftp转发机

192.168.122.117

ftp客户端

192.168.122.176

3.2. ftp服务器搭建

# 1、关闭和禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

# 2、安装vsftpd
yum install vsftpd

# 3、配置vsftpd.conf
vim /etc/vsftpd/vsftpd.conf

# 4、开启vsftpd
systemctl start vsftpd
systemctl enable vsftpd

/etc/vsftpd/vsftpd.conf的配置如下所示

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
cmds_denied=

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

3.3.ftp转发机配置

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
modprobe ip_tables

#用于Linux系统的iptables防火墙。第一个命令是将所有TCP协议的10021端口的流量重定向到192.168.122.210的21端口,即将流量从10021端口转发到192.168.122.210的21端口。
iptables -t nat -A PREROUTING -p tcp --dport 10021 -j DNAT --to-destination 192.168.122.210:21

# 将所有目标地址为192.168.122.210的TCP协议流量进行伪装,即将源地址改为防火墙的地址,以便返回流量时可以正确路由回来。
iptables -t nat -A POSTROUTING -p tcp --destination 192.168.122.210 -j MASQUERADE

3.4. ftp客户端测试

lftp 192.168.122.117:10021去访问转发机,转发机由于配置了转发,会将相关的ftp包转发到ftp服务器上。

4.问题分析

4.1.抓包分析

4.1.1. 抓取ftp服务端的包

1、抓取ftp服务器上的包,192.168.122.176对192.168.122.117:10021的请求完全转化为了192.168.122.117:42908对192.168.122.210:21的请求了。

2、vsftp服务器(192.168.122.210:21)将ftp-data端口(30398)告诉给ftp客户端转发机(192.168.122.117:42908),ftp客户端转发机(192.168.122.117:42908)会将这个端口号给正真的ftp客户端(192.168.122.176)。

3、ftp客户端应该去连接vsftp服务器(192.168.122.210:30398),但是vsftp服务器没有收到ftp客户端的连接请求。

4.1.2.抓取ftp客户端的包

可见客户端有去连接ftp服务器提供的ftp-data端口,但是转发机没有转发。

4.1.3.根据抓包整理问题示意图

4.2.验证分析

不加载nf_conntrack_ftp和nf_nat_ftp 相关模块,添加一个端口的转发范围,对于客户端目的端口为30000:31000的包都进行转发,重定向到ftp服务器。

转发机的配置如下:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat


#用于Linux系统的iptables防火墙。第一个命令是将所有TCP协议的10021端口的流量重定向到192.168.122.210的21端口,即将流量从10021端口转发到192.168.122.210的21端口。
iptables -t nat -A PREROUTING -p tcp --dport 10021 -j DNAT --to-destination 192.168.122.210:21

# 转发机上添加转发规则,已知被动端口范围是30000:31000,转发所有客户端目的端口在30000:31000的包,都重定向到192.168.122.210的30000:31000的端口中
iptables -t nat -A PREROUTING -p tcp --dport 30000:31000 -j DNAT --to-destination 192.168.122.210

# 将所有目标地址为192.168.122.210的TCP协议流量进行伪装,即将源地址改为防火墙的地址,以便返回流量时可以正确路由回来。
iptables -t nat -A POSTROUTING -p tcp --destination 192.168.122.210 -j MASQUERADE

经验证可行,说明问题原因就是被动端口的连接,转发机没有转发导致,nf_conntrack_ftp和nf_nat_ftp没有生效导致。

4.3. 资料查询

经过资料查询需要sysctl -w net.netfilter.nf_conntrack_helper=1,nf_conntrack_ftp和nf_nat_ftp才会生效。

5.问题小结

执行sysctl -w net.netfilter.nf_conntrack_helper=1,就可以了。转发机的正确配置如下。

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
modprobe ip_tables

sysctl -w net.netfilter.nf_conntrack_helper=1

#用于Linux系统的iptables防火墙。第一个命令是将所有TCP协议的10021端口的流量重定向到192.168.122.210的21端口,即将流量从10021端口转发到192.168.122.210的21端口。
iptables -t nat -A PREROUTING -p tcp --dport 10021 -j DNAT --to-destination 192.168.122.210:21

# 将所有目标地址为192.168.122.210的TCP协议流量进行伪装,即将源地址改为防火墙的地址,以便返回流量时可以正确路由回来。
iptables -t nat -A POSTROUTING -p tcp --destination 192.168.122.210 -j MASQUERADE

6.参考

NAT环境FTP服务器的映射及访问过程详解_ftp nat-CSDN博客

FTP 协议 基于 Netfilter Conntrack 的 动态端口 开放_conntrack ftp-CSDN博客

linux 如何修复nf_conntrack:出于安全原因,默认自动助手分配已关闭 _大数据知识库

http://e.betheme.net/article/show-240090.html?action=onClick

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600336.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matrix Multiplication

Algorithm 2 —— Strassen’s algorithm Idea The idea behind this algorithm consists in reducing the number of multiplications at the expense of increasing the number of additions and subtractions. In short, this algorithm uses 7 multiplications and 18 add…

NatCross实现NASCAB云可云内网穿透指南

一、简介 1、NAS_CAB介绍 跨平台NAS软件,远程管理照片,影音和文件,无需专用设备,个人版永久免费。官网地址:https://www.nascab.cn/。 2、NatCross介绍 NatCross是内网穿透工具,也是免费的端口映射和DDNS动态域名解析软件。软件从2021年上线以来&…

智能照明控制系统的节能优势及其应用

【摘要】:通过智能照明控制系统与传统照明控制的对比,阐明智能照明控制系统的优势,基本组成、在智能建筑中的应用效果以及其实施存在的问题和前景展望。 安科瑞薛瑶瑶18701709087 【关键字】:智能照明控制;系统组成&…

MySQL卸载、安装、登入与配置

本文是基于Centos 7下的环境进行操作的 目录 查看环境 卸载 安装yum源 查看本地yum源 安装MySQL服务 密钥过期问题 验证安装是否成功 启动MySQL服务 通用方法 配置my.cnf 设置开机启动 登陆选项的认识 查看环境 查看本服务器上安装的数据库 ps ajx |grep mariadb…

避雷指南:11个常见 Kubernetes 误区详解

简介 Kubernetes 是一套功能强大的工具,可用于管理自动可扩展、高可用性的分布式云原生应用程序,但很多人都会犯一些常见错误。 在本文中,我们将探讨使用 Kubernetes 时最常见的一些误区,并提供如何避免这些误区的提示。 不设置资…

知识推理技术解析与实战

目录 一、引言二、知识推理基础知识表示方法本体论语义网络图形数据库 推理机制概述演绎推理归纳推理类比推理 实践代码示例 三、知识推理的核心技术自动推理系统规则引擎推理算法 知识图谱的运用构建知识图谱知识推理与查询 推理算法深度分析转导推理逻辑推理概率推理 实践代码…

互动技术引领纺织非遗展厅新风尚,传统工艺魅力再升级!

伴随着现代化科技技术的高速发展,人们愈发重视传统文化的传承,例如非遗文化展厅的建设,便是为了让更多的人了解和认识传统文化的途径之一,同时在这类展厅方案中运用的多媒体互动技术,不仅能为展厅的优化和完善提供支持…

GD32F470_US-016 模拟电压输出 双量程 模拟量 超声波测距模块 高精度

2.18 US-016电压式超声波测距传感器 US-016是市场上唯有的一款模拟量输出的超声波测距模块,输出的模拟电压和距离值成正比,可以方便的和其他系统相连,US-016工作稳定可靠。 US-016超声波测距模块可实现2cm~3m的非接触测距功能,供…

Docker容器(六)网络配置与数据卷

一、高级网络配置 1.1概述 当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 同时,Docker 随机分配一个本地未占用的私有…

【Spring Security】3.底层原理

文章目录 一、引入二、Filter1)DelegatingFilterProxy2)FilterChainProxy3)SecurityFilterChain4)Multiple SecurityFilterChain 一、引入 官方文档:Spring Security的底层原理 Architecture:整个SpringS…

【Qt 学习笔记】如何在Qt中打印日志 | qDebug的使用 | Assistant的使用

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 如何在Qt中打印日志 | qDebug的使用 文章编号:Qt 学习笔记…

宁波卓越绩效模式导入验收

😀宁波卓越绩效💕模式导入验收,🏅不仅是对企业🎁管理水平的全面检验,更是🚀推动企业🚒追求卓越、实现🦚持续发展的重要契机。🌳这一模式的导入,意…