FTP服务搭建

一、 FTP连接及传输模式

1、 FTP连接分为:

1、 控制连接:用于发送FTP命令信息

2、 数据连接:用于上传、下载数据。FTP经常用来搭建数据的连接,搭建起来非常快。

3、 数据连接的建立类型:

(1)      主动模式:服务器主动发起数据连接

(2)      被动模式:服务器被动等待数据连接

2、 传输模式

在传输时,根据是否进行字符转换,分为文本模式和二进制模式。使用二进制模式比文本模式更有效率。

二、 FTP用户类型

1、 匿名用户

2、 本地用户

3、 虚拟用户

三、 搭建匿名访问FTP服务

1、 挂载光盘 mount /dev/sr0 /media/cdrom

2、 服务端安装FTP服务端:yum -y install vsftpd

3、 准备匿名FTP访问的目录 (yum装的默认有目录和程序用户)

cd /var/ftp/

chown ftp pub/

4、 开放匿名用户配置并启动vsftpd服务

cd /etc/vsftpd/

cp vsftpd.conf{,.bak}

vim /vsftpd.conf

全局变量

anonymous_enable=YES 开启匿名用户,默认开启anonymous 匿名

local_enable=YES 开启本地用户,也是默认开启

write_enable=YES 开启写权限

local_umask=022 FTP用户登录后掩码权限

anon_upload_enable=YES 开启匿名用户上传权限

anon_umask=022  手动添加匿名用户的权限掩码

anon_mkdir_write_enable=YES 开启匿名用户新建目录的权限

anon_other_write_enable=YES  手动添加匿名用户的其他写入

 

启动服务 /etc/init.d/vsftpd start

netstat -autup | grep vsftpd

成功如下:

 

5、 测试匿名FTP服务器

在客户端安装FTP客户端

mount /dev/sr0 /media/cdrom

yum -y install ftp

登录 ftp 192.168.220.131

 Ctrl+D 退出页面

匿名用户不是没有名字,而是统一就叫ftp,没有密码

ftp支持的命令可以用help查看,put是上传,get是下载

四、 搭建本地用户验证的FTP服务

1、 创建本地用户 useradd test1  创建密码passwd test1

2、 修改配置文件,重启FTP服务

cd /etc/vsftpd/

mv vsftpd.conf vsftpd,conf.anon

cp vsftpd.conf.bak vsftpd.conf

vim vsftpd.conf

把匿名用户关了anonymous_enable=NO

96 chroot_local_user=YES 开启本地用户的家目录锁定

 

3、 启动服务 /etc/init.d/vsftpd reload

 

4、 客户端测试

登录ftp 192.168.220.128

登录用户

输入密码

 

每个下载上传都是在服务器用户的家目录里

5、 在本地用户的FTP服务器上/etc/vsftpd有两个列表ftpusers和user_list

1、 ftpusers 文件:FTP服务器中的黑名单,优先级高于user_list文件

2、 user_list文件: 此用户列表默认情况下也是黑名单,但是可以通过vsftpd.conf主配置文件的修改赐名单位白名单,且仅此名单中的用户可以访问。

3、 把user_list修改为白名单

vim vsftpd.conf

userlist_enable=YES

userlist_deny=NO

/etc/init.d/vsftpd reload 重启服务

五、 搭建虚拟账号FTP服务

FTP自身程序用户就是FTP

1、 备份配置文件

cd /etc/vsftpd

mv vsftpd.conf vsftpd.conf.local

cp vsftpd.conf.bak vsftpd.conf

2、 建立虚拟用户账号数据库

vsftpd服务使用berkeley DB格式的数据库文件来存放虚拟用户账号,使用db_load工具生成数据库文件。(若没有db_load工具,则它的软件名为db4_utils)

vim ./vusers.list  新建一个虚拟用户账号密码列表文件

db_load -T -t hash -f vusers.list vusers.db 把这个文件用hash算法加密

chmod 600 vusers.db 修改用户密码文件权限,增强安全性

3、 添加虚拟映射账号,为FTP根目录修改权限

mkdir -p /var/ftproot/

useradd -d /var/ftproot/ -s /sbin/nologin virtual

chmod 755 /var/ftproot/

4、 增加PAM认证

vim /etc/pam.d/vsftpd.vu 手动建立此pam认证文件

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

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

5、 修改配置文件

vim vsftpd.conf

anonymous_enable=NO

local_enable=YES

23    anon_umask=022 设置虚拟用户的权限掩码

117  pam_service_name=vsftpd.vu

118  guest_enable=YES

119  guest_username=virtua

 

l

 6、/etc/init.d/vsftpd reload 重启服务

 7、客户端测试

              ftp 192.168.220.128

 

8、实现每个虚拟用户不同根目录,不同权限的管控。

              1、创建用户控制目录

                     cd /etc/vsftpd/

                     mkdir ./vusers.dir

    2、创建虚拟用户所对应的同名配置文件

          cd vusers.dir

          touch zhangsan lisi wangwu

    3、修改zhangsan 等配置文件,使其可以上传、建立目录、删除文件,重命名文件、最大传输速率1字节/秒、根目录为/var/zhangsan等

    mkdir /var/zhangsan

          vim zhangsan

          anon_upload_enable=YES

          anon_mkdir_write_enable=YES

          anon_other_write_enable=YES

          anon_max_rate=1

          local_root=/var/zhangsan

    4、 chown virtual /var/zhangsan 修改属主

    5、 修改主配置文件

    vim /etc/vsftpd/vsftpd.conf

    122  user_config_dir=/etc/vsftpd/vusers.dir

              6、重启服务 /etc/init.d/vsftpd reload

                 ftp 192.168.220.132

                     账号名

                     密码

 

posted @ 2018-12-06 20:39  aspen-  阅读(154)  评论(0)    收藏  举报