Linux ftp服务配置

本文介绍在Red Hat Enterprise Linux 7.2环境下配置vsftpd-3.0.2的过程,包括设置用户、配置文件解析及服务启动验证。特别关注如何启用匿名访问及文件上传功能。


系统版本: Red Hat Enterprise Linux Server release 7.2 (Maipo)
ftp版本: vsftpd-3.0.2-10.el7.x86_64

创建virftp用户用于验证用户登录的场景

useradd -m virftp       #创建用户
passwd virftp           #配置密码

vsftpd.conf配置

[root@优快云 /etc/vsftpd]#cat vsftpd.conf|grep -v "^#"
anonymous_enable=YES        #允许匿名登录,NO禁止匿名登录
local_enable=YES           #允许Web页面使用用户登录,NO不允许Web页面使用用户登录(只能使用匿名用户登录,如果允许匿名登录的话)
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

local_root=/home/virftp/        #本地用户登录ftp时的根目录
anon_root=/ftpboot/            #匿名用户登录ftp时的根目录
anon_upload_enable=YES         #允许匿名用户上传文件
anon_mkdir_write_enable=YES    #允许匿名用户创建文件夹
[root@优快云 /etc/vsftpd]#

anon_upload_enable参数需要write_enable=YES时才有效;而且匿名用户需要将目录权限中others一级配置为可读写,但是本地验证发现将/ftpboot/配置为757或者777的时候启动ftp是不允许匿名访问的,ftp服务本地就对权限有限制,当将/ftpboot/配置为755时可以匿名访问但是目录权限不够即使配置了anon_upload_enable=YES和anon_mkdir_write_enable=YES匿名用户也是无法上传文件的,此时可以先启动服务后再修改/ftpboot/权限就可以达到匿名用户可以上传文件的操作。当然安全考虑不建议开启匿名用户登录的。

启动与验证

分别在/home/virftp/和/ftpboot/目录创建ftp_user.txt和anon.txt文件并启动ftp服务进行验证

[root@优快云 /ftpboot]#touch /home/virftp/ftp_user.txt
[root@优快云 /ftpboot]#touch /ftpboot/anon.txt
[root@优快云 /ftpboot]#service vsftpd start
Redirecting to /bin/systemctl start  vsftpd.service
[root@优快云 /ftpboot]#service vsftpd status
Redirecting to /bin/systemctl status  vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-12-06 17:00:43 CST; 4min 18s ago
  Process: 12266 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 12267 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           ├─12267 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
           ├─12268 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
           └─12270 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Dec 06 17:00:42 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Dec 06 17:00:43 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
Dec 06 17:04:52 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
[root@优快云 /ftpboot]#

验证用户登录(包括Web页面和文件资源管理器两种方式登录)
1.在url中直接输入用户密码
ftp://username:passwd@192.168.37.129
在这里插入图片描述
注:local_enable=NO时Web页面无法使用此方式登录
2.通过登录页面输入用户密码,注意当允许匿名用户登录时一下链接默认会使用匿名用户登录
ftp://192.168.37.129/
在这里插入图片描述
在这里插入图片描述
如上,当使用ie登录ftp时能看到其他目录,但原本的配置是想只能看到/home/virftp/目录下的文件。规避方案是将目录配置到根下,比如/virftp,这样就不会出现上面的现象
3.验证匿名登录(anonymous_enable=YES)
ftp://192.168.37.129/
在这里插入图片描述

### 如何在Linux系统上配置FTP服务器 要在Linux系统上配置一个FTP服务器,可以使用vsftpd(very secure FTP daemon),这是一个安全性高、功能强大的FTP服务器软件。以下内容详细描述了如何安装、配置和管理vsftpd服务。 #### 1. 安装vsftpd 在CentOS或RHEL系统中,可以通过yum包管理器来安装vsftpd: ```bash yum install vsftpd -y ``` 确保系统已连接到互联网以完成软件包的下载和安装[^2]。 #### 2. 启动并设置开机自启 安装完成后,需要启动vsftpd服务,并将其设置为开机自启: ```bash systemctl start vsftpd.service systemctl enable vsftpd.service ``` 可以检查服务状态以确认其是否正常运行: ```bash systemctl status vsftpd.service ``` 如果需要停止或重启服务,可以使用以下命令: ```bash systemctl stop vsftpd.service systemctl restart vsftpd.service ``` #### 3. 配置防火墙 为了允许外部客户端访问FTP服务器,需要在防火墙中开放相应的端口(默认为21)。对于firewalld,执行以下命令: ```bash firewall-cmd --permanent --add-service=ftp firewall-cmd --reload ``` 这将永久性地允许FTP流量通过防火墙[^3]。 #### 4. 修改主配置文件 vsftpd的主要配置文件位于`/etc/vsftpd/vsftpd.conf`。可以根据需求调整以下参数: - `anonymous_enable=NO`:禁用匿名访问。 - `local_enable=YES`:允许本地用户登录。 - `write_enable=YES`:允许上传文件。 - `chroot_local_user=YES`:限制用户只能访问其主目录[^1]。 编辑配置文件后,记得重启vsftpd服务以使更改生效: ```bash systemctl restart vsftpd.service ``` #### 5. 创建虚拟用户(可选) 如果需要创建虚拟用户以增强安全性,可以参考以下步骤: 1. 安装PAM支持模块: ```bash yum install db4 db4-utils -y ``` 2. 编辑`/etc/vsftpd/vsftpd.conf`,启用虚拟用户支持: ```bash guest_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd.virtual ``` 3. 创建虚拟用户数据库文件并生成哈希文件: ```bash touch /etc/vsftpd/virtual_users.txt # 添加用户名和密码,每行一个 db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db chmod 600 /etc/vsftpd/virtual_users.db ``` 4. 配置PAM认证文件`/etc/pam.d/vsftpd.virtual`: ```bash auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users ``` #### 6. 测试FTP服务器 从客户端测试FTP服务器是否正常工作。可以使用命令行工具如`ftp`或图形化客户端如FileZilla进行连接测试。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值