Linux下的FTP服务

FTP服务器部署

FTP服务器配置

设置网络和yum源
设置网路nm-connection-editor
设定名称hostnamectl set-hostname server3.example.com
yum install vsftpd -y(相当于阿帕奇)
yum install lftp -y(相当于浏览器)
启动ftpd服务
systemctl start vsftpd
systemctl enable vsftpd

设置内核配置
vim /etc/sysconfig/selinux
SELINUX=disabled
重启

firewall-cmd –permanent –add-service=ftp
success //更改防火墙设置为永久,启动服务ftp
firewall-cmd –reload
success //更改防火墙设置加载
或者
firewall-config 在图形界面里设置
Configuration设置为permanent
下方列表中添加ftp
Options中reload
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对第七行进行修改,然后重启
在这里插入图片描述
在这里插入图片描述
重启后安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成后,测试一下

在这里插入图片描述

lftp操作

下面的实验我是用一台虚拟机和一台真机做的
在这里插入图片描述这台虚拟机做的配置端
用真机来测试

ftp服务的基本信息
软件安装包     vsftpd
默认发布目录   /var/ftp
服务配置文件   /etc/vsftpd/vsftpd.conf 
重启服务       systemctl restart vsftpd

在这里插入图片描述

  anonymous_enable=YES(第12行)匿名用户是否可以登录 
  local_enable=YES(第16行)为本地用户是否可以登录 
  write_enable=YES(第19行)为本地用户能否可写 
  local_umask=xxx  (第23行)本地用户上传文件权限
  anon_upload_enable=YES(第29行)为匿名用户可以上传 默认目录 /var/ftp/
  anon_umask=xxx  (加在13行)  为匿名用户上传文件默认权限修改
  anon_mkdir_write_enable=YES(第33行)匿名用户建立目录
  anon_world_readable_only=NO(加在35)匿名用户下载 ##设置NO表示可以下载
  anon_other_write_enable=YES(加在15)匿名用户删除
  anon_root=/x   (加在16)设定匿名用户家目录
  max_clients=x (加在14行)表示最大可连接数
  anon_max_rate=x (加在15行)【单位是字节】表示最大速度
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  chown_uploads=YES (第53行)开启上传文件的所有人
  chown_username=whoever (第54行)设定上传文件的所有人
  chown_upload_mode=0755 (加在55行 )设定上传的权限
  xferlog_std_format=YES
  local_root=/dir  (加在21) 本地用户家目录修改
  chroot_local_user=YES  (第107行)所有用户被锁定到自己的家目录中
  chroot_list_enable=YES (第108行)  启动列表[黑/白名单]
  chroot_list_file=/etc/vsftpd/chroot_list(第110行) 开启名单文件
  userlist_enable=YES (第130行)  列表生效
  userlist_deny=NO (加在131)将黑名单变成白名单
  user_config_dir=/etc/vsftpd/userconf (加) 虚拟用户配置指定文件
  pam_service_name=x(加) 这里的x和之前建立的虚拟用户文件名一致
  guest_enable=YES  (加)  虚拟用户生效
  guest_username=ftp  ##默认是以ftp用户身份登陆

在服务端添加用户
在这里插入图片描述
用真机使用服务端里面的本地用户登陆
在这里插入图片描述
在这里插入图片描述
19行 write_enable改为NO
在这里插入图片描述
在这里插入图片描述
本地用户默认是可以上传下载。但是匿名用户不可以
在这里插入图片描述
测试匿名用户登陆
在这里插入图片描述
匿名用户上传

vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_uoload_enable=YES
systemctl restart vsftpd
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

29行 anon_upload_enable取消注释
在这里插入图片描述

可以看到
上传报错由550变成553了
继续配置

在这里插入图片描述
在这里插入图片描述
设置匿名用户上传文件权限
第13行添加anon_umask=044
实验结果上传文件的权限应该是622
不能改为033.因为这样的话,文件的权限变成了777-033-111=633,但是系统对于其他用户是不给执行权限的,所以就会失效
在这里插入图片描述
设置匿名用户上传文件速度
第15行 添加 anon_max_rate=204800
【单位是字节即200k】表示最大速度
注意如果文件太小,会看不到上传过程哦
在这里插入图片描述
在这里插入图片描述
匿名用户下载

vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO可以下载
systemctl restart vsftpd
下载和权限无关哦
但是只能下载/var/ftp/ 这个目录下的东西
与上传区别,但是上传地址还是/var/ftp/
在这里插入图片描述
在这里插入图片描述

匿名用户建立目录

vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES(33行)
systemctl restart vsftpd

在这里插入图片描述

匿名用户的家目录设定

vim /etc/vsftpd/vsftpd.conf
anon_root=/x ## 其中x是服务端已经存在的目录
systemctl restart vsftpd

本地用户家目录设定

vim /etc/vsftpd/vsftpd.conf
local_root=/x ## 其中x是服务端已经存在的目录
systemctl restart vsftpd

本地用户锁定在自己的家目录中
产生的效果是只能看到/home

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES !!锁定 108行
systemctl restart vsftpd
chmod u-w /home/*
!!去除家目录所有的写权限,否则会报500权限过大错误

限制本地用户浏览根目录
产生的效果是不允许的用户只能被锁定在家目录

    vim /etc/vsftpd/vsftpd.conf
    chroot_list_enable=YES  ##启动列表

chroot_local_user=YES ##锁住了 ,下面是白名单
chroot_list_file=/etc/vsftpd/chroot_list ##指定白名单名称
chroot_local_user=NO ##没有锁 ,下面是黑名单
chroot_list_file=/etc/vsftpd/chroot_list ##指定黑名单名称
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
chmod u-w /home/*
##去除家目录所有的写权限,否则会报500权限过大错误

注意:这是黑名单
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
限制本地用户登陆

用户登陆黑名单设定
vim /etc/vsftpd/ftpusers    ##用户黑名单
vim /etc/vsftpd/user_list   ##临时黑名单

用户登陆白名单设定
vim   /etc/vsftpd/vsftpd.conf 
userlist_deny=NO
systemctl restart vsftpd
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

设定上传文件的所有人
产生的效果是文件的所有人id是设置的所有人id

vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES 有这项才可有下面的两项
chown_username=student 更改为student
id student查看UID
systemctl restart vsftpd

最大链接数

vim /etc/vsftpd/vsftpd.conf
max_clients=2
systemctl restart vsftpd

FTP虚拟用户的设定

vim /etc/vsftpd/anyfile

ftpuser1
mima
ftpuser2
mima
ftpuser3
mima

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

vim /etc/pam.d/ftpany  注意:有的机子中没有装pam,可以yum search all | pam 查看

account required pam_userdb.so db=/etc/vsftpd/anyfile ##账户
auth required pam_userdb.so db=/etc/vsftpd/anyfile ##密码

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftany
guest_enable=YES
guest_username=ftp ##默认是以ftp用户身份登陆

指定虚拟账户的用户身份

guest_username=存在的用户
chmod u-w /home/存在的用户
注意:虚拟用户和真实的本地用户是互相冲突的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虚拟帐号家目录独立设定

mkdir /ftphome/dabao -p
touch /ftphome/dabao/dabaofile

vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
虚拟帐号配置独立
产生的效果就是虚拟用户可以上传等

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36016375/article/details/89365064
今日推荐