《Linux FTP配置指南》是一份全面介绍如何在Linux系统中安装、配置和管理FTP服务的教程。它涵盖了vsftpd等常用软件的设置方法及安全策略建议。
20.1 FTP服务
FTP采用客户/服务器工作模式,并使用vsftpd作为FTP服务器软件。FTP有两种工作方式:PORT主动模式和PASV被动模式。
一般情况下,FTP服务器都设置为被动模式(PASV)以避免防火墙或NAT设备的限制问题。
20.1.1 vsftp概述
安装后,可以通过以下命令查看vsftpd的相关配置文件:
- `rpm -qc vsftpd`
- `/etc/logrotate.d/vsftpd.log`
- `/etc/pam.d/vsftpd`(用于验证安全)
- `/etc/vsftpd/ftpusers`(禁止登陆的用户列表)
- `/etc/vsftpd/user_list` (与上文同功能,用于限制登录FTP的用户)
vsftp主目录默认设置为不可更改的位置:`/var/ftp`
20.1.2 vsftp安装和启动
如果没有安装vsftpd,则使用以下命令进行:
```shell
rpm -ivh vsftpd-2.0.4-1.2.i386.rpm
```
之后,设置为开机自启并启动服务:
```shell
chkconfig --level 345 vsftpd on
service vsftpd start
```
20.2 vsftp访问配置
vsftp默认的匿名用户和本地用户的主目录分别为`/var/ftp` 和 `/home/<用户名>`。
在修改了以下选项后,可以启用或禁用特定功能:
```shell
vi /etc/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
# 其它配置项略...
```
默认情况下,匿名用户能够下载`/var/ftp`目录的内容,而本地用户可以访问自己的主目录。
20.3 vsftpd基本实例设置
- 更改端口号:在vsftpd.conf中添加 `listen_port=2121`, 然后重启服务。
- 限制特定用户的目录更改权限:
- 修改 `/etc/vsftpd/chroot_list` 文件,加入需要限制的用户名(如redhat)。
- 设置 `chroot_list_enable=YES`
- 允许匿名上传:在vsftpd.conf中启用 `anon_upload_enable=YES` 和 `anon_mkdir_write_enable=YES`, 并确保 `/var/ftp`目录对所有用户可写。
- 取消匿名登录:将配置文件中的 `anonymous_enable=NO`.
- 设置欢迎信息和目录说明:
- 修改 vsftpd.conf 中的 `ftpd_banner`
- 在 /var/ftp 目录下创建 .message 文件,添加欢迎语句。
20.4 FTP虚拟用户设置
为了实现更加安全的服务访问机制,可以为FTP服务配置虚拟账户。这涉及到建立一个单独的用户名和密码数据库文件,并修改PAM认证文件以使用该数据库进行身份验证。
- 创建并加载vuser.txt到 /etc/vsftpd_login.db
- 修改vsftpd.conf 开启guest_enable=YES 并设置 guest_username=vuser
20.5 FTP客户端命令
FTP客户端可以用来在本地和远程机器之间传输文件。常用命令如下:
```shell
ftp 主机名/IP
ls 列出当前目录
cd 改变工作目录
lcd 改变本地目录
ascii 设置ASCII模式
binary 设置二进制模式
close 结束会话
hash 每次数据缓冲区传送后显示一个#号
get(mget) 从远程下载文件到本地
put(mput) 上传文件至远程服务器
open 连接FTP站点
quit 断开连接并退出FTP
? 显示帮助信息
```