Linux怎么安装使用FTP服务器ProFTPD

Linux怎么安装使用FTP服务器ProFTPD,第1张

Linux安装使用FTP服务器ProFTPD方法

Linux VPS用户一般都通过SFTP/SCP协议连接OpenSSH Server进行文件传输,但有时候,你希望某些用户只能上传文件到网站目录,而不能够登录系统执行命令以及访问其他目录,这时用FTP Server就能很好地实现.Linux上常用的FTP Server有VSFTPD和ProFTPD,其中ProFTPD简单易用,功能也不错,这里以ProFTPD为例搭建FTP服务器.当然,FTP也可以作为局域网内文件共享的一种方式,比如你的室友使用Windows,向你的Ubuntu ProFTPD个人电脑上传了一部影片,这样就不用拿U盘去拷贝了,其他室友也可以从你的ProFTPD上下载影片.

proftpd的配置方式类似apache,比vsftpd更易用,xampp就集成了proftpd.

代码如下:

sudo apt-get install proftpd-basic

安装时默认作为一个standalone server运行proftpd,如果每天的ftp请求量少,可以安装为inetd服务,节省服务器资源.

这里我使用默认值,安装为standalone server.

代码如下:

sudo netstat -antp|grep proftpd

查看proftpd监听的21端口

用proftpd提供的ftpasswd新建虚拟用户test并设置密码:

代码如下:

sudo mkdir -p /png/proftpd

代码如下:

sudo ftpasswd \

--passwd \

--file=/png/proftpd/passwd \

--name=test \

--uid=122 \

--gid=65534 \

--home=/srv/ftp \

--shell=/bin/false

其中uid和gid我使用的是安装proftpd时自动创建的系统用户ftp:nogroup的uid和gid,执行cat /etc/passwd|grep ftp可见.

/srv/ftp是安装proftpd时自动创建的目录,所有者为ftp:nogroup,权限为755.

这样虚拟用户test以系统用户ftp:nogroup登录/srv/ftp便可以对该目录进行读写.

Linux上的FTP Server的读写权限是映射到系统UGO(User Group Other)上的.

创建虚拟用户时通过设置系统用户uid和gid,以及合理地配置/srv/ftp目录及其文件权限来实现读写控制.

创建新用户时再次执行上述命令即可,根据需要改变一些参数.

比如我创建了一个以uid:gid为1000:1000的系统用户运行,登录目录为/png/www/example.com的虚拟用户eechen:

代码如下:

sudo ftpasswd \

--passwd \

--file=/png/proftpd/passwd \

--name=eechen \

--uid=1000 \

--gid=1000 \

--home=/png/www/example.com \

--shell=/bin/false

创建用户不需要重载proftpd,因为proftpd每次认证时都会读取认证文件.

代码如下:

sudo chown proftpd:nogroup /png/proftpd/passwd 设置passwd文件读写权限,确保proftpd能读取该文件.

代码如下:

sudo nano /etc/proftpd/proftpd.conf

在末尾加入:

代码如下:

DefaultRoot ~ #将用户限定在自己的目录中,上面test用户对应的就是/srv/ftp

RequireValidShell off #禁用Shell请求认证

AuthOrder mod_auth_file.c #认证方式顺序,这里采用文件认证

AuthUserFile /png/proftpd/passwd #存放用户名和密码的文件

代码如下:

sudo service proftpd reload

重载使配置生效。

更改proftpd的默认端口

在文件/etc/proftpd.conf找到:

代码如下:

Port 21

更改为:

代码如下:

Port 2121

如果开启了iptables,iptables限制了所有的出站端口,加载模块ip_conntrack_ftp,这时在加载ip_conntrack_ftp模块时需要更改代理端口为2121。

打开/etc/sysconfig/iptables-config,保证此文件定义加载了ip_conntrack_ftp,如:

代码如下:

IPTABLES_MODULES="ip_conntrack_ftp"

然后在文件/etc/modprobe.conf增加此模块的参数:

代码如下:

options ip_conntrack_ftp ports=2121

如果需要手动加载,则可以执行以下命令:

代码如下:

/sbin/modprobe ip_conntrack_ftp ports=2121

在LINXU平台上使用的FTP软件有Wu-ftpd、Proftpd和vsftpd等。Wu-ftpd的历史悠久,是最流行的FTP服务器程序,稳定、出色,但发布较早,安全不及Proftpd及vsftpd。Proftpd在Wu-ftpd之后开发,安全性及稳定性有所提高。而vsftpd则是在Proftpd之后开发的,意为Very Sucure,吸取了Wu-ftpd和Proftpd的优点,安全性、速度、稳定性都有很大提高。

RHEL4(AS)中vsftpd的RPM软件包在第1张光盘中,名为vsftpd-2.0.1-5.i386.rpm。默认情况下没有安装。Vsftpd的主配置文件是/etc/vsftpd.conf。未修改的主配置文件去掉注释后如下(“”后为解释):

anonymous_enable=YES 是否允许匿名访问

local_enable=YES 是否允许本地用户登录

write_enable=YES 是否允许本地用户写入

local_umask=022生向掩码(文件生成掩码),跟权限有关,我记不住了,有兴趣的朋友可以去查查,知道的朋友也请告诉我一下

dirmessage_enable=YES 切换到FTP中的某目录时,是否显示该目录下的隐含文件“.message”

xferlog_enable=YES 是否启用启用上传和下载日志

connect_from_port_20=YES 是否启用FTP数据端口的连接请求

xferlog_std_format=YES 是否让FTP使用ftpd xferlog日志格式

pam_service_name=vsftpd设置PAM认证服务的配置文件,位于/etc/pam.d目录下

userlist_enable=YES需与userlist_file配合使用,稍后介绍

listen=YES 是否处于独立启动模式

tcp_wrappers=YES 为YES时,以tcp_wrappers作为主机访问控制方式

(去掉后,vsftpd的配置文件就这么一点^_^。)

/etc/vsftpd.ftpusers保存着不允许进行FTP登录的用户帐户,通常是权限很高的用户,以提高FTP的安全。

至于/etc/vsftpd.user_list文件,里面有说明:

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers

…………(后略)

前面说的userlist_enalbe就跟这有关(重点是第二、三行)

另外,/vsr/ftp是匿名用户的宿主目录.

配置vsftpd的虚拟用户:

1. 建立虚拟用户口令库文件(奇数行为用户名,偶数行为密码):

[root@localhost.localdomain]cat vsftpd

abc

abc12321cba

efg

vsftpd.conf

2. 生成认证文件(db_load生成认证文件,“-f”用于指明虚拟用户的口令库文件,即:vsftpd. *** 作中,口令库文件名可随便取.“-t hash”指加密方式)

db_load -T -t hash -f vsftpd /etc/vsftpd/vsftpd_login.db

3.设置权限,以提高安全:

chmod 600 /etc/vsftpd/vsftpd_login.db

4. 建立虚拟用户的PAM文件:

cat /etc/pam.d/vsftpd.vu

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

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

5.建立虚拟用户的目录,并设置相应权限:

useradd -d /home/vsftpd virtual

chmod 700 /home/vsftpd/

6. 编辑vsftpd的配置文件:

vi /etc/vsftpd/vsftpd.conf

guest_enable=yes

guest_username=virtual

pam_service_name=vsftpd.vu

7. 对虚拟用户设置不同权限:

vi /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd_user_conf 设置主配置文件

(:wq #保存退出)

mkdri /etc/vsftpd_user_conf

vi /etc/vsftpd_user_conf/abc 为虚拟用户配置权限

anon_world_readable_only=no 用户可以浏览目录并下载文件

anon_upload_enable=yes 用户可以上传文件

anon_mkdir_write_enable=yes 用户可以添加和删除目录

anon_other_write_enable=yes 用户可以进行其它 *** 作,如改名、删除文件等。

(:wq)

service vsftpd restart

如果只想让用户下载的话,则配置为:

anon_world_readable_only=no

好了,自个儿看效果吧!!!

常见问题:

1.无法匿名访问?

可能是vsftpd.conf中的anonyoums_enable出的错,或者是你根本就没连接到服务器,也有可能是服务器的iptables出的问题(过滤掉了),这种情况下一般与selinux无关。还有就是服务未运行。

2.创建的虚拟用户无法访问vsftpd?

原因或许是在创建虚拟用户的时候出的错,如果无法使用虚拟用户访问vsftpd的时候,建议先检查在创建虚拟用户时,打错什么字没有,如果还是没有检查出什么问题来的话,建议你直接推倒重做。还是一点差点忘记说了,就是在创建虚拟用户的时候,尽量将虚拟用户的密码设长一点、复杂一点,我在测试的时候,就是因为密码太短而几次没有成功。

3.在cmd下用虚拟用户登录vsftpd时,出现“200 PORT command successful. Consider using PASV.”的字样是怎么回事啊?

你所访问的电脑上的防火墙在做怪!!!我就上过这个当!!!

4.其它问题?

一般情况下,vsftpd出现问题大多数都是因为配置文件出错的,如果想要测试的话,建议在命令行了进行测试,当vsftpd出现问题时,它会在访问端的界面上显示原因。另外不成功的原因是因为服务器上的防火墙没有配置好。

需要在本地机和虚拟机上分别安装 FTP 支持软件,安装软件后还需要做配置。真要详细教你的话就太费时间了。

首先,选用哪种 FTP 就得费一番功夫,因为 FTP 支持软件有很多,各有特色、难比长短,你可以根据自己的需要来选择其中一种。如果你只是用于自己的 host 和虚拟机之间交换信息,那就对传送过程的安全性方面可以不加考虑,只考虑简单快捷就行。如果你是作为学习用的,为了适用你今后找工作的需要可能要试用几种,以便面试的时候可以应付。我给你介绍几种吧。

1、1.Wu-ftp

Wu-ftp是Washington University FTP的简写,是最早的FTP软件之一,也曾经是Internet最流行的FTP软件。Wu-ftp拥有许多强大的功能,适用于吞吐量很大的FTP服务器的管理要求。

支持虚拟FTP主机(Virtual FTP Server)。

可以对不同网络上的机器做不同的存取限制。

可以在用户下载的同时对文件自动做压缩或解压缩工作。

可以设置最大连接数,提高了效率,有效地控制了负载。

能暂时关闭FTP服务器,以便系统维护。

2.VsFTP

VsFTP的全称是Very Secure FTP,从名称可以看出,编制者的初衷是代码的安全。适用于搭建高安全、高稳定性、中等以上性能的FTP服务器。

具有非常高的安全性。

支持带宽限制。

可以做基于多个IP的虚拟FTP主机服务器。

支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置。

高稳定性和中等以上的性能。

3.ProFTPD

Proftpd的全称是Professional FTP daemon,这是一个在自由软件基金会的版权声明(GPL)下开发、发布的免费软件。Proftpd是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点。

第二步,把选好的 FTP 支持软件安装上去。

说到安装就与你用那种发行版的 Linux 有关了,我不知道你用哪一种,我就以 Ubuntu 或 Debian 为例来说吧。比如,如果你选用了 ProFTPD,你可以用下行命令来安装:

apt-get install proftpd

注意:发布命令时你必须是 root 身份而且可以上 Internet。

第三步,做配置。

这个问题说来话长,你还是看我写的文章算了,有两个网址:

bbs.tianya.cn/post-it-684485-1.shtml

另外一个网址是:

hi.baidu.com/yangf888/item/ddc73d1ebc84ba8098ce3364


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11578434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存