首先来介绍下FTP服务:
FTP使用的是TCP端口的20,21号端口
20端口:上传下载数据 数据连接
21端口:发送FTP命令信息 控制连接
FTP使用的数据连接模式:
主动模式:服务器20端口主动连接客户端
被动模式:客户端连接到服务器的??端口(未知端口)
FTP的用户类型:
匿名用户:ftp或anonymous
本地用户:Linux服务器中的系统用户账号
虚拟用户:存放在独立的账号文件中
常用的FTP服务器程序:
proftpd,pureftpd,vsftpd...
常用的客户端程序
FTP命令,filezilla,fgtp....
配置文件:
配置目录在/etc/vsftpd/
主要配置文件:vsftpd.conf
黑名单文件:ftpuser
黑白名单:user_list
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
下面就配置文件中出现的属性权限进行说明:
常用的全局配置:
listen:是否以独立的运行的方式监听服务
listen_address:设置监听的FTP服务的ip地址
listen_port:设置监听的端口
write_enable:是否启用写入模式
download_enable:是否允许下载
userlist_enable:是否启用user_list列表文件
userlist_deny:是否禁用user_list中的用户
max_clients:最大并发的客户端个数
max_per_ip:限制每个客户机ip的并发数
常用的匿名FTP配置:
anonymous_enable:是否启用匿名访问FTP
anon_umask:匿名上传的权限掩码
anon_root:匿名用户的根目录
anon_upload_enable:是否允许匿名用户进行上传
anon_mkdir_write_enable:是否允许匿名用户创建目录
anon_other_write_enable:是否允许匿名用户其他写入控制,基本上这里的权限就是修改和删除
anon_max_rate:最大传输速率(字节/秒)
常用的本地用户FTP配置:
local_enable:是否允许本地用户使用FTP
local_umask:本地用户上传的权限掩码
local_root:本地用户FTP的根目录
local_max_rate:本地用户的最大传输速率(字节/秒)
4,下面我们就来亲手实践下,搭建可匿名上传的FTP服务
要求:启用匿名访问,允许创建目录
开放其他写入权限(改名/删除/移动等)
5,首先查看vsftp服务的软件是否安装
rpm -qa |grep vsftp
6,没有安装自行安装,这里就不再赘述
关于搭建服务器方面的内容,我个人认为首先要检查系统是否安装了我们需要服务的所需软件。然后再做进一步的搭建。
7,修改配置文件:/etc/vsftpd/vsftpd.conf
[root@localhost vsftpd]# cat /etc/vsftpd/vsftpd.conf |grep -vE "^#|^$"
anonymous_enable=YES //是否允许匿名访问
anon_upload_enable=YES //是否允许匿名上传
anon_umask=022 //匿名用户上传的掩码权限
anon_mkdir_write_enable=YES //是否允许匿名用户新建目录
anon_other_write_enable=YES //是否开放其他权限
write_enable=YES //是否允许写入
listen=YES //是否监听服务
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
local_enable=YES
上面有注释的是我们这次配置匿名FTP服务需要设置的属性,下面的暂时不介绍,等用到的时候会介绍
默认情况下,FTP服务的默认目录在/var/ftp/pub/
8,现在我们就可以测试下
[root@localhost ~]# service vsftpd status
vsftpd is stopped
[root@localhost ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@localhost ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost ~]# chkconfig vsftpd on
[root@localhost ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
在客户机浏览器或者我的电脑地址栏中输入ftp://服务器ip地址,这时候进去之后我们会发现设置了匿名用户创建目录,但是还是提示创建不了。这是/var/ftp/pub/目录的权限我们还没有设置的原因,现在我们来看下,此目录的默认权限是什么:
[root@localhost pub]# ls -ld
drwxr-xr-x 3 root root 4096 Apr 9 20:29 .
现在知道是什么原因了吗?现在我们把此目录的权限改下再试试看
第一种方法:修改目录的属主
[root@localhost pub]# chown ftp /var/ftp/pub/
[root@localhost pub]# ls -ld
drwxr-xr-x 3 ftp root 4096 Apr 9 20:29 .
第二种方法:修改other的权限
[root@localhost pub]# chmod o=rwx /var/ftp/pub/
[root@localhost pub]# ls -ld
drwxr-xrwx 3 root root 4096 Apr 9 20:29 .
重启服务再试试。上述问题即可解决
FTP服务的本地用户访问等可以参考匿名用户的访问过程。
另外,在使用本地用户进行登录的时候最好把anonymous_enable设置为no,这样方便看效果
记住ftpuser中的用户是被禁止访问的
黑白名单:user_list
由userlist_enable决定是否启用user_list文件
当userlist_deny=YES时,user_list文件是黑名单,否则是白名单
再看一个本地用户登录的FTP服务配置:
要求:最多20个并发,每个ip地址最多2个并发
匿名用户FTP上传下载速度限速为50KB/s
本地用户FTP上传下载限速200KB/s
local_enalbe=YES
max_clients=20
max_per_ip=2
anon_max_rate=50000
local_max_rate=200000
效果各自实验下即可看到,查看下载速率的话建议使用客户端软件进行查看,或者在Linux的客户端下进行下载查看
本文出自 “linux菜鸟” 博客,请务必保留此出处http://ludihua.blog.51cto.com/4601284/1393086
原文:http://ludihua.blog.51cto.com/4601284/1393086