Chinaunix首页 | 论坛 | 博客

rgy

  • 博客访问: 411745
  • 博文数量: 179
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 1890
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-19 08:45
文章分类

全部博文(179)

文章存档

2012年(7)

2011年(43)

2010年(60)

2009年(69)

我的朋友

分类:

2010-12-30 12:40:51

 vsftpd安装

cd /usr/ports/ftp/vsftpd
make install clean

2. vsftpd的配置文件与启动文件

(1)配置文件的位置 /usr/local/etc/vsftpd.conf
(2)启动文件的位置 /usr/local/libexec/vsftpd

3. vsftpd虚拟用户的配置

vi /usr/local/etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO

listen=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty
background=YES

listen_port=5123     #为了安全,这里修改ftp的端口号
use_localtime=YES
pam_service_name=vsftpd
user_config_dir=/usr/local/etc/vsftpd/

4. 创建虚拟用户目录与用户的配置文件
用哪个系统用户做为虚拟用户的用户,权限就是谁的,例如用www,作为虚拟用户映射的用户。权限就应该为www。通常该方法用于网站的代码的上传。

# mkdir /usr/local/etc/vsftpd

#cd /usr/local/etc/vsftpd
# vi abc
guest_enable=YES
guest_username=apache
local_root=/data/htdocs/www
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_umask=022

用户apache为本地用户,意思是将虚拟用户映射为本地用户(这里可能有问题,apache用户默认的sh为nologin的,用ftp连接的时候发现直接就提示 "500 OOPS: cannot change directory:/nonexistent"),如果为其它用户的话,一定要确认用户有目录的访问权限

其中上面的一些选项,可以在vsftpd.conf里进行全局配置的,这样再添加用户的时候就方便多了。这里有些配置是重复的.但不受影响的.

5. 安装vsftpd密码认证模块

cd /usr/ports/security/pam_pwdfile
make install clean

用于生成/usr/local/lib/pam_pwdfile.so文件
注:pam_pwdfile.so

6. 创建vsftpd认证模块
创建认证模块,记得清除默认配置文件里的auth和account内容,注释掉也可以。

# cp /etc/pam.d/ftpd /etc/pam.d/vsftpd
#vi /etc/pam.d/vsftpd
auth          sufficient   /usr/local/lib/pam_pwdfile.so  pwdfile=/usr/local/etc/login
account     sufficient   pam_permit.so

7. 创建用户密码
可以用以下代码来实现用户密码的加密,用于ftp的用户验证。

# vi /usr/local/etc/add_ftp_user.pl
#! /usr/bin/perl -w
#filename: md5pwd.pl
use strict;
#
print "#example: user:passwd\n";
while () {
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 /usr/local/etc/add_ftp_user.pl

# /usr/local/etc/add_ftp_user.pl
#example: user:passwd
abc:abc
abc:$1$gLAEihTV$jQnPZDk4C8TZSrc.L7gLm/

说明:然后把上面的用户名与密码文件复制到下面的login文件中

# vi /usr/local/etc/login
abc:$1$gLAEihTV$jQnPZDk4C8TZSrc.L7gLm/

9. 启动服务
启动:

/usr/local/libexec/vsftpd

关闭:直接kill掉

#killall vsftpd

10. 测试vsftpd的登录情况

略,和下面的一样.

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

11.添加新用户

下面我们来添加一个新用户

#/usr/local/etc/add_ftp_user.pl
#example:user:password
haohtml:com
haohtml:$1$b5cRPRVT$MODPUh9H0F1JWaioqbrXB.

echo 'haohtml:$1$b5cRPRVT$MODPUh9H0F1JWaioqbrXB.' >> /usr/local/etc/login

添加配置文件:

vi /usr/local/etc/vsftpd/haohtml

将下面内容添加到文件里

local_root=/data/htdocs/haohtml
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_umask=022

重启vsfptd 生效

#/usr/local/libexec/vsftpd

阅读(958) | 评论(0) | 转发(0) |
0

上一篇:linux下mount lvm分区

下一篇:ssh 后门

给主人留下些什么吧!~~