一 :概述
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议常见FTP服务器:windows:Serv-U FTP Server,filezilla_serverLinux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。下面用到的的是现在主流的ftp服务器:vsftpd
vsftp的工作流程分为两类 主动模式和被动模式
[root@localhost]#yum -y install vsftpd
[root@localhost]#systemctl start vsftpd
[root@localhost]#systemctl enable vsftpd
三 配置匿名登陆vsftpd
要求:公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用户自己的目录。
分析:允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能开启,anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录.
[root@localhost]#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.con.bak
[root@localhost]#vim /etc/vsftpd/vsftpd.conf
注:
允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并可以创建目录anon_upload_enable=YESanon_mkdir_write_enable=YES4
4. 修改文件夹权限
[root@localhost]#mkdir /var/ftp/test
[root@localhost]#chown ftp.ftp /var/ftp/test/
在文件管理器中输入vsftpd 服务器IP地址
ftp://192.168.1.55
四 配置账户登陆ftp服务器
要求:公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。 ftp 和www web服务器相结合。www web服务器根目录: /var/www/html只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。
分析:将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1和team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限
解决方案:
[root@localhost ~]#useradd -s /sbin/nologin team1
[root@localhost ~]#useradd -s /sbin/nologin team2
[root@localhost ~]# echo "123456" | passwd --stdin team1
[root@localhost ~]# echo "123456" | passwd --stdin team2
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]# cp vsftpd.conf.back vsftpd.conf
[root@localhost vsftpd]# vim vsftpd.conf
改为
注: local_root=/var/www/html:设置本地用户的根目录为/var/www/htmlchroot_list_enable=YES:激chroot 功能chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名allow_writeable_chroot=YES :允许锁定的用户有写的权限
[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list #写入以下内容,一行,一个用户名
team1
team2
[root@localhost ~]# chmod -R o+w /var/www/html/
[root@localhost ~]# systemctl restart vsftpd