vsftbd服务器的部署和优化

实验环境

虚拟机准备工作:

 hostnamectl set-hostname westos_ftp.westos.org   ##更改虚拟机网络名称
    3  cd /etc/sysconfig/network-scripts/  
    5  vim ifcfg-ens3   ####编写虚拟主机westosa的网卡配置文件
   //编写内容
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.111   ##设定其ip为172.25.254.111
PREFIX=24
NAME=westos
   //
    6  nmcli connection delete Wired\ connection\ 1  ##删除多余网络
    7  nmcli connection reload  ##重启网络
    9  nmcli connection up westos  #上载
   10  cd /etc/yum.repos.d/
   11  ls
   12  vim westos.repo   ##编辑repo文件,修改下载软件地址
   13  vim /etc/sysconfig/selinux 
//编写内容
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled    ##主要修改此条
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
//
   14  systemctl set-default multi-user.target ##使用无图模式,节约硬盘
   15  reboot  ##重启

vsftpd安装及启用

 ftp:file transfer proto
互联中最老牌的文件传输协议

22  dnf install vsftpd.x86_64 lftp.x86_64  -y   ##安装
   23  systemctl enable --now vsftpd     ##开启服务
  
   25   vim /etc/vsftpd/vsftpd.conf   ##编写配置文件
//
anonymous_enable=YES                   ##启动匿名用户的访问功能
//
   26  systemctl restart vsftpd   ##重启服务
   27  firewall-cmd --permanent --add-service=ftp   ##在系统防火墙中永久开启 ftp 访问
   28  firewall-cmd --reload  ##刷新防火墙使设定生效
   [root@westos_ftp yum.repos.d]# firewall-cmd --list-all ##查看防火墙
  public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources: 
  services: cockpit dhcpv6-client ftp ssh   ##允许ftp服务,可以进行ftp访问
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

vsftpd服务的基本信息


服务名称    vsftpd.service
配置目录    /etc/vsftpd
主配置文件    /etc/vsftpd/vsftpd.conf
默认发布目录    /var/ftp

除上述基本信息之外,在我们访问FTP服务的过程中,系统会提示报错信息,其对应含义如下:
报错    含义
550    服务程序本身拒绝
553    文件系统权限限制
500    文件系统权限过大
530    认证失败

本地用户的访问

准备工作:  两个用户

[root@westosb ~]# useradd lee
[root@westosb ~]# useradd westos
useradd: user 'westos' already exists
[root@westosb ~]# echo lee | passwd --stdin westos
Changing password for user westos.
passwd: all authentication tokens updated successfully.
[root@westosb ~]# echo lee | passwd --stdin lee
Changing password for user lee.
passwd: all authentication tokens updated successfully.

编写主配置文件    /etc/vsftpd/vsftpd.conf

local_enable=YES     ##本地用户可以访问

虚拟用户的访问

建立虚拟用户

[root@westosb vsftpd]# vim /etc/vsftpd/westos_pam       ##建立认证文件模板
//
user1
123
user2
123
user3
123
//
[root@westosb vsftpd]# db_load -T -t hash -f westos_pam westos_pam.db

[root@westosb vsftpd]# vim /etc/pam.d/westos
//
 account   required      pam_userdb.so       db=/etc/vsftpd/westos_pam
 auth  required         pam_userdb.so       db=/etc/vsftpd/westos_pam
//
[root@westosb vsftpd]# vim /etc/vsftpd/vsftpd.conf 
//
 #local_root=/westosdir   ##如果没有注释,要注意权限的问题,不要有写权限
pam_service_name=westos     ##指定认证策略文件
129 userlist_enable=YES
130 #userlist_deny=NO
131 guest_enable=YES    ##指定虚拟用户功能开启
132 guest_username=ftp     ##指定虚拟用户在ftp服务器上的用户身份
//
[root@westosb vsftpd]# systemctl restart vsftpd

最终可以正常登陆虚拟用户即成功。

虚拟用户家目录独立

 

[root@westosb ~]# mkdir -p /ftphome/user{1..3}
[root@westosb ~]# touch /ftphome/user1/user1file
[root@westosb ~]# touch /ftphome/user2/user2file
[root@westosb ~]# touch /ftphome/user3/user3file
[root@westosb ~]# mkdir /ftphome/user{1..3}/pub
[root@westosb ~]# ls -l /ftphome/user{1..3}
/ftphome/user1:
total 0
drwxr-xr-x 2 root root 6 Jul 30 11:55 pub
-rw-r--r-- 1 root root 0 Jul 30 11:54 user1file

/ftphome/user2:
total 0
drwxr-xr-x 2 root root 6 Jul 30 11:55 pub
-rw-r--r-- 1 root root 0 Jul 30 11:54 user2file

/ftphome/user3:
total 0
drwxr-xr-x 2 root root 6 Jul 30 11:55 pub
-rw-r--r-- 1 root root 0 Jul 30 11:54 user3file
[root@westosb ~]# vim /etc/vsftpd/vsftpd.conf 
//最后几行
local_root=/ftphome/$USER
user_sub_token=$USER
//
[root@westosb ~]# systemctl restart vsftpd

检验成果:

[root@westosb ~]# lftp 172.25.254.211
lftp 172.25.254.211:~> ls
drwxr-xr-x    2 0        0               6 Feb 17  2020 pub
lftp 172.25.254.211:/> quit
[root@westosb ~]# lftp 172.25.254.211 -u user1
Password: 
lftp user1@172.25.254.211:~> ls                    
drwxr-xr-x    2 0        0               6 Jul 30 03:55 pub
-rw-r--r--    1 0        0               0 Jul 30 03:54 user1file
lftp user1@172.25.254.211:/> quit

虚拟用户配置独立

[root@westosb ~]# chgrp ftp /ftphome/user{1..3}/pub
[root@westosb ~]# chmod 775 /ftphome/user{1..3}/pub
[root@westosb ~]# vim /etc/vsftpd/vsftpd.conf  (图36-图54)

[root@westosb ~]# systemctl restart vsftpd
[root@westosb ~]# mkdir /etc/vsftpd/westos
mkdir: cannot create directory ‘/etc/vsftpd/westos’: File exists
[root@westosb ~]# rm -fr  /etc/vsftpd/westos
[root@westosb ~]# mkdir /etc/vsftpd/westos

[root@westosb ~]# vim /etc/vsftpd/westos/user1 (图46-1)
[root@westosb ~]# systemctl restart vsftpd

检验成果:

[root@westosb vsftpd]# lftp 172.25.254.211 -u user2
Password: 
lftp user2@172.25.254.211:~> ls                    
drwxrwxr-x    2 0        50             20 Jul 30 05:51 pub
-rw-r--r--    1 0        0               0 Jul 30 03:54 user2file
lftp user2@172.25.254.211:/> cd /pub
lftp user2@172.25.254.211:/pub> p
Ambiguous command `p'.
lftp user2@172.25.254.211:/pub> ls
-rw-------    1 14       50           2701 Jul 30 05:51 passwd
lftp user2@172.25.254.211:/pub> put /etc/group
put: /etc/group: Access failed: 550 Permission denied. (group)
lftp user2@172.25.254.211:/pub> quit
[root@westosb vsftpd]# lftp 172.25.254.211 -u user1
Password: 
lftp user1@172.25.254.211:~> ls                    
drwxrwxr-x    2 0        50              6 Jul 30 03:55 pub
-rw-r--r--    1 0        0               0 Jul 30 03:54 user1file
lftp user1@172.25.254.211:/> cd /pub
lftp user1@172.25.254.211:/pub> ls
lftp user1@172.25.254.211:/pub> put /etc/passwd
2701 bytes transferred
lftp user1@172.25.254.211:/pub> ls
-rw-r--r--    1 14       50           2701 Jul 30 06:02 passwd
lftp user1@172.25.254.211:/pub> quit
[root@westosb vsftpd]# lftp 172.25.254.211 -u user3
Password: 
lftp user3@172.25.254.211:~> ls                    
drwxrwxr-x    2 0        50              6 Jul 30 03:55 pub
-rw-r--r--    1 0        0               0 Jul 30 03:54 user3file
lftp user3@172.25.254.211:/> cd /pub
lftp user3@172.25.254.211:/pub> ls
lftp user3@172.25.254.211:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值