linux FTP设置.docx
《linux FTP设置.docx》由会员分享,可在线阅读,更多相关《linux FTP设置.docx(22页珍藏版)》请在冰豆网上搜索。
linuxFTP设置
FTP服务器
概述
FTP服务器,则是互联网上提供存储空间的计算机,它们依照FTP协议提供服务。
FTP全称是FileTransferProtocol(文件传输协议)。
顾名思义,就是专门用来传输文件的协议。
简单地说,支持FTP协议的服务器就是FTP服务器。
Linux下实现FTP服务的软件很多,最常见又VSFTPD,WU-FTP和Proftp等。
RedHatLinux中默认安装的是vsftpd.
通常,访问FTP服务器需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文本,VSFTPD提供3中登陆形式:
[root@localhostroot]#rpm–qa|grepvsftpd
//查看vsftpd是否安装,如果没有安装,在“主菜单”—“系统设置”—“添加/删除应用程序”—找到“FTP服务器”在前面打勾—“更新”根据系统的提示点击“CD-ROM进行切换linux的镜像”
Vsftpd-1.1.3-8
[root@localhostroot]#servicevsftpdstart
//在系统终端启动vsftpd服务,也可以用
[root@localhostroot]#/etc/rc.d/init.d/vsftpdstart
配置vsftpd
在Redhatlinux9.0中,关于vsftpd服务的配置的文件有三个:
/etc/vsftpd/vsftpd.conf
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
其中vsftpd.conf是主配置文件,vsftpd.ftpusers指定了有那些用户不能访问FTP服务器。
Vsftpd.user_list指定了可能访问FTP服务器的用户,其中的用户在默认情况下不能访问FTP服务器,仅当在vsftpd.conf中设定userlist_enable=No是才能访问。
下面关于vsftpd服务器的配置文件vsftpd.conf的部分内容及其解释(忽略了以#号开头的内容)。
用户可以用cat显示内容,用vi文本编辑工具编辑它。
[root@localhostroot]#cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak
//在配置前可以先备份,以便错了可以恢复原始配置
[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf
//#号开头的省略,进入vsftpd.conf的配置文件,
Anonymous_enable=YES//允许匿名用户登陆
No_anon_password=YES//匿名用户登陆不用密码
Local_enable=YES//允许本地用户登陆
Wirte_enable=YES//开放本地用户写的权限
Local_umask=022//将本地用户的上传文件的掩码(umask)设为022
Dirmessage_enable=YES//允许为目录显示信息,显示每个目录下面message_file文件的内容
Xferlog_enable=YES//启用记录上传/下载活动日志功能
Connect_from_prot_20=YES//设置启用FTP服务器数据端口的连接请求
Xferlog_std_fromat=YES//设置使用标准的xferlog日志格式
Pam_service_name=vsftpd//设置PAM认证服务的配置文件名,存放在/etc/pam.d目录下。
Userlist_enable=YES//设定在vsftpd.user_list文件中的列出的用户不能访问这个FTP服务器
Listen=YES//设置服务器采用独立启动方式
Tcp_wrappers=YES//设置使用tcp_wrappers作为主机访问控制方式
//在没有设置前系统是默认匿名用户是没有上传,创建文件的权限,接下来是一下。
按ESC键
:
q!
不保存退出
Vsftpd.ftpuser文件的说明
vsftpd.ftpusers指定了下列用户不能访问FTP服务器,root用户默认是不允许登陆FTP服务器,但允许添加不允许登陆的用户到vsftpd.ftpusers里面来,每个用户一行。
#Usersthatarenotallowedtologinviaftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
~
Vsftpd.user_list文件的说明
Vsftpd.user_list指定了可能访问FTP服务器的用户,其中的用户在默认情况下不能访问FTP服务器,仅当在vsftpd.conf中设定userlist_enable=No是才能访问
#vsftpduserlist
#Ifuserlist_deny=NO,onlyallowusersinthisfile
#Ifuserlist_deny=YES(default),neverallowusersinthisfile,and
#donotevenpromptforapassword.
#Notethatthedefaultvsftpdpamconfigalsochecks/etc/vsftpd.ftpusers
#forusersthataredenied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@localhostroot]#cd/var/ftp/pub
//默认下载的文件目录在/var/ftp/pub目录,切换到pub目录,创建一个文本,提供下载。
[root@localhostpub]#vitest.txt
//创建test.txt文件,并输入helloworld,按ESC,
:
wq//保存退出
[root@localhostroot]#cd
//切换到root目录下
[root@localhsotroot]#ftplocalhost
//ftp后面跟的是主机IP或主机名
Connectedtolocalhost(127.0.0.1).
220(vsFTPd1.1.3)
Name(localhost:
root):
anonymous//匿名用户anonymous
331Pleasespecifythepassword.
Password:
//匿名用户登陆不需要密码,直接回车,
230Loginsuccessful.Havefun.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>ls//显示文件,看到默认上传下载目录。
227EnteringPassiveMode(127,0,0,1,79,16)
150Herecomesthedirectorylisting.
drwxr-xr-x2004096Feb282003pub
226DirectorysendOK.
ftp>cdpub//进入pub目录
250Directorysuccessfullychanged.
ftp>ls//显示文件,可以看到刚才创建的test.txt
227EnteringPassiveMode(127,0,0,1,212,160)
150Herecomesthedirectorylisting.
-rw-r--r--10010Jan0206:
35test.txt
226DirectorysendOK.
ftp>mgettest.txt
mgettest.txt?
//直接回车
227EnteringPassiveMode(127,0,0,1,65,220)
150OpeningBINARYmodedataconnectionfortest.txt(10bytes).
226FilesendOK.
10bytesreceivedin4.9e-05secs(2e+02Kbytes/sec)
ftp>!
ls//显示test.txt下载到当前root目录下
anaconda-ks.cfginstall.loginstall.log.syslogtest.txt
ftp>mkdirtest//没有给匿名用户创建目录权限,是不能创目录的
550Permissiondenied.
ftp>putinstall.log//没有给匿名用户上传权限,也不能上传
local:
install.logremote:
install.log
227EnteringPassiveMode(127,0,0,1,29,70)
550Permissiondenied.
ftp>bye
221Goodbye.
[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf
//下面修改匿名用户的,找到
#anon_upload_enable=YES//允许匿名用户上传文件
#anon_mkdir_write_enable=YES//开放匿名用户的创建目录和写权限
//按ESC,保存退出
[root@localhostroot]#servicevsftpdrestart
//重启vsftpd服务
当配置文件修改后,还是不能在pub目录下创建目录,但可以上传,默认情况下,pub的权限是目录所属的用户有执行、读写权限,组用户和其他用户,只有执行、读的权限
[root@localhostroot]#cd/var/ftp
//切换到ftp目录下,查看赋给pub目录的属性
[root@localhostftp]#ls–l
总用量4
drwxr-xr-x2rootroot40961月215:
02pub
[root@localhostftp]#chmodo+wpub
//给其他用户加上读的权限,组用户可以添加权限,可以实现anonymous用户的上传目的。
因为anonymous用户属于其他用户。
[root@localhostftp]#chmodo+wpub
[root@localhostftp]#ls-l
总用量4
drwxr-xrwx2rootroot40961月215:
02pub
[root@localhostftp]#cd
//回到root目录下
[root@localhostroot]#ftplocalhost
Connectedtolocalhost(127.0.0.1).
220(vsFTPd1.1.3)
Name(localhost:
root):
anonymous
331Pleasespecifythepassword.
Password:
230Loginsuccessful.Havefun.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>ls
227EnteringPassiveMode(127,0,0,1,209,189)
150Herecomesthedirectorylisting.
drwxr-xrwx2004096Jan0207:
02pub
226DirectorysendOK.
ftp>cdpub
250Directorysuccessfullychanged.
ftp>ls
227EnteringPassiveMode(127,0,0,1,79,120)
150Herecomesthedirectorylisting.
-rw-r--r--10010Jan0206:
35test.txt
226DirectorysendOK.
ftp>mkdirtest
257"/pub/test"created//在pub目录下创建test目录
ftp>ls
227EnteringPassiveMode(127,0,0,1,87,79)
150Herecomesthedirectorylisting.
drwx------214504096Jan0207:
04test//说明创建成功
-rw-r--r--10010Jan0206:
35test.txt
226DirectorysendOK.t
ftp>bye
221Goodbye.
[root@localhostroot]#mkdir/var/ftp/income
//创建一个负责装上传文件的目录income
[root@localhostroot]#chmoda+wrx/var/ftp/income
//给所以用户给income目录执行、读、写权限
[root@localhostroot]#chownftp:
ftp/var/ftp/income
//把income目录赋给ftp组和用户
[root@localhostroot]#cd/var/ftp
//切换到/var/ftp目录下
[root@localhostftp]#ll
//显示所以可见文件
总用量8
drwxrwxrwx2ftpftp40961月215:
17income
drwxr-xrwx2rootroot40961月215:
04pub
[root@localhostftp]#cd
//切换到root目录测试一下
[root@localhostroot]#ftplocalhost
Connectedtolocalhost(127.0.0.1).
220(vsFTPd1.1.3)
Name(localhost:
root):
anonymous
331Pleasespecifythepassword.
Password:
230Loginsuccessful.Havefun.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>ls
227EnteringPassiveMode(127,0,0,1,85,23)
150Herecomesthedirectorylisting.
drwxrwxrwx214504096Jan0207:
17income
drwxr-xrwx2004096Jan0207:
04pub
//显示目录相关信息
226DirectorysendOK.
ftp>cdincome//切换到income目录
250Directorysuccessfullychanged.
ftp>ls//显示income目录为空
227EnteringPassiveMode(127,0,0,1,109,195)
150Herecomesthedirectorylisting.
226DirectorysendOK.
ftp>!
ls//查看文件
anaconda-ks.cfginstall.loginstall.log.syslogtest.txt
ftp>putinstall.log//上传install.log文件
local:
install.logremote:
install.log
227EnteringPassiveMode(127,0,0,1,152,59)
150Oktosenddata.
226FilereceiveOK.
29187bytessentin0.000236secs(1.2e+05Kbytes/sec)
ftp>ls
227EnteringPassiveMode(127,0,0,1,184,110)
150Herecomesthedirectorylisting.
-rw-------1145029187Jan0207:
29install.log
226DirectorysendOK.
ftp>bye
221Goodbye.
[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf
设置连接服务器的最在并发连接数和用户的最在线程数
作为FTP服务器,必然要为多用户担任服务,如果在同一段登陆FTP服务器的用户过多或下载的数据过量,则会影响服务器的性能。
因此,在建立FTP服务器时,一定要设置连接服务器的最大并发用户数和每一用户并发下载文件的最在线程数。
修改配置文件/etc/vsftpd/vsftpd.conf添加
[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf
Max_clients=100//并发用户为100
Max_per_ip=2//线程数为2,即同时只能下载两个文件
按ESC
:
wq
保存退出
[root@localhostroot]#servicevsftpdrestart
//重启服务才能生效
[root@localhsotroot]#vi/etc/vsftpd/vsftpd.conf
设置匿名用的最大传输速率
下载速率对FTP服务器的性能影响也是很大,限制用户的最大传输速率可以平均分配网络宽带,增强网络的流畅性,避免网络阻塞。
可以在/etc/vsftpd/vsftpd.conf配置文件末尾添加下列语句:
Anon_max_rate=20000//匿名用户最在传输速率为20KBPS
Local_max_rate=1000000//本地用户的最大传输速率为1MBPS
按ESC
:
wq
保存退出
[root@localhostroot]#servicevsftpdrestart
(1)禁止某些IP服的匿名用户访问FTP服务器
有些时候,FTP服务器不想对某些主机开放,但它们又处于同一个网络或VLAN中,这时可以限制某些主机访问FTP服务器:
看一下/etc/vsftpd/vsftpd.conf配置文件中是否有
Tcp_wrappers=YES
如果没有添加上去
[root@localhostroot]#ifconfig//查看ip地址即子网掩码,没有配置
loLinkencap:
LocalLoopback
inetaddr:
127.0.0.1Mask:
255.0.0.0
UPLOOPBACKRUNNINGMTU:
16436Metric:
1
RXpackets:
90821errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
90821errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
6266593(5.9Mb)TXbytes:
6266593(5.9Mb)
[root@localhostroot]#ifconfigeth0192.168.0.6netmask255.255.255.0
//配置ip地址及子网掩码IP:
192.168.0.6netmask:
255.255.255.0
[root@localhostroot]#ftp192.168.0.6//用刚才配置的ip地址登陆
Connectedto192.168.0.6(192.168.0.6).
220(vsFTPd1.1.3)
Name(192.168.0.6:
root):
anonymous
331Pleasespecifythepassword.
Password:
230Loginsuccessful.Havefun.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>ls
227EnteringPassiveMode(192,168,0,6,165,152)
150Herecomesthedirectorylisting.
drwxrwxrwx214504096Jan0207:
33income
drwxr-xrwx2004096Jan0207:
04pub
226DirectorysendOK.
ftp>bye
221Goodbye.
(2)[root@locahostroot]#vi/etc/hosts.allow
修改/etc/hosts.allow配置文件,添加vsftpd:
192.168.0.6:
DENY
#
#hosts.allowThisfiledescribesthenamesofthehostswhichare
#allowedtousethelocalINETservices,asdecided
#bythe'/usr/sbin/tcpd'server.
#
vsftpd:
192.168.0.6:
DENY
[root@localhostroot]#ftp192.168.0.6//登陆IP地址
Connectedto192.168.0.6(192.168.0.6).
421Servicenotavailable.//显示是不能登陆成功的
ftp>bye
[root@localhostroot]#vi/etc/vsftpd/vsftpd.conf
//只允许匿名用户访问,修改/etc/vsftpd/vsftpd.conf配置文件,把配置文件的
#Local_enable=YES
#Write_enable=YES
注销掉
默认启动下userlist_enable=YES是存在的
[root@localhostroot]#servicevsftpdrestart
关闭vsftpd:
[确定]
为vsftpd启动vsftpd:
[确定]
[root@localhostroot]#ftplocalhost
Connectedtolocalhost(127.0.0.1).
220(vsFTPd1.1.3)
Name(localhost:
root):
anonymous