在本教程中,我们将展示如何在Ubuntu中安装,配置和保护FTP服务器。
步骤1:在Ubuntu中安装VsFTP Server
1.首先,我们需要更新系统软件包源列表,然后按如下所示安装VSFTPD二进制软件包:
$ sudo apt-get update
$ sudo apt-get install vsftpd
2.安装完成后,该服务将首先被禁用,因此,我们需要同时手动启动该服务,并使它能够在下次系统引导时自动启动:
————- On SystemD ————- #
systemctl start vsftpd
# systemctl enable vsftpd
————- On SysVInit ————-
# service vsftpd start
# chkconfig –level 35 vsftpd on
3.接下来,如果在服务器上启用了UFW防火墙(默认情况下未启用UFW防火墙),则必须打开FTP守护进程正在侦听的端口21和20,以便允许从远程计算机访问FTP服务,然后添加新的防火墙规则如下:
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status
步骤2:在Ubuntu中配置和保护VsFTP服务器
4.现在,我们执行一些配置来设置和保护FTP服务器,首先,我们将创建原始配置文件/etc/vsftpd/vsftpd.conf的备份,如下所示:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
接下来,让我们打开vsftpd配置文件。
使用这些值添加/修改以下选项:
$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf
5.现在,根据用户列表文件/etc/vsftpd.userlist配置VSFTPD以允许/拒绝对用户的FTP访问。
请注意,默认情况下,拒绝用户列表userlist_file = / etc / vsftpd.userlist中的用户,并带有userlist_deny=YES选项if userlist_enable=YES。
但是,该选项userlist_deny=NO改变了默认设置的含义,因此,仅允许其用户名在userlist_file = / etc / vsftpd.userlist中明确列出的用户登录到FTP服务器。
接下来,我们将研究如何设置chroot的jail(本地)目录的两种可能情况,如下所述。
6.此时,让我们添加/修改/取消注释以下两个选项,以将FTP用户限制在其主目录中。
chroot_local_user=YES重要的是,该选项意味着本地用户将被登录到chroot组别中,默认情况下是其主目录。
chroot_local_user=YES
allow_writeable_chroot=YES
并且我们还必须了解,出于安全原因,默认情况下,VSFTPD不允许chroot监狱目录可写,但是,我们可以使用option allow_writeable_chroot = YES禁用此设置。
————- On SystemD ————-
# systemctl restart vsftpd
————- On SysVInit ————-
# service vsftpd restart
步骤3:在Ubuntu中测试VsFTP服务器
7.现在,我们将通过使用useradd命令创建一个FTP用户来测试FTP服务器,如下所示:
$ sudo useradd -m -c “Aaron Kili, Contributor” -s /bin/bash aaronkilik
$ sudo passwd aaronkilik
然后,我们必须使用echo命令和tee命令在/etc/vsftpd.userlist文件中明确列出用户aaronkilik,如下所示:
$ echo “aaronkilik” | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist
8.现在是时候测试我们的上述配置是否按要求工作了。我们将从测试匿名登录开始;从下面的输出中我们可以清楚地看到,FTP服务器上不允许匿名登录:
9.接下来,让我们测试是否会授予未在文件/etc/vsftpd.userlist中列出的用户登录权限,这在随后的输出中是不正确的:
10.现在,我们将进行最终测试,以确定/etc/vsftpd.userlist文件中列出的用户在登录后是否实际位于其主目录中。这是正确的,从下面的输出:
警告:设置该选项allow_writeable_chroot=YES可能非常危险,可能会带来安全隐患,尤其是如果用户具有上载权限,或者更确切地说,具有外壳程序访问权限时。仅当您完全知道自己在做什么时才使用它。
步骤4:在Ubuntu中配置FTP用户主目录
11.现在,再次打开VSFTPD配置文件。
$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf
然后使用以下#字符将不安全选项注释掉:
#allow_writeable_chroot=YES
接下来,为用户创建替代的本地根目录(aaronkilik,您的目录可能不一样),并通过禁用对该目录的所有其他用户的写权限来设置所需的权限:
$ sudo mkdir /home/aaronkilik/ftp
$ sudo chown nobody:nogroup /home/aaronkilik/ftp
$ sudo chmod a-w /home/aaronkilik/ftp
12.然后,在本地根目录下创建一个具有适当权限的目录,用户将在该目录中存储他的文件:
$ sudo mkdir /home/aaronkilik/ftp/files
$ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files
$ sudo chmod -R 0770 /home/aaronkilik/ftp/files/
然后,在VSFTPD配置文件中使用相应的值添加/修改以下选项:
user_sub_token=$USER
local_root=/home/$USER/ftp
保存文件并关闭它。并使用最新设置重新启动VSFTPD服务:
————- On SystemD ————-
# systemctl restart vsftpd
————- On SysVInit ————-
# service vsftpd restart
13.现在,让我们执行最终检查,并确保用户的本地根目录是我们在其主目录中创建的FTP目录。
FTP是文件传输管理协议的首字母缩写,可以提供给可以给网络提供文件下载服务。相对于文件共享来说,FTP适用面更广,它可以用于不同的网络类型,甚至互联网。
我们通过安装FTP共享软件,就可以搭建FTP服务器,WINDOWS自带的IIS可以实现FTP的服务器的功能,也可以用其他的第三方软件实现,比如serv-u或者更简单的3CDaemon!如果使用时间不长,推荐使用3 cdaemon。
打开3 cdaemon,首先点击stop,设置FTP服务器,点击FTP服务器标签可以根据自己的需求添加用户名,并设置密码并且为该用户设置权限。
保存后点击go按钮一运行FTP服务器右侧工作区会显示出正在监听哪个地址的哪个端口?此时可以证明FTP服务器已经启动。可以使用FTP://IP地址 访问FTP服务器。
本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/7451.html