aarch64架构下安装vsftpd服务器

说明:目前主流的FTP服务器端软件包括:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd 。

非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用等。

这里说明:aarch64架构与x86-64架构安装过程一致,只是安装文件不一样而已。

一、安装前准备:

1、关闭防火墙,禁止开机自启(后面安装完还需要开始,保障网络安全)

systemctl stop firewalld

systemctl disable firewalld

2 关闭selinux

vim /etc/selinux/config

SELINUX=disable

setenforce 0使修改立即生效

二、安装过程:

2.1在线安装:查找可安装版本

[root@localvm ~]# yum list|grep vsftp

vsftpd.x86_64 3.0.2-29.el7_9 updates

vsftpd-sysvinit.x86_64 3.0.2-29.el7_9 updates

[root@localvm ~]#yum install vsftpd* -y

2.2手动安装:

资源请自行下载:

x86架构:vsftpd-3.0.2-29.el7_9.x86_64.rpm

aarch64架构:vsftpd-3.0.3-28.h1.eulerosv2r8.aarch64.rpm

[root@localvm ~]# rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm

准备中... ################################# [100%]

正在升级/安装...

1:vsftpd-3.0.2-29.el7_9 ################################# [100%]

三、安装后测试:

3.1启动命令:

[root@localvm ~]# systemctl start vsftpd

3.2登录测试ftp://localhost

默认系统目录(匿名用户可以访问的目录): /var/ftp/pub/

四、基本配置(个性配置):

4.1停止服务:

[root@localvm ~]#systemctl stop vsftpd

4.2编辑配置文件:

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

FTP主被动模式,默认为被动模式,设置为被动模式使用端口方法如下:

4.3在文件末尾加上如下内容

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=60100

4.4以下内容有点绕,看不懂可以略过

#####################

#开启控制用户访问,默认开启;

#当 userlist_enable=NO时user_list列表不生效,此时只有user_list和不在ftpusers里面的系统用户可以访问;

#当 userlist_enable=YES,userlist_deny=YES时此时只有不在ftpusers和user_list的系统用户可以访问(默认);

#当 userlist_enable=YES , userlist_deny=NO时此时只有user_list用户可以访问,只能用命令行进行访问;

#如果用户同时出现在ftpuser和user_list中,ftpuser的优先权大于user_list;

#/etc/vsftpd/ftpusers

#黑名单文件,此文件里的用户不允许访问 FTP 服务器。

#/etc/vsftpd/user_list

#是白名单文件,此文件里的用户允许访问 FTP 服务器。

#######################

4.5备份配置文件

[root@localvm vsftpd]# cp -a /etc/vsftpd/vsftpd.conf{,.bak}

4.6提取配置文件中有用的配置信息

[root@localvm vsftpd]# egrep -v "^#|^$" /etc/vsftpd/vsftpd.conf

anonymous_enable=NO #开启匿名用户访问;

local_enable=YES #启用本地系统用户访问;

write_enable=YES #本地系统用户写入权限;

local_umask=022 #本地用户创建文件及目录默认权限掩码;

dirmessage_enable=YES #打印目录显示信息,通常用于用户第一次访问目录时,信息提示;

xferlog_enable=YES # 启用上传/下载日志记录;

connect_from_port_20=YES #FTP使用20端口进行数据传输;

xferlog_std_format=YES #日志文件将根据xferlog的标准格式写入;

listen=YES #Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;

listen_ipv6=NO # 启用IPV6监听;

pam_service_name=vsftpd #登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;

userlist_enable=YES #Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;

tcp_wrappers=YES # 设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。

ascii_upload_enable=YES

ascii_download_enable=YES

virtual_use_local_privs=YES #虚拟用户与本地用户权限一致

guest_username=vsftpd #虚拟用户使用的系统用户名

guest_enable=YES #启动虚拟用户

chroot_local_user=YES #是否将所有用户限制在主目录

allow_writeable_chroot=YES #允许受限用户的写权限

chroot_list_enable=YES #是否启动限制用户的名单

#注意:以上配置信息不要粘贴你的配置文件里,因为vsftpd.conf里面不支持中文,会报错。

4.7我虚拟机里的vsftpd.conf配置如下:

======================服务器里的配置============

#说明:ftp根目录:/data/ftpdata,有2个用户admin不受限权限;wenjian仅有上传权限。

[root@localhost vsftpd]# egrep -v "^#|^$" /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

listen=YES

listen_ipv6=NO

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=60100

pam_service_name=vsftpd

userlist_enable=YES

virtual_use_local_privs=YES

guest_username=vsftpd

guest_enable=YES

chroot_local_user=YES

allow_writeable_chroot=YES

chroot_list_enable=NO

chroot_list_file=/etc/vsftpd/user_list

user_config_dir=/etc/vsftpd/vuserconf

local_root=/data/ftpdata

==================================

五、开启vsftp虚拟用户配置:

#5.1、创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件。

[root@localvm vsftpd]# useradd vsftpd -d /home/vsftpd -s /bin/false

#5.2、设置vsftpd的虚拟用户的验证

vim /etc/pam.d/vsftpd

#%PAM-1.0

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

#session optional pam_keyinit.so force revoke

#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#auth required pam_shells.so

#auth include password-auth

#account include password-auth

#session required pam_loginuid.so

#session include password-auth

#5.3、虚拟用户配置介绍:

5.3.1. 建立虚拟用户个人vsftp的配置文件

mkdir -p /etc/vsftpd/vuserconf

5.3.2.进入目录

cd /etc/vsftpd/vuserconf

5.3.3.创建并编辑定义的虚拟用户的配置文件(admin用户权限都是通过这个来限制)

vim admin

# 允许admin用户对FTP服务器文件具有写权限:

write_enable=YES

anon_world_readable_only=NO

vim wenjian

# wenjian仅有上传权限:内容如下:

write_enable=YES

download_enable=NO

#5.4.然后生成虚拟用户数据库文件(用于登录验证)

可能你没有安装db工具包,所以先查找一下。

1)rpm -qa | grep db

2) 确实没安装,就查下yum可提供的版本

yum search db4

3) 安装(或者安装libdb-utils.x86_64)

yum install-y compat-db47.x86_64

4) 利用db_load命令生成数据文件(添加新虚拟用户,都要重新执行一次下面的操作,)

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

5) 设定PAM验证文件,并指定对虚拟用户数据库文件进行读取(权限r,w即可)

chmod 600 /etc/vsftpd/virtusers.db

六.ftp根目录权限设置

chown -R vsftpd:vsftpd /data/ftpdata

七、最后vsftp设置开机启动:

[root@localhost ~]# systemctl list-unit-files |grep vsftp

vsftpd.service disabled

[email protected] indirect

vsftpd.target disabled

[root@localhost ~]# systemctl enable vsftpd

Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.

[root@localhost ~]# systemctl list-unit-files |grep vsftp

vsftpd.service enabled

[email protected] indirect

vsftpd.target disabled

[root@localhost ~]#大功告成。测试以下吧:最后我还是放弃了vsftpd。

选择了proftpd,因为vsftpd对中文支持不好,在windows客户端,使用资源管理器直接访问ftp服务器和上传的文件名出现乱码。proftpd 有编码转换功能UseEncoding UTF-8 GBK,不会出现这个问题。

参考:

https://blog.csdn.net/D1179869625/article/details/122984871

Centos7 搭建FTP服务器

https://blog.csdn.net/fengge55/article/details/125439766

centos7部署vsftpd虚拟用户

https://blog.csdn.net/will0532/article/details/79175478

centos7安装vsftp配置虚拟用户

你可能感兴趣的:(linux,Centos,vsftpd,centos,vsftpd,aarch64)