A. [翻译]在 Ubuntu 中使用 SSL/TLS 加密 FTP 连接
在本教程中,我们将介绍如何在 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来实现安全连接。
B. ubuntu怎么搭建ftp服务器并配置端口号
架设ftp服务器应该安装 ftpd并启动。 如果只是临时使用的话推荐使用更安全的sftp,不需要任何安装。 直接访问sftp://:22 输入系统帐号密码即可
C. ubuntu linux 下如何启动ftp服务
1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。
D. VM虚拟机中的ubuntu搭建ftp服务器,用的是sudo apt-get install vsftpd,该怎样配置vsftpd.conf文件
看你的截图,我怎么感觉有点像是网站的列出目录的形式?
你确认你的conf配置正确了吗?
vsftpd.conf配置参数详细整理
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#匿名用户主目录
anon_root=(none)
#接受本地用户
local_enable=YES
#本地用户主目录
local_root=(none)
#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录
deny_email_enable=YES
#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
check_shell=YES
#若启用此选项,userlist_deny选项才被启动
userlist_enable=YES
#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
userlist_deny=NO
#当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。
passwd_chroot_enable=NO
#定义匿名登入的使用者名称。默认值为ftp
ftp_username=FTP
#################用户权限控制###############
#可以上传(全局控制)
write_enable=YES
#本地用户上传文件的umask
local_umask=022
#上传文件的权限配合umask使用
#file_open_mode=0666
#匿名用户可以上传
anon_upload_enable=NO
#匿名用户可以建目录
anon_mkdir_write_enable=NO
匿名用户其它的写权利(更改权限?)
anon_other_write_enable=NO
如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。
anon_world_readable_only=YES
#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名
#guest_enable=NO
所有匿名上传的文件的所属用户将会被更改成chown_username
chown_uploads=YES
匿名上传文件所属用户名
chown_username=lightwiter
#将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、 shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。
chroot_local_users=YES
#锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。
chroot_list_enable=YES
#允许使用"async ABOR"命令,一般不用,容易出问题
async_abor_enable=YES
管控是否可用ASCII 模式上传。默认值为NO。
ascii_upload_enable=YES
#管控是否可用ASCII 模式下载。默认值为NO。
ascii_download_enable=YES
#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty
secure_chroot_dir=/usr/share/empty
###################超时设置##################
#空闲连接超时
idle_session_timeout=600
#数据传输超时
data_connection_timeout=120
#PAVS请求超时
ACCEPT_TIMEOUT=60
#PROT模式连接超时
connect_timeout=60
################服务器功能选项###############
#开启日记功能
xferlog_enable=YES
#使用标准格式
xferlog_std_format=YES
#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
#log_ftp_protocol=NO
#允许使用pasv模式
pasv_enable=YES
#关闭安全检查,小心呀.
#pasv_promiscuous=NO
#允许使用port模式
#port_enable=YES
#关闭安全检查
#prot_promiscuous
#开启tcp_wrappers支持
tcp_wrappers=YES
#定义PAM 所使用的名称,预设为vsftpd。
pam_service_name=vsftpd
#当服务器运行于最底层时使用的用户名
nopriv_user=nobody
#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
pasv_address=(none)
#################服务器性能选项##############
#是否能使用ls -R命令以防止浪费大量的服务器资源
#ls_recurse_enable=YES
#是否使用单进程模式
#one_process_model
#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
listen=YES
#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
text_userdb_names=NO
#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_localtime=NO
#测试平台优化
#use_sendfile=YES
################信息类设置################
#login时显示欢迎信息.如果设置了banner_file则此设置无效
ftpd_banner=欢迎来到网络.
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
#显示会话状态信息,关!
#setproctitle_enable=YES
############## 文件定义 ##################
#定义不能更改用户主目录的文件
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
#定义限制/允许用户登录的文件
userlist_file=/etc/vsftpd/vsftpd.user_list
#定义登录信息文件的位置
banner_file=/etc/vsftpd/banner
#禁止使用的匿名用户登陆时作为密码的电子邮件地址
banned_email_file=/etc/vsftpd.banned_emails
#日志文件位置
xferlog_file=/var/log/vsftpd.log
#目录信息文件
message_file=.message
############## 目录定义 #################
#定义用户配置文件的目录
user_config_dir=/etc/vsftpd/userconf
#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.(#此项设置每个用户登陆后其根目录为/home/username/webdisk)
local_root=webdisk
#匿名用户登陆后的根目录,默认不设置
anon_root=/home/ftp
#############用户连接选项#################
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5
#使用标准的20端口来连接ftp
connect_from_port_20=YES
#绑定到某个IP,其它IP不能访问
listen_address=192.168.0.2
#绑定到某个端口
#listen_port=2121
#数据传输端口
#ftp_data_port=2020
#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_max_port=0
#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
pasv_min_port=0
##############数据传输选项#################
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=5120000
E. 如何在ubuntu中安装设置ftp服务器
以 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
F. 如何在ubuntu系统上建立一个ftp服务器
工具/原料
Linux系统
Ubuntu/CentOS都可以
方法/步骤
1
1、更新源列表
打开”终端窗口”,输入”sudo apt-get update” 回车--->输入当前登录用户的管理员密码,回车,等待该命令执行完成就可以了。如果不运行该命令,直接安装vsftpd就会出现几个软件包无法下载。
2
2、安装vsftpd
打开终端,输入”sudo apt-get install vsftpd” 回车,安装完成即可。
3、判断vsftpd是否安装成功
打开终端,输入”sudo service vsftpd restart” 重启vsftpd服务器,回车后,vsftpd处于运行状态,则安装成功。
4、新建”/home/test” 目录作为用户主目录
打开终端窗口,输入”sudo mkdir /home/test” 回车,在输入”sudo ls
/home” 回车,有一个test目录,则用户目录创建成功。
5、新建用户test并设置密码
打开终端,输入”sudo useradd –d /home/test –s /bin/bash test” 回车,新建用户成功,在输入”sudo passwd test” 设置test用户的密码(输入两次) 回车,密码设置成功。
6、配置文件/etc/vsftpd.conf
打开终端,输入”sudo vim /etc/vsftpd.conf” 回车,打开vsftpd文件,进入插入(编辑)模式向文件中追加”userlist_deny=NO
userlist_enable=YES userlist_file=/etc/allowed_users” 和 ”seccomp_sandbox=NO” 设置文件中的”local_enable=YES” 保存退出即可。
7、新建/etc/allowed_users文件
打开终端,输入”sudo vim /etc/allowed_users” 回车,输入test,保存并退出即完成该文件的创建。
8、使用vim查看/etc/ftpusers文件中的内容
打开"终端窗口",输入"sudo vim /etc/ftpusers" 回车-->打开这个文件后,检查是否有test这个用户名,若没有,就直接退出。若有就删除test用户名,因为这个文件中记录的是不能访问FTP服务器的用户清单。
9、使用WinSCP登录FTP服务器
用test用户名登录linux,打开终端,在根目录下新建文件ftpTestFile.txt和userTestDir目录,便于测试。
10、使用WinSCP工具远程登录到FTP服务器
打开WinSCP工具进入登录界面,输入FTP服务器的IP(192.168.220.128)、用户名(test)、密码(123456)即可登录到FTP服务器,如图可看到FTP根目录下的文件。
11、测试文件的上传与下载
将本地文件UploadFile.txt上传到FTP服务器
从FTP服务器下载ftpTestFile.txt到本地
12、查看FTP服务器是否存在上传的文件
13
最后经过测试,能实现文件的上传与下载,
G. 如何在ubuntu中安装设置ftp服务器
首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:
1、如何添加FTP用户?
2、如何临时冻结某FTP用户?
3、FTP用户登入后的默认目录?是否可以改变?
4、如何锁定FTP用户可访问的目录范围?
5、FTP用户可以有哪些访问权限?可否上传文件?
我们将带着这些问题来探讨如何配置VSFTP以达到预定目标。
一、主要配置选项
VSFTP的主配置文件是/etc/vsftpd.conf 。由于可配置的选项实在太多,无法一一详谈,只能截取比较常用的功能配置选项来加以说明。完整说明可参考man vsftpd.conf。
这里需要注意的是,每个配置选项都是由“配置项目名称=配置值“所定义。在每个配置变量后,要紧跟等号,再紧跟设置的变量值。中间不允许出现空格之类的分隔符,否则导致配置错误,无法生效!
另外,如果需要开通上传功能,则应注意用来登录FTP的本地系统用户对要操作的目录需要具备写权限,否则无法上传文件!
版本vsftpd: version 2.0.6
启动VSFTPD:sudo /etc/init.d/vsftpd start
停止VSFTPD:sudo /etc/init.d/vsftpd stop
重启VSFTPD:sudo /etc/init.d/vsftpd restart
以下为常用的配置选项:
1、listen=YES
若设置为YES,开启监听网络。
2、anonymous_enable
若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。
如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。
3、local_enable
若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。如果你拒绝了陌生人访问,那么这个必须设置为YES吧,否则谁能访问你的FTP呢?
4、write_enable
若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。
若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!
5、anon_upload_enable
若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。 若设置为NO,则关闭匿名用户的上传权限。
6、anon_mkdir_write_enable
若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。 若设置为NO,则关闭匿名用户新建目录的权限。
7、dirmessage_enable
若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。 这个应该要开启吧!
8、xferlog_enable
若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!
9、xferlog_file=/var/log/vsftpd.log
指定默认的日志文件,可指定为其他文件。
10、xferlog_std_format
若设置为YES,则启用标准的ftpd日志格式。可以不启用。
11、connect_from_port_20
若设置为YES,则服务器的端口设为20。
如果不想用端口20,可以另外通过ftp_data_port来指定端口号。
12、chown_uploads
若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。
若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。
13、idle_session_timeout=600
不活动用户的超时时间,超过这个时间则中断连接。
14、data_connection_timeout=120
数据连接超时时间 。
15、ftpd_banner=Welcome to blah FTP service.
FTP用户登入时显示的信息 。
16、local_root=/home/ftp
指定一个目录,用做在每个本地系统用户登录后的默认目录。
17、anon_root=/home/ftp
指定一个目录,用做匿名用户登录后的默认目录。
18、chroot_local_user、 chroot_list_enable、chroot_list_file
这个组合用于指示用户可否切换到默认目录以外的目录。
其中,chroot_list_file默认是/etc/vsftpd.chroot_list,该文件定义一个用户列表。
若chroot_local_user 设置为NO,chroot_list_enable设置为NO,则所有用户都是可以切换到默认目录以外的。
若chroot_local_user 设置为YES,chroot_list_enable设置为NO,则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。
若chroot_local_user 设置为YES,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。
若chroot_local_user设置为NO,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。
建议设置:chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!
好处:所有人都被限制在特定的目录里面。如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!