CentOS FTP安装及配置

CentOS  FTP安装及配置

LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:

    (1)anonymous(匿名帐号)
使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.

    (2)real(真实帐号)
real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.

    (3)guest(虚拟帐号)
如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.

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

FTP的安装   (vsftp默认安装完之后,就允许匿名用户和本地用户登陆)

1、检测是否安装了FTP :[root@localhost ~]# rpm -q vsftpd

      如果安装了会显示版本信息:

      [root@localhost ~]# vsftpd-2.0.5-16.el5_5.1

      否则显示:[root@localhost ~]# package vsftpd is not installed

2、如果没安装FTP,运行yum install vsftpd命令

  具体的细节如下:(如果无法更新,你先配置能访问互联网,我有文档叫 CentOS 在 VMware下,如何联网到Internet的解决办法 可以解决无法上网的问题)

  [root@localhost ~]# yum install vsftpd

  [root@localhost ~]# touch /var/log/vsftpd.log     #创建vsftp的日志文件

3、 不应该给root用户开启 ftp的功能,因为别人就能用ftp一直测试你root的密码 (默认是禁止root用户登录的,此处只用于说明,不需要操作)  

 
4、执行以下命令

  # setsebool -P ftp_home_dir=1    (SELinux命令,Redhat从FC3开始,就使用了SELinux来增强安全。为防止出现下面 500 OOPS 的错误
     -P 参数表示永久有效。

     ftp连接的时候 出现 "500 OOPS:cannot change directory:/" 错误: 修改方法:  (会出现在虚拟用户登录的情况下)

     setsebool -P ftp_home_dir on 或者 setsebool -P ftpd_disable_trans on
     setsebool -P ftp_home_dir=1 或者 setsebool -P ftpd_disable_trans=1 效果同上

  修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/           (本地用户访问目录)

5、重启ftp进程   #service vsftpd restart

启动和关闭分别把restart改为start/stop即可.
如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.

注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。ftp服务器就可以使用了。

最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:

(1)找到/etc/rc.local文件

(2)打开该文件,在最后一行添加:service vsftpd start

(3)保存,退出


这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。

匿名用户登录,不需要输入用户名

windows doc 下登陆成功:


******************************************************************************************
******************************************************************************************

与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服务器的根目录,即FTP服务器的主目录:/var/ftp/pub
如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了

linux中vsftp修改默认路径:

如果是默认安装vsftpd的话,以下是一些文件的位置约定:
/usr/sbin/vsftpd ---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 启动脚本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ---- PAM认证文件
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
/var/ftp ---- 匿名用户主目录
/var/ftp/pub ---- 匿名用户的下载目录如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:
local_root=/                #表示使用本地用户登录到ftp时的默认目录              
chroot_local_user=YES
anon_root=/                 #表示匿名用户登录到ftp时的默认目录,例如:anon_root=/usr/local/apache/htdocs/anon             上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。另外,如luo_rc所述,最好不要设置默认目录为/,使用建议使用mount --bind来挂载需要的目录。最后重启服务:   service  vsftpd restart

******************************************************************************************
******************************************************************************************

虚拟账户

1.建立虚拟用户口令库文件

vi logins.txt     //文件名随意

文件内容:  (这些用户在linux中不需要存在,虚拟的)

user1
passwd1
user2
passwd2
.....
.....

2.生成vsftpd的认证文件

db_load -T -t hash -f ./logins.txt /etc/vsftpd/ftp_login.db

将用户信息文件转换为数据库并用hash加密

说明 : db_load : 触发db4转换程序,需要安装db4_utils程序包
           -T          : 允许应用程序能够将文本文件转译载入数据库。  由于我们之后是将虚拟用户的信息(logins.txt)以文件方式存储在这个文件里,为了让vsftp应用程序能够通过文本来载入用户数据,必须要使用这个选项
           -t          : 子选项-t,追加在-T选项后,用来指定转译载入的数据库类型。 -t可以指定的数据类型有 Btree,Hash,Queue和Recon数据库。
           -f          : 参数后面接包含用户名和密码的文本文件,文件内容是: 奇数行用户名,偶数行密码。

添加虚拟用户口令数据库的读写权限

chmod 600 /etc/vsftpd/ftp_login.db

3.建立虚拟用户所需的PAM配置文件

cd /etc/pam.d  //进入到这个目录下
vi ftp.v       //配置文件名 ftp.v 可以任取,例如  ftp.uv,ftpv,ftpvirtual

配置文件内容

auth required /lib/security/pam_userdb.so  db=/etc/vsftpd/ftp_login              //指向的文件为第二步创建的vsftp认证数据库文件名
account required  /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_login

4.建立虚拟用户所需要访问的目录,并设置相应的权限

useradd virtual            //用户名任意
chmod -R 755 /home/virtual //为要访问的目录设置权限,如果没有设置,虚拟用户虽然能登陆,但看不到里面的文件,虚拟用户为其它用户范

5.设置vsftpd.conf 配置文件

pam_service _name=ftp_login
guest_enable=YES
guest_username=virtual  //所有虚拟用户登陆的时候,都映射为virtual用户,访问该用户的目录

之后可以再 window通过doc界面 或者  FLASHFXP.EXE 软件,使用 user1,passwd1等虚拟用户访问 virtual用户的目录。

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

对不同的虚拟用户设置不同的权限    (没尝试的欲望)
1) 设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2)  建立用户配置文件目录
# mkdir /etc/vsftpd/vsftpd_user_conf
3)  为虚拟用户建立单独的配置文件
a.用户配置文件名称与用户名相同
touch /etc/vsftpd/vsftpd_user_conf/zhangsan
touch /etc/vsftpd/vsftpd_user_conf/lisi
b.每个FTP虚拟用户都可以独立设置其权限
anon_world_readable_only=NO   //如果是NO,说明用户还可以下载等权限
anon_upload_enable=YES          //是否可以上传文件
anon_mkdir_write_enable=YES   //是否可以创建文件
anon_other_write_enable=YES   //是否可以修改文件包括删除

******************************************************************************************
******************************************************************************************

本地帐号
vsftpd 使用默认的vsftpd.conf 就能实现 本地账号的登陆。

******************************************************************************************
******************************************************************************************

二、vsftpd的配置文件说明:

   vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。(1)用户登录控制anonymous_enable=YES,允许匿名用户登录。no_anon_password=YES,匿名用户登录时不需要输入密码。local_enable=YES,允许本地用户登录。deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。(2)用户权限控制write_enable=YES,开启全局上传权限。local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。(3)用户连接和超时选项idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。data_connection_timeout=120,设定默认的数据连接超时时间。(4)服务器日志和欢迎信息dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。xferlog_enable=YES,启用记录上传/下载活动日志功能。xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。anonymous_enable=YES 允许匿名登录local_enable=YES 允许本地用户登录write_enable=YES 开放本地用户写权限local_umask=022 设置本地用户生成文件的掩码为022#anon_upload_enable=YES 此项设置允许匿名用户上传文件#anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限dirmessage_enable=YES 当切换到目录时,显示该目录下的.message隐藏文件的内容xferlog_enable=YES 激活上传和下载日志connect_from_port_20=YES 启用FTP数据端口的连接请求#chown_uploads=YES 是否具有上传权限. 用户由chown_username参数指定。#chown_username=whoever 指定拥有上传文件权限的用户。此参数与chown_uploads联用。#xferlog_file=/var/log/vsftpd.logxferlog_std_format=YES 使用标准的ftpd xferlog日志格式#idle_session_timeout=600 此设置将在用户会话空闲10分钟后被中断#data_connection_timeout=120 将在数据连接空闲2分钟后被中断#ascii_upload_enable=YES 启用上传的ASCII传输方式#ascii_download_enable=YES 启用下载的ASCII传输方式#ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息#deny_email_enable=NO 此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒绝的e-mail地址的文件.#chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录#chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YESpam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/userlist_enable=YES 此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。listen=YES 指明VSFTPD以独立运行方式启动tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES 

******************************************************************************************
******************************************************************************************

其它文献:

RedHat9-vsftp配置大全 http://doc.linuxpk.com/4231.html

转载于:https://www.cnblogs.com/zhiqixue/archive/2012/12/04/2800803.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【FPGA】Verilog 实践:优先级编码器 | Priority encoder

0x00 优先级编码器(Priority encoder) "能将多个二进制输入压缩成更少数目输出的电路或算法的编码器" 优先级编码器是一种编码器,它考虑了两个或更多输入位同时变为 1 但没有收到输入的情况。当输入进来时,优先级编码…

linux系统用户迁移

今天登陆上来发现好久都没有写博客了。 刚刚做了一个linux用户迁移,记录下,以后用到的话,查起来方便。希望对大家有帮助。 环境:我们原先的一台服务器由于过保所以替换新的服务器,但是由于用户数较多,如果一…

vm虚拟远程部署windows驱动

注意打印机是用com1端口,应该提前删除 bcdedit /debug on bcdedit /dbgsettings serial debugport:1 baudrate:115200 bcdedit /dbgsettings 以下两条是配置调式环境系统用 bcdedit /set testsigning on bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 在…

Android:SharedPreferences详解+示例

为什么80%的码农都做不了架构师&#xff1f;>>> 一、简介SharedPreferences是一种轻型的数据存储方式&#xff0c;它的本质是基于XML文件存储key-value键值对数据&#xff0c;通常用来存储一些简单的配置信息。 二、存储位置 在/data/data/<包名>/shared_pre…

类模板的分离式编译错误解决

声明&#xff1a;不谈逻辑是否能被执行成功&#xff0c;就谈编译是否成功. vs的错误: linux下g的错误: 以上错误&#xff0c;改怎么解决呢&#xff1f; 方法1&#xff1a;把实现代码和头文件写在一起 方法2&#xff1a;在.cpp文件中加入模板声明

6421B Lab5 路由和远程访问的配置与故障排除

共2个实验&#xff1a; 实验L5A&#xff1a;配置和管理网络访问 实验L5B&#xff1a;实现DirectAccess&#xff08;略&#xff09; 实验L5A&#xff1a;配置和管理网络访问 共有3个练习 练习1&#xff1a;实现***远程访问解决方案。 练习2&#xff1a;配置一个自定义的网络策略…

工作中影响提高的一些想法

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;一直很迷茫&#xff0c;老是觉得效率低下&#xff0c;慢慢发现是自己做事的方式有问题&#xff0c;首先觉得人懒&#xff0c;喜欢动手却不愿意去想&#xff0c;觉得慢慢做过去&#xff0c;问题就解决了&…

项目:SQL server 2008构建群集——环境部署

网络拓扑图 windows 2008 (1)操作系统&#xff1a;Microsoft Windows Server 2008 R2 (64)SQL版本 &#xff1a;SQL server 2008 R2 64 位角色: 故障转移群集节点 SQL server 故障转移群集安装域名&#xff1a;test.com主机名&#xff1a;PC1IP: 172.16.0.1 &#xff08;…

Matlab/Simulink的一些功能用法笔记(3)

01--引言 最近加入到一个项目组&#xff0c;有一些测试需要去支持&#xff0c;通过了解原先团队的测试方法后&#xff0c;自己作了如下改善&#xff0c;大大提高了工作效率。这也许就是软件开发的意义吧&#xff0c;能够去除一些重复的机械的人工操作并且结果还非常不可靠。 …

Delphi多媒体设计之TMediaPlayer组件(二)

Wave音频&#xff08;Wave Audio&#xff09; 播放Wave音频是最基本的多媒体操作之一&#xff0c;它可能是最普通的&#xff0c;同步播放Wave文件代码如下&#xff1a; ?1234567procedure TForm1.btn1Click(Sender: TObject);beginmpPlayer.Wait : True; { 同步播放}mpPlayer.…

新一代数据中心不可忽视DAC高速铜缆直连线应用

罗森伯格亚太电子有限公司&#xff1a;李平 市场背景不断创新的网络技术和层出不穷的网络应用推动着网络飞速发展&#xff0c;作为信息数据集中交换处理和网络设备存放的数据中心&#xff0c;一直面临着高带宽&#xff0c;高可靠性和低延时的挑战。根据IDC产业发展研究报告&…

浅谈asio中async_accept函数占用内存高的写法

相比大家都使用过asio 中的async_accpect如果使用的好&#xff0c;内存会占用的小,下面来看一端实列:

高清壁纸:60款可爱的圣诞节电脑桌面壁纸《下篇》

这篇文章向大家分享60款非常可爱的圣诞节电脑桌面壁纸。圣诞节越来越近了&#xff0c;赶紧来挑选一款精美的圣诞节壁纸装饰你的电脑桌面吧&#xff01;希望这些精美的高清圣诞节电脑桌面壁纸你会喜欢。推荐阅读&#xff1a;《60款美轮美奂的圣诞节电脑桌面壁纸【上篇】》&#…

几种开源软件授权协议

2019独角兽企业重金招聘Python工程师标准>>> Open Source Initiative (http://opensource.org) 组织通过批准的开源协议目前有58种。 我们在常见的开源协议如GPL, LGPL, BSD, MIT等都是OSI批准的协议。 如果要开源自己的代码&#xff0c;最好也是选择这些被批准的…

emplace_back和push_back区别

#include <vector> #include <iostream> using namespace std; class testDemo { public: testDemo(int num) :num(num) { std::cout << "调用构造函数" << endl; } testDemo(const testDemo& other) :num(other.…

Storyboard初体验

2019独角兽企业重金招聘Python工程师标准>>> Storyboard是iOS5的新特性。使用Storyboard可以更方便的管理应用的界面&#xff0c;同时为视图间的跳转提供了清晰的脉络。 任何时候你都可以在你的项目中添加Storyboard&#xff0c;不管你创建项目的时候有没有勾选“U…

linux服务之DHCP

转自&#xff1a;http://best0.blog.51cto.com/444987/104151用Linux做DHCP服务器&#xff0c;原理跟在windows环境下、路由器上做DHCP相同&#xff0c;所以不在这里介绍了。我们直接开始配置dhcp服务器。这次介绍用Linux配置DHCP服务器&#xff0c;我以实验理论的方式介绍&…

IIS Express 使用详细说明

最近在使用XP的IIS发布Asp.Net MVC3的项目&#xff0c;但是发现一个很头疼的一个问题&#xff0c;在IIS指定虚拟目录来发布网站发布不了&#xff0c;以前发布Webfrom项目则不会有这样的问题&#xff0c;应该是跟路由路径有关系&#xff0c;导致每次都是从网站根节点算起&#x…

离奇的xenapp客户端无法加载应用故障解决过程 ...

新建的xenapp 6.5 for 2008 简体中文版&#xff0c;弄好之后从客户端去访问&#xff0c;结果报错&#xff08;当时忘了截图下来&#xff09;&#xff0c;大致意思就是说服务器无法处理我的请求。确认安装过程正确&#xff0c;程序发布正常。排查过程发现通过RDP的远程桌面可以加…

ADDS学习(下)

任务三&#xff1a;完成活动目录备份和恢复 1) 验证第一部分用户和OU是否存在 2) 备份活动目录 3) 删除一个OU 4) 恢复 5) 验证恢复是否成功 如下图&#xff0c;qingfeng.com域中有OU和用户&#xff0c; 要备份活动目录&#xff0c;使用微软的windows server backup工具&#x…