一、什么是ftp服务
传输控制协议,和http类似,它也是一个面向连接的一个协议,它有点区别于http的地方就是,它用两个端口进行工作一个是20一个是21,这两个端口 一个用于进行传输数据文件一个用于控制信息的传输。他只提供你文件的浏览方式,并不是以网页的形式打开,以网页的形式打开是以http协议进行浏览 的.....FTP需要的是用户名和密码的,也可以进行匿名登陆,这要看网站是否进行了权限设置......对了,还有一个内网的问题,如果你是内网用户 话那么就不需要用户名和密码了,就可以直接登陆..是外网的话,就看那个网站是否支持匿名登陆了....
二、ftp服务搭建的环境
在安装前首先要确认selinux为disable
1.配置文件为:/etc/sysconfig/selinux
2.确认yum源是否有效
三、vsftpd服务的搭建
1.yum install vsftpd -y 安装ftp服务
2.systemctl start vsftpd 开启服务
systemctl enable vsftpd 开启开机自启动
3.firewall-cmd --permanent --add-service=ftp 将ftp加入防火墙的允许名单
4.firewall-cmd --reload 重新加载防火墙
图形化界面ftp加入防火墙的允许名单 firewall-conifg
进入之后选择Permanent (永久的)下 , 勾选ftp , 在Options (选择 )选项中选择 Reload Firewalld 重致火墙。
5.firewall-cmd --list-all 查看防火墙的内容 发现ftp已经被允许
服务搭建完成
在客户端链接vsftpd服务器:
安装lftp服务
访问服务端
配置完成。
四、ftp服务的相关配置
ftp服务的配置文件为:/etc/vsftpd/vsftp.conf
1.匿名用户的登陆
anonymous_enable=YES/NO 匿名用户是否可以登陆
2.本地用户的登陆
local_enable=YES/NO 本地用户是否可以登陆
write_enable=YES/NO ftp是否对登陆用户可写
3.匿名用户的上传
1.修改配置文件
write_enable=YES 匿名用户可写
anon_upload_enable=YES 匿名用户可上传
systemctl restart vsftpd 重启服务
2. 修改权限
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
4.匿名 用户的家目录修改
默认情况下匿名用户的家目录为/var/ftp
打开/etc/vsftpd/vsftpd.conf
anon_root=/directory (此目录可任意命名)
5.匿名用户上传文件默认权限修改
修改之后目录下的文件权限为644
6.匿名用户创建目录
anon_mkdir_write_enable=YES
7.匿名用户下载
anon_world_readable_only=YES
8.匿名用户删除
anon_other_write_enable=YES
9.最大上传速率
anon_max_rate=102400 每秒钟100K的速度
dd if=/dev/zero of=/mnt/bigfile bs=1M count=20
10.本地用户上传文件权限
local_umask=022
本地用户上传文件为644
11.限制本地用户浏览目录
chroot_local_user=YES
chmod u-w /home/*
所有用户被锁定在自己的家目录中
12.用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list 在黑名单上添加用户
13.白名单的建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list 在白名单上添加用户
14.限制本地用户登陆
vim /etc/vsftpd/ftpusers 用户黑名单
vim /etc/vsftpd/user_list 用户临时黑名单 (系统默认为黑名单,也可改为白名单)
15.用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list 参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
五、ftp虚拟用户的设定
1.yum install pam 下载安装pam服务
2.创建虚拟身份帐号
vim /etc/vsftpd/user 创建虚拟身份帐号( 文件名任意 )
2.cd /etc/vsftpd/
db_load -T -t hash -f user user.db 生成加密文件
3.vim /etc/pam.d/ftpuser 生成策略文件 ( ftpuser 文件名任意 )
4. vim /etc/ vsftpd/vsftpd.conf 修改ftp的配置文件
pam_service_name=westos ##修改为自己创建的策略文件名
userlist_enable=YES
guest_enable=YES
guest_username=ftp #ftp是存在的用户,虚拟帐号身份指定
systemctl restart vsftpd 重新启动vsftpd服务
5.测试
虚拟帐号家目录的独立设定
1.服务段的配置
2.vim /etc/vsftpd/vsftpd.conf 编辑配置文件
local_root=/username/$USER
user_sub_token=$USER
systemctl restart vsftpd 重新启动vsftpd服务
虚拟帐号的独立设置
1.建立目录
2.vim /etc/vsftpd/vsftpd.conf 修改配置文件 并且注释掉匿名用户上传功能
3.systemctl restart vsftpd 重新启动vsftpd服务
4.编辑文件 /etc/vsftpd/userconf/linux1
5.实验
发现linux1可以上传,其他用户不能上传。