ProofPoint 邮件网关迁云

暗香疏影 创作者

ProofPoint Messaging Security Gateway是一个邮件安全网关,用于过滤邮件。

通常安全类镜像迁移都不做任何改动,直接迁移。但是,以下是从学习角度学习系统镜像。

迁移前方案确认

我们迁移前一般会确认cloud-init, virtio, growpart这些组件是否存在并正常运行。
以下以迁移到阿里云为例。

由于定制版本过于奇葩,无法通过SMC ESXi Agentless VM迁移(报错)。本案通过导出为OVF后,再转换为qcow2上传到对象存储进行迁移。

迁移前准备

官方无文档或官方文档需要登录才可以查看。直接启动e + rd.break + ctrl x的方式重置密码。发现该镜像grub加密,启动e后需要输入用户名密码。

盲猜肯定也是RHEL系列,grub加密后需要安装镜像通过Troubleshoot方式登录重置。这里我使用了Rocky Linux的安装镜像。

重置root密码

YouTube - Reset Root password when GRUB password Protected
Troubeshoot –> Rescue –> 选择1 Continue
根据提示会告诉你输入什么命令,版本不同提示也不同。
先按回车进入shell。
我使用的是Rocky 9, 提示我chroot /mnt/sysroot

所以回车后我就输入chroot /mnt/sysroot
更早版本可能提示chroot /mnt/sysimage, 按照提示输入即可。

然后输入passwd重置密码。
之后,touch /.autorelabel后exit两次退出重启。等待重启到系统后继续等待系统重启即可。

因为重启删除ISO时间过短,可能没来的及就再次进入ISO安装包,直接在里面选择Boot to Hard Disk即可。

确认系统情况

系统查询

通过cat /etc/os-release和cat /etc/redhat-release查看系统版本
由于过度定制化做了太大改变,不过可以看出是基于CentOS 7。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# /etc/os-release
NAME="Proofpoint Linux"
VERSION="8 (Plinx)"
ID="plinx"
ID_LIKE="rhel fedora centos"
VERSION_ID="8"
PRETTY_NAME="Proofpoint Linux 8 (Plinx)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

因为这样的改动会导致云上自我诊断报错(不支持该系统),我先临时将os-release备份到其他地方并修改为和CentOS 7一致,用于云上诊断。(这个可以有需要再改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

关闭防火墙

经过查询没有找到firewalld。
一般的,RHEL系如果不是firewalld 是ufw,ntf的可能性非常小。这里我们用命令查找:

1
2
3
4
systemctl list-units --type=service | grep fire

ip6tables.service loaded active exited IPv6 firewall with ip6tables
iptables.service loaded active exited IPv4 firewall with iptables

得知使用iptable作为防火墙和路由方式。直接禁用即可。

网络配置

经检查,该系统没有NetworkManager管理,而是直接文件管理。
到/etc/sysconfig/network-scripts/ifcfg-eth0修改配置,将BOOTPROTO改为dhcp并注释IP相关项。

1
2
> vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp

本地部署如果没有全部注释好,可能导致路由问题,例如可以内网访问却不可以连公网。
方法一,临时命令

1
ip route add default via 10.0.0.1 dev eth0

方法二,/etc/sysconfig/network-scripts/ifcfg-eth0加gateway

1
GATEWAY=10.0.0.1

方法三 ifcfg-eth0只保留最简单的

1
2
3
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

安装必须组件

配置临时源

1
2
3
4
5
6
7
8
9
10
# 因为os-release会影响版本号,这里baseurl指定了版本为7 
# /etc/yum.repo.d/ali.repo
[base]
name=CentOS-7
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

安装cloud-init

1
2
3
4
5
6
7
yum install cloud-init

# 检查版本
cloud-init -v

# 开机启动
systemctl enable cloud-init

迁云脚本查询

在确认cloud-init, virtio之后,通过下载迁云检查,检查是否满足迁云要求。
迁云检查

这时候发现nvme、qemu、ssh报错。
nvme的报错,官网文档有解决方式

ssh报错应该是误报,这里不做理会。

但是本VM根据步骤运行后会有模块报错。部分模块是无法安装的,但是不影响迁移。(如果没有NVMe的话,就不可以使用例如ecs.g7se实例。缺少nvme-tcp.ko.xz不影响后续操作)

1
yum install -y keyutils busybox btrfs-progs cryptsetup dmraid ntfs-3g mdadm cifs-utils iscsi-initiator-utils

但是后续云上检查会发现,其实也缺少polkitd用户,为了方便,我们可以不安装polkit的方式来进行。我们根据以前的经验添加。

1
useradd -r -d /var/run/polkitd -s /sbin/nologin -U -M -c "PolicyKit Daemon" polkitd

正确的方式其实是安装polkit服务:

1
yum install polkit

转换镜像

现在可以通过qemu-img来转换镜像为qcow2完成上传工作。

1
qemu-img convert -f vmdk -O qcow2 image.vmdk image.qcow2
  • 标题: ProofPoint 邮件网关迁云
  • 作者: 暗香疏影
  • 创建于 : 2024-03-16 00:00:00
  • 更新于 : 2024-03-16 00:00:00
  • 链接: https://blog.23ikr.com/2024/03/16/2024-03-16-Proofpoint-MessagingSecurityGateway-migrate-cloud/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论