Linux 多种方式实现文件共享(一)VSFTP4

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
日志服务 SLS,月写入数据量 50GB 1个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介: 【8月更文挑战第4天】Linux系统中VSFTP(Very Secure FTP)服务的配置方法,涵盖匿名访问、本地用户登录及虚拟用户管理等场景。VSFTP作为增强版FTP服务器,具备较高安全性,如普通用户权限运行、命令整合、chroot限制等特性。文中详细说明了配置步骤,包括安装VSFTP、修改主配置文件(如启用被动模式、设置端口范围)、创建用户及家目录、设置虚拟用户认证数据库等。此外,还介绍了如何实现FTP服务的加密传输,通过生成SSL证书并配置VSFTP以支持安全连接。这些配置适用于不同需求的文件共享服务。

文件共享服务在Linux系统上有多种方式,最常用的有vsftp,Samba,,iSCSI,NFS这四种方式,如下将分别配置四种不同的文件共享服务.

VSFTP 文件传输

VSFTP 文件传输

FTP是文件传输协议.用于Internet上的控制文件的双向传输,FTP传输文件属于明文传输,不对传输过程进行任何加密处理,VSFTP服务是Linux系统下的加强版传输服务器,安全性更好.


VSFTP的特点


1.vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性.


2.任何需要执行较高权限的指令都需要上层程序许可.


3.ftp所需要使用的绝大多数命令都被整合到了vsftp中,基本不需要系统额外提供命令.


4.拥有chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录.


VSFTP的连接类型


控制连接(持续连接)-> TCP21(命令信道)-> 用户收发FTP命令


数据连接(按需连接)-> TCP20(数据信道)-> 用于上传下载数据


主动模式与被动模式


1.很多防火墙在设置的时候都是不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高位端口.


2.而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作.


配置匿名FTP服务器

作用:任意用户,输入FTP服务器IP都可以访问,只需输入用户名ftp即可访问.


[匿名配置常用参数]


anonymous_enable=YES  #启用匿名访问

anon_umask=022   #匿名用户所上传文件的权限掩码

anon_root=/var/ftp  #匿名用户的FTP根目录

anon_upload_enable=YES  #允许上传文件

anon_mkdir_write_enable=YES #允许创建目录

anon_other_write_enable=YES #开放其他写入权

anon_max_rate=0   #限制最大传输速率


1.安装VSFTP服务器.


[root@localhost ~]# yum install -y vsftpd


2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.


[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf


pasv_enable=YES       #开启被动模式

pasv_min_port=10000      #被动模式最小端口

pasv_max_port=15000      #被动模式最大端口


anonymous_enable=YES      #允许匿名用户访问

anon_upload_enable=YES      #允许匿名用户上传

anon_mkdir_write_enable=YES     #允许匿名用户建立目录

anon_other_write_enable=YES     #开放其他人写入权限

anon_umask=022       #设置匿名用户umask

anon_root=/ghost      #匿名用户ftp根目录


local_enable=YES      #允许本地用户登录

write_enable=YES      #允许本地用户上传

local_umask=022       #本地用户上传umask值

xferlog_enable=YES      #激活记录日志

connect_from_port_20=YES     #主动模式传输接口

xferlog_std_format=YES      #使用标准ftp日志的格式


listen=YES       #允许被侦听

pam_service_name=vsftpd      #ftp采用pam默认用户名密码验证

userlist_enable=YES      #用户登陆限制

tcp_wrappers=YES      #网络访问限制机制


#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]


3.启动FTP服务,并设置开机自动启动.


[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl enable vsftpd



配置本地用户FTP服务器

作用:只有正确输入用户名和密码才能访问数据.


[本地配置常用参数]


local_enable=YES    #是否启用本地系统用户

local_umask=022     #本地用户所上传文件的权限掩码

local_root=/var/ftp    #设置本地用户的FTP根目录

chroot_local_user=YES    #是否将用户禁锢在主目录

local_max_rate=0    #限制最大传输速率

ftpd_banner=Welcome to blah FTP service  #用户登录时显示的欢迎信息

banner_file=/目录    #弹出一个说明,可以做哪些操作

userlist_enable=YES &userlist_deny=YES  #禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP

userlist_enable=YES & userlist_deny=NO  #仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP


1.安装VSFTP服务器.


[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES       #开启被动模式

pasv_min_port=10000      #被动模式最小端口

pasv_max_port=15000      #被动模式最大端口

anonymous_enable=NO      #允许匿名用户登陆

chroot_local_user=YES      #把用户禁锢在家目录

local_enable=YES      #本地用户允许登陆

local_root=/ghost      #指定本地用户的ftp根目录

write_enable=YES      #允许本地用户上传

local_umask=022       #本地用户上传umask值

xferlog_enable=YES      #激活记录日志

xferlog_std_format=YES      #使用标准ftp日志的格式

listen=YES       #允许被侦听

pam_service_name=vsftpd      #ftp采用pam默认用户名密码验证

userlist_enable=YES      #用户登陆限制

tcp_wrappers=YES      #网络访问限制机制

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]


3.创建用户并指定其家目录,创建用于存储数据的目录.


[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark

[root@localhost ~]# passwd  lyshark

4.启动FTP服务,并设置开机自动启动.


[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl enable vsftpd


配置匿名与本地混合FTP

作用:匿名用户可以查看共享数据,登陆后有自己的存储池.


1.安装VSFTP服务器


[root@localhost ~]# yum install -y vsftpd


2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf


pasv_enable=YES       #开启被动模式

pasv_min_port=10000      #被动模式最小端口

pasv_max_port=15000      #被动模式最大端口

anonymous_enable=YES      #允许匿名用户登陆

anon_umask=022       #设置匿名用户umask

anon_root=/var/ftp      #匿名用户ftp根目录

anon_upload_enable=YES      #允许匿名用户上传

anon_mkdir_write_enable=YES     #允许匿名用户建立目录

anon_other_write_enable=YES     #开放其他人写入权限

anon_max_rate=0       #限制最大传输速率


local_enable=YES      #允许本地用户登录

local_root=/ghost      #指定本地用户的ftp根目录

chroot_local_user=YES      #把用户禁锢在家目录

write_enable=YES      #允许本地用户上传

local_umask=022       #本地用户上传umask值

xferlog_enable=YES      #激活记录日志

xferlog_std_format=YES      #使用标准ftp日志的格式

listen=YES       #允许被侦听

pam_service_name=vsftpd      #ftp采用pam默认用户名密码验证

userlist_enable=YES      #用户登陆限制

tcp_wrappers=YES      #网络访问限制机制



3.创建用户并指定其家目录,创建用于存储数据的目录.


[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark

[root@localhost ~]# passwd  lyshark


4.启动FTP服务,并设置开机自动启动.


[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl enable vsftpd



配置虚拟用户FTP服务器

作用:有时候创建本地用户过多,严重影响系统效率,所有我们要使用虚拟用户模式.


[虚拟配置常用参数]


anon_world_readable_only=NO   #允许查看和上传下载文件

anon_upload_enable=YES   #允许上传文件

anon_world_readable_only=NO  #允许查看和上传下载文件

anon_mkdir_write_enable=YES  #允许创建目录

anon_world_readable_only=NO  #允许查看和上传下载文件

anon_other_write_enable=YES  #允许重名和删除文件


1.安装相应软件包,libdb-utls是数据库包.


写入相应账号以及密码yum install -y libdb-utils

写入相应账号以及密码yum install -y vsftpd


2.配置vlogin文件,vlogin文件名称可自定义,写入相应账号以及密码.


[root@localhost ~]# vim /etc/vsftpd/vlogin


Lyshark   #奇数行写账号

123456   #偶数行写密码


3.将写好的文件加密,并转换成vlogin.db数据库文件


[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db


4.设置数据库文件的权限,保证安全.


[root@localhost ~]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}


5.覆盖编辑PAM文件,写入以下内容.


[root@localhost ~]# vim /etc/pam.d/vsftpd.pam


auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin


6.创建一个映射账号virtual,所有的登陆请求都是virtual.


[root@localhost ~]# useradd -s /sbin/nologin -d /home/ftp virtual


7.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.


[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf


pasv_enable=YES       #开启被动模式

pasv_min_port=10000      #被动模式最小端口

pasv_max_port=15000      #被动模式最大端口


anonymous_enable=NO      #允许匿名用户访问

local_enable=YES      #允许本地用户登录

write_enable=YES      #允许本地用户上传

anon_upload_enable=YES      #允许匿名用户上传

anon_mkdir_write_enable=NO     #允许匿名用户建立目录

anon_other_write_enable=NO     #开放其他人写入权限

chroot_local_user=YES      #把用户禁锢在家目录

guest_enable=YES      #启动来宾用户

guest_username=virtual      #来宾默认使用的用户

listen=YES       #允许被侦听

listen_port=21       #侦听21端口

pam_service_name=vsftpd.pam     #ftp采用pam默认用户名密码验证

user_config_dir=/etc/vsftpd_user_conf    #指定虚拟用户配置文件保存位置

user_sub_token=$USER      #映射用户变量


#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]



8.创建对应文件(用于保存权限文件).


[root@localhost ~]# mkdir /etc/vsftpd_user_conf

[root@localhost ~]# mkdir -p /home/ftp/lyshark

1

2

9.编辑文件给指定用户分配权限,用匿名用户权限分配.


[root@localhost ~]# vim /etc/vsftpd_user_conf/lyshark


local_root=/home/ftp/$USER

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

chroot_local_user=YES


# allow_writeable_chroot=YES    #可在公共目录下创建文件


10.启动FTP服务,并设置开机自动启动


[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl enable vsftpd

OpenSSL+FTP 加密传输

1.查看是否安装OpenSSL包.

[root@localhost ~]# rpm -q openssl

2.生成SSL加密密钥对.

[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

[参数说明]

 req   #标注格式

 -new   #创建一个新的证书

 -x509  #证书内容格式

 -nodes   #不使用密码

 -out  #生成文件名

 -keyout  #生成的秘钥文件名

#创建时依次填写:国家、省份、城市、组织、部门、个人或主机名、邮箱

3.把生成的证书放入特定目录下,并给予最低权限,保证安全.

[root@localhost ~]# cp -a vsftpd.pem /etc/ssl/certs/

[root@localhost ~]# chmod 500 /etc/ssl/certs/

4.在VSFTP主配置中文件加入以下参数.

 

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

ssl_enable=YES       #启用ssl认证

ssl_tlsv1=YES

ssl_sslv2=YES       #开启tlsv1、sslv2、sslv3都支持

ssl_sslv3=YES

allow_anon_ssl=YES      #允许匿名用户

force_anon_logins_ssl=YES

force_anon_data_ssl=YES      #匿名登录和传输时强制使用ssl

force_local_logins_ssl=YES

force_local_data_ssl=YES     #本地登录和传输时强制使用ssl

rsa_cert_file=/etc/ssl/certs/vsftpd.pem    #证书文件所在目录

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]


5.启动FTP服务,并设置开机自动启动.

[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl enable vsftpd


目录
相关文章
|
2月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
2月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
83 28
|
2月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
267 12
|
1月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
3月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
177 19
|
4月前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
105 19
|
4月前
|
Linux
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
115 5
Linux 常用文件查看命令
|
3月前
|
缓存 Linux
如何创建Linux交换文件?Linux交换文件最新创建方法
Swap是Linux中的虚拟内存空间,用于在物理内存不足时将非活动进程移至磁盘,从而优化活动进程的性能。通过创建交换文件(如1GB),可灵活调整交换空间而无需重新分区。步骤包括:使用`fallocate`或`dd`创建文件、设置权限 (`chmod 600`)、格式化 (`mkswap`)、启用交换 (`swapon`)、修改`/etc/fstab`以持久化配置,以及调整`vm.swappiness`值(默认60,建议从10开始)来平衡内存与交换的使用。最后通过`swapon -s`检查状态并重启生效。此方法适用于VPS和专用服务器,需以root用户操作。
100 2
|
5月前
|
存储 Linux Shell
Linux|Transfer.sh 轻松实现文件共享
Linux|Transfer.sh 轻松实现文件共享
Linux|Transfer.sh 轻松实现文件共享
|
5月前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
204 34
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问