Linux服务_FTP

Linux 服务——FTP

FTP 服务

  • FTP (File Transfer Protocol) 是一种标准网络协议,用于在计算机之间 传输文件。它基于客户端-服务器架构,允许客户端通过网络连接到服务器,并上传、下载或管理服务器上的文件。

[!CAUTION]

FTP 服务的安全隐患:

  • 明文传输
  • 支持匿名登录

文件传输的方法

  1. sftp:端口 22,是 windterm 等第三方连接工具默认自带的文件传输功能。

  2. http:端口 80

    python -m http.server
    
  3. vmtools:VM 虚拟机自带的复制粘贴。

  4. FTP 服务:端口 21、20,文件传输协议。

  5. SMB 服务:端口 445、139,文件共享服务。

安装 FTP

  1. 法一:使用 yum 进行安装。

    yum install vsftpd
    apt install vsftpd
    

    image-20250603174421773

  2. 法二:下载安装包安装。

    • 下载 rpm 安装包。

      wget ftp://ftp.icm.edu.pl/vol/rzm7/linux-centos-vault/7.7.1908/cr/x86_64/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
      
    • 安装

      rpm -ivh vsftpd-3.0.2-27.el7.x86_64.rpm
      

使用 FTP

  1. 启动 vsftpd

    systemctl start vsftpd
    
  2. 确认是否启动成功(查看 21 端口是否开启)

    netstat -anltup | grep 21
    

    image-20250603182606593

配置文件——(匿名登录)

  1. 编辑配置文件

    vim /etc/vsftpd/vsftpd.conf		#CentOS 路径
    vim /etc/vsftpd.conf		#kali 路径
    
    anonymous_enable=YES		#是否运行匿名登录?
    			#在 CentOS 中默认开启匿名,在 kali 中默认关闭匿名
    anon_root=/var			#设置使ftp只能传输 /var 里面的文件或文件夹
    

    image-20250603185319779

  2. 登陆 FTP

    ftp		#Windows CMD 登录
    ftp> open 192.168.85.128
    anonymous
    任意密码
    
    quit		#退出
    

    image-20250603184358955

    • 在 CentOS 系统中,可能会出现登录不上去的命令,因为 Centos 系统默认防火墙是开启的。

      systemctl stop firewalld		#关闭防火墙
      
    • ls 出现 425 报错,就是 CentOS 系统防御机制 selinux 拦截了流量。

      setenforce 0		#关闭 selinux
      

配置文件——(安全登录)

  1. 取消匿名登录

    vim /etc/vsftpd/vsftpd.conf		#CentOS 路径
    vim /etc/vsftpd.conf		#kali 路径
    
    anonymous_enable=NO		#取消匿名登录
    
  2. 创建一个低权限的用户专门用于文件传输

    useradd ftp_test -d /opt/tools
    passwd ftp_test
    
  3. 确认创建的家目录的属主 image-20250603191153181

  4. 编辑配置 user_list

    /etc/vsftpd/user_list		#CentOS 路径
    /etc/vsftpd.user_list		#kali 路径,该文件默认不会自动创建,可手动创建
    
    ftp_test		#在文件中添加用户
    
  5. 编辑配置文件

    #添加如下配置
    local_enable=YES	#允许本地用户登录
    userlist_deny=NO	#user_list文件中写的用户原本为禁止登录,设为 NO 后其中的用户即可登录
    

    image-20250603193655434

  6. 重启服务并登录

    systemctl restart vsftpd
    
    ftp		#Windows CMD 登录
    ftp> open 192.168.85.128
    ftp_test
    密码
    

    image-20250603193612166

配置文件——(限制目录)

  1. 以上配置只是限制了只有用户 ftp_test 可以登录,但是没有限制文件的传输路径,即仍可以直接看到如根目录这样的其他文件。 image-20250603193921771

  2. 修改配置文件

    chroot_local_user=Yes		#把 ftp_test 用户的家目录当作是 / 目录使用
    allow_writeable_chroot=YES		#允许 ftp_test 用户的家目录具有可写权限
    

    image-20250603194738938

    ftp 服务器默认要求:

    /opt/tools 不能具有写权限,只有 /opt/tools 的子文件夹才能具有写权限。

    如果不满足,则会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

    解决方法:

    1. 法一:去除写权限。

      chmod u-w /opt/tools
      
    2. 法二:在配置文件中加上配置

      allow_writeable_chroot=YES
      

    image-20250603194708687

快速打开 FTP 服务

  1. 在当前目录打开端口 21 的 ftp 服务(匿名)。

    python -m pyftpdlib -p 21
    
  2. 在当前目录打开端口 21 的 ftp 服务(指定用户名、密码)。

    python -m pyftpdlib -p 21 -u zhangsan -P 123		#-u 指定用户名
    												#-P 指定密码
    
  3. 遇到 python 没有相关模块的报错。

    python -m pip install pyftpdlib --break-system-packages -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
    

    image-20250603210352324

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇