我有一个运行 CentOS 的虚拟服务器,需要创建一个 FTP 用户提供给客户端,以便他们可以上传一些文件给我。
知道我该怎么做吗?我如何只允许他们从一个文件夹上传的权限?(我不在乎哪个文件夹,只要他们不能访问我的其他文件。)
谢谢。
答案1
以下是基础知识
为您的客户端创建一个本地用户帐户,并为其提供密码和主目录等。
安装 vsftpd
yum install vsftpd
编辑
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
xferlog_file=YES
local_umask=022
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
保存文件并退出然后重新启动 vsftpd
/sbin/service vsftpd restart
并确保它在系统启动时运行
/sbin/chkconfig vsftpd on
编辑/etc/sysconfig/iptables-config
确保有一个条目IPTABLES_MODULES
,其中包含ip_conntrack_ftp
例如
IPTABLES_MODULES="ip_conntrack_ftp"
然后修改防火墙
/sbin/service iptables save
编辑 /etc/sysconfig/iptables
行后
:RH-Firewall-1-Input - [0:0]
或类似( [0:0] 可能不同)添加
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
保存文件并退出,然后重新启动防火墙
/sbin/service iptables restart
你该走了。
答案2
考虑使用 OpenSSH 和 chrooted 主目录为您的用户设置 SFTP 服务器。优点:密钥对身份验证(因此您可以禁用密码身份验证)、您不需要(或者他们不需要)打开 TCP 22 以外的任何其他端口、端到端加密,并且使用 chrooted 主目录,他们只能被“监禁”在其 chrooted 主目录中,并且无法访问该目录之外的内容。