鱼C论坛

 找回密码
 立即注册
查看: 17948|回复: 14

架设FTP服务器 linux

[复制链接]
发表于 2011-8-3 20:02:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 迈阿密的寒冷 于 2011-8-3 20:04 编辑

1)了解FTP服务器的工作原理。
2)掌握搭建FTP服务器的方法。
Vsftpd   /etc/vsftpd/vsftpd.conf            /var/ftp   /
                                    ftpusers ——deny
                                    user-list ——deny,permit
用户:三类(匿名用户(anonymous、ftp)、本地用户、虚拟用户)
1.FTP简介
FTP(File Transfer Protocol),是文件传输协议的简称。
   FTP协议需要通过TCP协议建立两个联机通道才能够顺利地传输数据,一个是“传输控制信息”通道,TCP端口号为21;另一个是“传输数据信息”通道,TCP端口号为20。
2.主动模式与被动模式。
(1)主动模式:Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端主动通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。


2.主动模式与被动模式。
(2)被动模式:被动模式在建立控制通道的时候和主动模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,服务器被动的等待客户端连接。然后FTP服务器将通过这个端口进行数据的传送。


搭建匿名访问FTP服务器
在一局域网中,选择一台主机做为服务器,在服务器上搭建FTP服务器,用来共享文件。搭建完成后,期望能够匿名登录并可以在特定的pub文件夹上传、下载文件 。

首先要在Linux系统中安装FTP服务器及其相关的组件,安装方式选择比较简便常用的RPM方式,安装完软件,对服务器进行简单的配置,通过网管工作站匿名登录FTP服务器,进行上传、下载测试。
实现FTP服务器基本功能只需安装一个vsftpd软件 :
•vsftpd:FTP服务器软件。
•安装步骤如下:
1. 建立挂载点,挂载光驱
2. 安装vsftpd软件包。
3. 配置FTP服务器。
4. 从网管工作站匿名登录FTP服务器。
具体配置步骤:
1、挂载光驱
#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
#cd /mnt/cdrom/Server/
2、查询已安装软件包
#rpm –qa |grep vsftpd
3、安装软件包
#rpm –ivh vsftpd-2.0.5-12.el5.i386.rpm
4、配置vsftpd服务器满足匿名用户访问
anonymous_enable=YES            允许匿名用户登录
anon_umask=022                        匿名用户上传的文档权限
anon_upload_enable=YES          允许匿名用户上传文件
anon_mkdir_write_enable=YES  允许匿名用户建立目录
anon_other_write_enable=YES   允许匿名用户重名名文件及删除文件
5、配置匿名用户对pub目录可写
# chmod –R 777 /var/ftp/pub
或者:
# chown ftp /var/ftp/pub
1、查看已安装软件包
# rpm -qa|grep vsftpd
2、启动vsftpd服务,并查看其运行状态
# service vsftpd start
# service vsftpd status
3、查看vsftpd服务器占用端口情况
# netstat -tnlp|grep 21
4、设定开机自动启动bind服务器
# chkconfig --level 3 vsftpd on
# chkconfig --list |grep vsftpd
5.从网管工作站匿名登录FTP服务器
   在网管工作站的浏览器中输入ftp://服务器IP,就会以匿名身份登录到FTP服务器上,并有权在pub目录下进行上传文件,修改文件,删除文件(delete)等操作
配置本地用户登录FTP服务器
     若FTP服务器的内容不希望让匿名用户读取,则可以通过认证的方式,让本地用户通过输入用户名和密码方能读取。搭建一个FTP服务器,不允许匿名用户登录,允许两个本地用户(分别为用户reader和用户writer)登录,用户reader仅拥有读权限,用户writer拥有读、写两种权限。

    首先在系统中添加两个用户reader和writer,在主配置文件中,禁用匿名用户的相关配置,通过限制,只允许reader和writer两个用户登录FTP服务器
配置步骤如下:
1. 在linux系统中添加两个用户reader和writer。
2. 将FTP服务器根目录的权限赋值给用户writer,让用户writer拥有控制权。
3. 修改主配置文件,增加本地用户登录的相关参数。
4. 为用户reader和用户writer分别定制权限,以达到预期的目的。
5. 限制系统仅允许用户reader和用户writer登录FTP服务器。
1、添加本地用户reader和用户writer。
#useradd writer
#passwd writer
#useradd reader
#passwd reader
2、 将FTP服务器根目录的控制权赋值给用户writer。
#chown –R writer.writer /var/ftp
3、配置本地用户的相关参数。
local_enable=YES               允许本地用户登录
write_enable=YES              开放本地用户写权限
local_umask=022               本地用户上传文档和建立目录的权限
local_root=/var/ftp            指定FTP服务器根目录
userlist_enable=YES          激活vsftpd检查用户列表
userlist_deny=NO              用户列表允许登录,其他用户不允许登录
chroot_local_user=YES     锁定本地用户
4、编辑user_list文件
输入想要允许登录的用户,每个用户占一行:
reader
writer
测试
1. 验证仅允许用户reader和writer登录。
     为了体现测试的一般性,这里首先新建一个用户upload,分别选用用户reader和用户upload作比较。
     结果应该是,reader可以登录,upload不可以登录。
2、验证用户reader和writer权限分配情况
     结果应该是,reader只能读,不能写入,writer可以读,可以写。
配置虚拟用户登录FTP服务器
由于FTP协议在传输过程中采用明文传输,即传输用户名和密码不进行任何加密,所以用户名及密码很容易被嗅探。选用db4数据库存储用户名及密码,在db4数据库中分别建立两个用户vreader和vwriter,分别代表虚拟只读用户和虚拟可写用户 。  

首先查看系统是否已经安装db4数据库,创建一个存放用户名密码的文档,使用命令生成数据库文件,配置FTP服务器,禁用本地用户登录,仅允许通过数据库中的虚拟用户进行登录,验证用户权限分配情况 。
1. 查看系统是否已安装db4数据库。
2. 创建一个存放用户名密码的文档。
3. 生成数据库文件。
4. 建立认证文档、虚拟用户。
5. 配置FTP服务器,通过数据库中的虚拟用户进行登录。
1、查看系统是否已安装db4数据库。
# rpm –qa |grep db4
配置虚拟用户时需要用到db_load命令,该命令属于软件包db4-utils-4.3.29-9.fc6
安装db4-utils:
#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm
2 、创建一个存放虚拟用户名密码的文档。
        # vi /home/login.txt
      输入下列代码:
        vreader     //用户名
        vreader     //用户vreader密码
        vwriter     //用户名
        vwriter     //用户vwriter密码
3 、生成数据库文件。
  # db_load  -T  -t  hash  -f  /home/login.txt   /etc/vsftpd/vsftpd_login.db
4、建立认证文档、虚拟用户。
# vi /etc/pam.d/ftp
输入下列代码:
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、创建一个用户vftp并赋予权限
# useradd -d /home/vftp -s /sbin/nologin vftp
# chown –R vftp.vftp /var/ftp
6、配置虚拟用户的相关参数
anonymous_enable=NO
local_enable=YES
write_enable=NO
chroot_local_user=YES
guest_enable=YES                        允许来宾用户访问
guest_username=vftp                 指定来宾用户的名字
virtual_use_local_privs=YES       使虚拟用户具有本地用户的权利
local_root=/var/ftp
pam_service_name=ftp              指定pam配置文件
user_config_dir=/etc/vsftpd/user_config_dir 用户个性化配置目录
7、配置虚拟用户vwriter的个性参数
        # vi /etc/vsftpd/user_config_dir/vwriter
        添加如下代码:
        write_enable=YES      单独为vwriter赋予写权限
        配置虚拟用户vreader的个性参数
        # vi /etc/vsftpd/user_config_dir/vreader
        添加如下代码:
        write_enable=NO      单独为vreader赋予写权限
测试
1. 验证仅允许用户vreader和vwriter登录。
    尝试使用之前的本地用户reader登录,与vreader做比较。
    结果应该是,reader不可以登录,vreader可以登录。
2、验证vreader和vwriter的权限分配情况
     结果应该是,vreader只能读,不能写入,vwriter可以读,可以写。
在任务3中选用db4数据库存放虚拟用户的用户名及密码,事实上可以采用mysql数据库来存放用户名及密码。在sourceforge上有一个关于pam-mysql的开源项目可以实现mysql数据库形式的虚拟用户。尝试完成mysql数据库形式的虚拟用户。
项目四分三个任务,详细介绍了在Linux系统平台上通过vsftpd软件搭建不同类型的FTP服务器。匿名用户、本地用户和虚拟用户,三种类型的FTP服务器都跟系统的权限有一定的关系,要熟练配置FTP服务器,首先要掌握对系统权限赋值,还要理解配置文件各项参数的作用,这样才能搭建出满足需求的FTP服务器

































































图片2.png
图片1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-14 20:32:14 | 显示全部楼层
很不错的教程 啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-16 16:25:31 | 显示全部楼层
{:1_1:}可以实际操作下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-18 02:12:13 | 显示全部楼层
兄弟,真希望你做成视频发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-20 21:31:55 | 显示全部楼层
好东西,顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-8 07:39:53 | 显示全部楼层
我也来支持下~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-8 21:11:07 | 显示全部楼层
大力支持!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-22 17:54:17 | 显示全部楼层
虽然看着有些头晕 不过要大力支持啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-24 21:23:59 | 显示全部楼层
谢谢了。应用一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-25 22:16:55 | 显示全部楼层
可惜是图文教程,是视频那该多好啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-1 00:10:19 | 显示全部楼层
我今天是在minix上架设ftp  很简单,还算成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-4 17:11:36 | 显示全部楼层
神马东西?看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-10 16:23:13 | 显示全部楼层
不错。。。谢谢。。。:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-12 10:37:03 | 显示全部楼层
大力支持,顶一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-21 20:30:41 | 显示全部楼层
好东东 学习:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表