Chinaunix首页 | 论坛 | 博客
  • 博客访问: 283466
  • 博文数量: 48
  • 博客积分: 1255
  • 博客等级: 中尉
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-01 18:28
文章分类

全部博文(48)

文章存档

2014年(10)

2012年(9)

2011年(17)

2010年(9)

2009年(3)

我的朋友

分类: LINUX

2011-01-15 23:06:54

OpenSUSE 自带了下列 FTP 服务器端程序,自行选择一个:
* pure-ftpd
* vsftpd
* ftpd (包含在 krb5-apps-servers 软件包中)
vsftpd
特性
* 可以与 xinetd 结合使用
* 安全第一的设计原则
* 小,轻量级软件
安装
* 从 YAST/软件管理 搜索安装 vsftpd。(安装盘上有)
设置
vsftpd 有两种模式,独立模式和 xinetd 模式。
独立模式需要你在开机后手动以 root 执行 vsftpd 命令启动 FTP 服务器,xinetd 模式则不一直运行FTP后台,只有有用户向你的 FTP 服务器发出 ftp 请求时立即启动 FTP 服务器后台程序。后者需要机器启动时打开 xinetd 服务,在 SUSE/SLED 系列是默认的设置。先确定你要选择哪种模式,然后进行之后的设置。
xinetd 模式
* 在 xinetd 中打开,可以手动编辑 /etc/xinetd.d/vsftpd 文件把 disabled yes 改成 disabled no,或者使用命令来实现
代码:
chkconfig vsftpd on
* 启动 xinetd (如果未运行)。
代码:
/etc/init.d/xinetd start
* 确定 xinetd 在机器启动时运行
代码:
chkconfig xinetd on
* root权限编辑文件 /etc/vsftpd.conf,确定 listenYES 前面加了 #。如果没有,加上保存。

独立模式
* root权限编辑文件 /etc/vsftpd.conf,确定 listenYES 前面没有 #。如果有,去掉保存。

检查运行状况和防火墙设置
* 检查 FTP 服务器是否在正常运行,默认配置文件是允许匿名用户只读的,/srv/ftp/ 作为对外 FTP 的主目录。
* 如果必要,调整防火墙设置。如果是用默认的SuSEFirewall2,在 YaST-系统-/etc/sysconfig 编辑器,network-SuSEfirewall2 把 ftp 添加到 FW_SERVICES_EXT_TCP,比如你还要打开 ssh 那么
代码:
FW_SERVICES_EXT_TCP"ftp ssh"
* 如果你需要被动模式 FTP 和 nat,在 YaST-系统-/etc/sysconfig 编辑器,network-SuSEfirewall2
代码:
FW_LOAD_MODULES"ip_conntrack_ftp ip_nat_ftp"
重启之后,vsftpd 将会按照你选择的模式运行。

简明配置

配置要修改文件 /etc/vsftpd.conf.
* 启用向服务器的写权限,去掉下面一行前面的#
代码:
write_enableYES
* 允许本地用户登录,去掉下面一行前面的#
代码:
local_enableYES
* 默认,一个用户不能访问自己主目录之外的目录,要禁用去掉下面一行前面的#
代码:
chroot_local_userNO
* 禁用匿名用户登录
代码:
anonymous_enableNO
配置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服务器。
小补充一下,呵呵
配置文件

* /etc/logrotate.d/vsftpd
* /etc/pam.d/vsftpd
* /etc/vsftpd.conf
* /etc/vsftpd.chroot_list
: 此文件包含对服务器上所有FTP内容有权限的用户名。对其他用户来说,他们在服务器上的主目录对他们显示为根目录。
* /etc/shells
: 在允许本地用户登录之前,系统默认检查是否有有效的用户 shell。以防 PAM 认证不可用的情况。 
* /etc/ftpusers
: 此文件包含*禁止*FTP登录的用户名,通常有 "root", "uucp", "news" 之类,因为这些用户权限太高,登录 FTP 误操作危险性大。
500 OOPS:cannot change directory:/root" 错误,如何解决呢?
言归正传,在开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现 "500 OOPS:cannot change directory:/root" 错误,如何解决呢? 
解决:
1、 查看 SELinux 的状态:  sestatus -b | grep ftp      确切地说,只是查看了ftp的状态。
2、 在出现的结果中可以看到  ftp_home_dir        off  
                        tftpd_disable_trans   off
之类。我们现在只要把其中之一设置为on就可以啦。
3、 setsebool -P ftpd_disable_trans on      或者 setsebool -P  ftp_home_dir  on   
4、 重启vsftpd:  service vsftpd restart
5、 慢慢享受ftp带来的乐趣。
阅读(7280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~