linux 银河麒麟V10 VSFTPD服务端安装、配置的图文教程

发布于:2023-01-22 ⋅ 阅读:(1842) ⋅ 点赞:(1)

前言:本篇文章,集互联网好友的成果、本菜鸟实践摸索的结果,整理综合而得。本人在CSDN、百度、B站等各大网站进行了有限的搜索,都没有看到完全适配的答案。

如果你也是国产电脑的受“益”者,也在找寻FTP服务端安装与配置的方法,Linux系统的基础不扎实的话,那你找对地方了。本案例已在实机上稳定运行1个月,目前仍在稳定运行中。

欢迎交流,基于国产电脑的更多其他软件工具的安装配置,以期提升办公效率。

目录

一、电脑基本信息

二、安装FTP

1.输入vsftpd(尚未安装的结果)

2.输入vsftpd(已安装的结果)

三、配置FTP

(1)修改VSFTPD的配置文件(vsftpd.conf)

1.找到vsftpd.conf文件

2.修改vsftpd.conf文件

3.修改vsftpd.conf文件的参数

(2)补充添加本地用户vur

(3)配置账号密码验证机制

1.建立FTP目录和账号密码文件

2.把TXT文件转db库文件

3.给数据库文件权限,防止其他用户查看密码。

4.配置vsftpd的PAM认证文件。

(4)配置虚拟用户的conf配置文件

1.创建nyjbgs用户的配置文件

2.创建dayinji用户的配置文件

(5)设置FTP文件的访问权限。

四、FTP其他相关

1.相关命令

2.开机自启动vsftpd 

3.服务器的防火墙。

4.固定IP。


一、电脑基本信息

银河麒麟版本:kylin V10 版权所有KylinOS

系统内核:

Linux4.4.131-20210120.kylin.desktop-generic-aarch64-with-Kylin-v10-juniper

CPU:Phytium,FT-2000/4(64位,4核)

注:用于核对对比操作环境的差异。只要咱们是同行一般没什么差异哈,不过得是银河麒麟系列系统。我单位还有统信系统的国产电脑(可能不太适用)

二、安装FTP

一般电脑都自带安装了。CTRL+ALT+T,打开终端。

1.输入vsftpd(尚未安装的结果)

显示以下信息,代表未安装。

 按照提示,再输入sudo apt install vsftpd

输入用户密码(自己)

等待安装结束(一大串)——安装结束。

2.输入vsftpd(已安装的结果)

显示以下信息,代表这个程序已经有了(安装成功),但是缺个文件(下一步就进行文件配置)

 不放心,可以再输入vsftpd -v

显示以下信息,我的版本就是3.0.3。代表成功安装了3.0.3的vsftpd

 注:“程序名称”+“空格”+“-v”,可查询该程序的版本,基本通用所有程序。

三、配置FTP

(1)修改VSFTPD的配置文件(vsftpd.conf)

1.找到vsftpd.conf文件

一般在系统盘的etc文件夹中,

注:不同的操作系统会有一些差异,但是这个配置文件名称是一致的,若找不到,可以在系统盘中进行搜索,记住或者复制路径

2.修改vsftpd.conf文件

终端输入vim /etc/vsftpd.conf

该代码可以进入配置文件并进行修改(如果没有vim,可以使用vi)

3.修改vsftpd.conf文件的参数

蓝色内容为解释,方便他人理解。白色内容为程序的参数。

配置文件的初始参数为以下内容:(可以跳过

listen=NO

listen_ipv6=YES

anonymous_enable=NO

local_enable=YES

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=YES

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

经过自己的摸索(网上各类教程、解释)和需求(设置多个虚拟用户,给虚拟用户配置不同的权限,适用于局域网FTP),配置了以下自己的参数(一行行讲解),按i进入编辑状态。

listen=YES

listen_address=192.168.***.***

listen_port=5021

connect_from_port_20=YES

#启动IPV4地址的监听

#监听地址:自己电脑的IP地址

#监听端口:默认为21,建议修改至更高,提高他人找寻难度。

#确定数据端口为20。跟电路中弱电控制强电是一个逻辑。21端口是信息端口,接受连接、登录、离线等各种控制信息。20端口是数据端口,上传下载的文件就是通过这个端口传输。

local_enable=YES

write_enable=YES

local_umask=022

#允许本地用户登录,设置的多个虚拟用户需要集中寄托于一个本地用户。

#允许写入修改功能。

#本地用户的掩码:022对应本地用户创建新目录和文件的权限755。掩码等级 对应 权限等级(有特殊需求可自行对应修改),使用默认值022就行。

anon_upload_enable=NO

anon_mkdir_write_enable=NO

#匿名用户上传文件:拒绝

#匿名用户创建修改文件:拒绝。我们是虚拟用户模式,需要账号密码登录。

pasv_enable=YES

pasv_min_port=50210

pasv_max_port=50310

pasv_address=192.168.***.***

#启动被动(PASV)模式。经过网上查询有主动、被动两种模式,其中被动模式比较适用。被动模式:客户端拿着开放的端口找服务器。主动模式:服务器拿着开放端口找客户端。网上解释:因为大部分客户端都是在路由器后面,没有独立的公网IP地址,服务器想要主动连接客户端,难度太大,在现在真实的互联网环境里面几乎是不可能完成的任务。简单的说:一个单位的某人找另一个单位对接,很容易(一查地址就行),一个单位想找另个单位的某人,很麻烦(要先打通单位的座机,再拿着人名问手机号)

#端口号最低线多少。

#端口号最高线多少,之间就是客户端可以对接的

#被动模式中,客户端找服务器的地址。

dirmessage_enable=YES

#启动之后,初次登录FTP,系统会自动扫描目录、查找文件.message,并显示.message文件里面的信息,没有则就不显示,也没有什么影响。如果想搞个装逼的欢迎仪式,可以研究研究。

use_localtime=YES

#启用本地时间,一般都使用本地时间,有跨国业务的,有时差的地区,可以关注该设置参数。

xferlog_enable=YES

xferlog_std_format=YES

xferlog_file=/var/log/vsftpd.log

#启动日志功能,可以看到用户上传下载信息。

#启用标准日志格式。

#日志文件vsftpd.log的存放路径/var/log/vsftpd.log,爱存哪里就存哪里,可以自定义修改。

tcp_wrappers=YES

#开启IP的黑白名单。仅仅两个配置(允许、拒绝)文件:/etc/hosts.allow和/etc/hosts.deny

chown_uploads=NO

#NO=禁止上传文件更改宿主,YES=允许上传文件更改宿主

idle_session_timeout=360000

data_connection_timeout=360000

#超过多少秒,信号端口没有动静,踢掉。连上了什么都不做,占我服务器资源,踢掉。

#超过多少秒,数据端口没有动静,踢掉。下载下一半掉网了,连了一会不下载了,踢掉。

guest_enable=YES

guest_username=vur

virtual_use_local_privs=YES

allow_writeable_chroot=YES

user_config_dir=/etc/vsftpd/vconf

#启动虚拟用户模式。

#设置的虚拟用户集中映射在vur本地用户上。虚拟的灵魂需要一个实际的载体。

#虚拟用户和本地用户可以拥有同等权限。

#不允许虚拟用户离开自己的访问根目录。修改虚拟用户的配置文件可以满足不同的需求,比如权限不一样,访问目录不一样。

#在vsftpd目录中专门建立的一个vconf目录,用于专门存放各个虚拟用户相应配置文件。我们现在编辑的是主配置文件,后面编辑虚拟用户配置文件。

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

#用户将被限制在其用户的主目录之内,不得跳出。

#启用名单通行制度。YES则启用白名单。NO则启动黑名单。chroot_local_user与chroot_list_enable的不同组合,可以带来四种的功能。1.名单上的用户受限制。2.名单上的用户不受限制。3.名单之外的用户受限制。4.名单之外的用户不受限制。

#vsftpd.chroot_list名单文件的存放路径/etc/vsftpd.chroot_list,同样是爱存哪就存哪,没有这个文件就必须创建一个同名文件(TXT格式就行,每行放一个用户名就行)。(我电脑的这个列表文件是空的,设置了个寂寞。但是不影响使用大的安全,因为设置了虚拟用户不能跳出FTP的根目录。)

ascii_upload_enable=YES

ascii_download_enable=YES

#允许以ASCII编码形式,上传文件。

#允许以ASCII编码形式,下载文件。

ls_recurse_enable=NO

#不允许使用“ls -R”这个命令。ls就是列出目录清单的命令,ls -R就是列出所有目录和所有文件清单的命令。对于大型的FTP服务器,里面有很多目录和很多文件。如果所有进来的人都要服务器列一遍所有目录和文件,到最后只下载一个文件,服务器这就很崩溃,你在玩我呢。

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

#验证机制

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

#以上三行参数没有改动,也没搞清楚实际用途,不影响现有需求。

utf8_filesystem=YES

#启用utf8编码模式。统一标准可以防止上传或下载文件的中文名称发生乱码。

(2)补充添加本地用户vur

在终端输入adduser vur,按提示输入相关信息(连续回车),即可创建本地用户vur。

 注:因为虚拟用户需要集中映射到本地用户,所以需要创建本地用户vur。vur这个名字是常用的(可以改成自己喜欢的,但是配置文件中要同步修改),翻译过来也是虚拟virtual user。

(3)配置账号密码验证机制

1.建立FTP目录和账号密码文件

终端输入:cd /etc

#跳转到etc目录中

mkdir vsftpd

#创建名为vsftpd的目录

cd vsftpd

#跳转到vsftpd目录中

vim vur_list

#创建vur_list文件(txt),并打开编辑。名称定为vur_list是方便管理和记忆。vur是本地用户名,_list是列表文件的意思。

 按i进入编辑模式。

第一行 为虚拟用户1的账号,第二行为虚拟用户1的密码。

第三行 为虚拟用户2的账号,第四行为虚拟用户2的密码。

以此类推

按ESC,退出编辑模式,输入:wq,进行保存并退出。

2.把TXT文件转db库文件

把vur_list文本文件转换为vur_list.db数据库文件

使用db_load命令,把账号密码文本文件(vur_list),用HASH算法生成FTP用户数据库文件(vur_list.db)

终端在vsftpd目录下,输入:

db_load -T -t hash -f vur_list.txt vur_list.db

 没安装db_load 程序,没关系。

直接输入命令安装:apt install db-util

3.给数据库文件权限,防止其他用户查看密码。

用root身份,利用chmod命令,给vur_list.db赋权。

chmod 600 /etc/vsftpd/vur_list.db

600代表其他人不可读写

 4.配置vsftpd的PAM认证文件。

在pam.d目录(我的在etc目录中)中,找到vsftpd,一般都有的。

vim /etc/pam.d/vsftpd

 这个文件是自带的命令参数,现在需要把所有的命令行用#注释掉,然后输入以下参数。

auth required pam_userdb.so db=/etc/vsftpd/vur_list

account required pam_userdb.so db=/etc/vsftpd/vur_list

#你的vur_list.db在哪里,路径就连到哪里,连接时候需要把.db去掉,因为db=这里就规定了文件类型。启动了两种验证(auth、account)

auth:主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。

account:主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。

:wq,保存并退出

 (图片还没改过来,以文字为准)

(4)配置虚拟用户的conf配置文件

在/etc/vsftpd目录中,创建vconf目录。要与主配置文件其中一行的参数(user_config_dir=/etc/vsftpd/vconf)保持一致。这里创建配置用户配置文件的文件名必须与上面创建的用户名一致。

1.创建nyjbgs用户的配置文件

终端在/etc/vsftpd/vconf目录中,输入vim nyjbgs

#创建用户1的配置文件,并打开编辑

配置内容如下:

local_umask=022

write_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_upload_enable=YES

anon_world_readable_only=No

local_root=/home/FTP

allow_writeable_chroot=YES

2.创建dayinji用户的配置文件

终端在/etc/vsftpd/vconf目录中,输入vim dayinji

#创建用户1的配置文件,并打开编辑

配置内容如下:

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_world_readable_only=No

download_enable=NO

local_root=/home/FTP

allow_writeable_chroot=YES

(5)设置FTP文件的访问权限。

为保证其他用户可以访问,给予rwxr-xr-x权限:

chown vur:vur /home/FTP

chmod -R 777 /home/FTP

 三位数字对应所有者、群组、其他

 有意义的三种权限分别为:0、5、7

0(没有任何权限)

5(读和执行,基本权限)

7(读、写和执行,最高权限)

 -R 表示对该目录及其子目录都进行赋权操作。

四、FTP其他相关

1.相关命令

systemctl enable vsftpd 开启

systemctl start vsftpd 启动

systemctl stop vsftpd 停止

systemctl restart vsftpd 重启动

systemctl status vsftpd 查询状态

netstat -antup | grep ftp 在端口中,查询FTP关键词,并以简要格式呈现。

2.开机自启动vsftpd 

更改/etc/rc.local (常用)

vim /etc/rc.local

关键是找到rc.local文件在那,搜索就行,我这操作环境就在/etc目录下。中间的路径直接粘贴复制。

意思就是启动完所有该启动的之后,再执行以下代码命令。

在exit 0的上一行添加systemctl start vsftpd,保存退出。

重启之后,直接查询启动状态,显示活跃即设置成功。

3.服务器的防火墙

我们电脑没有安装这玩意。

4.固定IP

如果你的电脑是自动获取IP地址的,还需要手动设置下IP地址。

 linux系统相对于WIN系统,给予了很大修改操作权限,但是兼容性需要自己去列情况。

就像进入人体一样,复杂的也有,简单的也有,改造的空间和潜力很大,可以学到的也很多,是可以调教成真正属于自己的操作系统。

本文含有隐藏内容,请 开通VIP 后查看