美文网首页
2020-02-13 中小规模集群规划与环境准备

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

作者: 阿丧小威 | 来源:发表于2020-02-13 00:44 被阅读0次

    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<<EOF
    127.0.0.1    localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1          localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.16.1.5 lb01
    172.16.1.6 lb02
    172.16.1.7 web01
    172.16.1.8 web02
    172.16.1.9 sweb01
    172.16.1.10 sweb02
    172.16.1.31 nfs01
    172.16.1.41 backup
    172.16.1.51 db01 db01.etiantian.org
    172.16.1.61 m01
    EOF
    
    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 "oldboy  ALL=(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 '*               -       nofile          65535 ' >>/etc/security/limits.conf 
    tail -1 /etc/security/limits.conf
    ulimit -SHn   65535     ---使用命令临时修改
    ulimit -n       ---命令方式查看配置结果
    
    2.1.12 优化系统内核

    利用相应内核参数数值的优化,从而影响系统的安全性、稳定性、高效性。

    cat >>/etc/sysctl.conf<<EOF
    net.ipv4.tcp_fin_timeout = 2
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_keepalive_time = 600
    net.ipv4.ip_local_port_range = 4000    65000
    net.ipv4.tcp_max_syn_backlog = 16384
    net.ipv4.tcp_max_tw_buckets = 36000
    net.ipv4.route.gc_timeout = 100
    net.ipv4.tcp_syn_retries = 1
    net.ipv4.tcp_synack_retries = 1
    net.core.somaxconn = 16384
    net.core.netdev_max_backlog = 16384
    net.ipv4.tcp_max_orphans = 16384
    #以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
    net.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_tcp_timeout_established = 180
    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.wmem_max = 16777216
    net.core.rmem_max = 16777216
    EOF
    sysctl -p    ---使修改内容生效
    
    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地址

    禁止用户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
    

    相关文章

      网友评论

          本文标题:2020-02-13 中小规模集群规划与环境准备

          本文链接:https://www.haomeiwen.com/subject/ahbxfhtx.html