Linux下搭建FTP服务器

Linux下搭建FTP服务器

本文档默认前提是操作系统为red hat linux,解决:

1、 FTP服务器搭建

2、 关闭防火墙  

3、 Selinux的选项开启

4、 添加新用户

5、 注意

6、 连接实现

请检查相应软件安装情况,如系统已经正确安装部分软件,可略过。

一、 搭建FTP服务器

1) 安装Fedora vsftp命令:

        #yum install vsftpd

   一路yes,最后提示安装成功。 

2)配置Fedora vsftpd.conf

   ①输入命令:

  #vi /ect/vsftpd/vsftpd.conf

 

   ②将vsftpd.conf文件中的设置如下:

  anonymous_enable=YES

  local_enables=YES

  write_enable=YES

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  ascii_upload_enables=YES

  ascii_download_enable=YES 

3) 启动Fedora vsftpd

          #service vsftpd start 

4) root用户可以ftp上传

   ①删除ftpusersuser_list下的root记录,输入命令如下:

  # vi /etc/vsftpd/ftpusers 

  #vi /etc/vsftpd/user_list

   找到root,删除即可

 

   ②通过命令:

   #setsebool -P ftpd_disable_trans 1fedora

   #vi /etc/selinux/selinux/config

   找到SELINUX

   SELINUX=disabled

5) 重启 Fedora vsftpd

          #service vsftpd restart

   到此步已完成FTP服务器基本配置问题,但尚不能访问FTP服务器。原因是:因为防火墙阻止了FTP服务器与外界的通信,接下来关闭防火墙,就可实现与外界通信。

 

二、 关闭防火墙

1)、查看本机关于IPTABLES的设置情况

        # iptables -L -n

Chain INPUT (policy ACCEPT)
target       prot opt source                 destination         

Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination         

Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination         

Chain RH-Firewall-1-INPUT (0 references)
target       prot opt source                 destination         
ACCEPT       all    --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       icmp --    0.0.0.0/0              0.0.0.0/0             icmp type 255 
ACCEPT       esp    --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       ah     --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       udp    --    0.0.0.0/0              224.0.0.251           udp dpt:5353 
ACCEPT       udp    --    0.0.0.0/0              0.0.0.0/0             udp dpt:631 
ACCEPT       all    --    0.0.0.0/0              0.0.0.0/0             state RELATED,ESTABLISHED 
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:22 
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:80 
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:25 
REJECT       all    --    0.0.0.0/0              0.0.0.0/0             reject-with icmp-host-prohibited 
可以看出我在安装linux,选择了有防火墙,并且开放了22,80,25端口.

 

 

 

2)、清除原有规则

                #iptables -F   (清除预设表filter中所有规则链的规则)

                #iptables -X  (清除预设表filter中使用者自定义链中的规则)

      我们再来看一下

                #iptables -L -n

Linux下搭建FTP服务器_第1张图片

     所有的iptables都没有了

3)、保存iptables配置

              # /etc/rc.d/init.d/iptables save

              #service iptables restart

三、 开启selinux选项

   当防火墙关闭之后,重新测试的时候,还会出现500 OOPS: cannot change directory:/home/ithov错误。我们需要修改一下服务器端环境的配置

操作如下:

1)、 输入命令:

        #setsebool ftpd_disable_trans 1

Could not change active booleans: Invalid boolean

又出现一个错误,我们将ftp_home_dir设置为on,重启vsftpd。

       # setsebool ftp_home_dir=1

       # service vsftpd restart 

2)、接下来输入命令:

       #sestatus -b| grep ftp

会出现如下图:

 Linux下搭建FTP服务器_第2张图片

将:

        #ftp_home_dir        off

       #tftpd_disable_trans   off

中的off改成on

       #setsebool -P  ftp_home_dir  on

       # setsebool -P ftpd_disable_trans on

3)、最后重启vsftps

       #service vsftpd restart

四、 添加新用户

   经过以上三步终于将我们的FTP服务器搭建好了,现在可以添加FTP账号了。具体步骤如下:

1)、输入命令:

      #adduser 用户名

回车后系统会给出以下提示: 
    Changing password for user XX用户名.
     New password:
     BAD PASSWORD: it does not contain enough DIFFERENT characters
     Retype new password:
     passwd: all authentication tokens updated successfully.

2)、但像以上这样增加用户是不行的,加样加出来的用户为普通用户,有系统登陆权限,所以我要在adduser命令后后面加上参数,如下

     [root@srsman]# adduser -g ftp -s /sbin/nologin srsman
     [root@srsman]# passwd beinan
     Changing password for user beinan.
     New password:
     Retype new password:
     passwd: all authentication tokens updated successfully.

3)、这样加出来的用户也是普通用户,但这个用户是不能登入系统的,只能是登入FTP
通过上面的命令加的用户系统会在/home目录下建立一个同名的文件夹,用户FTP上来后指向的目录也为此目录,如何为ftp用户指定到特定的目录呢?
命令如下: 

     [root@srsman]adduser -d /opt/btgup -g ftp -s /sbin/nologin btgup
     [root@srsman]passwd btgup
     Changing password for user btgup.
     New password:
     Retype new password:
     passwd: all authentication tokens updated successfully.

这样就为系统增加了一个名为srsman,目录指向为/opt/srsman的ftp用户 

 Linux下搭建FTP服务器_第3张图片

 

五、注意:

 1)、在增加用户后ftp上服务器的时候可能会有提示 :

  ftp服务器连接失败,错误提示: 
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died

2)、当你看到以上提示时,试着再输入以下命令解决 
     setsebool -P ftpd_disable_trans 1
      service vsftpd restart

第一行中的-P参数是为了以后不需要每次开机都输入这个命令 

//===================================================================
3)、修改vsftpd.conf文件: 
user_config_dir=/etc/vsftpd/user_config_dir
并在这个文件夹下面添加用户名的文件
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

4)、修改文件夹的读写权限: 
chown ftp /var/ftp/upload
chmod 777 /var/ftp/upload

六、连接实现

上述所示步骤配置好了之后就可以进行FTP连接了,步骤如下:

1)、下载fileZilla软件 

    2)、打开软件依次输入FTP服务器的主机IP、ftp用户名、密码、端口号(ftp服务器默认端口号为:21)。点击快速连接。

 

Linux下搭建FTP服务器_第4张图片

你可能感兴趣的:(服务器搭建)