vsftp服务器配置

FTP模式


ftp主动模式  21验证握手   20数据传输
ftp被动模式  21验证握手   1024-65535数据传输   ---默认FTP模式


1.安装vsftpd
yum -y install vsftpd 


/etc/logrotate.d/vsftpd   日志滚动
/etc/pam.d/vsftpd   验证文件
/etc/rc.d/init.d/vsftpd  启动脚本
/etc/vsftpd/ftpusers      拒绝用户列表
/etc/vsftpd/user_list  用户访问控制文件(拒绝/只允许)
/etc/vsftpd/vsftpd.conf   主配置文件
/var/ftp匿名用户家目录
/var/ftp/pub  匿名用户扩展目录 


主配置文件三种配置: 全局配置,本地用户配置local,匿名用户anon  虚拟用户






实例1:
只启匿名用户,匿名用户可读可写(上传/新建目录/删除/下载),禁用本地用户:
1.vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=yes
local_enable=NO
write_enable=yes
local_umask=022
anon_upload_enable=YES --匿名用户可上传文件
anon_mkdir_write_enable=YES --可新建文件夹 
anon_other_write_enable=YES --可改名/删除
anon_umask=022 --匿名用户上传文件,可下载
dirmessage_enable=YES   开启目录消息功能
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES


给本地目录授权:
# chown ftp /var/ftp/pub/         或chmod 777 /var/ftp/pub/   更改目录本身权限


# service vsftpd restart
# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      26761/vsftpd      
# chkconfig vsftpd on


警告:不要把/var/ftp目录权限改成777,否则开启selinux


chmod 777 /var/ftp/pub   更改目录本身权限


实例一:匿名用户只能上传不能下载:
anonymous_enable=YES      开启匿名用户
download_enable=NO               不能下载
anon_upload_enable=YES              匿名能上传
(anon_mkdir_write_enable=YES           匿名能新建目录)


实例二匿名用户下载 被上传的文件
在第23行增加   anon_umask=022          匿名文件上传后权限为755
 
实例三  匿名用户上传后自动更改属主:指定上传文件拥有人
46 chown_uploads=YES
47  chown_username=root


实例四  anon_world_readable_only=YES --只读,只能下载


实例五  将本地用户登录锁定在自己的家目录


96   chroot_list_enable=YES    --禁锢家目录
    #(default follows)
chroot_list_file=/etc/vsftpd/chroot_list   
vim /etc/vsftpd/chroot_list 
student      --将student禁锢在家目录中
+++++++++++
如果chroot_local_user=YES  则/etc/vsftpd/chroot_list中不受限
 ++++++++++
 
实例六  FTP自身的访问控制
vim /etc/vsftpd/ftpusers   拒绝用户列表
vim /etc/vsftpd/user_list
当 userlist_enable=YES  启用/etc/vsftpd/user_list
    userlist_deny=YES    拒绝的作用(默认)
    userlist_deny=NO   只允许的作用
user_list中的用户可登录,ftpusers中的用户不能登录
二者有冲突,拒绝优先
user01-->/etc/vsftpd/user_list-->/etc/vsftpd/ftpusers


实例七  匿名用户和认证用户上传文件夹到不同的目录 
anon_root=/var/ftp/temp     --指定家目录
local_root=/var/ftp/data




FTP虚拟主机
基于不同IP相同端口
ifconfig eth0 192.168.0.158
ifconfig eth0:0 192.168.0.159
# cd /etc/vsftpd/
# cp vsftpd.conf vsftpd2.conf


# vim /etc/vsftpd/vsftpd.conf 
listen_address=192.168.0.158
listen_port=21


# vim /etc/vsftpd/vsftpd2.conf
listen_address=192.168.0.159
listen_port=21


+++++++++++++++++++++
anon_root=/var/ftp/none    基于不同IP相同端口 ftp不同家目录
++++++++++++++++++++
# service vsftpd restart


基于相同IP的不同端口
# cd /etc/vsftpd/
# cp vsftpd.conf vsftpd2.conf
# vim vsftpd2.conf
 listen_port=2121
anon_root=/var/ftp/none
local_root=/var/ftp/local


-----------------
ftp连接控制:
max_clients=100 --全局的最大连接数
max_login_fails=3 --最大的登录失败
max_per_ip=2 --每IP的最大连接数2个
local_max_rate=100000 --本地用户的最大传输速率,单位是字节
anon_max_rate=50000


官方示例:
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS




----------------------
虚拟用户:
Step 1) 创建虚拟用户的数据库:




# vim /root/logins.txt
a
123
b
456
c
789


# yum -y install db4-utils
# db_load -T -t hash -f /root/logins.txt /etc/vsftpd/login.db --转换格式
# chmod 600 /etc/vsftpd/login.db




Step 2) 创建PAM的配置文件,指向你新建用户数据库( /etc/vsftpd/login.db)
# vim /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
[root@r1 ~]# find / -name pam_userdb.so






Step 3) 新建一个本地用户(a b c-->virtual-->/etc/vsftpd/login.db)


# useradd -d /home/ftpsite virtual -s /sbin/nologin
# ls -ld /home/ftpsite
(which should give):
drwx------    3 virtual  virtual      4096 Jul 30 00:39 /home/ftpsite


# cp /etc/hosts /home/ftpsite
# chown virtual.virtual /home/ftpsite/hosts




Step 4)更改主配置文件,包括以下的选项:
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=NO
chroot_local_user=YES
connect_from_port_20=YES
guest_enable=YES --启用虚拟用户
guest_username=virtual --被映射本地用户的身份
listen=YES
pam_service_name=/etc/pam.d/ftp
pasv_min_port=30000
pasv_max_port=30999




Step 5) Start up vsftpd.
# service vsftpd start




Step 6) 测试
使用a b c三个用户测试。。。




a
b--- 【虚拟用户】-->21(vsftpd)-->virtual(系统用户)-->user_list-->/etc/pam.d/ftp-->login.db-->a/123--> cd $HOME 
c




扩展FTP的功能
a: mkdir /home/ftpsite/a
b: mkdir /home/ftpsite/b
c: /home/ftpsite/
# chown -R virtual.virtual /home/ftpsite/
++++++++++++++++++++++++
a 上传 50k
b 下载  200k vip
c 什么都可以  超级vip不限速
+++++++++++++++++++++++++
# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/ew/
# mkdir /etc/vsftpd/ew/


# vim /etc/vsftpd/ew/a
local_root=/home/ftpsite/a
anon_world_readable_only=YES  ---下载
write_enable=YES                         
anon_upload_enable=YES    
anon_max_rate=50000




# vim /etc/vsftpd/ew/b
local_root=/home/ftpsite/b
anon_world_readable_only=NO
anon_max_rate=200000




# vim /etc/vsftpd/ew/c
local_root=/home/ftpsite
anon_world_readable_only=NO
anon_max_rate=0
anon_upload_enable=YES
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES


定义全局限制:
# vim /etc/vsftpd/vsftpd.conf
max_clients=100
max_per_ip=2






在服务上创建下载测试文件
# dd if=/dev/zero of=/home/ftpsite/down.iso count=10 bs=10M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值