关于ftp的介绍,大家也一定不陌生了。我就直接把百度百科上的介绍拿过来,和大家一起温习一下概念。
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
2、LINUX下FTP服务器的搭建
一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件。
(1)检查vsftpd软件是否安装
使用如下命令可以检测出是否安装了vsftpd软件,rpm -qa |grep vsftpd ,例如在我的centos 5.6中显示的结果如下:
如果没有安装的话,可以下载安装,也可以使用软件源进行安装。这里不再赘述。
(2)vsftpd软件的使用
使用vsftpd软件,主要包括如下几个命令:
启动ftp:service vsftpd start
停止ftp:service vsftpd stop
重启ftp:service vsftpd restart
或者使用带有路径的命令:
(3)vsftpd的配置
ftp的配置文件主要有三个,在centos5.6中位于/etc/vsftpd/目录下,分别是:
ftpusers 该文件用来指定那些用户不能访问ftp服务器。
user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
vsftpd.conf vsftpd的主配置文件
(4)下面我们使用vi编辑vsftpd.conf文件
用户登录控制:
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。
deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
banned_email_file=/etc/vsftpd/banned_emails,保存电子邮件黑名单的目录(默认)
用户权限控制:
write_enable=YES,开启全局上传
local_umask=022,本地文件上传的umask设置为022,系统默认。
anon_upload_enable=YES,允许匿名用户上传,当然要在write_enable=YES的情况下。同时必须建立一个允许ftp用户读写的目录。
anon_mkdir_write_enable=YES,允许匿名用花创建目录
chown_uploads=YES,匿名用户上传的文件属主转换为别的用户,一般建议为root。
chown_username=whoever,改此处的whoever为要转换的属主,建议root
chroot_list_enable=YES,用一个列表来限定哪些用户只能在自己目录下活动。
chroot_list_enable=/etc/vsftpd/chroot_list,指定用户列表文件
nopriv_user=ftpsecure,指定一个安全账户,让ftp完全隔离和没有特权的账户
其他的建议不要配置。
用户连接和超时设置:
idle_session_timeout=600,默认的超时时间
data_connection_timeout=120,设置默认数据连接的超时时间
(4)服务器日志和欢迎信息
dirmessage_enable=YES,允许为配置目录显示信息
ftpd_banner=Welcome to blah FTP service. ftp的欢迎信息
xferlog_enable=YES 打开日志记录功能
xferlog_file=/var/log/xferlog 日志记录文件的位置
我们可以更改以上的各个设置,然后重启ftp服务就可以实现对ftp的配置了。
**********************************************************************************************************************************************************
**********************************************************************************************************************************************************
*************FTP文件说明*********************本FTP服务器软件包为vsftpd-2.3.4-1.fc14.i686.rpmFTP客户端软件包为ftp-0.17-51.fc12.i686.rpm1、vsftpd不再由xinetd控制;2、FTP使用port 21发起连接,使用por ...
*************FTP文件说明*********************
本FTP服务器软件包为vsftpd-2.3.4-1.fc14.i686.rpm
FTP客户端软件包为ftp-0.17-51.fc12.i686.rpm
1、vsftpd不再由xinetd控制;
2、FTP使用port 21发起连接,使用port 20进行数据传输;
3、vsftpd配置文件: /etc/vsftpd/vsftpd.conf #主配置文件
/etc/vsftpd/vsftpd/ftpusers #拒绝该文件中列出的用户登录FTP
/etc/vsftpd/vsftpd/user_list #默认同ftpusers相同
4、查看/etc/passwd文件,可以看到FTP默认的共享目录路径为/var/ftp;
5、FTP日志文件:/var/log/xferlog
6、相关软件包:tcp_wrappers、ip_conntrack_ftp、ip_nat_ftp
(这3个软件包是教材上列出的,我没有测试过其用途,有兴趣的朋友可以研究一下)
7、启动和停止vsftp指令:
#service vsftpd start //启动vsftpd服务
#service vsftpd stop //停止vsftpd服务
#service vsftpd restart //重启vsftpd服务,每次更改FTP相关配置后,一定要用该命令重启vsftpd服务
#chkconfig vsftpd on //使vsftpd服务开机启动。(可选操作)
8、注意SElinux的安全性质:
一般SElinux是被强行启用的,对许多服务都默认有权限控制,如果在我们对FTP服务器测试时碰到一些莫名奇妙的错误时,可以关闭SElinux,
也可以仅关闭SElinux对FTP服务的保护设置;
#sestatus //查看当前系统SElinux是否开启
如果开启了,则打开/etc/selinux/config文件,编辑:将SELINUX=enforcing改成SELINUX=disabled,并把SELINUXTYPE=targeted注释掉!
或者#setsebool -P ftpd_disable_trans 1 //仅关闭SELinux对FTP的保护
*************FTP权限需求**********************
a.允许匿名用户登录;
b.允许匿名用户上传和下载资料(拒绝覆盖已有资料);
c.允许本地用户登录;(注意SElinux的影响)
d.FTP共享目录/var/ftp/
e.拒绝匿名用户创建新文件或者文件夹;
f.使登录用户可以下载共享资料
************************************************
1、查询本机是否已经安装ftp-server和ftp-client;
#rpm -qa vsftpd
#rpm -qa ftp
2、如果没有安装,则下载相应软件包,或者yum在线安装;
#yum install vsftpd //ftp服务器软件包
#yum install ftp //ftp客户端软件包
3、编辑/etc/vsftpd/vsftpd.conf
anonymous_enable=YES //允许匿名用户登录
local_enable=YES //允许本地用户登录
write_enable=YES //允许登录到FTP的用户执行写操作
local_umask=022
anon_umask=077 //匿名用户上传的文件权限都会进行umask的计算,变成-rw- --- ---
anon_upload_enable=YES //允许匿名用户上传文件
xferlog_file=/var/log/vsftpd.log //FTP服务器日志文件默认路径
ftpd_banner=***********Welcome to My FTP Server***********
4、开启vsftpd服务
#service vsftpd start
5、在FTP共享目录下建立文件夹
#mkdir /var/ftp/pub //用于存放共享文件资料
#mkdir /var/ftp/incoming //用于存放匿名用户上传的资料
#ls -l /var/ftp/
drwxr-xr-x. 2 root root 4096 5月 8 14:13 incoming
drwxr-xr-x. 2 root root 4096 5月 8 14:15 pub
//新创建的文件夹默认归属于root用户和用户组,需要更正!
#chown ftp.ftp /var/ftp/incoming //改为所属用户为ftp,用户组为ftp组
#chown ftp.ftp /var/ftp/pub
#ls -l /var/ftp
drwxr-xr-x. 2 ftp ftp 4096 5月 8 14:13 incoming
drwxr-xr-x. 2 ftp ftp 4096 5月 8 14:15 pub
6、登录到FTP服务器
#ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 ************Welcome to My FTP Server*************.
Name (127.0.0.1:root): ftp //这里的登录用户名输入ftp或者anonymous或者本地有效账户名
331 Please specify the password.
Password: //匿名登录时,直接回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
还有一种方法也可以登录到FTP服务器:打开火狐浏览器,输入ftp://127.0.0.1,即可匿名登录;
或者ftp://ligang@127.0.0.1,使用本地账户登录,回车后会弹出输入密码的对话框!
7、允许登录用户下载/var/ftp/pub中的文件资料
使用管理员帐号:
#chmod +r /var/ftp/pub/* //修改pub目录下文件的读权限
本文出自 “一切皆有口可能!” 博客,请务必保留此出处http://287416363.blog.51cto.com/2189452/629848