测试环境:VBR v11.0.0.837 P20210525、CeotOS8.4.2105,且假设硬盘大于2TB。
一、创建文件系统
[root@CentOS05 ~]# lsblk #检查Linux系统底层是否识别到新增磁盘,新增磁盘为/dev/sdb,假设空间大于2TB
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 14.4G 0 part
├─cl-root 253:0 0 12.8G 0 lvm /
└─cl-swap 253:1 0 1.6G 0 lvm [swap]
sdb 8:16 0 5G 0 disk
sdc 8:32 0 2G 0 disk
sr0 11:0 1 1024M 0 rom
[root@CentOS05 ~]# parted /dev/sdb mklabel gpt #把/dev/sdb格式化成gpt格式
信息: You may need to update /etc/fstab.
[root@CentOS05 ~]# parted /dev/sdb mkpart primary 1 100% #创建主分区1的全部可用空间
信息: You may need to update /etc/fstab.
[root@CentOS05 ~]# pvcreate /dev/sdb1 #创建pv物理卷
Physical volume "/dev/sdb1" successfully created.
[root@CentOS05 ~]# vgcreate vg_veeam /dev/sdb1 #创建名称为vg_veeam的卷组
Volume group "vg_veeam" successfully created
[root@CentOS05 ~]# lvcreate -l +100%free -n lv_veeam /dev/vg_veeam #创建名称为lg_veeam的逻辑卷,并分配全部可用空间
Logical volume "lv_veeam" created.
[root@CentOS05 ~]# mkfs.xfs -b size=4096 -m reflink=1,crc=1 /dev/mapper/vg_veeam-lv_veeam #格式化成xfs文件系统
meta-data=/dev/mapper/vg_veeam-lv_veeam isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
[root@CentOS05 ~]# mkdir /backups #创建挂载目录
[root@CentOS05 ~]# blkid |grep /dev/mapper/vg_veeam-lv_veeam #获取UUID
/dev/mapper/vg_veeam-lv_veeam: UUID="560bda46-a46b-4994-97ea-e824602397aa" BLOCK_SIZE="512" TYPE="xfs"
[root@CentOS05 ~]# echo 'UUID=XXXX /backups xfs defaults 0 0' | sudo tee -a /etc/fstab #把上一行的UUID替换此行的XXXX,实现开机自动挂载
UUID=560bda46-a46b-4994-97ea-e824602397aa /backups xfs defaults 0 0
[root@CentOS05 ~]# mount -a #自动挂载目录
[root@CentOS05 ~]# df -Th |grep /backups #检查挂载目录及空间大小
/dev/mapper/vg_veeam-lv_veeam xfs 5.0G 68M 5.0G 2% /backups
[root@CentOS05 ~]#
二、创建备份专用帐号
[root@CentOS05 ~]# useradd -m veeamrepo #创建备份专用帐号
[root@CentOS05 ~]# passwd veeamrepo #输入两次密码
Changing password for user veeamrepo.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@CentOS05 ~]# chown -R veeamrepo:veeamrepo /backups #赋予veeamrepo管理/backups挂载目录的权限
[root@CentOS05 ~]# chmod 700 /backups #修改/backups挂载目录的访问权限为root及veeamrepo账号
[root@CentOS05 ~]# ls -alh /backups #确认权限添加成功
total 0
drwxr-xr-x. 2 veeamrepo veeamrepo 6 Sep 28 23:23 .
dr-xr-xr-x. 18 root root 239 Sep 28 23:24 ..
[root@CentOS05 ~]# sed -i '$a veeamrepo ALL=(ALL:ALL) ALL' /etc/sudoers #临时赋予veeamrepo帐号的sudo权限
[root@CentOS05 ~]# cat /etc/sudoers #检查最后一行否添加成功
....此处省略其他信息输出,只输出最后几行。
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
veeamrepo ALL=(ALL:ALL) ALL
[root@CentOS05 ~]#
三、创建Hardened Repository
在VBR界面上使用新增Linux Hardened Repository向导添加备份空间,与传统操作一致。
1、添加veeamrepo帐号时的注意事项:
使用single-use credentials for hardened repository
添加新建的备份专用帐号veeamrepo,需要勾选Elevate account privileges automatically。
2、新建备份策略的注意事项:
勾选Use fast clone on XFS volumes,使用Fast Clone技术
勾选Make recent backups immutable for days,这是加固功能的开关
3、新建备份策略,选择上面新建的Linux Hardened Repository。
4、发起备份任务后,可在Linux系统上输入以下命令检查Veeam服务组件运行状态、以及网络端口的使用情况。
[root@CentOS05 ~]# ps -ef |grep veeam #检查veeam服务组件运行状态
veeamre+ 4201 1 0 09:58 ? 00:00:03 /opt/veeam/transport/veeamtransport --run-service
root 4205 4201 0 09:58 ? 00:00:00 /opt/veeam/transport/veeamtransport --run-environmentsvc 7:6
root 4214 4201 0 09:58 ? 00:00:01 /opt/veeam/transport/veeamimmureposvc --subprocess --stdio 9:7
veeamre+ 12608 4201 0 11:34 ? 00:00:00 veeamagent -g2500-3300 -i{6864f2b0-4c7c-4998-a640-b9f33a1b5a55} -lflush,/var/log/VeeamBackup/Backup__Job__4__CentOS01/Agent.LinuxFileCommander.log --setFileLimit=4096 --maxLogCount=10 --mgmtConnKey AQAAAAAAAAAjAAAATWFuYWdlciB0byBBZ2VudCBjaGFubmVsIGVuY3J5cHRpb24BAAAAAQAAAAAAAAAQdnBNLLvXAQIAAABKAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAABW89V2e4xTD3psXCcNVFQlG4bRgyuMROR0jiDth79xfsWjpiP2L+qzhdhk+WF9YlYQAAAAOf24Svp/GdHifuiOG6IKwg==
veeamre+ 12739 4201 0 11:35 ? 00:00:00 veeamagent -g2500-3300 -i{2e90367e-7041-4963-86f2-013253af039d} -lflush,/var/log/VeeamBackup/Backup__Job__4__CentOS01/Agent.Backup__Job__4__CentOS01.Target.log --setFileLimit=4096 --maxLogCount=10 --mgmtConnKey AQAAAAAAAAAjAAAATWFuYWdlciB0byBBZ2VudCBjaGFubmVsIGVuY3J5cHRpb24BAAAAAQAAAAAAAACgXytVLLvXAQIAAABKAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAABBHHUIh1qAX0OwmvFfs3paUE2c48tBDS/CipwGLG4C4CIpO9KxSooqgSlSGsmGEBcQAAAAaZCtjir8MoJfDHtEBvqHKw==
root 13154 1392 0 11:36 pts/0 00:00:00 grep --color=auto veeam
[root@CentOS05 ~]# firewall-cmd --list-ports #如果有开启firewall,检查网络端口的使用情况
6162/tcp 2500/tcp 2501/tcp
[root@CentOS05 ~]# netstat -ntlp |grep veeam #如果没有启用firewall,则可使用netstat命令
tcp 0 0 0.0.0.0:2500 0.0.0.0:* LISTEN 12608/veeamagent
tcp 0 0 0.0.0.0:2502 0.0.0.0:* LISTEN 12739/veeamagent
tcp 0 0 0.0.0.0:6162 0.0.0.0:* LISTEN 4201/veeamtransport
[root@CentOS05 ~]#
四,检查和测试备份文件
确保备份作业成功执行。进入Linux服务器的/backups挂载目录,检查vbk、vib备份文件,无须理会vbm文件。
[root@CentOS05 ~]# cd /backups/ #进入/bacukps挂载目录
[root@CentOS05 backups]# ls
'Backup Job 4_CentOS01'
[root@CentOS05 backups]# cd Backup\ Job\ 4_CentOS01/
[root@CentOS05 Backup Job 4_CentOS01]# lsattr #检查vbk、vib文件的带 i 状态,无须理会vbm文件
----i--------------- ./Backup Job 4_CentOS01D2021-10-07T110729_8B40.vbk
----i--------------- ./Backup Job 4_CentOS01D2021-10-07T113504_878C.vib
-------------------- ./Backup Job 4_CentOS01.vbm
[root@CentOS05 Backup Job 4_CentOS01]#
测试删除vbk、修改vib备份文件。注意:vbm文件可被删除、修改,但下次启动备份任务时,会自动生成新的vbm文件,即删除、修改vbm文件不影响后续的增量备份和恢复操作。
[root@CentOS05 Backup Job 4_CentOS01]# ll
总用量 2116684
-rw-r--r-- 1 veeamrepo veeamrepo 2165182464 10月 7 11:09 'Backup Job 4_CentOS01D2021-10-07T110729_8B40.vbk'
-rw-r--r-- 1 veeamrepo veeamrepo 2277376 10月 7 11:36 'Backup Job 4_CentOS01D2021-10-07T113504_878C.vib'
-rw-r--r-- 1 veeamrepo veeamrepo 21062 10月 7 11:37 'Backup Job 4_CentOS01.vbm'
[root@CentOS05 Backup Job 4_CentOS01]# rm -Rf *.vbk
rm: 无法删除'Backup Job 4_CentOS01D2021-10-07T110729_8B40.vbk': 不允许的操作
[root@CentOS05 Backup Job 4_CentOS01]# mv *.vib 123.abc
mv: 无法将'Backup Job 4_CentOS01D2021-10-07T113504_878C.vib' 移动至'123.abc': 不允许的操作
[root@CentOS05 Backup Job 4_CentOS01]#
在VBR界面里,测试删除备份文件。
五、对系统进行加固
1、在/etc/sudoers文件里,注释#veeamrepo ALL(ALL:ALL) ALL,取消veeamrepo帐号的sudo权限。当然,也可以删除此行。
[root@CentOS05 ~]# sed -i 's/veeamrepo ALL=(ALL:ALL) ALL/#veeamrepo ALL=(ALL:ALL) ALL/' /etc/sudoers
[root@CentOS05 ~]# cat /etc/sudoers
....此处省略其他信息输出,只输出最后几行。
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
#veeamrepo ALL=(ALL:ALL) ALL
[root@CentOS05 ~]#
2、锁定veeamrepo帐号,即限制其登录。但锁定veeamrepo帐号后,不影响Veeam的正常备份和恢复。
[root@CentOS05 ~]# passwd -l veeamrepo #锁定帐号
锁定用户 veeamrepo 的密码。
passwd: 操作成功
[root@CentOS05 ~]# passwd -u veeamrepo #如有需要,解锁帐号
解锁用户 veeamrepo 的密码。
passwd: 操作成功
[root@CentOS05 ~]#
3、不响应Ping ICMP包请求,即其他服务器Ping不通此服务器。
[root@CentOS05 ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #不响应Ping请求
[root@CentOS05 ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all #如有需要,修改回响应Ping请求
[root@CentOS05 ~]#
4、修改SSH端口,假设把SSH登录的端口修改成10086。按如下操作即可,此处不演示。
sed -i '$a Port 22\n\Port 10086' /etc/ssh/sshd_config #修改sshd_config文件
semanage port -a -t ssh_port_t -p tcp 10086 #添加10086端口
semanage port -l |grep ssh #检查10086端口添加成功
firewall-cmd --zone=public --add-port=10086/tcp --permanent #如果有启用firewall,需要放行10086端口
firewall-cmd --reload #重新加载firewall策略
systemctl restart sshd #重启SSH服务
systemctl restart firewalld.service #重启firewall服务
firewall-cmd --list-ports #确保新端口10086添加成功
lsof -i -n |grep '10086' #查看新端口连接情况
#新开另一个SSH登录窗口,使用新端口10086登录。登录成功后,在新登录窗口操作关闭默认22端口。
sed -i 's/Port 22/#Port 22/' /etc/ssh/sshd_config
firewall-cmd --permanent --zone=public --remove-port=22/tcp #在firewall关闭默认22端口
systemctl restart firewalld.service #重启firewall服务
systemctl restart sshd #重启SSH服务
5、限制指定IP使用SSH登录。按如下操作即可,此处不演示。
sed -i '$a AllowUsers XXXX@111.111.111.111' /etc/ssh/sshd_config
#其中 XXXX 为指定可登录用户,111.111.111.111 为指定可登录的IP。多个 用户名@IP 之间使用空格分隔。
systemctl restart sshd
#重启SSH服务
6、如果觉得上述4、5步骤比较复杂、或者还不够安全,那可以考虑关闭SSH。不用担心,关闭SSH服务不会影响Veeam备份和恢复的正常运作。
[root@CentOS05 ~]# systemctl disable sshd
[root@CentOS05 ~]# systemctl stop sshd
注意:关闭SSH登录方式后就只能使用Console、或带外管理的方式来管理这台Linux系统,所以建议在测试、部署完所有相关操作后再关闭SSH登录方式。
六、增加备份空间
如需增加备份空间,可参考以下方法。假设:/backups目录所在的sdb硬盘空间不足,需要把新硬盘sdc的空间直接增加到/backups目录。即模拟原有的5GB的备份空间不够用时,把sdc硬盘上的2GB空间划分到/backups目录下。
[root@CentOS05 ~]# df -Th |grep /backups #查看/backups挂载目录的空间大小为5GB
/dev/mapper/vg_veeam-lv_veeam xfs 5.0G 2.1G 2.9G 42% /backups
[root@CentOS05 ~]# lsblk #确认操作系统识别到sdc硬盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 14.4G 0 part
├─cl-root 253:0 0 12.8G 0 lvm /
└─cl-swap 253:1 0 1.6G 0 lvm [swap]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
└─vg_veeam-lv_veeam 253:2 0 7G 0 lvm /backups
sdc 8:32 0 2G 0 disk
sr0 11:0 1 1024M 0 rom
[root@CentOS05 ~]# parted /dev/sdc mklabel gpt #把/dev/sdc格式化成gpt格式
信息: You may need to update /etc/fstab.
[root@CentOS05 ~]# parted /dev/sdc mkpart primary 1 100% #创建主分区1的全部可用空间
信息: You may need to update /etc/fstab.
[root@CentOS05 ~]# pvcreate /dev/sdc1 #创建pv物理卷
Physical volume "/dev/sdc1" successfully created.
[root@CentOS05 ~]# vgextend vg_veeam /dev/sdc1 #把/dev/sdc1加到原有vg_veeam卷组
Volume group "vg_veeam" successfully extended
[root@CentOS05 ~]# lvextend -l +100%free /dev/mapper/vg_veeam-lv_veeam #把/dev/sdc1上的所有可用空间加到原有lv_veeam的逻辑卷
Size of logical volume vg_veeam/lv_veeam changed from <5.00 GiB (1279 extents) to 6.99 GiB (1790 extents).
Logical volume vg_veeam/lv_veeam successfully resized.
[root@CentOS05 ~]# xfs_growfs /dev/mapper/vg_veeam-lv_veeam #文件系统上需要扩容
meta-data=/dev/mapper/vg_veeam-lv_veeam isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1309696 to 1832960
[root@CentOS05 ~]# df -Th |grep /backups #确认/backups挂载目录的空间由原来5GB扩展到7GB
/dev/mapper/vg_veeam-lv_veeam xfs 7.0G 2.2G 4.9G 31% /backups
[root@CentOS05 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 14.4G 0 part
├─cl-root 253:0 0 12.8G 0 lvm /
└─cl-swap 253:1 0 1.6G 0 lvm [swap]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
└─vg_veeam-lv_veeam 253:2 0 7G 0 lvm /backups
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
└─vg_veeam-lv_veeam 253:2 0 7G 0 lvm /backups
sr0 11:0 1 1024M 0 rom
在VBR界面上,对Repository执行Rescan操作。
确定VBR检测到新的空间大小。
七、普通存储库升级成加固存储库
以下把其他Linux服务器上的普通存储库Normal Repository(挂载目录是/backups),升级成加固存储库Hardened Repository。本文不讨论v11的升级,请先升级到v11后再执行以下操作。
1、确认其他Linux服务器上/backups挂载目录的空间大小,以及vbk、vib备份文件没有 i 的不可变属性。
[root@CentOS04 ~]# df -Th |grep /backups
/dev/mapper/vg_veeam-lv_veeam xfs 5.0G 73M 5.0G 2% /backups
[root@CentOS04 ~]# cd cd /backups/Backup\ Job\ 3_TinyLinux/
[root@CentOS04 Backup Job 3_TinyLinux]# lsattr
-------------------- ./Backup Job 3_TinyLinuxD2021-10-07T094828_31AB.vbk
-------------------- ./Backup Job 3_TinyLinuxD2021-10-07T135830_1BB5.vib
-------------------- ./Backup Job 3_TinyLinux.vbm
[root@CentOS04 Backup Job 3_TinyLinux]#
2、增加备份专用帐号、修改/backups挂载目录权限、编辑/etc/sudoers文件。
[root@CentOS04 ~]# useradd -m veeamrepo #创建备份专用帐号
[root@CentOS04 ~]# passwd veeamrepo #输入两次密码
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@CentOS04 ~]# chown -R veeamrepo:veeamrepo /backups #赋予veeamrepo账号管理备份空间/backups挂载目录的权限
[root@CentOS05 ~]# chmod 700 /backups #修改/backups挂载目录的访问权限为root及veeamrepo帐号
[root@CentOS04 ~]# ls -alh /backups #确认权限添加成功
total 0
drwx------ 3 veeamrepo veeamrepo 36 10月 7 09:48 .
dr-xr-xr-x. 18 root root 259 10月 7 09:43 ..
drwxr-xr-x 2 veeamrepo veeamrepo 154 10月 7 13:59 'Backup Job 3_TinyLinux'
[root@CentOS04 ~]# sed -i '$a veeamrepo ALL=(ALL:ALL) ALL' /etc/sudoers #临时赋予veeamrepo帐号的sudo权限
[root@CentOS04 ~]# cat /etc/sudoers #检查最后一行否添加成功
....此处省略其他信息输出,只输出最后几行。
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
veeamrepo ALL=(ALL:ALL) ALL
[root@CentOS04 ~]#
3、在VBR界面里,编辑指定的Linux Repository,即原有普通Repository所在的Linux服务器,将用户认证修改为single-use credentials for hardened repository模式。
使用上一步骤中的备份专用帐号veeamrepo。
编辑Repository,勾选Make recent backups immutable for days,点击Finish完成向导。
3、确保备份作业成功执行。进入Linux服务器的/backups挂载目录,检查vbk、vib备份文件是否有 i 的不可变属性,无须理会vbm文件。
[root@CentOS04 Backup Job 3_TinyLinux]# lsattr
----i--------------- ./Backup Job 3_TinyLinuxD2021-10-07T094828_31AB.vbk
----i--------------- ./Backup Job 3_TinyLinuxD2021-10-07T135830_1BB5.vib
----i--------------- ./Backup Job 3_TinyLinuxD2021-10-07T202437_1B95.vib
-------------------- ./Backup Job 3_TinyLinux.vbm
4、执行上面第五章节的“系统进行加固”步骤对操作系统进行加固。
如对以上过程有技术疑问,请联系本文作者:helly.wu@veeam.com