【转】ubuntu安装ftp服务器

原文网址:https://wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

vsftpd (Very Secure FTP Daemon) 是一个为UNIX类系统开发的轻量,稳定和安全的FTP服务器端.

Contents

[hide]

安装

Vsftpd包含在官方软件库中, 可以通过pacman轻松安装

# pacman -S vsftpd

修改 /etc/hosts.allow 可以限制vsftp的允许连接:

# 允许所有连接
vsftpd: ALL
# 只允许固定IP范围用户登录
vsftpd: 10.0.0.0/255.255.255.0

服务器可以通过如下脚本启动:

# systemctl start vsftpd.service

让vsftpd随系统自动启动:

# systemctl enable vsftpd.service

配置

vsftpd的大多数配置都可以通过编辑/etc/vsftpd.conf文件实现. 这个文件自身有大量注释说明, 所以这一章节只就一些重要的配置予以说明. 如果要了解所有的选顶和文档, 请使用man vsftpd.conf (5).

允许上传

必需将/etc/vsftpd.conf中的write_enable值设为YES, 以便允许修改系统, 比如上传:

write_enable=YES

本地用户登录

可以修改/etc/vsftpd.conf中的如下值, 以便允许/etc/passwd中的用户登录:

local_enable=YES

匿名用户登录

/etc/vsftpd.conf如下行控制着匿名用户登录:

anonymous_enable=YES # 允许匿名用户登录
no_anon_password=YES # 匿名用户登录不再需要密码
anon_max_rate=30000  # 每个匿名用户最大下载速度(单位:字节每秒)

Chroot限制

为了阻止用户离开家目录, 可以设置chroot环境. 在/etc/vsftpd.conf添加如下行实现:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

chroot_list_file 定义了可通过chroot限制的用户列表.

如果要设置更严格的chroot环境, 可以按如下方式设置:

chroot_local_user=YES

默认为所有用户启用chroot环境, 此时chroot_list_file 定义了不使用chroot的用户列表.

限制用户登录

/etc/vsftpd.conf添加如下二行:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

userlist_file 列出了不允许登录的用户.

如果你只想要允许特定的用户登录, 添加这一行:

userlist_deny=NO

此时userlist_file 列出的就是允许登录的用户.

限制连接数

可以为本地用户设定数据传输数率, 最大客户端数以及每个IP的连接数目, 在/etc/vsftpd.conf添加如下行:

local_max_rate=1000000 # 最大数据传输速率(单位:字节每秒)
max_clients=50         # 同时在线的最大客户端数目
max_per_ip=2           # 每个IP允许的连接数

使用xinetd

如果要启用xinetd引导vsftpd,创建/etc/xinetd.d/vsftpd文件, 并加入如下内容:

service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
        disable                 = no
}

并启用/etc/vsftpd.conf中的如下选顶:

pam_service_name=ftp

最后, 把xinetd加入/etc/rc.conf守护程序列表, 此时不再需要再添加vsftpd,因为它将由xinetd调用:

如果连接服务器时获得如下错误信息:

500 OOPS: cap_set_proc

你需要在/etc/rc.conf的 MODULES= 一行添加capability

升级到2.1.0版本后, 连接服务器时可能会出现如下错误:

500 OOPS: could not bind listening IPv4 socket

在先前的版本中, 将下述行注释掉就足够了:

# Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
# listen=YES

但在新版本以及未来的版本中, 必须显示的指定守护程序启动方式:

# Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
listen=NO

小技巧

虚拟用户的PAM认证

使用虚拟用户的最大好处是不需要在系统中创建太多的真实用户, 将整个环境限制在某个固定容器中可以提供更高的安全性.

一个虚拟用户数据库可以通过如下的简单文本开始创建:

user1
password1
user2
password2

它包含了想启用的所有虚拟用户. 将其保存为logins.txt; 这个文件名并没有什么特别的含义. 下一步需要伯克利数据工具, 它被包含在arch的核心系统中. 执行如下命令生成数据库:

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

强列建议把vsftpd_login.db文件赋予更严格的权限:

# chmod 600 /etc/vsftpd_login.db

警告: 在明文中列出密码是不安全的. 不要忘记删除临时文件, rm logins.txt.

令PAM使用vsftpd_login.db数据库.在/etc/pam.d/中创建文件ftp,并加入如下内容:

auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash

注意: /etc/vsftpd_login不包启.db后缀名

现在要为虚拟用户创建家目录,在这个例子中即为/srv/ftp. 首先创建一个真实用户virtual, 并将/srv/ftp设为它的家目录:

# useradd -d /srv/ftp virtual
# chown virtual:virtual /srv/ftp

修改/etc/vsftpd.conf, 并加入如下行. 它将所有的虚拟用户都映射为virtual, 并将之都限制在/srv/ftp中:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES

如果通过xinetd方法启动vsftpd服务.现在将只允许数据库中列出的用户登录.

为虚拟用户创建私有目录

首先创建文件夹,并把所有者设为virtual用户

# mkdir /srv/ftp/user1
# mkdir /srv/ftp/user2
# chown virtual:virtual /srv/ftp/user?/

随后, 在/etc/vsftpd.conf增加如下行:

local_root=/srv/ftp/$USER
user_sub_token=$USER

问题解决

vsftpd: refusing to run with writable root inside chroot()

为了避免一个安全漏洞,从 vsftpd 2.3.5 开始,chroot 目录必须不可写。使用命令:

# chmod a-w /home/user

对于虚拟用户,使用命令:

# chmod a-w /srv/ftp/user1
时间: 2024-10-11 02:49:32

【转】ubuntu安装ftp服务器的相关文章

第21篇 ubuntu安装ftp服务器(转载)

ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vsftpd的配置文件.此类配置文件通常位于 /etc 目录下. ~$ sudo gedit /etc/vsftpd.conf 原文件中不少指令被注释,只要启用部分即可,一下是启用的命令(配置文件中对每一条都有具体说明) listen=YES # 服务器监听#anonymous_enable=YES #

在Ubuntu安装ftp服务器

在阿里云买了个虚拟服务器,装了个ubuntu,一开始安装的是他们推荐的vsftp,后来其中一个网站要给别人搞了,需要给ftp帐号他.这个vsftp有个问题就是无办法限制用户只能访问其home目录,例如我有个网站/www/website1跟/www/website2,对应的帐号是website1user跟website2user,他们的home目录分别是/www/website1跟/www/website2.但是你用website1user或者website2user登录你不仅可以看到其他网站的目

ubuntu安装ftp服务器

1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vsftpd的配置文件.此类配置文件通常位于 /etc 目录下. ~$ sudo gedit /etc/vsftpd.conf 原文件中不少指令被注释,只要启用部分即可,一下是启用的命令(配置文件中对每一条都有具体说明) listen=YES # 服务器监听#anonymous_enable=YES # 匿名访问允许 很危险,默认不

Ubuntu 下ftp服务器的安装配置

Ubuntu 下ftp服务器的安装配置 FTP服务器是平时应用最为广泛的服务之一.VSFTP是Very Secure FTP的缩写,意指非常安全的FTP服务.VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务. 首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有: 1.如何添加FTP用户?  2.如何临时冻结某FTP用户?  3.FTP用户登入后的默认目录?是否可以改变?  4.如何锁定FTP用户可访问的目录范围

CentOS 7运维管理笔记(4)----安装ftp服务器

在CentOS 7下安装ftp服务器,可以使局域网内的主机拥有共享文件的一个站点. 在Linux系统下,vsftp是一款应用比较广泛的FTP软件,其特点是小巧轻快,安全易用.目前在开源操作系统中常用的FTP软件除了vsftp外,主要有proftpd.pureftpd和 wu-ftpd等.本篇随笔记录vsftp的安装与配置. 注意:本随笔所有操作均在VMware workstations虚拟机中安装的CentOS7 中进行,在进行操作前最好设置快照,这样某一步出错了还可以退回原来的状态: 1.安装

一键安装ftp服务器

1 概述 工作中,需要搭建ftp服务器来实现资源的共享.本文将通过脚本实现自动化安装ftp服务器,并进行相关配置,同时创建ftp登录账户,以及创建两个文件夹,作为公共的文件夹,为所有用户提供共同的访问路径. 2 概念解释和注意事项 2.1 chroot_list说明 chroot_list_file=/etc/vsftpd/chroot_list 如果设置为 chroot_local_user=YES chroot_list_enable=YES(这行可以没有, 也可以有) chroot_lis

树莓派安装ftp服务器

在树莓派安装ftp服务器,可上载\下载文件 vsftpd是开源的轻量级的常用ftp服务器. 1,安装vsftpd服务器 (约400KB)sudo apt-get install vsftpd 2,启动ftp服务sudo service vsftpd start 3,编辑vsftdp的配置文件 sudo nano /etc/vsftpd.conf 找到以下行,定义一下anonymous_enable=NO 表示:不允许匿名访问 local_enable=YES 设定本地用户可以访问. write_

在树莓派上安装FTP服务器

在终端安装FTP服务器 sudo apt-get install vsftpd 然后对FTP进行配置,打开它的配置文件 sudo nano /etc/vsftpd.conf 修改以下配置 # 不允许匿名访问  anonymous_enable=NO  # 设定可以进行写操作 write_enable=YES  # 设定本地用户可以访问 local_enable=YES  ascii_upload_enable=YES  ascii_download_enable=YES 重启服务 sudo se

Ubuntu安装FTP工具

要安装使用gFTP,请使用下面的命令 sudo apt-get install gftp 要安装使用filezilla,请使用 sudo apt-get install filezilla Ubuntu安装FTP工具