在Ubuntu 14.04 上安装 FTP 服务
第一步>>更新库
sudo apt-get update
第二步>>采用如下命令安装VSFTPD的包
sudo apt-get install vsftpd
第三步>>安装完成后打开 /etc/vsftpd.conf 文件,按如下所述修改。
取消如下行的注释(行号为29和33)
write_enable=YES
local_umask=022
>> 取消如下行的注释(行号120)来阻止除了用户文件夹意外的文件夹。
chroot_local_user=YES
在文件最后增加如下一行:
allow_writeable_chroot=YES
>>添加如下行开启消极模式
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100
第四步>>用如下命令重启vsftpd服务
sudo service vsftpd restart
第五步>>现在ftp服务器正在监听21端口。用如下命令创建用户。用 /usr/sbin/nologin 脚本来阻止ftp用户访问bash脚本。
sudo useradd -m ftpuser -s /usr/sbin/nologin
sudo passwd ftpuser
第六步>>开启nologin脚本的开机访问。打开 /etc/shells 并把如下行添加进去。
/usr/sbin/nologin
现在试着用刚创建的用户通过21端口连接ftp服务器。
至此ftp搭建完成,下面介绍下sftp的搭建
##################################################
需要特别说明一下的是,在21端口上使用ftp是非常危险的。强烈建议使用SFTP。请看下面的SFTP的配置。
安全的FTP(SFTP)
SFTP称作“安全的FTP”,它使用ssh文件传输协议。所以我们需要安装openssh-server。如果还没装的话,执行如下命令。
sudo apt-get install openssh-server
第七步>> 为FTP用户创建一个新的用户组 ftpaccess。
sudo groupadd ftpaccess
第八步>>在 /etc/ssh/sshd_config 中做如下修改
>>找到并注释掉下面一行
Subsystem sftp /usr/lib/openssh/sftp-server
在文件的最后增加如下行
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
第九步>>重启sshd服务
sudo service ssh restart
第十步>>下面几步用来创建访问SFTP服务的用户。
创建用户sftpuser,属于 ftpaccess 组并且执行 /usr/bin/nologin 脚本
sudo useradd -m sftpuser-g ftpaccess -s /usr/sbin/nologin
sudo passwd sftpuser
sudo chown root /home/sftpuser
在home文件夹创建一个用于写入文件的文件夹并修改文件夹的所有者。
sudo mkdir /home/sftpuser/www
sudo chown sftpuser:ftpaccess /home/sftpuser/www
现在用SFTP试着连接服务器(端口:22),并确保用户可以往 www 文件夹上传文件,而且也不能访问 home文件夹以外的文件。
如果你想让FTP和SFTP并存,在创建用户时按照上面的第十步操作就行。对于已经存在的用户,可以像下面这样把他们移动到ftpaccess组,创建文件夹结构并修改所有权。
sudo usermod ftpuser -g ftpaccess -s /usr/sbin/nologin
sudo chown root /home/ftpuser
sudo mkdir /home/ftpuser/www
sudo chown ftpuser:ftpaccess /home/ftpuser/www