###############################
####### ldap网络帐号 ######################################1.ldap是什么ldap目录服务认证和windows活动目录类似就是记录数据的一种方式2.ldap客户端所须软件yum sssd krb5-workstation -y3.如何开启ldap用户认证authconfig-tui┌────────────────┤ Authentication Configuration ├─────────────────┐│ │ │ User Information Authentication │ │ [ ] Cache Information [ ] Use MD5 Passwords │ │ [*] Use LDAP [*] Use Shadow Passwords │ │ [ ] Use NIS [ ] Use LDAP Authentication │ │ [ ] Use IPAv2 [*] Use Kerberos │ │ [ ] Use Winbind [ ] Use Fingerprint reader │ │ [ ] Use Winbind Authentication │ │ [*] Local authorization is sufficient │ │ │ │ ┌────────┐ ┌──────┐ │ │ │ Cancel │ │ Next │ │ │ └────────┘ └──────┘ │ │ │ │ │ └─────────────────────────────────────────────────────────────────┘ ┌─────────────────┤ LDAP Settings ├─────────────────┐│ │ │ [*] Use TLS │ │ Server: ldap://cla***oom.example.com/___________ │ │ Base DN: dc=example,dc=com_______________________ │ │ │ │ ┌──────┐ ┌──────┐ │ │ │ Back │ │ Next │ │ │ └──────┘ └──────┘ │ │ │ │ │ └───────────────────────────────────────────────────┘ ┌─────────────────┤ Kerberos Settings ├──────────────────┐│ │ │ Realm: EXAMPLE.COM_____________________________ │ │ KDC: cla***oom.example.com___________________ │ │ Admin Server: cla***oom.example.com___________________ │ │ [ ] Use DNS to resolve hosts to realms │ │ [ ] Use DNS to locate KDCs for realms │ │ │ │ ┌──────┐ ┌────┐ │ │ │ Back │ │ Ok │ │ │ └──────┘ └────┘ │ │ │ │ │ └────────────────────────────────────────────────────────┘ <当出现以下报错时>┌────────────────┤ Warning ├─────────────────┐│ │ │ To connect to a LDAP server with TLS │ │ protocol enabled you need a CA certificate │ │ which signed your server's certificate. │ │ Copy the certificate in the PEM format to │ │ the '/etc/openldap/cacerts' directory. │ │ Then press OK. │ │ │ │ ┌────┐ │ │ │ Ok │ │ │ └────┘ │ │ │ │ │ └────────────────────────────────────────────┘ 是因为tls的证书缺失需要到服务器端下载所需要的证书到/etc/openldap/cacerts用到的命令wget http://172.25.254.254/pub/example-ca.crt<测试> getent passwd ldapuser1如果用户信息可以正常显示证明客户端认成功。4.自动挂载用户家目录yum install autofs -yvim /etc/autofs.master/home/guests /etc/auto.ldapvim /etc/auto.ldapldapuser1 172.25.254.254:/home/guests/ldapuser1-----------------------------------------------------* 172.25.254.254:/home/guests/&systemctl restart autofssystemctl restart autofsldp服务端配置在企业部分讲####################client:[root@desktop15 ~]# grep bash$ /etc/passwdroot:x:0:0:root:/root:/bin/bashstudent:x:1000:1000:Student User:/home/student:/bin/bash[root@desktop15 ~]# getent passwd rootroot:x:0:0:root:/root:/bin/bash[root@desktop15 ~]# getent passwd studentstudent:x:1000:1000:Student User:/home/student:/bin/bash[root@desktop15 ~]# getent passwd ldapuser1[root@desktop15 ~]# getent passwd ldapuser2[root@desktop15 ~]# getent passwd ldapuser3[root@desktop15 ~]# yum install sssd krb5-workstation -y......>>>=====方法1=====[root@desktop15 ~]# authconfig-tui......[root@desktop15 ~]# cd /etc/openldap[root@desktop15 openldap]# lscacerts certs ldap.conf=====方法2=====[root@desktop15 ~]# cd /etc/openldap[root@desktop15 openldap]# lscerts ldap.conf[root@desktop15 openldap]# mkdir cacerts/>>>[root@desktop15 openldap]# cd cacerts/[root@desktop15 cacerts]# ls[root@desktop15 cacerts]# wget http://172.25.254.254/pub/example-ca.crt--2016-11-12 20:35:59-- http://172.25.254.254/pub/example-ca.crtConnecting to 172.25.254.254:80... connected.HTTP request sent, awaiting response... 200 OKLength: 1220 (1.2K)Saving to: ‘example-ca.crt’100%[=================================>] 1,220 --.-K/s in 0s 2016-11-12 20:35:59 (165 MB/s) - ‘example-ca.crt’ saved [1220/1220][root@desktop15 cacerts]# lsexample-ca.crt[root@desktop15 cacerts]# authconfig-tui......[root@desktop15 cacerts]# getent passwd ldapuser1ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash[root@desktop15 cacerts]# su - ldapuser1su: warning: cannot change directory to /home/guests/ldapuser1: No such file directorymkdir: cannot create directory '/home/guests': Permission denied-bash-4.2$ whoamildapuser1-bash-4.2$ pwd/etc/openldap/cacerts-bash-4.2$ logout[root@desktop15 cacerts]# ping cla***oom.example.comPING cla***oom.example.com (172.25.254.254) 56(84) bytes of data.64 bytes from cla***oom.example.com (172.25.254.254): icmp_seq=1 ttl=64 time=0.456 ms64 bytes from cla***oom.example.com (172.25.254.254): icmp_seq=2 ttl=64 time=0.326 ms......[root@desktop15 cacerts]# getent passwd ldapuser1ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash[root@desktop15 cacerts]# getent passwd | grep ldapuser[root@desktop15 cacerts]# man 5 sssd.conf--------------------------------------------------/bool ##with values of “TRUE/FALSE”。bool的取值相当于功能的开关按"n"向下查找 enumerate (bool) ##枚举 Determines if a domain can be enumerated. This parameter can have one of the following values: TRUE = Users and groups are enumerated FALSE = No enumerations for this domain Default: FALSE--------------------------------------------------[root@desktop15 cacerts]# vim /etc/sssd/sssd.conf -------------------------------------------------- 16 enumerate = True:wq--------------------------------------------------[root@desktop15 cacerts]# systemctl restart sssd.service [root@desktop15 cacerts]# getent passwd | grep ldapuserldapuser10:*:1710:1710:LDAP Test User 10:/home/guests/ldapuser10:/bin/bashldapuser11:*:1711:1711:LDAP Test User 11:/home/guests/ldapuser11:/bin/bashldapuser12:*:1712:1712:LDAP Test User 12:/home/guests/ldapuser12:/bin/bashldapuser13:*:1713:1713:LDAP Test User 13:/home/guests/ldapuser13:/bin/bashldapuser14:*:1714:1714:LDAP Test User 14:/home/guests/ldapuser14:/bin/bashldapuser15:*:1715:1715:LDAP Test User 15:/home/guests/ldapuser15:/bin/bashldapuser16:*:1716:1716:LDAP Test User 16:/home/guests/ldapuser16:/bin/bashldapuser17:*:1717:1717:LDAP Test User 17:/home/guests/ldapuser17:/bin/bashldapuser18:*:1718:1718:LDAP Test User 18:/home/guests/ldapuser18:/bin/bashldapuser19:*:1719:1719:LDAP Test User 19:/home/guests/ldapuser19:/bin/bashldapuser20:*:1720:1720:LDAP Test User 20:/home/guests/ldapuser20:/bin/bashldapuser0:*:1700:1700:LDAP Test User 0:/home/guests/ldapuser0:/bin/bashldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bashldapuser2:*:1702:1702:LDAP Test User 2:/home/guests/ldapuser2:/bin/bashldapuser3:*:1703:1703:LDAP Test User 3:/home/guests/ldapuser3:/bin/bashldapuser4:*:1704:1704:LDAP Test User 4:/home/guests/ldapuser4:/bin/bashldapuser5:*:1705:1705:LDAP Test User 5:/home/guests/ldapuser5:/bin/bashldapuser6:*:1706:1706:LDAP Test User 6:/home/guests/ldapuser6:/bin/bashldapuser7:*:1707:1707:LDAP Test User 7:/home/guests/ldapuser7:/bin/bashldapuser8:*:1708:1708:LDAP Test User 8:/home/guests/ldapuser8:/bin/bashldapuser9:*:1709:1709:LDAP Test User 9:/home/guests/ldapuser9:/bin/bash[root@desktop15 cacerts]# yum install autofs -y......[root@desktop15 cacerts]# vim /etc/auto.master-------------------------------------------------- 14 /home/guests /etc/auto.ldap:wq--------------------------------------------------[root@desktop15 cacerts]# showmount -e 172.25.254.254Export list for 172.25.254.254:/home/guests 172.25.0.0/255.255.0.0[root@desktop15 cacerts]# vim /etc/auto.ldap--------------------------------------------------ldapuser1 172.25.254.254:/home/guests/ldapuser1:wq--------------------------------------------------[root@desktop15 cacerts]# systemctl restart autofs[root@desktop15 cacerts]# su - ldapuser1Last login: Sat Nov 12 20:32:55 EST 2016 on pts/0[ldapuser1@desktop15 ~]# logout[root@desktop15 cacerts]# vim /etc/auto.ldap--------------------------------------------------* 172.25.254.254:/home/guests/&:wq--------------------------------------------------[root@desktop15 cacerts]# systemctl restart autofs[root@desktop15 cacerts]# systemctl enable autofsln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'>注销图形使用ldapuser{0..20}重新登陆desktop0密码均为kerberos>如果登陆时画面一闪又退回到登陆界面。说明配置有问题请检查配置。>进入图形表示配置正确>打开另外一台虚拟机"server15"编写脚本[root@server15 ~]# authconfig --help |less ##查看命令解释[root@server15 ~]# vim set-ldap.sh--------------------------------------------------#!/bin/bashecho "install software ing ..."yum install sssd krb5-workstation autofs -y &> /dev/nullecho "config ldap auth client ing ..."authconfig \--enableldap \--enablekrb5 \--disableldapauth \--enableldaptls \--ldaploadcacert=http://172.25.254.254/pub/example-ca.crt \--ldapserver="cla***oom.example.com" \--ldapbasedn="dc=example,dc=com" \--krb5realm="EXAMPLE.COM" \--krb5kdc="cla***oom.example.com" \--krb5adminserver="cla***oom.example.com" \--enablesssd \--enablesssdauth \--updateecho "config ldap user\'s home directory ing ..."echo /home/guests /etc/auto.ldap >> /etc/auto.masterecho "* 172.25.254.254:/home/guests/&" >> /etc/auto.ldapsystemctl restart autofssystemctl enable autofs &> /dev/nullecho "all is successfully !!!"--------------------------------------------------##编写完脚本authconfig部分的配置使用命令"authconfig-tui"检查同时确保网络畅通。[root@server15 ~]# chmod +x set-ldap.sh[root@server15 ~]# ./set-ldap.sh[root@server15 ~]# getent passwd ldapuser1ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash>注销图形使用ldapuser{0..20}重新登陆desktop0密码均为kerberos>如果登陆时画面一闪又退回到登陆界面。说明脚本有问题请检查脚本。>进入图形表示配置正确############################################ vsftpd服务 ########################接11.12的笔记####################服务端[root@server ~]# yum install vsftpd -y[root@server ~]# systemctl start vsftpd[root@server ~]# systemctl enable vsftpd[root@server ~]# firewall-cmd --permanent --add-service=ftp[root@server ~]# firewall-cmd --reload ##以上输出省略[root@server ~]# vim /etc/sysconfig/selinux -------------------------------------------------- 7 SELINUX=disabled:wq--------------------------------------------------[root@server ~]# reboot##等待重启[root@server ~]# chgrp ftp /var/ftp/pub/[root@server ~]# chmod 775 /var/ftp/pub/#####################<匿名用户使用的用户身份修改>chown_uploads=YESchown_username=student####################服务端[root@server ~]# man 5 vsftpd.conf-------------------------------------------------- chown_uploads If enabled, all anonymously uploaded files will have the owner‐ ship changed to the user specified in the setting chown_user‐ name. This is useful from an administrative, and perhaps secu‐ rity, standpoint. Default: NO chown_username This is the name of the user who is given ownership of anony‐ mously uploaded files. This option is only relevant if another option, chown_uploads, is set. Default: root--------------------------------------------------[root@server ~]# vim /etc/vsftpd/vsftpd.conf-------------------------------------------------- 29 anon_upload_enable=YES 48 chown_uploads=YES 49 chown_username=student:wq--------------------------------------------------[root@server ~]# systemctl restart vsftpd客户端[root@desktop ~]# yum install lftp -y[root@desktop ~]# lftp 172.25.50.200lftp 172.25.50.200:/> cd pub/lftp 172.25.50.200:/pub> lslftp 172.25.50.200:/pub> put /etc/passwd2005 bytes transferredlftp 172.25.50.200:/pub> ls-rw------- 1 1000 50 2005 Nov 18 01:52 passwdlftp 172.25.50.200:/pub> exit服务端[root@server ~]# cd /var/ftp/pub/[root@server pub]# lltotal 4-rw-------. 1 student ftp 2005 Nov 17 20:52 passwd[root@server pub]# rm -fr *#####################<最大上传速率>anon_max_rate=102400####################客户端[root@desktop ~]# dd if=/dev/zero of=/mnt/file bs=1M count=10001000+0 records in1000+0 records out1048576000 bytes (1.0 GB) copied, 20.4023 s, 51.4 MB/s[root@desktop ~]# lftp 172.25.50.200lftp 172.25.50.200:/> cd pub/lftp 172.25.50.200:/pub> lslftp 172.25.50.200:/pub> put /mnt/file 1048576000 bytes transferred in 26 seconds (38.28M/s) lftp 172.25.50.200:/pub> exit服务端[root@server pub]# man 5 vsftpd.conf-------------------------------------------------- anon_max_rate The maximum data transfer rate permitted, in bytes per second, for anonymous clients. Default: 0 (unlimited)--------------------------------------------------[root@server pub]# vim /etc/vsftpd/vsftpd.conf-------------------------------------------------- 30 anon_max_rate=10240000 ##限制为每秒10兆 49 #chown_uploads=YES 50 #chown_username=student:wq--------------------------------------------------[root@server pub]# systemctl restart vsftpd[root@server pub]# lsfile[root@server pub]# rm -fr *客户端[root@desktop ~]# lftp 172.25.50.200lftp 172.25.50.200:/> cd pub/lftp 172.25.50.200:/pub> lslftp 172.25.50.200:/pub> put /mnt/file 1048576000 bytes transferred in 102 seconds (9.76M/s) lftp 172.25.50.200:/pub> 服务端[root@server pub]# lsfile[root@server pub]# rm -fr *#####################<最大链接数>max_clients=2####################真机[root@foundation50 Desktop]# lftp 172.25.50.200lftp 172.25.50.200:~> lsdrwxrwxr-x 2 0 50 17 Nov 18 02:19 publftp 172.25.50.200:~> exit##虚拟机desktop使用lftp登陆后真机再使用lftp登陆不受影响服务端[root@server pub]# man 5 vsftpd.conf-------------------------------------------------- max_clients If vsftpd is in standalone mode, this is the maximum number of clients which may be connected. Any additional clients connect‐ ing will get an error message. Default: 0 (unlimited)--------------------------------------------------[root@server pub]# vim /etc/vsftpd/vsftpd.conf-------------------------------------------------- 30 max_clients=1:wq--------------------------------------------------[root@server pub]# systemctl restart vsftpd真机[root@foundation50 Desktop]# lftp 172.25.50.200lftp 172.25.50.200:~> lsInterrupt lftp 172.25.50.200:~> exit##虚拟机desktop使用lftp登陆后真机再使用lftp登陆无法执行任何操作####################2)本地用户设定local_enable=YES|NO ##本地用户登陆限制write_enable=YES|NO ##本地用户写权限限制####################服务端[root@server pub]# useradd westos[root@server pub]# echo westos | passwd westos --stdin Changing password for user westos.passwd: all authentication tokens updated successfully.[root@server pub]# useradd redhat[root@server pub]# echo redhat | passwd redhat --stdin Changing password for user redhat.passwd: all authentication tokens updated successfully.[root@server pub]# id westosuid=1001(westos) gid=1001(westos) groups=1001(westos)[root@server pub]# id redhatuid=1002(redhat) gid=1002(redhat) groups=1002(redhat)客户端 lftp 172.25.50.200:/pub> exit[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> lslftp westos@172.25.50.200:~> put /etc/passwd2005 bytes transferredlftp westos@172.25.50.200:~> ls-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:~> exit服务端[root@server pub]# cd /home/westos[root@server westos]# lspasswd[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- local_enable Controls whether local logins are permitted or not. If enabled, normal user accounts in /etc/passwd (or wherever your PAM config references) may be used to log in. This must be enable for any non-anonymous login to work, including virtual users. Default: NO--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------修改 16 local_enable=NO删除 30 max_clients=1--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls ls: Login failed: 530 This FTP server is anonymous only.lftp westos@172.25.50.200:~> exit服务端[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- write_enable This controls whether any FTP commands which change the filesys‐ tem are allowed or not. These commands are: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE. Default: NO--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf -------------------------------------------------- 16 local_enable=YES 19 write_enable=NO:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:~> put /etc/groupput: Access failed: 550 Permission denied. (group)lftp westos@172.25.50.200:~> exit#####################<本地用户家目录修改>local_root=/directory####################服务端[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- local_root This option represents a directory which vsftpd will try to change into after a local (i.e. non-anonymous) login. Failure is silently ignored. Default: (none)--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf -------------------------------------------------- 17 local_root=/etc 20 write_enable=YES:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls ......lftp westos@172.25.50.200:~> exit#####################<本地用户上传文件权限>local_umask=xxx####################服务端[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- local_umask The value that the umask for file creation is set to for local users. NOTE! If you want to specify octal values, remember the "0" prefix otherwise the value will be treated as a base 10 integer! Default: 077--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------删除 17 local_root=/etc修改 23 local_umask=077 ##原来是022:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> put /etc/group850 bytes transferred lftp westos@172.25.50.200:~> ls-rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:~> exit#####################<限制本地用户浏览/目录>所有用户被锁定到自己的家目录中chroot_local_user=YESchmod u-w /home/*####################[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:~> cd /cd ok, cwd=/lftp redhat@172.25.50.200:/> lslrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bindr-xr-xr-x 4 0 0 4096 Jul 10 2014 bootdrwxr-xr-x 18 0 0 2800 Nov 18 01:00 devdrwxr-xr-x 134 0 0 8192 Nov 18 02:51 etcdrwxr-xr-x 5 0 0 46 Nov 18 02:44 homelrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/liblrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64drwxr-xr-x 2 0 0 6 Mar 13 2014 mediadrwxr-xr-x 2 0 0 6 Nov 18 02:19 mntdrwxr-xr-x 3 0 0 15 Jul 10 2014 optdr-xr-xr-x 131 0 0 0 Nov 18 00:59 procdr-xr-x--- 14 0 0 4096 Nov 18 03:19 rootdrwxr-xr-x 35 0 0 1140 Nov 18 02:33 runlrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbindrwxr-xr-x 2 0 0 6 Mar 13 2014 srvdr-xr-xr-x 13 0 0 0 Nov 18 00:59 sysdrwxrwxrwt 10 0 0 4096 Nov 18 02:33 tmpdrwxr-xr-x 13 0 0 4096 May 07 2014 usrdrwxr-xr-x 23 0 0 4096 Nov 18 00:59 varlftp redhat@172.25.50.200:/> exit服务端[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- chroot_local_user If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login. Warning: This option has security implications, especially if the users have upload permission, or shell access. Only enable if you know what you are doing. Note that these security implications are not vsftpd specific. They apply to all FTP daemons which offer to put local users in chroot() jails. Default: NO--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------101 chroot_local_user=YES:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> lsls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()lftp redhat@172.25.50.200:~> cd /cd: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()lftp redhat@172.25.50.200:~> exit服务端[root@server westos]# ll /hometotal 4drwx------. 4 redhat redhat 88 Nov 17 21:44 redhatdrwx------. 4 student student 84 Jul 10 2014 studentdrwx------. 4 westos westos 4096 Nov 17 22:16 westos[root@server westos]# chmod u-w /home/*[root@server westos]# ll /hometotal 4dr-x------. 4 redhat redhat 88 Nov 17 21:44 redhatdr-x------. 4 student student 84 Jul 10 2014 studentdr-x------. 4 westos westos 4096 Nov 17 22:16 westos客户端[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:/> cd /lftp redhat@172.25.50.200:/> lslftp redhat@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> cd /lftp westos@172.25.50.200:/> ls-rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> exit####################用户黑名单建立chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list用户白名单建立chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list####################服务端[root@server westos]# man 5 vsftpd.conf-------------------------------------------------- chroot_list_enable If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly different if chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file con‐ taining this list is /etc/vsftpd/chroot_list, but you may over‐ ride this with the chroot_list_file setting. Default: NO chroot_list_file The option is the name of a file containing a list of local users which will be placed in a chroot() jail in their home directory. This option is only relevant if the option chroot_list_enable is enabled. If the option chroot_local_user is enabled, then the list file becomes a list of users to NOT place in a chroot() jail. Default: /etvsftpd.confc/vsftpd.chroot_list--------------------------------------------------[root@server westos]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------102 chroot_list_enable=YES104 chroot_list_file=/etc/vsftpd/chroot_list:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> lsls: Login failed: 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_listlftp westos@172.25.50.200:~> cd / cd: Login failed: 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_listlftp westos@172.25.50.200:~> exit服务端[root@server westos]# ll /etc/vsftpd/chroot_listls: cannot access /etc/vsftpd/chroot_list: No such file or directory[root@server westos]# touch /etc/vsftpd/chroot_list客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> cd /lftp westos@172.25.50.200:/> ls-rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> exit服务端[root@server westos]# vim /etc/vsftpd/chroot_list--------------------------------------------------westos:wq--------------------------------------------------客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:~> cd /cd ok, cwd=/lftp westos@172.25.50.200:/> lslrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bindr-xr-xr-x 4 0 0 4096 Jul 10 2014 bootdrwxr-xr-x 18 0 0 2800 Nov 18 01:00 devdrwxr-xr-x 134 0 0 8192 Nov 18 02:51 etcdrwxr-xr-x 5 0 0 46 Nov 18 02:44 homelrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/liblrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64drwxr-xr-x 2 0 0 6 Mar 13 2014 mediadrwxr-xr-x 2 0 0 6 Nov 18 02:19 mntdrwxr-xr-x 3 0 0 15 Jul 10 2014 optdr-xr-xr-x 131 0 0 0 Nov 18 00:59 procdr-xr-x--- 14 0 0 4096 Nov 18 03:48 rootdrwxr-xr-x 35 0 0 1140 Nov 18 02:33 runlrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbindrwxr-xr-x 2 0 0 6 Mar 13 2014 srvdr-xr-xr-x 13 0 0 0 Nov 18 00:59 sysdrwxrwxrwt 10 0 0 4096 Nov 18 03:42 tmpdrwxr-xr-x 13 0 0 4096 May 07 2014 usrdrwxr-xr-x 23 0 0 4096 Nov 18 00:59 varlftp westos@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:/> cd /lftp redhat@172.25.50.200:/> lslftp redhat@172.25.50.200:/> exit服务端[root@server westos]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------101 chroot_local_user=NO:wq--------------------------------------------------[root@server westos]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> cd /lftp westos@172.25.50.200:/> ls-rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:~> cd /cd ok, cwd=/lftp redhat@172.25.50.200:/> lslrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bindr-xr-xr-x 4 0 0 4096 Jul 10 2014 bootdrwxr-xr-x 18 0 0 2800 Nov 18 01:00 devdrwxr-xr-x 134 0 0 8192 Nov 18 02:51 etcdrwxr-xr-x 5 0 0 46 Nov 18 02:44 homelrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/liblrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64drwxr-xr-x 2 0 0 6 Mar 13 2014 mediadrwxr-xr-x 2 0 0 6 Nov 18 02:19 mntdrwxr-xr-x 3 0 0 15 Jul 10 2014 optdr-xr-xr-x 131 0 0 0 Nov 18 00:59 procdr-xr-x--- 14 0 0 4096 Nov 18 03:56 rootdrwxr-xr-x 35 0 0 1140 Nov 18 02:33 runlrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbindrwxr-xr-x 2 0 0 6 Mar 13 2014 srvdr-xr-xr-x 13 0 0 0 Nov 18 00:59 sysdrwxrwxrwt 10 0 0 4096 Nov 18 03:42 tmpdrwxr-xr-x 13 0 0 4096 May 07 2014 usrdrwxr-xr-x 23 0 0 4096 Nov 18 00:59 varlftp redhat@172.25.50.200:/> exit#####################<限制本地用户登陆>vim /etc/vsftpd/ftpusers ##用户永久黑名单vim /etc/vsftpd/user_list ##用户临时黑名单如果用户不设定密码就会被冻结禁止登陆####################服务端[root@server westos]# cd /etc/vsftpd/[root@server vsftpd]# lschroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh[root@server vsftpd]# vim ftpusers--------------------------------------------------在最后添加westos:wq--------------------------------------------------客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls ls: Login failed: 530 Login incorrect. ##直接提示登陆不正确lftp westos@172.25.50.200:~> exit[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:~> exit服务端[root@server vsftpd]# vim ftpusers--------------------------------------------------删除westos:wq--------------------------------------------------[root@server vsftpd]# vim user_list --------------------------------------------------在最后添加westos:wq--------------------------------------------------客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls ls: Login failed: 530 Permission denied. lftp westos@172.25.50.200:~> exit[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls lftp redhat@172.25.50.200:~> exit####################用户白名单设定userlist_deny=NO/etc/vsftpd/user_list ##参数设定此文件变成用户白名单只在名单中出现的用户可以登陆ftp####################服务端[root@server vsftpd]# man 5 vsftpd.conf-------------------------------------------------- userlist_deny This option is examined if userlist_enable is activated. If you set this setting to NO, then users will be denied login unless they are explicitly listed in the file specified by userlist_file. When login is denied, the denial is issued before the user is asked for a password. Default: YES--------------------------------------------------[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------128 userlist_deny=NO:wq--------------------------------------------------[root@server vsftpd]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westosPassword: lftp westos@172.25.50.200:~> ls -rw------- 1 1001 1001 850 Nov 18 03:16 group-rw-r--r-- 1 1001 1001 2005 Nov 18 02:52 passwdlftp westos@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u redhatPassword: lftp redhat@172.25.50.200:~> ls ls: Login failed: 530 Permission denied. lftp redhat@172.25.50.200:~> exit#####################<ftp虚拟用户的设定>创建虚拟帐号身份)vim /etc/vsftpd/loginusers ##文件名称任意ftpuser1123ftpuser2123ftpuser3123db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db-T ##表示转换-t ##指定加密方式vim /etc/pam.d/ckvsftpd ##文件名称任意account required pam_userdb.so db=/etc/vsftpd/loginusersauth required pam_userdb.so db=/etc/vsftpd/loginusersvim /etc/vsftpd/vsftpd.confpam_service_name=ckvsftpdguest_enable=YES虚拟帐号身份指定guest_username=ftpuserchmod u-w /home/ftpuser虚拟用户只在ftp上是本地用户####################服务端[root@server vsftpd]# vim /etc/vsftpd/userfile--------------------------------------------------westos1123westos2123westos3123:wq--------------------------------------------------[root@server vsftpd]# db_load -T -t hash -f userfile userfile.db[root@server vsftpd]# lschroot_list userfile user_list vsftpd_conf_migrate.shftpusers userfile.db vsftpd.conf[root@server vsftpd]# rm -fr userfile[root@server vsftpd]# cat userfile.dbD@&эh^123westos2[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------发现126 pam_service_name=vsftpd:q--------------------------------------------------[root@server vsftpd]# cat /etc/pam.d/vsftpd #%PAM-1.0session optional pam_keyinit.so force revokeauth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeedauth required pam_shells.soauth include password-authaccount include password-authsession required pam_loginuid.sosession include password-auth[root@server vsftpd]# find /usr -name pam_userdb.so/usr/lib64/security/pam_userdb.so[root@server vsftpd]# vim /etc/pam.d/westos--------------------------------------------------account required pam_userdb.so db=/etc/vsftpd/userfileauth required pam_userdb.so db=/etc/vsftpd/userfile--------------------------------------------------[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------修改126 pam_service_name=westos删除128 userlist_deny=NO添加129 guest_enable=YES130 guest_username=ftp ##默认就是ftp:wq--------------------------------------------------[root@server vsftpd]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westos1Password: lftp westos1@172.25.50.200:/> cd pub/lftp westos1@172.25.50.200:/pub> lslftp westos1@172.25.50.200:/pub> put /etc/passwd2005 bytes transferred lftp westos1@172.25.50.200:/pub> ls-rw------- 1 14 50 2005 Nov 18 08:14 passwdlftp westos1@172.25.50.200:/pub> exit[root@desktop ~]# lftp 172.25.50.200 -u westos2Password: lftp westos2@172.25.50.200:~> ls drwxrwxr-x 2 0 50 19 Nov 18 08:38 publftp westos2@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u westos3Password: lftp westos3@172.25.50.200:~> ls drwxrwxr-x 2 0 50 19 Nov 18 08:38 publftp westos3@172.25.50.200:/> exit####################虚拟帐号家目录独立设定vim /etc/vsftpd/vsftpd.conflocal_root=/ftpuserhome/$USERuser_sub_token=$USER####################服务端[root@server vsftpd]# mkdir /ftp/westos1 -p[root@server vsftpd]# mkdir /ftp/westos2 -p[root@server vsftpd]# mkdir /ftp/westos3 -p[root@server vsftpd]# touch /ftp/westos1/file1[root@server vsftpd]# touch /ftp/westos2/file2[root@server vsftpd]# touch /ftp/westos3/file3[root@server vsftpd]# echo $USERroot[root@server vsftpd]# su - student[student@server ~]$ echo $USERstudent[student@server ~]$ exitlogout[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf --------------------------------------------------131 local_root=/ftp/$USER132 user_sub_token=$USER:wq--------------------------------------------------[root@server vsftpd]# systemctl restart vsftpd.service客户端[root@desktop ~]# lftp 172.25.50.200 -u westos1Password: lftp westos1@172.25.50.200:~> ls -rw-r--r-- 1 0 0 0 Nov 18 08:50 file1lftp westos1@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u westos2Password: lftp westos2@172.25.50.200:~> ls -rw-r--r-- 1 0 0 0 Nov 18 09:01 file2lftp westos2@172.25.50.200:/> exit[root@desktop ~]# lftp 172.25.50.200 -u westos3Password: lftp westos3@172.25.50.200:~> ls -rw-r--r-- 1 0 0 0 Nov 18 09:01 file3lftp westos3@172.25.50.200:/> exit####################