4、配置虚拟FTP服务器
所谓虚拟FTP服务器,是指一台机器上有多个IP地址,并且可以向外提供多FTP服务,这些服务器在逻辑上是独立的,有不同的访问控制表和不同的下载内容。
配置虚拟FTP服务器的步骤如下所示:
(1)为一个服务器配置多个IP地址。假设原来的主机内部地址为210.77.27.222,可再绑定一个IP地址如下:
向接口添加一个新的IP210.77.27.223
#/sbin/ifconfig eth0:0 210.77.27.223 up(2)创建虚拟FTP服务器的根目录,并确保/var/newftp和/var/newftp/pub目录的拥有者和组均为root,掩码为755。
#mkdir -p /var/newftp/pub #chmod 755 /var/newftp #chmod 755 /var/new/ftp/pub(3)增加虚拟FTP服务器的匿名用户账号。原先的FTP服务器使用系统用户ftp作为其匿名用户账号。需要增加一个newftp用于虚拟FTP服务器。
useradd -d /var/newftp -M newftp(4)创建虚拟FTP服务器的配置文件。复制原来的vsftpd.conf作为虚拟FTP服务器的配置文件,并修改相关参数。
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf新添或修改以下参数:
listen=YES listen_address=210.77.27.223 ftp_username=newftp此处需要特别注意:由于vsftpd默认是监听所有的IP地址,当设定基于IP的虚拟FTP服务器时,为防止原来的FTP服务器与虚拟FTP服务器发生监听上的冲突,原FTP服务器须要指定监听的IP地址。在这里,原来的配置文件中就要设置listen_address=//向接口添加一个新的IP210.77.27.222。
(5)启动和测试虚拟FTP服务器。
可以使用命令同时启动或关闭原FTP服务器和新加的虚拟FTP服务器,如下:
#service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd2: [ OK ] Starting vsftpd for vsftpd: [ OK ]启动成功后,就可以对该虚拟服务器登录进行测试,如下面所示:
测试以127.0.0.1登录:
# ftp 127.0.0.1 ftp: connect: Connection refused ftp> bye //测试失败,因为该服务器具有两个不同的IP连接原来的FTP服务器,其IP地址为210.77.27.222,端口号为10003:
# ftp 210.77.27.222 10003 Connected to 210.77.27.222 (210.77.27.222). 220 Welcome to virtual FTP service.使用匿名用户登录,成功:
Name (210.77.27.222:root): anonymous 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (210,77,27,222,51,224) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Jul 09 15:26 pub 226 Directory send OK. ftp> cd pub 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (210,77,27,222,223,123) 150 Here comes the directory listing. -rw-r--r-- 1 0 0 10 Jul 09 15:26 test.c 226 Directory send OK. ftp> bye 221 Goodbye.连接虚拟FTP服务器,其IP地址为210.77.27.223,端口号为10004:
# ftp 210.77.27.223 10004 Connected to 210.77.27.223 (210.77.27.223). 220 Welcome to virtual FTP service.使用匿名用户登录,成功:
Name (210.77.27.223:root): anonymous 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (210,77,27,223,102,119) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Jul 10 13:23 pub 226 Directory send OK.进入该登录文件夹:
ftp> cd pub 250 Directory successfully changed. ftp> ls //由于该虚拟服务器没有加入任何文件,所以ls结果为空 227 Entering Passive Mode (210,77,27,223,170,40) 150 Here comes the directory listing. 226 Directory send OK. ftp> bye 221 Goodbye.作者简介:李洋,博士毕业于中科院计算所。10多年来一直从事计算机网络信息安全研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有Linux系统应用、管理、安全及内核的研发经验,擅长网络安全技术、协议分析、Linux系统安全技术、Linux系统及网络管理、Linux内核开发等。