ubuntu搭建ftp服务

需求

使用虚拟用户登录访问ftp, 指定用户访问, 公网访问, 保证安全.

ps.折腾了一整晚发现如果仅仅是自用的话, 用SSH自带的 sftp 完全满足需要, 最关键的是不需要任何配置!!!
然后下面的内容不用看了, 权当是个人记录....

本文涉及到的linux基本操作:

  • useradd 和 groupadd 用户管理;
  • chown 和 chmod 文件权限管理;
  • PAM

安装

apt install vsftpd

配置

vim /etc/vsftpd.conf 

本人配置内容如下:

listen=NO
listen_ipv6=YES
dirmessage_enable=YES
use_localtime=YES
#打开日志记录
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog

#禁止匿名访问
anonymous_enable=NO
#允许本地用户访问,就是linux本机中存在的用户
local_enable=YES
#开启写模式
write_enable=YES
#本地用户上传文件的umask值
local_umask=022

#白名单用户
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件
userlist_file=/etc/vsftpd/vsftpd.user_list

#是否限制本地所有用户切换根目录的权限,YES为开启限制
chroot_local_user=YES
#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外的目录
chroot_list_enable=YES
#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
#是否开启写模式,开启后可以进行创建文件夹等写入操作
allow_writeable_chroot=YES

#开启虚拟用户模式
guest_enable=YES
#指定虚拟用户映射的本地账户
guest_username=vsftpd
#虚拟用户权限配置文件夹
user_config_dir=/etc/vsftpd/vusers_permission

secure_chroot_dir=/var/run/vsftpd/empty
#指定PAM文件
pam_service_name=vsftpd.vu
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

#开启被动模式
pasv_enable=YES
#被动模式端口范围
pasv_min_port=60000
pasv_max_port=60099
#关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址
#pasv_promiscuous=YES

#主动模式
#connect_from_port_20=YES

使用

service vsftpd start
service vsftpd restart
service vsftpd stop
service vsftpd status

ftp 的原理
ftp 是双通道的,一个负责命令,一个负责数据。分为主动模式和被动模式。负责命令的端口是 21,在主动模式下,负责数据的端口是 20,在被动模式下负责数据的端口是随机的……大部分客户端如 FillaZilla 是可以自行配置用主动模式还是被动模式。你用主动模式就把服务器的安全策略组里的的 21 和 20 打开。
如果是被动模式,你可以在/etc/vsftpd/vsftpd.conf下面可以配置一个地址段,比如 60000-61000
配置ftp为被动模式

#connect_from_port_20=YES
pasv_enable=YES
pasv_min_port=60000 
pasv_max_port=61000 

然后在阿里云安全策略组里打开这一个范围(60000/61000 ),这样相当于开了 1000 个端口允许连接

创建&配置虚拟用户

todo

pam_service_name=vsftpd.vu

创建&配置本地用户

创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。
比如我要创建的本地用户是 vsftpd, 其用户主目录为 /var/ftproot

  1. 创建用户
useradd -d /var/ftproot -s /sbin/nologin vsftpd

创建完成后可以通过 id vsftpd 命令查看vsftpd用户的信息:

id vsftpd
uid=1002(vsftpd) gid=1002(vsftpd) groups=1002(vsftpd)
  1. 配置用户主目录
//创建主目录
mkdir /var/ftproot

//修改主目录所有者
chown -R vsftp:vsftp /var/ftproot

//修改目录权限
chmod -Rf 755 /var/ftproot/ 

//查看配置结果
ls -ldih /var/ftproot
1058397 drwxr-xr-x 4 vsftpd vsftpd 4.0K Jun 10 22:29 ftproot

客户端选择

  • 浏览器地址栏输入 ftp:ip
  • mac finder (打开finder后, cmd + k)也可以连接, 但是貌似局限于局域网.
  • 推荐使用 FillaZilla, 可以看到整个连接过程的日志, 遇到问题可以方便调试.

错误处理

1. vsftpd 425 Security: Bad IP connecting

测试以下方法会导致vsftpd无法启动

//打开配置文件
vim /etc/vsftpd.conf 
//添加:
pasv_promiscuous=YES 
//重启vsftpd 
service vsftpd restart

pasv_promiscuous选项参数说明:
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容