suse下配置ftp服务器

这两天在Suse上安装和配置FTP时,遇到不少问题,这里做一下总结:

一、安装
Suse的图形用户界面做的很不错,所以安装过程也比较简单。

1、打开Yast,Software→Software Management;

2、刚开始使用Suse的软件管理器非常的不习惯,找不到所需的信息在什么地方,可是用了一段时间之后,就感觉它的分类方式更加方便,也为用户提供了更多的信息。在Filter→Package Groups,在下面的树形列表中Productivity→Networking→Ftp,也可以展开Ftp节点,选择其中的Servers节点;

3、在左侧的软件包列表中选择vsftpd,然后点击下方的Accept按钮,会提示插入光盘;

4、插入所需的光盘后,系统会自动开始安装,安装完毕,可以在下面的File List选项页中查看vsftpd相关的所有文件。

二、启动服务
安装完成后,vsftpd是作为一个独立的服务启动,不接受xinetd的管理。系统会自动在Service列表中添加名称vsftpd的服务。启动服务的步骤如下:

1、Yast→System→System Services(Run level);

2、在服务列表中选择vsftpd,点击下方的Enable按钮,启动服务,Finish。

注意,在启动vsftpd时可能会不能启动,有时是因为它所依赖的服务没有启动,如syslog,这时选中syslog,点击Enable按钮。如果还是不能启动,可以重新启动xinetd服务,然后再启动vsftpd服务。

三、遇到的问题

1、只允许匿名用户登录
现象:ftp连接过程中,提示输入用户名,输入本机已有用户名angel,得到提示:530 This FTP server is anonymous only,登录失败。

原因:安装vsftpd后,其默认为匿名FTP服务器,只允许匿名用户登录。

解决方法:vsftpd有三种服务器方式:匿名方式、本地方式和虚拟用户方式,此处需要修改vsftpd的配置将其设为本地方式。vsftpd的配置文件位于/etc/目录下,名称为vsftpd.conf。关于该配置文件在网上已经有很多高手做了详细的分析和讲解,并且该文件内部的注释也比较详细,这里就不再一一讲解了。下面只说明几处需要修改的地方:

将local_enable=YES前的#去掉,使其可用,表示允许本地用户登录;增加listen_port=21配置项,设置监听端口为21;该步骤可选,不允许匿名用户登录,将anonymous_enable=YES的值改为NO,根据实际需要设置。

重启vsftpd服务:service vsftpd restart。启动后,在进行测试,使用本地用户angel及其密码登录,成功。注意:以上测试是在本机(或使用SSH登录后)进行。

2、其他机器不能连接该服务器
现象:本机测试通过后,在其他机器(Windows或Redhat)上使用ftp 192.168.1.8连接该服务器,得到Connection closed by remote host或Connection timed out提示信息,连接失败。

原因:Suse的防火墙阻止了外来机器对FTP所用的端口的访问。

解决方法:放开防火墙对FTP所使用的20和21端口的限制,步骤如下:

i> Yast→Security and Users→Firewall;ii> 在左侧的列表中选择Allowed Services,令人感到以外的是,即使安装FTP服务器,在Servces to Allow列表中也没有FTP服务可供选择,但是SSH、HTTP、HTTPS、Samba等都赫然在列,所以要使用高级设置。点击右下方法的Advanced按钮,打开高级设置对话框;iii> 在TCP Ports中输入20 21,注意两个端口号之间使用空格分开,OK;iv> Next→Accept,重新测试,连接成功,使用Suse系统中已有的angel及其密码登录,成功。

注意,虽然这里有些问题是在Suse下遇到,但是在其他操作系统中的vsftpd的配置中依然适用。
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

配置文件

* /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 误操作危险性大。
1. 以root身份登录系统

2. 到java.sun.com去下载JDK1.5.0 for LINUX的rpm. 应该是个jdk-1_5_x-rc-linux-i586-rpm.bin的文件

3.通过chmod +x jdk-1_5_x-rc-linux-i586-rpm.bin命令使其获得可执行权限

4.通过 rpm –ivh jdk-1_5_x-rc-linux-i586-rpm.bin来进行安装

5.安装完毕,JDK安装在/usr/java/目录下

6.设置环境变量(写入/etc/profile中)

export JAVA_HOME = /usr/java/jdk1.5
export PATH = $PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:/usr/java/jdk1.5/lib:/usr/java/jdk1.5/jre/lib:$CLASSPATH

okay了键入 java -version 如果出现相关JDK版本信息,证明成功.

为了开发方便,俺又下了个ECLIPSE做IDE,这样以后在LINUX也可以做JAVA开发了,真好

ECLIPSE的安装就简单多了,下来(一个zip压缩包)后直接unzip到你想要的目录即可,我将其解压到/opt下了。