Veeam Hardened Repository Quick Starter

  • 14 September 2021
  • 2 comments
  • 648 views

Userlevel 3
Badge

测试环境: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

EYV7sb.jpg

添加新建的备份专用帐号veeamrepo,需要勾选Elevate account privileges automatically。

se6Cuo.jpg

2、新建备份策略的注意事项:

勾选Use fast clone on XFS volumes,使用Fast Clone技术

勾选Make recent backups immutable for days,这是加固功能的开关

qwOPQB.jpg

3、新建备份策略,选择上面新建的Linux Hardened Repository。

ClwB8g.jpg

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界面里,测试删除备份文件。

jnQJ6L.jpg

FLy1zU.jpg

 

五、对系统进行加固

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操作。

Padj6c.jpg

确定VBR检测到新的空间大小。

I8EAjI.jpg

 

七、普通存储库升级成加固存储库

以下把其他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模式。

ysZdnf.jpg

使用上一步骤中的备份专用帐号veeamrepo。

UrpqvB.jpg

编辑Repository,勾选Make recent backups immutable for days,点击Finish完成向导。

bzP5O1.jpg

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


2 comments

Userlevel 3
Badge

@chenxuewen,你好。

 

Veeam Hardened Repository的功能实现是基于Linux操作系统的,而不在乎这台Linux操作系统是在虚拟化、物理机、或者是容器平台上的。

 

所以对于Hardened Repository的限制,可以参考如下网址:https://helpcenter.veeam.com/docs/backup/vsphere/hardened_repository_limitations.html?ver=110

总结的很到位!!

请问之前那种基于容器的Linux Hardened Repository,是不是不支持了?

Comment