您的位置:首页 > 编程语言 > PHP开发

FTP服务之 vsftp服务器

2013-10-07 21:13 274 查看
ftp服务在生活中有着十分重要的作用,部门之间传递资料,员工下载资料等等,通过ftp服务器的搭建,能够很好地解决这些问题。
ftp 应用层协议,而且是明文传递的,其底层协议为TCP,端口21连接控制,端口22数据传输作用。
ftp文件传输协议,使主机间可以共享文件。其本质就是 客户端和服务器之间的应用。

那么客户端由谁来充当?

答:比如像1.window 系统中的cmd 2.各种浏览器 3.一些ftp的客户端软件

那么服务器由谁来充当?

答:比如像1.window中 IIS 2.server-u 工具建设ftp服务器 3.早期的linux wu-ftp 4.linux中的vsftpd搭建服务器 5.linux中的pure-ftp服务器。

ftp中的账号种类?
1.本地账号:windows中 在sam库中。Linux在/etc/passwd /etc/shadow文件中

2.匿名账号:anonmous 密码为空,一般不具备上传能力,只能下载。
3.数据库账号:账号放置于数据库中,准确名称叫做 “虚拟账号”,虚拟账号映射本地账号,当虚拟账号被抓包,其他人也不能使用虚拟账号登陆。

vSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

VSFTP服务器的基础配置内容:

1.安装vsftp服务。
[root@localhost~]# rpm -ivh /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm
2.启动vsftpd服务,查看端口
[root@localhost~]# service vsftpd start
Startingvsftpd for vsftpd: [ OK ]
[root@localhost~]# netstat -pltun | grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3664/vsftpd
//由于我们没有进行文件的传输等行为,所以22端口并没有打开。
3.编辑vsftpd主配置文件
[root@localhost~]# vim /etc/vsftpd/vsftpd.conf
12anonymous_enable=YES //允许匿名访问
15local_enable=YES //本地账号访问
18write_enable=YES· //可写权限
【网络权限与本地权限,相互作用。当两者权限相同,取相同的权限。如果两者权限不同,取最小权限,最严格权限。】 22local_umask=022 //本地掩码
27#anon_upload_enable=YES //是否允许匿名账号上传,。默认关闭,需要打开才行。
【匿名账号是不能进行上传的,这也与相关目录的读写权限有关系,修改/var/ftp/pub的权限】
drwxr-xr-x2 root root 4096 May 13 2009 pub
[root@localhostftp]# chmod o+wt pub //注意:o+w默认的是给目录以及目录下的所有文件写权限, 这无疑是不好的,任何用户都可以删除ftp服务器上的文件。O+wt则是只给目录的所有者写权限。
31#anon_mkdir_write_enable=YES //允许匿名账号在ftp下创建文件夹。
//注意:此时所建立的文件夹只能使用默认名称,且用户不能重命名,删除。 23anon_umask=073 //手动添加此行代码,表示匿名账号可以拥有读权限,用于从ftp服务
器上下载
33anon_other_write_enable=YES //手动添加此行代码,允许匿名账户 修改文件名称,删除等。
37dirmessage_enable=YES //切换目录时,提示消息。
41xferlog_enable=YES //日志,记录某个客户端,访问了什么文件。
61#idle_session_timeout=600 //访问超时时间
64#data_connection_timeout=120 //连接超时时间
83#ascii_upload_enable=YES //文本方式上传,容易出错。
87#ftpd_banner=Welcome to blah FTP service. //ftp服务器的提示消息。在登陆的时候显示的消息。在登陆之前就会出现。
91#deny_email_enable=YES //拒绝邮箱账户,作为登陆的匿名账户
93#banned_email_file=/etc/vsftpd/banned_emails
98#chroot_list_enable=YES //允许 切换目录
100#chroot_list_file=/etc/vsftpd/chroot_list //放在/etc/vsftpd/chroot_list列表中的用户两者相结合。
放入在/etc/vsftpd/chroot_list文件中的用户将被限制到自己的根中,不能切换。






111listen=YES //把ftp改成依赖于超级进程的
118pam_service_name=vsftpd //借助于pam【可插拔的验证模块】进行身份验证。
119userlist_enable=YES // /etc/vsftpd/user_list /etc/vsftpd/ftpusers 在这两个文件中放置的用户,都不能登录,放置于user_list中的用户 在被拒绝后,对于其安全保护更加的好。






120tcp_wrappers=YES //支持tcp wrappers
基于来源控制,
修改 /etc/hosts.allow文件,添加来源控制的选项。



控制只允许ip地址为 192.168.1.127 可以登录,其他的都不能登陆。



控制拒绝所有的ip访问ftp




拒绝!!!

实验:配置一个ftp服务器

实验要求:
1.新增一块磁盘,专门作为ftp服务器。
2.匿名用户的根目录在/mnt/part1/public。
3.本地账号根目录原来在/home/xxx 新的放置于/mnt/part/home/xxx。
4.磁盘配合控制 20m 本地账号速率1m/s 匿名100k/s。
5.限制最大连接数 100。

实验开始:
首先在linux 虚拟机中添加一块 新的磁盘
1.添加新的磁盘,格式化,分区。
[root@localhost~]# fdisk /dev/sdb //格式化 /dev/sdb 分区
Command(m for help): n //添加一个新的分区
Partitionnumber (1-4): 1 //设置分区编号 为1
Command(m for help): w //保存退出
2.创建挂载点,
[root@localhost~]# mkfs -t ext3 /dev/sdb1 //编辑磁盘类型为ext3类型
[root@localhost~]# mkdir /mnt/part1 //挂载ftp的磁盘
[root@localhost~]# vim /etc/fstab //编辑开机自动挂载
添加:/dev/sdb1 /mnt/part1 auto defaults,usrquota0 0 //usrquota 用户配额参数
3.产生用户而定配额文件
[root@localhost~]# quotacheck -augvc
quotacheck:Scanning /dev/sdb1 [/mnt/part1] quotacheck: Cannot stat old user quota file: Nosuch file or directory
quotacheck:Old group file not found. Usage will not be substracted.
done
quotacheck:Checked 3 directories and 2 files
quotacheck:Old file not found.

[root@localhost~]# ll /mnt/part1/ //产生的磁盘配额文件,用户在里面添加对应用户的磁盘配额信息
total24
-rw-------1 root root 6144 Sep 27 09:54aquota.user

4.创建账号user1 user2 给他们口令 “123”//用于测试
5.编辑用户的磁盘配额
[root@localhost~]# edquota -u user1 //编辑用户user1的磁盘配额情况
Diskquotas for user user1 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 20000 20000 0 0 0
[root@localhost~]# edquota -u user2 //编辑用户user2的磁盘配额情况
Diskquotas for user user2 (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 20000 20000 0 0 0
启用
[root@localhosthome]# quotaon /dev/sdb1 //启用 用户的磁盘配额配置
6.搬迁用户的ftp家目录
[root@localhost~]# useradd -D -b /mnt/part1/home/ //设置新建用户的家目录,放置用户上传的文件
7切换匿名用户的根
在配置文件中添加命令
115 anon_root=/mnt/part1/public 转变 匿名账户的根目录
8.磁盘配额测试
[root@localhost~]# dd if=/dev/zero of=f1.user1 bs=1M count=15 //生成一个15M的f1.user1文件
[root@localhost~]# ftp 192.168.1.134 //登陆ftp服务器
Name(192.168.1.134:root): user1 //登录用户user1
ftp>!dir //查看本地文件目录
ftp>dir //查看linux系统中的文件目录
ftp>pwd
257"/mnt/part1/home/user1"
ftp>put f1.user1 //上传f1.user1 到用户家目录
再次创建一个15M的文件
[root@localhost~]# dd if=/dev/zero of=f2.user1 bs=1M count=15
使用user1登陆,并上传该文件。











速率配置:
当设置用户的下载或者上传速度的限制的时候,其真实速度会在设置速度的上下浮动20%
116anon_max_rate=100000 这里的100000为字节数也就是100kb
117local_max_rate=1000000 这里的1000000为字节数,也就是1000kb=1Mb






10.最大连接数
118max_clients=100 //最大的主机连接束
119max_per_ip=3 // 每个ip的连接数为3

11.本地账号区分
121user_config_dir=/etc/vsftpd/user-conf
使用 user_config_dir 参数指明一个文件,存放个别用户的配置,用来区分每个用户的权限,可以单个用户的进行ftp权限的设置。
-------------------------------------------------分割线------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息