在CentOS 7上部署文件传输服务器,可以使用vsftpd(very secure FTP daemon)作为FTP服务器软件。以下是步骤:
1.安装vsftpd
sudo yum install vsftpd
2.启动vsftpd服务并设置开机自启动
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
3.配置vsftpd
打开vsftpd配置文件,将以下行取消注释,并修改为以下内容:
sudo vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
这个配置文件实现了以下功能:
- 禁用匿名登录
- 允许本地用户登录
- 允许本地用户写入
- 设置本地用户的默认文件掩码
- 启用FTP的目录信息传输
- 启用FTP日志
- 启用20端口主动模式,可兼容大多数FTP客户端
- 限制用户只能访问其主目录
- 允许所有用户访问其主目录下的子目录
- 启用被动模式,需要开放40000到50000端口范围
4.创建FTP用户并设置密码
sudo adduser ftpuser
sudo passwd ftpuser
5.设置FTP用户的主目录
默认情况下,FTP用户的主目录是/home/username。为了更好的安全性,应该将其更改为FTP用户能访问的目录。可以通过修改/etc/passwd文件的第五列来实现,比如:
sudo usermod -d /var/ftp ftpuser
6.设置SELinux
如果SELinux开启,需要设置以允许FTP服务访问FTP用户主目录,执行以下命令:
sudo setsebool -P ftp_home_dir 1
7.重启vsftpd服务
sudo systemctl restart vsftpd
至此,文件传输服务器就部署完成了。FTP客户端可以通过FTP协议连接到该服务器。
2.安装SFTP服务器
a. 安装OpenSSH服务器:
sudo yum install openssh-server
b. 启动sshd服务:
sudo systemctl start sshd
c. 开启sshd服务,以便在系统重新启动后自动启动:
sudo systemctl enable sshd
d. 打开sshd配置文件:
sudo nano /etc/ssh/sshd_config
e. 更改以下选项:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
f. 保存并关闭文件。
g. 重启sshd服务以应用更改:
sudo systemctl restart sshd
- 添加FTP或SFTP用户
a. 添加一个新用户:
sudo useradd username
b. 设置新用户的密码:
sudo passwd username
c. 将新用户添加到FTP或SFTP用户组:
sudo usermod -aG ftpusers username # For FTP
sudo usermod -aG sftpusers username # For SFTP
- 测试FTP或SFTP服务器
a. 使用FTP客户端连接到FTP服务器,或使用SFTP客户端连接到SFTP服务器。
b. 通过FTP或SFTP客户端上传和下载文件,以确保服务器和用户均已正确配置。
以上即是在CentOS 7上部署FTP和SFTP服务器的步骤。注意保持服务器安全,例如限制访问和使用防火墙等安全措施。