共计 8397 个字符,预计需要花费 21 分钟才能阅读完成。
第 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 第一个里程碑: 检查是否有这个软件,(没有则安装软件)
[root@test ~]# rpm -qa vsftpd
在 CentOS 下默认没有安装 vsftpd 这个 FTP 程序
我们通过 yum install vsfptd 来进行安装
[root@test ~]# yum install vsftpd
说明:
服务的启动配置文件
/etc/rc.d/init.d/vsftpd
安装完之后在 /etc/vsftpd/ 路径下会存在三个配置文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/ftpusers 指定 哪些用户不能访问 FTP 服务器 , 这里的用户包括 root 在内的用户。
/etc/vsftpd/user_list 指定的用户是否可以访问 ftp 服务器。
通过 vsftpd.conf 文件中的 userlist_deny 的配置来决定配置中的用户是否可以访问,
userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list
这三个配置允许文件中的用户访问FTP。
1.1.2 第二个里程碑: 编写配置文件
ftp服务有默认的配置文件,将原配置文件备份,重新编写配置文件
[root@test ftp]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@test ~]# cat /etc/vsftpd/vsftpd.conf
#20171014
#HZS
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
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 作为主机访问控制方式 |
其他的配置参数说明:
ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断 ( 秒)
data_connection_timeout=120 :设置客户机在进行数据传输时 , 设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
anon_max_rate=30000匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为 0 表示任意端口 ; 为客户端连接指明端口;
listen_address=IP地址 设置 ftp 服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置 FTP 工作的端口号,默认的为21
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录 , 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录 ( 所有 ); 锁定后,用户只能访问用户的主目录/home/user;
chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户允许登录;
userlist_file=/etc/vsftpd/user_list 指定列表文件
注意:
在这里要禁止匿名登陆anonymous_enable=NO
1.1.3 第三个里程碑:创建用于 FTP 连接用户,设置密码
[root@test ~]# useradd ftpuser -s /sbin/nologin -M
[root@test ~]# echo "ftpuser" |passwd --stdin ftpuser
Changing password for user ftpuser.
passwd: all authentication tokens updated successfully
1.1.4 第四个里程碑: 创建 ftp 共享目录,将目录所有者属于 ftpuser,将 ftpuser 用户家目录修改为共享目录。
[root@test ~]# mkdir /ftpshare
[root@test ~]# chown ftpuser.ftpuser /ftpshare
[root@test ~]# usermod ftpuser -d /ftpshare
检查配置是否正确:
[root@test ~]# ll /ftpshare/ -d
drwxr-xr-x 2 ftpuser ftpuser 4096 Oct 14 10:48 /ftpshare/
[root@test ~]# tail -1 /etc/passwd
ftpuser:x:501:501::/ftpshare:/sbin/nologin
1.1.5 第五个里程碑: 启动 vsftpd 服务,并设置开机自启动
[root@test ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [OK]
[root@test bin]# chkconfig vsftpd on
[root@test bin]# chkconfig |grep vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
1.2 客户端链接测试
第一步:打开 windows 上资源管理器
在地址栏中是输入服务器地址,注意 ftp 格式
ftp://10.0.0.250
确定,输入用户名,和密码进行登陆。
1.2.1 下载文件测试
1.2.2 上传文件测试
1.2.3 服务端检查
[root@test ftpshare]# ll
total 7072
-rw-r--r-- 1 ftpuser ftpuser 7234678 Oct 14 11:13 cwRsync.zip
-rw-r--r-- 1 root root 60 Oct 14 11:05 访问正常.txt
1.3 Linux系统挂载 ftp 测试
[root@test ~]# mount -t nfs -o rw 10.0.0.250:/ftpshare/ /opt/
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 10% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
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 软件)
[root@test ~]# rpm -qa samba
安装 samba 服务
[root@test ~]# yum install samba -y
Dependency Installed:
libtalloc.x86_64 0:2.1.5-1.el6_7
libtdb.x86_64 0:1.3.8-3.el6_8.2
libtevent.x86_64 0:0.9.26-2.el6_7
samba-common.x86_64 0:3.6.23-45.el6_9
samba-winbind.x86_64 0:3.6.23-45.el6_9
samba-winbind-clients.x86_64 0:3.6.23-45.el6_9
2.2.2 第二个里程碑: 编写配置文件
samba服务默认配置文件位置为 /etc/samba/smb.conf 备份该文件,重新写配置文件
[root@test ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
配置文件内容:
[root@test ~]# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
netbios name = Test_samba
server string = Linux Samba Server TestServer
security = share
[test]
path = /share_samba
writeable = yes
browseable = yes
guest ok = yes
~
"/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 第三个里程碑: 创建共享目录,修改权限
[root@test ~]# mkdir -p /share_samba
[root@test ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@test ~]# chown nobody.nobody /share_samba -R
说明:
关于授权 nobody,我们先用id 命令查看了 nobody 用户的信息,发现他的用户组也是 nobody,我们要以这个为准。有些系统nobody 用户组并非是nobody 。
2.2.4 第四个里程碑: 启动 smb 和nmb服务,加入开机启动
[root@test ~]# /etc/init.d/smb start
Starting SMB services: [OK]
[root@test ~]# chkconfig smb on
[root@test ~]# chkconfig |grep smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
说明:
由于未涉及域名解析,所以不启动 nmb 服务也可以访问
2.3 windows客户端测试
2.3.1 windows上添加网络位置(samba共享的文件夹)
打开资源管理器,右键单击,选择“添加网络位置”
输入 samba 服务器的地址
格式: \\samba服务器地址 \ 共享目录名称
说明 : 共享目录名称 为设置的局部变量名,我设置的为[test]。
点击下一步,设置显示的名称【可以选择默认】
至此 samba 共享的文件夹在 winndows 上添加上了 。
2.3.2 对共享文件夹进行测试
上传测试
[root@test share_samba]# pwd
/share_samba
[root@test share_samba]# tree
├── test.zip
└── samba sever.txt
下载文件测试
2.4 在 cento 6.9 上测试说明 samba 共享
安装 samba 客户端
[root@test ftp]# yum install samba-client
[root@test ~]# smbclient //172.16.1.250/test
WARNING: The security=share option is deprecated
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
Server not using user level security and no password supplied.
smb: \> ls
. D 0 Sat Oct 14 14:38:47 2017
.. DR 0 Sat Oct 14 13:49:02 2017
samba sever.txt A 60 Sat Oct 14 03:05:00 2017
RedHat-release 27 Sat Oct 14 14:49:16 2017
test.zip A 7234678 Sat Oct 14 11:08:50 2017
38152 blocks of size 524288. 32854 blocks available
挂载方式
[root@test ~]# mount.tmpfs //10.0.0.250/test/ /mnt/
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 10% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
//10.0.0.250/test/ 238M 0 238M 0% /mnt
2.5 至此 samba 服务配置完成。
使用的系统版本为: CentOS Linux release 7.4.1708 (Core) 内核版本为:3.10.0-693.el7.x86_64
CentOS 7.2 安装配置 Samba 服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm
Ubuntu 15.04 安装 Samba 服务 http://www.linuxidc.com/Linux/2016-03/129201.htm
samba 安装使用图解 http://www.linuxidc.com/Linux/2017-03/141254.htm
CentOS7.2 下源码搭建 Samba 文件服务器[原创] http://www.linuxidc.com/Linux/2017-06/144557.htm
CentOS 7.2 安装配置 Samba 服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
CentOS 部署 Samba 企业文件共享服务 http://www.linuxidc.com/Linux/2016-06/132609.htm
Samba 共享服务器的搭建优化 http://www.linuxidc.com/Linux/2017-03/141700.htm
如何在 Ubuntu 16.04 上安装和配置 Samba 服务器以进行文件共享 http://www.linuxidc.com/Linux/2017-11/148194.htm
CentOS 6.7 下 Samba 服务器的搭建与配置(share 共享模式)http://www.linuxidc.com/Linux/2016-12/138220.htm
Ubuntu 16.04 下 Samba 相关配置 http://www.linuxidc.com/Linux/2016-12/138498.htm
Red Hat 6.5 下 Samba 服务器搭建 http://www.linuxidc.com/Linux/2017-07/145747.htm
CentOS 7 下 Samba 服务安装与配置详解 http://www.linuxidc.com/Linux/2017-11/148354.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148842.htm