标签:net 图片 passwd 文件 虚拟用户 定义 需要 ftp chkconfig
一:了解FTP基本知识
Vsftpd
1.什么是FTP?
File Transfer Protocol 基于C/S结构的文件传输协议
2.使用什么协议?什么端口?
TCP 21 建立命令链路
TCP 20 在主动传输模式下服务器使用20端口向客户端建立数据链路
3.FTP工作原理
--------- Client Server--------------
1031 21
1032 20
①客户端向服务器发出连接请求,同时客户端系统动态地打开一个大于1024的端口等候服务器连接(比如1031端口)
②若FTP服务器在端口21侦听到该请求,则会在客户端1031端口和服务器的21端口之间建立一个FTP会话连接
③当需要传输数据时,FTP客户端动态地打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭
④当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放
4.FTP工作模式
主动传输模式(Active FTP):
在主动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,然后开放N+1号端口(1026)进行监听,并向服务器发送PORT 1026命令。服务器接收到命令后,会用其本地的FTP数据端口(通常20)来连接客户端指定的端口1026,进行数据传输。
被动传输模式(Passive FTP):
在被动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,同时会开启N+1号端口(1026),然后向服务器发送PASV 命令。通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024端口(1521)进行监听,然后用PORT 命令通知客户端,自己的数据端口是1521.客户端收到命令后会通过1026号端口连接服务器的1521,然后在两个端口之间进行数据传输。
5.FTP传输模式
二进制模式:图片和执行文件压缩文件
文本模式:CGI脚本和普通HTML文件
目前服务器上面和FTP客户端软件能够自动识别文件类型并选择相应的传输方式
6.FTP账户类型
匿名用户:ftp 或 anonymous
本地用户:Linux服务器本机的系统用户账号
虚拟用户:账号信息存放在独立的文件或数据库内
7.默认安装vsftpd特点
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载
ftp和lftp命令
get 下载
put 上传
mget 下载多个,支持通配符
mput 上传多个,支持通配符
!cmd 执行外面命令
lcd 切换外面路径
9.访问FTP地址表示方法
用户验证访问
ftp://user:pass@192.168.4.5
ftp://user:pass@192.168.4.5/path/to/file
URL,统一资源定位器(网址)
Unified Resource Locator
协议://用户名:密码@服务器地址:端口/目录路径/文件名
10.RHEL6自带的ftp软件包?主配置文件是?服务启动脚本?
vsftpd
/etc/vsftpd/vsftpd.conf
重点字段意义:anonymous_enable=YES #开启匿名共享
local_enable=YES #开启本地账户共享
write_enable=YES #本地账户是否可写
anon_upload_enable=YES #匿名用户是否可以上传文件
anon_mkdir_write_enable=YES #匿名可创建目录
anon_other_write_enable=YES #匿名删除,重命名
chroot_local_user #禁锢本地账户
anon_root=/abc #定义匿名用户根目录为/abc目录
anon_umask=022 #定义匿名用户上传的掩码值
11.配置文件:/etc/vsftpd/vsftpd.conf(主配置)
/etc/vsftpd/ftpusers(黑名单)
/etc/vsftpd/user_list(黑/白名单)
在字段userlist_enable=YES或NO //是否开启user_list文件
在字段userlist_deny=NO时user_list是白名单
12.其他常用选项
listen_port=端口号
listen_address=IP地址
14.并发连接和速度:
max_clients=最大并发连接数
max_per_ip=同一IP地址的最大并发连接数
anon_max_rate=匿名用户访问速度(字节/秒)
local_max_rate=本地用户访问速度(字节/秒)
安装 FTP
1.安装软件包
关掉防火墙和selinux,不然需要提前配好
yum -y install vsftpd
2.启动服务
service vsftpd restart
chkconfig vsftpd on
netstat -anptu | grep vsftpd
3.创建测试文件
ls -l /etc/* > /var/ftp/pub/anon.txt
[root@svr5 ~]# useradd lisi
[root@svr5 ~]# echo 123456 | passwd --stdin lisi
[root@svr5 ~]# ls -l /etc/* > ~lisi/lisi.txt
4.验证:(客户端测试)
浏览器测试:
ftp://192.168.4.5/
ftp://lisi:123456@192.168.4.5/ 用户密码登录方式
命令行测试:
[root@pc205 ~]# yum -y install ftp lftp
[root@pc205 ~]# ftp 192.168.4.5
ftp> cd pub
ftp> ls
ftp> get anon.txt
ftp> !ls
ftp> put install.log
ftp> quit
[root@pc205 ~]# lftp 192.168.4.5
lftp 192.168.4.5:~> user lisi
口令:
[root@pc205 ~]# yum -y install wget
[root@pc205 ~]# wget ftp://lisi:123456@192.168.4.5/lisi.txt 下载文件测试
实验总结:
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载 用户家目录
实验三:
禁锢本地用户在自己家目录
实验步骤:
先在客户端测试默认结果
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
...
ftp> pwd
257 "/home/lisi"
在服务器端配置
[root@svr5 ~]# cd /etc/vsftpd/
[root@svr5 vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@svr5 vsftpd]# vim vsftpd.conf
...
96 chroot_local_user=YES
...
[root@svr5 vsftpd]# service vsftpd restart
在客户端测试:
[root@pc205 ~]# ftp 192.168.4.5
...
Name (192.168.4.5:root): lisi
331 Please specify the password.
Password:
230 Login successful.
ftp> pwd
257 "/"
实验四:用户访问控制(黑白名单)
通过ftpusers阻止mike访问
将user_list设为白名单
允许lisi、mike访问
分别测试匿名访问、lisi和mike访问
将ftp加入白名单,再测试匿名访问
[root@svr5 ~]# useradd mike
[root@svr5 ~]# echo 123456 | passwd --stdin mike
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
mike
[root@svr5 ~]# service vsftpd restart
测试:用mike访问ftp
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
121 userlist_deny=NO
...
[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# grep mike /etc/vsftpd/ftpusers
[root@svr5 ~]# tail -n 2 /etc/vsftpd/user_list
lisi
mike
测试:
分别使用mike与lisi登录测试
实验完毕,请将主配置文件121 userlist_deny=NO注释,将user_list和ftpusers里面添加的账户去掉
实验五:
最多100个并发,每IP地址最多2个并发
限制匿名下载速度为50KB/s
限制用户下载速度为500KB/s
通过 ftp、wget 验证上述限制
[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
...
122 max_clients=100
123 max_per_ip=2
124 anon_max_rate=50000
125 local_max_rate=500000
[root@svr5 ~]# service vsftpd restart
[root@svr5 ~]# dd if=/dev/zero of=/var/ftp/pub/anon.tgz bs=1M count=1000
[root@svr5 ~]# dd if=/dev/zero of=/home/lisi/local.tgz bs=1M count=1000
测试:
[root@pc205 ~]# wget ftp://192.168.4.5/pub/anon.tgz
[root@pc205 ~]# wget ftp://lisi:123456@192.168.4.5/local.tgz
补充:
匿名用户登录对共享根目录(/var/ftp)禁止有写入权限,否则禁止匿名账户登录!
标签:net 图片 passwd 文件 虚拟用户 定义 需要 ftp chkconfig
原文地址:http://www.cnblogs.com/rui-zhi/p/6275366.html