侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

linux vsftp 搭建

2023-12-05 星期二 / 0 评论 / 0 点赞 / 70 阅读 / 11503 字

1.查看linux系统版本和内核信息 [root@vmware1 ~]# cat /etc/issue CentOS release 6.7(Final) Kernel /r on an /m 2.关

1.查看linux系统版本和内核信息
[root@vmware1 ~]# cat /etc/issue 
CentOS release 6.7(Final) 
Kernel /r on an /m 

2.关闭防火墙和selinux

[root@vmware1 ~]# /etc/init.d/iptables stop 
[root@vmware1 ~]# chkconfig iptables off 
[root@vmware1 ~]# setenforce 0

3.安装vsftp软件包
[root@vmware1 ~]# yum install -y vsftpd

先备份vsftpd的默认配置文件;
[root@vmware1 ~]# cd /etc/vsftpd/ 
[root@vmware1 vsftpd]# cp vsftpd.conf vsftpd.conf.bak

4.清空vsftpd.cong默认的内容
root@vmware1 vsftpd]# >vsftpd.conf

5.修改后的内容为:
[root@vmware1 vsftpd]# vi vsftpd.conf 
anonymous_enable=NO                    #不允许匿名用户登陆 
local_enable=YES                   #vsftpd所在系统的用户可以登录vsftpd 
write_enable=YES             #允许使用任何可以修改文件系统的FTP的指令 
local_umask=002                        #匿名用户新增文件的umask数值 
anon_upload_enable=NO                  #匿名用户不可以上传文件 
anon_mkdir_write_enable=NO            #匿名用户不可以修改文件 
xferlog_enable=YES       #启用一个日志文件,用于详细记录上传和下载。
use_localtime=YES                      #使用本地时间而不是GMT 
vsftpd_log_file=/var/log/vsftpd.log    #vsftpd日志存放位置 
dual_log_enable=YES                    #用户登陆日志 
connect_from_port_20=YES              #开启20端口      
xferlog_file=/var/log/xferlog          #记录上传下载文件的日志 
xferlog_std_format=YES                #记录日志使用标准格式 
idle_session_timeout=600              #登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。 
chroot_local_user=YES                  #用于指定用户列表文件中的用户,是否允许切换到上级目录      
listen=YES                            #开启监听 
pam_service_name=vsftpd.vu            #验证文件的名字 
userlist_enable=YES                    #允许由userlist_file指定文件中的用户登录FTP服务器                    
tcp_wrappers=YES                      #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) 
guest_enable=YES                      #起用虚拟用户 
guest_username=ftp               #虚拟用户名 
user_config_dir=/etc/vsftpd/vsftpuser  #虚拟用户配置文件路径 
pasv_min_port=35000  
pasv_max_port=45000 
pasv_enable=YES 
pasv_promiscuous=YES 
anon_other_write_enable=YES

reverse_lookup_enable=NO #ftp登陆慢的解决方法

6.创建ftp访问的目录,创建本地ftp用户,设置密码。
[root@vmware1 vsftpd]# mkdir /data/share -p 
创建用户joly. 
[root@vmware1 vsftpd]# useradd cs 
[root@vmware1 vsftpd]# passwd cs 密码:cs123456
更改用户cs的密码 。  
新的 密码: 
重新输入新的 密码: 
passwd: 所有的身份验证令牌已经成功更新。 
给share目录,设置成 
[root@vmware1 vsftpd]# chown -R ftp.ftp /home/ftp/1520
[root@vmware1 vsftpd]# ll /home/ftp/

total 4

drwxrwxrwx. 3 ftp ftp 4096 Apr 26 20:52 1520

7.安装db4数据包,一会生成数据库文件时候用,安装ftp客户端
[root@vmware1 ~]# yum install -y db4* 
[root@vmware1 vsftpd]# yum install -y ftp

8.创建一个匿名账号.
[root@vmware1 ~]# cd /etc/vsftpd 
[root@vmware1 vsftpd]# echo "cs">vftpuser.txt 
[root@vmware1 vsftpd]# echo "cs123456">>vftpuser.txt      
[root@vmware1 vsftpd]# vi vftpuser.txt 
cs
cs123456
[root@vmware1 vsftpd]# db_load -T -t hash -f vftpuser.txt vftpuser.db            
[root@vmware1 vsftpd]# ll vftpuser.db  
-rw-r--r--. 1 root root 12288 Apr 26 21:00 vftpuser.db

9.添加验证信息,在/etc/pam.d目录下,新创建一个vsftpd.vu文件,写入内容如下
[root@vmware1 vsftpd]# cat /etc/pam.d/vsftpd.vu 
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

10.创建虚拟用户的配置文件
[root@vmware1 ~]# cd /etc/vsftpd/ 
[root@vmware1 vsftpd]# mkdir vsftpuser 
[root@vmware1 vsftpd]# cd vsftpuser/ 
[root@vmware1 vsftpuser]# touch cs

 

备注:此配置文件末尾不能有空格

[root@vmware1 vsftpuser]# cat cs 
local_root=/data/share
write_enable=YES 
anon_mkdir_write_enable=YES 
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_umask=022 
anon_other_write_enable=YES

11.重启vsftpd,然后查看端口是否开启
[root@vmware1 ~]# service vsftpd restart      
关闭 vsftpd:                                              [确定] 
为 vsftpd 启动 vsftpd:                                    [确定] 
[root@vmware1 ~]# netstat -anpt | grep vsftpd 
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                  LISTEN      2191/vsftpd

12.在本地ftp服务器登陆测试
[root@vmware1 ~]# ftp 127.0.0.1 
Connected to 127.0.0.1 (127.0.0.1). 
220 (vsFTPd 2.2.2) 
Name (127.0.0.1:root): taokey 
331 Please specify the password. 
Password: 
230 Login successful. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> dir
227 Entering Passive Mode (127,0,0,1,149,179). 
150 Here comes the directory listing. 
226 Directory send OK. 
ftp> mkdir hello 
257 “/hello” created 
ftp> dir
227 Entering Passive Mode (127,0,0,1,141,105). 
150 Here comes the directory listing. 
drwxr-xr-x    2 500      500          4096 Jan 16 15:27 hello 
226 Directory send OK.

13虚拟用户增加和权限设置:

新增用户:cs1,密码:cs123456

#useradd cs1

#passwd cs1  密码:cs123456

创建一个匿名账号.

#cd /etc/vsftpd    进入vsftpd目录

#vi vftpuser.txt    编辑vftpuser.txt,增加如下内容

cs1

cs123456

使用db_load命令生成虚拟用户口令认证文件。

vsftpd#db_load -T -t hash -f vftpuser.txt vftpuser.db

创建虚拟用户的配置文件

#cd /etc/vsftpd/vsftpuser  

#touch cs1

#vi cs1

local_root=/home/ftp/1520/    #虚拟用户可以访问的目录设置

write_enable=YES 

anon_mkdir_write_enable=YES 

anon_world_readable_only=NO 

anon_upload_enable=YES 

anon_umask=022 

anon_other_write_enable=YES

 

同一用户,访问不同子目录配置(利用挂载功能):swl用户只可以访问joly和soft目录

mkdir -p /home/swl/joly

mkdir -p /home/swl/soft

mount --bind -o rw /data/share/joly /home/swl/joly

mount --bind -o rw /data/share/soft /home/swl/soft

# cd /etc/vsftpd/vsftpuser/

#vi swl

local_root=/home/swl

#chown -R ftp.ftp /home      #给ftp用户访问/home的权限

重启后挂载命令会失效,解决方法;

vi /etc/fstab

/data/share/joly        /home/swl/joly         none    bind            0 0

/data/share/soft        /home/swl/soft         none    bind            0 0

错误500解决方法:

#vi /etc/selinux/config

SELINUX=disabled

14. virtual_use_local_privs配置参数详解

当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时,虚拟用户只能下载、删除和重命名文件,无其他权限。

15客户端连接

①客户端主动连接模式

②客户端被动连接,防火墙要开启对应vsftpd允许的随机端口

广告 广告

评论区