Jumpserver集群部署笔记:(一)系统基础环境配置

1、集群组网信息

序号 主机名 IP地址 操作系统版本
1 devops01 10.255.200.1 CentOS 7.8.2003
2 devops02 10.255.200.2 CentOS 7.8.2003
3 devops03 10.255.200.3 CentOS 7.8.2003

各模块高可用方案如下:

  • Tengine 3节点通过keepalived切换
  • Jumpserver、koko、guacamole 独立3节点通过tengine负载
  • Mariadb galera 3节点集群
  • Redis sentinel 3节点哨兵模式实现主从切换,keepalived实现VIP切换
  • Keepalived 自身配置了状态切换邮件通知

以下基础环境配置,无特殊说明的情况下表示集群中3台主机均需执行相同配置

2、安装操作系统

操作系统安装主要包括UEFI启动配置,磁盘冗余配置,系统时区配置,系统磁盘分区等配置。

序号 挂载点 主要用途
1 /sas 安装软件
2 /ssd 保存数据库数据

3、配置网卡聚合

3.1 交换机端使用动态聚合配置,服务器端使用mode 4 (802.3ad),实现链路负载分担。
# 交换机端配置示例(H3C)
interface Bridge-Aggregation10
 port access vlan 100
 link-aggregation mode dynamic

interface Ten-GigabitEthernet1/1/10
 port link-mode bridge
 port access vlan 100
 port link-aggregation group 10

interface Ten-GigabitEthernet2/1/10
 port link-mode bridge
 port access vlan 100
 port link-aggregation group 10

# 操作系统端配置命令
nmcli connection add type bond ifname app mode 4 
nmcli connection add type bond-slave ifname eno49 master app
nmcli connection add type bond-slave ifname ens4f0 master app
systemctl restart network 

# 设置IP地址,需补充填写 Monitoring frequency :100 , Link up delay: 0 , Link down delay: 0 三个参数。
nmtui
3.2 冗余测试
# 使用另一个终端Ping目标主机,并交替停用聚合的2张网卡,观察网络是否中断
ping 10.255.200.1

ifdown eno49
ifup eno49
ifdown ens4f0
ifup ens4f0

4、更新操作系统补丁

ping www.baidu.com

yum update –y
reboot

5、升级Openssh至最新版本

Centos7 发行版自带的openssh版本为7.4p1,存在己知漏洞,需升级至最新版本。具体操作参考:https://segmentfault.com/a/1190000022756834

yum install -y gcc epel-release wget

# 下载最新版本软件包并解压
cd /sas/src/
wget https://ftp.openssl.org/source/openssl-1.1.1h.tar.gz
tar –xzf openssl-1.1.1h.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
tar –xzf openssh-8.4p1.tar.gz

# 备份并编译安装openssl
mv /usr/bin/openssl /usr/bin/openssl_old
cd openssl-1.1.1h
./config shared && make && make install

# 创建软链接修复运行错误
# openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/

# 查看版本验证openssl可正常运行
openssl version

# 安装openssh相关依赖
yum install zlib-devel openssl-devel pam-devel –y

# 备份openssh 相关配置
mkdir /etc/ssh_old
mv /etc/ssh/* /etc/ssh_old/

# 编译安装
cd ../ openssh-8.4p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-pam --with-md5-password --with-ssl-engine --with-selinux
make && make install
# 验证版本
ssh –V

# 修改sshd_config 配置root登录
vim /etc/ssh/sshd_config
PermitRootLogin yes

# 启动新版openssh
# 移走以前的ssh服务, 防止与新的冲突
mv /usr/lib/systemd/system/sshd.service /etc/ssh_old/sshd.service
mv /usr/lib/systemd/system/sshd.socket /etc/ssh_old/sshd.socket

# 从解压包中拷贝一些文件
cp -a contrib/redhat/sshd.init /etc/init.d/sshd

# 重新启动
systemctl daemon-reload
/etc/init.d/sshd restart

# 添加自启动
chkconfig --add sshd
chkconfig sshd on

6、修改主机名并配置hosts信息

# 查看主机名
hostname
hostnamectl
# 修改主机名
hostnamectl set-hostname devops01

# 将主机名与IP关系写入hosts文件
vi /etc/hosts

10.255.200.1  devops01
10.255.200.2  devops02
10.255.200.3  devops03

7、关闭Selinux

Jumpserver官方推荐生产环境不要关闭Selinux,但由于此集群还需要部署其它服务,所以未遵守安全建议。

# 查看当前Selinux状态
getenforce
sestatus -v

# 临时关闭Selinux,重启失效,重启后会依配置文件状态运行
setenforce 0
# 永久关闭Selinux,重启后生效
vi /etc/selinux/config

SELINUX=disabled

8、配置NTP时钟同步

由于数据库集群、MFA双因子认证等均依赖时间的准确性,因此建议配置NTP时钟同步。

# 安装时钟同步软件
yum install -y chrony

# 修改时钟同步源,将centos官方源换成国内阿里云时钟源
vi /etc/chrony.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst

server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
server ntp6.aliyun.com iburst

# 启动时钟同步服务并设置自启动
systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

9、配置集群主机间SSH互信

在每台主机上生成ssh证书,并拷备至集群内其它2台主机。

# 生成证书
ssh-keygen -t rsa 

# 拷备至除本机以外的其它2台集群主机
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

猜你喜欢

转载自blog.51cto.com/dusthunter/2542365