VSFTPD配置(匿名——本地用户——虚拟用户)

1,下载VSFTPD.TAR.GZ
程序下载地址:ftp://vsftpd.beasts.org/users/cevans/
2,检查和建立相应账户和目录
1,nobody用户
[root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody
nobody:x:99:99:Nobody:/:/sbin/nologin
如不存在请建立相关账户。
2,/usr/share/empty 目录, 如不存在请创建
3,如允许匿名访问,需创建Ftp用户,家目录为/var/ftp(一般ftp用户存在而家目录不存在)
[root@main vsftpd-2.1.0]# mkdir /var/ftp/
[root@main vsftpd-2.1.0]# chown root.root /var/ftp
[root@main vsftpd-2.1.0]# chmod 755 /var/ftp

3,解压、编译、安装程序(其实vsftpd用rpm和用源码安装差不多,编译安装反而不方便,推荐各位RPM安装,呵呵)
[root@main ~]# tar xzfv vsftpd-2.1.0.tar.gz
[root@main ~]# cd vsftpd-2.1.0
[root@main vsftpd-2.1.0]# make && make install
4,复制相关文件
如果是用RPM安装,可能会和源码安装的文件路径略有不同,如/etc/vsftpd.conf变成了/etc/vsftpd/vsftpd.conf,这类变动请自行 find相关文件。
主配置文件
[root@main vsftpd-2.1.0]# cp vsftpd.conf /etc/vsftpd.conf
PAM身份验证用文件
[root@main vsftpd-2.1.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
5,配置vsftpd.conf
启用/禁止匿名用户访问。
anonymous_enable=YES/NO
允许本地用户登录并允许其上传文件。
local_enable=YES
write_enable=YES
将本地用户锁定在主目录中,不允许切换到上一级目录中
chroot_local_user=YES
匿名和本地用户限速(单位byte)
anon_max_rate=数字
local_max_rate=数字
禁止某些用户通过ftp登录服务器。如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。在vsftpd.conf中有三个选项控制:
userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户一行。
禁止用户通过FTP修改文件或文件夹的权限。
chmod_enable=NO(
设置本地用户上传的文件或文件夹的umask值(默认为077)
local_umask=022
最多同时允许100个客户连接
max_clients=100
每个ip地址最多允许开3个线程
max_per_ip=3
只监听来访问192.168.0.2(适用本机多网卡、多IP的情况)的FTP服务请求
listen_address=192.168.0.2
6,安装完成后使用vsftpd命令即可启动vsftpd服务。保证防火墙开放相关端口后尝试下匿名登陆吧,注意所有匿名用户都登录到相同的目录中/var/ftp。
我们可以通过pgrep vsftpd 来查看vsftpd是否运行起来,可以用pkill vsftpd 来杀死vsftpd进程,把vsFTPd关闭。所以上文说更推荐用rpm安装,那样就可以用service vsftpd start|stop|restart来控制了。
[root@main ~]# pgrep vsftpd
2745
[root@main ~]# pkill vsftpd
7,设置pub目录,允许匿名用户上传、下载文件。
更改配置文件,确保有这几项:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
新建文件夹,并更改权限。
[root@main ~]# mkdir /var/ftp/pub
[root@main ~]# chmod 777 /var/ftp/pub
尝试一下匿名上传下载吧,应该没问题。
8,设置使用本地用户登陆FTP服务器,并进行权限设置。
添加一个只能从ftp登录服务器,而不能从本地shell登录的用户。以下创建一个用户ftpuser,不允许从本地登录
[root@localhost root]# useradd -g ftp -s /sbin/nologin ftpuser
创建账户和密码后改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限:
local_enable=YES
write_enable=YES
local_umask=022
尝试用本地用户上传和下载文件。(PS,我不知道为什么我无法进行上传下载操作,但我重启系统后可以应用了)
还可以用userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
这些选项对用户进行控制。
9,尝试使用虚拟用户访问FTP服务。
创建一个口令源文件,文件格式是第一行用户名、第二行密码、第三行用户名、第四行密码……
[root@main ~]# cat temp_pass.txt
caocao
caomengde
xiaocaocao
xiaocaomengde
使用db_load命令生成认证文件。我遇到的情况就是本机没有db_load这个命令,网上搜到的答案是缺少DB4的rpm包,应该是把光盘中DB4开头的rpm包都装全,我嫌麻烦,采用的yum -y install db4*,装了以后就有db_load命令了。
[root@main ~]# db_load -T -t hash -f temp_pass.txt /etc/vuser.db
设置db文件的权限,同时删除口令文件。
[root@main ~]# chmod 600 /etc/vuser.db
[root@main ~]# rm temp_pass.txt
建立虚拟用户所需的PAM配置文件
[root@main ~]# vi /etc/pam.d/ftpuser.vu
#添加如下内容
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
添加新用户,可以考虑设置该用户nologin
[root@main home]# useradd vuserftp
修改vsftpd.conf配置文件,有则改,无则添加。
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
重启一下,现在访问ftp://caocao@ftp是否可以用caomengde做密码访问?如果期间有小问题,可以考虑以下目录权限问题。
10,尝试给虚拟用户分配权限
修改VSFTPD的配置文件,有则改,无则加。创建并进入这个文件夹。
user_config_dir=/etc/vuserftp/
[root@main vuserftp]# mkdir /etc/vuserftp/
[root@main vuserftp]# cd /etc/vuserftp/
创建虚拟用户权限的配置文件
[root@main vuserftp]# vi caocao
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vuserftp/caocao
创建虚拟用户的目录,并配置权限。
[root@localhost ~]# mkdir /home/vuserftp/caocao
[root@localhost ~]# chown vuserftp /home/vuserftp/caocao/
11,我又照着这个教程复核了一下虚用户登录FTP的相关过程。show 相关配置文件和权限,因仅仅是实验用的,所以配置比较粗糙。大家可以自己优化和精简。
[root@localhost ~]# ll /home/vuserftp/
total 4
drwxr-xr-x 2 root root 4096 Mar 30 09:47 caocao
[root@localhost ~]# grep -v '#' /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
listen=YES
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
user_config_dir=/etc/vuserftp/
[root@localhost ~]# rpm -qa |grep db4-
db4-java-4.3.29-9.fc6
db4-devel-4.3.29-9.fc6
db4-tcl-4.3.29-9.fc6
db4-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6

[root@localhost ~]# cat /etc/passwd |grep vuserftp
vuserftp:x:500:500::/home/vuserftp:/bin/bash(可以改成nologin)
[root@localhost ~]# cat /etc/pam.d/ftpuser.vu
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser

(0)

相关推荐

  • PureFTPd+Mysql+PHP_Manager实现虚拟用户磁盘限额的配置方法

    在安装PureFTPd以前,要做好以下准备工作: 1. 安装FreeBSD4.9系统. 2. 定制内核,在内核中加入"options QUOTA"以实现用户配额的支持(注:其他*nix系统如何实现,请各位自己搜索实现.) 3. 安装好APACHE+PHP平台,因为我们后面要用PHP_Manager实现用户在线管理.(注:关于这个安装的内容网上有很多教程,在FreeBSD下可以直接用PORTS方式安装就可以了.) 做好以上准备工作之后,我们就可以开始进入真正的安装过程了. (注:以下安装

  • vsftpd 虚拟用户配置步骤

    yum -y install vsftpd*yum -y install db4*============================================================================先建立一个包含虚拟用户名及其口令的文本文件 , 然后在此基础上生成虚拟用户口令库文件 :#vim logins.txt 添加以下信息 ( 单数行为用户名 , 偶数行为口令 ) : 123     // 用户名 456     // 密码 :wq        //

  • 详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FTP服务器需要安装vsftp服务端软件.我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以

  • 建立基于虚拟用户的VSftpd服务

    上一篇文章给大家介绍了Linux中搭建FTP服务器的方法,说了vsftpd的基本配置,也就是匿名和本地,这回来说一下配置虚拟用户使用vsftpd,下面是具体步骤: 一.建立虚拟用户口令文件 可以使用vi命令创建一个用户口令文件,该文件是一个文本文件,其中奇数行为用户,偶数行为用户密码,文件名可以任意,如我建立一个名为login.txt的文件文件里的内容为: a abc123~ b abc123~ 其中a和b为用户,abc123~为用户的密码. 二.生成vsftpd口令认证文件 建立虚拟用户口令文

  • vsftp建立虚拟用户不同目录分配不同权限操作步骤详解

    vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名.密码与系统用户账号区别开,进一步增强了FTP服务器的安全性. 1.在/etc/vsftpd/vsftpd.conf加入或者更改以下配置语句: 复制代码 代码如下: anonymous_enable=NO (当然你也可以设成YES,同时允许匿名用户登陆)local_enable=YES (必须置YES,因为虚拟用户是映射到virtua

  • 构建基于虚拟用户的vsftpd服务器应用

    安装: [root@server ~]# yum install -y vsftpd [root@server ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/rc.d/init.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrat

  • FTP虚拟用户的使用方法

    虚拟用户原理 因为在linux之下,使用vsftp建立用户之后,默认使用ftp访问的时候,是会访问到对应的用户家目录.如果想多个用户同时访问某一个目录,同时对同一目录下有着不同的权限,比如部分用户只能看,不修改,或者有的用户只能下载不能上传这些权限,这些设定只能通过vsftp中的虚拟用户来进行设定,普通的用户无法达到这样的效果. 故先通过建立一个普通系统用户,建立家目录,然后将所有的虚拟用户映射到对应的普通系统用户家目录中,然后再对各虚拟用户进行权限控制,达到上述的效果. 新建用户 新建用户ma

  • VSFTPD配置(匿名——本地用户——虚拟用户)

    1,下载VSFTPD.TAR.GZ 程序下载地址:ftp://vsftpd.beasts.org/users/cevans/ 2,检查和建立相应账户和目录 1,nobody用户 [root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody nobody:x:99:99:Nobody:/:/sbin/nologin 如不存在请建立相关账户. 2,/usr/share/empty 目录, 如不存在请创建 3,如允许匿名访问,需创建Ftp用户,家目录为/

  • 浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    vsftpd概述 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征. 特点 非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高 小巧轻快,安全易用. ftp.sftp.

  • vsftpd配置虚拟用户登录的方法

    yum安装vsftpd [root@localhost etc]# yum -y install vsftpd</font> 创建虚拟用户和密码 [root@localhost etc]# cd /etc/vsftpd [root@localhost vsftpd]# vim vuser.list 单行为用户名双行为密码 创建数据库文件 [root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db 提高虚拟用户的安全性 [

  • centos 6 安装vsftpd与PAM虚拟用户的方法

    使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 创建一个保存用户及密码的文件 cd /etc/vsftpd/ touch vuser_passwd.txt 添加用户(奇行用户,偶行密码) vim vuser_passwd.txt tom DSfaoewLD3 ken GetpOIIofd324DLJhg 将文本内的帐号及密码添加到db4的数据库文件内 db_load -T -t hash -f /etc/vsftpd/vuser_pass

  • 基于MySql验证的vsftpd虚拟用户

    目录 1. Mysql安装 1.2 建表建库建用户 1.3 创建远程连接账户 2. 安装FTP服务器 2.1 安装vsftpd 2.2 安装pam_mysql 2.2 建立pam认证所需文件 2.3 建立vsftpd用户 2.4 修改vsftpd配置文件 2.5 重启vsftpd服务 1. Mysql安装 yum -y install mariadb-server systemctl enable --now mariadb.service 1.2 建表建库建用户 mysql -e "CREAT

随机推荐