2020-02-13|2020-02-13 中小规模集群规划与环境准备

1. 网站集群架构搭建规划 1.1 中小规模基础网站集群架构规划 2020-02-13|2020-02-13 中小规模集群规划与环境准备
文章图片
image.png 1.2 网站集群搭建顺序规划 2020-02-13|2020-02-13 中小规模集群规划与环境准备
文章图片
image.png 1.3 主机IP及主机名规划表 2020-02-13|2020-02-13 中小规模集群规划与环境准备
文章图片
image.png 1.4 安装及配置路径等规划 2020-02-13|2020-02-13 中小规模集群规划与环境准备
文章图片
image.png 1.5 集群架构系统基础环境准备 1)安装CentOS7.6系统
2)第一块网卡配置为NAT模式
3)第二块网卡配置为LAN区段模式,网段为172.16.1.0网段
2. 网站集群架构系统优化 2.1 集群节点模板机统一基础优化 2.1.1 规范功能目录 创建存储软件目录和存储脚本目录。

mkdir -p /server/tools mkdir -p /server/scripts

2.1.2 配置hosts解析信息 设置本地服务主机名称与IP地址映射关系。
cat >/etc/hosts<

2.1.3 修改主机名称
hostnamectl set-hostname backup---根据对应主机名称进行设置

2.1.4 更新yum源信息 第一个:就近使用yum源地址,安装软件更快。
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

第二个:安装RHEL/CentOS官方源不提供的软件包。
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.1.5 优化安全设置
# 1、关闭selinux sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config---查看修改SELinux的状态 setenforce 0---临时关闭SELinux getenforce---查看SELinux状态# 2、关闭firewalld防火墙服务 systemctl stop firewalld systemctl disable firewalld

2.1.6 精简开机启动程序
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash

企业生产最小化原则有以下几个:
1)安装软件包最小化
2)用户权限最小化
3)目录文件权限最小化
4)自启动服务最小化
5)服务运行用户最小化
2.1.7 设置普通用户提权操作(可选优化) 对于系统运维工作中,一些普通用户需要分担超级管理员root的工作压力,因此需要将相应的root权限进行下放,所以要将相应普通用户进行提权。
# 提权oldboy可以利用sudo useradd oldboy echo 123456|passwd --stdin oldboy \cp /etc/sudoers /etc/sudoers.ori echo "oldboyALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers tail -1 /etc/sudoers visudo -c

2.1.8 设置系统字符集
[root@oldboyedu ~]# cat /etc/locale.conf LANG="en_US.UTF-8"

修改命令如下:
cp /etc/locale.conf{,.ori} localectl set-locale LANG="zh_CN.UTF-8" cat /etc/locale.conf

2.1.9 时间同步设置
yum install ntpdate -y /usr/sbin/ntpdate ntp3.aliyun.com echo '#crond-id-001:time sync by oldboy' >>/var/spool/cron/root echo "*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root crontab -l

设置定时任务,进行每5分钟的时间同步操作。
2.1.10 提升命令行操作安全性(可选优化,测试环境下建议不做)
echo 'export TMOUT=300' >>/etc/profile---设置会话超时时间为300秒 echo 'export HISTSIZE=5' >>/etc/profile---命令行历史记录保留5个 echo 'export HISTFILESIZE=5' >>/etc/profile---历史记录文件保留5个 tail -3 /etc/profile . /etc/profile

2.1.11 加大文件描述符 一般情况下,一台服务器被访问时会启用很多的程序,而启用每一个程序的进程都会占用文件服务器描述符,因此有需要加大文件描述符的大小,从而不致影响到程序的启动。
echo '*-nofile65535 ' >>/etc/security/limits.conf tail -1 /etc/security/limits.conf ulimit -SHn65535---使用命令临时修改 ulimit -n---命令方式查看配置结果

2.1.12 优化系统内核 利用相应内核参数数值的优化,从而影响系统的安全性、稳定性、高效性。
cat >>/etc/sysctl.conf<

2.1.13 安装系统常用软件 CentOS6和CentOS7都要安装的企业运维常用基础工具包如下:
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y

CentOS7要安装的企业运维常用基础工具包如下:
yum install psmisc net-tools bash-completion vim-enhanced -y

2.1.14 优化SSH远程连接效率
cp /etc/ssh/sshd_config{,.ori} sed -i -e "17s/.*/Port 52113/g" /etc/ssh/sshd_config---修改默认远程端口 sed -i -e "19s/.*/ListenAddress 172.16.1.41/g" /etc/ssh/sshd_config---修改默认监听IP,默认为0.0.0.0全部监听,可以自定义指定监听内网IP地址 sed -i -e "38s/.*/PermitRootLogin no/g" /etc/ssh/sshd_config---关闭SSH登录root用户权限,提升系统安全性 sed -i -e "64s/.*/PermitEmptyPasswords no/g" /etc/ssh/sshd_config---禁止空密码用户SSH连接登录系统 # 特别说明:以上采用sed替换方式修改SSH服务配置文件,替换时指定的行号会根据不同版本的系统有变化,最好以工作中常用的系统为主,修改相应行号。 # 如果是CentOS6还要修改SSH配置,防止连接速度慢的优化 即把UseDNS yes改为UseDNS no,把GSSAPIAuthentication yes改为GSSAPIAuthentication no。

这里为了减少集群搭建的难度,只做如下的配置优化:
PermitEmptyPasswords no UseDNS no GSSAPIAuthentication no

2.1.15 锁定关键系统文件优化 对关键系统帐号文件和启动文件进行锁定,防止用户篡改。
chattr +i /etc/passwd /etc/shadow /etc/group---锁定关键账户文件,防删防改 chattr +i /etc/inittab /etc/fstab /etc/sudoers---锁定其他关键文件 lsattr /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/fstab /etc/sudoers---查看结果 mv /usr/bin/chattr /opt/oldboy---移走关键命令 cp /usr/bin/xargs /usr/bin/chattr---用其他命令伪装一下,用户需要妥善保存关键命令

2.1.16 清理系统版本信息
说明:系统对外显示的信息越少越安全 [root@localhost ~]# cat /etc/issue \S Kernel \r on an \m[root@localhost ~]# cat /etc/issue.net \S Kernel \r on an \m [root@localhost ~]# >/etc/issue.net [root@localhost ~]# >/etc/issue [root@localhost ~]# cat /etc/issue [root@localhost ~]# cat /etc/issue.net

2.1.17 为GRUB增加密码 默认情况下,用户可以随意进入GRUB引导界面,这样就会存在安全隐患。例如,有人靠近设备就可以破解root密码,为了防止别人进入单用户模式破解密码,可以添加GRUB密码。
[root@localhost ~]# grub2-setpassword Enter password: Confirm password: [root@localhost ~]# cat /boot/grub2/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.3BE3BF1C30B4E871CEE0A383A98AF382825E69459067541570CFBA6E53C638C5BD75278CAF2CF15334B7FFED30569791CF6B2D2B97BB2E0716ED7ED38FB1F3F5.48C31EB837FE26E066B1456B979E04AC48B8B65CA820E956F6C5E3C7CE2AC96828E5D6EA921E4114FB4D62B7A5BA560DEE998892C508AC3D6E7183AEDBD3FD53

此时,系统重启后,进入系统GRUB菜单后就会出现输入密码的提示。
2.1.18 禁止用户ping服务器IP地址 【2020-02-13|2020-02-13 中小规模集群规划与环境准备】禁止用户ping服务器IP地址的目的,也是让黑客用户以为服务器停机或者不可用,或禁止返回有效信息。
[root@localhost ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf [root@localhost ~]# sysctl -p net.ipv4.icmp_echo_ignore_all = 1

    推荐阅读