RedHat Linux 9.0 下vsftpd安装

2024-03-26 22:08
文章标签 linux 安装 vsftpd 9.0 redhat

本文主要是介绍RedHat Linux 9.0 下vsftpd安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RedHat Linux 9.0 下vsftpd安装(官方资料翻译)  

2008-03-20 17:37:29|  分类: debian|字号 订阅

虚拟机 v5.0

RedHat 9.0 (本人使用英文版本,Redhat全程采用默认,只在Package Group Selection

--Desktops 选中GNOME Desktop Environment

--Servers选中Server Configuration Tools 和 Windows File Server 和 SQL Database Server

--Development选中Development Tools

--System选中Administration Tools )

我采用两台电脑,一台A用虚拟机来安装RedHat 9.0 ,系统是XP SP2;另一台B用来做记录和测试连接。

RedHat 9.0 没有安装Vsftpd,我是自己安装好RedHat 9.0 后再安装 vsftpd-2.0.5.tar.gz .

为什么我不直接用其中一台机来安装RedHat 9.0 ,原因太多,但使用虚拟机来安装最好的好处就是安装速度快,

按照我上面写的来安装,在虚拟机上安装只用了10分钟就安装系统。

IP划分:

RedHat9.0 192.168.10.100 255.255.255.0 192.168.10.1

A台式电脑 192.168.10.102 255.255.255.0 192.168.10.1

B笔记本  192.168.10.101 255.255.255.0 192.168.10.1

RedHat 9.0 安装完,以root账号登陆;

进到桌面,首先设置IP,设完后不要忘了测试一下成功没有。

设置完后我会进入Init 3里配置。

接着我要从B笔记本里开Serv-U提供载下vsftpd-2.0.5.tar.gz到RedHat 9.0 里

方法:[root@localhost root]#ftp 192.168.10.101

Name: XXX

Pass:XXX

ftp>ls

ftp>mget vsftpd-2.0.5.tar.gz  yes

ftp>bye

我已把vsftpd-2.0.5.tar.gz 下载到root目录。

1)安装vsftpd-2.0.5.tar.gz ;

[root@localhost root]# tar zxvf vsftpd-2.0.5.tar.gz

[root@localhost root]# cd vsftpd-2.0.5

[root@localhost root]# make

这将产生一个二进制文件,你可以验证一下。如下:

[chris@localhost vsftpd]# ls -l vsftpd

-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd

2)满足VSFTPD安装所需的一些条件

VSFTPD默认设置需要一个\"nobody\"用户,如果这个用户不存在,那么添加它。如下:

[root@localhost root]# useradd nobody

useradd: user nobody exists

VSFTPD默认设置需要一个空目录:/usr/share/empty.增加这个目录,如果它还不存在的话。如下:

[root@localhost root]# mkdir /usr/share/empty/

mkdir: cannot create directory `/usr/share/empty\': File exists

如果容许匿名用户(anonymous),那么你将需要一个\"ftp\"用户和其home目录(这个home目录不属于“ftp”用户,

而且“ftp\"用户也对其没有写权限)在你的系统中存在。

以下命令用来创建一个\"ftp\"用户,如果它还不存在的话。

[root@localhost root]# mkdir /var/ftp/

[root@localhost root]# useradd -d /var/ftp ftp

(即使你的\"ftp\"用户已经存在,完成以下这两步也是很有好处的:)

[root@localhost root]# chown root.root /var/ftp

[root@localhost root]# chmod og-w /var/ftp

3)安装VSFTPD的配置、执行和帮助文件。

输入make install后会将二进制文件和帮助文件拷贝到适当的目录。

[root@localhost root]# make install

你也可以手工拷贝这些文件:

[root@localhost root]# mkdir /usr/local/man

[root@localhost root]# cp vsftpd /usr/local/sbin/vsftpd

[root@localhost root]# cp vsftpd.conf.5 /usr/local/man/man5

[root@localhost root]# cp vsftpd.8 /usr/local/man/man8

make install不会拷贝默认的配置文件,所以建议你手工拷贝:

[root@localhost root]# cp vsftpd.conf /etc

daidong注:根据你系统版本的不同,也可能是 cp vsftpd.conf /etc/vsftpd

4)测试 (无inetd影响)

VSFTPD能运行在独立模式(standalone)或者通过inetd(xinetd)来启动。

你能通过inetd来运行vsftpd以更好地控制它。但我们在首次运行时不这么做,以便检查系统是否现在配置正常。

编辑/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下这一行:

[root@localhost root]# vi /etc/vsftpd.conf

在最下面加入以下这一行

listen=YES

这将告诉VSFTPD不要从inetd启动。

OK,现在试着启动FTP。 确定你没有运行其他FTP服务(否则VSFTPD不能占用FTP所需的21端口)。

运行那个二进制文件启动FTP,如下:

[root@localhost root]# /usr/local/sbin/vsftpd &

[1] 2104

如果一切正常,那么你将连上FTP服务器,如下:

[chris@localhost chris]# ftp localhost

Connected to localhost (127.0.0.1).

220 (vsFTPd 1.1.1)

Name (localhost:chris): ftp

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (127,0,0,1,229,133)

150 Here comes the directory listing.

226 Directory send OK.

ftp> bye

221 Goodbye.

-----------------------------roy:以下可选,但我不选,我采用standalone方式----------

5)从inetd或者类似方式启动(官方推荐使用standalone方式)

你也许想通过inetd或者类似方式启动VSFTPD,因为这能给你更多的感受。例如xinetd就有很多的设置。

(注意:VSFTPD的内在机制屏蔽了xinetd的大多数的有用的设置)。

如果使用标准的\"inetd\",你需要编辑/etc/inetd.conf,在其中加入以下一行:

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

(确定你删除或者注释掉一些已存在的FTP服务配置行。如果你没有安装tcp_wrappers,或者不想使用它们,那么

请去掉/usr/sbin/tcpd part).

inetd需要指定并重新载入它的配置文件:

kill -SIGHUP `pidof inetd`

如果你想使用\"xinetd\",请参阅我们提供的范例 /EXAMPLE/INTERNET_SITE/README. 而其他范例文件将告诉你

如何调配出更强大的xinetd功能。

-----------------------------------------------------------------------------------------------------

6)为本地登录配置PAM文件(可选 ,roy:我选了)

如果你在一台激活了PAM的设备上运行VSFTPD,你需要提供一个 /etc/pam.d/ftp 文件。否则非匿名用户将无法

登录服务器。

(注:如果你的PAM版本比较老,那么这个文件也许是 /etc/pam.conf).

做为一个标准设置,你可以拷贝一个已提供的范例文件,如下:

[root@localhost vsftpd-2.0.5]#cp RedHat/vsftpd.pam /etc/pam.d/ftp

7)自定义你的配置文件

完成以上的配置后,建议你安装一个配置文件。默认的配置文件位置是/etc/vsftpd.conf. 在VSFTPD软件分发包内

有一个范例配置文件。

你可以拷贝其为/etc/vsftpd.conf以做进一步修改。

[root@localhost vsftpd-2.0.5]#cp vsftpd.conf /etc

(daidong注:也可能是 cp vsftpd.conf /etc/vsftpd ).

这个默认配置即不容许本地登录也不容许匿名用户上传,也许你希望更改这个配置。

其它

===================

测试平台 (已通过)

-流行的,功能完善的平台都能测试通过。在以下平台的较新版本,VSFTPD工作得很好。在其大部分较早的版本

下,也运行正常。

- RedHat Linux

- RedHat Enterprise Linux

- Solaris / GNU tools (Solaris 8 or newer)

- SuSE Linux

- Debian Linux

- OpenBSD

- FreeBSD

- NetBSD

- HP-UX / GNU tools

- IRIX / GNU tools

- Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)

虚拟用户1

=============

这个例子示范了如何为虚拟用户设置VSFTPD/PAM。

虚拟用户是一个在系统中并不作为一个登录实体而存在的用户。使用虚拟用户比使用真实的用户更安全,因为这

个账号只能用于FTP服务器。

虚拟用户经常用来提供给不大可信任的用户访问某些资源,而这些资源通常是其他普通用户不能访问的。

1)创建虚拟用户数据库

我们将使用pam_userdb来认证虚拟用户。这需要提供一个“db\"格式(一种通用数据库格式)的用户名/密码文件

创建一个\"db\"格式的文件,首先要创建一个标准文本文件,并把用户名,密码以竖直排列方式输入。如logins.txt

[root@localhost vsftpd-2.0.5]#vi logins.txt

down

111

admin

222

这个例子中,down用户的密码是111,只有下载功能。admin用户的密码是222,admin具有上传下载功能。

接着创建一个数据库文件,如下:

[root@localhost vsftpd-2.0.5]#db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

(这要求berkeley db程序已经安装)

(注:一些系统也许安装了多个版本的\"db\",所以某些情况下你可能使用\"db3_load\"才是正确的。对于一些

Debian系统就是这样。

关键在于要让pam_userdb相信它的登录数据库是哪一个db版本所产生(一般都是db3,尽管你的系统里可能安装

的是db4).)

这将创建/etc/vsftpd_login.db文件。显然,你希望设定这个文件的权限:

[root@localhost vsftpd-2.0.5]#chmod 600 /etc/vsftpd_login.db

要了解更多关于维护你的登录数据库的信息,请在\"berkeley DB\"察看相关文档:

http://www.sleepycat.com/docs/utility/index.html

2)用你的新数据库创建一个PAM文件 ,一般是/etc/pam.d

[root@localhost vsftpd-2.0.5]# vi /etc/pam.d/ftp

这是告诉PAM用新的数据库去验证用户。请参考范例vsftpd.pam,它只包含以下2行,其它删除:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

3)为虚拟用户设置home目录

[root@localhost root]# mkdir /home/ftpsite

[root@localhost root]# chmod 700 /home/ftpsite

[root@localhost root]# chown virtual:virtual /home/ftpsite

[root@localhost root]# useradd -d /home/ftpsite virtual

[root@localhost root]# ls -ld /home/ftpsite

drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

我们已经创建了一个名叫\"virtual\"的用户,home目录是\"/home/ftpsite\".

我们拷贝一些东西到这个下载目录:

[root@localhost root]# cp /etc/hosts /home/ftpsite

[root@localhost root]# chown virtual.virtual /home/ftpsite/hosts

4)创建你的vsftpd.conf配置文件

请参考这个目录下的例子。让我们一行行地看一看这些配置:

[root@localhost root]# vi /etc/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES 

guest_enable=YES

guest_username=virtual

listen=YES

pasv_min_port=30000

pasv_max_port=30999

这设定了被动模式的FTP请求端口。当你配置了一个防火墙的时候,这个配置就很好用。

5)启动VSFTPD

到VSFTPD二进制文件所在的目录,输入:

[root@localhost root]# service xinted stop

[root@localhost root]# killall -9 vsftpd

[root@localhost root]# /usr/local/sbin/vsftpd &

这里service xinted stop是要停止xinted,如果不停止会出现500 00PS错误;killall -9 vsftpd 是停止vsftpd所有进程

如果一切正常,/usr/local/sbin/vsftpd & 这个命令将生效。否则,你将会看到一些错误信息的反馈。

6)测试

启动另一个会话。(或者ctrl-z,再输入\"bg\",让VSFTPD在后台运行)。

这是一个FTP会话的例子:

ftp localhost

Connected to localhost (127.0.0.1).

220 ready, dude (vsFTPd 1.1.0: beat me, break me)

Name (localhost:chris): down

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> pwd

257 \"/\"

ftp> ls

227 Entering Passive Mode (127,0,0,1,117,135)

150 Here comes the directory listing.

226 Transfer done (but failed to open directory).

ftp> size hosts

213 147

ftp>

注释:

密码是111

出现”failed to open directory“的话,别担心。这是因为/home/ftpsite目录不容许被任意浏览。

(我们可以更改anon_world_readable_only=NO以消除告警,但为了安全,还是保留这个配置)。

我们能通过size命令看到我们已经访问了被我们拷贝到这里的\"hosts\"文件。

虚拟用户2

===============

这个例子将演示如何扩展“VIRTUAL_USERS”那个范例,从而实现更复杂一点的配置。

让我们假定我们需要2种不同的虚拟用户:一种只能浏览并下载资源,另一种能上传文件和下载并浏览站内资源。

要激活这个设置,我们将使用VSFTPD的强大的“单个用户配置”功能(是V1.1.0后出现的新功能)。

在前一个虚拟用户范例中,我们创建了2个用户down和admin.

我们将实现admin有写权限以上传和下载文件,同时down只能下载文件。

1)激活单个用户配置功能。

[root@localhost root]# vi /etc/vsftpd.conf

要激活这个功能,需要增加以下配置行到配置文件:

user_config_dir=/etc/vsftpd_user_conf

并且创建目录:

[root@localhost root]# mkdir /etc/vsftpd_user_conf

2)授予down读取所有文件和目录的权限

在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们使/home/ftpsite完

全可读,而且被上传的文件也赋予了完全可读的权限(daidong注:意思是说这样虚拟用户就能读取所有的文件了

)。但实现这个目的的另一个方法是授权down能下载那些非完全可读的文件。

对于down,他的配置文件中需要修改一个设置:

设为anon_world_readable_only=NO完全可读

[root@localhost root]#cp /etc/vsftpd.conf /etc/vsftpd_user_conf/down

[root@localhost root]#vi /etc/vsftpd_user_conf/down

在最后添加anon_world_readable_only=NO  保存就行

(daidong注:既把默认配置修改了anon_world_readable_only=NO后,复制到/etc/vsftpd_user_conf下,名字为

down)

先关了VSFTPD再开:

[root@localhost root]# killall -9 vsftpd

[root@localhost root]# /usr/local/sbin/vsftpd &

验证一下结果-以down登录,“ls”将返回一个目录列表。如果以admin登录将不会如此。

注意:重启VSFTPD以启用配置文件/etc/vsftpd.conf(高级用户也可以发送SIGHUP给VSFTPD的监听进程).

3)授予admin读取所有文件/目录并创建新文件/目录的权限,但让他不能对已存在的文件/目录进行操作.

[root@localhost root]#cp /etc/vsftpd_user_conf/down /etc/vsftpd_user_conf/admin

[root@localhost root]#vi /etc/vsftpd_user_conf/admin

在上面有以下两项,修改为:

write_enable=YES

anon_upload_enable=YES

保存就行

先关了VSFTPD再开:

[root@localhost root]# killall -9 vsftpd

[root@localhost root]# /usr/local/sbin/vsftpd &

验证一下-以down登录,将不能上传,而admin就可以.

试图删除一个文件--噢,你们俩都不行!

/etc/vsftpd.conf的配置

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES 

guest_enable=YES

guest_username=virtual

listen=YES

pasv_min_port=30000

pasv_max_port=30999

anon_world_readable_only=NO

/etc/vsftpd_user_config/down的配置

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES 

guest_enable=YES

guest_username=virtual

listen=YES

pasv_min_port=30000

pasv_max_port=30999

anon_world_readable_only=NO

/etc/vsftpd_user_config/admin的配置

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=NO

chroot_local_user=YES 

guest_enable=YES

guest_username=virtual

listen=YES

pasv_min_port=30000

pasv_max_port=30999

write_enable=YES

anon_upload_enable=YES

anon_world_readable_only=NO

以上就完成了配置VSFTPD+虚拟用户方法。这里有点可惜的是B笔记本和A台式机都连不进虚拟机的RedHat 9.0。但在RedHat 9.0里用FTP软件可以登陆。这个问题我仍然要解决掉!!!

这篇关于RedHat Linux 9.0 下vsftpd安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849988

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta