仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 376|回复: 8
打印 上一主题 下一主题

[其他Linux] linux教程之用Linux构建高效FTP服务器办法分享第1/2页

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 11:39:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的。
在浩瀚收集使用中,FTP(文件传输协定)有着十分主要的位置。Internet中一个非常主要的资本就是软件资本,而林林总总的软件资本年夜多半都放在FTP服务器中。与年夜多半Internet服务一样,FTP也是一个客户机/服务器体系。用户经由过程一个撑持FTP协定的客户机程序,毗连到主机上的FTP服务器程序。用户经由过程客户机程序向服务器程序收回命令,服务器程序实行用户收回的命令,并将实行了局前往给客户机。
FTP服务能够依据服务工具的分歧分为两类:体系FTP服务器只同意体系上的正当用户利用;匿名FTP服务器(AnonymousFTPServer)同意任何人登录到FTP服务器往猎取文件。
<P>FTP的数据传输形式针对FTP数据毗连而言,分为自动传输形式、主动传输形式和单端口授输形式三种。<P>1.自动传输形式<P>当FTP的把持毗连创建,客户提出目次列表、传输文件时,客户端收回PORT命令与服务器举行协商,FTP服务器利用一个尺度端口20作为服务器真个数据毗连端口(ftp-data),与客户创建数据毗连。端口20只用于毗连源地点是服务器真个情形,而且端口20没有监听历程来监听客户哀求。<P>在自动传输形式下,FTP的数据毗连和把持毗连偏向相反,由服务器向客户端倡议一个用于数据传输的毗连。客户真个毗连端口由服务器端和客户端经由过程协商断定。<P>2.主动传输形式<P>当FTP的把持毗连创建,客户提出目次列表、传输文件时,客户端发送PASV命令使服务器处于主动传输形式,FTP服务器守候客户与其接洽。FTP服务器在非20端口的别的数据传输端口上监听客户哀求。<P>在主动传输形式下,FTP的数据毗连和把持毗连偏向分歧,由客户端向服务器倡议一个用于数据传输的毗连。客户真个毗连端口是倡议该数据毗连哀求时利用的端口。当FTP客户在防火墙以外会见FTP服务器时,必要利用主动传输形式。<P>3.单端口形式<P>除上述两种形式以外,另有一种单端口形式。该形式的数据毗连哀求由FTP服务器倡议。利用该传输形式时,客户真个把持毗连端口和数据毗连端口分歧。由于这类形式没法在短工夫一连输出数据、传输命令,因而其实不经常使用。<P>Linux下有良多可用的FTP服务器,个中对照盛行的有WU-FTP(WashingtonUniversityFTP)和VSFTP。RedHat8.0中自带了WU-FTP和VSFTP两个软件。WU-FTP是一个出名的FTP服务器软件,它功效壮大,可以很好地运转于浩瀚Unix操纵体系中。不外作为后起之秀的VSFTP愈来愈盛行,在RedHat9.0刊行版中就只带有VSFTP。VSFTP中VS的意义是“VerySecure”。从称号能够看出,从一入手下手,软件的编写者就十分注意其平安性。除与生俱来的平安性外,VSFTP还具有高速、不乱的功能特性。在不乱性方面,VSFTP能够在单机(非集群)上撑持4000个以上的并发用户同时毗连。据ftp.redhat.com的数据,VSFTP最多能够撑持15000个并发用户。

<P>疾速构建FTP服务器<P>FTP服务器完成的基础功效是上传下载,上面就分几个步骤来搭建一个能够完成下载功效的浅易FTP服务器。<P>1.安装FTP服务器<P>假如在安装体系时没有选择安装FTP服务器,能够经由过程RedHat9.0中的“增加/删除使用程序”工具举行安装。详细办法是,选择“主选单”→“体系设置”→“增加/删除使用程序”,在弹出的界面当选中FTP服务器,单击“更新”便可。<P>假如没法确认是不是安装了该软件,可使用以下命令检察:<P>
  1. #rpm-qa|grepvsftpdvsftpd-1.1.3-8
复制代码
<P>2.启动FTP服务器<P>套用RedHat9.0的预设典范间接启动VSFTP。<P>#/sbin/servicevsftpdstart<P>为vsftpd启动vsftpd:[断定]<P>3.在/var/ftp/pub目次下创立一个名为test.txt的文件,文件内容为“Thisisatestfile”。<P>4.测试<P>利用FTP客户端登录到当地服务器,然后以匿名身份(anonymous)登录:<P>
  1. #ftp127.0.0.1Connectedto127.0.0.1(127.0.0.1).220(vsFTPd1.1.3)Name(127.0.0.1:root):anonymous331Pleasespecifythepassword.Password:230Loginsuccessful.Havefun.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.
复制代码
<P>如许就乐成地登录到FTP服务器。能够显现服务器目次列表以下:<P>
  1. ftp>ls227EnteringPassiveMode(127,0,0,1,63,15)150Herecomesthedirectorylisting.drwxr-xr-x2004096Dec0401:35pub226DirectorysendOK.
复制代码
<P>切换到pub目次下,并显现目次内容,能够找到方才创立的文件test.txt:<P>
  1. ftp>cdpub250Directorysuccessfullychanged.ftp>ls227EnteringPassiveMode(127,0,0,1,232,34)150Herecomesthedirectorylisting.-rw-r--r--10021Dec0401:35test.txt226DirectorysendOK.
复制代码
<P>下载test.txt文件:<P>
  1. ftp>mgettest.txtmgettest.txt?y227EnteringPassiveMode(127,0,0,1,186,210)150OpeningBINARYmodedataconnectionfortest.txt(21bytes).226FilesendOK.21bytesreceivedin0.0108secs(1.9Kbytes/sec)
复制代码
<P>检察本机目次内容,能够看到test.txt已乐成下载到本机。<P>
  1. ftp>!lsaEIO_Bindersinitrdmntproctftpbootylg.txtbinetclibmymntroottmpboothomelost+foundmysharesbinusrdevid_dsas.pubmiscopttest.txtvar
复制代码
<P>实验上传名为ylg.txt的文件,能够看到哀求被回绝了。<P>
  1. ftp>putylg.txtlocal:ylg.txtremote:ylg.txt227EnteringPassiveMode(127,0,0,1,243,10)550Permissiondenied.
复制代码
<P>加入登录:<P>
  1. ftp>bye221Goodbye.
复制代码
<P>由测试能够看出,已能够下载文件,但不克不及上传文件(也不克不及在服务器上创立目次和文件)。实践上这是一个专门供应下载服务的匿名FTP服务器。从下面的步骤能够看出,其实不必要做甚么设置就能够完成一个浅易FTP服务器的架设。这是由于RedHat已设置好一个缺省的FTP服务器。不外在实践使用中,年夜部分情形下这个浅易的服务器其实不能满意需求。




<P>进一步设置FTP服务器<P>上面将创立一个可以满意经常使用需求的FTP服务器。实践使用中,FTP服务器一样平常要同时供应上传和下载功效。别的,出于平安思索,还必要有效户身份考证、用户权限设置及空间办理等。上面就来搭建如许一个FTP服务器。<P>1.创立接待语。假如但愿利用者在进进目次时,可以看到接待语或对本目次的先容,能够经由过程以下办法来完成。<P>断定/etc/vsftpd/vsftpd.conf文件中dirmessage_enable=YES,默许情形下,RedHat9.0有此设置。接着,在目次中新增名为.message的文件。本例在/home/ylg目次下创立一个.message文件,其内容为“接待离开我的FTP站点”。<P>2.改换FTP服务器的默许端口。将预设的21端口改成2121,如许做是基于平安的思索。变动办法为,利用vi翻开/etc/vsftpd/vsftpd.conf:<P>#vi/etc/vsftpd/vsftpd.conf<P>在文件最初增添以下一行内容:<P>listen_port=2121<P>3.作废anonymous登录的功效。在vsftpd.conf文件中找到以下一行,并将其值改成“NO”:<P>anonymous_enable=YES<P>4.设定利用者不得变动目次。如许做的目标也是基于平安性的思索。一样平常情形下,利用者的预设目次为/home/username。如果不但愿利用者在登录后可以切换至上一层目次/home,则可经由过程以下设置来完成。在/etc/vsftpd/vsftpd.conf文件中找到以下三行内容:<P>
  1. #chroot_list_enable=YES#(defaultfollows)#chroot_list_file=/etc/vsftpd.chroot_list
复制代码
<P>将其改成:<P>
  1. chroot_list_enable=YES#(defaultfollows)chroot_list_file=/etc/vsftpd/chroot_list
复制代码
新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:
  1. ylguser1
复制代码
5.针对分歧的利用者限定分歧的速率。假定用户ylg所能利用的最高速率为500Kb/s,用户user1所能利用的最高速率为250Kb/s,能够经由过程以下办法设置。在/etc/vsftpd/vsftpd.conf文件尾部新增以下一行:
user_config_dir=/etc/vsftpd/userconf
<P>增添一个名为/etc/vsftpd/userconf的目次:<P>#mkdir/etc/vsftpd/userconf<P>在/etc/vsftpd/userconf下新增一个名为ylg的文件,其内容以下所示:<P>local_max_rate=500000<P>在/etc/vsftpd/userconf目次下新增一个名为user1的文件,其内容以下所示:<P>local_max_rate=250000<P>VSFTP关于速率的限定局限也许在80%到120%之间,也就是限定最高速率为100Kb/s,但实践的速率大概在80Kb/s到120Kb/s之间。假如频宽不敷,数值会低于此限定。<P>6.关于每个联机用户,都以自力的历程来运转。一样平常情形下,在启动VSFTP时,只会看到一个名为vsftpd的历程在运转。但如果是读者但愿每个联机用户都能以自力的历程来出现,则可经由过程在/etc/vsftpd/vsftpd.conf文件中增添以下一行来完成:<P>setproctitle_enable=YES<P>7.保留/etc/vsftpd/vsftpd.conf文件,然后从头启动vsftpd:<P>#servicevsftpdrestart<P>8.测试刚创立的FTP服务器。<P>以缺省体例登录会被回绝,由于此时的默许端标语已变动为2121,以是登录时需指定端口。<P>
  1. #ftp127.0.0.1ftp:connect:Connectionrefused
复制代码
<P>此时也不克不及再利用匿名体例登录:<P>
  1. #ftp127.0.0.12121Connectedto127.0.0.1(127.0.0.1).220(vsFTPd1.1.3)Name(127.0.0.1:root):anonymous331Pleasespecifythepassword.Password:530Loginincorrect.Loginfailed.
复制代码
<P>假如以用户ylg则能够乐成登录(指定端口2121),并显现接待信息:<P>
  1. #ftp127.0.0.12121Connectedto127.0.0.1(127.0.0.1).220(vsFTPd1.1.3)Name(127.0.0.1:root):ylg331Pleasespecifythepassword.Password:230-接待离开我的FTP站点230Loginsuccessful.Havefun.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.
复制代码
<P>由于在设置中设定了不克不及切换目次,以是以下命令没法准确实行:<P>
  1. ftp>cd/home550Failedtochangedirectory.
复制代码
<P>再来测试一下上传和下载。起首下载服务器目次中的test.txt文件:<P>
  1. ftp>gettest.txtlocal:test.txtremote:test.txt227EnteringPassiveMode(127,0,0,1,243,215)150OpeningBINARYmodedataconnectionfortest.txt(21bytes).226FilesendOK.21bytesreceivedin0.00308secs(6.7Kbytes/sec)
复制代码
<P>能够经由过程!ls命令看到本机目次中已乐成下载该文件。然后上传本机目次中的ylg.txt文件到服务器:<P>
  1. ftp>putylg.txtlocal:ylg.txtremote:ylg.txt227EnteringPassiveMode(127,0,0,1,133,248)150Oktosenddata.226FilereceiveOK.19bytessentin0.0401secs(0.46Kbytes/sec)
复制代码
<P>用ls命令检察服务器目次,会发明该文件已乐成上传。<P>为了测试分歧连机用户利用的是分歧历程,可使用ps-ef指令,显现以下所示:<P>
  1. #ps-ef|grepftproot129721356013:44pts/100:00:00ftp127.0.0.12121nobody1297312908013:44?00:00:00[vsftpd]ylg1297512973013:44?00:00:00[vsftpd]user11301313011013:46?00:00:00[vsftpd]root1304113015013:47pts/400:00:00grepftp
复制代码
<P>到如今为止,一个基础能够满意一般利用需求的FTP服务器就已架设完成。<P>在实践使用中,偶然为了增添平安性,会将FTP服务器置于防火墙以后。如本文开首所述,主动传输形式合适于带有防火墙的情形。上面就来创立一个防火墙后的FTP服务器,该服务器FTP端口为2121,数据传输端口为2020。<P>实行以下两行指令,只同意2121和2020端口翻开,其他端口封闭:<P>
  1. #iptables-AINPUT-ptcp-mmultiport--dport2121,2020-jACCEPT#iptables-AINPUT-ptcp-jREJECT--reject-withtcp-reset
复制代码
<P>修正/etc/vsftpd/vsftpd.conf文件,在文本最初增加以下两行:<P>
  1. listen_port=2121ftp_data_port=2020
复制代码
<P>从头启动vsftpd:<P>#servicevsftpdrestart<P>偶然但愿间接在/etc/hosts.allow中界说同意或回绝某一源地点,能够经由过程以下设置来完成。先确保/etc/vsftpd/vsftpd.conf中tcp_wrappers=YES,RedHat9.0中,这是默许值。从头启动vsftpd<P>#servicevsftpdrestart假定供应168.192.2.1和210.31.8.1到210.31.8.254的毗连,则可对/etc/hosts.allow举行以下设定:
  1. vsftpd:168.192.2.1210.31.8.:allowALL:ALL:DENY
复制代码
<P>设置假造用户FTP<P>下面设置的FTP服务器有一个特性,就是FTP服务器的用户自己也是体系用户。这明显是一个平安隐患,由于这些用户不但可以会见FTP,也可以会见别的的体系资本。怎样办理这个成绩呢?谜底就是创立一个假造用户的FTP服务器。假造用户的特性是只能会见服务器为其供应的FTP服务,而不克不及会见体系的别的资本。以是,假如想让用户对FTP服务器站内具有写权限,但又不同意会见体系别的资本,可使用假造用户来进步体系的平安性。在VSFTP中,认证这些假造用户利用的是独自的口令库文件(pam_userdb),由可拔出认证模块(PAM)认证。利用这类体例加倍平安,而且设置加倍天真。
上面先容设置历程。
<P>1.天生假造用户口令库文件。为了创建此口令库文件,先要天生一个文本文件。该文件的格局以下,双数举动用户名,偶数举动口令:<P>
  1. #viaccount.txtylg1234zhanghong4321gou5678
复制代码
<P>2.天生口令库文件,并修正其权限:<P>
  1. #db_load-T-thash-f./account.txt/etc/vsftpd/account.db#chmod600/etc/vsftpd/account.db
复制代码
<P>3.新建一个假造用户的PAM文件。加上以下两行内容:<P>
  1. #vi/etc/pam.d/vsftp.vuauthrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/accountaccountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/account
复制代码
<P>4.创建假造用户,设置该用户所要会见的目次,并设置假造用户会见的权限:<P>
  1. #useradd-d/ftpsitevirtual_user#chmod700/ftpsite
复制代码
<P>经由该步骤的设置,/ftpsite就是virtual_user用户的主目次,该用户也是/ftpsite目次的具有者。除root用户以外,只要该用户具有对该目次的读、写和实行的权限。<P>5.天生一个测试文件。先切换至virtual_user用户身份,然后在/ftpsite目次下创立一个文件:<P>
  1. #su-virtual_user$vi/ftpsite/mytestThisisatestfile.$su-root
复制代码
<P>6.编纂/etc/vsftpd/vsftpd.conf文件,使其全部文件内容以下所示(往失落了正文内容):<P>
  1. anonymous_enable=NOlocal_enable=YESlocal_umask=022xferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESone_process_model=NOchroot_local_user=YESftpd_banner=WelcomtomyFTPserver.anon_world_readable_only=NOguest_enable=YESguest_username=virtual_userpam_service_name=vsftp.vu
复制代码
<P>下面代码中,guest_enable=YES暗示启用假造用户;guest_username=virtual则是将假造用户映照为当地用户,如许假造用户登录后才干进进当地用户virtual的目次/ftpsite;pam_service_name=vsftp.vu指定PAM的设置文件为vsftp.vu。<P>7.从头启动VSFTP<P>#servicevsftpdrestart<P>8.以假造用户gou(Linux中并没有该账号)举行测试:<P>
  1. #ftp127.0.0.1Connectedto127.0.0.1(127.0.0.1).220WelcomtomyFTPserver.Name(127.0.0.1:root):gou331Pleasespecifythepassword.Password:230Loginsuccessful.Havefun.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.
复制代码
<P>测试下载服务器目次中的一个文件mytest:<P>
  1. ftp>getmytestlocal:mytestremote:mytest227EnteringPassiveMode(127,0,0,1,159,19)150OpeningBINARYmodedataconnectionformytest(21bytes).226FilesendOK.21bytesreceivedin0.00038secs(54Kbytes/sec)
复制代码
<P>测试上传本机目次中的文件vsftpd.conf:<P>
  1. ftp>!lsaccount.dbchroot_listkmytestuserconfvsftpd.confftp>putvsftpd.conflocal:vsftpd.confremote:vsftpd.conf227EnteringPassiveMode(127,0,0,1,117,203)150Oktosenddata.226FilereceiveOK.4229bytessentin0.00195secs(2.1e+03Kbytes/sec)
复制代码
<P>能够看到,利用没有体系账号的假造用户能够乐成完成上传、下载的事情。但该FTP假造服务器只同意假造用户登录,别的体系用户没法登录,如体系用户user1不是假造用户,则不克不及登录该假造服务器。<P>
  1. #ftp127.0.0.1Connectedto127.0.0.1(127.0.0.1).220WelcomtomyFTPserver.Name(127.0.0.1:root):user1331Pleasespecifythepassword.Password:530Loginincorrect.Loginfailed.
复制代码
<P>在假造FTP服务器中,也能够对各个用户的权限举行设置。办法是在/etc/vsftpd.conf文件中增加以下一行:<P>user_config_dir=用户设置文件目次<P>然后在用户设置文件目次下创立响应的用户设置文件,好比为上述名为gou的用户创立一个设置文件(假定设置文件目次为/etc/user_config_dir):<P>
  1. #vi/etc/user_config_dir/gouwrite_enable=NOanono_upload_enable=NO
复制代码
重启FTP服务器,这时候再利用账号gou来登录,就已没有上传的权限了。

按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
萌萌妈妈 该用户已被删除
沙发
 楼主| 发表于 2015-1-18 07:57:13 | 只看该作者
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
再现理想 该用户已被删除
板凳
发表于 2015-1-24 14:15:25 | 只看该作者
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
柔情似水 该用户已被删除
地板
发表于 2015-2-1 17:05:48 来自手机 | 只看该作者
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。
老尸 该用户已被删除
5#
发表于 2015-2-7 12:35:40 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
兰色精灵 该用户已被删除
6#
发表于 2015-2-22 03:18:29 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-6 23:44:04 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
小魔女 该用户已被删除
8#
发表于 2015-3-13 23:09:25 | 只看该作者
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
分手快乐 该用户已被删除
9#
发表于 2015-3-20 22:53:46 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表