ftp文件共享服务实战

ftp文件共享服务

1.搭建只允许匿名用户访问文件共享服务器

1.1编辑配置文件/etc/vsftpd/vsftpd.conf
local_enable=NO
1.2测试
ftp 192.168.134.131

2.让本地用户登录时访问指定目录, 并不能跳出此目录

2.1编辑配置文件/etc/vsftpd/vsftpd.conf

写入(将注释去掉)

chroot_local_user=YES

并指定访问目录

local_root=data/
2.2测试
ftp 192.168.134.131

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection

遇到问题,原因是新版本的vsftpd增强了安全检查, 如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限 。

将主目录的写权限去除即可成功登陆

chmod a-x data/

无法切换目录

3.让匿名对某目录有权限上传文件

3.1创建目录并修改权限
mkdir /var/ftp/upload/
chmod o+w /var/ftp/upload/
3.2编辑配置文件

vi /etc/vsftpd/vsftpd.conf

anon_mkdir_write_enable=YES
anon_upload_enable=YES
3.3关闭selinux
setenforce 0
3.4测试

在128主机上用ftp连接131

连接之前清空下防火墙

ftp 192.168.134.131
[root@ansible_center ~] ftp 192.168.134.131
Connected to 192.168.134.131 (192.168.134.131).
220 (vsFTPd 3.0.2)
Name (192.168.134.131:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (192,168,134,131,90,78).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Apr 01 04:55 pub
drwxr-xrwx    2 0        0               6 May 18 12:50 upload
226 Directory send OK.
ftp> cd upload
250 Directory successfully changed.
ftp> put ftptest
local: ftptest remote: ftptest
227 Entering Passive Mode (192,168,134,131,227,58).
150 Ok to send data.
226 Transfer complete.
6 bytes sent in 8.8e-05 secs (68.18 Kbytes/sec)
ftp> exit
221 Goodbye.

在131主机上查看

[root@localhost ~]# ls /var/ftp/upload/
ftptest

4.让某普通用户对某个目录具有上传权限

在3的基础上用普通用户身份登录

[root@ansible_center ~] ftp 192.168.134.131
Connected to 192.168.134.131 (192.168.134.131).
220 (vsFTPd 3.0.2)
Name (192.168.134.131:root): alice
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/alice"
ftp> cd /var/ftp/upload
250 Directory successfully changed.
ftp> put ftptest
local: ftptest remote: ftptest
227 Entering Passive Mode (192,168,134,131,206,72).
150 Ok to send data.
226 Transfer complete.
6 bytes sent in 5.9e-05 secs (101.69 Kbytes/sec)
ftp> exit
221 Goodbye.

131查看

[root@localhost ~]# ls /var/ftp/upload/
ftptest

5.虚拟用户

相关文件
  • /var/tmp/vuser_ftp /var/tmp/vuser_ftp/cyy01 这是用户的登录目录,每个用户对应的子登录目录不同
  • /etc/vsftpd/vuser 用户名字与密码信息—>/etc/vsftpd/vuser.db 生成的数据库文件
  • /etc/vsftpd/vconf.d /etc/vsftpd/vconf.d/cyy-1 用户子配置文件
  • /etc/pam.d/vftp pam登录验证文件
5.1修改配置文件

vi /etc/vsftpd/vsftpd.conf

guest_enable=YES #允许虚拟用户
guest_username=zhangsan #虚拟用户名	所有系统账号登录后都将映射为此虚拟账号
virtual_use_local_privs=NO# 禁止虚拟用户和本地用户权限一致
user_config_dir=/etc/vsftpd/vconf.d/#在这文件夹下,配置文件和登陆名相同即可。与后面配置文件对应
pam_service_name=vftp #pam配置文件
5.2创建虚拟账号及对应分登录目录
useradd -s /sbin/nologin -d  /var/tmp/vuser_ftp  zhangsan#增加用户。-s指定shell.-d指定登录起始目录
chmod 500 /var/tmp/vuser_ftp #设置主目录
mkdir /var/tmp/vuser_ftp/cyy01 #设置分目录,供不同ftp用户使用。
mkdir /var/tmp/vuser_ftp/cyy02
chmod 700 /var/tmp/vuser_ftp/ *
chown zhangsan.zhangsan  /var/tmp/vuser_ftp -R	#-R 递归处理,将指定目录下的所有文件及子目录一并处理
5.3建立用户数据库文件

vi /etc/vsftpd/vuser

cyy-1 #奇数行是ftp用户
123 #偶数行是密码
cyy-2
456

生成数据库文件

db_load -T -t hash -f /etc/vsftpd/vuser  /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db

db_load编译文件

-T允许应用程序能够将文本文件转译载入进数据库。

-t hash使用hash码加密

-f 指定包含用户名和密码文本文件。此文件格式要示:奇数行用户名、偶数行密码

5.4修改pam配置文件

vi /etc/pam.d/vftp

#在开头增加
auth sufficient    /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account   sufficient    /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
5.5建立子配置文件(即为每个虚拟用户配置文件)
mkdir /etc/vsftpd/vconf.d

vi /etc/vsftpd/vconf.d/cyy-1

local_root=/var/tmp/vuser_ftp/cyy01#指定主目录(该用的家目录)
anon_upload_enable=YES#开放上传权限
anon_mkdir_write_enable=YES#开放创建目录权限
anon_other_write_enable=YES#开放删除和重命名目录的权限

vi /etc/vsftpd/vconf.d/cyy-2

local_root=/var/tmp/vuser_ftp/cyy02#指定主目录(该用户的家目录)
anon_upload_enable=YES#开放上传权限
anon_mkdir_write_enable=YES#开放创建目录权限
anon_other_write_enable=YES#开放删除和重命名目录的权限
5.6测试

在cyy-1的用户家目录下创建测试文件

cd /var/tmp/vuser_ftp/cyy01
touch 123

在cyy-2的用户家目录下创建测试文件

cd /var/tmp/vuser_ftp/cyy02
touch 456

在128主机上用cyy-1登录

[root@ansible_center ~] ftp 192.168.134.131
Connected to 192.168.134.131 (192.168.134.131).
220 (vsFTPd 3.0.2)
Name (192.168.134.131:root): cyy-1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,134,131,58,80).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 May 19 06:40 123
226 Directory send OK.

在128主机上用cyy-2登录

[root@ansible_center ~] ftp 192.168.134.131
Connected to 192.168.134.131 (192.168.134.131).
220 (vsFTPd 3.0.2)
Name (192.168.134.131:root): cyy-2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,134,131,55,241).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 May 19 06:41 456
226 Directory send OK.
[root@ansible_center ~] ftp 192.168.134.131
Connected to 192.168.134.131 (192.168.134.131).
220 (vsFTPd 3.0.2)
Name (192.168.134.131:root): cyy-2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,134,131,55,241).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 May 19 06:41 456
226 Directory send OK.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值