Ubuntu上安装ftp服务器

来源:互联网 发布:union软件 编辑:程序博客网 时间:2024/05/22 04:38
5 Ubuntu上安装ftp服务器
5.1 安装vsftpd
$ sudo apt-get install vsftpd


5.2 配置vsftpd
修改vsftpd的配置文件
$ sudo gedit /etc/vsftpd.conf
添加或打开的功能:
listen=YES # 服务器监听
anonymous_enable=YES # 匿名访问允许
local_enable=YES     # 本地主机访问允许
write_enable=YES     # 写允许
anon_upload_enable=YES # 匿名上传允许,默认是NO
anon_mkdir_write_enable=YES # 匿名创建文件夹允许
dirmessage_enable=YES   # 进入文件夹允许
xferlog_enable=YES   # ftp 日志记录允许
connect_from_port_20=YES     # 允许使用20号端口作为数据传送的端口
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
5.3 设置ftp相关目录
安装完毕后,/srv下会增加一个ftp目录,同时系统会增加一个名为ftp的用户组。
查看命令:
$ sudo cat /etc/shadow | grep ftp
ftp:*:16371:0:99999:7:::


创建目录:
$ sudo mkdir /srv/ftp/download/srv/ftp/upload
$ sudo chmod  755 /srv/ftp/download
$sudo chmod  777 /home/ftp/upload


$ ls /srv/ftp/ -lh
drwxr-xr-x 2 root root 4.0K  7月  1  2016 download
drwxrwxrwx 2 root root 4.0K  6月 23  2016 upload
可对应属性查看读写权限。
5.4 启动vsftpd
$sudo service vsftpd start


查看启动情况:
$ ps -e | grepvsftpd
1080 ?        00:00:00 vsftpd


说明服务器端vsftp的最基本配置已完成,vsftpd已开启。


5.5 添加虚拟用户及目录指定
虚拟用户的配置:
$ gedit ftptests.list
test1
test1pwd
test2
test2pwd


生成vsftpd的认证文件:
$ sudo db_load -T -t hash -f ftptests.list /etc/vsftpd/vsftpd_login.db
$ sudo chmod  600  /etc/vsftpd/vsftpd_login.db


建立虚拟用户的PAM配置文件:
$ sudo gedit /etc/pam.d/vsftpd  (加入下面的内容,其他全部注释)
auth required pam_testdb.so db=/etc/vsftpd/vsftpd_login
account required pam_testdb.so db=/etc/vsftpd/vsftpd_login


建立虚拟用户访问的目录并设置权限
$ sudo useradd -d /home/ftp -s /sbin/nologin virtual
$ sudo chmod  777 /home/ftp/
在vsftpd.conf中添加如下参数配置项:
guest_enable=YES
guest_testname=virtual


对不同用户设置不同权限
$ sudo mkdir /etc/vsftpd/vsftpd_user_conf
$ sudo gedit /etc/vsftpd/vsftpd_user_conf/test1 (建立单独的配置文件,文件名就是用户名)
local_root=/home/ftp/test1  #这里虚拟用户目录根据实际情况修改
write_enable=YES
virtual_use_local_privs=YES  #虚拟用户具有写权限


在vsftpd.conf中添加如下参数配置:
user_config_dir=/etc/vsftpd/vsftpd_user_conf


禁锢FTP用户在宿主目录
将需要禁锢的用户命写入"vsftpd.chroot_list"文件
$ sudo gedit /etc/vsftpd.chroot_list
test1
test2
在vsftpd.conf添加如下参数配置:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list


用户的根目录不能有写权限。可以通过在下面建子目录的方式来实现上传。
cmds_allowed=ABOR,CWD,DELE,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,\ 
        RMD,RNFR,RNTO,SIZE,STOR,TYPE,TEST,ACCT,APPE,CDUP,HELP,MODE,\ 
        NOOP,REIN,STAT,STOU,STRU,SYST
cmds_denied=ABOR,CWD,DELE,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,\ 
        RMD,RNFR,RNTO,SIZE,STOR,TYPE,TEST,ACCT,APPE,CDUP,HELP,MODE,\ 
 NOOP,REIN,STAT,STOU,STRU,SYST


不允许覆盖的方法:
在vsftpd.conf中增加
file_open_mode=0444


重新启动vsftpd:
$ sudo service vsftpd restart



0 0