编译安装
下载源码 解压,阅读 INSTALL 文件(重要,请一定阅读,内容本身不多)。
make
make install
正常情况下,就安装完成了。下面说说不正常情况。
1、依赖的库 包含:libcap libcap-devel libpam libpam-devel (pam的两个库在64位机器上最好都安装上32位和64位的库)
2、如果出现 /lib/libpam.so.0: could not read symbols: File in wrong format
修改 vsf_findlibs.sh 文件,修改look for pam 部分中的if 块,将 locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";
修改为 locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";
提示:
make 后,使用vsf_findlibs.sh 可以看到它已经依赖的库
ldd vsftpd |grep libpam.so 可以查看是否已经依赖pam
配置
mkdir /etc/vsftpd/
vi vsftpd.conf
listen_port=21
local_enable=yes
pam_service_name=ftp
anonymous_enable=no
xferlog_enable=yes
cp vsftpd-3.0.3/RedHat/vsftpd.pam /etc/pam.d/ftp
然后启动vsftp vsftp /etc/vsftpd/vsftpd.conf &
此时,就可以使用系统本身的账号进行登录ftp服务了。
如果无法登陆,请检查日志 /var/log/vsftpd.log /var/log/secure
提示
1、如果secure 日志中出现 PAM unable to dlopen(/lib/security/pam_unix.so): /lib/security/pam_unix.so: wrong ELF class: ELFCLASS32
说明库的版本不对,将lib改为lib64
2、出现
530 Login incorrect.
Login failed
通常都是pam 配置不正确。请结合vsftpd和secure日志仔细检查。
下面附一个正确的配置,且使用了重新配置了pam,以达到白名单形式,即 仅允许指定用户登录。
以仅允许weblogic账号登陆为例,相关配置如下
[root@web02 log]# more /etc/pam.d/ftp
#%PAM-1.0
auth required /lib64/security/pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=fail
auth required /lib64/security/pam_unix.so shadow nullok
auth required /lib64/security/pam_shells.so
account required /lib64/security/pam_unix.so
session required /lib64/security/pam_unix.so
[root@web02 log]# more /etc/vsftpd/vsftpd.conf
listen_port=21
local_enable=yes
pam_service_name=ftp
anonymous_enable=no
xferlog_enable=yes
[root@web02 log]# more /etc/vsftpd/ftpusers
weblogic
配置为系统服务
根据操作系统服务配置要求,编写脚本
下面为旧版(centos7以前)为例
编写脚本 文件名为vsftpd 放入 /etc/init.d/ 目录下
chmod 755 /etc/init.d/vsftpd
service vsftpd status
配置开启启动
chkconfig --add vsftpd
chkconfig --level 2345 vsftpd on
chkconfig --list vsftpd
centos7 配置自启动 需要 使用systemctl 请查阅相关资料。
其它
SElinux 干扰
sestatus
setenforce 0
getsebool -a|grep ftp
# 更改设置(-P 是开机自动使用,无需每次开机都输入该命令):
setsebool -P ftp_home_dir 1
参考资料:
http://vsftpd.beasts.org/vsftpd_conf.html
http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html
http://blog.51yip.com/linux/1672.html
http://blog.sina.com.cn/s/blog_4156950c0102v39i.html
https://serverfault.com/questions/180778/vsftpd-530-login-incorrect