Linux学习第九单元-部署ftp文件共享服务

第九单元-部署ftp文件共享服务

一、FTP服务器部署

1.认识:
FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法
• 在 RED HAT ENTREPRISE LINUX 6 中。 FTP 服务器包的名称为VSFTPD , 它代表 Very Secure File TransferProtocol Damon 服务器名称也叫做vsftpd

• 默认配置文件让 ANONYMOUS 用户只能下载位于CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP客户端能以用户 anonymous 或 ftp 身份连接到服务器( 无需密码 ), 并从 ftp 服务器上的 /var/ftp/ 目录下载文件( 其本地 ftp 用户可以读取这些文件 )

2.安装服务软件vsftpd
提前务必设置yum源
yum install vsftpd  -y

3.启动服务
systemctl start vsftpd  
systemctl enable vsftpd
内核防火墙设置:
[root@localhost network-scripts]# getenforce  ##查看内核防火墙状态
Enforcing
[root@localhost network-scripts]# setenforce 0  ##设置为警告模式
[root@localhost network-scripts]# getenforce  ##查看状态确定在警告模式
Permissive

设置防火墙可以通过ftp服务的进行
[root@localhost yum.repos.d]# firewall-cmd --list-all  ##列出防火墙可以允许进行的外界交互的服务
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
    
[root@localhost yum.repos.d]# firewall-cmd --permanent --add-service=ftp  ##增加服务ftp
success
[root@localhost yum.repos.d]# firewall-cmd --reload
success  ##重新加载防火墙
[root@localhost yum.repos.d]# firewall-cmd --list-all  ##再次列出服务,发现ftp服务建立成功
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ftp ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
    

4.测试服务
lftp ip                ##能登陆并且显示,表示安装成功
[kiosk@foundation98 Desktop]$ lftp 172.25.254.198
lftp 172.25.254.198:~> ls
drwxr-xr-x    2 0        0               6 Aug 03  2015 pub
lftp 172.25.254.198:/>
测试成功

二、FTP服务器配置/etc/vsftpd/vsftpd.conf【修改完务必重启vsftpd服务】

1.匿名用户设定
#<匿名用户登陆限制>
nonymous_enable=YES|NO    
示图:匿名用户登陆

#<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
示图:匿名用户上传文件内容

测试是否成功
[kiosk@foundation98 Desktop]$ lftp 172.25.254.198
lftp 172.25.254.198:~> ls
drwxr-xr-x    2 0        0               6 Aug 03  2015 pub
lftp 172.25.254.198:/> cd pub
lftp 172.25.254.198:/pub> put /etc/passwd
put: Access failed: 553 Could not create file. (passwd)  ##553 文件系统禁止此项操作
lftp 172.25.254.198:/pub> ##上传失败

修改目录权限实现上传

[root@localhost ~]# chgrp ftp /var/ftp/pub
[root@localhost ~]# chmod 775 /var/ftp/pub
[root@localhost ~]# ls -l /var/ftp
total 0
drwxrwxr-x. 2 root ftp 6 Aug  3  2015 pub

示图:测试匿名用户上传结果

#<匿名用户上传文件默认权限修改>
anon_umask=xxx

示图:匿名用户上传文件默认权限文件内容


示图:匿名用户上传文件默认权限

#<匿名用户使用的用户身份和权限修改>
chown_uploads=YES
chown_username=student
chown_upload_mode=xxx

示图:匿名用户使用用户身份上传文件


lftp 172.25.254.198:/pub> put /etc/profile
1750 bytes transferred     
lftp 172.25.254.198:/pub> ls
-rw-rw-r--    1 14       50            993 Apr 26 12:03 group  ##第一次所设置的默认权限002上传得到的文件
-rw-------    1 14       50           2367 Apr 26 11:59 passwd  ##未设置默认权限上传的文件,权限为系统自定义先前设置的
-rw-r--r--    1 1001     50           1750 Apr 26 12:08 profile  ##为本次设置的权限后上传的文件,uid为westos用户的uid


#<匿名用户家目录修改>
anon_root=/direcotry
匿名用户默认家目录为:/var/ftp/pub
示图:更改匿名用户家目录配置文件修改

[root@localhost etc]# touch /home/westos/westosfile  ##在/home/westos建立文件用来标识在此目录下
[root@localhost etc]# cd /home
[root@localhost home]# ls
student  westos
[root@localhost home]# cd westos
[root@localhost westos]# ls
westosfile
[root@localhost home]# chmod 755 westos  ##修改westos目录权限针对其他人和组为可读可行
[root@localhost home]# systemctl restart vsftpd  ##重启vsftpd服务
示图:更改匿名用户家目录登陆验证

#<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO
未修改配置文件前测试:
lftp 172.25.254.198:/> mkdir test
mkdir: Access failed: 550 Permission denied. (test)  ##550 用户禁止操作此项操作
lftp 172.25.254.198:/>

示图:匿名用户建立目录配置文件修改


示图:匿名用户建立目录测试

#<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为NO表示匿名用户可以下载
未设置前测试结果:
lftp 172.25.254.198:/pub> get passwdd
get: Access failed: 550 Failed to open file. (passwdd)
lftp 172.25.254.198:/pub>

示图:匿名用户下载配置文件修改内容


示图:匿名用户下载测试


#<匿名用户删除>
anon_other_write_enable=YES|NO    
未设置前测试结果:
lftp 172.25.254.198:/pub> rm passwd
rm: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.198:/pub>

示图:匿名用户删除配置文件修改


示图:匿名用户删除测试


#<最大上传速率>
anon_max_rate=102400  ##每秒100k速度
未设置前测试结果:
lftp 172.25.254.198:/> cd pub
lftp 172.25.254.198:/pub> ls
-rw-rw-r--    1 14       50            993 Apr 26 12:03 group
-rw-r--r--    1 1001     50           1750 Apr 26 12:08 profile
drwxrwxr-x    2 14       50              6 Apr 26 12:30 test
lftp 172.25.254.198:/pub> put /mnt/bigfile
524288000 bytes transferred in 16 seconds (30.62M/s)           ##每秒30.62M的速度传送

示图:最大上传速率配置文件修改


示图:最大上传速率测试【速度很慢】



#<最大链接数>
max_clients=2  ##连接个数最多为两个,其他会被禁止

2.本地用户设定
#<本地用户登陆限制>
local_enable=YES|NO

#<本地用户写权限限制>        
write_enable=YES|NO  ##建立目录        

#<本地用户家目录修改>
local_root=/directory  ##默认为登陆的家用户为主目录

#<本地用户上传文件权限>
local_umask=xxx

示图:家用户配置文件修改

示图:家用户登陆测试

#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

示图:未修改之前登陆用户可以进入任何目录


示图:家目录活动范围配置文件修改


[root@localhost vsftpd]# ls -l /home  ##查看家目录权限,使家目录用户失去写权限
total 4
drwx------. 4 student student   84 Jul 10  2014 student
drwxr-xr-x. 5 westos  ftp     4096 Apr 27 03:40 westos
[root@localhost vsftpd]# chmod  u-w /home/*

示图:更改之后家目录活动范围测试

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

示图:用户活动范围黑名单建立配置文件


示图:用户活动范围黑名单测试

可进入其他目录用户student


不可进入其他目录用户westos


用户白名单建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

示图:测试

可进入其他目录用户westos


其他不可进入其他目录


#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers        ##用户黑名单
vim /etc/vsftpd/user_list        ##用户临时黑名单

示图:ftpusers文件修改


示图:user_list修改


示图:测试

可登陆用户student


永久黑名单用户wetsos


临时黑名单用户lee

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list            ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

示图:vsftpd配置文件修改


示图:测试
其他用户wetsos,student全部不可登陆,除了白名单用户lee

3.ftp虚拟用户的设定

#创建虚拟帐号身份

vim /etc/vsftpd/loginusers    ##文件名称任意
user1
123
user2
123
user3
123

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

vim /etc/pam.d/ftpuser        ##文件名称任意
account        required    pam_userdb.so    db=/etc/vsftpd/loginusers
auth        required    pam_userdb.so    db=/etc/vsftpd/loginusers

vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpuser
guest_enable=YES

#虚拟帐号身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser

/etc/vsftpd/vsftpd.conf中文件修改
129 listen_ipv6=YES
130
131 pam_service_name=ftpuser  ##指定登陆用户来源文件为ftpuser
132 userlist_enable=YES
133 guest_enable=YES
134 guest_username=westos  ##登陆的虚拟用户家目录在westos用户的家目录
135 #userlist_deny=NO
136 tcp_wrappers=YES

[root@localhost vsftpd]# vim loginusers  ##建立虚拟用户文件,写入虚拟用户以及密码
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db  ##加密虚拟用户文件

[root@localhost vsftpd]# cd /etc/pam.d
[root@localhost pam.d]# vim ftpuser
/etc/pam.d/ftpuser文件内容
account  required pam_userdb.so  db=/etc/vsftpd/loginusers  ##required:用户需要被检查,用pam_userdb.so检查用户,
auth     required pam_userdb.so  db=/etc/vsftpd/loginusers

示图:虚拟用户登陆测试

#虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER

mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/user{1..3}
示图:虚拟用户家目录独立测试

#虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf

vim /etc /vsftpd/userconf/user1
在此文件中设定配置文件中的所有参数,此文件的优先级高
测试:
/etc /vsftpd/userconf/user1
anon_upload_enable=YES  ##允许user1上传,务必提前修改要写入的目录组和权限
示图:user1

/etc /vsftpd/userconf/user2
nonymous_enable=NO  ##不许user2登陆
示图:user2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值