首页 > 代码库 > samba-FTP

samba-FTP

一、Samba基本共享

1,概念

         实现windowslinux系统之间的共享

         支持打印服务

         使用SMB/CIFS协议

spacer.gif

2,主要软件包

                                     samba-common

         服务器端       samba

         客户机端        samba-client

3,主要程序

         smbd 提供对文件/打印资源的共享访问     TCP 139 TCP 445

         nmbd 提供netbios主机名称解析          UDP 137 UDP 138

4,系统服务脚本

         /etc/init.d/smb

5,主配置文件

         /etc/samba/smb.conf

6,配置文件检查工具

         testparm

7,smb.conf配置解析

         [global]       samba全局设置,对整个samba有效

         [homes]           设置了用户共享目录属性,不包括全局

         [printers]                  打印机共享

         [myshare]        自定义共享目录设置

samba安全级别

security        

         share        匿名共享

     user   要用户名和密码,由samba服务器检查(默认)

         server      由指定服务器认证

         domain    域控制器来验证

 

spacer.gif

spacer.gif

spacer.gif

 

 

常见共享目录配置项 

path=/共享路径

writable=yes      是否可写

browseable=no          是否可浏览(默认可以)

readonly=yes             是否只读

public=yes          是否允许guest访问 = guestok=yes

guestonly=yes           是否只允许guest访问

comment=public       描述,说明

readlist=tom,@gr       只读用户访问列表

writelist=tom,@gr      读写用户访问列表

validusers=tom,@gr   允许使用服务的用户列表

directorymask=0755   创建目录的默认权限

createmask=0644      创建文件的默认权限

8,服务优化               

deadtime= 10           10分钟不对服务器操作就中断连接

clientcode page = 936  客户端支持中文

9,客户端访问

windows

UNC路径         \\服务器地址\共享名

netuse * /del windows客户端删除连接信息)

Linux

#smbclient -L   服务器显示指定samba服务器共享列表

#mount-t cifs -o username=administrator //ip/public/mnt/smbfs

#smbstatus      显示当前服务器的连接状况信息(server上面)      

 

smbclient         //服务器IP地址/共享名

mount服务器IP地址/共享名   挂载目录

mount   –o username=用户名  服务器IP地址/共享名   挂载目录

#umount/mnt/smbfs   

 

二、Samba共享的访问控制

1,samba帐号:

         samba账号必须系统真实存在

         samba账号密码独立的,和系统密码没关系

#pdbedit-a smb01 添加密码

          -L smb01 查看共享账户信息

          -x smb01 删除帐号

#smbpasswdsmb01  重设密码

2,别名映射

         username map = /etc/samba/smbusers

   /etc/samba/smbusers格式

         共享账户 = 别名1 别名2 ..

3,访问地址限制

         hosts allow = 客户端地址

         hosts deny = 客户端地址

客户端地址格式

         以空格分隔多个地址

         主机名或IP地址

         网络地址 192.168.10. 或者192.168.10.0/255.255.255.0

1. 查询共享列表

[root@svr2~]# smbclient  -L //192.168.4.5

 

2. 访问共享目录(仿FTP方式)

[root@svr2~]# smbclient   //192.168.4.5/tools

 

3. 访问共享目录(直接挂载)

[root@svr2~]# mkdir /mnt/smbdir

[root@svr2~]# mount  //192.168.4.5/tools/mnt/smbdir

 

4. Wind7真机上共享一个目录,在Linux客户机上访问

 

 

练习十二:用户认证的共享设置

 

1. 添加共享账号(设置密码)

[root@svr1~]# useradd nick

[root@svr1~]# useradd hunter

[root@svr1~]# pdbedit -a nick

[root@svr1~]# pdbedit -a hunter

[root@svr1~]# smbpasswd nick  //重设密码

2. 修改tools共享设置

[root@svr5~]# vim  /etc/samba/smb.conf

[global]

   security = user                  //启用用户认证

[tools]

   path = /usr/src                 //指定共享路径

   public = no                 //不对所有人开放

   read only = yes                 //默认的权限为只读   writable = no

   valid users = nick, hunter      //指定合法用户

   write list = hunter            //用户hunter可读可写

   .. ..

[root@svr1~]# setfacl -m user:hunter:rwx /usr/src

[root@svr1~]# service smb restart

3. 客户端访问验证

smbclient  -U  用户名  //服务器地址/共享名

      匿名访问应该被拒绝;

      nick访问时为只读;

      hunter访问时可读可写

fstab配置参考:

//192.168.4.5/tools/mnt/smbdir   cifs    defaults,username=nick,password=123456 0 0

 

mount–o  -u  //192.168.4.5/tools /mnt/smbdir

 

1 每个用户的权限

2 只允许某几个用户访问

权限包含:

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

 

 

 

 

 

 

 

 

 

 

 

三、Vsftpd基础配置

1,FTP概述

FileTransfer Protocol文件传输协议

spacer.gif

2,传输模式

         主动模式:由服务器主动连接客户端建立数据链路

         被动模式:FTP服务器等待客户端建立数据链路

spacer.gif

3,使用端口

         21 用于与客户机建立命令链路

         20 在主动模式下服务器使用20向客户机建立数据链路

spacer.gif

spacer.gif

 

4,配置vsftpd

spacer.gif

软件包名

         vsftpd

主配置文件

/etc/vsftpd/vsftpd.conf     vsftpd服务器的主配置文件

/etc/vsftpd/ftpusers             黑名单

/etc/vsftpd/user_list            /黑名单(缺省黑名单)

userlist_deny         是否禁用user_list中的用户

userlist_deny=YES            被禁止(黑名单)

userlist_deny=NO            被允许(白名单)

/var/ftp/ 默认共享出来的目录,权限不能更改  

匿名用户登陆用

         ftp   

         anonymous

匿名登录

ftp://192.168.4.5/

以指定用户登录

ftp://用户@ip地址

ftp://用户:密码@ ip地址

 

命令行 ftp IP地址

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

 

5,参数

download_enable         是否允许下载

userlist_enable              是否启用user_list列表文件

max_clients            限制并发的客户端个数

max_per_ip             限制每个客户机IP的并发连接数

anonymous_enable              是否启用匿名访问

anon_root                      匿名FTP的根目录

anon_upload_enable           是否允许上传文件

anon_mkdir_write_enable    是否允许建目录

anon_other_write_enable    其他写入控制

anon_max_rate                最大传输速度(字节/秒)

local_enable             是否启用本地用户

local_root                           本地用户的FTP根目录

chroot_local_user           是否禁锢在主目录

local_max_rate                 最大传输速率(字节/秒)

anonymous_enable=YES                 //(默认)允许匿名登录

anon_upload_enable=YES              //允许匿名上传文件

anon_mkdir_write_enable=YES             //允许匿名创建目录

anon_other_write_enable=YES              //允许其他写入权限

write_enable=YES                     //(默认)允许写入(全局)

anon_umask=022                     //设置上传文件权限掩码

 

 

 

spacer.gif

spacer.gif

 

/etc/vsftpd/user_list  黑白名单

 

        

6,访问

ftp://服务器ip地址

   常用ftp命令

?        !       lcd        pwd          get   put  mget         mput

 

 

 

vsftpd实现的FTP服务

Samba共享

################################

 

一、准备环境(RHEL5.9

    svr1eth0VMnet1仅主机):

         静态IP 192.168.4.5/24

         不要设默认网关、不要设DNS地址

    pc205eth0VMnet1仅主机)

         静态IP 192.168.4.205/24

         不要设默认网关、不要设DNS地址

 

 

练习一:简单FTP实验

1)安装vsftpd包、启动vsftpd服务

2)添加一个账号yourname

3)在Win7客户机上访问FTP服务器,上传一个文件、下载一个文件

         匿名访问、以yourname登录

4)以yourname登录FTP,测试是否能下载/etc/passwd文件

 

 

练习二:使用ftp客户端命令

1)匿名登录192.168.4.5,测试下载get、上传put操作

2)以yourname登录192.168.4.5,测试下载get、上传put操作

          下载 /etc/inittab文件

3)断开连接:quit或者bye

4)查看登录前本地目录下内容:!ls

 

 

先备份:

cd  /etc/vsftpd/

cpvsftpd.conf vsftpd.conf.default

 

练习三:控制FTP登录方式

1)禁止匿名FTP登录

anonymous_enable=NO

2)禁止本地用户登录

local_enable=NO

 

练习四:禁锢本地用户-->宿主目录

chroot_local_user=YES

 

练习五:允许匿名上传

anonymous_enable=YES                 //(默认)允许匿名登录

anon_upload_enable=YES              //允许匿名上传文件

anon_mkdir_write_enable=YES             //允许匿名创建目录

anon_other_write_enable=YES              //允许其他写入权限

write_enable=YES                     //(默认)允许写入(全局)

anon_umask=022                     //设置上传文件权限掩码

 

[root@svr1vsftpd]# chown ftp /var/ftp/pub/

                   或者 chmod  777  /var/ftp/pub

 

 

练习六:黑名单、白名单

黑名单文件:/etc/vsftpd/ftpusers

/白名单:/etc/vsftpd/user_list

 

1)将user_list作为黑名单(缺省)

userlist_enable=YES                 //(默认)启用user_list列表文件

userlist_deny=YES           //(默认)

 

2)将user_list作为白名单

userlist_enable=YES                 //(默认)启用user_list列表文件

userlist_deny=NO           //user_list作为白名单

 

 

练习七:连接限制、下载速度限制

max_clients=20                 //允许的最大并发连接数

max_per_ip=2                   //每个IP地址最多允许多少连接

anon_max_rate=50000  //匿名下载速度,Byte/s

local_max_rate=200000 //本地用户下载速度,Byte/s

 

建下载测试文件:

ddif=/dev/zero of=/var/ftp/anon.tgz bs=1M count=100

ddif=/dev/zero of=/home/用户名/local.tgzbs=1M count=100

 

练习八:综合练习

1)创建一个文件夹/ftproot/,作为本地用户的FTP根目录

2)添加2FTP账号up(上传/下载)、down(仅下载)

3)除了updown用户以外,其他用户(包括匿名)都不允许登录

4)限制下载速度200KB/s

 

练习九:虚拟FTP主机(扩展)

1)修改/etc/vsftpd/vsftpd.conf

     设置FTP监听地址192.168.4.5

     只允许匿名登录,允许其上传

2)另外创建一个配置文件/etc/vsftpd/vsftpd2.conf

     设置FTP监听地址192.168.40.5

     只允许用户zhangsan登录

 

查看及安装Samba服务器:

[root@svr1~]# rpm -qa | grep samba

[root@svr1~]# yum -y install samba

 

 

练习十:配置简单共享

1. 设置并启用tools共享

[root@svr1~]# cp  /etc/samba/smb.conf  /etc/samba/smb.conf.bak

[root@svr1~]# vim  /etc/samba/smb.conf

[global]

   workgroup = TARENA             //工作组名

   security = share                         //允许匿名访问共享

[tools]

   comment = Test Share Direstory.    //共享目录的描述

   path = /usr/src                          //指定共享路径

   public = yes                      //所有人都可访问

   read only = yes                          //默认的权限为只读

   #browseable = no                       //启用此行则为隐藏共享

[root@svr1~]# service  smb  restart

 

2. Win7客户机上访问测试

    \\192.168.4.5\    或者   \\192.168.4.5\tools\

 

 

练习十一:Linux客户机访问共享目录

1. 查询共享列表

[root@svr2~]# smbclient  -L //192.168.4.5

 

2. 访问共享目录(仿FTP方式)

[root@svr2~]# smbclient   //192.168.4.5/tools

 

3. 访问共享目录(直接挂载)

[root@svr2~]# mkdir /mnt/smbdir

[root@svr2~]# mount  //192.168.4.5/tools /mnt/smbdir

 

4. Wind7真机上共享一个目录,在Linux客户机上访问

 

 

练习十二:用户认证的共享设置

 

1. 添加共享账号(设置密码)

[root@svr1~]# useradd nick

[root@svr1~]# useradd hunter

[root@svr1~]# pdbedit -a nick

[root@svr1~]# pdbedit -a hunter

 

[root@svr1~]# smbpasswd nick  //重设密码

 

2. 修改tools共享设置

[root@svr5~]# vim  /etc/samba/smb.conf

[global]

   security = user                  //启用用户认证

[tools]

   path = /usr/src                 //指定共享路径

   public = no              //不对所有人开放

   read only = yes                 //默认的权限为只读

   valid users = nick, hunter      //指定合法用户

   write list = hunter            //用户hunter可读可写

   .. ..

[root@svr1~]# setfacl -m user:hunter:rwx /usr/src

[root@svr1~]# service smb restart

 

3. 客户端访问验证

smbclient  -U  用户名  //服务器地址/共享名

      匿名访问应该被拒绝;

      nick访问时为只读;

      hunter访问时可读可写

 

fstab配置参考:

//192.168.4.5/tools   /mnt/smbdir  cifs   defaults,username=nick,password=123456 0 0

3. 客户端验证

[root@svr1~]# smbclient  -U  hijack //192.168.4.5/tools

 

 

练习十三:共享账号别名

 

1. 设置别名

[root@svr1~]# vim  /etc/samba/smbusers

nick= hijack

 

2. 启用别名映射

[root@svr1~]# vim  /etc/samba/smb.conf

[global]

  username map = /etc/samba/smbusers

   .. ..

[root@svr1~]# service smb restart

 

3. 客户端验证

[root@svr1~]# smbclient  -U  hijack //192.168.4.5/tools

 

练习十四:客户机访问控制

1)允许从网段 192.168.4.0/2410.0.0.0/8访问

2)来自其他客户机的访问一律拒绝

    ifconfig eth0:0 10.0.0.5/8   <-- 客户机 10.0.0.205/8

    ifconfig eth0:1 11.0.0.5/24 <-- 客户机 11.0.0.205/8

 

 

 


samba-FTP