linux ftp

                                          FTP服务器的搭建linux


FTP服务器,是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。咱们能够用windows和linux等平台来搭建FTP服务器,在windows平台下咱们能够用Serv-U等软件来搭建,在linux平台下咱们能够用vsftpd这项软件来搭建,下面咱们就用linux平台下面的vsftpd软件来搭建一台FTP软件。数据库


安装软件包:windows

[root@localhost ~]# rpm -ivh /mnt/Server/vsftpd-2.0.5-12.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]安全


而后咱们重启一下服务:服务器

[root@localhost ~]# service vsftpd restart
关闭 vsftpd:                                                    [失败]
为 vsftpd 启动 vsftpd:                                    [肯定]app


接着咱们用客户端 ftp://192.169.*.* 访问tcp

可是咱们须要配置文件的:ide

[root@localhost ~]# vi /etc/vsftpd/vsftpd.confui


配置文件中有:rest

1:anonymous_enable=YES  (禁用和开启匿名用户)
2:local_enable=YES  (禁用和开启本地用户)
3:write_enable=YES  (容许本地用户上传文件)
4:local_umask=022   (FTP上本地的文件权限,默认是077)
5:dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
6:xferlog_enable=yes (激活上传和下传的日志)
7:connect_form_port_20=yes (启用FTP数据端口的数据链接)
8: xferlog_std_format=yes  (使用标准的日志格式)
9:  listen=yes (独立的VSFTPD服务器)
10:pam_service_name=vsftpd (验证方式/指明认证文件vsftpd在var下)
11: tcp_wrappers=YES (启用tcp_wrappers 支持)

  

1:基于匿名用户ftp服务器的配置:

默认状况下匿名用户登陆ftp服务器只能下载不能上传 咱们能够经过修改配置文件来实现下列效果:


anon_upload_enable=YES          容许上传  (把这一行前面的#号去掉


而后再任意位置添加:

anon_mkdir_write_enable=YES  容许上传文件夹
anon_world_readable_only=NO 容许下载
anon_other_write_enable=YES   容许删除

而后咱们咱们更改/var/ftp/pub目录的权限chmod  o+w


这样匿名用户配置过程就ok了!


2:基于系统用户的ftp服务器配置:

基于系统用户咱们首先要创建用户 而且登录之后实现上传,下载,和删除的操做,其中在配置文件中有关联有:

local_enable=YES   启用和禁用系统用户
write_enable=YES  系统用户有没有写入和删除的权限,YES为能够上传、下载和删除NO为只能下载不能写入和删除。

若是咱们想把系统用户禁锢在本身家目录中 咱们须要在配置文件中加上一行:
 chroot_local_user=YES

 

 在咱们创建系统用户用做登陆FTP服务器的时候咱们最好在创建用户的时候让用户不具有登陆系统的权限,不然是一个严重的错误。咱们能够在创建用户的时候:

[root@localhost hello]# useradd    用户名  -s /sbin/nologin


 默认状况下新创建的系统用户均可以做为FTP的客户端,但若是咱们不想让新创建的一些用户做为FTP的客户端的话咱们能够把这些新创建的用户加入到/etc/vsftp/ftpusers这个文件里来,这样加入到这里面的用户就不能够做为FTP的客户端了。


还有一个方法就是利用user_list这个文件,

userlist_enable=YES  启用user_list这个表(这个文件的位置默认在/etc/vsftp目录下)

userlist_deny=YES   启用拒绝这个文件所出来的用户,

userlist_deny=NO   若是这里为NO则表示只有这个文件里的系统用户能登陆FTP服务器。(匿名用户不能够用了)

 


3:基于虚拟用户FTP服务器的配置


系统用户做为FTP的客户端会给系统安全带来隐患,由于这些用户不便能登陆FTP还能够访问系统资源,如何解决这个问题呢,建立虚拟的FTP用户就能够解决这个问题,要建立虚拟的FTP用户咱们须要作下面的几个步骤:

(1)生成用户和口令列表文件
(2)生成vsftpd虚拟用户数据库文件
(3)创建虚拟用户所需的PAM文件配置文件
(4)创建虚拟用户所映射的系统用户
(5)配置vsftpd.conf文件来支持虚拟用户
(6)设置虚拟用户的权限

首先咱们来第一步:
(1)生成用户和口令的列表文件:

先使用命令:#vi /etc/vsftpd/login.txt

在里面添加虚拟用户的帐户和密码信息 奇数是用户名 偶数是密码


(2)生成vsftpd虚拟用户数据库文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

(#说明:‘db_load  -T  -t  hash ’为笔写命令参数,
前面的login.txt指的是刚才所建的文档login.txt 后面的login.db是指生成的虚拟用户存放在的位置
并取名叫作login.db)

在生成vsftpd虚拟用户数据库文件以前 咱们须要
用db_load命令生成数据库文件可是咱们系统可能没有安装db_load命令,咱们能够安装db4-utils-4.3.29-9.fc6这个软件包:


[root@localhost ~]# rpm -ivh /mnt/Server/db4-utils-4.3.29-9.fc6.i386.rpm


(3)创建虚拟用户所需的PAM文件配置文件

咱们在/etc/pam.d目录下创建一个文本文件叫niming.pam而后用vi进行编辑添加以下内容

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


(#说明:上面的两行中‘db=/etc/vsftpd/login.’意思是指定你刚才生成的虚拟用户认证库文件的绝对路径,注意‘login’后面没有‘db’其余的为固定必写内容)写完这两行以后就能够保存并退出。


(4)创建虚拟用户所映射的系统用户


#useradd  -d  /home/ftp virtual

(说明:‘-d  /home/ftp’是指定匿名用户的登录目录,必需要保证有这个目录,若是没有可使用mkdir命令新建一个,能够在任何位置创建,可是在这里必需要指定。‘virtual’是我创建的用户并起名字为virtual,能够随意起名字,但必定要有意义。这个用户就是我在开篇中说道的虚拟用户要使用的guest用户)

 


(5)配置vsftpd.conf文件来支持虚拟用户

打开文件:#vi  /etc/vsftpd/vsftpd.conf

打开以后找到以下行:

pam_service_name=vsftpd
更改成:
pam_service_name=niming.pam 

(说明:这样更改是说明把pam_service_name执行第二步咱们创建的pam文件,是服务可以读取这个文件)

anonymous_enable=yes
local_enable=YES
更改成:
anonymous_enable=no
local_enable=YES


(#说明:这样更改的做用是关闭服务的匿名用户登录功能,而且容许非匿名用户的登陆,就是虚拟用户所须要的权限)

添加以下几行:
chroot_local_user=YES
guest_enable=YES
guest_username=virtual


(#说明:'chroot_local_user=YES'这说明了把用户锁定到登录目录,guest_enable=yes'说明让服务启用虚拟用户功能,'guest_username=virtual'是指定虚拟用户使用的guest用户,也就是咱们第三步创建的virtual用户)


去掉
anon_upload_enable=YES(具备上传的权限)
anon_mkdir_write_enable=YES (有创建和删除目录权限)

添加
anon_world_readable_only=NO(具备浏览和下载的权限)
anon_other_write_enable=YES(有文件更名和删除文件权限)

 

给虚拟用户权限 咱们须要在:

vi /etc/vsftpd/vsftpd.cof,在这个主配置文件内添加一个虚拟用户的权限文件的路径,添加user_config_dir=/etc/vsftpd_user_conf;


创建咱们刚刚虚拟用户的权限文件夹,mkdir /etc/vsftpd_user_conf;


进入这个文件夹内cd /etc/vsftpd_user_conf再创建用户的权限配置文件,文件名为虚拟用户名,如aa用户则创建touch aa;


在用户的权限文件内写入用户相应的权限,分别为
anon_world_readable_only=NO 表示用户能够浏览FTP目录和下载文件;
anon_upload_enable=YES 表示用户能够上传;
anon_mkdir_write_enable=YES 表示用户能够创建和删除目录;
anon_other_write_enable=YES 表示用户具备更改文件名和删除文件的权限。

 


                  版权全部 !! 未经本人赞成,不得转载!

                            2012年3月17号            秦(qin)都(du)            

相关文章
相关标签/搜索