2020-02-13|2020-02-13 中小规模集群规划与环境准备
1. 网站集群架构搭建规划
1.1 中小规模基础网站集群架构规划
文章图片
image.png 1.2 网站集群搭建顺序规划
文章图片
image.png 1.3 主机IP及主机名规划表
文章图片
image.png 1.4 安装及配置路径等规划
文章图片
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
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理