【问题处理】银河麒麟操作系统实例分享,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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

由近期 RAGFlow 的火爆看 RAG 的现状与未来

4 月 1 日,InfiniFlow (英飞流)的端到端 RAG 解决方案 RAGFlow 正式开源,首日即获得了 github 千星,目前已接近 3000 star。在这之前,InfiniFlow 还开源了专门用于 RAG 场景的 AI 原生数据库 Infinity&…

autodl常用工具命令

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 tar/zip命令镜像版本参考torch包全版本下载torch和cuda版本对应conda命令conda打包conda 环境重命名conda环境复制和转移conda环境删除 tar/zip命令 参考链接 文件目录打包&#x…

加州大学欧文分校英语基础语法专项课程03:Simple Past Tense 学习笔记(完结)

Learn English: Beginning Grammar Specialization Specialization Certificate course 3: Simple Past Tense Course Certificate 本文是学习 https://www.coursera.org/learn/simple-past-tense 这门课的学习笔记,如有侵权,请联系删除。…

爬虫入门教程(一)

爬虫入门教程 1.什么是爬虫 爬虫是一种自动获取网站数据的程序或脚本。它可以自动模拟人类访问网站,获取网页源代码,解析并提取出所需的数据。 爬虫的工作原理类似于搜索引擎的索引程序,它们会按照预定的规则和算法在互联网上不断地爬取网页,收集信息…

mysql 查询变量@i:=@i+1

学习完mysql的查询:基本查询,连接查询和子查询和mysql 正则表达式查询,接下来先学习下变量查询。 mysql中没有oracle序列号那一列。mysql可以使用查询变量的方式去处理。我们先了解下查询变量,后面应用起来就更清晰。 1&#xff0…

盘点那些好用的SAP FIORI App (五)-管理银行账户

SAP的ECC系统里面,House Bank银行账户的维护是在GUI通过T-Code FI12进行创建修改的,但是升级到S4 HANA以后,FI12的创建维护功能已经取消,所有的house bank account,都要通过这个FIORI App 维护。 App ID 如下 银行账户创建 点击…

【Linux 命令】内核、驱动调试手段总结

文章目录 1. printk2. strace3. Itrace4. ptrace5. ftrace6. 动态打印7. perf8. devmem9. demsg参考: 1. printk **printk()**是 Linux 内核中最广为人知的函数之一。它是我们打印消息的标准工具,通常也是追踪和调试的最基本方法。 虽然 printk() 是基…

Stable diffusion 初学者指南

1. Stable diffusion 初学者指南 想掌握Stable Diffusion AI技术吗? 这份初学者指南专为完全没接触过Stable Diffusion或任何AI图像生成器的新手设计。跟随本指南,你将了解Stable Diffusion的基本情况,并获得一些实用的入门技巧。 什么是S…

JavaWeb流行框架(代码案例)

Struts2基础 通过Struts2将请求转发到指定JSP页面 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w…

Codeforces Round 938 (Div. 3) (A~E)

Codeforces Round 938 (Div. 3) (A~E) 目录&#xff1a;A B C D E A题&#xff1a;Yogurt Sale 标签: 数学&#xff08;math&#xff09; 题目大意 酸奶价格&#xff0c; a 元一份&#xff0c;b元两份n问&#xff1a;买n份最少多少钱 思路 a元一份&#xff0c;b元两份&#…

js获取上周本周下周的日期(附Demo)

目录 前言1. 基本知识2. Demo3. 彩蛋 前言 现在的时间点是&#xff1a;2024-04-08&#xff0c;对应的日期如下&#xff08;上周、这周、下周&#xff09; 1. 基本知识 讲述Demo之前&#xff0c;先补充一些基础知识 JavaScript 中的 Date 对象是用于处理日期和时间的对象。它…

【ensp】VLAN间通信的解决办法

VLAN间通信简介 VLAN间三层通信是指在VLAN网络中&#xff0c;不同VLAN之间进行通信的过程。 我们知道VLAN是虚拟局域网&#xff0c;在一个局域网内我们是通过Mac地址进行通信&#xff0c;在局域网与局域网之间通过IP地址来通信&#xff0c;大致过程如下&#xff1a; 主机在发…

【SERVERLESS】搭建ServerLess服务

目录 一、前言 二、什么是ServerLess? 三、ServerLess技术选型 四、ServerLess基础服务搭建 Mac安装示例&#xff1a; Windows安装说明&#xff1a; 五、生成ServerLess应用 六、ServerLess部署 验证并访问函数应用 七、ServerLess进阶演示 八、ServerLess最后总结 …

芒果YOLOv8改进组合157:动态标签分配ATSS+新颖高效AsDDet检测头组合改进,共同助力VisDrone涨点1.8%,小目标高效涨点

💡本篇内容:【芒果YOLOv8改进ATSS标签分配策略|第三集】芒果YOLOv8改进组合157:动态标签分配ATSS+新颖高效AsDDet检测头组合改进,共同助力VisDrone涨点1.8%,小目标高效涨点 💡🚀🚀🚀本博客 标签分配策略ATSS改进+ 新颖高效AsDDet检测头组合改进,适用于 YOLOv8 …

免费ai写作软件有哪些?分享10个给你 #媒体#学习#媒体

你是否因为写作困顿而感到沮丧&#xff1f;是不是希望能够找到一个能给你提供无限灵感和提高创作效率的利器&#xff1f;AI写作助手就是你的绝佳选择&#xff01;现在我向大家推荐几款好用的AI写作助手&#xff0c;它们将让你的创作之旅更加流畅、富有创意。 1.飞鸟写作 这是…

超详细解读Transformer框架

Transformer是由谷歌大脑2017年在论文《Attention is All You Need》中提出的一种序列到序列(Seq2Seq)模型。自提出伊始&#xff0c;该模型便在NLP和CV界大杀四方&#xff0c;多次达到SOTA效果。NLP领域中&#xff0c;我们所熟知的BERT和GPT就是从Transformer中衍生出来的预训练…

【云计算】云网络产品体系概述

云网络产品体系概述 在介绍云网络产品体系前&#xff0c;先介绍几个与云计算相关的基础概念。 阿里云在基础设施层面分为 地域 和 可用区 两层&#xff0c;关系如下图所示。在一个地域内有多个可用区&#xff0c;每个地域完全独立&#xff0c;每个可用区完全隔离&#xff0c;同…

咸鱼之王_手游_开服搭建架设_内购修复无bug运营版

视频演示 咸鱼之王_手游_开服 游戏管理后台界面 源码获取在文章末尾 源码获取在文章末尾 源码获取在文章末尾 或者直接下面 https://githubs.xyz/y28.html 1.安装宝塔 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &…

Leetcode C语言习题

Leetcode习题27&#xff1a;移除元素 题目&#xff1a; 说明&#xff1a; 示例&#xff1a; 题解&#xff1a; 方法一&#xff1a;&#xff08;开辟额外的数组空间&#xff09; 我们可以创建一个新的数组&#xff0c;然后用循环来遍历原数组&#xff0c;将原数组中不为 val…

29.WEB渗透测试-数据传输与加解密(3)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;28.WEB渗透测试-数据传输与加解密&#xff08;2&#xff09; md5解密网站&#xff1a;ht…