linux ftp服务

主动模式port:服务器主动发起数据连接。客户端向服务器21端口建立ftp数据连接。服务器从20端口向客户端随机端口发送数据。

被动模式pasv:服务器被动等待数据连接。如果客户机防火墙禁止主动模式,会采用被动模式。客户端向服务器21端口建立ftp数据连接。需要传输数据时,客户端向服务器设定范围内的端口(非20)建立数据连接。


开始:

关闭安全系统

setenforce  0

关闭防火墙

service  iptables stop

1.  安装软件包

mount   /dev/cdrom   /mnt

rpm  -ivh   /mnt/Packages/vsftpd-2.2.2-11.el6.i686.rpm

2.  修改配置文件

vi   /etc/vsftpd/vsftpd.conf

(1)匿名访问

修改配置文件语句:

允许匿名访问

anonymous_enable=YES

 

上传文件默认掩码值

local_umask=022

 

允许匿名用户上传文件

anon_upload_enable=YES

 

允许匿名用户创建目录,写入权限

anon_mkdir_write_enable=YES

 

允许匿名用户删除、覆盖、重命名

anon_other_write_enable=YES

 

限制匿名用户最大传输速率

anon_max_rate=10240

 

保存,启动服务

service   vsftpd   start

(2)本地用户访问

vi   /etc/vsftpd/vsftpd.conf

local_enable=YES      允许本地用户访问

local_root=/var/ftp      设置登录ftp家目录

write_enable=YES      启用vsftpd 服务总开关

local_umask=022        用户上传文件/目录权限掩码

chroot_local_user=YES      锁定本地账户在家目录

保存,service  vsftpd    reload

直接输入本地用户账号密码即可登录

user_list用户列表文件

vi    /etc/vsftpd/user_list

输入本地账户名,如jack

vi   /etc/vsftpd/vsftpd.conf

userlist_enable=YES                        启用用户列表文件

userlist _deny=NO                    白名单,只有user_list中的用户才能访问ftp

userlist _deny=YES                   黑名单,user_list中的用户不能访问ftp

系统默认为YES

修改vsftpd服务监听地址、端口

listen=YES     允许独立监听

listen_address=                  只在一个接口监听服务

listen_port=                       监听端口改为

netstat   -anpt   | grep   “vsftpd”                      确认vsftpd监听情况

pasv_enable=YES                    允许被动连接

pasv_min_port=24500             指定被动模式下限端口

pasv_max_port=24600            指定被动模式上限端口

max_clients=20                       限制并发客户连接最多20

max_per_ip=2                          每个IP连接数最多2

anan_max_rate=50000             限制匿名用户传输速率50kB/s

local_max_rate=200000            限制匿名用户传输速率200kB/s

(3)虚拟用户访问ftp

首先挂载,安装软件包

mount /dev/cdrom /mnt

rpm   -ivh   /mnt/Packages/db4-utils-4.7.25-17.el6.i686.rpm

创建文本格式用户名密码列表

vi   /etc/vsftpd/vusers                  创建名为vusers文件

t01                                             设置账号

abc                                                  密码

t02

abc

创建数据库文件

cd   /etc/vsftpd/

将文本文件转化成数据库文件

db_load   -T   -t   hash    -f    vusers    vusers.db            

更改用户账号文件权限

chmod    600    /etc/vsftpd/vusers

chmod    600    /etc/vsftpd/vusers.db

添加虚拟用户映射账号

useradd    -d  /var/ftproot  -s   /sbin/nologin    vusers                 用户名vusers

为虚拟用户建立PAM认证文件

vi    /etc/pam.d/vsftpd.vu

auth       required      pam_userdb.so  db=/etc/vsftpd/vusers

account    required      pam_userdb.so  db=/etc/vsftpd/vusers

修改vsftpd文件配置

local_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

guest_enable=YES

guest_username=vusers

pam_service_name=vsftpd.vu

#pam_service_name=vsftpd

保存,重启vsftpd服务

然后可以使用t01登录了,密码abc

为不同虚拟用户建独立配置文件

vi   /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

保存

mkdir   /etc/vsftpd/vusers_dir

cd   /etc/vsftpd/vusers_dir

vi   t01

local_root=/var/t01                                设置登录家目录

anon_upload_enable=YES                      允许上传文件

anon_mkdir_write_enable=YES                允许写入权限

保存,重启服务

mkdir   /var/t01

这时候用t01登录时,会登录在/var/t01

vi   t02

local_root=/var/t02

保存,重启服务

mkdir   /var/t02   

t02登录时,会登录在/var/t02