你的位置:首页 > 操作系统

[操作系统]RedHat6.2搭建FTP服务器


我的环境:

A:Red Hat Enterprise 6.2 IP:192.168.16.12 此机作测试端

B:Red Hat Enterprise 6.2 IP:192.168.16.13 此机做FTP服务端

 

B机上搭建FTP服务器:

下载并安装vsftpd-2.2.2-6.el6_0.1.i686

[root@redhat6-3 ~]# rpm -ivh vsftpd-2.2.2-6.el6_0.1.i686.rpm

创建测试用户:

[root@redhat6-3 ~]# useradd tuantuan -d /var/ftp/ttftp -s /sbin/nologin

[root@redhat6-3 ~]# useradd tuantuan -s /sbin/nologin

[root@redhat6-3 ~]# passwd tuantuan

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

 

查看一下新创建的用户配置

[root@redhat6-3 ~]# tail -1 /etc/passwd

tuantuan:x:504:504::/var/ftp/ttftp:/sbin/nologin

 

修改配置文件:

首先来看vsftp的配置文件,常使用的配置如下:

[root@redhat6-3 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf 

anonymous_enable=YES     //是否启动匿名用户登入

local_enable=YES      //是否允许本地用户登入

write_enable=YES      //是否允许用户写入

local_umask=022      //用户目录下创建文件默认权限,此处默认权限是777-022=755

dirmessage_enable=YES

xferlog_enable=YES     //是否使用日志

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES     //是否使用监听,若不使用将使用超级守护进程

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES     //是否启用用/etc/hosts.allow或/etc/hosts.deny文件生效

以上是默认的ftp参数,我们还需添加以下参数来完成配置:

chroot_local_user=YES     //是否禁止本地用户离开自己的主目录

xferlog_file=/var/log/vsftpd.log      //设置ftp的日志路径

idle_session_timeout=600      //设置回话等待时间

data_connection_timeout=120     //设置数据等待时间

ftpd_banner=Welcome to connect my FTP!     //设置成功登入提示

 

完成配置后重启一下ftp,查看进程并在A机上登入测试:

[root@redhat6-3 ~]# netstat -antp|grep 21

tcp        0      0 0.0.0.0:111     0.0.0.0:*        LISTEN  1221/rpcbind        

tcp        0      0 0.0.0.0:21      0.0.0.0:*        LISTEN  1926/vsftpd         

tcp        0      0 :::111             :::*                 LISTEN  1221/rpcbind        

客户端需安装ftp-0.17-51.1.el6.i686来支持ftp命令

在A上:

[root@redhat6-2 Packages]# rpm -ivh ftp-0.17-51.1.el6.i686.rpm

[root@redhat6-2 Packages]# ftp 192.168.16.13

Connected to 192.168.16.13 (192.168.16.13).

220 Welcome to connect my FTP!

Name (192.168.16.13:root): tuantuan

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

help命令查看ftp的命令

ftp>help

Commands may be abbreviated.  Commands are:

!                   debug               mdir            sendport        site

$                   dir                   mget            put             size

account         disconnect       mkdir           pwd             status

append          exit                mls             quit            struct

ascii               form            mode            quote           system

bell                get             modtime         recv            sunique

binary            glob             mput            reget           tenex

bye               hash            newer           rstatus         tick

case             help             nmap            rhelp           trace

cd                idle              nlist           rename          type

cdup            image           ntrans          reset           user

chmod           lcd             open            restart         umask

close            ls              prompt          rmdir           verbose

cr                macdef          passive         runique         ?

delete          mdelete         proxy           send

创建一个目录,并想改目录内传送一个文件:

ftp> cd test

250 Directory successfully changed.

ftp> !ls

anaconda-ks.cfg     LAMP         mysql-5.5.25.tar.gz

install.log         mysql-5.1.66-linux-i686-glibc23.tar.gz

ftp> put mysql-5.5.25.tar.gz

local: mysql-5.5.25.tar.gz remote: mysql-5.5.25.tar.gz

227 Entering Passive Mode (192,168,16,13,216,59).

150 Ok to send data.

226 Transfer complete.

24639871 bytes sent in 1.1 secs (22359.01 Kbytes/sec)

切换到服务端查看该目录下的文件:

[root@redhat6-3 ~]# cd /var/ftp/ttftp/test/

[root@redhat6-3 test]# ls

mysql-5.5.25.tar.gz

也可以在windows下登入该ftp,更加方便:

打开我的电脑输入ftp://tuantuan@192.168.16.13

 

配置超级守护进程启动vsftp

需要装xinetd服务管理工具:

[root@redhat6-3 ~]# rpm -ivh xinetd-2.3.14-33.el6.i686.rpm

[root@redhat6-3 ~]# cp -rf /usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd  /etc/xinetd.d/vsftpd

[root@redhat6-3 ~]# vi /etc/xinetd.d/vsftpd

# default: off

# description: The vsftpd FTP server serves FTP connections. It uses \

#       normal, unencrypted usernames and passwords for authentication.

service ftp

{

        socket_type             = stream

        wait                    = no

        user                    = root

        server                  = /usr/sbin/vsftpd

        server_args             = /etc/vsftpd/vsftpd.conf

        nice                    = 10

        disable                 = no   //将yes改为no即可

        flags                   = IPv4

}

修改配置文件

#listen=YES

将listen注释掉即可

建议write_enable=YES改为NO

 

将vsftpd的服务停掉:

[root@redhat6-3 xinetd.d]# service vsftpd stop

Shutting down vsftpd:                                      [  OK  ]

重启xinted服务:

[root@redhat6-3 etc]# service xinetd restart

Stopping xinetd:                                           [  OK  ]

Starting xinetd:                                          [  OK  ]

查看端口是否存在:

[root@redhat6-3 etc]# netstat -antp | grep 21

tcp        0      0 0.0.0.0:111       0.0.0.0:*       LISTEN      1221/rpcbind        

tcp        0      0 0.0.0.0:21        0.0.0.0:*        LISTEN     4369/xinetd         

tcp        0      0 :::111            :::*           LISTEN      1221/rpcbind    

因为启用超级进程来管理vsftp,所以这时候启动vsftpd会报如下错误:

[root@redhat6-3 etc]# service vsftpd start

Starting vsftpd for vsftpd: 500 OOPS: vsftpd: not configured for standalone, must be started from inetd

若不想启用超级进程管理,将配置文件中的listen=YES注释取消即可

 

测试端登入测试:

[root@redhat6-2 ~]# ftp 192.168.16.13

Connected to 192.168.16.13 (192.168.16.13).

220 Welcome to connect my FTP!

Name (192.168.16.13:root): tuantuan

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> bye

221 Goodbye.

windows登入测试:

同上次方法一样打开我的电脑或cmd(调用浏览器)输入:tp://tuantuan@192.168.16.13/

 

 

输入用户名和密码后登入进行操作即可

 

 

简单的ftp服务器配置完成!