FTP服务器的配置

 

1.FTP概述:

文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。

FTP服务器,与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

    匿名FTP使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

    远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

 

2. Ftp的服务器

2.1 vsftpd:

 vsftpd是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

 

2.2 Wu-FTP:

Wu-FTP是WashingtonUniversity FTP,它是一个著名的FTP服务器软件,一般简称为wu-ftp。它功能强大,能够很好地运行于众多的UNIX操作系统,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP服务器,一大半以上采用了它。wu-ftp拥有许多强大的功能,很适于吞吐量较大的FTP服务器的管理要求:

1) 可以在用户下载文件的同时对文件做自动的压缩或解压缩操作;

2) 可以对不同网络上的机器做不同的存取限制;

3) 可以记录文件上载和下载时间;

4) 可以显示传输时的相关信息,方便用户及时了解目前的传输动态;

5) 可以设置最大连接数,提高了效率,有效地控制了负载。

 

    2.3 ProFTPd:

ProFTPD 是一套可配置性强的开放源代码的FTP服务器软件,名称最后的d字是因为在Linux中是用daemon来称呼。ProFTPd与Apache的配置方式类似,因此十分容易配置和管理。ProFTPd亦开发了有图形用户界面的FTP服务器软体称为gProFTPd.它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。

proftpd全称:Professional FTP daemon是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone、xinetd模式运行等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,ProFTP配置方便,并有MySQL和Quota模块可供选择,利用它们的完美结合可以实现非系统账号的管理和用户磁盘的限制。

 

2.4 PureFTPd:

PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License)。其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd还有Android移植版本,特点是安全。

 

3.vsftpd服务器的配置

在虚拟机中准备俩台Centos7机器,一台用来做ftp的服务器,另一台作为客户机。使用 #iP a 命令查看ip地址,如图3-1,3-2所示:

图3-1:ftp服务器IP地址 192.168.122.164

 

图3-1:客户机IP地址 192.168.122.101

 

 

 

在俩台机器上均配置yum软件仓库,如图3-3所示:

 

图3-3所示 配置yum软件仓库

 

关闭防火墙和selinux设置为disabled,如图3-4所示:

图3-4:设置防火墙和selinux

 

安装vsftp软件包并且启动服务设置开机自启动,如图3-5,3-6所示:

 

图3-5:安装vsftp

 

图3-6:启动服务,设置开机自启动

 

4.客户机的测试

    方法一:图像界面的测试,通过浏览器输入 ftp:// ftp服务器的地址 ,如图4-1所示:

图4-1:通过浏览器进入ftp服务器

 

    方法二:命令行的测试,首先在机器中安装ftp软件,其次通过匿名方式登入(用户名和密码均是ftp,匿名种类为/sbin/nologin)。如图4-2,4-3所示:

图4-2:在客户机安装ftp服务器

 

图4-3:登录ftp服务器

 

使用pwd命令为查看当前目录,cd为打开某一目录,ls为列出当前目录,get为下载某一文件(此时客户机在何目录下登录的ftp服务器,就将这个文件下载到了这个目录)。如图4-4,4-5所示:

图4-4 在服务器段创建一个文件

 

图4-4:下载文件

 

5.匿名用户的权限

    默认情况下,匿名用户没有写权限,如图5-1所示:

图5-1 匿名用户在ftp服务器创建文件

 

首先我们先要去ftp服务器端创建一个目录并使得其所属者为ftp,如图5-2,5-3所示:

 

图5-2创建文件

 

图5-3 设置文件权限

 

 

其次需要进入/etc/vsftpd/vsftpd.conf修改ftp的配置文件,注意修改配置文件不要出错,

参数anonymous_enable=YES表示匿名账户是可以访问的。

参数anon_upload_enable=YES表示匿名账户是可以上传文件的。(第29行注释去掉)

参数anon_mkdir_write_enable=YES表示匿名账户是可以创建子目录的。(第33行注释去掉)

参数anon_umask=022表示匿名用户上传文件的反掩码值。(不配也行)

注意配置完成后需要重启服务。如图5-4,5-5,5-6,5-7,5-8所示:

图5-4 进入ftp配置文件

 

图5-5 修改anonymous——enable参数

 

图5-6 修改 anon_upload_enable参数

 

图5-7 修改anon_mkdir_write_enable参数

 

图5-8 保存文件后重启服务

 

此时在客户机创建一个文件 可以实现上传到ftp服务器。如图5-9,5-12所示:

图5-9 在客户机创建文件

 

图5-10 将文件上传到ftp服务器

 

6.指定账户的权限测试

        6.1禁用匿名账户。打开vim /etc/vsftpd/vsftpd.conf,配置文件,修改内容:如图6-1修改主配置文件窗口

 

图6-1 修改参数

此时重新启动服务后,匿名用户将无法登录ftp服务器,如图6-2所示:

图6-2匿名用户无法登录

 

6.2指定用户的写权限测试

首先创建3个账户,如图6-3所示:

图6-3创建账户密码均为111

 

修改配置文件vim /etc/vsftpd/vsftpd.conf

参数local_enable=YES表示允许本地账号访问FTP服务器,但这样是非常危险的。参数write_enable=YES表示本地账户登录到FTP服务器后是可以进行写操作的。最后重启服务。如图:6-4,6-5,6-6所示:

图6-4 local_enable参数的配置

图6-5 write_enable参数的配置

 

图6-6 重启服务

 

分别使用命令行测试和图像界面测试时需要使用密码登录,登入后默认目录时其用户的家目录,如图6-7,6-8所示:

图6-7 命令行登入zhangsan

 

图6-8 浏览器图型界面登入zhansan

 

此时登录ftp服务器后可以随意切换目录,对服务器的安全造成了影响。如图6-9所示:

图6-9 zhangsan用户可以随意切换目录

 

解决方法:

将所有本地账户锁定于其家目录的设置方法

#vim /etc/vsftpd/vsftpd.conf

第100行  chroot_local_user=NO 去掉注释,则本地用户锁死于家目录中。

第101行  allow_writeable_chroot=YES

vim /etc/vsftpd/chroot_list     打开chroot_list文件,顶格加入zhangsan,zhanghanzhong,意味着zhangsan,zhanghanzhong被锁定于其家目录中。

最后重启服务,如图6-10,6-11,6-12,6-13所示:

图6-10所示 修改etc/vsftpd/vsftpd.conf文件

 

图6-11 编辑受困名单

 

图6-12 定格写入受控制用户名

 

6-13重启服务

 

测试:发现zhangsan,zhanghanzhong用户只可以在其家目录中,对其他目录不可见,二lisi用户则可以随意切换目录。如图6-14,6-15所示:

图6-14 zhanghanzhong用户切换不了目录

 

图6-15 lisi用户切换了目录

 

7.ftp服务器的黑白名单问题

    首先编辑配置文件#vim /etc/vsftpd/vsftpd.conf

第126行,如果参数userlist_enable=YES时,vsftpd的黑名单或者白名单才启用。

在第127行插入参数userlist_deny=YES时,表示启用文件/etc/vsftpd/user_list为黑名单文件,如图7-1修改主配置文件:

图7-1 修改主配置文件

 

编辑黑名单文件

vim /etc/vsftpd/user_list

在该文件的末尾顶格插入zhangsan,zhanghanzhong,表示禁用zhangsan,zhanghanzhong登录FTP服务器。如图7-2编辑黑名单窗口:

 

如图7-2编辑黑名单窗口

 

测试 重启服务后此时使用账户zhangsan,zhanghanzhong用户登录不会成功,而使用lisi账户会登录成功。如图7-3所示;

图7-3 登录测试

 

编辑白名单文件,打开主配置文件,将userlist-deny设置为NO。此时黑名单就是白名单,如图7-4修改主配置文件所示:

图7-4修改主配置文件

 

重启服务后此时情况相反,lisi不可以登录,而zhanghanzhong,zhangsan可以登录。如图7-5所示:

图7-5 测试结果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值