1. 網(wǎng)站集群架構(gòu)搭建規(guī)劃
1.1 中小規(guī)姆畏酰基礎(chǔ)網(wǎng)站集群架構(gòu)規(guī)劃
1.2 網(wǎng)站集群搭建順序規(guī)劃
1.3 主機(jī)IP及主機(jī)名規(guī)劃表
1.4 安裝及配置路徑等規(guī)劃
1.5 集群架構(gòu)系統(tǒng)基礎(chǔ)環(huán)境準(zhǔn)備
1)安裝CentOS7.6系統(tǒng)
2)第一塊網(wǎng)卡配置為NAT模式
3)第二塊網(wǎng)卡配置為LAN區(qū)段模式檩帐,網(wǎng)段為172.16.1.0網(wǎng)段
2. 網(wǎng)站集群架構(gòu)系統(tǒng)優(yōu)化
2.1 集群節(jié)點(diǎn)模板機(jī)統(tǒng)一基礎(chǔ)優(yōu)化
2.1.1 規(guī)范功能目錄
創(chuàng)建存儲軟件目錄和存儲腳本目錄又谋。
mkdir -p /server/tools
mkdir -p /server/scripts
2.1.2 配置hosts解析信息
設(shè)置本地服務(wù)主機(jī)名稱與IP地址映射關(guān)系。
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 修改主機(jī)名稱
hostnamectl set-hostname backup ---根據(jù)對應(yīng)主機(jī)名稱進(jìn)行設(shè)置
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 優(yōu)化安全設(shè)置
# 1火焰、關(guān)閉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的狀態(tài)
setenforce 0 ---臨時關(guān)閉SELinux
getenforce ---查看SELinux狀態(tài)
# 2、關(guān)閉firewalld防火墻服務(wù)
systemctl stop firewalld
systemctl disable firewalld
2.1.6 精簡開機(jī)啟動程序
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash
企業(yè)生產(chǎn)最小化原則有以下幾個:
1)安裝軟件包最小化
2)用戶權(quán)限最小化
3)目錄文件權(quán)限最小化
4)自啟動服務(wù)最小化
5)服務(wù)運(yùn)行用戶最小化
2.1.7 設(shè)置普通用戶提權(quán)操作(可選優(yōu)化)
對于系統(tǒng)運(yùn)維工作中胧沫,一些普通用戶需要分擔(dān)超級管理員root的工作壓力昌简,因此需要將相應(yīng)的root權(quán)限進(jìn)行下放,所以要將相應(yīng)普通用戶進(jìn)行提權(quán)绒怨。
# 提權(quán)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 設(shè)置系統(tǒng)字符集
[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 時間同步設(shè)置
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
設(shè)置定時任務(wù)纯赎,進(jìn)行每5分鐘的時間同步操作。
2.1.10 提升命令行操作安全性(可選優(yōu)化南蹂,測試環(huán)境下建議不做)
echo 'export TMOUT=300' >>/etc/profile ---設(shè)置會話超時時間為300秒
echo 'export HISTSIZE=5' >>/etc/profile ---命令行歷史記錄保留5個
echo 'export HISTFILESIZE=5' >>/etc/profile ---歷史記錄文件保留5個
tail -3 /etc/profile
. /etc/profile
2.1.11 加大文件描述符
一般情況下犬金,一臺服務(wù)器被訪問時會啟用很多的程序,而啟用每一個程序的進(jìn)程都會占用文件服務(wù)器描述符六剥,因此有需要加大文件描述符的大小佑附,從而不致影響到程序的啟動。
echo '* - nofile 65535 ' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
ulimit -SHn 65535 ---使用命令臨時修改
ulimit -n ---命令方式查看配置結(jié)果
2.1.12 優(yōu)化系統(tǒng)內(nèi)核
利用相應(yīng)內(nèi)核參數(shù)數(shù)值的優(yōu)化仗考,從而影響系統(tǒng)的安全性音同、穩(wěn)定性、高效性秃嗜。
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
#以下參數(shù)是對iptables防火墻的優(yōu)化权均,防火墻不開會提示,可以忽略不理锅锨。
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 ---使修改內(nèi)容生效
2.1.13 安裝系統(tǒng)常用軟件
CentOS6和CentOS7都要安裝的企業(yè)運(yùn)維常用基礎(chǔ)工具包如下:
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y
CentOS7要安裝的企業(yè)運(yùn)維常用基礎(chǔ)工具包如下:
yum install psmisc net-tools bash-completion vim-enhanced -y
2.1.14 優(yōu)化SSH遠(yuǎn)程連接效率
cp /etc/ssh/sshd_config{,.ori}
sed -i -e "17s/.*/Port 52113/g" /etc/ssh/sshd_config ---修改默認(rèn)遠(yuǎn)程端口
sed -i -e "19s/.*/ListenAddress 172.16.1.41/g" /etc/ssh/sshd_config ---修改默認(rèn)監(jiān)聽IP叽赊,默認(rèn)為0.0.0.0全部監(jiān)聽,可以自定義指定監(jiān)聽內(nèi)網(wǎng)IP地址
sed -i -e "38s/.*/PermitRootLogin no/g" /etc/ssh/sshd_config ---關(guān)閉SSH登錄root用戶權(quán)限必搞,提升系統(tǒng)安全性
sed -i -e "64s/.*/PermitEmptyPasswords no/g" /etc/ssh/sshd_config ---禁止空密碼用戶SSH連接登錄系統(tǒng)
# 特別說明:以上采用sed替換方式修改SSH服務(wù)配置文件必指,替換時指定的行號會根據(jù)不同版本的系統(tǒng)有變化,最好以工作中常用的系統(tǒng)為主恕洲,修改相應(yīng)行號塔橡。
# 如果是CentOS6還要修改SSH配置梅割,防止連接速度慢的優(yōu)化
即把UseDNS yes改為UseDNS no,把GSSAPIAuthentication yes改為GSSAPIAuthentication no葛家。
這里為了減少集群搭建的難度户辞,只做如下的配置優(yōu)化:
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
2.1.15 鎖定關(guān)鍵系統(tǒng)文件優(yōu)化
對關(guān)鍵系統(tǒng)帳號文件和啟動文件進(jìn)行鎖定,防止用戶篡改癞谒。
chattr +i /etc/passwd /etc/shadow /etc/group ---鎖定關(guān)鍵賬戶文件底燎,防刪防改
chattr +i /etc/inittab /etc/fstab /etc/sudoers ---鎖定其他關(guān)鍵文件
lsattr /etc/passwd /etc/shadow /etc/group /etc/inittab /etc/fstab /etc/sudoers ---查看結(jié)果
mv /usr/bin/chattr /opt/oldboy ---移走關(guān)鍵命令
cp /usr/bin/xargs /usr/bin/chattr ---用其他命令偽裝一下,用戶需要妥善保存關(guān)鍵命令
2.1.16 清理系統(tǒng)版本信息
說明:系統(tǒng)對外顯示的信息越少越安全
[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增加密碼
默認(rèn)情況下弹砚,用戶可以隨意進(jìn)入GRUB引導(dǎo)界面双仍,這樣就會存在安全隱患。例如桌吃,有人靠近設(shè)備就可以破解root密碼朱沃,為了防止別人進(jìn)入單用戶模式破解密碼,可以添加GRUB密碼读存。
[root@localhost ~]# grub2-setpassword
Enter password:
Confirm password:
[root@localhost ~]# cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.3BE3BF1C30B4E871CEE0A383A98AF382825E69459067541570CFBA6E53C638C5BD75278CAF2CF15334B7FFED30569791CF6B2D2B97BB2E0716ED7ED38FB1F3F5.48C31EB837FE26E066B1456B979E04AC48B8B65CA820E956F6C5E3C7CE2AC96828E5D6EA921E4114FB4D62B7A5BA560DEE998892C508AC3D6E7183AEDBD3FD53
此時为流,系統(tǒng)重啟后,進(jìn)入系統(tǒng)GRUB菜單后就會出現(xiàn)輸入密碼的提示让簿。
2.1.18 禁止用戶ping服務(wù)器IP地址
禁止用戶ping服務(wù)器IP地址的目的敬察,也是讓黑客用戶以為服務(wù)器停機(jī)或者不可用,或禁止返回有效信息尔当。
[root@localhost ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.icmp_echo_ignore_all = 1