f架设基于FTP服务的yum服务器

一、ftp架设

vsftp
    ftp
    端口:20,21
    tcp协议

    ftp两种工作模式: 被动模式,主动模式
   
    ftp的传输内容分:控制指令,文件数据

    主动模式:
        ftp服务器在21端口去监听,接受客户端的控制指令;
    如果客户端读取某个文件,读取的指令会发到服务器端21端口,指令当中还告诉了服务器端,客户端打开了某个大于1024端口等待服务器的数据连接。服务器端收到这个情况之后,就会主动发起一个新数据发送连接,这些数据包的原端口使用20,进行发送数据。
    特点:客户端不能是在私有网络里

    被动模式:
        ftp服务器在21端口去监听,接受客户端的控制指令;
    如果客户端读取某个文件,读取的指令会发到服务器端21端口,同时,指令当中会告诉服务器端,让服务器端打开某个大于1024端口,等待客户端主动连接上去进行数据传输。
    特点:客户端可以在私有网络里



    软件: vsftpd

被动模式
src port : > 1024
dst port : > 1024
src ip   : 10.1.1.20 <---经过路由之后,被修改为一个公网IP:61.1.1.1
dst ip   : 210.38.224.86

主动模式:

server:
scr port : 20
dst port : > 1024
scr ip   : 210.38.224.86
dst ip   : 61.1.1.1


============================
配置文件: /etc/vsftpd/vsftpd.conf
例子1:实现匿名帐号访问资源

安装完软件包,启动服务

匿名登录之后,资源的路径是在服务器的/var/ftp(ftp帐号的家目录)
权限:只读

anonymous_enable=YES

例子2:实现匿名可以上传文件

anon_upload_enable=YES

mkdir /var/ftp/pub
chmod 777 /var/ftp/pub

例子3: 用两种方法,分别修改匿名帐号登录之后的资源所在路径/ftp
man vsftpd.conf
方法一、修改配置文件
anon_root=/ftp

方法二、修改匿名帐号的家目录为/ftp


例子4:实现允许匿名帐号下载自己上传的文件

为什么默认不允许下载自己上传的文件?
文件上传之后权限自动改为600,而ftp帐号对于600权限文件是没有权限下载

-rw-------    1 14       50            845 Jul 19 06:12 fstab   不可以
-rw-r--r--    1 0        0            1666 Jul 19 06:13 inittab 可以

方法一:让匿名帐号上传的文件权限自动更改为644的权限
man vsftpd.conf
    anon_umask=022
    如果文件的权限是444 ,umask怎么设定?
    anon_umask=0222


方法二:允许匿名帐号下载不是所有人都可以读的文件

anon_world_readable_only=NO  <---默认是yes,只允许下载所有人都可以读的文件

练习:实现匿名可以创建文件夹,删除文件,删除文件夹



例子5:实现普通帐号访问匿名资源

资源路径: 帐号的家目录
可以随便切换到该帐号可以访问任意路径,可以下载该帐号可以读取的任意文件(/etc/passwd)

local_enable=YES  #允许本地帐号登录
write_enable=YES  #允许本地帐号可以有写的权限
local_umask=022


例子6:实现锁定普通帐号登录之后的路径

chroot_local_user=YES

例子7、限制某个用户登录ftp

方法1:通过修改用户默认shell
/bin/false  <--只对普通帐号生效,对匿名帐号不生效


方法2、修改配置文件

userlist_enable=YES
在参数userlist_file指定的/etc/vsftpd/user_list文件里添加tom的名字

在这种情况下,user_list是黑名单,所有里面存在的用户都不允许登录ftp

怎么样才能把user_list更改为白名单,所有里面存在的用户都才允许登录ftp
userlist_deny=NO

例子8、实现只是锁定某些帐号的资源路径,别的帐号不锁定
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list  <---不锁定家目录的名单

如果想/etc/vsftpd/chroot_list黑名单,里面存在的用户就锁定
chroot_local_user=NO


在上面的所有关于普通帐号的ftp使用,都可以实现磁盘配额进行空间限制,前提:这些帐号都是服务器上存在的真实的本地帐号



例子9、使用虚拟帐号

1、建立所有虚拟帐号对应的一个真实帐号

useradd -s /sbin/nologin vuser


2、建立虚拟帐号文件

# yum install db4-utils -y

# vim /etc/vsftpd/vusers
vuser1  《--用户名
123    《--密码
vuser2
321
vuser3
456

# db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db
# chmod 640 /etc/vsftpd/vusers*



3、修改配置文件

guest_enable=YES
guest_username=vuser
pam_service_name=vuser
#pam_service_name=vsftpd

4、创建帐号验证的pam模块文件
# vim /etc/pam.d/vuser
#%PAM-1.0
auth    sufficient  /lib/security/pam_userdb.so db=/etc/vsftpd/vusers
account sufficient  /lib/security/pam_userdb.so db=/etc/vsftpd/vusers

上面实现的所有的虚拟帐号都是同一个家目录,怎么样才可以实现虚拟帐号具有独立的家目录,而且具有独立的权限控制:

1、添加额外参数

user_sub_token=$USER
user_config_dir=/etc/vsftpd/vuser_config #用来存放虚拟帐号的配置文件

2、更改虚拟帐号对应的真是帐号的家目录

# usermod -d '/home/vuser/$USER' vuser
# finger vuser
Login: vuser                            Name: (null)
Directory: /home/vuser/$USER            Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.

3、在/home/vuser下分别为各个虚拟帐号建立独立的家目录

# mkdir /home/vuser/vuser{1,2,3}
# chown vuser:vuser /home/vuser/vuser1
# chown vuser:vuser /home/vuser/vuser2
# chown vuser:vuser /home/vuser/vuser3

4、分别建立独立的配置文件
# vim /etc/vsftpd/vuser_config/vuser1
write_enable=NO

这种方案的缺点:不能实现磁盘配额。

 

 

二、架设yum服务器

 1、 vim /etc/yum.repos.d/rhel-debuginfo.repo

 

 

[Server]
name=Server
baseurl=ftp://10.1.1.101/rhel_source/Server
enabled=1
gpgcheck=0

[VT]
name=VT
baseurl=ftp://10.1.1.101/rhel_source/VT
enabled=1
gpgcheck=0

[Cluster]
name=Cluster
baseurl=ftp://10.1.1.101/rhel_source/Cluster
enabled=1
gpgcheck=0

[ClusterStorage]
name=ClusterStorage
baseurl=ftp://10.1.1.101/rhel_source/ClusterStorage
enabled=1
gpgcheck=0


[wych]
name=wych
baseurl=ftp://10.1.1.101/rhel_source/wych
enabled=1
gpgcheck=0

 

2、createrepo  /share/rhel_source/
3、yum clean all

4、yum list

 

5、客户端机器

 vim    /etc/yum.repos.d/rhel-debuginfo.repo

 

rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://10.1.1.101/rhel_source/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值