Ubuntu搭建你的专属FTP服务器
ftp服务拥有两种连接模式:主动port和被动passive,客户端连接ftp时现在默认一般的都是使用被动模式的,主动模式需要另外指定,像Windows自带的连接ftp的功能我是找不到指定主动模式的选项的,因此本文章只选择被动模式连接(相比之下,主动模式的配置更加容易)。安装ftp,ubuntu下是安装vsftpd库,如:
sudo apt-get install vsftpd systemctl enable vsftpd.service//设置自启动 service vsftpd start//启动接下来讲解如何以用户的方式远程登录ftp,通常需要先创建一个用于连接ftp的用户:
sudo useradd ftpuser//创建一个名为ftpuser的用户 sudo passwd ftpuser//为此用户设置密码 ...... sudo usermod -d /home/ftphome ftpuser//为ftpuser指定它的家目录,需事先创建这个家目录现在我们需要开放ftp的默认连接端口,被动模式还需要开放大于1024的某范围的端口,这是它与主动模式的最大区别,我们使用ufw开放端口:
ufw allow 21/tcp ufw allow 20/tcp ufw allow 7400:7600/tcp//开启某范围端口(自定义)是被动模式必须的
通过用户名和密码的方式登录远程ftp
现在,我们开始为事先的ftpuser用户设置远程ftp权限。首先创建一个目录,并且给这个目录设置它的所属用户,此用户是ftpuser:mkdir /ftp-share chmod -R 755 /ftp-share sudo chown ftpuser /ftp-share//将此目录所属主设为ftpuser接着创建'/etc/vsftpd.chroot_list'这个文件,然后打开/etc/vsftpd.conf文件,将文件底部的内容改为如下所示的允许被动模式连接:
ssl_enable=NO pasv_enable=YES pasv_max_port=7600 pasv_min_port=7400继续更改配置文件(文件中没有的便填入,有的就修改)如下:
#限定用户只能操作用户目录 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list #用户目录有写权限,允许写权限 allow_writeable_chroot=YES #是否允许用户列出目录的内容 #dirlist_enable=YES #设置登录ftp后允许操作的目录,即事先属于ftpuser的目录 local_root=/ftp-share然后保存好文件内容,重启vsftpd服务:
sudo restart vsftpd我们试试用某个客户端主机连接一下ftp,输入用户名ftpuser和它的密码,指定好主机ip,并且确保连接选项为被动passive模式,通常这是默认的。成功连接后,就会显示目录ftp-share中的内容,客户端可以下载和编辑文件,若想禁止编辑,一样可以设置,配置文件修改了相应的目录ftp-share的权限最好也跟着相应更改,这里就不多说了。
通过匿名方式登录远程ftp
ftp同样可以不输入密码直接连接,我们创建一个用于匿名方式登录ftp所操作的目录,如/ftp-open-share并且权限为755,不必设置所属主,默认root即可。然后编辑/etc/vsftpd.conf,在顶部输入如下内容:#匿名用户访问 anonymous_enable=YES local_enable=YES #匿名用户默认目录 anon_root=/ftp-open-share #anon_upload_enable=YES#允许匿名用户上传文件? #anon_mkdir_write_enable=YES#允许匿名用户创建目录和写权限? #anon_other_write_enable=YES#允许匿名用户删除、重命名等其它权限? #匿名不必输入密码 no_anon_password=YES write_enable=YES保存好文件内容,重启vsftpd服务,这样客户端主机就可以直接连接远程ftp而不必输入密码,但只有下载权限(这是安全的)。你仍可以通过ftpuser用户以密码方式登录ftp操作ftp-share目录,两全其美!
来自:计算机系统与软件工具
更新于2022-03-12 10:40:57 发表于2022-03-12 09:56:25
更新于2022-03-12 10:40:57 发表于2022-03-12 09:56:25
此内容暂不允许评论