ubuntu ftp安装配置

一、准备。

 ubuntu虚拟机和window之间采用桥接方式(电脑主机最好是网线上网)

二、ftp服务器配置。

2.1. 安装ftp服务器。

    目前Linux上使用较多的ftp服务器是vsftpd。所以,我们需要先安装vsftpd软件。在Ubuntu上安装vsftpd,使用的命令是

sudo apt-get install vsftpd

    在终端输入这句命令,有可能会提示-“无法定位到软件包 vsftpd”,那么这个问题的解决办法是在 /etc/apt/sources.list文件的最后,添加如下代码,

    deb http://ftp.us.debian.org/debian stable main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US stable/non-US main contrib non-free

    deb http://ftp.us.debian.org/debian testing main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US testing/non-US main contrib non-free

    deb http://ftp.us.debian.org/debian unstable main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US unstable/non-US main contrib non-free

 然后在终端中执行命令

apt-get update

    经过漫长的等待,终端中最终会执行上面添加的代码。

2.2 vsftpd的配置。

   安装好vsftpd后,我们就需要配置它,那么就要修改 /etc/vsftpd.conf文件。具体的配置和说明,见下文,

# 设置登录FTP欢迎信息
ftpd_banner=Welcome to CHL FTP service. 

# 基本配置1
listen=YES               # 服务器监听
local_enable=YES         # 是否允许本地用户访问
write_enable=YES         # 是否允许上传文件,不开启会报 550 permission denied
anonymous_enable=NO      # 匿名访问允许,默认不要开启
anon_upload_enable=YES   # 匿名上传允许,默认是NO
anon_mkdir_write_enable=YES  # 匿名创建文件夹允许 

# 基本配置2
local_umask=022   # FTP上本地的文件权限,默认是077。此时umask为022,则目录为777-022=755,文件为666-022=644。
dirmessage_enable=YES     # 进入文件夹允许 
connect_from_port_20=YES   # 启用20号端口作为数据传送的端口 
data_connection_timeout=120 # 设置数据连接超时时间

# 日志配置
utf8_filesystem=YES # vsftpd使用utf8文件系统
use_localtime=YES
xferlog_enable=YES         # 激活上传和下传的日志 
xferlog_file=/var/log/vsftpd.log    # 设定系统维护记录FTP服务器上传和下载情况的日志文件
xferlog_std_format=YES     # 使用标准的日志格式 

# 自定义
local_root=/home/ftp # 设置自定义的ftp根目录的位置

# 读写权限
allow_writeable_chroot=YES  # 解决"500 OOPS: vsftpd: refusing to run with writable root inside chroot()" 问题
write_enable=YES    # 允许向FTP服务器写入权限
chown_uploads=YES   # 设定是否允许改变上传文件的属主,与下面一个设定项配合使用
chown_username=whoever  # 设置想要改变的上传文件的属主,可设为ftp

ascii_upload_enable=YES  # 允许服务器以ASCII方式传输数据,但引起"SIZE /big/file"方式的DoS攻击
ascii_download_enable=YES
deny_email_enable=YES    # 黑名单设置。如果很讨厌某些email address,可以取消他的登录权限
banned_email_file=/etc/vsftpd/allowed_users
# FTP限制最大连接数和传输速率,进行资源控制,避免负担过大而运行异常 max_client=50 # FTP服务器的所有客户端最大连接数不超过50个 max_per_ip=5 # 同一IP地址的FTP客户机与FTP服务器建立的最大连接数不超过5个 local_max_rate=100000 # FTP服务器的本地用户最大传输速率设置为100KB/s. anon_max_rate=50000 # FTP服务器的匿名用户最大传输速率设置为50KB/s. # 权限设置 #是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效 userlist_deny=NO userlist_enable=NO # 是否启动限制用户的名单为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外 userlist_file=/etc/vsftpd.user_list # 在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患,可配置如下 chroot_list_enable=YES # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。 chroot_local_user=YES # 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。 chroot_list_file=/etc/vsftpd.chroot_list # 禁用名单,用于指定用户列表,该文件用于控制哪些用户可以切换到home目录的上级目录。

通过搭配能实现以下几种效果

  • chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

  • chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

  • chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。

  • chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

1. 需要手动创建一个目录-ftp的根目录,用户可以访问该目录下的资源,

mkdir /home/ftp

接着创建一个子目录,

mkdir /home/ftp/data

修改ftp这个目录的权限,

chmod -R 777 /home/ftp

2. 还需要手动创建一个文件allowed_users,位于 /etc下,创建该文件的命令是

touch allowed_users

创建文件成功后,我们就可以添加访问用户了,添加用户的命令是

useradd -d /home/ftp/data -s /sbin/nologin zhangxw

添加一个用户(zhangxw),但是该用户不能登录系统。

接着设置该用户的密码,输入命令,

passwd zhangxw

然后根据提示,输入密码即可。

3. 将上面添加的用户,手动写入到 /etc/vsftpd/allowed_users。只需要添加一行,写入用户名即可。

退出保存即可!重启下vsftp服务!

重启vsftpd,命令是

service vsftpd restart

PS:

如果想要删除ftp某个用户,可以使用如下命令,例如删除用户名为 ”zhangxw”的用户,

userdel zhangxw

配置好vsftpd后,我们就可以启动它了。命令为

service vsftpd start

如需查看vsftpd的状态,可以输入命令

service vsftpd status

参考:
https://blog.csdn.net/oxiaoxue123456789/article/details/81557896
https://www.jianshu.com/p/8f17e2a18515
 
原文地址:https://www.cnblogs.com/chenlizhi/p/13130923.html