ubuntu11.04下apache tftp以及ftp服务器的安装和基本配置

来源:互联网 发布:matlab cell数组赋值 编辑:程序博客网 时间:2024/05/03 21:43

  今天笔记本上的ubuntu系统出了问题,重装了系统,也把基本的服务器 apache tftp ftp都再做了一遍,也算是又复习了一遍,以前是做好了能用就算了,今天做完了总结一下,省得下次还会遇到麻烦。

  要声明的一点是,由于我不是专门弄各种服务器的,我做的是嵌入式,我做这些服务器是为了能在开发板和我的主机之间通信传输一些基本的文件就可以,所以我的配置很简单,主要的就是更改服务器默认登录目录,只保证基本能用,如果你要搭建服务器需要详细配置,我写的这个就没有参考价值了。


  ftp服务器


  首先安装,aptitude install vsftpd, aptitude install vsftp。vsftpd是服务器,vsftp是客户端,linux下服务器和客户端基本都是这样命名的。我们主要要操作的是服务器,客户端在开发板上,安装好以后,要找到vsftpd的配置文件,/etc/vsftpd.conf,编辑这个文件。

  这里要说明的一点是,vsftpd服务器有2种模式,standalone和xinetd模式,standalone可以理解为vsftpd进程独自在后台监听端口,xinetd是由xinetd进程来监听端口,哪个端口有收发就通知哪个服务器进程,这样比较节省资源。

  这里dtp采用的是standalone模式,vsftpd.conf中第一条就是listen=YES,如果是xinetd模式的话这里就改成NO,其他的暂时不要改,再添加2句,就是设置本机用户和匿名用户登录的默认目录:

  local_root=/work/ftp

  anon_root=/work/ftp

  等号后面就是你设置的ftp目录了,这样就好了。

  对于vsftpd.conf文件中每条的详细含义,我从网上找到了一部分,和大家分享。

ml代码  收藏代码
  1. anonymous_enable=NO                  #禁止匿名  
  2. local_enable=YES                     #允许本地登录  
  3. write_enable=YES                     #允许写,如需上传,则必须  
  4. local_umask=027                      #将上传文件的权限设置为:777-local_umask  
  5. anon_upload_enable=YES               #允许虚拟用户和匿名用户上传  
  6. anon_other_write_enable=YES          #允许虚拟用户和匿名用户修改文件名和删除文件  
  7. dirmessage_enable=YES            
  8. xferlog_enable=YES                   #打开日志记录  
  9. connect_from_port_20=YES  
  10. xferlog_file=/var/log/vsftpd.log     #日志存放位置  
  11. xferlog_std_format=YES               #标准日志格式  
  12. idle_session_timeout=600             #空闲连接超时  
  13. data_connection_timeout=120  
  14. ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息  
  15. guest_enable=yes                     #允许虚拟用户  
  16. guest_username=vsftpdguest           #虚拟用户使用的系统账号  
  17. virtual_use_local_privs=YES          #虚拟用户拥有本地系统权限  
  18.   
  19. chroot_local_user=YES              
  20. chroot_list_enable=YES  
  21. #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或直接用                             
  22. chroot_local_user=YES                                 
  23.   
  24. listen=yes                #监听/被动模式  
  25. listen_port=21            #监听端口  
  26.   
  27. chroot_list_file=/etc/vsftpd/vsftpd.chroot_list    #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中  
  28. user_config_dir=/etc/vsftpd/vsftpd_user_conf       #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中  


  最后一步就是要重启服务,service vsftpd restart。可以本机用户登录一下试一下,ftp localhost。 也可以用netstat -lpnt 看一下vsftpd有没有在监听21端口。


tftp服务器


  安装,aptitude install tftpd-hpa tftp-hpa,xinetd。这里就要用到xinetd程序了,因为起初我想用standalone模式,但是tftpd一直起不来,所以就换用xinetd模式,让xinetd来监听它,安装好以后,需要先配置一下xinetd,/etc/xinetd.conf,打开,可以看到就是包括xinetd.d目录下的文件,进入xinetd.d目录,这下面就是一些需要xinetd来监听端口的服务的说明配置文件,我安装了之后这个目录下没有关于tftpd服务器的说明,新建文件,仿照其他文件添加如下内容:

service tftp
{
        disable         =no
        socket_type     =dgram
        protocol        =udp
        wait            =yes
        user            =root
        server          =/usr/sbin/in.tftpd
        server_args     =-s /work/tftproot
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}

  server_args参数需要注意下,是来设置tftp服务器的共享目录,参数的解释如下:

         -l 使用standalone模式运行,此模式下,将会忽略-t选项
        -a address:port 在standalone模式下服务所在的IP与端口,如果不指定,则在本机所有IP,/etc/service中指定的port上侦听连接
        -c 允许在服务器上新建文件,否则只允许更新现有的文件。如果未指定-U或-p选项,则允许任何人上传文件
        -s directory 服务器端默认的目录,默认为/var/lib/tftpdboot
        -u username tftp服务以什么身份运行,默认是nobody,一般可以新建一个tftp的账号来运行
        -U umask 上传文件的掩码,如果未指定-p则为000,如果指定了-p,则采用指定的umask
        -p 对于通过-u指定的用户执行的动作,不做额外的权限检查

  我是将/work/tftproot作为我tftp服务器的默认目录。修改好了tftpd文件,也就是把tftpd服务器的监听任务给了xinetd进程,然后重启xinetd进程。

  测试一下,tftp ip地址,get一个文件,或者用netstat -lpnu查看一下,69端口有没有监听。

   需要注意的一点是传输的文件的权限必须是全部打开的,不然传输会出错。


apache服务器


  安装 aptitude install apache2,配置文件再/etc/apache2目录下,主配置文件是apache.conf,这个文件里其实已经将apache2目录下其余的配置文件用include都包括进来了。

  在/etc/apache2/下面,会发现有两对目录,分别是mods-available和mods-enabled,sites-available和sites-enabled,*-available是提供可用的一些配置,*-enabled是启动你需要的一些配置。如果需要把可用的配置启动,就在enabled目录下做一个available的符号连接,这样用起来比较的方便。

  apache服务器的默认分享目录实在sites-enabled下的000-default文件中,打开,会发现这样一句:

                                              DocumentRoot /work/www

  这就是服务器的默认目录,将此文件中用到这个路径全部修改成你的路径就可以了。

  重启服务service apache2 restart,这时再本机浏览器上输入127.0.0.1(本地环回),如果显示IT WORK!就表明apache成功了。也可以查看一下端口,netstat -lpnt看一下80端口有没有在监听。


附加ftp tfp的一些基本知识:

     文件传输协议(FTP)实际上就是传输文件的协议,它可以应用在任意两台主机之间,但是FTP不仅仅是一个协议,它同时也是一个程序。作为协议,FTP是被应用程序所使用的;而作为程序,用户需要通过手动方式来使用FTP并完成文件的传送。FTP允许执行对目录和文件的访问,并且可以完成特定类型的目录操作,例如将文件重新定位到不同的目录中。显然,FTP是与Telnet合作一同来完成对FTP服务器的登录操作,并在这之后再开始提供文件传送服务的。
     然而,通过FTP访问主机这只是第一步。随后,用户必须通过一个由系统管理员为保护系统资源而设置的安全登录认证,这个认证需要输人正确的口令和用户名。但是,也可以通过使用用户名“anonymous” 来尝试登录,当然,通过这种方式完成登录后,所能访问的内容将会受到某些限制。即使FTP可以被用户以应用程序的方式来使用,FTP的功能也只限于列表和目录操作、文件内容输人,以及在主机间进行文件拷贝。它不能远程执行程序文件。
    简单文件传输协议(TFTP)是FTP的简化版本,只有在你确切地知道想要得到的义件名及它的准确位置时,才可有选择地使用TFTP。TFTP是一个非常易用的、快捷的程序!TFTP并不提供像FTP那样的强大功能。TFTP不提供目录浏览的功能,它只能完成文件的发送和接收操作。这个紧凑的小协议在传送的数据单元上也是节省的,它发送比FTP更小的数据块,同时它也没有FTP所需要的传送确认,因而它是不可靠的。正是由于这个内在的安全风险,事实上只有很少的站点支持TFTP服务
    FTP 是完整、 面向会话、常规用途文件传输协议。而 TFTP 用作 bones bare - 特殊目的文件传输协议。
    交互使用 FTP。 TFTP 允许仅单向传输的文件。
    FTP 提供身份验证。而TFTP 不。
    FTP 使用已知 TCP 端口号: 20 的数据和 21 用于连接对话框。 TFTP 用于 UDP 端口号 69 其文件传输活动。
    因为 TFTP 不支持验证 WindowsNT ,所以FTP 服务器服务不支持 TFTP。
    FTP 依赖于 TCP,是面向连接并提供可靠的控件。 TFTP 依赖 UDP, 需要减少开销, 几乎不提供控件。




原创粉丝点击