linux中文件服务及vsftpd的配置

文件服务:

    ftp:应用层,C/S,文件共享;file transfer protocol;

    nfs,cifs:文件系统接口,网络文件系统;

        nfs:network file system

cifs:common internet file system

    samba

网络存储:

    NAS:Network Attached Storage,文件服务器,nfs或cifs,文件级别;

    SAN:Storage Area Network,块级别共享服务,分区–>格式化–>创建文件系统;IPSAN, FCSAN;

ftp:

    file transfer protocol,21/tcp

C/S:

            Client –> ftp–>Server

        Client:Connect

Server:Listen

    连接:

命令连接:命令传输,连接一直存在;

数据连接:数据传输,按需创建;

    数据连接的建立模式:

主动模式:服务器通过20/tcp主动连接客户端的命令连接端口向后最近一个空闲端口;PORT;

被动模式:客户端发出数据请求后,服务端会响应一个打开的临时使用的随机端口,客户端对此端口进行请求;PASV;

    数据传输模式:

        文本格式:ASCII

二进制格式:BINARY

协议安全:

    明文:数据、认证时传输账号和密码均是明文 ;

安全增强:

            ftp over ssl/tls:ftps

    ftp over ssh:sftp

虚拟用户账号;

    c/s:

Server:

            Windows:Serv-U, IIS, …

         开源解决方案:

                    wuftpd:Washington University ftp daemon

             vsftpd:Very Secure ftp daemon

                 proftpd, pureftpd, …

        Client:

         GUI:flashfxp, cute, filezilla, gftp, …

    CLI:ftp, lftp, …

    vsftpd:

程序环境:

            主程序:/usr/sbin/vsftpd

        Unit File:/usr/lib/systemd/system/vsftpd.service

    配置文件:/etc/vsftpd/vsftpd.conf

    文档路径映射:

fedora, /home/fedora/pub/a.txt –> ftp://HOST:PORT/pub/a.txt

用户的家目录映射:访问vsftpd服务必须以某个系统用户的身份进行;此用户的家目录即为文档映射的根目录;

匿名用户:anonymous,映射为一个系统用户,此用户为ftp;

    配置:vsftpd.conf

directive VALUE,…

directive:指令之前不能存在任何字符,包括空白;

    匿名用户:

        anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

    本地用户:

local_enable=YES

write_enable=YES

    认证服务:

pam_service_name=vsftpd

/etc/pam.d/vsftpd

pam: pluggable authencate module

         切换目录时的提示信息:

dirmessage_enable=YES

         .messages

         修改上传文件的属主:

chown_uploads=YES

chown_username=USERNAME

    禁锢用户于自己的家目录:

会引入别的风险,因此,要求用户对自己的家目录不能有写权限;

(1) 禁锢所有用户

    chroot_local_user=YES

(2) 禁锢部分用户

         (a) 白名单:名单中的用户不被禁锢;

        chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

    (b) 黑名单:名单中的用户被禁锢

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

    user_list控制用户访问vsftpd:

(1) 白名单

         userlist_enable=YES

    userlist_deny=NO

             (2) 黑名单,默认

    userlist_enable=YES

    userlist_deny=YES

虚拟用户账号:

    vsftpd依赖pam完成认证,pam存储支持的认证方式,vsftpd都可调用;

账号密码存储于何处?

        文件、MySQL、ldap、redis、…

    pam_mysql模块

CentOS 6:epel

CentOS 7:编译安装

    编译:

        (1) 编译环境;

(2) 依赖关系:mariadb-devel, pam-devel

# ./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security/

# make install

MySQL设置:

         mysql> CREATE DATABASE vsftpd;

    mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';

    mysql>  CREATE TABLE vsftpd.users (uid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE KEY,name VARCHAR(100) NOT NULL PRIMARY KEY,password CHAR(48) NOT NULL);

    mysql> INSERT INTO users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu')),('lucy',PASSWORD('mageedu'));

准备要映射成为的系统账号:

# mkdir -pv /ftproot/{pub,upload}

# useradd -d /ftproot vuser

# setfacl -m u:vuser:rwx /ftproot/upload

准备基于mysql认证的pam配置文件:/etc/pam.d/vsftpd.mysql

auth required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

配置vsftpd启用虚拟用户,并使用指定的pam service:vsftpd.conf

    pam_service_name=vsftpd.mysql

    guest_enable=YES

    guest_username=vuser

配置每虚拟用户拥有不同的权限:vsftpd.conf

    user_config_dir=/etc/vsftpd/vusers_conf

# mkdir /etc/vsftpd/vusers_conf

# touch USERNAME

权限配置指令:

         anon_upload_enable

    anon_mkdir_write_enable

    anon_other_write_enable

时间: 2024-10-24 14:03:18

linux中文件服务及vsftpd的配置的相关文章

linux时间同步ntp服务的安装与配置_Linux

1.安装ntp服务,要使用时间同步.那么服务端与客户端都需要使用如下命令安装NTP软件包 [root@5201351 ~]# yum install ntp -y 2.如果只是作为客户端的话,配置则可以非常简单,编辑/etc/ntp.conf文件,注释掉默认的如下默认的4行 再加上我们的时间同步服务端的IP地址或者域名即可,其中prefer选项表示优先使用该时间同步服务器 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp

Linux中文件权限目录权限的意义及权限对文件目录的意义_linux shell

linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

Linux中文件的五个查找命令总结_unix linux

Linux的查找命令有5个,分别如下:     which:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果:     type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的.如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令.type命令其实不能算查找命令:     whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s):    

Linux中e-mail服务器的安装与配置

随着互联网的发展,e-mail迅速成长成为主要的网络http://www.aliyun.com/zixun/aggregation/38653.html">信息传递工具.面对大量要求能够快速,廉价,和高可信赖的e-mail需求,很多公司和个人都把linux提供的服务作为满足这些需求的解决方案. redhat7.1默认安装的时间已经安装了SendMail 8.11服务.因为redhat安装使用都非常的简单,我们这里就忽略安装过程,相关资料请查阅redhat CD里的文档.要使你的新e-mai

Linux中文件查找方法大全_unix linux

每一种操作系统都是由成千上万个不同种类的文件所组成的.其中有系统本身自带的文件,用户自己的文件,还有共享文件等等.我们有时候经常忘记某份文件放在硬盘中的哪个地方.在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击"开始"-"搜索"中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档. 可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情.毕竟在Linux中需要我们使

Linux中文件的压缩与解压缩命令操作示例集锦

  所谓压缩就是将原有的文件通过不同的编码技术进行运算,以减少数据存储所需要的空间,使用前再利用解压缩还原源文件的内容即可. 和windows一样,在linux下也存在多种压缩与解压缩方法. 1.zip压缩与解压缩 zip是最为广泛使用的压缩程序,经它压缩的文件会产生扩展名为zip的压缩文件,而且这种格式在多种系统上可以使用,像windows中的winzip 下面看一下在linux中如何建立zip文件. 我们在终端中输入zip会出现这个命令的一些介绍和参数的意义. 代码如下: xiaopeng@

linux中文件操作命令(创建、删除、查看、权限设置)

创建文件(touch)命令 Linux 创建文件命令主要用到的是 touch 命令,touch 命令可用来修改文件的访问时间,修改时间,如果没有指定时间,则默认为当前时间,如果指定的文件不存在,则 touch 命令将创建该文件. 命令格式: touch [-acfm] [-r file(参照文件)] [-t decimtime(时间值)] [-d time(时间值)] [--time={atime,access,use,mtime,modify}] [--date=time] [--refere

linux中文件描述符fd和文件指针flip的理解

整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在open时产生.起到一个索引的作用.每个进程在PCB(Process Control Block)即进程控制块中都保存着一份文件描述符表,文件描述符就是这个表的索引,文件描述表中每个表项都有一个指向已打开文件的指针,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp. 文件描述符的操作(如:

Linux中NFS服务器的安装与配置

NFS是Net http://www.aliyun.com/zixun/aggregation/19352.html">File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件.通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件. 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不