位置: 编程技术 - 正文

FreeBSD6.2架设FTP服务器详解(如何架设ftp)

编辑:rootadmin
FTP联机的两种模式FTP采用 Client/Server 架构,FTP 协议比较特别的地方在于它在使用时必须建立二个联机:一个用来传输指令、一个用来传输档案。当我们使用 FTP 软件连到 FTP 服务器时,客户端会先连到服务器的连接端口,并建立一条「控制联机」。接下来,您会输入账号、密码等指令,这些指令及 FTP 的响应都是使用都是使用「控制联机」。当您要下载档案时,或者是执行 ls 以列出目录中的档案时,档案或目录列表的下载是经另一个联机「数据联机」。「数据联机」和「控制联机」不同的是数据联机所传输的数据比较大,而控制联机只是用来传输指令及简单的响应。基本上,一个完整的 FTP 联机建立过程为: 客户端打开自已机器大于 的连接端口,并连到服务器的连接端口,建立「控制联机」。 客户端开始对服务器下指令,告诉服务器客户端用来传输档案的连接端口为何。 服务器从连接端口 连到客户端所开放的端口号 (大于 ),以建立「数据联机」。 上述这种联机建立的方式是由服务器主动建立「数据联机」,我们称之为「主动模式」(Active Mode)。基本上主动模式的运作在没有防火墙或 NAT 的情形下没有什么问题,但若客户端有防火墙,则可能会无法建立联机。基本上,如果客户端使用的是 FreeBSD 的 NAT 不会有这种问题,FreeBSD 会自动做转换,但若是使用其它的防火墙就不一定可以支持 FTP 的 Active Mode。要解决 FTP Active Mode 的问题,可以在联机时改用「被动模式」(Passive Mode)。所谓的被动模式就是由服务器打开一个连接端口,被动地等客户端连过来建立「数据联机」。被动模式的联机建立过程为:客户端打开自已机器大于 的连接端口,并连到服务器的连接端口,建立「控制联机」。 客户端开始对服务器下指令,告诉服务器进入「被动模式」。 服务器打开一个大于 的连接端口,等待客户端的联机。 客伺端打开自已机器大于 的连接端口,并连到服务器以建立「数据联机」。由于控制联机及数据联机都是由客户端主动连过去服务器,如此即可避开防火墙及 NAT 的问题。

推荐整理分享FreeBSD6.2架设FTP服务器详解(如何架设ftp),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何架设ftp,freebsd ifconfig,如何架设ftp,freebsd做服务器,freebsd服务器搭建,freebsd ifconfig,freebsd ip配置,freebsd ifconfig,内容如对您有帮助,希望把文章链接给更多的朋友!

当您登入一台 FTP 服务器后,如果您输入 ls,却等了很久都没有响应,您可以输入 <Ctrl>+C 以中断命令。接着输入 passive 以进入被动模式,再打 ls 如果可以看到目录内容,则无法联机的问题一定是主动模式的原故。

设定 FTP 服务器FreeBSD 内建有 FTP 服务器的功能,如果您要使用内建的 ftpd,我们不需要特别进行任何安装的动作,只要做好设定即可。1 启动FTP服务器有二种方式启动 ftpd,一种是使用 standalone daemon,另一种是使用 inetd。使用 inetd 我们可以管理许多系统服务,例如 telnet、ssh、ftp 等,大部份的系统服务都是使用 inetd 来启动,使用它的好处在于可以统一管理各种服务,并经由它来设定服务规则,例如是否要阻挡某些 IP 来源等。不过,使用 inetd 的方式缺点是每次有联机要求时,inetd 的 daemon 必须依联机的种类去执行相对映的指令,所以速度比较慢。另一种启动 FTP 的方式是使用 standalone daemon,也就是直接执行 FTP daemon,当它接收到新的联机时,就 fork() 出来处理,这种方式联机建立的速度较快,比较适合专门的 FTP 服务器。使用 inetd,首先编辑 /etc/inetd.conf,将 ftp 设定开头的 # 移除:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l接下来,我们必须使用下列指令重跑 inetd:#kill -1 `cat /var/run/inetd.pid`现在您就可以开始使用 FreeBSD 的 FTP 服务了。如果您要以独立的 daemon 方式启动 FTP,请先确定在 inetd.conf 中没有启动 FTP 服务。接下来,请在新增一个档案 /usr/local/etc/rc.d/ftpd.sh 内容如下:#!/bin/shftpd_program="/usr/libexec/ftpd"ftpd_flags="-D -l"case $1 instart)echo "Starting FTPD"$ftpd_program $ftpd_flags;;stop)echo "Stopping FTPD"killall ftpd;;restart)$0 stopsleep 1$0 start;;esac编辑完后,我们必须将该档案变成可执行:#chmod /usr/local/etc/rc.d/ftpd.sh接下来,您就可以使用下列指令启动 FTPD 了:#/usr/local/etc/rc.d/ftpd.sh tart如果您要停止 FTPD 服务,则使用下列指令:#/usr/local/etc/rc.d/ftpd.sh stop2 编辑欢迎信息当我们联机到一个 FTP 站点时,我们可以看到二个欢迎讯息,一个是登入前的讯息,另一个是登入后的讯息。开头为 - 的就是登入前的讯息,我们称它为欢迎讯息。以 - 为开头的是登入后的讯息,我们称它为本日讯息 (Message of the day)。这二种讯息我们都可以自行设定。如果您要设定的是登入前的讯息,请新增一个档案 /etc/ftpwelcome,并将您的讯息写入该文件中。您不需要写 - 等数据,FTP 服务器会自动帮您加上这种代码。而登入后的讯息是存放在 /etc/ftpmotd,您可以编辑该档以进行设定。3 FTP服务器管理在启动 FTP 服务器时,我们可以加入一些参数以调整服务器的行为。例如,修改预设的连接端口、记录使用者上传、下载的档案等等。有些参数必须要在使用独立的 daemon 方式启动时才有用,而有的参数在 inetd 模式下也可以使用。下表为我们常用的参数: 参数 是否只能在 Daemon 模式下使用 意义 -a 是 当您有二张网络卡或是二个 IP 时,我们可以设定只接受联机到某一个 IP 的联机要求。例如: ftpd -D -a ..0.1 FreeBSD6.2架设FTP服务器详解(如何架设ftp)

此范例表示只接受使用者联机到 ..0.1 这个 IP。

-d 否 记录 FTP 的除错讯息。除了加入这个参数外,您必须修改 /etc/syslog.conf,并加入下列内容以记录 FTP 的讯息。 -h 否 不要显示 FTP 服务器的主机名称、软件信息、版本等。 -l 否 记录 FTP 登入成功及失败的讯息。如果您使用二次 -l,则使用者上传、下载、删除、建立目录时都会留下记录。预设的记录会留在 /var/log/xferlog 中。 -P 是 我们知道 FTP 预设会****连接埠 ,以接受客户端的联机要求。不过如果您是以独立的 daemon 方式启动 FTP,则 可以使用 -P 加上连接埠号以改变预设连接埠。 另外,还有很多用来控制使用者权限的参数,将在后面说明。如果您要修改 ftpd 启动的参数,在 inetd 模式下,您可以修改 /etc/inetd.conf,并在 ftp 设定的最后面加入参数,如下列粗体字所示:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -dftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l -l -d上面的范例中,我们多加入了参数 -l -d,以记录更多 ftpd 的讯息。如果您是以独立的 Daemon 方式启动 ftpd,则请修改 /usr/local/etc/rc.d/ftpd.sh:#!/bin/shftpd_program="/usr/libexec/ftpd"ftpd_flags="-D -l -l -d"...我们只要修改 ftpd_flags 的部份,加入您所要的参数即可。4 FTP权限控制预设的 FTP 启动后,使用者可以上传、下载任何他们有权存取的档案。在登入后,使用者可以进到任何系统中的目录 (如果目录权限允许的话)。我们可以设定限制某些账号不可以使用 FTP 登入。使用者在登入 FTP 服务器时,有几个规则会拒绝该账号登入:如果 /var/run/nologin 存在,则所有账号都不可以登入。这个档案可以用来暂时停止 FTP 服务。 使用者一定要有密码才能登入,没有密码的使用者无法登入。 使用者名称不可以出现在 /etc/ftpusers 中。 使用者群组不可以出现在 /etc/ftpusers 中。 使用者所使用的 shell 必须要时合法的 shell。合法的 shell 会被定义在 /etc/shells 中。 除了匿名模式外,使用者名称不可以是 ftp 或 anonymous。/etc/ftpusers 定义了不可以使用 FTP 服务的使用者及群组。看一下该档案的内容,我们可以看到该档案中已经有一些使用者不可以登入 FTP。这些使用者都是系统预设的账号,我们也可以经由修改它来加入其它使用者。在 /etc/ftpusers 中,如果开头是 "@" 表示群组名称。除了控制使用者账号外,在「inetd」模式下,我们还可以控制联机来源。所有 FreeBSD 中由 inetd 所启动的服务都可以经由修改 /etc/hosts.allow 以使用 TCP Wrappd 来限制联机来源。下列为预设的 /etc/hosts.allow 内容:# Provide a small amount of protection for ftpdftpd : localhost : allowftpd : .nice.guy.example.com : allowftpd : .evil.cracker.example.com : denyftpd : ALL : allow如果我们要限制某几个 IP 或网域不能使用 FTP,可以使用下列范例:# Provide a small amount of protection for ftpdftpd : localhost : allowftpd : ...5 : denyftpd : .evil.cracker : denyftpd : ALL : allow如果您要设定只有某些来源可以使用 FTP,而拒绝大多数的主机,则可以设定:# Provide a small amount of protection for ftpdftpd : localhost : allowftpd : ..0. : allowftpd : my.friend.com : allowftpd : ALL : deny在使用者登入后,只要目录、档案权限许可,它们可以自由的上传、下载档案。如果您希望加以限制读写的权限,可以在启动 FTP 时加上下列几个参数: 参数 意义 -o 限制所有使用者只能上传档案,而无法下载任何档案。 -r 限制所有使用者对于服务器内所有档案只能只读,不可以建立目录、上传、更改档名、或任何会动到档案目录的指令。 上述的参数必须在启动 FTP 服务器时指定

一般使用者登入后,预设会进入自己的家目录中。使用者可以改变工作路径到系统的任何目录中。如果您希望使用者登入后只能在自己的家目录中活动,而不能进入其它系统目录中,可以使用 chroot 的功能。所谓的 chroot 就是将某一个目录变成使用者看到的根目录。例如,我们让使用者 alex 登入后,将 /home/alex 变成根目录。则 alex 在使用指令「cd /」时,还是会停留在 /home/alex。如果他使用指令「pwd」查看目前所在路径,则会显示 /。如此一来,我们就可以确保使用者不会到处乱跑,进入一些不该进入的地方。这个功能对于提升 FTP 的安全性有莫大的助益。

设定 chroot 的方法很简单,只要修改 /etc/ftpchroot 即可。下面是一个范例:alex@guestjohn /var/ftp@other /var/ftp其中第一行是设定使用者 alex 登入后,以自己的家目录为根目录。第二行的 @guest 表示只要是群组为 guest 的使用者,都以自己的家目录为根目录。而第三、四行分别表示使用者 john 及群组 other 都以 /var/ftp 为根目录。只要我们善用 chroot 的功能,就可以加强保护系统其它目录,让没有权利的使用者不可以进入系统目录中。建议您在开放 FTP 服务时,将所有使用者都加入 /etc/ftpchroot 中。我们平常在登入 FreeBSD 的 FTP 站台时,可以使用 anonymous 或是 ftp 这二个使用者登入,而且在登入时,任何密码都可以通过。这种可以使用 anonymous 登入的 FTP 就叫作匿名 FTP。anonymous 及 ftp 这二个账号是预设的匿名账号,当使用者以匿名登入时,服务器会将匿名账号对映到系统内的真实使用者 ftp。所以,如果您要提供匿名的 FTP 服务,请使用下列指令新增使用者账号 ftp:#pw adduser ftp#mkdir /home/ftp#chown ftp:ftp /home/ftp我们建立了使用者 ftp 及其家目录 /home/ftp。使用 pw 指令所建立的使用者在 /etc/master.passwd 中的密码字段预设为 *,表示不可以登入。这个使用者除了匿名 FTP 外,将不可以使用 telnet、SSH、或是其它服务。

在新增了使用者 ftp 之后,我们就已经支持匿名 FTP 的功能了。现在您可以使用 anonymous 或 ftp 账号登入,而且不需任何密码。由于开放了匿名 FTP 后,任何人都可以登入系统,所以匿名账号登入后一定会使用 chroot,以将匿名使用者限制在家目录中。

除了强制使用 chroot 外,我们还可以在启动 FTP 时加上一些参数,以针对匿名使用者进行更多的限制。下表为启动 FTP 服务时可以使用的参数: 参数 意义 -M 禁止匿名使用者建立新的目录。 -m 允许匿名使用者覆写一个存在的档案。预设启动 FTP 时,并不允许匿名使用者覆写已经存在的档案。当使用者上传档案时,如果已经有同档名的档案存在,系统会自动为上传的档案改名。 -O 让匿名使用者只能上传档案,下载档案的功能会被取消。 匿名使用者权限除上表中的几个参数外,一样可以使用 -r、-o 等用来控制一般使用者权限的参数来控制匿名使用者。匿名的 FTP 服务器可以说是危险的开始,如果您没有对匿名的使用者进行权限控制,在开于匿名 FTP 后,将会产生许多安全性的问题。以上只是针对FreeBSD系统自带的简单ftpd进行的配置应用,如果希望架设更强大的FTP服务器,可以选用proftpd等工具来实现,而且在/usr/ports/ftp目录下就已经加入了proftpd这个工具,具体配置参考本人后续文章。

ssh 命令说明 在比较新版的FreeBSD中附带的OpenSSH,不能象原来那样用SecureCRT连接时直接记录密码了,代之的是需要用密钥对来验证,每次都需要手工输入密码比较麻烦

openbsd4.1+apache+mysql+php 环境配置 环境:WINXP+VM5openbsd4.1apache2.0.mysql4.1.php4.4.4discuz6.0_utf.安装OPENBSD4.1,确认原来的APACHE停止服务(修改/etc/rc.conf里的参数).2.设置OPENBSD的FTP,把相关软件放上

OpenBSD挂载cdrom, iso, usb的方法 1.mountCDROM#mkdir/mnt/cdrom#echo/dev/cd0a/mnt/cdromcdro,nodev,nosuid,noauto/etc/fstab#mount/mnt/cdrom2.mountiso#vnconfigsvnd0/usr/local/share/4.1.iso#mount-tcd/dev/svnd0c/mnt/cdrom3.mountus

标签: 如何架设ftp

本文链接地址:https://www.jiuchutong.com/biancheng/353912.html 转载请保留说明!

上一篇:FreeBSD下安装J2EE开发环境(freebsd安装mysql)

下一篇:ssh 命令说明(ssh -i命令)

  • 航天信息金税盘未打开
  • 未办理税务登记的个体户怎么注销营业执照
  • 补交土地使用税到大厅怎么申报
  • 开发票时怎么操作收款人 复核人 开票人
  • 固定资产出售损失属于广义费用吗
  • 个人所得税筹划节税
  • 药店药品成本怎么核算
  • 工会费用是什么意思
  • 企业计提固定资产折旧
  • 员工入职第一个月交社保吗
  • 增资印花税缴纳时间
  • 钢结构安装有哪些工种
  • 建筑工程发票抵扣有时间限制吗
  • 个体户需要申报工资薪金吗
  • 二手车抵押银行贷款
  • 工程劳务公司的生产销售情况分析
  • 个税申报成功如何修改
  • 企业自然人电子税务局怎么申报
  • 公允价值变动借方是增还是减
  • mac的分辨率怎么调
  • 存在标的资产的亏损合同,先进行减值
  • 天猫公司不开银行卡吗
  • 会计利润利润总额的计算
  • 超市库存商可以分为几大类
  • 苹果14出来13会下架吗
  • 如何使专业人员的工作卓有成效读后感悟
  • 增值税税收类型有哪些
  • 第二季度企业所得税怎么计提
  • 金蝶财务软件总监是谁
  • nvm for window
  • user-interface console 0 指令无效
  • return 重定向
  • 公账转给员工工资
  • 累计预扣法计算并预扣预缴税款
  • 四舍五入 vb
  • 价税合计公式分配
  • 如何设置linux
  • 应收账款是否存在的审计程序
  • 公司一直没营业也没报税,会怎样罚款?
  • 分公司可以独立签约吗
  • 政府收购企业的流程
  • 交易性金融资产的账务处理
  • 一般纳税人销售旧货税率
  • sql死锁的简单例子
  • 一般纳税人开普票和专票有什么区别
  • 税控系统技术维护费的申报抵扣方法
  • 合伙企业对外投资需要全体合伙人同意吗
  • 2017年6月,小张买了一台笔记本电脑,其主要硬件参数
  • 公司账户收入多少要扣税
  • 研发支出费用化支出期末有余额吗
  • 管理费用处理的是
  • 账上的进项税额比申报多了怎么调账
  • 个人转到公司账上的钱能开发票吗
  • 汇兑损益形成的基础是
  • 企业股东的出资方式
  • 公司向个人借款是否合法
  • mysql 复合查询
  • xp系统怎么打开设置
  • mac的qq缓存在哪里怎么打开
  • centos如何运行程序
  • 通过注册表删除脱机打印机
  • win10任务栏恢复原样
  • windowsqq截屏
  • mxoaldr.exe - mxoaldr是什么进程 有什么用
  • 一个项目引多个项目
  • 细说javascript
  • 获取nodejs命令行信息
  • mongoose怎么用
  • shell的变量分为哪三种
  • 用python编写
  • pythonlist删除指定位置元素
  • jquery ztree实现树的搜索功能
  • 蛋哥的日常
  • 北京税务局几点下班?
  • todesk点不了
  • 关税下降的好处
  • 党建共建的目的意义
  • 在网上缴费后如何退款
  • 广东省广州市国资委
  • 如果企业所得税没有做计提怎么办?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设