用Linux架设FTP服务器(上)

先设置编译器的编译参数:

数据挖掘实验室

  CC="egcs"
  CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-
  pointer -fno-exceptions"
  ./configure
  --prefix=/usr
  --sysconfdir=/etc
  --localstatedir=/var
  --disable-dnsretry
  --enable-quota
  --enable-pam
  --disable-daemon
  --disable-newlines
  --disable-virtual
  --disable-plsm
  --disable-pasvip
  --disable-anonymous
  --enable-ls
  --enable-numericuid 数据挖掘交友

  这些编译参数告诉编译器如何编译wu-ftpd:

数据挖掘交友

  不要用失败的DNS查询

  加入对定额(QUOTA)的支持(如果OS支持) 数据挖掘工具

  加入对PAM的支持

数据挖掘实验室

  不允许作为单独的daemon运行 数据挖掘研究院

  删除过多的空行 数据挖掘工具

  不支持虚拟服务器 数据挖掘论坛

  禁止PID加锁睡眠消息(用于繁忙的站点)

  被动连接的时候不要求用同样的IP

数据挖掘论坛

  不允许匿名ftp访问

数据挖掘交友

  使用内部的“ls”命令(试验性的) 数据挖掘研究院

  内部的“ls”命令显示UID而不显示用户名(为了提高速度) 数据挖掘实验室

  用下面的命令编译和安装软件:

  make
  make install
  install -m 755 util/xferstats /usr/sbin
  touch /var/log/xferlog
  chmod 600 /var/log/xferlog
  cd /usr/sbin
  ln -sf in.ftpd /usr/sbin/wu.ftpd
  ln -sf in.ftpd /usr/sbin/in.wuftpd
  strip /usr/bin/ftpcount
  strip /usr/bin/ftpwho
  strip /usr/sbin/in.ftpd
  strip /usr/sbin/ftpshut
  strip /usr/sbin/ckconfig
  strip /usr/sbin/ftprestart

数据挖掘交友

  上面的“make”和“make install”可以配置软件以保证系统中有编译所需要的函数库,然后把所有的源文件都编译成可执行的二进制文件,最后把二进制文件和配置文件安装到相应的目录里。

数据挖掘研究院

“install –m”安装“xferstats”程序,用于统计传输了多少文件。“touch”命令为xferstats在“/var/log”目录下创建日志文件。“chomod”把“xferlog”的权限改为只对超级用户“root”可读和可写。接着,我们为“in.ftpd”二进制文件创建符号链接。最后,用“strip”命令减小所有二进制文件的大小以提高wu-ftpd的性能。 数据挖掘实验室

  清除不必要的文件
  [root@deep]# cd /var/tmp
  [root@deep]# rm -rf wu-ftpd-version/ wu-ftpd-version.tar.gz 数据挖掘实验室

[page]

“rm”命令删除所有编译和安装wu-ftpd所需要的源程序,并且把wu-ftpd软件的压缩包删除掉。

数据挖掘实验室

  为FTP站点的用户建立没有shell的帐号

  首先,创建一个新的用户,这个用户被允许连接到ftp服务器上。因为要有“chroot”的环境,这个帐号不同于正常的用户帐号,不能受访问限制。“chroot”使用户产生这样的感觉好像自己已经在文件系统的最顶层了。 数据挖掘论坛

  第一步 数据挖掘交友

  用下面的命令在“/etc/passwd”文件中创建用户。对于每个允许访问ftp服务器的新用户都要重复这个步骤。

  [root@deep]# mkdir /home/ftp
  [root@deep]# useradd -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1
  [root@deep]# passwd ftpadmin 数据挖掘交友

  Changing password for user ftpadmin
  New UNIX password:
  Retype new UNIX password:
  passwd: all authentication tokens updated successfully 数据挖掘交友

  第二步 数据挖掘工具

  编辑“/etc/shells”文件并加入一个空shell,如:null。这个假的shell可以限制用户对ftp服务器的访问。

数据挖掘研究院

  [root@deep]# vi /etc/shells 数据挖掘论坛

  /bin/bash
  /bin/sh
  /bin/ash
  /bin/bsh
  /bin/tcsh
  /bin/csh
  /dev/null ? This is our added no existent shell

  第三步

  现在编辑“/etc/passwd”文件,手工加上“/./”把“/home/ftp”目录和“/ftpadmin”目录分开,用户“ftpadmin”会自动转到(chdir)“/ftpadming”目录下。在“passwd”文件中每添加一个ftp用户都要重复这个步骤。 数据挖掘论坛

  编辑“passwd”文件(vi /etc/passwd),把下面这一行改为:

数据挖掘实验室

  ftpadmin:x:502:502::/home/ftp/ftpadmin/:/dev/null 数据挖掘论坛

  改为:

数据挖掘研究院

  ftpadmin:x:502:502::/home/ftp/./ftpadmin/:/dev/null 数据挖掘实验室

  帐号为“ftpadmin”,这这个帐号的家目录有一些奇怪。第一部分“/home/ftp/”表示“chroot”时作为根目录的目录。被点号分开的“/ftpadmin”表示当登录ftp服务器的时候会自动转到这个目录。“/dev/null”这个空shell不允许“ftpadmin”像正常用户那样登录。经过这些改变,“ftpadmin”用户用的不是真正的shell而是伪shell,这样访问ftp服务器就受到限制。 创建一个“chroot”用户环境
先要创建一个简单的根文件系统(root file system),包含有足够的文件,如果二进制程序、口令文件,等等。当用户登录的时候,Unix就可以改变根文件系统(chroot)。注意一下,如果编译的时候象上面那样加上“--enable-ls”参数,“/home/ftp/bin”和“/home/ftp/lib”两个目录就可以不要了,因为WU-FTP会用自己带的“ls”。不过我们还是介绍一下旧的方法,也就是把“/bin/ls”拷贝到“/home/ftp/bin”(chroot之后就是“/bin”)目录下,然后把相关的运行库拷贝到“/home/ftp/lib”目录下。 数据挖掘研究院

[page]

数据挖掘实验室

第一步

  创建改变根文件系统(chrooted)环境所需要的所有的目录: 数据挖掘交友

数据挖掘实验室

  [root@deep]# mkdir /home/ftp/dev
  [root@deep]# mkdir /home/ftp/etc
  [root@deep]# mkdir /home/ftp/bin (require only if you are not using the “--enable-ls” option)
  [root@deep]# mkdir /home/ftp/lib (require only if you are not using the “--enable-ls” option) 数据挖掘研究院

  第二步

  把新目录的权限设成0511: 数据挖掘工具

  [root@deep]# chmod 0511 /home/ftp/dev
  [root@deep]# chmod 0511 /home/ftp/etc
  [root@deep]# chmod 0511 /home/ftp/bin (require only if you are not using the “--enable-ls” option)
  [root@deep]# chmod 0511 /home/ftp/lib (require only if you are not using the “--enable-ls” option) 数据挖掘研究院

  上面这些“chmod”命令把chrooted之后的“dev”、“etc”、“bin”和“lib”目录设置成超级用户“root”可读、可执行,用户组和所有用户可执行。 数据挖掘工具

  第三步

  把“/bin/ls”文件拷贝到“/home/ftp/bin”目录下,并把“ls”的权限改为0111(不运行用户改变这个文件)。 数据挖掘工具

  [root@deep]# cp /bin/ls /home/ftp/bin (require only if you are not using the “--enable-ls” option)
  [root@deep]# chmod 0111 /bin/ls /home/ftp/bin/ls (require only if you are not using the “--enable-ls” option) 数据挖掘论坛

  第四步

  找到“ls”程序所需的共享库:

  [root@deep]# ldd /bin/ls (require only if you are not using the “--enable-ls” option) 数据挖掘研究院

  libc.so.6 => /lib/libc.so.6 (0x00125000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00110000)

数据挖掘研究院

  把共享库拷贝到“/home/ftp/lib”目录下:

数据挖掘工具

  [root@deep]# cp /lib/libc.so.6 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option)
  [root@deep]# cp /lib/ld-linux.so.2 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option) 数据挖掘论坛

  注意:如果想用Linux的“ls”程序而不是用WU-ftpd自带的“ls”(编译时加上“--enable-ls”参数),才需要第三和第四步。

  第五步

  创建“/home/ftp/dev/null”文件:

数据挖掘研究院

  [root@deep]# mknod /home/ftp/dev/null c 1 3
  [root@deep]# chmod 666 /home/ftp/dev/null

  第六步

  把“group”和“passwd”文件拷贝到“/home/ftp/etc”目录下,然后再改变这两个文件。 数据挖掘工具

  [root@deep]# cp /etc/passwd /home/ftp/etc/
  [root@deep]# cp /etc/group /home/ftp/etc/ 数据挖掘研究院

  编辑“passwd”文件(vi /home/ftp/etc/passwd)把除了“root”和允许使用ftp的用户之外的所有其它项删掉。这对于改变根文件系统的环境很重要,改变之后的“passwd”文件会是象下面这样的: 数据挖掘论坛

  root:x:0:0:root:/:/dev/null
  ftpadmin:x:502:502::/ftpadmin/:/dev/null

数据挖掘研究院

  编辑“group”文件(vi /home/ftp/etc/group),把除了“root”和允许使用ftp的用户之外的所有其它项删掉。改变之后的“group”文件会是象下面这样的:

  root:x:0:root
  ftpadmin:x:502: 数据挖掘研究院

  配置

  可以到这去下载“floppy.tgz”文件:http://pages.infinit.net/lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。下面将具体说明。

数据挖掘实验室

[page]

数据挖掘工具

为了运行FTP服务器,必须创建或者把下面的文件拷贝到相应的目录下: 数据挖掘论坛

数据挖掘论坛

  把“ftpaccess”文件拷贝到“/etc”目录下
  把“ftpusers”文件拷贝到“/etc”目录下
  把“ftphosts”文件拷贝到“/etc”目录下
  把“ftpgroups”文件拷贝到“/etc”目录下
  把“ftpconversion”文件拷贝到“/etc”目录下
  把“ftp”文件拷贝到“/etc/pam.d”目录下
  把“ftpd”文件拷贝到“/etc/logrotate.d”目录下 数据挖掘实验室

  可以把“floppy.tgz”解压之后,找到上面列出来的文件,并拷贝到相应的目录下,或者用拷贝粘贴的方法从本书中直接粘贴出。 数据挖掘工具

  配置“/etc/ftpaccess”文件

  “/etc/ftpaccess”文件是用来配置“ftpd”的。这个文件主要是设置允许哪个用户、多少用户访问ftp服务器,以及一些安全方面的问题。配置文件的每一行或者定义一个属性或者设定一个属性值,。对于非匿名的“chroot”访问,必须创建一些“guestgroup”,每一个都要对应“/home/ftp/etc/group”文件中的项。 数据挖掘研究院

  创建ftpaccess文件(touch /etc/ftpaccess),在文件中加入:

  class openarch guest 208.164.186.*
  limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
  email admin@openarch.com
  loginfails 3
  readme README* login
  readme README* cwd=*
  message /home/ftp/.welcome.msg login
  message .message cwd=*
  compress yes all
  tar yes all
  chmod yes guest
  delete yes guest
  overwrite yes guest
  rename yes guest
  log commands real,guest
  log transfers real,guest inbound,outbound
  guestgroup ftpadmin
  guestgroup webmaster
  # We don‘t want users being able to upload into these areas.
  upload /home/ftp/* / no
  upload /home/ftp/* /etc no
  upload /home/ftp/* /dev no
  # We‘ll prevent downloads with noretrieve.
  noretrieve /home/ftp/etc
  noretrieve /home/ftp/dev
  log security real,guest
  guest-root /home/ftp ftpadmin webmaster
  restricted-uid ftpadmin webmaster
  restricted-gid ftpadmin webmaster
  greeting terse 数据挖掘研究院
  Keepalive yes
  noretrieve .notar

数据挖掘工具

  现在把文件的权限设成600:

数据挖掘交友

  [root@deep]# chmod 600 /etc/ftpaccess 数据挖掘工具

  下面解释配置文件中的设置: 数据挖掘工具

  class

数据挖掘交友

  “class”用来定义一个允许访问ftp服务器的用户类别。可以定义任意多的类别(class)。每一个“class”行的格式如下: 数据挖掘交友

  class <classname> <typelist> <addrglob> 数据挖掘实验室

  <classname>是class的名字,<typelist>是允许加到类别(class)中的用户类型,<addrglob>是这个class允许的IP地址范围。

数据挖掘实验室

  <typelist>中的项是用逗号隔开的,每一个项有三种可能的取值:anonymous、guest或real。anonymous用户是用anonymous或ftp帐号访问ftp服务器而且只需要访问公用文件的那些用户。guest用户有一些特殊因为他们在系统中没有帐号,但是却又是guest组的成员。real用户必须在FTP服务器上有帐号,而且需要经过服务器的安全验证。

数据挖掘实验室

[page]

数据挖掘研究院

<addrglob>可以用通配符,例如:“*”表示所有的站点。下面这一行: 数据挖掘研究院

  class openarch guest 208.164.186.*

数据挖掘论坛

  表示只有在系统中有自己帐号的guest用户而且IP地址为“208.164.186.*”才能访问ftp服务器。 数据挖掘交友

  limit 数据挖掘论坛

  “limit”根据class和时间范围来限制登录ftp服务器的用户数。“limit”的格式是: 数据挖掘研究院

  limit <class> <n> <times> <message_file> 数据挖掘论坛

  其中<class>是受限制的类别(class),<n>表示在这个类别中受到限制的最多用户数,<times>表示“limit”有效的时间段,<message_file>是当达到最大的用户数目的时候,别的用户还想登录时显示的信息。

  <times>中的字符串用逗号隔开,每一个字串表示一天。星期一到星期日分别用Mo、Tu、We、Th、Fr、Sa和Su表示,周末也可以用Wk表示。表示时间的小时和分钟之间不要用冒号隔开。“-”用来表示范围。 数据挖掘研究院

  例如,限制“openarch”这个类别,最多可以有20个用户,访问时间是星期一道星期四全天,星期五从半夜到下午六点。用下面这一行来表示: limit openarch 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg 数据挖掘论坛

  如果一旦达到最大的用户数,还有别的用户想连接ftp服务器,就会把“/home/ftp/.too_mang.msg”中的信息传给用户。

  loginfails 数据挖掘研究院

  “loginfails”设置最多允许的登录失败的次数。可以用下面这一行来表示:

数据挖掘实验室

  loginfails <n>

  <n>表示最多允许的登录失败的次数。例如,只允许失败两次可以这样表示:

  loginfails 3 数据挖掘工具

  readme 数据挖掘工具

  “readme”设置在什么条件下,一旦当前目录中的文件发生了变化需要提醒用户。

数据挖掘实验室

  这个命令的格式为:

  readme <path> <when>

数据挖掘论坛

  <path>是用来提醒用户的文件的名字(例如:README),<when>设置出现这个提示信息的条件。 数据挖掘论坛

  <when>可以为下面两种形式:LOGIN或CWD=<dir>。如果为LOGIN,当用户成功登录的时候就会出现提示信息。如果为CWD=<dir>,当用户进入<dir>目录的时候就会有提示信息。

  请记住当给匿名(anonymous)用户设置提示信息的路径的时候,这个路径必须是相对于匿名ftp目录。

  数据挖掘实验室

 

数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:FTP非交互方式文件传输
下一篇:Linux下安PHP,APACHE,MYSQL,PERL方法
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 构筑更安全的乐园
  • 国内域名解析服务器DNS分布表
  • Linux环境下基于策略的路由
  • 基于UNIX平台FTP服务器的建立
  • 调优Web站点性能完全攻略
  • Internet防火墙技术及安全策略
  • 拖动改变Table的列宽度
  • 国产FTP助手
  • 个人电脑变网站服务器全面解决方案
  • 网络安全漏洞检测
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 调优Web站点性能完全攻略
  • IIS6.0下ASP的新增功能(五)
  • 实战J2EE开发购物网站经验篇
  • IIS6.0下ASP的新增功能(四)
  • IIS6.0下ASP的新增功能(一)
  • IIS6.0下ASP的新增功能(三)
  • 个人电脑变网站服务器全面解决方案
  • 国产FTP助手
  • TAB键的缩排处理
  • Serv
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静