TypeCodes

Redhat/CentOS通过yum安装与配置vsFTPd的详细步骤

由于需要在RHEL5.3中安装oracle数据库,所以博主得把window7中的oracle软件上传到wm8中的linux系统中去。众所周知,对于如何实现vm与windows系统的互通,可以使用vmtools实现。

但是对于一些类似于oracle这种大文件的话,直接从桌面或者其它硬盘拖动到linux中去的话是非常慢的。因此,我们一款轻巧快捷,安全易用的软件把它实现,这就是vsFTPd。下面就介绍下如何在linux系统Redhat/CentOS下简单安装和配置vsFTPd这个服务软件。

如果在使用yum安装时出现“Redhat Linux5 yum出现This system is not registered with RHN”错误提示的话,请移步至博客上一篇文章 《解决Redhat Linux5 yum出现This system is not registered with RHN》

1 检查当前Linux系统是否安装了vsftp
[root@localhost ~]#rpm -qa|grep vsftpd
//若没有任何输出内容,则表示当前linux系统未安装vsftp
2 安装vsftpd服务器

从redhat或者centos的安装镜像包的server/文件夹中提取出rpm包。(RHEL5.3中的是vsftpd-2.0.5-12.el5.i386.rpm,通过vmtools把它复制到root's home中去,然后执行如下命令:

[root@localhost ~]#rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
3 配置vsftpd服务器

vsftp相关的配置文件都在/etc/vsftpd目录中,如何查看它的默认文件:

[root@localhost ~]# ll /etc/vsftpd
total 40
-rw-r--r-- 1 root root 6 Mar 14 01:28 chroot_list
-rw------- 1 root root 125 Dec 13 2007 ftpusers
-rw------- 1 root root 361 Dec 13 2007 user_list
-rw-r--r-- 1 root root 6 Mar 14 23:21 user.list
-rw------- 1 root root 4392 Mar 15 01:07 vsftpd.conf
-rwxr--r-- 1 root root 338 Dec 13 2007 vsftpd_conf_migrate.sh

其中,vsftpd.conf是vsftp的核心配置文件,user.list是允许的用户列表,而ftpusers是禁止的用户列表(如root账户),这个大家有个大概了解就行,下面是配置vsftpd服务器的具体步骤。

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
//里面有很多配置点,我们只需检查
anonymous_enable=YES(是否允许匿名用户anonymous在不用输密码的情况下登录FTP
local_enable=YES(是否允许本地用户登录。什么是本地用户?例如在安装linux的时候会让你填写一个账号,博主的是vfhky
write_enable=YES(开放本地用户的写权限)
//其它可选项:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
//如果启动这项功能,则所有的本地账户登入FTP后均可进入自己根目录之外的其他目录。除了在/etc/vsftpd.chroot_list文件指定的使用者之外,默认值为NO,这里选择YES
4 添加ftp账户test1

使其指向目录/home/wwwroot/ftpuser1,并且禁止登录SSH权限:在/home/中新建wwwroot/ftpuser1的文件夹,然后

[root@localhost ~]# userdel -r test1
[root@localhost ~]# useradd -d /home/wwwroot/ftpuser1 -g ftp -s /sbin/nologin test1 (表示限制test1只能在/home/wwwroot/ftpuser1中)
[root@localhost ~]# passwd test1 (设置密码)
Changing password for user test1.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
5 配置防火墙
[root@localhost ~]# vi /etc/sysconfig/iptables
//REJECT行之前添加如下代码:
-A RH-Firewall-1-INPUT -m state state NEW -m tcp -p tcp dport 21 -j ACCEPT //(因为FTP的默认端口是21
//保存和关闭文件,重启防火墙
[root@localhost ~]# service iptables restart
6 管理vsftpd服务的相关命令
查看vsftpd状态:[root@localhost ~]# service vsftpd stauts
停止vsftpd服务:[root@localhost ~]# service vsftpd stop
重启vsftpd服务:[root@localhost ~]# service vsftpd restart
设置vsftpd开机启动:[root@localhost ~]# ntsysv 或者
[root@localhost ~]# chkconfig --level 35 vsftpd on
7 在当前Linux系统测试vsftpd:
[root@localhost ~]# cd /etc/vsftpd
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]# ftp 192.168.198.128 (填写FTP主机地址,可以通过[root@localhost ~]# ifconfig 获知)
Connected to 192.168.198.128.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.198.128:root): test1
331 Please specify the password.
Password:
230 Login successful.(登录成功)
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/wwwroot/ftpuser1"
ftp> mkdir ftp_data
550 Create directory operation failed.(因为当时新建ftpuser1文件夹时用的是root登录账户,所以无法test1身份创建,所以把ftpuser1改为test1所有,即可显示如下命令)
ftp> mkdir ftp_data
257 "/home/wwwroot/ftpuser1/ftp_data" created
ftp> cd /usr/local
250 Directory successfully changed.
ftp> pwd
257 "/usr/local"
ftp> by
221 Goodbye.
[root@localhost vsftpd]# su - test1
This account is currently not available.(这里的test1是虚拟用户,因此无法登录系统)
[root@localhost vsftpd]# cd /
[root@localhost /]# cd ~
[root@localhost ~]# ftp 192.168.198.128
Connected to 192.168.198.128.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.198.128:root): test1
331 Please specify the password.
Password:
230 Login successful.(登录成功)
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/wwwroot/ftpuser1"
ftp> mkdir test1
257 "/home/wwwroot/ftpuser1/test1" created
ftp> cd /usr/local
250 Directory successfully changed.
ftp> pwd
257 "/usr/local"
ftp> by
221 Goodbye.
8 在windows系统测试vsftpd:

Win+R打开cmd命令,然后输入

C:\Users\vfhky>ftp 192.168.198.128
连接到 192.168.198.128
220 (vsFTPd 2.0.5)
用户(192.168.198.128:(none)): test1
331 Please specify the password.
密码:
230 Login successful.(登录成功)
ftp> pwd
257 "/home/wwwroot/ftpuser1"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
ftp_data
test
test1
226 Directory send OK.
ftp: 收到 23 字节,用时 0.00 23000.00千字节/秒。
9 如果出现500 OOPS的错误提示

若出现500 OOPS:cannot change directory:/home/wwwroot/ftpuser1的错误提示,可以通过以下命令关闭SELinux的保护设置即可解决。

[root@localhost ~]# setsebool -P ftpd_disable_trans 1

完成上面的工作后说明已经成功了,那么具体如何使用ftp命令进行上传或者下载请参照下一篇文章《windows系统中通过CMD命令实现VSFTPD的上传下载》

打赏支持

Comments »