位置: 编程技术 - 正文

OpenBSD 3.8 release 架设FTP服务器

编辑:rootadmin

推荐整理分享OpenBSD 3.8 release 架设FTP服务器,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

使用OpenBSD 3.8 release自带的FTPD架设FTP服务器

OpenBSD的ftpd程序没有配置文件,就靠设置运行参数进行配置。所有参数的含义都可以在ftpd的man文档中获得详细信息:

$ man ftpd

ftpd程序的启动有三种方法(inetd/"rc file"/"command line" ):

1: inetd方式: 在"/etc/inetd.conf"文件中有这么一行: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -US

这里为"ftpd"传递了两个参数"-US"。当然你还可以组合自己想要的参数。(一些常用参数的含义已在下文给出)。 inetd方式还需要同时启动inetd服务,OpenBSD默认启动了inetd(可以看看 /etc/rc.conf 中的"inetd_flags"变量的值)。

2: "rc"方式; 所谓"rc"方式,指的就是通过配置"/etc/rc.conf"或者"/etc/rc.conf.local"来启动系统服务。 为"/etc/rc.conf"中的"ftpd_flags"变量设置参数,并确保该行没有被注释掉。 这种方法需要在重新启动系统后才会生效; 3: 直接在命令行下执行ftpd命令,这样就不需要重启系统了: # /usr/libexec/ftpd -4DllUS

ftpd 程序的终止:

1: 如果不需要提供ftp服务,则在 /etc/rc.conf 中将 ftpd_flags 变量注释掉(在该行最开头加一个"#"符号); 2: 使用ps查看ftpd的PID,或者查看"var/run/ftpd.pid"文件,然后"kill PID"。

以下是 ftpd 常用的一些参数(这里列出的只是常用的,并不是全部。更多的参数请查看 ftpd 的man文档):

-4 如果指定了"-D"参数,则强制 ftpd 只使用IPv4地址。 -6 和"-4"的解释类似;如果指定了"-D"参数,则强制ftpd只使用IPv6地址。 -A 只允许匿名登录(除非指定了"-n"选项)。 -D 如果指定了该参数, ftpd 将做为daemon运行,**** ftpd 端口并且fork子进程对连接进行 处理。在繁忙的服务器上,这样可以减少系统负载,与使用 inetd 方式启动ftpd比起来, 这种方式使用更少的系统资源。 -d 使用LOG_FTP将Debug信息写入 syslog。 -l 每个成功和失败的 ftp session 都将由 LOG_FTP 工具通过syslog记录下日志。如果这个选 项被指定两次,所有get/put/append/delete/make directory/remove directory/rename 操作以及所操作的文件都将被记录进日志。 -U 每个并发的ftp session都被记录到日志文件 /var/run/utmp,记录的格式就象who(1)命令 的输出一样。 -n 禁止匿名登录。通常是允许的。 -S 如果设置了这个参数, ftpd 将会把所有匿名用户的下载情况记录在文件 /var/log/ftpd 中 (如果该文件存在的话)。 -T maxtimeout 连接超时的时间限制。默认是2小时。 -u mask 强制设置umask为指定的mask。而不是使用 /etc/login.conf 中的设置(/etc/login.conf 中通常 设置为),并且不允许chmod。

看了这几个选项,你应该可以组合出合适的选项来满足自己的功能需求了。

1:只允许使用系统帐号登录FTP;

因为匿名用户登录需要使用到系统中的一个名为"ftp"的帐户(更多关于该帐户的讨论,请看本文下半部分),而OpenBSD系统中没有该帐户,需要手动建立并且设置正确的权限,所以如果只允许用户通过系统帐号登录FTP服务器,则只需要在 /etc/rc.conf 中将 ftpd_flags 的值简单地设置为"-D"即可(虽然这时候的设置仍然允许匿名用户登录,但是因为系统中没有"ftp"用户,所以无法登录)。当然你也可以多设置一些参数。比如:

ftpd_flags="-4DllUSn"

参考上面几个常用选项的说明,你就会明白这是什么意思了。 2:允许匿名用户登录访问FTP资源;

因为匿名用户登录到FTP服务器后,实际上是一个"ftp"用户的身份进行所有操作,所以出于安全考虑,这个用户的权限通常被设置得很低。比如:

1:不为该用户提供一个可用的shell,使其无法登录系统; 2:没有一个可用的密码(即FAQ上说的"This account shouldn't have a usable password;"); 3:登录系统后被chroot; ......

接下来我们要做的就是按照上面列出的三个要求来添加和设置这个低权限、处处受限的"ftp"用户。

2.1:添加"ftp"帐户以提供匿名访问;

2.1.1:在/etc/shells中添加一个无法实际使用的shell:

设置"ftp"使用这个shell的目的,是不允许它通过shell登录到系统中。通常我们会有两种选择:

/sbin/nologin /usr/bin/false

为了在添加用户时可以使用这两个shell,我们可以这样做: # echo '/sbin/nologin' >>/etc/shells # echo '/usr/bin/false' >>/etc/shells

或者在未将它们加入到/etc/shells的情况下,在使用adduser添加帐户时加上"-shell"参数:

# adduser -shell /sbin/nologin Enter username []: ftp Enter full name []: anonymous ftpd user Enter shell bash csh ksh nologin sh [/sbin/nologin]: ......

这里在询问该用户使用何种shell时就出现了 /sbin/nologin 。如果不带这个参数,将无法使用它:

OpenBSD 3.8 release 架设FTP服务器

# adduser Enter username []: ftp Enter full name []: anonymous ftpd user Enter shell bash csh ksh nologin sh [bash]: /sbin/nologin /sbin/nologin: is not allowed! Enter shell bash csh ksh nologin sh [bash]:

这里就提示了不允许使用 /sbin/nologin 做为shell使用。

这里使用"adduser -s shell /sbin/nologin"来添加一个这样的"ftp"帐户做为示例,并将该用户的$HOME目录设置为"/var/ftp":

# adduser -shell /sbin/nologin -home /var Use option ``-silent'' if you don't want to see all warnings and questions.

Reading /etc/shells Check /etc/master.passwd Check /etc/group

Ok, let's go. Don't worry about mistakes. I will give you the chance later to correct any input. Enter username []: ftp Enter full name []: anonymous ftpd user Enter shell bash csh ksh nologin sh [/sbin/nologin]:ENTER Uid []:ENTER Login group ftp [ftp]:ENTER Login group is ``ftp''. Invite ftp into other groups: guest no [no]:ENTER Login class daemon default staff [default]:ENTER Enter password []:ENTER # 在此直接按ENTER键。这样就可以设置一个不可用的密码。 Set the password so that user cannot logon? (y/n) [n]: y

Name: ftp Password: **** Fullname: anonymous ftpd user Uid: Gid: (ftp) Groups: ftp Login Class: default HOME: /var/ftp Shell: OK? (y/n) [y]: y Added user ``ftp'' Copy files from /etc/skel to /var/ftp Add another user? (y/n) [y]: n Goodbye! #

到这里,添加用户的工作就完成了。还需要把从 /etc/skel 复制到 $HOME 目录的一些"dot files"给删除,以免暴露信息。"dot files"的第一行通常会有一些系统的信息,比如"~/.cshrc"文件中就有这么一句:

# $OpenBSD: dot.cshrc,v 1.5 // :: matthieu Exp $

这至少就告诉了匿名登录的用户,这是个OpenBSD系统。所以把它们删除:

# rm -f /var/ftp/.*

3:为/var/ftp目录设置正确的权限以保证安全性;

3.1:"~ftp"目录;

"~ftp"目录表示"ftp"用户的主目录,在本例中就是"/var/ftp"目录。将它的owner设置为"root",权限设置为任何人都不可写():

# chown -R root:wheel /var/ftp # chmod -R /var/ftp

3.2:"~ftp/bin"目录;

这个目录并不是必须的。如果希望匿名用户登录到FTP后能够执行一些command,就可以将command复制到这个目录下。所有的command的权限都应该设置为只允许执行()。

# mkdir /var/ftp/bin # chown -R root:ftp /var/ftp/bin #COPY YOUR PROGRAMS TO /var/ftp/bin,AND THEN: # chmod -R /var/ftp/bin/*

3.3:"~ftp/etc"目录;

和"~ftp/bin"目录一样,这也是个可选的,并不推荐创建它。(更多关于该目录设置的信息请查看"ftpd"的man文档)。

3.4:"~ftp/pub"目录:

这个目录用来存放你希望被匿名用户访问的文件。权限应该设置为。 # chown -R root:ftp /var/ftp/pub # chmod -R /var/ftp/pub

这里虽然提到了创建三个目录,但是实际上我们只需要创建"~ftp/pub"目录并设置好权限就可以了。

4:chroot匿名登录的用户;

"ftpd"会将"/etc/ftpchroot"文件中列出的用户都chroot。要使"ftp"用户在登录ftp后被chroot,只需要简单地把用户名添加到这个文件中就可以了。这是一个示例文件:

# file : /etc/ftpchroot # $OpenBSD: ftpchroot,v 1.3 // :: deraadt Exp $ # # list of users (one per line) given ftp access to a chrooted area. # read by ftpd(8). ftp bibby

"ftpd"在启动时会读取这个文件,如果"ftp"和"bibby"这两个用户登录ftp,将被分别chroot到自己的$HOME目录下。

5:其他一些相关文件;

/etc/ftpusers -- 列出了所有不受欢迎的用户。列在该文件中的用户都无法登录ftp。 /etc/ftpwelcome -- 欢迎信息。登录上ftp的用户都将在登录时看到这一信息。 /etc/motd -- 如果"/etc/ftpwelcome"文件不存在,则使用"/etc/motd"文件的内容做为欢迎信息。 .message -- 这个文件可以被放置在"~ftp"目录下的任何一个子目录中。用户进入该目录时就会显示这个文件中的内容。

freeBSD5.4下安装配置apache2+php5+mysql5过程 1.下载:mysql-standard-5.0.-beta-freebsd5.3-i.tar.gz2.下载:php-5.0.5.tar.gz3.下载:httpd-2.0..tar.gz4.所下载的压缩包上传到系统的FTP上。5.安装MYSQL:#tarzxvfmysql-standard-

freebsd vsftpd 配置方法 1.安装#cd/usr/ports/ftp/vsftpd/#makeinstallclean2.配置编辑/etc/inetd.conf,加入下面一行:ftpstreamtcpnowaitroot/usr/local/libexec/vsftpdvsftpd编辑/usr/local/etc/vsftpd.conf,修改以下配

freebsd下jail命令说明 Jail命令在FreeBSD4.0中首次出现。用于监禁进程以及其衍生的子进程。而且jail和FreeBSD本身的secure_level合并使用可以显著限制(jail中的)root的能力。假设

标签: OpenBSD 3.8 release 架设FTP服务器

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

上一篇:Freebsd 6.0安装配置Apache+MySQL+PHP+Myphpadmin+Webmin(freebsd ports安装)

下一篇:freeBSD5.4下安装配置apache2+php5+mysql5过程(freebsd怎么安装软件)

  • 企业合并债权如何处理
  • 偷税漏税逃税是什么意思
  • 办公室的饮用水应该放在哪个科目下?
  • u盘算固态吗
  • 增值税零申报附加税费情况表没发保存
  • 每股未分配利润是什么意思
  • 累计赡养老人专项扣除6000
  • 企业所得税季报弥补以前年度亏损怎么填
  • 企业所得税前扣除是啥意思
  • 资本溢价能不能退还股东呢
  • 补交印花税需要调账吗
  • 劳保费计入管理费用的什么
  • 餐饮招待怎么入账
  • 办公室租赁合同需要交哪些税额?
  • 企业所得税计提金额怎么算
  • 投资收益涉及税种
  • 防暑降温费可以用工会经费吗
  • 企事业承包承租方缴纳的管理费税费
  • 没有道路许可证的车子怎么处罚
  • 小规模超过30万是全额交税吗
  • 利润出现负数怎么调整
  • 免抵退税申报表主表
  • 小规模未达起征点附加税要计提吗
  • 职工食堂操作流程图
  • 购进商品是什么会计科目
  • 插上u盘电脑无法访问怎么办
  • 高速过路费抵扣进项怎么填报
  • 房地产企业纳税申报需要报哪些报表
  • 库存现金的主要内容有哪些
  • 附加税要先计提再支付吗
  • 员工出差补贴怎么入账
  • 蕾德纳斯
  • 可供出售金融资产和交易性金融资产
  • 自查补缴增值税如何申报
  • yii2带搜索功能的下拉框实例详解
  • [Vue warn]: Error in render: “TypeError: Cannot read properties of undefined(reading“category1Name“
  • css面试题及答案
  • python制作chm
  • dedecms使用教程
  • 增值税专用发票上注明的价款含税吗
  • 预交增值税款在申报表哪里填列的
  • 销售退回的会计科目
  • 固定资产入账及摊销方法
  • 回扣没拿到也算违法吗
  • 三方转账协议各方怎么记账
  • 怎么登记现金日记账和银行存款日记账
  • 应付利息增加说明企业什么
  • 视同销售的几种情况都有什么?
  • 什么情况下不能开税票
  • 存货报废进项税转出分录
  • 补缴纳税款
  • 承租人收到融资租赁款
  • 手工账本应付账款怎么做
  • 销售返利怎么做税务处理
  • 预算收入包括增值税吗
  • 弱电系统可以入户门吗
  • 税金及附加科目余额在借方还是贷方
  • 没有发票的费用汇算清缴的时候怎么调出来
  • 残保金怎么办理
  • vmware虚拟机不能用桥接模式
  • win7系统玩英雄联盟黑屏怎么办
  • 7款应用最广泛的游戏
  • win10任务界面
  • 支持google play
  • bat批处理命令大全
  • jquery 获取json的key
  • linux生成网卡配置文件
  • mysql命令备份数据库
  • android设置移动网络灰色是什么原因
  • 轻松实现人生理想生日尾数农历
  • python3遍历字典
  • 动态表单的设计与实现
  • 税务局人工客服时间
  • 北京亦庄开发区属于哪个区
  • 国家税务总局全国增值税发票查验平台
  • 社保由税务部门征收的文件
  • 福建省国家税务总局稽查局局长
  • 税务人员少征税款
  • 国地税联合办公
  • 小微企业企业所得税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设