如何在VirtualBox的Linux上安装配置vsftpd并且在实体机上访问虚拟机的ftp服务器
今天捣鼓了一下午,终于实现了在虚拟机上安装配置vsftpd,并且在自己的实体机上访问到虚拟机的 ftp 服务器。
一:实验环境:
MacOS
VirtualBox
Redhat7
网络环境: 校内网
二:配置yum源
为了后续能够用 yum 来安装 vsftpd,需要配置 yum 源。这里是利用 iso 镜像来配置 yum 源。
(1)首先将 redhat 的 iso 镜像挂载到虚拟机;
# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom
(2)为了下次开机的时候能够自动挂载,需要配置一下 /etc/fstab 文件;
# vim /etc/fstab
在文件末尾添加:
/dev/cdrom /media/cdrom iso9660 defaults 0 0
保存文件。
(3) 配置本地 yum 文件
# cd /etc/yum.repos.d
# touch rhel.repo
# vim rhel.repo
添加如下内容:
[rhel]
name=rhel7 #自定义名称
baseurl=file:///media/cdrom # 光盘挂载路径
enabled=1 # 1为启动yum源, 0为关闭
gpgcheck=0 # 检查 GPG-KEY, 1为打开, 0为打开
然后保存。
三: 安装配置 vsftpd
# yum install vsftpd
vsftpd有三种认证模式:
(1)匿名开放模式:任何人都可以不需要密码就能登陆到ftp服务器;
(2)本地用户模式:通过Linux本地的账户可以登陆到ftp服务器;
(3)虚拟用户模式:通过建立属于虚拟的ftp账户来登陆,Linux本地并不存在对应的用户;
我这里主要测试本地用户模式。
步骤:
(1)首先,创建一个本地用户,用户名为:ftpuser1;
建立 ftpuser1 的 home 目录:
# mkdir /home/ftpuser1
添加用户:
# useradd -d /home/ftpuser1 -g ftp -s /sbin/nologin ftpuser1
-d 用于设置 home 目录;
-g 用于设置用户所属的组;
-s 用于指定用户的shell解析器,指定为 /sbin/nologin 的话这个用户是服务登陆到 Linux 系统的。这样可以提高安全性;
用 id ftpuser1 可以查看该用户;
为 ftpuser1 设置密码(记住这个密码,后面会用到):
# passwd ftpuser1
(2)配置 vsftpd;
# vim /etc/vsftpd/vsftpd.conf
将 anonymous_enable设置为no 这样可以禁止匿名登陆。
三、连接到 ftp 服务器 并且排错;
我用 FileZilla 这个软件来连接。
ip地址通过 ifconfig 命令来获得;
连接的端口号为:21 ; ftp 服务器默认使用端口号 21 来进行连接, 端口号 20 来进行数据的传输;
点击连接之后会发现连接失败。
这是因为 iptables 里面并没有开发 21 端口,所以需要这么做:
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# iptables -A INPUT -p tcp --dport 20 -j ACCETP
# service iptables restart
完成之后重新连接。
这样就连接成功了。
如果上传和下载文件有问题的话,可以从这几个方面着手:
1:文件的权限问题;
2: 将 SELinux 的 ftpd_full_access 设置为 on;
# setsebool -P ftpd_full_access=on