FTP&samba 服务简单部署

Posted 惨绿少年@clsn.io

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP&samba 服务简单部署相关的知识,希望对你有一定的参考价值。

第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网络通讯协议的软件,而SMBServer Message Block的缩写,即为服务器消息块SMB主要是作为Microsoft的网络通讯协议,后来SambaSMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFSCommon Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

  Samba最大的功能就是可以用于Linuxwindows系统直接的文件共享和打印共享Samba既可以用于windowsLinux之间的文件共享,也可以用于LinuxLinux之间的资源共享,由于NFS(网络文件系统)可以很好的完成LinuxLinux之间的数据共享,因而 Samba较多的用在了Linuxwindows之间的数据共享上面。

  SMB基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。

Sambawindows下使用的是NetBios协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议

  组成Samba运行的有两个服务,一个是SMB,另一个是NMBSMBSamba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137138 UDP端口。

  例如,某台Samba服务器的IP地址为10.0.0.163,对应的工作组名称为davidsamba,那么在WindowsIE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。

 

  \\\\10.0.0.163\\共享目录名称

 

  \\\\davidsamba\\共享目录名称

 

  Samba服务器可实现如下功能:WINSDNS服务; 网络浏览服务; LinuxWindows域之间的认证和授权; 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 第四个里程碑: 启动smbnmb服务,加入开机启动

[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

至此samba服务配置完成。

 

以上是关于FTP&samba 服务简单部署的主要内容,如果未能解决你的问题,请参考以下文章

Centos 部署文件服务系统,使用Samba和FTP协议传输

Centos 部署文件服务系统,使用Samba和FTP协议传输

Samba服务和FTP服务

Linux下部署Samba服务环境的操作记录

SAMBA服务和FTP服务讲解

简单快速部署samba服务器