部署FTP服务器时,默认是使用真实用户来登录和使用,如果用户数量很多,则需要建立很多的真实用户来满足需求,麻烦且不安全。建立虚拟用户的vsftp就可以解决这个问题,同时添加删除用户也十分方便,下面开始详解安装和配置的过程。
1.编译安装vsftp<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

tar zxvf vsftpd-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2.0.7.tar.gz

cd vsftpd-2.0.7

 

如果是64位的系统则需修改vsf_findlibs.sh

vi vsf_findlibs.sh

修改

locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0"; locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";

locate_library /lib/libcap.so.1 && echo "/lib/libcap.so.1"; locate_library /lib64/libcap.so.1 && echo "/lib64/libcap.so.1";

 

make

install -m 755 vsftpd /usr/sbin/vsftpd

cp vsftpd.conf /etc/

vi /home/passwd.txt

用户名(随意输入)

密码(随意输入)

例:download

123456

    upload

    123456

    admin

    123456

 

 

2. 安装db4

rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm (32位系统)

rpm –ivh db4-utils-4.3.29-9.fc6.x86_64.rpm(64位系统)

db_load -T -t hash -f /home/passwd.txt /etc/vsftpd_login.db

chmod 600 /etc/vsftpd_login.db

cd vsftpd-2.0.7

cd EXAMPLE/

cp VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp

 

如果是64位系统则需修改/etc/pam.d/ftp

 

vi /etc/pam.d/ftp

改成

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login

 

3. 创建虚拟用户

useradd -d /home/ftpsite/ virtual

vi /etc/passwd

修改为:virtual:x:510:510::/home/ftpsite/:/bin/nologin

 

 

 

 

4.编辑vsftp配置文件

vi /etc/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

idle_session_timeout=600

ftpd_banner=Welcome to tfhudong FTP service.

listen=yes

listen_port=21

guest_enable=YES

pam_service_name=ftp

user_config_dir=/etc/vsftpd_user_conf

dual_log_enable=YES

vsftpd_log_file=/var/log/vsftpd.log

#50K

#Local_max_rate=50000

#30K

#Anon_max_rate=30000

pasv_min_port=50000

pasv_max_port=60000

pasv_enable=yes

max_clients=200

max_per_ip=4

check_shell=NO

anon_root=/home/ftpsite/m

 

5.创建虚拟用户权限文件

 

mkdir /etc/vsftpd_user_conf

cd /etc/vsftpd_user_conf

touch download upload admin

 

6. 创建用户家目录(如果需要则添加)

mkdir /home/ftpsite/download

chmod 700 /home/ftpsite/download

chown virtual.virtual /home/ftpsite/download

 

mkdir /home/ftpsite/upload

chmod 700 /home/ftpsite/upload

chown virtual.virtual /home/ftpsite/upload

 

mkdir /home/ftpsite/admin

chmod 700 /home/ftpsite/admin

chown virtual.virtual /home/ftpsite/admin

7编辑用户权限文件

vi download

anon_world_readable_only=NO

guest_username=virtual

local_root=/home/ftpsite/download #download用户的家目录,需自定义

 

vi upload

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

guest_username=virtual

local_root=/home/ftpsite/upload #upload 用户的家目录

 

vi admin

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

anon_mkdir_write_enable=YES

anon_umask=0999

guest_username=virtual

local_root=/home/ftpsite/admin #admin 用户的家目录

 

8配置iptables防火墙并开放ftp端口

vi /etc/sysconfig/iptables

添加:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # 21是监听端口,在vsftpd.conf中设置的listen [端口]对应

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50000:60000 -j ACCEPT #传输数据用50000----60000之间的端口 vsftpd.conf中的pasv_min_port=50000 pasv_max_port=60000 对应

重启iptables

/etc/init.d/iptables restart

9启动vsftpd

不间断运行vsftpd

nohup /usr/sbin/vsftpd /etc/vsftpd.conf &
10 测试
VSFTPD虚拟用户搭建方法
先测试download用户(只允许下载,不允许上传、新建、删除)
VSFTPD虚拟用户搭建方法
VSFTPD虚拟用户搭建方法
把123文件下载到本地
VSFTPD虚拟用户搭建方法
测试上传功能(应阻止上传)
VSFTPD虚拟用户搭建方法
VSFTPD虚拟用户搭建方法
VSFTPD虚拟用户搭建方法
VSFTPD虚拟用户搭建方法
测试成功!
同理测试upload和admin用户功能。

转载于:https://blog.51cto.com/mengxi/210583

相关文章:

  • 2021-06-27
  • 2022-01-14
  • 2021-05-22
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
猜你喜欢
  • 2021-12-15
  • 2021-06-20
  • 2021-05-28
  • 2022-12-23
  • 2021-04-05
  • 2021-06-03
  • 2021-05-22
相关资源
相似解决方案