【转】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
现在要为虚拟用户创建家目录,在这个例子中即为/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
【转】ubuntu安装ftp服务器的更多相关文章
- ubuntu安装ftp服务器
ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vs ...
- 第21篇 ubuntu安装ftp服务器(转载)
ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vs ...
- [Linux]ubuntu安装ftp服务器
1: 安装vsftpd~$ sudo apt-get install vsftpd or~$ yum install vsftpd温馨提示:ubuntu10.10自己装了,这步省略. 2: 配置v ...
- Ubuntu 16.04 安装ftp服务器传输文件
最近在搞深度学习,老师比较宝贝他的服务器,要求我以后负责管理服务器.往后所有要使用服务器的人都必须向我申请账号,然后只允许客户端访问,使用文件传输软件传输文件.像我这样一个linux菜逼,这种要求不是 ...
- 翻译:在Ubuntu 14.04上安装FTP服务器的方法
说明: 1.原文地址:http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ 2.今天要做一个网络日志的迁移程序,搬 ...
- ubuntu16.04安装ftp服务器
参考文章: http://www.linuxidc.com/Linux/2017-01/139233.htm 1.检查是否安装vsftpd,如果安装了跳过第二步 vsftpd -v 2.安装vsftp ...
- CentOS 7运维管理笔记(4)----安装ftp服务器
在CentOS 7下安装ftp服务器,可以使局域网内的主机拥有共享文件的一个站点. 在Linux系统下,vsftp是一款应用比较广泛的FTP软件,其特点是小巧轻快,安全易用.目前在开源操作系统中常用的 ...
- Ubantu下安装FTP服务器
在Linux中ftp服务器的全名叫 vsftpd,我们需要利用相关命令来开启安装ftp服务器,然后再在vsftpd.conf中进行相关配置,下面我来介绍在Ubuntu中vsftpd安装与配置增加用户的 ...
- 安装ftp 服务器
安装ftp 服务器 #yum install vsftp 安装ftp 客户端 重启ftp服务器 sudo /etc/init.d/vsftpd restart /start /stop 进行ARM 和 ...
随机推荐
- (Stack)Basic Calculator I && II
Basic Calculator I Implement a basic calculator to evaluate a simple expression string. The expressi ...
- [置顶] API相关工作过往的总结之Sandcastle简要使用介绍
Sandcastle介绍 在微软推出Sandcastle之前,人们倾向于选择开源的NDoc(.NET代码文档生成器).NDo可以将 C#.NET 编译生成的程序集和对应的 /doc XML文档,自动转 ...
- HBase二级索引的设计(案例讲解)
摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowK ...
- AIX下RAC搭建 Oracle10G(一)检測系统环境
AIX下RAC搭建系列 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 S ...
- ZOJ 3430 Detect the Virus 【AC自动机+解码】
解码的那些事儿,不多说. 注意解码后的结果各种情况都有,用整数数组存储,char数组会超char类型的范围(这个事最蛋疼的啊)建立自动机的时候不能用0来判断结束. #include <cstdi ...
- POJ2151Check the difficulty of problems 概率DP
概率DP,还是有点恶心的哈,这道题目真是绕,问你T个队伍.m个题目.每一个队伍做出哪道题的概率都给了.冠军队伍至少也解除n道题目,全部队伍都要出题,问你概率为多少? 一開始感觉是个二维的,然后推啊推啊 ...
- Unity怎样在Editor下运行协程(coroutine)
在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...
- ASP.NET 根据现有动态页面生成静态Html
现有动态页面的格式都是类似 pageName.aspx?ID=1的格式,后面由于发布服务器的原因,要求将动态页面转为静态html后上传. 首先根据页面生成的格式,枚举获取页面html: foreach ...
- SpinLock(自旋锁)
SpinLock(自旋锁) SpinLock 结构是一个低级别的互斥同步基元,它在等待获取锁时进行旋转. 在多核计算机上,当等待时间预计较短且极少出现争用情况时,SpinLock 的性能将高于其他类型 ...
- (转)@@trancount解析
在处理事务的时候,一般都用RollBack Transaction来回滚,但是如果在嵌套事务中这样使用的话,就会出现错误. 在SqlServer里,嵌套事务的层次是由@@TranCount全局变量反映 ...