1、FTP服务部署

在Linux下,我们应用最广泛的FTP服务程序是 vsftpd (Very Secure FTP Daemon),从名字我们也可以看出,其提供了非常安全的FTP服务。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。
例如:

① 非常高的安全性需求  
②带宽限制  
③创建虚拟用户的可能性  
④高速  

可以说 vsftpd 给我们提供了一个快速的、稳定的且相当安全的FTP服务

1.1 服务端配置

1.1.1 第一个里程碑: 检查是否有这个软件,(没有则安装软件)

  1. [root@test ~]# rpm -qa vsftpd # 在CentOS下默认没有安装 vsftpd 这个FTP程序

我们通过 yum install vsfptd 来进行安装

  1. [root@test ~]# yum install vsftpd

说明:
服务的启动配置文件

  1. /etc/rc.d/init.d/vsftpd

安装完之后在/etc/vsftpd/路径下会存在三个配置文件

  1. /etc/vsftpd/vsftpd.conf 主配置文件
  2. /etc/vsftpd/ftpusers 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的用户。
  3. /etc/vsftpd/user_list 指定的用户是否可以访问ftp服务器。
  4. 通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,
  5. userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
  6. 这三个配置允许文件中的用户访问FTP

1.1.2 第二个里程碑: 编写配置文件

ftp服务有默认的配置文件,将原配置文件备份,重新编写配置文件

  1. [root@test ftp]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  2. [root@test ~]# cat /etc/vsftpd/vsftpd.conf
  3. #20171014
  4. #HZS
  5. anonymous_enable=NO
  6. local_enable=YES
  7. write_enable=YES
  8. local_umask=022
  9. dirmessage_enable=YES
  10. xferlog_enable=YES
  11. connect_from_port_20=YES
  12. xferlog_std_format=YES
  13. listen=YES
  14. pam_service_name=vsftpd
  15. userlist_enable=YES
  16. tcp_wrappers=YES

默认配置文件说明:

参数 说明
anonymous_enable=YES 允许匿名用户
local_enable=YES 允许使用本地用户账号登陆
write_enable=YES 允许ftp用户写数据
connect_from_port_20=YES 通过20端口传输数据
#anon_mkdir_write_enable=YES 是否允许匿名账户在FTP服务器中创建目录
xferlog_enable=YES 启用上传和下载日志功能
#ascii_download_enable=YES 是否允许使用ASCII格式来上传和下载文件
pam_service_name=vsftpd /设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=YES 用户列表中的用户是否允许登录FTP服务器,默认是不允许
tcp_wrappers=YES /使用tcp_wrqppers作为主机访问控制方式

其他的配置参数说明:

  1. ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
  2. idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
  3. data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
  4. accept_timeout=60 设置在多长时间后自动建立连接
  5. connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
  6. max_clients=200 指明服务器总的客户并发连接数为200
  7. max_per_ip=3 指明每个客户机的最大连接数为3
  8. local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
  9. anon_max_rate=30000匿名用户的最大传输速率限制
  10. pasv_min_port=端口
  11. pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
  12. listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
  13. listen_port=端口号 设置FTP工作的端口号,默认的为21
  14. local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
  15. chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
  16. chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
  17. chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
  18. userlist_enable=YES/NO 是否加载用户列表文件;
  19. userlist_deny=YES 表示上面所加载的用户允许登录;
  20. userlist_file=/etc/vsftpd/user_list 指定列表文件

注意:
在这里要禁止匿名登陆anonymous_enable=NO

1.1.3 第三个里程碑:创建用于FTP连接用户,设置密码

  1. [root@test ~]# useradd ftpuser -s /sbin/nologin -M
  2. [root@test ~]# echo "ftpuser" |passwd --stdin ftpuser
  3. Changing password for user ftpuser.
  4. passwd: all authentication tokens updated successfully

1.1.4 第四个里程碑: 创建ftp共享目录,将目录所有者属于ftpuser,将 ftpuser用户家目录修改为共享目录。

  1. [root@test ~]# mkdir /ftpshare
  2. [root@test ~]# chown ftpuser.ftpuser /ftpshare
  3. [root@test ~]# usermod ftpuser -d /ftpshare

检查配置是否正确:

  1. [root@test ~]# ll /ftpshare/ -d
  2. drwxr-xr-x 2 ftpuser ftpuser 4096 Oct 14 10:48 /ftpshare/
  3. [root@test ~]# tail -1 /etc/passwd
  4. ftpuser:x:501:501::/ftpshare:/sbin/nologin

1.1.5 第五个里程碑: 启动vsftpd 服务,并设置开机自启动

  1. [root@test ~]# /etc/init.d/vsftpd start
  2. Starting vsftpd for vsftpd: [ OK ]
  3. [root@test bin]# chkconfig vsftpd on
  4. [root@test bin]# chkconfig |grep vsftpd
  5. vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

1.2 客户端链接测试

第一步:打开windows上资源管理器
在地址栏中是输入服务器地址,注意ftp格式

  1. ftp://10.0.0.250

确定,输入用户名,和密码进行登陆。
FTP&samba 服务简单部署 - 图1 FTP&samba 服务简单部署 - 图2

1.2.1 下载文件测试

FTP&samba 服务简单部署 - 图3

1.2.2 上传文件测试

FTP&samba 服务简单部署 - 图4

1.2.3 服务端检查

  1. [root@test ftpshare]# ll
  2. total 7072
  3. -rw-r--r-- 1 ftpuser ftpuser 7234678 Oct 14 11:13 cwRsync.zip
  4. -rw-r--r-- 1 root root 60 Oct 14 11:05 访问正常.txt

1.3 linux系统挂载ftp测试

  1. [root@test ~]# mount -t nfs -o rw 10.0.0.250:/ftpshare/ /opt/
  2. [root@test ~]# df -h
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/sda3 19G 1.7G 17G 10% /
  5. tmpfs 238M 0 238M 0% /dev/shm
  6. /dev/sda1 190M 40M 141M 22% /boot
  7. 10.0.0.250:/ftpshare/ 19G 1.7G 17G 10% /opt

2、samba服务配置

2.1 samba服务简介

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
  例如,某台Samba服务器的IP地址为10.0.0.163,对应的工作组名称为davidsamba,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。>   \10.0.0.163\共享目录名称

  \davidsamba\共享目录名称


Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。

2.2 samba服务端部署

2.2.1 第一个里程碑: 检查软件是否安装(安装samba软件)

  1. [root@test ~]# rpm -qa samba

安装samba服务

  1. [root@test ~]# yum install samba -y
  2. Dependency Installed:
  3. libtalloc.x86_64 0:2.1.5-1.el6_7
  4. libtdb.x86_64 0:1.3.8-3.el6_8.2
  5. libtevent.x86_64 0:0.9.26-2.el6_7
  6. samba-common.x86_64 0:3.6.23-45.el6_9
  7. samba-winbind.x86_64 0:3.6.23-45.el6_9
  8. samba-winbind-clients.x86_64 0:3.6.23-45.el6_9

2.2.2 第二个里程碑: 编写配置文件

samba服务默认配置文件位置为/etc/samba/smb.conf 备份该文件,重新写配置文件

  1. [root@test ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

配置文件内容:

  1. [root@test ~]# vim /etc/samba/smb.conf
  2. [global]
  3. workgroup = WORKGROUP
  4. netbios name = Test_samba
  5. server string = Linux Samba Server TestServer
  6. security = share
  7. [test]
  8. path = /share_samba
  9. writeable = yes
  10. browseable = yes
  11. guest ok = yes
  12. ~
  13. "/etc/samba/smb.conf" 11L, 189C written

配置文件参数说明:

参数 说明
[global] 这段是全局配置,是必段写的。
workgroup 就是Windows中显示的工作组
netbios name 就是在Windows中显示出来的计算机名
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的
security 这是验证和登录方式,这里我们用了share
用share,就是不用设置用户和密码了
[test] 这个在Windows中显示出来是共享的目录
path 可以设置要共享的目录放在哪里
writeable 是否可写,这里我设置为可写
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
guest ok 匿名用户以guest身份是登录

2.2.3 第三个里程碑: 创建共享目录,修改权限

  1. [root@test ~]# mkdir -p /share_samba
  2. [root@test ~]# id nobody
  3. uid=99(nobody) gid=99(nobody) groups=99(nobody)
  4. [root@test ~]# chown nobody.nobody /share_samba -R

说明:
关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody 。

2.2.4 第四个里程碑: 启动smb和nmb服务,加入开机启动

  1. [root@test ~]# /etc/init.d/smb start
  2. Starting SMB services: [ OK ]
  3. [root@test ~]# chkconfig smb on
  4. [root@test ~]# chkconfig |grep smb
  5. smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

说明:
由于未涉及域名解析,所以不启动nmb服务也可以访问

2.3 windows客户端测试

2.3.1 windows上添加网络位置(samba共享的文件夹)

打开资源管理器,右键单击,选择“添加网络位置”
FTP&samba 服务简单部署 - 图5

输入 samba服务器的地址 格式: \samba服务器地址\共享目录名称 说明:共享目录名称 为设置的局部变量名,我设置的为[test]。

FTP&samba 服务简单部署 - 图6
点击下一步,设置显示的名称【可以选择默认】
FTP&samba 服务简单部署 - 图7
至此samba共享的文件夹在winndows上添加上了 。
FTP&samba 服务简单部署 - 图8

2.3.2 对共享文件夹进行测试

上传测试
FTP&samba 服务简单部署 - 图9

[root@test share_samba]# pwd /share_samba [root@test share_samba]# tree ├── test.zip └── samba sever.txt

下载文件测试
FTP&samba 服务简单部署 - 图10

2.4 在cento 6.9上测试说明samba共享

安装samba客户端

  1. [root@test ftp]# yum install samba-client
  1. [root@test ~]# smbclient //172.16.1.250/test
  2. WARNING: The security=share option is deprecated
  3. Enter root's password:
  4. Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
  5. Server not using user level security and no password supplied.
  6. smb: \> ls
  7. . D 0 Sat Oct 14 14:38:47 2017
  8. .. DR 0 Sat Oct 14 13:49:02 2017
  9. samba sever.txt A 60 Sat Oct 14 03:05:00 2017
  10. redhat-release 27 Sat Oct 14 14:49:16 2017
  11. test.zip A 7234678 Sat Oct 14 11:08:50 2017
  12. 38152 blocks of size 524288. 32854 blocks available

挂载方式

  1. [root@test ~]# mount.tmpfs //10.0.0.250/test/ /mnt/
  2. [root@test ~]# df -h
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/sda3 19G 1.7G 17G 10% /
  5. tmpfs 238M 0 238M 0% /dev/shm
  6. /dev/sda1 190M 40M 141M 22% /boot
  7. //10.0.0.250/test/ 238M 0 238M 0% /mnt

至此samba服务配置完成。