阅读 156

FTP虚拟账号创建使用

FTP虚拟账号创建使用

1、环境规划


环境系统版本,以下内容简称主机为A机B机
A:CentOS 7.6 (172.20.10.4)
B:RedHat 8.2 (172.20.10.6)
A机建立上传测试文件 方便区分命名方式为‘系统简称+系统版本+虚拟账号简称’

[root@CentOS7-6 test]# ll-rw-r--r-- 1 root root 1819 May 19 12:34 CT7-6-1-rw-r--r-- 1 root root 1819 May 19 12:34 CT7-6-2


A机建立下载测试文件 方便区分命名方式为‘A机+虚拟账号简称’

[root@CentOS7-6 test]# ls /home/test/test1/A1.txt
[root@CentOS7-6 test]# ls /home/test/test2/A2.txt


B机建立上传测试文件 方便区分命名方式为‘系统简称+系统版本+虚拟账号简称’

[root@RedHat8-2 test]# ll-rw-r--r-- 1 root root 2123 May 19 12:34 RH8-2-1-rw-r--r-- 1 root root 2123 May 19 12:34 RH8-2-2


B机建立下载测试文件 方便区分命名方式为‘B机+虚拟账号简称’

[root@RedHat8-2 test]# ls /home/test/test1B1.txt
[root@RedHat8-2 test]# ls /home/test/test2B2.txt

2、测试内容结果简要描述


1)A机B机各创建宿主账号test shell为/sbin/nologin 家目录/home/test
2)各创建两个虚拟账号test1账号 家目录/home/test/test1、test2账号 家目录/home/test/test2
3)宿主账号禁止登录,虚拟账号登录锁定在自己的家目录
4)传输测试A机B机互为服务端客户端,对/test/下的文件进行上传测试,对服务端特定文件下载到客户端/test下
5)文件末尾描述vsftpd配置文件内容、以及黑白名单说明、虚拟用户独立权限文件内容说明

 

3、安装vsftp软件包,以及用于测试的ftp客户端

yum install -y vsftpd
yum install -y ftp


4、创建ftp宿主账号
我测试的是两个虚拟账号,虚拟账号限制在统一目录下单独的两个虚拟账号家目录中

useradd -s /sbin/nologin testmkdir /home/test/test1
mkdir /home/test/test2
chown test. /home/test/ -R

5、创建ftp日志文件并更改权限

touch /var/log/vsftpd.logchown test. /var/log/vsftpd.log

6、备份vsftpd配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

7、更改ftp配置文件

cat > /etc/vsftpd/vsftpd.conf << EOFanonymous_enable=NOlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/vsftpd.chroot_listguest_enable=YESguest_username=testlisten=NOlisten_ipv6=YESpam_service_name=vsftpduser_config_dir=/etc/vsftpd/vsftpd_user_confvsftpd_log_file=/var/log/vsftpd.logallow_writeable_chroot=YESEOF或者使用如下命令手动编辑添加sed '/\#/d' /etc/vsftpd/vsftpd.confsed '/\#/d' /etc/vsftpd/vsftpd.conf -ivi /etc/vsftpd/vsftpd.conf

8、创建白名单文件并写入账号,本次测试实体账号为test,虚拟账号为test1、test2

cat >> /etc/vsftpd/vsftpd.chroot_list << EOF
test1
test2
EOF

9、ftp虚拟账号密码文件,(基数行为账号,偶数行为密码)

cat >> /etc/vsftpd/vsftpd_user << EOF
test1
1qaz2wsx
test2
p@ssw0rd
EOF

10、将账号密码文件生成库文件(为了安全考虑,自行备份账号密码文件,待生成库文件之后可将账号密码文件删除)

db_load -T -t hash -f /etc/vsftpd/vsftpd_user /etc/vsftpd/vsftpd_user.dbchmod 600 /etc/vsftpd/vsftpd_user.db

11、添加pam认证

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak
cat /etc/pam.d/vsftpd|grep -v '#'|awk '{print "#"$0 >> "/etc/pam.d/vsftpd"}'cat /etc/pam.d/vsftpd|grep  '#'|awk '{print $0 > "/etc/pam.d/vsftpd"}'cat >> /etc/pam.d/vsftpd << EOF
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_user
account required pam_userdb.so db=/etc/vsftpd/vsftpd_user
EOF

12、配置虚拟账号权限文件

mkdir /etc/vsftpd/vsftpd_user_confcat > /etc/vsftpd/vsftpd_user_conf/test1 << EOFlocal_root=/home/test/test1write_enable=YESanon_umask=022anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESEOFcat > /etc/vsftpd/vsftpd_user_conf/test2 << EOFlocal_root=/home/test/test2write_enable=YESanon_umask=022anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESEOF

13、重启vsftpd服务

systemctl start vsftpdsystemctl status vsftpd

14、登录测试以及传输测试
1)建立测试目录并增加上传下载传输测试文件

主机A:CentOS 7.6:
mkdir /testcat /etc/profile >> /test/CT7-6-1
cat /etc/profile >> /test/CT7-6-2
cat /etc/profile >> /home/test/test1/A1.txt
cat /etc/profile >> /home/test/test2/A2.txt
chown test. /home/test/ -R
主机B:RedHat 8.2:
mkdir /testcat /etc/profile >> /test/RH8-2-1
cat /etc/profile >> /test/RH8-2-2
cat /etc/profile >> /home/test/test1/B1.txt
cat /etc/profile >> /home/test/test2/B2.txt
chown test. /home/test/ -R#两台主机均进入测试传输目录cd /test

2)A机B机互为服务端以及客户端登录测试

##B为客户端 A为服务端 ftp账号-test1、test2:[root@RedHat8-2 test]# ftp 172.20.10.4Connected to 172.20.10.4 (172.20.10.4).
220 (vsFTPd 3.0.2)Name (172.20.10.4:root): test1331 Please specify the password.Password:
230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> quit221 Goodbye.[root@RedHat8-2 test]# ftp 172.20.10.4Connected to 172.20.10.4 (172.20.10.4).
220 (vsFTPd 3.0.2)Name (172.20.10.4:root): test2331 Please specify the password.Password:
230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> quit221 Goodbye.

##A为客户端 B为服务端 登录ftp账号-test1、test2:[root@CentOS7-6 test]# ftp 172.20.10.6Connected to 172.20.10.6 (172.20.10.6).
220 (vsFTPd 3.0.3)Name (172.20.10.6:root): test1331 Please specify the password.Password:
230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> quit221 Goodbye.[root@CentOS7-6 test]# ftp 172.20.10.6Connected to 172.20.10.6 (172.20.10.6).
220 (vsFTPd 3.0.3)Name (172.20.10.6:root): test2331 Please specify the password.Password:
230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> quit221 Goodbye.

3)传输测试-A为客户端登录B机ftp用户tets1,A机test1上传测试文件‘CT7-6-1’ 下载测试文件B1.txt

#####上传:[root@CentOS7-6 test]# lsCT7-6-1  CT7-6-2[root@CentOS7-6 test]# ftp 172.20.10.6Connected to 172.20.10.6 (172.20.10.6).220 (vsFTPd 3.0.3)Name (172.20.10.6:root): test1331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (172,20,10,6,42,68).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt226 Directory send OK.ftp> put CT7-6-1 local: CT7-6-1 remote: CT7-6-1227 Entering Passive Mode (172,20,10,6,124,67).150 Ok to send data.226 Transfer complete.1819 bytes sent in 6.3e-05 secs (28873.02 Kbytes/sec)ftp> ls227 Entering Passive Mode (172,20,10,6,186,156).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt-rw-r--r--    1 1000     1000         1819 May 19 06:02 CT7-6-1226 Directory send OK.#####下载:ftp> ls227 Entering Passive Mode (172,20,10,6,53,40).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt-rw-r--r--    1 1000     1000         1819 May 19 06:02 CT7-6-1226 Directory send OK.ftp> get B1.txtlocal: B1.txt remote: B1.txt227 Entering Passive Mode (172,20,10,6,204,244).150 Opening BINARY mode data connection for B1.txt (2123 bytes).226 Transfer complete.2123 bytes received in 2.8e-05 secs (75821.42 Kbytes/sec)ftp> 221 Goodbye.[root@CentOS7-6 test]# lsB1.txt  CT7-6-1  CT7-6-2

4)传输测试-B为客户端登录A机ftp用户tets1,B机test1上传测试文件‘RH8-2-1’ 下载测试文件A1.txt

#####上传:[root@RedHat8-2 test]# lsRH8-2-1  RH8-2-2[root@RedHat8-2 test]# ftp 172.20.10.4Connected to 172.20.10.4 (172.20.10.4).220 (vsFTPd 3.0.2)Name (172.20.10.4:root): test1331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (172,20,10,4,245,200).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt226 Directory send OK.ftp> put RH8-2-1local: RH8-2-1 remote: RH8-2-1227 Entering Passive Mode (172,20,10,4,45,38).150 Ok to send data.226 Transfer complete.2123 bytes sent in 0.000107 secs (19841.12 Kbytes/sec)ftp> ls227 Entering Passive Mode (172,20,10,4,60,224).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1226 Directory send OK.#####下载:ftp> ls227 Entering Passive Mode (172,20,10,4,60,224).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1226 Directory send OK.ftp> get A1.txtlocal: A1.txt remote: A1.txt227 Entering Passive Mode (172,20,10,4,120,123).150 Opening BINARY mode data connection for A1.txt (1819 bytes).226 Transfer complete.1819 bytes received in 3.5e-05 secs (51971.43 Kbytes/sec)ftp> ls227 Entering Passive Mode (172,20,10,4,221,74).150 Here comes the directory listing.-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1226 Directory send OK.ftp> 221 Goodbye.[root@RedHat8-2 test]# lsA1.txt  RH8-2-1  RH8-2-2

15、vsftpd配置文件、黑白名单、虚拟用户权限文件内容说明

vsftpd配置文件:

anonymous_enable=NO         #关闭匿名用户local_enable=YES            #开启本地用户write_enable=YES            #开启读权限anon_upload_enable=NO       #禁止匿名用户上传anon_mkdir_write_enable=NO  #禁止匿名用户建立目录anon_other_write_enable=NO  #禁止匿名用户删除chroot_local_user=YES       #所有用户被锁定在自己的家目录(如关闭则chroot_list为黑名单)chroot_list_enable=YES      #使用户不能离开主目录(需要建立用户白名单文件)chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #用户白名单guest_enable=YES            #开启虚拟用户的功能guest_username=ftpuser1     #定义虚拟用户的宿主操作系统用户pam_service_name=vsftpd     #pam设置user_config_dir=/etc/vsftpd/vsftpd_user_conf  #指定虚拟用户权限配置文件,目录下每个虚拟账号一个同账号名的配置文件。vsftpd_log_file=/var/log/vsftpd.log           #vsftpd的服务日志保存路径,默认不存在allow_writeable_chroot=YES                    #若可以查看文件但无法上传下载,可尝试添加该选项

黑白名单:

黑白名单文件可自行定义存放位置,注意区别#用户白名单建立chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list  #chroot_list相当于白名单#用户黑名单建立chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list  #chroot_list相当于黑名单

虚拟用户权限文件内容:

参考如下内容进行适当修改:
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO 时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

来源:https://www.cnblogs.com/xiongty/p/14785146.html

服务器评测 http://www.cncsto.com/ 

服务器测评 http://www.cncsto.com/ 


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐