LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: Kevin

想用freebsd做个ftp服务器玩玩

[复制链接]
发表于 2003-7-31 19:05:26 | 显示全部楼层
我在搞,不过我容易的多,因为我是静态ip,不过我选择pure-ftpd
 楼主| 发表于 2003-7-31 20:35:47 | 显示全部楼层
不是说vsftpd功能更强大嘛,还有更安全嘛,

上面问题怎么没有人回答我呢,please help me!
谢谢
发表于 2003-7-31 21:25:28 | 显示全部楼层
上面那个是说要在inetd.conf文件中把ftp打开吧,vsftpd是用inetd来启动服务的,而不是单独的ftpd进程
 楼主| 发表于 2003-7-31 21:40:51 | 显示全部楼层
那用inetd怎么样打开拉,我用
inetd vsftpd
好象没有任何反映哦,不大明白,请老兄说明白点该怎么让他启动,多谢了
发表于 2003-8-1 08:57:31 | 显示全部楼层
  像其它守护程序一样,vsftpd提供了standalone和inetd(inetd或xinetd)两种运行模式。简单解释一下,standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业FTP服务器。inetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如inetd模式支持per_IP(单一IP)限制,而standalone模式则更有利于PAM验证功能的应用。

  1.inetd运行模式

  从某种inetd运行vsftpd可以提供一种不错的功能——per_IP连接限制。这也是vsftpd 1.1.3版本最新推出并推荐的一种运行模式。实现per_IP连接限制要依赖于vsftpd提供的tcp_wrappers支持。如果使用标准的“inetd”,需编辑/etc/inetd.conf文件,并添加下面一行代码:

$ ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd



  确保删除或注释掉任何原存的FTP服务语句行。假如没有安装tcp_wrappers,或不需要使用它,可去掉“/usr/sbin/tcpd”部分。然后重载配置文件,命令如下:

$ kill -SIGHUP `pidof inetd`



  大多数较新的系统采用的是xinetd超级服务守护进程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:

disable = no
socket_type = stream
wait = no



  # 这表示设备是激活的,它正在使用标准的TCP Sockets。

user = root
server = /usr/local/sbin/vsftpd



  # 说明服务程序/usr/local/sbin/vsftpd已被用来控制FTP接入请求,并且该程序是作为root身份运行的(可能瞬间拥有过大的特权)。请确信已经把vsftpd二进制执行代码安装在了“/usr/local/sbin”目录下。

per_source = 5
instances  = 200



  # 由于安全原因,从一个单一IP地址联入的最大允许数值是5。当前最大连接总数是200。

no_access  = 192.168.1.3



  # 地址192.168.1.3将被拒绝访问。

banner_fail = /etc/vsftpd.busy_banner



  # 显示给用户当连接被禁止时的文件。不论因任何原因而被拒绝(太多用户,IP被禁止)。

  下面一行是产生的例子:

echo "421 Server busy, please try later." > /etc/vsftpd.busy_banner
log_on_success  += PID HOST DURATION
log_on_failure  += HOST



  这将按照时间顺序日志所有尝试连接的IP地址,无论连接成功与否。假如连接启动了一个FTP服务,其进程ID和使用期也将被载入日志。如果使用的是Red Hat,这个日志信息将出现在/var/log/secure文件中。

  最后,重启xinetd,命令如下:

$ /etc/rc.d/init.d/xinetd restart



  需要注意的是,“/etc/xinetd.d”目录中仅能开启一个FTP服务。

  2.standalone模式

  standalone模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置“disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.conf”中的选项为“listen=YES”。
配置vsftpd.conf

  下面来了解一下核心配置文件vsftpd.conf。它的地址为“/etc/vsftpd.conf”,控制语句格式为“语句=值”,注意不要在格式间加入任何空格和标点符号。man手册页中把控制语句分为布尔类(值为YES或NO)、数字类(值为数字)和字符串类(值为字符串)三种。为了管理方便、思路清晰,按照访问权(Access rights)、安全(Security)、功能(Features)和性能(Performance)分成四大类。下面是一个样本配置文件内容,用来说明常用的控制语句:

# Access rights
anonymous_enable=YES  
/*若不想启用匿名访问请修改值为NO*/
local_enable=NO  
/*关闭本地用户登陆服务,指所有非匿名用户*/
write_enable=NO  
/*关闭任何用户的写权限*/
anon_upload_enable=NO  
/*关闭匿名用户上传数据的能力*/
anon_mkdir_write_enable=NO  
/*关闭匿名用户建立目录的能力*/
anon_other_write_enable=NO  
/*关闭匿名用户执行建立和上传之外的写入类命令的操作,比如更
改名字和删除操作的能力*/

# Security
anon_world_readable_only=YES  
/*开启匿名用户只能使用许可权为全部可读的资源*/
connect_from_port_20=YES  
/*从标准端口20触发连接*/
hide_ids=YES  
/*隐藏FTP服务器中用户的ID,用“FTP"取代*/
pasv_min_port=50000  
pasv_max_port=60000  
/*设置pasv传输模式下的端口范围为50000-60000*/

# Features
xferlog_enable=YES  
/*开启日志,记录传输状态到文件/var/log/vsftpd.log*/
ls_recurse_enable=NO  
/*关闭“ls -R"命令,该命令常被用于DoS攻击,非常浪费系统资源,
但“mirror"镜像工具会用到它*/
ascii_download_enable=NO  
/*关闭ASCII模式下载,防止被用于DoS攻击,ASCII下载很消耗CPU负担*/
async_abor_enable=YES  
/*开启支持早期FTP客户端“async ABOR"命令的能力*/

# Porformance
one_process_model=YES  
/*开启每个IP单一进程模式,该模式仅支持具备一定能力的内核,
比如linux kernel 2.4*/
idle_session_timeout=120  
/*踢出空闲了两分钟后的用户*/
data_connection_timeout=300  
/*踢出空闲了五分钟后的下载*/
accept_timeout=60  
/*踢出挂起了一分钟后的passive连接*/
connect_timeout=60  
/*踢出挂起了一分钟后的活动连接*/
anon_max_rate=50000  
/*限止单个用户的下载速度为不超过50kbytes每秒*/



  至此,一个匿名服务器已经可以正常运行了,并且进行了安全方面的设置。实际中,根据FTP服务器不同的需求,比如想启用本地用户登录、想让某类用户具备上传能力、想让登录者看到一份友好的欢迎信息等,还可以在vsftpd.conf中进行相应的设置(用“man vsftpd.conf”参考man手册可获得更多的详细资料)。

  有一些设置选项跟运行模式或外挂模块有关,还有一些选项必须依赖于另一个选项的启用状态。总之,只要精心搭配,完全可以定制出一个称心的FTP服务器。

  tcp_wrappers的应用

  要使用这项功能需要在安装编译之前构建包含tcp_wrappers的vsftpd。可通过编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项“tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。以下是一个样例:

vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
vsftpd: 192.168.1.4: DENY



  其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。这一点对别有用心的连接者很有用。
发表于 2003-8-1 08:58:29 | 显示全部楼层
我也没玩过,找了一段,希望能有用。。。
 楼主| 发表于 2003-8-1 10:51:13 | 显示全部楼层
多谢老兄的帮助,不过最终还是没有搞事实上vsftpd,不过倒是用pure-ftpd建成了,谢谢
 楼主| 发表于 2003-8-1 10:56:18 | 显示全部楼层
最初由 royce 发表
...windows里用的端口映射软件好象叫port turn什么的,忘了,你可以搜索一下端口映射,就全出来了,免费的
你说的动态IP是指你的机器还是主机?主机的话装花生壳,你的机器的话我不知道


royce兄:
    你说的话我就有点不明白了,我是局域网上的机子,我的IP是192.168.0.9,动态IP是主机的,主机是windows操作系统,不会是要把花生壳之类的软件装的主机上面吧,然后就在主机上进行端口映射,然后我的机子只需要建立一个FTP就行了嘛?:help
发表于 2003-8-3 17:18:49 | 显示全部楼层
你的主机上面安装花生壳--用来动态IP,在windows xp下
同样在windowsxp的主机下,用端口映射软件,将ftp的端口,映射到你的freebsd上面。

就是你上面描述的那样!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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