天天看点

FTP、NFS及SAMBA

                                                                FTP

常见的FTP服务器程序:vsftpd,Serv-U,wu-ftpd,Proftpd,IIS

常见的FTP客户端程序:ftp命令,FlashFXP,LeapFTP,gftp,Filezilla

数据连接的建立类型

主动模式:服务端从20端口主动向客户端发起连接

被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接

FTP传输模式

文本模式:ASCII模式,以文本序列传输数据

二进制模式:Binary模式,以二进制序列传输数据

vsftpd的主配置文件/etc/vsftpd/vsftpd.conf

local_enable=YES                         #本地用户登入开启

anon_enable=YES                        #匿名用户登入开启

anon_root=/var/ftp                        #匿名用户的FTP根目录

write_enable=YES                        #本地用户可写权限开启

download_enable=YES                #是否允许下载文件

local_umask=022                          #本地用户上传文件的umask(掩码)值

anon_other_write_enable=YES     #匿名用户创建目录权限开启

anon_mkdir_write_enable=YES    #匿名用户其他写入权限开启

anon_upload_enable=YES            #匿名用户允许上传文件

chroot_local_user=YES                #锁定所有用户家目录

chroot_list_enable=YES                #对一些用户锁定用户家目录功能开启

chroot_list_file=/etc/vsftpd/chroot_list    #锁定家目录用户列表存储文件路径

xferlog_enable=YES                      #开启传输日志功能

xferlog_std_format=YES                #指定传输日志的格式

xferlog_file=/var/log/xferlog            #传输日志存储文件所在位置

anon_max_rate=0                          #匿名用户的最大传输速度(0表示不限制速度,速度单位是字节)

local_max_rate=0                          #本地用户的最大传输速度

max_clients=100                           #该FTP服务器的最大并发连接数

max_per_ip=2                               #一个IP最多可创的连接数

connect_form_port=20                  #允许FTP服务器使用主动模式

ascii_upload_enable=YES              #ASCII传输模式开启

ftpd_banner=Welcome to FTP              #打印欢迎信息

listen_address=192.168.0.252               #设置监听的IP地址

listen_port=21                               #设置监听FTP服务的端口号

userlist_enable=YES                     #是否启用user_list列表文件

userlist_deny=YES                        # 是否禁用user_list中的用户

ls_recurse_enable=YES                #使用ls命令是可以递归

listen=YES                                   #表示是该服务进程独立守护进程

tcp_wrappers=YES                     #表示该服务支持tcp_wrappers

pam_service_name=vsftpd           #PAM认证所用文件

ssl_enable=YES                          #应用SSL加密数据传输

ssl_tlsv1=YES                             #使用SSL的类型

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem                  #授权FTP服务证书的存放路径

rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key       #FTP服务器的私钥存放路径

force_anon_login_ssl=YES                                    #匿名用户登入时使用SSL

force_anon_date_ssl=YES                                    #匿名用户进行数据传送时进行SSl加密

若开启selinux的功能,需要打开allow_ftpd_anon_write功能,同时为共享目录打上public_content_rw_t的标签,其命令为:`getbool -a | grep ftp` ;  `setsebool -P allow_ftpd_anon_write on`  ;   `chcon -t public_content_rw_t incoming/`。

FTP使用虚拟用户

1.建立虚拟FTP用户的帐号数据库文件(单行使用户账号,双行是上一行的密码)

  vim /etc/vsftpd/vusers.txt

   wendy

   123456

   sandy

   456

  cd /etc/vsftpd/

  db_load -T -t hash -f vusers.txt   vusers.db

  file vusers.db

  vusers.db: Berkeley DB (Hash, version 8, native byte-order)

  chown 600 /etc/vsftpd/vusers.*

2.创建FTP根目录及虚拟用户映射的系统用户

  useradd -d /var/ftproot -s /sbin/nologin vsftp

3.建立支持虚拟用户的PAM认证文件

   vim /etc/pam.d/ftp

   auth         required     pam_userdb.so db=/etc/vsftpd/vusers

   account    required     pam_userdb.so db=/etc/vsftpd/vusers

4.在vsftpd.conf文件中添加支持配置

   vim  /etc/vsftpd/vsftpd.conf

   guest_enable=YES

   guest_username=vsftp

   pam_service_name=ftp

5.为个别虚拟用户建立独立的配置文件

  vim /etc/vsftpd/vsftpd.conf

  user_config_dir=/etc/vsftpd/vusers_dir

  mkdir /etc/vsftpd/users

  cd /etc/vsftpd/users

  vim  wendy

  anon_upload_enable=YES      

  anon_other_write_enable=YES    

  anon_mkdir_write_enable=YES

  cp wendy sandy

  vim sandy

  anon_upload_enable=NO    

  anon_other_write_enable=NO    

  anon_mkdir_write_enable=NO

6.重新加载vsftpd配置

  service vsftpd restart

7.使用虚拟FTP账户访问测试wendy用户可以登录,并可以浏览、下载文件,可以上传jsandy用户可以登录,并可以浏览,但不可以下载文件,也不可以上传

                                                              NFS

/etc/exports文件列举出通过NFS导出的文件系统,以及可以访问每个文件系统的客户机。客户机列表和文件系统之间以空白分隔,每个客户机之后紧跟着用括号括起来,以逗号分隔的一系列选项。

/etc/exports文件的客户机说明

1.)主机名       hostname          单个主机

2.)网络组       @groupname        NIS网络组

3.)通配符       *和?              具有通配符的FQDN,“*”不匹配点号"."

4.)IP网络       ipaddr/mask       CIDR风格,长格式可作为匹配

/etc/exports的常用导出选项

rw,ro                        以读写的方式导出(默认方式)以只读的方式导出 

sync                         同步写入,直接写入硬盘

async                        让服务器在实际写磁盘之前就先回应写请求

root_squash                  将UID0和GID0映射成anonuid和anongid所指定的值             

no_root_squash             

all_squash                   将所用的UID和GID映射到它们各自的匿名版本上

showmount   -e   hostname    打印出hostname主机的共享文件系统

exports     -a               导出所有的文件系统

exports     -r               重新输出所有文件系统

exports     -v               打印出文件系统的详细信息

exports     -u               指定卸载的文件系统        

NFS共享时的注意事项

1.)包含服务器的配置文件不要导出

2.)导出整个文件系统,最好不是目录

3.)不要使用no_root_squash的方式导出文件系统

4.)使用crossmnt和nohide时要慎用

                                                   Samba  服务器

/etc/samba/smb.conf

[globe]                        全局设置

workgroup                  工作组的名称,注意主机群要相同

server string                主机的简易说明

security                       表示服务器的安全级别有user,Server,domain,share4个设置值

passdb backend           samba有单独的文件存放账号的密码

load printers                共享打印机

cups options                打印机选项

[homes]                      用户家目录共享设置

comment                    对这个目录的说明

browseable                 此共享只能有属主能看到

writeable                    设置是否可以写入

[printers]                    打印机共享设置

comment                    对打印机做简单描述

path                           共享打印机的路径

browseable                此共享打印机只能有属主能看到

guest ok                    设置是否让所有可以登入的用户看到此打印机  

valid users                 设置哪些用户可访问此资源         

printable                    是否为打印资源

[分享名称]              自定义名称共享目录设置

comment                   对此目录的说明

path                          共享目录的路径

public                        设置是否让所有可以登入的用户看到此目录

writeable                   设置是否可以写入

write list                    定义一定范围的用户具有写权限

printable                    是否是打印资源

定义samba的密码

useradd redhat

smbpasswd  -a redhat

查看,上传,下载共享资源

smbclient -L  192.168.0.29

smbclient //192.168.0.29/shared -U redhat

挂载samba共享资源

mount -t cifs service mountpoint -o option1,option2

若开启了Selinux服务需要给共享目录打上smaba_share_t的标签:`chcon -t smaba_share_t /shared -R`,这样就可以正常使用smaba服务器提供的共享服务。

继续阅读