一、下载源码包
二、安装前准备(创建所需目录)
- mkdir -p /data/soft/vsftpd/conf
- mkdir -p /data/soft/vsftpd/bin
- mkdir -p /data/soft/vsftpd/lib
- mkdir -p /data/soft/vsftpd/user_conf
- mkdir -p /data/soft/vsftpd/empty
- mkdir -p /data/soft/vsftpd/logs
- mkdir -p /data/www
- chown -R wwwftp:wwwftp /data/www
- chmod -R 700 /data/soft/vsftpd/empty/
- chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/
创建虚拟用户
- pw useradd wwwftp -d /data/www -s /usr/sbin/nologin
三、解压安装vsftpd
- tar zxvf vsftpd-2.3.4.tar.gz
- cd vsftpd-2.3.4
源码安装默认不支持tcp_wrappers和ssl
需要修改builddefs.h
- /*默认值如下:*/
- #undef VSF_BUILD_TCPWRAPPERS /*是否支持TCP WRAPPERS*/
- #define VSF_BUILD_PAM /*是否支持自定义虚拟用户登录*/
- #undef VSF_BUILD_SSL /*是否支持SSL传输*/
- /*支持则将对应项设为define,否则设为undef*/
编译vsftpd
- make
查看编译的vsftpd二进制文件是否加载了pam
- ldd vsftpd
如下:
- root@monitor[/home/admin/vsftpd-2.3.4]#ldd vsftpd
- vsftpd:
- libwrap.so.5 => /usr/lib/libwrap.so.5 (0x28099000)
- libpam.so.4 => /usr/lib/libpam.so.4 (0x280a0000)
- libutil.so.7 => /lib/libutil.so.7 (0x280a7000)
- libssl.so.5 => /usr/lib/libssl.so.5 (0x280b5000)
- libcrypto.so.5 => /lib/libcrypto.so.5 (0x280fd000)
- libc.so.7 => /lib/libc.so.7 (0x28256000)
四、配置vsftpd
1、创建配置文件:
- ee /data/soft/vsftpd/conf/vsftpd.conf
编辑如下:
- local_enable=YES
- write_enable=NO
- anonymous_enable=NO
- anon_upload_enable=NO
- anon_other_write_enable=NO
- anon_mkdir_write_enable=NO
- ftpd_banner=Welcome to FTP service.
- listen=YES
- listen_port=21
- connect_from_port_20=YES
- nopriv_user=nobody
- #tcp_wrappers=YES
- chroot_local_user=NO
- chroot_list_enable=YES
- chroot_list_file=/data/soft/vsftpd/chroot_list
- userlist_enable=yes
- userlist_deny=no
- userlist_file=/data/soft/vsftpd/allow
- dual_log_enable=YES
- vsftpd_log_file=/data/soft/vsftpd/logs/vsftpd.log
- xferlog_enable=YES
- xferlog_file=/data/soft/vsftpd/logs/xferlog
- pasv_enable=YES
- pasv_min_port=50000
- pasv_max_port=60000
- guest_enable=YES
- guest_username=wwwftp
- pam_service_name=vsftpd
- virtual_use_local_privs=YES
- use_localtime=YES
- user_config_dir=/data/soft/vsftpd/user_conf
- secure_chroot_dir=/data/soft/vsftpd/empty
2、创建允许登录ftp的用户文件:
- ee /data/soft/vsftpd/allow
编辑如下:
- test
3、安装vsftpd密码认证模块:
- fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/All/pam_pwdfile-0.99_1.tbz
- pkg_add pam_pwdfile-0.99_1.tbz //用于生成/usr/local/lib/pam_pwdfile.so文件
- cp /usr/local/lib/pam_pwdfile.so /data/soft/vsftpd/lib/
编辑/etc/pam.d/vsftpd如下:
- auth sufficient /data/soft/vsftpd/lib/pam_pwdfile.so pwdfile=/data/soft/vsftpd/login
- account sufficient pam_permit.so
4、创建用于生成用户名密码的perl脚本文件:(需要安装perl-5.12.3.tbz)
- fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/All/perl-5.10.1_3.tbz
- pkg_add perl-5.10.1_3.tbz
创建用于生成用户名密码的perl脚本文件
- ee /data/soft/vsftpd/bin/add_ftp_user.pl
如下:
- #! /usr/bin/perl -w
- #filename: add_ftp_user.pl
- use strict;
- #
- print "#example: user:passwd\n";
- while (<STDIN>) {
- exit if ($_ =~/^\n/);
- chomp;
- (my $user, my $pass) = split /:/, $_, 2;
- my $crypt = crypt $pass, '$1$' . gensalt(8);
- print "$user:$crypt\n";
- }
- sub gensalt {
- my $count = shift;
- my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z');
- my $s;
- $s .= $salt[rand @salt] for (1 .. $count);
- return $s;
- }
保存退出,给予可执行权限
- chmod +x /data/soft/vsftpd/bin/add_ftp_user.pl
5、创建测试用户名及密码:
- /data/soft/vsftpd/bin/add_ftp_user.pl
- 输入用户密码: user:password如下:
- test:123
复制用户名及加密的密码到/data/soft/vsftpd/login
6、创建用于锁定用户主目录的文件:
- ee /data/soft/vsftpd/chroot_list
编辑如下:
- test
7、创建用户配置文件:
- ee /data/soft/vsftpd/user_conf/test
编辑如下:
- local_root=/data/www/
- write_enable=yes
- anon_umask=022
五、启动服务
- /data/soft/vsftpd/bin/vsftpd /data/soft/vsftpd/conf/vsftpd.conf &
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/All/perl-5.10.1_3.tbz
本文地址:http://www.92csz.com/56/522.html如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog