概述
运行环境是 CentOS 8.2
,尝试搭建 ftp 服务,网上找了很多的方式,基本都是 yum 安装,但是因为未连接互联网,因此只能源码安装。
rpm 包下载地址(无效)
RPM resource vsftpd 基本都是针对 CentOS 9 以上版本
http://www.rpmfind.net/linux/rpm2html/search.php?query=vsftpd
其中也有关于vsftpd 相关连接,但是都无法访问。
没有找到 CentOS 8.2
的,因此即使下载成功,也会提示无法安装。其中 vsftpd-3.0.3-48.el9.x86_64.rpm 安装失败效果如下:
[root@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@localhost ~]$
[root@localhost ~]$ rpm -ivh vsftpd-3.0.3-48.el9.x86_64.rpm
错误:vsftpd-3.0.3-48.el9.x86_64.rpm: signature 头部数据:不当,字节(15168)的号码超出范围
错误:不能安装 vsftpd-3.0.3-48.el9.x86_64.rpm
镜像路径寻找(失败)
网上给的 Centos镜像只下载地址(全部寻找失败):
官方镜像下载地址:https://www.centos.org
http://mirrors.sohu.com/centos/8/isos/x86_64/
http://mirrors.aliyun.com/centos/8/isos/x86_64/
http://centos.ustc.edu.cn/centos/8/isos/x86_64/
http://mirrors.neusoft.edu.cn/centos/8/isos/x86_64/
http://mirror.lzu.edu.cn/centos/8/isos/x86_64/
http://mirrors.163.com/centos/8/isos/x86_64/
http://ftp.sjtu.edu.cn/centos/8/isos/x86_64/
https://vault.centos.org/8.2.2004/isos/x86_64/
https://mirrors.huaweicloud.com/home/
https://mirrors.tuna.tsinghua.edu.cn/
https://mirror.iscas.ac.cn/centos/
http://man.linuxde.net/download/CentOS
http://mirrors.btte.net/centos/8/isos/x86_64/
源码地址
能想到的就是源码安装部署。从官网获悉
The latest vsftpd release is v3.0.5 (需要通过技术手段才可以访问)
下载地址:vsftpd-3.0.5.tar.gz
具体地址为:https://security.appspot.com/vsftpd.html
如果需要可以联系获取。默认地址如下:
链接:https://pan.baidu.com/s/1zx4yaHd7aiUkrPJagIjyWA?pwd=vufx
提取码:vufx
依赖文件
安装过程提示下面错误,找不到 lcap 库。
源码下载地址为:https://mirrors.edge.kernel.org/pub/linux/libs/security/linux-privs/libcap2/
[root@localhost ~]$ # make
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o seccompsandbox.o -Wl,-s -fPIE -pie -Wl,-z,relro -Wl,-z,now `./vsf_findlibs.sh`
/usr/bin/ld: cannot find -lcap
collect2: error: ld returned 1 exit status
make: *** [vsftpd] Error 1
依赖 ./vsftpd-3.0.5/vsf_findlibs.sh
文件中提示的信息
# Look for libcap (capabilities)
# Note that link may fail with:
# /usr/bin/ld: cannot find -lcap
# If the libcap-devel package isn't installed.
locate_library /usr/lib/libcap.so && echo "-lcap";
locate_library /lib/libcap.so && echo "-lcap";
locate_library /lib64/libcap.so && echo "-lcap";
分别遍历查找 /usr/lib/libcap.so 、lib/libcap.so、/lib64/libcap.so
发现确实没有。
下载源码之后,根据提示先执行 make test 检测环境。然后分别执行:
[root@localhost ~]$ # make
[root@localhost ~]$ # install
继续vsftpd 源码安装
[root@localhost ~]$ cd ../vsftpd-3.0.5
[root@localhost vsftpd-3.0.5]# make
[root@localhost vsftpd-3.0.5]# make insall
if [ -x /usr/local/sbin ]; then \
install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
elif [ -x /usr/share/man ]; then \
install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
else \
install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
vsftpd 配置
网上关于vsftpd 配置有很多介绍,这里不在赘述。