linuxAS4下安装vsftpd2.0.5

来源:互联网 发布:中国药典软件 编辑:程序博客网 时间:2024/05/05 11:14
@@@ 安装
在Readhat as4下编译通过
# tar zxf vsftpd-2.0.5.tar.gz
# cd vsftpd-2.0.5 //进入vsftpd-2.0.5的源代码目录
# vi builddefs.h //编辑builddefs.h 文件,文件内容如下:

  #ifndef VSF_BUILDDEFS_H
  #define VSF_BUILDDEFS_H
  #undef VSF_BUILD_TCPWRAPPERS
  #undef VSF_BUILD_PAM 
  #define VSF_BUILD_SSL
  #endif /* VSF_BUILDDEFS_H */

将以上undef都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL

 ##注: 这里不需要 ./configure 和 make install
# make //直接在vsftpd-2.0.5里用make编译
创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,

@ 安装vsftp配置文件,可执行程序,man等: (这一步操作就是安装.不是用 ./configure; make;make install; 这样安装的.)
# install -m 755 vsftpd /usr/local/sbin/vsftpd
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd.conf
现在安装成功了.开始进行配置



@@@ 配置
这样就安装完成了,那么我们开始进行简单的配置

对于用DB库存储用户名及密码的方式来说:

@@ 第一步: 查看系统是否有相应软件包(redhat的AS4已安装)
# rpm –qa | grep db4
db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1

@@ 第二步: 建立一个logins.txt的文件,单行为用户名,双行为密码,例如
# vi /tmp/logins.txt
内容如下:
test1
12345
test2
12345


@@ 第三步: 建立数据库文件并设置文件属性
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
# rm /tmp/logins.txt ## 删除密码文件

@@ 第四步: 建立认证文件(默认是没有该文件的)
# vi /etc/pam.d/ftp 插入如下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

@@ 第五步: 建立一个虚拟用户
## 这个用户将会是guest 用户 在/etc/vsftpd.conf 的guest_username=vsftpd 定义
useradd -d /home/vsftpd -s /sbin/nologin vsftpd

只要更改这个虚拟用户的目录,那么ftp登录之后的目录也就随之更改
ls -ld /home/vsftpd
drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/

@@ 第六步: 编写配置文件   (/etc/vsftpd.conf) 后面打星号的为必需添加
# vi /etc/vsftpd.conf
listen=YES // 使用standalone启动vsftpd **重要自己,自己添加
listen_port=2121 ## FTP端口 ***
max_clients=100 //可接受的最大连接数
max_per_ip=5 //每个IP最大的连接数
local_max_rate=5120000 //本地用户的传输比率(b/s)
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
anonymous_enable=NO //禁用匿名账户
local_enable=YES //PAM方式此处必须为YES ***
write_enable=NO //全局控制不可以上传
anon_upload_enable=NO //匿名用户不可以上传
anon_mkdir_write_enable=NO //匿名用户不可以建目录
anon_other_write_enable=NO //匿名用户不可以修改
chroot_local_user=YES //不充许用户更改根目录 ***
guest_enable=YES
guest_username=vsftpd //这两行的意思是采用虚拟用户形式 就是创建的FTP目录
virtual_use_local_privs=YES //虚拟用户和本地用户权限相同 ***重要
user_config_dir=/etc/vsftpd_user_conf //定义虚拟用户配置文件目录  ***
pasv_enable=YES //建立资料联机采用被动方式 ***
pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。 ***
pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。 ***
xferlog_enable=YES //开启日志记录
xferlog_file=/var/log/vsftpd.log //日志存放文件位置
idle_session_timeout=600 //空闲连接超时
data_connection_timeout=120 //数据传输超时
accept_timeout=60 //PAVS请求超时
connect_timeout=60 // PROT模式连接超时

@@ 第七步:建立每个用户的根目录、配置文件的目录和配置文件

# mkdir /home/vsftpd/test1
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/test1 文件内容如下

local_root=/home/vsftpd/test1
write_enable=YES //可写
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

# vi /etc/vsftpd_user_conf/test2 文件内容如下

local_root=/home/vsftpd/test1
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

# chmod 700 /home/vsftpd/test1
# chown vsftpd.vsftpd /home/vsftpd/test1

这样,test1用户可以下载、上传、修改 /home/vsftpd/test1里的文件,而test2用户只能下载/home/vsftpd/test1里面的文件。

第八步: 启动程序,测试
# /usr/local/sbin/vsftpd /etc/vsftpd.conf
还有问题请来论坛寻求帮助:http://www.xxlinux.com/bbs/



@@@ 问题:添加新的用户
第一步:
vi /tmp/logins.txt
以下内容:

test1  //以前的用户如果还需要用,这里不要变
12345
test2
12345
newUser  //新用户的名字
newPass  //新用户的密码

第二步: 创建密码文件
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db

第三步: 添加用户的权限配置文件
# vi /etc/vsftpd_user_conf/newUser # 文件内容如下(用户名作为文件名,与logins.txt的新用户名一致)

local_root=/home/vsftpd/test1 //这个为用户的访问目录.这个一般要修改
write_enable=NO //是否能写
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

第四步: 重启
# killall -9 vsftpd
# /usr/local/sbin/vsftpd /etc/vsftpd.conf &

 
原创粉丝点击