Linux下的FTP服务器
一.关于FTP的基本概念
1.FTP协议
FTP是标准的互联网协议,基于此协议有各个公司实现的不同的FTP软件产品。
FTP协议(应用层协议)基于传输层的TCP协议。端口号使用的是TCP 21(用来传送FTP指令)和TCP 20(用来传送数据)。
FTP协议传送数据时是明文传送的,所以无法避免第三方的非法监听导致的泄密。
FTP协议工作时是基于客户机/服务器(Client/Server)模型的。FTP服务器必须监听在主机的一个固定的端口(TCP 21)上,在这个端口上向外提供FTP服务。客户端程序(FTP客户端软件)向FTP服务器发出请求(例如:下载或者上传文件),服务器给出应答。
FTP服务器工作时有两种工作模式:主动模式(PORT),被动模式(PASV)。
客户端程序也可以选择使用主动模式还是使用被动模式,或者自动选择工作模式,但是,只有服务器支持时才能够正常工作。
区分主动模式和被动模式的区别:
主动模式:当要传送数据时,由FTP服务器向FTP客户端发出传输数据的请求,FTP客户端收到请求后,在客户端主机上临时打开一个端口用来接收FTP服务器传送的数据。
被动模式:当要传送数据时,由客户端主动的发出接收数据的请求,请求FTP服务器打开一个临时端口用于向FTP客户端传送数据,FTP服务器收到请求后,在服务器上打开一个临时端口向客户端传送数据。
一般来说:FTP服务器都支持主动模式和被动模式。
FTP客户端都能够自动的切换主动模式和被动模式。
二.Linux下的FTP服务器实现
(1)vsftpd:号称最安全、最快速的的FTP服务器软件。
http://vsftpd.beasts.org/
(2)proftpd:
http://www.proftpd.org/
(3)pureftpd:
Linux/Unix 下FTP服务器工作时通常使用的账号是系统账号(默认),这种方式存在安全隐患,并且管理起来不是很方便。还有一种方式,将FTP账号存入数据库中,这种方式需要对FTP服务器进行适当的配置。
另外:windows平台上比较常用的是Serv-U的FTP服务器软件。
三.FTP服务器(Vsftpd)的配置
(1) 安装vsftpd,从光盘中安装vsftpd的rpm包。
(2) 启动vsftpd服务器
#service vsftpd start
(3) 测试FTP服务器的工作:
使用匿名用户登录ftp服务器(默认情况下,vsftpd服务器是打开了匿名ftp用户的)(注意:匿名ftp用户通常只能下载不能上传)
(4)关闭匿名ftp
#vi /etc/vsftpd/vsftpd.conf
把“anonymous_enable=YES”给为:“anonymous_enable=NO”。
重启vsftpd服务:service vsftpd restart
(5)系统用于登录FTP服务器。
#useradd ftp1000
#passwd ftp1000
系统用户登录ftp服务器后,默认所在的目录为此用户的宿主目录,可以上传或下载文件到宿主目录。但是,此方式有严重的安全隐患(用户可以浏览到整个目录树结构)。
如何把用户囚禁在自己的宿主目录下??
(6)chroot系统用户
#vi /etc/vsftpd/vsftpd.conf
添加下面一行:
chroot_local_user=YES
重启vsftpd服务:service vsftpd restart
(7)其他配置
登录后提示信息:
服务器的最大连接数:max_clients
每个IP的最大连接数:max_per_ip:
附件: linux下的ftp服务器.doc (121.5 K, 下载次数:70)