扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
以 vsftpd为例:
成都创新互联公司服务项目包括泸溪网站建设、泸溪网站制作、泸溪网页制作以及泸溪网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,泸溪网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到泸溪省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1,安装ftp
sudo apt-get install vsftpd
2,配置vsftpd.conf
------------------
sudo nano /etc/vsftpd.conf #禁止匿名访问
anonymous_enable=NO#接受本地用户
local_enable=YES#允许上传
write_enable=YES#用户只能访问限制的目录
chroot_local_user=YES#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
看网上说加一行“pam_service_name=vsftpd”,我看我这个配置文件本来就有,就不管了。
-------------------
3,添加ftp用户
sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser
4,调整文件夹权限
这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
sudo chmod a-w /home/ftp
sudo mkdir /home/ftp/data
这样登录之后会看到data文件夹,虽然稍麻烦,原因不表了。。查资料这么辛酸已经不易。。
改pam.d/vsftpd
这时候直接用useradd的帐号登录ftp会530 login incorrect
sudo nano /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
5,重启vsftpd
sudo service vsftpd restart
1.VSFTPD
这个应该是最常用的FTP服务器之一,号称是最安全的。文件传输速度快(在一份评测报告中看到的,比其余两种快很多),搭建也比较容易。但是在使用过程中我感觉它在目录权限控制上不如proftpd方便。配置文件也相对复杂。在这三个服务器中,我将它排在第二名。
2.PROFTPD
这个我比较喜欢,配置问价很容易看懂,对目录的权限控制功能比较强大。很容易上手。在这三个里面我将它排在第一名、
3.PUREFTPD
之所以使用这个是因为它能够在配置文件里指定客户端使用的编码方式,对于windows和linux之间的上传下载非常方便。但是在实际使用过程中发现,它的这个功能仍然有缺陷,就是当传输的文件很多,目录层次也比较深的时候,它不能够将所有的名称都做正确的字符集转换,仍然会出现一些乱码。只能说它部分的解决了乱码问题。另外它的配置方式也比较独特,每一个选项是一个文件。我感觉比较繁琐,不太习惯。因此将它排在最后一名。
在本教程中,我们将介绍如何在 Ubuntu 16.04 / 16.10 中使用 SSL / TLS 加密 FTP(本文中,我们将使用 VsFTP,一个号称非常安全的 FTP 软件)
在完成本指南中的所有步骤之后,我们将进一步去了解在FTP服务器中启用加密服务的基本原理,以确保能安全的传输数据。
必须在 Ubuntu中已经安装并配置完FTP服务器
请确保本文中的所有命令都将以root或sudo特权帐户运行。
1.我们将首先在 /etc/ssl/ 下创建一个子目录(如果这个目录不存在),以存储SSL / TLS证书和密钥文件:
2.现在,我们通过运行下面的命令在单个文件中生成证书和密钥。
上述命令将提示您回答以下问题,请输入自己特定的值。
3.在进行任何 VsFTP 配置之前,对于启用了UFW防火墙的用户,必须打开端口990和40000-50000,以允许在VSFTPD配置文件中分别设置TLS连接和被动端口的端口范围:
4.现在,打开VSFTPD配置文件并在其中定义SSL详细信息:
然后,添加或找到选项 ssl_enable 并将其值设置为 YES 以激活 SSL 的使用,因为 TLS 比 SSL 更安全,因此通过启用 ssl_tlsv1 选项,我们将限制 VSFTPD 使用 TLS:
5.接下来,使用 # 字符注释掉下面的行,如下所示:
6.现在,我们还必须防止匿名用户使用SSL,然后强制所有非匿名登录使用安全的SSL连接进行数据传输,并在登录期间发送密码:
7.此外,我们可以使用以下选项在FTP服务器中添加更多的安全功能。使用option_ssl_reuse = YES选项,所有SSL数据连接都需要展示SSL会话重用;证明他们知道与控制频道相同的主机密码。所以我们应该禁用它。
另外,我们可以通过设置 ssl_ciphers 选项来设置SSL密码等级。这将有助于阻挡试图强制使用特定密码的攻击。
8.然后,我们来定义被动端口的端口范围(最小和最大端口)。
9.我们可以使用debug_ssl选项启用SSL调试,将 openSSL 连接记录到VSFTPD日志文件中:
最后保存并关闭文件。然后重启 VSFTPD 服务:
10.执行上述所有配置后,通过从命令行使用FTP来测试VSFTPD是否正在使用SSL / TLS连接。
在下面的输出,有一个错误消息,VSFTPD 只允许用户(非匿名)从支持加密服务的安全客户端登录。
因为命令行不支持加密服务,从而导致了上述错误。因此,为了安全地连接到启用加密服务的FTP服务器,我们需要一个默认支持 SSL / TLS 连接的FTP客户端,例如FileZilla。
FileZilla是功能强大,广泛使用的跨平台FTP客户端,支持通过SSL / TLS等方式连接 FTP。要在Linux客户端计算机上安装FileZilla,请使用以下命令。
12.安装完成后,打开它并转到File = Sites Manager或按 Ctrl + S 以打开下面的站点管理器界面。
13.现在,添加主机/站点名称和IP地址,定义要使用的协议,加密和登录类型,如下面的屏幕截图(使用适用于您的实际情况的值):
14.然后点击从上面的“Connect”,输入密码,然后验证用于SSL / TLS连接的证书,然后单击“确定”再次连接到FTP服务器:
15.现在,您应该已经通过TLS连接成功登录到了FTP服务器,可以从下面的界面查看连接状态以获取更多信息。
16.最后,我们将文件从本地机器传输到FTP服务器的文件夹中,看看FileZilla界面的下端,查看有关文件传输的报告。
全部教程如上!永远记住,安装FTP服务器而不启用加密服务具有一定的安全隐患。正如我们在本教程中所述,您可以在 Ubuntu 16.04 / 16.10中配置FTP服务器以使用SSL / TLS来实现安全连接。
sudo apt-get install vsftpd
命令执行过程中,安装程序会给本地创建一个名为“ftp”的用户组,命令执行完之后会自动启动FTP服务。
可以使用“netstat -tl”命令检查FTP端口有没有已经打开,或者直接在浏览器里输入“ftp://你的服务器IP”(新安装的vsftpd默认是可以匿名不需要密码直接访问),如果能直接连接到FTP服务器,则安装vsftpd算是大功告成。
开启、停止、重启vsftpd服务也很简单:
service vsftpd start | stop | restart
新安装的vsftpd默认是可以匿名访问,如果只想给某一个用户专门访问某一目录下的权限,则需要修改vsftpd的配置了。
首先,创建一个专门用来访问的用户,例如叫“test”:
mkdir -p /home/test
useradd test -g ftp -d /home/test -s /sbin/nologin
设置密码:
passwd test
修改vsftpd的配置文件“vi /etc/vsftpd.conf”:
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#可以上传
write_enable=YES
#启用在chroot_list_file的用户只能访问根目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
在/etc/vsftpd.chroot_list添加受访问目录限制的用户:
echo "test" /etc/vsftpd.chroot_list
安装过程中遇到的一些问题:
“530 Login incorrect”
在 /etc/shells 最后一行添加“/sbin/nologin”
“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
启用了chroot的话,根目录要设置为不可写
chmod a-w /home/test
OK,重启vsftpd之后就可以使用上面新创建的账号访问:)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流