RedHat Linux下架设vsFTPd服务器
- 格式:pdf
- 大小:483.15 KB
- 文档页数:8
FTP可以通过很多软件实现,我们linux下面最常用的FTP服务器架设使用vsftpd软件vsftpd 是一个基于GPL发布的FTP服务器软件。
其中的vs是“ Very Secure”的缩写,由此名称缩写可以看出,本服务器的初衷就是服务的安全性。
当然,vsftpd也是REDHAT默认安装的ftp服务器软件后台进程:vsftpd类型:System V 服务使用端口:20(ftp-data),21(ftp)所需RPM包:vsftpd配置文件:/etc/vsftpd/vsftpd.confFTP的主动模式和被动模式很重要主动模式:client 先连接服务器的 21端口(命令端口),然后client开放一个大于1024的端口等待服务器的20端口连接,21号端口的链接建立以后,服务器就用20去连接client开放的端口,简单来说就是服务器主动连客户端啦基于上面的连接方式,如果client端有个防火墙,服务器的20端口就连接不进入,导致会连接失败。
被动模式:就是client开启大于1024的X端口连接服务器的21(命令端口),同时开启X+1端口当21号端口连接成功后,client会发送PASV命令,通知服务器自己处于被动模式,服务器收到这个消息后,就会开放一个大于1024的端口Y通知client,client接到通知后就会用X+1来连接服务器的Y端口,简单的说就是client主动连接服务器一般我们使用的是主动模式大家了解被动模式就可以了,当你架设FTP服务器,出现这样的情况,你应该想到可以使用被动模式来解决,当然防火墙一般也支持FTP的追踪模块,会自动识别自己发出的FTP数据请求。
这样制动模式也能返回数据下面我们先安装vsftpd吧所有服务里面只有vsftpd 没有依耐关系,其他服务都要yum来安装或解决其依赖关系哈~没有就安装下~我们来说vsftpd的配置文件大家切换到/etc/vsftpd目录,这个目录就是vsftpd的配置文件存放的目录第一个文件ftpusers是用户控制文件,在这个文件里面的用户,默认是不可以使用vsftpd服务的。
LINUX软件安装步骤1.在Vmware 中创建一个Linux 的虚拟机版本是Red Hat Linux ,其中硬盘最少要有2GB 的空间(建议分4GB 其他硬盘,网卡的配置和Windows 虚拟机一样即可)。
2.把Vmware 的光驱制定到对应的镜像文件上,我们这里是linux iso 文件中的第一张盘。
3.启动虚拟机,由光盘进入。
在这个界面中输入linux text 后回车才能进入文本安装界面。
4.提示检测介质。
因为我们使用的是镜像文件,所以可以直接单击Skip 如果使用的是光盘最好还是检测一下比较好。
(在LINUX 文本模式中基本都是使用键盘进行操作,鼠标也支持但是不像在Windos 中那样好用。
用户可以通过Tab键和方向键来切换选项,空格和回车来确定)如果上面选择的是Skip就会直接跳到第8步。
5.开始检测。
如果是使用的光盘CD 需要先插入CD 后在Test 因为我们使用的是镜像文件所以就可以直接Test6.检测完毕。
选择OK7.提示是否检测其他的盘。
如果你为了保险起见可以继续检测,但是时间可能会长一些。
8.选择语言安装过程,在这里选择英语。
(如果选择的不是英语的话,在以后的一些提示显示中会出现乱码看不懂)9.选择键盘类型,在这里选择us 即可。
10.选择鼠标类型,在Linux 这类操作系统中,经常用到三键鼠标,因此,除了选择鼠标类型外,一般还选中下面的“Emulate 3 Buttons?”,这样同时点击鼠标左右键,代表点击中键。
11.选择安装类型。
在这里我们选择第4个Custom(定制)。
12.准备分区。
在这里选择Autopartition 。
13.这里会让用户选择如何处理硬盘上的原始分区。
因为我们是新建的所以选那个都无所谓,但是如果在已经安装好Windows 的系统上进行安装,一般选择第三项。
意思就是使用硬盘当中没有使用的空间来创建相应的分区。
在下面会让用户选择。
要安装到那个硬盘中,在这里只有一个硬盘sda ,所以直接选择即可。
一、创建匿名FTP服务器的方法1。
增加新用户ftp,设置其主目录对任何用户都无写权限;2。
新建立一个组anonymou,它只能被匿名ftp使用;3.在ftp用户的主目录下创建一个bin目录,它属于root用户,而且对任何用户都不能写;4。
在ftp用户主目录下创建一个etc目录,它属于root用户,而且对任何用户都不能写;5.在ftp用户主目录下创建一个public目录,它属于ftp用户,而且对任何用户都能写。
如果由于安全等原因,您不允许其他用户在您的计算机上具有存储能力,那么您可以将其权限设置成555;6.将ls程序放到已创建的bin目录下,并将其修改成111方式,即对任何用户只能执行;7。
在已创建的etc目录下,创建passwd和group两个文件,并将它们设置成444方式(只读)。
二、创建匿名FTP---—在Unix下用root登录,然后按下列步骤逐步建立FTP服务器.1.建立新组anonymou----#mkgroupanonymou2.建立新用户ftp,且ftp用户属于anonymou组—--—#mkuserpgrp=‘nonymou'home=‘ /u/anonymou’ftp3。
在用户目录下建立相关的目录#cd/u/anonymou#mkdiretc#mkdirbin#mkdirpublic4。
将ls拷贝到/usr/anonymou/bin下,并设置其读写属性#cp/bin/ls./bin#chmod111。
/bin/ls5.创建/u/anonymou/etc/group文件————在该文件中增加一行:anonymou:!:201:6.创建/u/anonymou/etc/passwd文件--—-在该文件中增加一行:ftp:*:213:201::/u/anonymou:/bin/ksh7。
修改/u/anonymou/etc/group文件和/u/anonymou/etc/passwd文件的属性#chmod444/u/anonymou/etc/passwd—--—#chmod444/u/anonymou/etc/group8。
FTP服务器配置(实验环境:两台计算机,一台安装RHEL Server 5,另一台安装Windows XP,用集线器连接)一般而言,用户必须经过身份验证才能登录Vsftpd服务器,然后才能访问和传输FTP 服务器上文件。
Vsftpd服务器用户分为两类:本地用户和匿名用户。
本地用户是在Vsftpd服务器上拥有账号用户。
本地用户输入自己用户名和口令后可登录Vsftpd服务器,并且直接进入该用户主目录。
匿名用户是在Vsftpd服务器上没有账号用户。
如果Vsftpd服务器提供匿名访问功能,那么就可以输入匿名用户名(ftp或anonymous),然后输入用户E-mail地址作为口令进行登录。
甚至不输入口令也可以登录。
当匿名用户登录系统后,进入匿名FTP服务目录/var/ftp。
步骤一、检查所需RPM包是否已经安装在系统中,方法是:rpm –qa |grep vsftpd 检查是否已安装vsftpd软件包步骤二、安装所需RPM包若在步骤一中发现所需RPM包没有安装,则需使用下面命令来安装软件包,否则请转入第三步。
mount /media/cdrom/---------挂载光驱rpm -ivh /media/cdrom/RedHat/RPMS/vsftpd-*---------其中*号可以按TAB键自动补齐步骤三、配置匿名vsftpd服务器vsftpd服务器最重要是主配置文件vsftpd.conf。
vsftpd守护进程运行时首先从vsftpd.conf文件获取配置文件信息,然后配合ftpusers和userlist文件决定可访问用户。
下表列出了与vsftpd服务器相关目录和文件。
下表列出了vsftpd.conf文件中比较常用部分配置参数。
vsftpd服务器默认设置是允许本地用户和匿名用户登录,本地用户默认进入其个人主目录(/home/账户名),并可以切换到其他有权访问目录,还可以上传和下载文件。
匿名用户只能下载/var/ftp/目录下文件。
RedHatLINUX系统环境搭建手册版本历史目次1引言 (1)2操作系统安装 (1)2.1准备工作 (1)2.2安装R EDHAT7.2系统 (1)3操作系统设置 (16)3.1网络配置 ......................................................................................................... 错误!未定义书签。
3.2防火墙 (16)3.3S ELINUX (17)3.4FTP (17)3.5GDM (17)3.6附件安装SVN、服务端 ................................................................................ 错误!未定义书签。
创建仓库...................................................................................................................... 错误!未定义书签。
svn create 创建仓库 ........................................................................................... 错误!未定义书签。
修改配置文件.......................................................................................................... 错误!未定义书签。
增加用户passwd................................................................................................. 错误!未定义书签。
用Linux构建高效FTP服务器
由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文件)。
实际上这是一个专门提供下载服务的匿名FTP服务器。
从上面的步骤可以看出,并不需要做什么配置就可以完成一个简易FTP服务器的架设。
这是因为Red Hat已经配置好一个缺省的FTP服务器。
不过在实际应用中,大部分情况下这个简易的服务器并不能满足需求。
进一步配置FTP服务器
下面将创建一个能够满足常用需求的FTP服务器。
实际应用中,FTP服务器一般要同时提供上传和下载功能。
此外,出于安全考虑,还需要有用户身份验证、用户权限设置及空间管理等。
下面就来搭建这样一个FTP服务器。
1.创建欢迎语。
如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下方法来实现。
5.针对不同的使用者限制不同的速度。
假设用户ylg所能使用的最高速度为500Kb/s,用户user1所能使用的最高速度为250Kb/s,可以通过以下方法设置。
在/etc/vsftpd/vsftpd.conf 文件尾部新增以下一行:
user_config_dir=/etc/vsftpd/userconf
修改/etc/vsftpd/vsftpd.conf文件,在文本最后添加以下两行:
重启FTP服务器,这时再使用账号gou来登录,就已经没有上传的权限了。
先说明,在网上找的一个 "我见过的最好的vsftpd"的配置,按照他的步骤安装,基本正确,唯一是在64位机器中的一个pam验证的路径问题导致登录不上。
具体安装步骤:一.安装:1.安装Vsftpd服务相关部件:[root@KcentOS5 ~]# yum -y install vsftpd*2.确认安装PAM服务相关部件:[root@KcentOS5 ~]# yum -y install pam*开发包,其实不装也没有关系,主要的目的是确认PAM。
3.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库。
[root@KcentOS5 ~]# yum -y install db4*二.系统帐户1.建立Vsftpd服务的宿主用户:[root@KcentOS5 ~]# useradd vsftpd -s /sbin/nologin默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要。
这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的服务宿主用户。
由于该用户仅用来支持Vsftpd 服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。
2.建立Vsftpd虚拟宿主用户:[root@KcentOS5 nowhere]# useradd overlord -s /sbin/nologin本篇主要是介绍Vsftp的虚拟用户,虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。
他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。
由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非分注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。
(这里插一句:原本在建立上面两个用户的时候,想连用户主路径也不打算给的。
配置DNS服务一.DNS简介1.IP地址和主机名的转换方法主机名便于记忆类UNIX中有3种技术来实现主机名到IP地址的转换host解析:主要指本地/etc/host 例192.168.88.57 ping 在一个大型网络中Hosts文件较繁琐而又复杂,在DNS中起备份作用NIS,NetWork Information System网络信息服务系统,NIS将所有主机数据都保存在中央主机上,由中央主机将所需数据分配给所有的服务器,简单数据库适用于像局域网这样的中型网络DNS,Domain Name system它使用一种层次的树型结构的分布式数据库来处理Internet上的主机和IP地址的转换2.DNS 的组成:DNS是基于C/S模型设计的,每个服务器包含指向其他域名服务器的信息,DNS包括3个部分域名空间:标识一组主机并提供他的有关信息的树结构的详细说明,树上的每一个结点都有其控制下的主机的有关信息的数据库域名服务器:保持和维护域名空间中数据的程序,一个域名服务器拥有其控制范围(区域)内的完整信息解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以获得对域名空间中主机的查询,用于DNS客户3.域名注册:例当子网需连接Internet并且需要由自己管理这个域时,InterNIC 会把相应信息放进.com域的服务器上,使其传播,DNS服务器周期性和其他DNS服务器上的各种数据库同步,并检查其他服务器上的新表项,一个新的域名大约会在3~4天完成传播二.DNS域名空间的分层结构FQDN(Full Qualified Domain Name),域名是层次的,位于右边,左边是主机名,"域"是DNS域名空间的基本单位1.根域(Root Domain):全世界的IP地址和DNS域名空间都是由位于美国的InterNIC负责管理或进行授权管理,全世界共有13台根域服务器,根域服务器中只保存着顶级域的DNS 服务器和IP地址的对应数据,根域是默认的不需要表示出来2.顶级域(top-level domain,TLD):顶级域由InterNIC统一管理,数目有限且不能轻易变动.顶级域有两种划分:地理域和机构域只包括顶级的服务器和IP地址负责解析顶级域的IP地址。
Linux vsFTPd服务器部署版本历史目录1.vsFTPd概述 (4)2.Linux下vsFTPd部署 (4)2.1配置相关服务 (4)2.1.1启动服务 (4)2.1.2配置相关文档 (4)2.2添加虚拟主机用户 (4)2.3配置磁盘配额 (5)2.3.1用户定额 (5)2.3.2自动加载 (6)2.4登陆演示 (6)3.vsFtPd配置详解 (6)3.1匿名用户相关设置 (6)3.2 FTP服务端口指定 (7)3.3上传模式设置 (7)3.4Vsftp服务器指定IP地址 (7)3.5禁止用户离开主目录 (7)3.6FTP服务器流量控制 (7)3.7定制欢迎信息 (8)3.7.1目录说明设置 (8)3.7.2系统欢迎消息设置 (8)3.7.3系统欢迎消息文件设置 (8)1.vsFTPd概述VSFTPD(Very Secure FTP Daemon,非常安全的FTP服务器)。
顾名思义,VSFTPD设计的出发点就是安全性。
同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。
除了安全和性能方面很优秀外,还有很好的易用性。
Red Hat公司在自己的FTP服务器()上使用了vsFTPd。
2.Linux下vsFTPd部署2.1配置相关服务2.1.1启动服务[root@BAFSer ~]# rpm -qa|grep vsftpd;查看是否安装vsFTPd服务#/etc/init.d/vsftpd start或service vsftpd start;启动服务#chkconfig vsftpd on;让系统服务随着系统启动而启动2.1.2配置相关文档#vi /etc/vsftpd/ vsftpd.conf禁止匿名用户访问:anonymous_enable=YES,将YES改为NO在文件末尾加如下的设置:listen_port = 5021;命令通道端口,默认为21listen_data_port = 5020;数据通道端口,默认为20pasv_enable = YES;允许被动模式pasv_min_port = 10000;被动模式使用端口范围pasv_max_port = 10010local_max_rate = 102400;普通用户的下载速度KBanon_max_rate=102400;匿名的下载速度KBchroot_local_user=YES;禁用户离开主目录chroot_list_enable=YES;是否将系统用户限止在自己的home目录下chroot_list_file=/etc/vsftpd/ vsftpd.chroot_list;列出的是不chroot的用户的列表注:在添加过程中请不要加上“;”和这些中文注释,在这里我为了方便大家了解才加上的。
2.2添加虚拟主机用户添加用户nrms,用户目录制定为/ftproot/nrms,且此用户不能登录登陆。
#mkdir /ftproot/nrms;创建一个叫做‘nrms’的目录;#useradd -s /sbin/nologin -d /ftproot/nrms nrms;注:-s /sbin/nologin是让其不能登陆系统,-d是指定用户目录为/ftproot/nrms#passwd nrms;设置密码#chown -R nrms:ftpgroup /ftproot/nrms;注:将用户目录及其子目录的所有和所属的组设置为ftpgroup2.3配置磁盘配额我在安装过程中磁盘分了多个分区,分别/boot,/tmp,swap,/var,/home多个分区,建议你将磁盘分多个单独的分区,这样可以降低磁盘分区损坏造成的数据丢失风险。
# [root@BAFSer ~]# rpm -qa|grep quotaquota-3.13-5.el5;我的系统已安装了磁盘配额工具#vi /etc/fstab找到类似LABEL = /var /var ext3 defaults 1 2在defaults后加入usrquota,改为如下:LABEL = /var /var ext3 defaults,usrquota 1 2重新加载/var这个分区:#mount -o remount /var#cd /var;进入这个目录#touch er#chmod 600 er;赋权限#quotacheck -mf /var;对磁盘分区空间使用情况进行强制检测[root@BAFSer ~]# quotacheck -mf /varquotacheck:WARNING – Quotafile /var/er was probably truncated.Can’t save quota settings…重新启动系统,第一次运行时会出现这个警告,再次运行的时候就不会了。
2.3.1用户定额为指定用户定额:#edquota nrms;为用户nrms设置磁盘配额Disk quotas for user nrms (uid 503):Filesystem blocks soft hard inodes soft hard/dev/sda5 342644 2048000 4096000 728 10240 20480注:Filesystem blocks soft hard inodes soft hardFilesystem –正在设置的文件系统,不要修改或删除Blocks-当前使用的磁盘空间,单位为KBsoft(第一个)- 软磁盘空间限制,默认0,表示无限制,我这这里设为2GBhard(第一个)-硬配额限制,0表示无限制inodes-当前文件数量soft(第二个)- 对文件数量的软限制,0表示无限制hard(第二个)-对文件数量的硬限制,0表示无限制2.3.2自动加载让系统启动时自动加载:#vi /etc/rc.d/rc.local/etc/init.d/vsftpd start/sbin/quotacheck/sbin/quotaon –avu现在查看nrms用户使用磁盘空间的情况[root@BAFSer ~]# quota -u nrmsDisk quotas for user nrms (uid 503):Filesystem blocks soft hard inodes soft hard/dev/sda5 342644 2048000 4096000 728 10240 20480注:关注更多的quota命令,请使用man命令查看。
2.4登陆演示3.vsFtPd配置详解3.1匿名用户相关设置anonymous_enable=YES;将YES改为NO,禁止匿名用户登陆#anon_mkdir_write_enable = YES;将#注释去掉,允许匿名用户创建目录#anon_upload_enable = YES;将#去掉,允许匿名用户上传anon_world_readable_only = YES;允许匿名用户下载,默认是禁止的,这个可以自行添加anon_other_write_enable = YES;将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NOno_anon_password = NO;将其设为YES,匿名用户不会查询用户密码直接登陆ftp_username = ftp;匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁3.2 FTP服务端口指定listen_ port = 8021;指定命令通道为8021,默认为21listen_data_ port = 8020;指定数据通道为8020,默认为203.3上传模式设置pasv_enable = YES;是否允许使用被动模式,默认是允许的pasv_min_port = 10000;指定使用被动模式时打开端口的最小值pasv_max_port = 10004;指定使用被动模式时打开端口的最大值3.4Vsftp服务器指定IP地址listen_address = 192.168.0.20;指定FTP,IP地址注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsftpd文件,就要将该文件中的disable设置为yes,方可。
3.5禁止用户离开主目录chroot_local_user=YES;将其设为YES,就锁定在用户主目录,设为NO,可以切换将指定用户设置为锁定用户主目录:#chroot_list_enable=YES;是否将系统用户限止在自己的home目录下#chroot_list_file=/etc/vsftpd/vsftpd.chroot_list;列出的是不chroot的用户的列表将其改为如下:chroot_list_enable=NOchroot_list_file=/etc/vsftpd/vsftpd.chroot_list将上面保存,再做如下操作:#touch /etc/vsftpd/vsftpd.chroot_list#vi /etc/vsftpd/vsftpd.chroot_list;在该文件中加入用户名单,如nrms3.6FTP服务器流量控制max_clients = 100;允许的最大连接数,定义为100,默认为0,表示没有限制max_per_ip = 5;每个IP允许的连接数,0表示没有限制,需要运行于独立模式方可anon_max_rate = 50000;匿名用户最大带宽,单位为bpslocal_max_rate = 200000;系统用户最大带宽对指定用户进行流量限制:#vi /etc/vsftpd/vsftpd.conf,添加一行:user_config_dir = /etc/vsftpd/userconf#touch /etc/vsftpd/uderconf/nrms;为nrms这个用户建立一个nrms文件#vi /etc/vsftpd/userconf/nrms;添加以下内容local_max_rate = 100000保存重启服务即可。
3.7定制欢迎信息3.7.1目录说明设置#vi /etc/vsftpd/vsftpd.conf#dirmessage_enable = YES;是否显示目录说明文件, 需要手工创建.message文件然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中。
3.7.2系统欢迎消息设置ftpd_banner = Welcome to ftp.nrms,Yeah!!!3.7.3系统欢迎消息文件设置banner_file = /etc/vsftpd/welcome;与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件。