如何在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 来进行数据的传输;

如何在VirtualBox的Linux上安装配置vsftpd并且在实体机*问虚拟机的ftp服务器



点击连接之后会发现连接失败。

这是因为 iptables 里面并没有开发 21 端口,所以需要这么做:

#   iptables  -A  INPUT  -p  tcp  --dport  21  -j  ACCEPT

#   iptables  -A  INPUT  -p  tcp  --dport  20 -j  ACCETP

#   service iptables restart


完成之后重新连接。

如何在VirtualBox的Linux上安装配置vsftpd并且在实体机*问虚拟机的ftp服务器

这样就连接成功了。

如果上传和下载文件有问题的话,可以从这几个方面着手:

1:文件的权限问题;

2: 将 SELinux 的 ftpd_full_access 设置为 on;

#    setsebool -P ftpd_full_access=on