Ubuntu14.04 搭建FTP
一、需求说明:
本应用在云服务器 ECS完成,旨在方便本人在mac与服务器之间传输文件。
1. 在远程服务端搭建ftp服务,用于文件上传与下载。
2. ftp本地用户名为uftp,密码为uftp。
二、搭建FTP
第一部分:安装vsftpd
Step0:如果需要更新apt-get的
sudo apt-get update
Step1: 安装vsftpd
这里使用Ubuntu的源直接安装, 安装完以后就可以使用匿名方式连接FTP。
# 安装 sudo apt-get install vsftpd
第二部分: 创建目录
Step1: 创建uftp用户
# 创建家目录 sudo mkdir /home/uftp # 新建用户uftp并设置密码 sudo useradd -d /home/uftp -s /bin/bash uftp sudo passwd uftp # 修改家目录权限 chmod 777 -R /home/uftp
第三部分: 配置FTP
Step1:配置/etc/vsftpd.conf
该文件为FTP的配置文件,各配置项说明见附录1。本次配置按照如下顺序进行。
# 打开文件 sudo vim /etc/vsftpd.conf # 确保 local_enable = YES # 确保 write_enable = YES 否则不能写文件 # 在该文件末尾添加以下几行 userlist_deny=NO userlist_enable=YES userlist_file=/etc/allowed_users seccomp_sandbox=NO # 退出并保存
Step2:新建/etc/allowed_users文件
该文件指明允许登陆的用户
# 创建文件 sudo vim /etc/allowed_users # 输入uftp,并保存退出
Step3:确保该用户没有被禁
/etc/ftpusers文件中记录的是不能访问FTP服务器的用户清单。查看其中是否有uftp,如果有则删除,没有则直接退出。
sudo vim /etc/ftpusers
Step4:重启FTP服务
service vsftpd restart
Step4+:有的时候会出现530 Login incorrect
这是因为ubuntu启用了PAM,所在用到vsftp时需要用到 /etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以只要删除了就可以了。
sudo apt-get remove vsftpd sudo rm /etc/pam.d/vsftpd sudo apt-get install vsftpd
附件1
vsftpd软件的使用
sudo apt-get autoremove vsftp #卸载vsftpd service vstfpd start #启动ftp service vsftpd stop #关闭ftp service vsftp restart #关闭ftp
vsftpd.conf文件说明
用户登录控制: anonymous_enable=YES,允许匿名用户登录。 no_anon_password=YES,匿名用户登录时不需要输入密码。 local_enable=YES,允许本地用户登录。 deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。 banned_email_file=/etc/vsftpd/banned_emails,保存电子邮件黑名单的目录(默认) 用户权限控制: write_enable=YES,开启全局上传 local_umask=022,本地文件上传的umask设置为022,系统默认。 anon_upload_enable=YES,允许匿名用户上传,当然要在write_enable=YES的情况下。同时必须建立一个允许ftp用户读写的目录。 anon_mkdir_write_enable=YES,允许匿名用花创建目录 chown_uploads=YES,匿名用户上传的文件属主转换为别的用户,一般建议为root。 chown_username=whoever,改此处的whoever为要转换的属主,建议root chroot_list_enable=YES,用一个列表来限定哪些用户只能在自己目录下活动。 chroot_list_enable=/etc/vsftpd/chroot_list,指定用户列表文件 nopriv_user=ftpsecure,指定一个安全账户,让ftp完全隔离和没有特权的账户 其他的建议不要配置。 用户连接和超时设置: idle_session_timeout=600,默认的超时时间 data_connection_timeout=120,设置默认数据连接的超时时间