sftpd服务  命令端口21 独立服务  由xinetd管理的是非独立服务


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

            /usr/sbin/vsftpd   ftp服务的主程序



   yum install vsftpd

 systemctl start  vsftpd

 systemctl enable vsftpd开机自启动

// 注意防火墙 iptables -F 和 selinux->gentenment


ftp ip地址进行地址访问


进行家目录的修改:

  centos7

     cd /app

     mkdir ftpsite

    usermod -d /app/ftpsite ftp

    getent passwd ftp 查看家目录修改成功

    cd ftpsite touch a 

centos6 : ftp ip地址 ftp magedu ls查看


#ps aux|grep vsftpd 筛选vsftpd服务

#ps -eF查看父子进程


查看vsftpd的配置文件:  

        cd /etc/vsftpd

        cat vsftpd.conf

        grep -v '^#' vsftpd.conf 筛选

        ss -ntl 查看端口


修改vsftpd的配置文件

        vim /etc/vsftpd/vsftpd.conf

        修改监听的端口:

            vim vsftp.conf 

               liste_port=9527


            ftp_data_port=2222 主动端口

            service start vsftpd


链接测试: ftp 192.168.37.104 9527 指定端口

ftp -A ip地址 默认主动模式


主动模式端口 : 数据端口20

被动模式端口 :数据端口随机  

 ftp>

     passive 进行模式的切换


默认ftp链接为被动模式

匿名链接

          cd /var/ftp/pub

          dd if=/dev/zero of=f1 bs=1M count=1024 设个文件

  ftp 192.168.37.107

 

vim vsftpd.conf

 anonymous_enable=NO 不允许匿名登录 

 

设置acl:

    setfacl -m u:ftp:rwx /var/ftp 加权限

    se tfacl -x u:ftp:rwx /var/ftp 减权限


echo -e '\e[5;1;31mupload dir\e[0m' > .message  设置颜色并重定到指定的文件中

ctrl+v +[ =^[ 


PAM模块

        /etc/pam.d/vsftpd  pam的配置文件

        /etc/vsftpd/ftpusers 拒绝的用户设置文件

        /etc/vsftpd/ftpusers/user_list root拒绝



#useradd magedu 创建用户

 //    echo "passwd"|passwd --stdin username 设置密码

#echo "magedu"|passwd --stdin magedu


#echo -e '\e[33mupload dir\e[0m' 设置字体颜色

#echo -e '\e[1;33mupload dir\e[0m'高亮显示颜色

#echo -e '\e[5;1;33mupload dir\e[0m' 高亮闪烁显示字体颜色

#echo -e '\e[5;1;33mupload dir\e[0m' > .message 可重定向到文件中






实验:实现基于db文件验证的ftp虚拟用户  

        cd /etc/vsftpd

        vim fpusert.txt 存放虚拟账户

         ftp1

         centos1

         ftp2

         centos2

         ftp3

         centos3

         db_load -T -t hash -f ftpuser.txt ftpuser.db 转换为db格式

         chmod 666 ftpuser.db

         useradd -s /sbin/nologin   -r  -m -d /app/ftpsite ftpuser  系统账户

         cd /etc/vsftpd    

         cd /etc/pam.d   验证用户身份

         vim vsftpd.db

         ppt上

         ftpuser

         vim vsftpd.conf

          

          pam_service_name=vsftpd.db

          guset_username=ftpuser

          guest_enable=YES

          user_config_dir=/etc/vsftpd/conf.d

         cd /app/ftpsite

         touch ftp

         chomd -w /app/ftpsite

         chmod 555 /app/ftpsite

         cd /app/ftpsite

         mkdir upload

         chmod ftpuser upload

         mkdir /etc/vsftpd/conf.d

         cd /etc/vsftpd/conf.d

         vim ftp1可以上传并创建文件夹

          

            anon_upload_enable=yes

            anon_mkdir_write_enable=yes

         cd /app

         mkdir ftpsite2

         mkdir ftpsite3

         touch ftpsite2/ftpsite2

         touch ftpsite3/ftpsite3

         chmod -w *

         cd  /etc/vsftpd/conf.d

           vim ftp2

             local_root=/app/ftpsite2

           vim ftp3

             local_root=/app/ftpsite3

              anon_upload_enable=yes

              anon_mkdir_write_enable=yes

         cd ftpsite3

         mkdir up

         chown ftpuser up

         cd ftpsite2

         mkdir up

         chown ftpuser up

       

         systemctl restart  vsftpd

 101:测试

       ftp 192.168.223.166

            ftp1

            cd upload

            put f1.txt

      

        

 

         




实验:实现基于mysql的ftp虚拟用户

过程如下:


环境:两台主机,一台A:mairadb server 101  一台B ftp server 107  客户端106


1 A:安装mariadb  yum install mariadb-server

                 syatemctl strat mariadb

                  mysql_secure_insatll_db

mysql -uroot -pcentos

   create database vsftpd;

   use vsftpd

   create table ftpusers(name char(30),pass char(50));

   insert ftpusers values('ftp1',password('centos')),('ftp2',password('magedu'));

   grant select on vs ftpd.ftpusers to 'ftp'@'192.168.37.107' identified by 'centos';


2 B:

yum install vsftpd

下载pam_mysql的bap

rz

tar xvf pam_mysql-0.7rcl.tar.gz

yum insatll pam_mysql

yum groupinstall "development tools"

yum install mariadb-devel pam-devel

cd pam_mysql-0.7

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

make  && make install


useradd -d  /app/ftpdir -r -m ftpuser

chmod -w /app/ftpdir

3 B

vim /etc/pam.d/vsftpd.mysql 

auth required pam_mysql.so user=ftp passwd=centos host=192.168.37.101 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

account required pam_mysql.so user=ftp passwd=centos host=192.168.37.101 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2


4 B

vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.mysql 修改

加下面行

guest_enabl e=yes

guest_username=ftpuser

user_config_dir=/etc/vsftpd/conf.d/


mkdir /etc/vsftpd/conf.d/

vim  /etc/vsftpd/conf.d/ftp1

anon_upload_enable=yes


vim  /etc/vsftpd/conf.d/ftp2

local_root=/app/ftpdir2


5 B

mkdir  /app/ftpdir/

chmod 555 /app/ftpdir

cd /ftpdir

touch f1

mkdir up

chown ftpuser up


mkdir /app/ftp2

chmod 555 /app/ftpdir2

cd /ftp2

touch f2

mkdir up

chown ftpuser up


106测试:  ftp 192.168.37

             ftp1

          ftp 192.168.37

             ftp2




centos7

先实现自签证书:cd /etc/pki/tls/certs

                make vsftpd.pem

                 CN

                 henan

                 zhengzhou

                 magedu

                 opt

                 magedu.com

                mv vsftpd.pem /etc/vsftpd            

                vim /etc/vsftpd/vsftpd.conf

                 ppt上

                systemctl restart vsftpd

101:测试  ftp 192.168.223.166




ftp工具

axel 下载安装 centos6 

    yum insatll axel-2.4-1.e16.rf.x86_64.rpm

    rpm -ql  axel

    service vsftpd start 

    cd  /var/www/html

    dd if=/dev/zero of=f1 bs=1M count=1024

    mv f1 /var/ftp/pub

    

107 axcel -n 10 -o ftp://192.168.37.106/pub/f1  并行下载

    wget ftp://192.168.37.106/pub/f1  并行下载


NFS服务:


   


实验:基于NFS的LAMP


NFS: 端口不固定 依赖于fpcbind(存放nfs的端口号)

实现简单共享:centos7


# yum install nfs-utils安装包

service rpcbind start

service nfs start   (centos6)  systemctl start nfs-server (centos7)

chkconfig nfs on 开机自启动 (centos6) systemctl enable nfs-server 开机自启动(centos7)

rpcinfo -p 可查看nfs的端口

107:

创建共享文件夹:

    mkdir /app/nfsdir1

    mkdir /app/nfsdir2

    vim /etc/exports

      /app/nfsdir1 * (ro)

      /app/nfsdir2 * (rw,no_root_squash不压榨)// (,all_squash) 压榨nobady,加上后no失效

       anonuid=1002,anongid=1002)指明用户映射为特定的用户UID和GID// 也就是当创建用户时默认

       所属人,所属组为指定的用户的

   systenctl reload nfs-servert

   exportfs -v 查看是否共享出去

   exportfs -r  不用重新加载服务,可以直接进行文件共享

   exportfs -au 临时关闭共享

  

101:测试

   showmount -e 192.168.37.107

   mkdir /mnt/nfs1

   mkdir /mnt/nfs2

   mount 192.168.37.107:/app/nfsdir1 /mnt/nfs1 临时挂载 

vim /etc/fstab 写进文件实现永久挂载

 192.168.37.107:/app/nfsdir1 /mnt nfs defaults 0 0 ; mount -a  

   mount 192.168.37.107:/app/nfsdir2 /mnt/nfs2

   df查看

   cd /mnt/nfs1;  touch xx 

   cd /mnt/nfs2;  touch f1 

107:   

   chmod 777 /app/nfsdir2

setfacl -m u:nfsnobody:rwx /app/nfsdir2 设置权限

showmount -e 192.168.223.167 查看该虚拟机是否有共享文件

 

 rpcbind.service 依赖于 rpcbind.socket

systemctl stop rpcbind.socket  rpcbind.service也将停止