FTP Server
分类:项目实施 热度:

FTP Server
 
作用:提供文件共享服务
========================================================
一、FTP基础
FTP:   文件传输协议
软件包: vsftpd
FTP端口: 控制端口 21/tcp  
数据端口 20/tcp (主动模式)
配置文件: /etc/vsftpd/vsftpd.conf (man vsftpd.conf)
 
二、vsftpd默认配置
[root@yunwei  ~]# yum -y install vsftpd
[root@yunwei  ~]# service vsftpd restart
[root@yunwei  ~]# chkconfig vsftpd on
========================================================
vsftpd支持的用户类型:
匿名用户: ftp
系统用户: alice,jack
虚拟用户: 不存在于系统账号数据中,安全,例如存储在mysql数据库中
[root@client1 ~]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@client1 ~]# grep alice /etc/passwd
alice:x:2008:2012::/home/alice:/bin/bash
 
从客户端测试:
[root@client1 ~]# yum -y install ftp lftp
[root@client1 ~]# ftp 192.168.2.115 //输入用户名和口令
[root@client1 ~]# lftp 192.168.2.115 //匿名用户
[root@client1 ~]# lftp alice@192.168.2.115 //指定用户
 
[root@client2 ~]# wget ftp://192.168.2.80/rhel5.repo     wget进入到ftp服务器的时候已经就在/var/ftp下
[root@client2 ~]# wget ftp://192.168.2.80/rhel5.repo -O /etc/yum.repo.d/rhel5.repo  下载重命名
[root@client2 ~]# wget ftp://192.168.2.80/rhel5.repo -P /etc/yum.repo.d                       下载到指定目录,不用改名字
[root@client2 ~]# cat download.txt 
ftp://192.168.2.80/rhel5.repo
ftp://192.168.2.80/raid.png
[root@client2 ~]# wget -i download.txt 
 
小结:vsftpd未做任何配置
1. 匿名用户仅能从被锁定的根目录下载文件 /var/ftp
2. 系统用户可以上传文件到他有写权限的任何目录,HOME目录未被锁定。
========================================================
 
三、基本配置,例如实现访问控制
注意: 空格,指令错误,指令重复
[root@yunwei  ~]# egrep -v '^#|^$' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //是否允许匿名用户登录
local_enable=YES    //是否允许本地用户登录
write_enable=YES    //是否允许写(全局)
local_umask=022    //控制本地用户上传文件的默认权限,umask表示要减掉的权限
anon_umask=077    //控制匿名用户上传文件的默认权限 
 
chroot: 锁定本地用户HOME
方法一:部分用户chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
方法二:所有本地用户chroot
chroot_local_user=YES
 
anon_max_rate=500000 //匿名用户限速
local_max_rate=80000    //本地用户限速
max_clients=500 //ftp最大连接数
max_per_ip=2 //单个IP最大连接数,线程数
 
local_root=/ftproot //指定本地用户访问的root目录
anon_root=/anonroot //指定匿名用户访问的root目录
 
案例1:使用vsftpd构建公司文件服务器
1. 为各个部门建立ftp访问目录,用户,包括部门的管理员
[root@yunwei  ~]# mkdir -p /ftproot/{hr/{hr01,hr02},it,sale}
[root@yunwei  ~]# chmod -R 777 /ftproot/
[root@yunwei  ~]# tree /ftproot/
/ftproot/
|-- hr
|   |-- hr01
|   `-- hr02
|-- it
`-- sale
 
方法一:
[root@yunwei  ~]# useradd admin -s /sbin/nologin 
[root@yunwei  ~]# useradd hr_admin -s /sbin/nologin 
[root@yunwei  ~]# useradd hr01_admin -s /sbin/nologin 
[root@yunwei  ~]# useradd hr02_admin -s /sbin/nologin 
[root@yunwei  ~]# useradd it_admin -s /sbin/nologin 
[root@yunwei  ~]# useradd sale_admin -s /sbin/nologin
[root@yunwei  ~]# passwd admin
========================================================
方法二:
[root@yunwei  ~]# for i in admin hr_admin hr01_admin hr02_admin it_admin sale_admin
> do
> useradd $i -s /sbin/nologin
> echo 1 |passwd $i --stdin
> done
========================================================
 
2. 配置FTP服务器
注:使用匿名访问公司公共的资源
===主配置文件
[root@yunwei  ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=NO
chroot_local_user=YES
local_max_rate=100000
max_per_ip=2
user_config_dir=/etc/vsftpd/vsftpd_user_conf //指定用户私有配置文件存放的目录  关键!
[root@yunwei  ~]# service vsftpd restart
 
===私有配置文件 用户私有配置文件需要自己建立。名字自己起,但是要和主配置文件里的文件名一致
[root@yunwei  ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@yunwei  ~]# cd /etc/vsftpd/vsftpd_user_conf/
[root@yunwei  ~]# vsftpd_user_conf]# cat admin 
local_root=/ftproot
write_enable=YES
local_max_rate=0
max_per_ip=0
 
3. 通过磁盘限额限制用户使用的空间
hr: 5G 1000
it: 1T 200000
sale: 10G 1000
 
[root@yunwei  ~]# ll -d /ftproot/it/
drwxrwsrwx 2 root it 4096 Jan 21 09:51 /ftproot/it/
 
 
作业1: 物理上使用FTP共享YUM源
Server:
[root@yunwei  ~]# mount -o loop /root/rhel6u4_64.iso /var/ftp/rhel6
[root@yunwei  ~]# vim /var/ftp/rhel6.repo
[Server]
name=Server
baseurl=ftp://192.168.10.66/rhel6/Server
gpgcheck=0
 
[HighAvailability]
name=HighAvailability
baseurl=ftp://192.168.10.66/rhel6/HighAvailability
gpgcheck=0
 
[LoadBalancer]
name=LoadBalancer
baseurl=ftp://192.168.10.66/rhel6/LoadBalancer
gpgcheck=0
 
[ResilientStorage]
name=ResilientStorage
baseurl=ftp://192.168.10.66/rhel6/ResilientStorage
gpgcheck=0
 
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=ftp://192.168.10.66/rhel6/ScalableFileSystem
gpgcheck=0
 
Client:
[root@client ~]# wget ftp://192.168.10.66/rhel6.repo -O /etc/yum.repos.d/rhel6.repo
[root@client ~]# yum clean all
[root@client ~]# yum repolist
 
上一篇:NTPD服务器 时间服务器 下一篇:没有了
猜你喜欢
各种观点
热门排行
精彩图文