FTP服务器配置与管理.docx
《FTP服务器配置与管理.docx》由会员分享,可在线阅读,更多相关《FTP服务器配置与管理.docx(15页珍藏版)》请在冰豆网上搜索。
FTP服务器配置与管理
实验四FTP服务
(一)
一、【实验目的】
1.了解FTP服务器的基本工作原理;
2.掌握vsftpd服务器的安装方法;
3.掌握vsftpd服务器的基本配置方法;
4.掌握vsftpd匿名和虚拟用户的配置方法。
5、测试vsftpd服务器。
二、【实验任内容及要求】
1.安装vsftpd服务器软件;
2.规划好域名与IP地址后,在DNS服务器中进行相关配置(作为临时解决方法,也可以在/etc/hosts文件中添加相应记录);
3.配置vsftpd服务器(匿名账户访问,本地账户访问,上传权限设置等),并用进行测试;
本地用户test1可以上传文件到/var/ftp/upload目录上,其他的本地用户不允许上传;
本地用户不允许离开宿主目录;
不允许本地用户test1进行远程管理服务器。
【基本的拓扑图】
如图11-1。
图11-1
说明:
由图11-1可知,FTP服务器的IP地址为192.168.1.6,处于服务器群组中。
【系统及软件环境】
1.操作系统:
RedHatAS4.0
2.服务器软件包:
vsftpd-2.0.1-5.i386.rpm
【实验配置文件及命令】
1./etc/vsftpd/vsftpd.conf
2./etc/passwd
【实验步骤】
说明:
以下所有操作均在FTP服务器上进行(192.168.1.6)。
1.查看vsftpd服务器包是否安装。
[root@gdlc-ftp/]#rpm-qa|grepvsftpd
[root@gdlc-ftp/]##没有结果显示。
表示没有安装FTP服务器软件。
(以源码方式安装除外)
2.安装vsftpd服务器包。
[root@gdlc-ftproot]#rpm-ivhvsftpd-2.0.1-5.i386.rpm
warning:
vsftpd-2.0.1-5.i386.rpm:
V3DSAsignature:
NOKEY,keyIDdb42a60e
Preparing...###########################################[100%]
1:
vsftpd###########################################[100%]
[root@gdlc-ftproot]#
3.创建用户、目录及修改目录权限。
[root@gdlc-ftproot]#mkdir/var/ftp/upload
[root@gdlc-ftproot]#useraddtest1-d/var/ftp/upload-s/sbin/nologin
[root@gdlc-ftproot]#ll-d/var/ftp/upload/
drwxr-xr-x2rootroot4096Jan2409:
59/var/ftp/upload/
[root@gdlc-ftproot]#chowntest1:
test1/var/ftp/upload
[root@gdlc-ftproot]#ll-d/var/ftp/upload/
drwxr-xr-x2test1test14096Jan2409:
59/var/ftp/upload/
[root@gdlc-ftp/]#passwdtest1
Changingpasswordforusertest1.
Newpassword:
BADPASSWORD:
itistooshort
Retypenewpassword:
passwd:
allauthenticationtokensupdatedsuccessfully.
[root@gdlc-ftp/]#
由上面的显示我们可以知道,用户test1的宿主目录为/var/ftp/upload,同时用户test1没有登录的shell,因此test1不能远程管理FTP服务器。
同时可以看出/var/ftp/upload的所有者为test1,并具有写的权限,test1组和其他组没有写的权限。
4.查看/etc/passwd文件。
[root@gdlc-ftproot]#tail/etc/passwd
ntp:
x:
38:
38:
:
/etc/ntp:
/sbin/nologin
gdm:
x:
42:
42:
:
/var/gdm:
/sbin/nologin
desktop:
x:
80:
80:
desktop:
/var/lib/menu/kde:
/sbin/nologin
apache:
x:
48:
48:
Apache:
/var/www:
/sbin/nologin
named:
x:
25:
25:
Named:
/var/named:
/sbin/nologin
webalizer:
x:
67:
67:
Webalizer:
/var/www/usage:
/sbin/nologin
squid:
x:
23:
23:
:
/var/spool/squid:
/sbin/nologin
john:
x:
500:
500:
:
/home/john:
/bin/bash
jake:
x:
501:
503:
:
/home/jake:
/bin/bash
test1:
x:
502:
504:
:
/var/ftp/upload:
/sbin/nologin
[root@gdlc-ftproot]#
5.修改/etc/vsftpd/vsftpd.conf配置文件。
[root@gdlc-ftp/]#grep-vn"#"/etc/vsftpd/vsftpd.conf
12:
anonymous_enable=YES
15:
local_enable=YES
18:
write_enable=YES
22:
local_umask=022
35:
dirmessage_enable=YES
38:
xferlog_enable=YES
41:
connect_from_port_20=YES
54:
xferlog_std_format=YES
106:
pam_service_name=vsftpd
107:
userlist_enable=YES
109:
listen=YES
110:
tcp_wrappers=YES
[root@gdlc-ftp/]#vi/etc/vsftpd/vsftpd.conf
以上为默认的配置文件,我们需要在默认的配置文件中加入以下语句。
chroot_local_user=YES#禁止本地用户离开其宿主目录
xferlog_file=/var/log/vsftpd.log#指定FTP服务器日志
idle_session_timeout=600#会话超时600秒
data_connection_timeout=120#数据连接超时120秒
ftpd_banner=WelcometoblahGDLC-FTPservice.#连接FTP服务器时的欢迎词
6.查看修改后的配置文件。
[root@gdlc-ftp/]#grep-vn"#"/etc/vsftpd/vsftpd.conf
12:
anonymous_enable=YES
15:
local_enable=YES
18:
write_enable=YES
22:
local_umask=022
35:
dirmessage_enable=YES
38:
xferlog_enable=YES
41:
connect_from_port_20=YES
51:
xferlog_file=/var/log/vsftpd.log
54:
xferlog_std_format=YES
57:
idle_session_timeout=600
60:
data_connection_timeout=120
85:
ftpd_banner=WelcometoblahGDLC-FTPservice.
105:
106:
pam_service_name=vsftpd
107:
userlist_enable=YES
109:
listen=YES
110:
tcp_wrappers=YES
111:
chroot_local_user=YES
7.启动FTP服务器。
[root@gdlc-ftp/]#/etc/init.d/vsftpdstart
vsftpdvsftpd[OK]
[root@gdlc-ftp/]#servicevsftpdstart
vsftpdvsftpd[OK]
以上两条命令可任选一条进行操作,启动FTP服务器。
8.查看服务器是否启动成功。
[root@gdlc-ftp/]#netstat-antp|grep:
21
tcp000.0.0.0:
210.0.0.0:
*LISTEN4329/vsftpd
[root@gdlc-ftp/]#
如果有内容显示,则表示FTP服务器已经启动成功;没有显示结果,则表示FTP服务器没有启动成功。
9.测试
说明:
以下所有操作均可在FTP客户端上或PC1~PC10上进行。
(1)在命令行上测试,输入“ftp192.168.1.6”,采用test1用户登录服务器,发现test1
允许上传文件,同时不允许离开其宿主目录。
[root@linux~]#ftp192.168.1.6
Connectedto192.168.1.6.
220WelcometoblahGDLC-FTPservice
530PleaseloginwithUSERandPASS.
530PleaseloginwithUSERandPASS.
KERBEROS_V4rejectedasanauthenticationtype
Name(192.168.1.6:
root):
test1#登录用户名,输入test1
331Pleasespecifythepassword.
Password:
#输入密码
230Loginsuccessful.#输入确认密码
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>!
ls#查看本地目录
anaconda-ks.cfgRedBlueVCD-0.2.3src.tar.gzvnc-4.0-x86_linux.tar.gz
Desktopss.tgzvnc-4_1_1-x86_win32.zip
evolutionupgrade.logwebmin-1.250.tar.gz
install.logupgrade.log.syslog
install.log.syslogvnc-4.0-x86_linux
ftp>putinstall.log#上传install.log文件到服务器
local:
install.logremote:
install.log
227EnteringPassiveMode(192,168,1,6,235,220)
150Oktosenddata.
226FilereceiveOK.
29321bytessentin0.00019seconds(1.5e+05Kbytes/s)
ftp>ls#查看服务器目录
227EnteringPassiveMode(192,168,1,6,209,24)
150Herecomesthedirectorylisting.
-rw-r--r--150350329321Feb2003:
22install.log
drwxr-xr-x2004096Feb2003:
07k
-rw-r--r--1000Feb2003:
07kk
-rw-r--r--150350351200Feb2003:
14ss.tgz
226DirectorysendOK.
ftp>cd/#回到根目录
250Directorysuccessfullychanged.
ftp>ls#再次查看服务器目录,发现test1用户没有离开其宿主目录
227EnteringPassiveMode(192,168,1,6,165,131)
150Herecomesthedirectorylisting.
-rw-r--r--150350329321Feb2003:
22install.log
drwxr-xr-x2004096Feb2003:
07k
-rw-r--r--1000Feb2003:
07kk
-rw-r--r--150350351200Feb2003:
14ss.tgz
226DirectorysendOK.
ftp>bye#退出服务器
【实验故障与分析】
下面的表格中列出了在实验过程中可能出现的故障及其解决方法。
看看是不是对你的实验有帮助?
如果你在实验中还遇到其他的问题或故障,不妨记录在表格中,通过自己的实践,或者与老师、同学一起找找解决的方法。
序号
实验故障
分析与解决
1
在FTP服务器上已设置好允许本地用户上传,但在上传数据到upload目录时,提示拒绝
可能是test1用户对upload目录没有写的权限
2
3
【启发联想】
1.若某些用户需要离开其宿主目录,应如何设置?
2.有没有其他的FTP服务器软件?
各有哪些优点?
3.FTP服务器的剩余空间不足,无法将资料数据放到/var/ftp/目录上,管理员将数据全部移到/disk2/ftproot/目录上,此时FTP匿名用户登录服务器时,看到/var/ftp/pub目录为空,无法看到/disk2/ftproot目录下的资料,应如何解决?
(二)
【需求】
◆通过超级守护进程创建匿名FTP服务器。
【基本的拓扑图】
如图11-2。
图11-2
说明:
由图11-2可知,FTP服务器的IP地址为192.168.1.6,处于服务器群组中。
【系统及软件环境】
1.操作系统:
RedHatAS4.0
2.服务器软件包:
vsftpd-2.0.1-5.i386.rpm
【实验配置文件及命令】
1./etc/vsftpd/vsftpd.conf#vsftp主配置文件
2./usr/share/doc/vsftpd-2.0.1/vsftpd.xinetd#基于超级守护进程vsftp配置文件模板
3./etc/passwd#用户管理配置
4./etc/xinetd.d/vsftpd#/基于超级守护进程vsftp配置文件
【实验步骤】
说明:
以下所有操作均在FTP服务器上进行(192.168.1.6)。
1.安装vsftpd服务器包。
[root@gdlc-ftproot]#rpm-ivhvsftpd-2.0.1-5.i386.rpm
warning:
vsftpd-2.0.1-5.i386.rpm:
V3DSAsignature:
NOKEY,keyIDdb42a60e
Preparing...###########################################[100%]
1:
vsftpd###########################################[100%]
[root@gdlc-ftproot]#
2.创建基于超级守护进程的ftp配置文件。
[root@linux~]#cd/usr/share/doc/vsftpd-2.0.1/
[root@linuxvsftpd-2.0.1]#cpvsftpd.xinetd/etc/xinetd.d/vsftpd
[root@linuxvsftpd-2.0.1]#cd/etc/xinetd.d/
[root@linuxxinetd.d]#vivsftpd
[root@linuxxinetd.d]#catvsftpd
#default:
off
#description:
ThevsftpdFTPserverservesFTPconnections.Ituses\
#normal,unencryptedusernamesandpasswordsforauthentication.
serviceftp
{
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
}
[root@linuxxinetd.d]#
3.创建测试用户,并查看/etc/passwd文件。
[root@linux~]#useraddgdlc-s/sbin/nologin#创建gdlc用户
[root@linux~]#passwdgdlc#修改用户密码
Changingpasswordforusergdlc.
Newpassword:
#输入密码
BADPASSWORD:
itistooshort
Retypenewpassword:
#输入确认密码
passwd:
allauthenticationtokensupdatedsuccessfully.
[root@linux~]#tail/etc/passwd#显示用户管理配置文件
netdump:
x:
34:
34:
NetworkCrashDumpuser:
/var/crash:
/bin/bash
quagga:
x:
92:
92:
Quaggaroutingsuite:
/var/run/quagga:
/sbin/nologin
radvd:
x:
75:
75:
radvduser:
/:
/sbin/nologin
dbus:
x:
81:
81:
Systemmessagebus:
/:
/sbin/nologin
haldaemon:
x:
68:
68:
HALdaemon:
/:
/sbin/nologin
xfs:
x:
43:
43:
XFontServer:
/etc/X11/fs:
/sbin/nologin
htt:
x:
100:
102:
IIIMFHtt:
/usr/lib/im:
/sbin/nologin
jake:
x:
500:
500:
:
/home/jake:
/bin/bash
vip:
x:
501:
501:
:
/var/ftp:
/sbin/nologin
gdlc:
x:
502:
502:
:
/home/gdlc:
/sbin/nologin
[root@linux~]#
4.修改/etc/vsftpd/vsftpd.conf配置文件。
[root@linuxxinetd.d]#tail-v/etc/vsftpd/vsftpd.conf#查看主配置文件的最后10行内容
==>/etc/vsftpd/vsftpd.conf<==
#sites.However,somebrokenFTPclientssuchas"ncftp"and"mirror"assume
#thepresenceofthe"-R"option,sothereisastrongcaseforenablingit.
#ls_recurse_enable=YES
#deny_file={*.mp3,*.mov,*.rm}
pam_service_name=vsftpd
userlist_enable=YES
#userlist_deny=NO
#enableforstandalonemode
#listen=YES#将黑体内容禁用,表示采用超级守护进程启动ftp服务器
#tcp_wrappers=YES#禁用/etc/hosts.allow或/etc/hosts.deny文件生效
[root@linux~]#grep-v"#"/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=no
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=WelcometoblahFTPservice.
pam_service_name=vsftpd
userlist_enable=YES
[root@linux~]#servicexinetdrestart
5.测试
说明:
以下所有操作均可在FTP客户端或PC1~PC10上进行。
首先采用本地用户gdlc用户登录,系统提示登录失败,改用匿名用户登录成功。
[root@linux~]#ftp192.168.1.6
Connectedto192.168.1.6.
220WelcometoblahFTPservice.
530PleaseloginwithUSERandPASS.
530PleaseloginwithUSERandPASS.
KERBEROS_V4rejectedasanauthenticationtype
Name(192.168.1.6:
root):
gdlc#本地用户gdlc用户登录失败
530ThisFTPserverisanonymousonly.
Loginfailed.
ftp>bye
[root@linux~]#ftp192.168.1.6
Connectedto192.168.1.6.
220WelcometoblahFTPservice.
530PleaseloginwithUSERandPASS.
530PleaseloginwithUSERandPASS.
KERBEROS_V4rejectedasanauthenticationtype
Name(192.168.1.6:
root):
anonymous#匿名用户登录成功
331Pleasespecifythepassword.
Password:
230Loginsuccessful.
RemotesystemtypeisUNIX.
Usingbinarymode