vsftpd 安装配置详细教程
linux下ftp软件不少,大致特点:
wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大。
ProFTPD:能实现wu-ftp以及server-U的所有功能。安全性也较高,但比起vsftpd配置稍显复杂。
vsftpd:功能强大,配置也比较简单
选vsftpd是因为它安全、速度快。
选ProFTPD偶尔看到webmin支持他,所以就用了,因为方便。
选Serv-U理由windows普遍,Serv-U方便,但最大问题是盗版,所以现在不大用了。
一、安装
# yum install vsftpd
二、安装db4包,使能db_load
# yum install db4.i386
# yum install db4-utils.i386
三、vsftpd文件说明
/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd Vsftpd的主程序
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
/var/ftp 匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub 匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log 日志文件
四、关闭防火墙
# service iptables stop
五、关闭SELinux
方法有多个
1、暂时关闭(不需要重启)
# setenforce 0 (关闭)
# setenforce 1 (启用)
# getenforce (查看状态)
2、编辑配置文件(永久关闭需要重启)
# vi /etc/selinux/config
将SELINUX=enforcing改为:SELINUX=disabled
六、配置匿名用户访问
0、备份配置文件:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
1、vsftpd安装后,其配置文件所在目录为:/etc/vsftpd/;匿名用户的主目录为:/var/ftp
2、 配置vsftpd.conf主配置文件(服务器配置支持上传)
# vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES (允许匿名用户上传文件)
anon_mkdir_write_enable=YES (允许匿名用户创建目录)
3、创建上传目录及配置目录权限(注意:匿名用户的主目录/var/ftp权限是755,这个权限不能随意改变,否则客户端无法连接)
# mkdir /var/ftp/homework/
# chown ftp /var/ftp/homework/
# ls -Zd /var/ftp/homework/ (查看上下文)
drwxrwxr-x ftp ftp user_u:object_r:public_content_t /var/ftp/homework/
# chcon -t public_content_rw_t /var/ftp/homework/ (修改上下文,使可写)
# ls -Zd /var/ftp/homework/ (查看确认上下文)
drwxrwxr-x ftp ftp user_u:object_r:public_content_rw_t /var/ftp/homework/
(若未关闭SELinux,还需以下步骤)
# getsebool -a | grep ftp (查找与ftp相关的 SELinux bool值)
# setsebool -P allow_ftpd_anon_write 1 (设置SELinux bool值, 允许ftpd写, -P选项表示写入配置文件并永久生效)
4、重启服务
# service vsftpd restart
5、客户端连接测试
(1) 客户端匿名用户可从pub下载文件
(2) 客户端匿名用户上传文件至homework, 上传文件的默认权限属性为600(配置文件中anon_umask=077),无法下载、删除或覆盖的。
七、配置虚拟用户访问
1、建立虚拟用户口令库文件, 文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令。
# vi /etc/vsftpd/vuser.txt
teacher (奇数行设置虚拟用户名)
123456 (偶数行设置用户口令)
student
123456
2、生成vsftpd 的认证文件
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db (生成认证文件)
# file /etc/vsftpd/vuser.db (查看文件类型)
/etc/vsftpd/vuser.db:Berkeley DB (Hash,version 8 , native byte-order)
# chmod 600 /etc/vsftpd/vuser.db (生成的认证文件的权限应设置为只对root用户可读可写)
3、建立虚拟用户所需的PAM配置文件
# vi /etc/pam.d/vsftpd
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
4、建立vsftpd虚拟用户所需的系统用户账号并设置相应的权限, 所有虚拟用户账号登录后都将在/var/ftp目录
# chmod u-w /var/ftp/
5、设置vsftpd.conf主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd (vsftpd意指:/etc/pam.d/目录下的vsftpd文件)
(以下为可选项)
local_umask=022 (虚拟用户上传文件的掩码)
anon_umask=077 (匿名用户上传文件的掩码)
chown_uploads=YES (允许改变上传文件的属主)
chown_username=vuser (改变上传文件的属主为vuser)
6、重启vsftpd服务
# service vsftpd restart
7、测试vsftpd中的虚拟用户账号teacher
#ftp 127.0.0.1
name (localhost:root):teacher
password:
ftp>
8、对不同的虚拟用户设置不同的权限
(1).设置主配置文件
# mkdir /etc/vsftpd/vuser_conf (建立用户配置文件的保存目录)
# vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vuser_conf (设置用户配置文件的保存目录)
(2). 为虚拟用户建立单独的配置文件,配置文件名称和用户名相同。用户配置文件中没有的配置项将按照vsftpd.conf配置文件中的内容设置。
# vi /etc/vsftpd/vuser_conf/teacher
anon_upload_enable=YES (表示用户可以上传文件)
anon_mkdir_write_enable=YES (表示用户具有建立和删除目录的权利)
anon_other_write_enable=YES (表示用户具有文件改名和删除文件的权限)
(3) 重启服务
# service vsftpd restart
八、配置并启动防火墙
1、设置被动模式及使用的端口号
# vi /etc/vsftpd/vsftpd.con
pasv_min_port=65300
pasv_max_port=65360
2、添加允许的端口
# iptables -I INPUT -p tcp --dport 65300:65360 -j ACCEPT
# service iptables save (保存配置)
3、重启服务
# service iptables start
九、常见错误及解决方法
1、vsftpd: refusing to run with writable root inside chroot()
-> 原因:vsftpd升级了安全性验证, 即如果开启了chroot来控制用户路径,则用户不能再具有根目录的写权限。
-> 解决:# chmod u-w /var/ftp/
2、cannot change directory:/var/ftp
-> 原因:SELinux阻止访问
-> 解决:
# setsebool -P ftpd_disable_trans 1
# service vsftpd restart
3、上传文件的中文文件名乱码
-> 原因:字符集问题
-> 解决:
(1) # vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030"
(2) 客户端软件设置字体为中文字体,连接字符集为GBxxx或cp936
4、提示只允许匿名用户登录
-> 解决:在vsftpd.conf中设置
local_enable=YES
vsftpd 安装配置详细教程的更多相关文章
- Mysql教程:[1]下载安装配置详细教程
如果不小心你下载了免安装的mysql,那么你比较倒霉,你找不到setup文件,还得自己去配置很多东西,然后再使用命令安装.所以我今天呢写一篇教程,写的尽量详细,即便是菜鸟也能安装,我自己安装过很多遍了 ...
- JBOSS安装配置详细教程
首先在http://jbossas.jboss.org/downloads/下载相关程序我下载的是 JBoss AS 6.1.0.Final 1.配置jboss环境 1.1用户变量path后面添加 ; ...
- hadoop集群安装配置详细教程
在上一篇的分享文章中我是给大家分享了运行部署hadoop的一些安装准备工作,这篇接上一篇继续为大家分享一些个人的学习经验总结.我学习用的是大快发行版DKHadoop,所以所有的经验分享都是以DKHad ...
- MySQL5.7免安装版配置详细教程
MySQL5.7免安装版配置详细教程 一. 软件下载 Mysql是一个比较流行且很好用的一款数据库软件,如下记录了我学习总结的mysql免安装版的配置经验,要安装的朋友可以当做参考哦 mysql5.7 ...
- Tableau Server注册安装及配置详细教程
Tableau Server注册安装及配置详细教程 本文讲解的是 Tableau Server 10.0 版本的安装及配置 这里分享的 TableauServer 安装版本为64位的10.0版本Ser ...
- webpack安装配置使用教程详解
webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...
- 安装WordPress详细教程指南
最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...
- 【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)
[Oracle RAC]Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂) 2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件 ...
- 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)
[Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...
随机推荐
- excel表中判断A列与B列内容是否相同,相同的话在C列按条件输出!
判断两列数据是否相同,有以下几个函数判断(做笔记于此,方便以后查找): 1.=IF(AND(A4=B4),"相同","") 在C列输出相同字符 2.=IF(A1 ...
- Checkbox & Excel
Checkbox & Excel Q: Excel how to check checkbox? 这个怎么打勾✔ ? A: 可以打勾的 How to Insert and Use a Chec ...
- OpenGL 加载DDS文件(压缩纹理)
想必很多人都见过DDS这种文件,它是一个“图片文件”,如果你安装了某些看图软件,你可以直接双击打开它来进行预览. 那么,这种DDS文件和我们常见的TGA/PNG之类的文件有何不同呢? DDS和TGA/ ...
- 【JavaScript】checkBox的多选行<tr>信息获取
页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据): <!-- ...
- 【JavaScript】函数表达式
一.前言 接着上一篇的内容,继续学习JavaScript. 二.内容 函数的声明 function functionName(arg0,arg1,arg2){ //函数体 } ...
- 洛谷P2125图书馆书架上的书 题解报告
题目描述 图书馆有n个书架,第1个书架后面是第2个书架,第2个书架后面是第3个书架……第n-1个书架后面是第n个书架,第n个书架后面是第1个书架,第i个书架上有b[i]本书.现在,为了让图书馆更美观, ...
- mysqldump备份恢复
数据库的备份恢复是DBA的必修课,本文首先讲解mysqldump完整备份恢复的操作方法,演示数据库完整备份的基本过程.然后再模拟数据库遭遇灾难性破坏,配合bin-log日志实验数据库灾难性恢复的步骤. ...
- Android APK打包流程
简单build流程图 官网给了我们一张非常简单的编译.打包.apk生成内容以及签名的图片.图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容 ...
- Caffe框架详细梳理
protobuf是google公司开发的,并在Google内部久经考验的一个东西,在08年google把它贡献给了开源社区,随后便有越来越多的人使用它.protobuf是一个结构化信息传递的工具,主要 ...
- 扶苏的bitset浅谈
bitset作为C++一个非常好用的STL,在一些题目中巧妙地使用会产生非常不错的效果.今天扶苏来分享一点bitset的基础语法和应用 本文同步发布于个人其他博客,同时作为P3674题解发布. 本文感 ...