架设FTP服务器 linux
本帖最后由 迈阿密的寒冷 于 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-thash-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服务器
{:5_91:}很不错的教程 啊 {:1_1:}可以实际操作下 兄弟,真希望你做成视频发出来{:5_101:} 好东西,顶 我也来支持下~! 大力支持!~ 虽然看着有些头晕 不过要大力支持啊 谢谢了。应用一下 可惜是图文教程,是视频那该多好啊 我今天是在minix上架设ftp很简单,还算成功 神马东西?看不懂 不错。。。谢谢。。。:D 大力支持,顶一个 好东东 学习:lol
页:
[1]