红联Linux门户
Linux帮助

openSUSE 13.2/13.1下安装配置FTP服务器vsftpd

发布时间:2015-03-30 15:28:08来源:linux网站作者:

这篇指导描述如何使用vsftpd在openSUSE 13.2/13.1里建立并配置一个简单基本的FTP服务器。vbftpd是一个适合Unix/Linux系统的安全快速的FTP服务。


1.建立vsftpd

使用命令以root用户登录
su

接着输入对vsftpd包的命令
zypper in vsftpd

启动vsftpd服务并设置开机自启
systemct1 enable vsftpd
systemct1 start vsftpd


2.配置vsftpd

创建一个用户文件夹
mkdir /srv/ftp

创建一个名为ftp-users的组
groupadd ftp-users

在目录/srv/ftp下创建一个名为Unixmen的用户
useradd -g ftp-users -d /srv/ftp/ Unixmen

设置口令
passwd Unixmen

使ftp主目录/srv/ftp/可被用户访问
chomd 750 /srv/ftp/
chown Unixmen:ftp-users /srv/ftp/

修改如下所示:
[...]
# Uncomment and  Set YES to enable write.
write_enable=YES
[...]
# Uncomment and Set banner name for your website
ftpd_banner=Welcome to Unixmen FTP service.
[...]
# Uncomment
ls_recurse_enable=YES
[...]
# Uncomment and set YES to allow local users to log in.
local_enable=YES
[...]
# To disable anonymous access, set NO.
anonymous_enable=NO
[...]
# Uncomment to enable ascii download and upload.
ascii_upload_enable=YES
ascii_download_enable=YES
[...]
## Add at the end of this  file ##
use_localtime=YES

保存并退出


3.在本地主机中测试ftp服务器

首先登陆它,如下所示
ftp localhost

会有如下输出

Trying ::1:21 ...
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:skopensuse): unixmen  ## FTP user name
331 Please specify the password.
Password:  ## FTP user password
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

你的输出如上的话,我们就能使用Unixmen用户登录了。quit退出ftp控制台。


4.从一个远程主机测试服务器

默认情况下,openSUSE内置的防火墙不允许远程系统登陆ftp。因此要使vsftpd服务
能够通过它的防火墙。这样做:Yast -> Security and Users -> Firewall.
openSUSE 13.2/13.1下安装配置FTP服务器vsftpd

在防火墙选项里,选到Allowed Services,在选择下拉框里选择External Zone并在
Service允许下拉框,选择vsftpd server并点击添加add。
openSUSE 13.2/13.1下安装配置FTP服务器vsftpd

点击下一步,关闭Yast控制中心。

现在试着从一个远程系统连接。就我来说,我使用我的Ubuntu桌面系统。
ftp 192.168.1.150
输出样例
Connected to 192.168.1.150.
220 (vsFTPd 3.0.2)
Name (192.168.1.150:sk): unixmen
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

你的输出如上的话,就能连接FTP服务器了。如果你没有允许vsftpd通过
防火墙,将可能有Connect timed out连接超时的错误。


5.使用浏览器连接
打开浏览器并转到ftp://ip-address/.输入用户名及密码
openSUSE 13.2/13.1下安装配置FTP服务器vsftpd

openSUSE 13.2/13.1下安装配置FTP服务器vsftpd


6.使用filezilla连接到ftp服务器
对菜鸟来说在命令提示符下工作可能会不太耐烦,那就建立一个叫filezilla
的图形化FTP客户端来让事情变得简单。
通常,filezilla可以在几乎说有Linux发行版的默认存储库里找到
在Ubuntu基础版里
sudo apt-get install filezilla

在Fedora/RedHat系统里
sudo yum install filezilla

在openSUSE里
zypper in filezilla

安装filezilla后,打开并输入FTP服务器的IP地址,用户名和密码并点击quickconnect
openSUSE 13.2/13.1下安装配置FTP服务器vsftpd

注:以上图片上传到红联Linux系统教程频道中。

为了增加安全性,你可以通过将用户添加到/etc/vsftpd.chroot_list file中来
限制具体的用户访问FTP。
编辑如下
nano /etc/vsftpd.conf
修改如下
[...]
# Uncomment and set YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
[...]

创建新文件/etc/vsftpd.chroot_list
nano /etc/vsftpd.chroot_list

添加你允许访问FTP服务器的用户。我添加的是Unixmen
Unixmen

重启FTP服务器
systemctl restart vsftpd

现在你可以试着使用在chroot列表文件里的用户登录了,可能会有如下错误
500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list
ftp: Login failed

就是这样的,你的FTP服务器可以使用了。