Linux虚拟机下FTP服务器的搭建(详细) |
您所在的位置:网站首页 › 虚拟机ip地址配置步骤 › Linux虚拟机下FTP服务器的搭建(详细) |
1. 简述
1.1 关于FTP
文件传输协议(FTP),能够让用户在互联网中上传或下载文件的文件协议,FTP服务器即可支持FTP传输协议的主机 用户使用使用FTP客户端向FTP服务端发起链接并发送指令,服务器收到用户指令后将结果返回客户端即可完成文件传输 FTP协议占用两个端口 20端口:数据传输,用于文件上传与下载 21端口:命令控制,用于接收客户端的FTP命令 数据传输类型:主动模式和被动模式 1.2 关于VsftpVsftp是一个在Linux操作系统上的运行的FTP服务端程序,具有完全开源及免费、速率高、安全性好,支持IPv6、虚拟用户等其他FTP服务端软件不具有的功能 2. 安装 2.1 安装 Vsftpd服务程序我们修改为root用户,这样可以避免一些root权限问题 [root@Hoster130 Hoster]# yum -y install vsftpd 出现下图即表示安装成功 查看一下vsftpd的状态,确定服务是否启动 [root@Hoster130 Hoster]# systemctl status vsftpd 发现 显示为dead,说明服务没有启动 我们需要手动开启服务,并且可设置为开机启动(自己所需要的都可设置为开机启动) [root@Hoster130 Hoster]# systemctl start vsftpd\\开启服务 [root@Hoster130 Hoster]# systemctl enable vsftpd\\设置为开机启动 再次查看状态,发现显示为running,说明服务成功开启 因为Linux系统默认是有防火墙的,要先关闭防火墙 [root@Hoster130 Hoster]#systemctl stop firewalld.service\\关闭防火墙 [root@Hoster130 Hoster]#systemctl disable firewalld.service\\禁止防火墙开机启动 [root@Hoster130 Hoster]#firewall-cmd --reload\\重启防火墙 3. 设置用户登录的不同方式 3.1 介绍Vsftpd程序提供的FTP服务分为三种登录认证方式,分别为匿名访问、本地用户和虚拟用户 匿名访问:任何用户无需验证即可登录FTP服务端 本地用户:需要使用FTP服务器中的用户、密码信息 虚拟用户:创建独立的FTP账号信息 安全程度由前到后依次递增,虚拟用户是最安全的 3.2 匿名访问模式配置Vsftpd.conf文件 [root@Hoster130 Hoster]# vi /etc/vsftpd/vsftpd.conf 因为要开启匿名用户的上传和写入权限,写入以下参数 #允许匿名访问 anonymous_enable=YES #匿名用户上传文件的umask值 anon_umask=022 #允许上传文件 anon_upload_enable=YES #允许创建目录 anon_mkdir_write_enable=YES #允许修改或删除目录 anon_other_write_enable=YES 保存以后重启vsftpd服务,并设置为开机自启动 [root@Hoster130 Hoster]# systemctl restart vsftpd [root@Hoster130 Hoster]# systemctl enable vsftpd 安装ftp命令 [root@Hoster130 Hoster]# yum install ftp -y 接下来就可以在客户端中登入FTP服务了,后面两个登录模式均在客户端中测试(可再另一台虚拟机下载,并测试连接) ftp [参数] [ FTP主机地址],Name输入anonymous,password敲回车 这时我们创建一个文件,发现创建失败,为pub设置777权限 [root@Hoster140 Hoster]# chmod 777 /var/ftp/pub 重新创建,对files进行修改删除操作 配置vsftpd.conf文件(注意:各个模式下的vsftpd.conf文件内容都不一样,需重新配置,避免因配置文件冲突而报错),写入以下参数 #禁止匿名访问 anonymous_ enable=NO #允许本地用户模式 local_ enable=YES #设置可写入权限 write_ enable=YES #本地用户模式创建文件的umask值 local_ umask=022 #禁止的用户表为YES,允许的用户表为NO userlist_ deny=YES #允许“禁止登陆名单”,名单文件为ftpusers和user_listuserlist_ enable=YES userlist_ enable=YES 保存以后重启vsftpd服务,并设置为开机自启动 [root@Hoster130 Hoster]# systemctl restart vsftpd [root@Hoster130 Hoster]# systemctl enable vsftpd 查看用户禁止名单 [root@Hoster130 ~]# more /etc/vsftpd/ftpusers 因为默认禁止root用户,所以我换成普通用户Hoster,登录成功 进行测试,操作成功 创建生成数据库的原始账号密码 进入/etc/vsftpd的目录下 [root@Hoster130 vsftpd]# vi vuser.list 使用db_load命令用HASH算法生成数据库文件 [root@Hoster130 vsftpd]# db_load -T -t hash -f vuser.list vuser.db 授予权限,提高安全性 [root@Hoster130 vsftpd]# chmod 600 vuser.db 删除原始账号密码 [root@Hoster130 vsftpd]# rm -f vuser.list 查看一下,发现数据库文件vuser.db已经存在了 创建用户virtual,设置为禁止登陆系统,并定义该用户的家目录 [root@Hoster130 vsftpd]# useradd -d /var/ftproot -s/sbin/nologin virt 查看家目录权限 [root@Hoster130 ftproot]# ls -ld /var/ftproot/ 为保证其他用户可以访问,给予rwxr-xr-x权限 [root@Hoster130 ftproot]# chmod -Rf 755 /var/ftproot/ (3)建立支持虚拟用户的PAM认证文件[root@Hoster130 ~]# vi /etc/pam.d/vsftpd.vu [root@Hoster130 ~]# vi /etc/vsftpd/vsftpd.conf 写入以下参数 #禁止匿名访问 anonymous_ enable=NO #允许本地用户模式 local_ enable=YES #开启虚拟用户模式 guest_ enable=YES #指定虚拟用户账号 guest_ username=virt #指定pam文件 pam_ service_ name=vsftpd.vu #允许禁止的FTP根目录可写而不拒绝用户登入请求 allow_ writeable_ chroot=YES (5)给虚拟用户设置权限添加独立权限配置文件存放目录 [root@Hoster130 ~]# vi /etc/vsftpd/vsftpd.conf 创建独立权限配置文件存放目录 [root@Hoster130 ~]# mkdir /etc/vsftpd/vusers_dir 在该目录中创建空白linuxprobe配置文件(原始账号文件中的第一个账号) [root@Hoster130 vusers_dir]# touch linuxprobe 指定blackshield用户的具体权限(原始账号文件中的第二个账号) [root@Hoster130 vusers_dir]# vi blackshield [root@Hoster130 Hoster]# systemctl restart vsftpd [root@Hoster130 Hoster]# systemctl enable vsftpd 进行虚拟用户测试,登录blackshield用户 [root@Hoster140 ~]# ftp 192.168.161.130 声明:此文章通过阅读学习书籍以及查找网上资源所写,部分内容存在引用 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |