Linux搭建FTP服务,实现只上传,不下载

笔者最近收到一个需求,搭建Linux上的Ftp服务,但是只能上传,不能下载,且用户不能跳开Ftp,通过Sftp来获得文件。大致看了些网上分享。通过配置,完成这个“奇葩”需求。

首先跳开Ftp,使用Sftp那么可以通过设置虚拟账户来实现。

其次Ftp上只上传,不下载,那么通过配置Ftp服务来实现。

操作系统Redhat6.8,安装vsftp包。通过rpm命令:(这里通过挂载了iso,进入包目录)

# rpm -ivh vsftpd-xxxxx

安装db4

# rpm -ivh db4-xxxxx

也可以通过Yum命令,道理是一样的。

安装完成后,首先配置vsftpd.conf.进入/etc/vsftpd

# vim 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

chown_uploads=YES

xferlog_std_format=YES

download_enable=NO

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

ftpd_banner=Welcome to blah FTP service .

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

virtual_use_local_privs=NO

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vsftpd_user_conf

新建虚拟账户,同样在/etc/vsftpd目录下新建logins.txt文件(文件名随意)

编辑: 

第一行用户名:ftpcs 

第二行:密码XXX 

多个用户依次添加。(奇数行为用户,偶数行为密码)

文件添加完成后:

# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_logins.db

为了安全性,这个时候logins.txt文件可以移除。

赋予权限

# chmod 600 /etc/vsftpd/logins.db

放置虚拟用户:

# vim /etc/vsftpd/chroot_list

在这边添加上面的虚拟用户,只有用户没有密码。

新建系统用户,这里笔者新建了ftpuser,指定到/home/ftpsite目录,同时在ftpsite目录下新建虚拟用户对应的ftp目录。

# useradd -d /home/ftpsite -s /sbin/nologin ftpuser

# mkdir /home/ftpsite/ftpcs

# chmod 700 /home/ftpsite/

# chown -R ftpuser:ftpuser /home/ftpsite

还是当前目录新建:

# mkdir vsftpd_user_conf

进入该目录,新建对应虚拟用户的文件:

# vi ftpcs

添加内容

local_root=/home/ftpsite/ftpcs

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=NO

配置pam.d

# vim /etc/pam.d/vsftpd

加入下面内容,其他行全部注释: 

(64位系统:)

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

完成重启,测试ftpcs账户。

# service vsftpd restart

这个时候虚拟账户ftp登录,只能停留在当前目录,只可上传文件,不能下载,删除。 

测试比较匆忙,欢迎补充。

你可能感兴趣的:(Linux搭建FTP服务,实现只上传,不下载)