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

Posted 666小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 搭建文件服务系统,使用Samba和FTP协议传输相关的知识,希望对你有一定的参考价值。

文章目录

Samba的搭建

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

安装

yum install -y samba

关闭selinux

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 
Permissive

修改配置文件

在根目录下创建file文件夹,并给予775权限,然后修改配置文件 /etc/samba/smb.conf
从samba 4.5开始,ntlm auth参数默认值由“yes”变为“no”。导致默认情况下使用NTLM级别LAN Manager身份验证的客户端不允许登录Samba服务器,受影响的客户端包括Windows 7、Windows XP、Windows2003等。

[global]
	# 工作组
   workgroup = WORKGROUP
    # 认证模式:用户验证
   security = user
    # 日记登记:2
   log level=2
   	# 使用NTLM级别LAN Manager身份验证
   ntlm auth = yes
[file]
	# 介绍
   comment = file
   	# 文件目录
   path = /file
   	# 公开
   public = yes
   	# 允许写入
   writable = yes
   	# 浏览页面可见
   browseable = yes
   	# 授权用户
   valid users = smbadmin
   	# 文件权限
   directory mask = 0775
   	# 目录权限
   create mask = 0775

添加用户

新建用户:useradd smbadmin
设置密码:passwd smbadmin ,设置成123456
添加用户到samba用户:pdbedit -a -u smbadmin 之后输入两遍密码

pdbedit 命令说明

pdbedit 命令用于管理Samba服务的帐户信息数据库,格式为:"pdbedit [选项] 帐户"
第一次把用户信息写入到数据库时需要使用-a参数,以后修改用户密码、删除用户等等操作就不再需要了。
 
pdbedit -L :查看samba用户
pdbedit -a -u user:添加samba用户
pdbedit -r -u user:修改samba用户信息
pdbedit -x -u user:删除samba用户

启动Samba服务

systemctl start smb
systemctl enable smb
systemctl status smb

端口放行

iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT
service iptables save  #保存

测试连接

在windows上查看samba共享目录

FTP的搭建

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP

安装

yum -y install vsftpd

修改配置文件

修改配置文件 /etc/vsftpd/vsftpd.conf

#是否允许匿名,默认no
anonymous_enable=NO

#这个设定值必须要为YES 时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES

#具有写权限
write_enable=YES

#本地用户创建文件或目录的掩码
local_umask=775

#当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息!您也可以设定其它档名!
dirmessage_enable=YES

#开启20端口
connect_from_port_20=YES

#关于系统安全的设定值:
#ascii_download_enable=YES(NO)
#如果设定为YES ,那么 client 就可以使用 ASCII 格式下载档案。
#一般来说,由于启动了这个设定项目可能会导致DoS 的攻击,因此预设是NO。
#ascii_upload_enable=YES(NO)
#与上一个设定类似的,只是这个设定针对上传而言!预设是NO。
ascii_upload_enable=NO
ascii_download_enable=NO
#通过搭配能实现以下几种效果: 
#①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 
#②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 
#③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 
#④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd
pam_service_name=vsftpd

#当然我们都习惯支持TCP Wrappers的啦!
tcp_wrappers=YES

#不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES

#ftp的端口号
listen_port=60021
#启动被动式联机(passivemode)
pasv_enable=YES
#上面两个是与passive mode 使用的 port number 有关,如果您想要使用65400到65410 这 11 个 port 来进行被动式资料的连接,可以这样设定
pasv_min_port=65400
pasv_max_port=65410

#FTP访问目录
local_root=/file/

启动vsftpd服务

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

端口放行

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
service iptables save  #保存

测试连接

在windows上使用 ftp://192.168.67.142/ 可以连接成功,如果需要登录验证,可以使用smbadmin用户。

参考文档:
CentOS7中Samba环境搭建实录
samba对外开放的端口
Centos7安装搭建FTP服务器(最简便方法)

以上是关于Centos 搭建文件服务系统,使用Samba和FTP协议传输的主要内容,如果未能解决你的问题,请参考以下文章

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

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

虚拟机CentOS6.5搭建samba服务器实现文件共享

Centos7.3搭建samba服务器,和windows共享文件

Centos搭建Samba

centos7搭建samba服务器