公司需要配置一台备份服务器,用于日常各数据库、服务器、公司员工进行数据备份。各备份账号需要有一定的权限配置和限额配置的功能,网上查了一下资料,决定使用samba服务实现。下面就简单粗暴的记录一下,以便日后使用,详细的说明就不再列出了,有需要再自己百度吧。采购两块4T的硬盘,插上服务器,配置raid1,添加虚拟机,开工!
1、安装centos 7.4,最小化安装,具体步骤略。
2、添加共享专用卷,这里使用LVM卷,以方便日后的扩容调整
2.1、分区
2T以下可以用fdisk分区,注意创建后要调整为LVM分区,具体步骤略。
2T以上要用parted命令进行分区:
parted /dev/sdb
mklabel gpt
mkpart primary 0% 100%
toggle 1 LVM
q
使分区生效:
partprobe
2.2、创建LVM卷
创建LVM卷:
pvcreate /dev/sdb1
vgcreate share /dev/sdb1
lvcreate -l 100%VG -n lvmShare share
格式化为xfs 然后挂载:
mkfs.xfs /dev/share/lvmShare
mount /dev/share/lvmShare /data
默认开机挂载,如需要磁盘配额,要加上usrquota,grpquota
vi /etc/fstab
/dev/share/lvmShare /data xfs defaults,usrquota,grpquota 1 1
2.3、如需调整LVM分区大小
先分区,创建后调整为LVM分区,再用下面的三个命令进行无损扩容:
vgextend lvextend xfs_growfs
如果只是单纯的调整了磁盘分区大小,比如删除了一些分区或在虚拟机的环境中扩容了磁盘,那就用这几个命令,调整分区大小-调整PV大小-调整LV大小,这样也是无损扩容的:
parted pvresize lvresize xfs_growfs
3、安装和配置相关服务
3.1、安装samba
yum install samba -y
修改配置文件
/etc/samba/smb.conf
security = user
ntlm auth = yes
create mask = 666
directory mask = 777
如需在windows下使用机器名称访问就添加以下两行
netbios name = server-share
workgroup = workgroup
调整密码保存方式,以方便后面的用户修改密码
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
保存后开启所需的防火墙端口
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
要用机器名访问就要把这两个也开了
firewall-cmd --permanent --add-port=137/udp
firewall-cmd --permanent --add-port=138/udp
服务开机启动
systemctl enable smb
要用机器名访问就要把nmb也开了
systemctl enable nmb
3.2、安装webmin,以使用gui界面进行服务器配置
安装依赖包
yum install wget -y
yum install perl -y
yum install perl-Digest-MD5 -y
下载并安装
wget https://prdownloads.sourceforge.net/webadmin/webmin-1.890.tar.gz
tar -zvxf webmin-1.890.tar.gz
cd webmin-1.890
./setup.sh
firewall-cmd --permanent --add-port=10000/tcp
配置开机启动webmin
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
/etc/webmin/start
关闭selinux
vi /etc/selinux/config
SELINUX=disabled
重启一下
reboot
3.3、使用webmin进行相关配置
1、服务器-samba中,把用户同步和组同步功能开启 ,这样创建用户时就不用两边创建了。
2、在系统 users and groups 创建用户和组,用户创建时shell选择nologin。
3、服务器 samba 创建目录时,权限要用777。
4、在共享目录的口令和访问控制下配置用户权限
组目录 组成员只读,指定人员可读写。重新验证 是,有效组 ,读写用户。
用户目录 指定用户可读写。可写入 是,重新验证 是,有效用户。
5、共享目录配置完后,需要改中文共享名,可以通过修改配置文件实现。
6、想隐藏掉没权限的目录,配置文件添加,让用户和组使用独立的配置文件,
在[global]下添加
include = /etc/samba/%U.smb.conf
include = /etc/samba/%G.smb.conf
在根据用户的权限,在独立配置文件中的共享目录中,需要隐藏的目录添加配置
browseable = no
使用独立配置文件后,在winmin配置只会修改主配置文件,所以应该都配置好后,再来调整这个独立配置
用户和组的独立配置是会同时生效的,如果每个用户都要独立配置的话,就没必要组独立配置了。
7、Windows添加凭证,控制面板-用户账户-凭据管理,可以管理已经保存的凭据。
测试时,samba主页,查看所有的连接,断开
windows net use * /del /y
3.4、配置自助修改密码工具changepassword
1、安装依赖包
yum install gcc -y
yum install httpd -y
2、下载解压:
wget http://prdownloads.sourceforge.net/changepassword/changepassword-0.9.tar.gz
tar -zxvf changepassword-0.9.tar.gz
cd changepassword-0.9
2.编译changepassword前需要安装一个依赖包
cd smbencrypt/
tar -xzvf libdes-4.04b.tar.gz
cd des/
make
cp libdes.a ../
cd ../..
3、调整配置
修改conf.h头文件,设置软件修改密码使用的临时目录(默认是/tmp,但是怎么用都用不了,网上找资料说要修改一下)
将前三行的定义修改为自己创建的目录(这里将/tmp修改到了/var/smbchangepwd目录下)
char TMPFILE[]=”/var/smbchangepwd/changepassword-shadow-XXXXXX”;
char TMPSMBFILE[]=”/var/smbchangepwd/changepassword-smb-XXXXXX”;
char TMPSQUIDFILE[]=”/var/smbchangepwd/changepassword-squid-XXXXXX”;
创建目录(/var/smbchangepwd)并修改为777权限。
4、编译安装changepassword
这里注意logo文件要放在/var/www/html下,
./configure -enable-cgidir=/var/www/cgi-bin/samba -enable-language=Chinese -enable-smbpasswd=/etc/samba/smbpasswd -disable-squidpasswd -enable-logo=logo.jpg
make && make install
5、配置httpd
修改/etc/httpd/conf/httpd.conf
去掉注释
AddHandler cgi-script .cgi
字符集调整为gbk
AddDefaultCharset GBK
systemctl enable httpd
systemctl restart httpd
firewall-cmd --permanent --add-port=80/tcp
systemctl restart firewalld
6、添加跳转文件
新建文件/var/www/html/index.html
内容:
<head>
<meta http-equiv="refresh" content="0;url=/cgi-bin/samba/changepassword.cgi">
</head>
7、到这里配置就完成了,直接在浏览器中访问ip地址就能打开修改密码的页面了。
3.5、磁盘配额配置
安装包 yum install quota -y
在webmin-未使用的模块-Disk Quota下,就可以配置用户或组的Soft kilobyte limit和Hard kilobyte limit。这两个可以配置一样大,或者硬限额稍微比软限额配大一点。
建议在创建用户和组之前先在这里配置好新用户的默认配额,这样就不用再一个个用户来改了。
配置完成,以后只需要各台服务器做个映射驱动器,直接备份到共享服务器上,再定期用对共享服务器的共享硬盘做备份就OK了,收工!