Day39-1-主机安装及基础优化及克隆准备
- 集群架构基础优化:
- 1. 添加一个普通用户oldboy。
- 2. 加到sudo管理,oldboy就相当于管理员
- 3.禁止root远程登录,改用oldboy用户登录。
- 4. 基础优化操作项:更新yum源信息
- 5. 安装常用软件
- 6. 安全优化
- 7. 基础优化操作项:设置普通用户提权操作(可选优化)
- 8. 设置系统中文UTF8字符集
- 9. 基础优化操作项:时间同步设置
- 10. 基础优化操作项:提升命令行操作安全性(可选优化)
- 11. 基础优化操作项:加大文件描述符
- 12. 基础优化操作项:优化系统内核
- 13. 扩展优化操作项-修改yum.conf文件配置信息
- 14. 锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,
- 15. 清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
- 16. 清除多余的系统虚拟用户账号(可选)。
- 17. 为grub引导菜单加密码(自学)。
- 18. 禁止主机被ping(内核参数)。
- 19. 打补丁并升级有已知漏洞的软件。
- 20. 精简开机自启动服务
- 21. 扩展优化操作项-优化系统提示符(根据个人喜好可选)
- 22. 扩展优化操作项-自动快速配置改主机名和IP地址:
- 23. 规范目录
- 24. 规划集群服务器配置
- 25. 配置所有主机域名解析
- 26. 集群架构系统基础环境准备
- 27. 做好快照。
- 27. 克隆三台:
集群架构基础优化:
1. 添加一个普通用户oldboy。
[root@oldboy ~]# useradd oldboy
[root@oldboy ~]# id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[root@oldboy ~]# echo 123456|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
2. 加到sudo管理,oldboy就相当于管理员
[root@oldboy ~]# visudo
[root@oldboy ~]# grep -w oldboy /etc/sudoers
oldboy ALL=(ALL) NOPASSWD: ALL
# 特殊:安装系统最后一步,勾选后系统将oldboy加为了管理员设置方法:
[root@oldboy ~]# id oldboy
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy),10(wheel)
[root@oldboy ~]# grep -w wheel /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL
3.禁止root远程登录,改用oldboy用户登录。
vim /etc/ssh/sshd_config 进行调整
# 重新配置Xshell连接
38 #PermitRootLogin yes
# 改为:
PermitRootLogin no
# 优化SSH远程连接效率:
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
# 保存后重启sshd
[root@oldboy ~]# systemctl restart sshd
# 测试ssh root连接
[ root@oldboy ~]# ssh 10.0.0.128
Permission denied # 确认已经无法通过root远程登录。
# 以后都是通过登录oldboy,如有必要通过sudo su -切换。
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
5. 安装常用软件
# 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 ntpdate -y
6. 安全优化
# 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
setenforce 0
getenforce
# 2.暂时关闭firewalld防火墙服务
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld|grep inactive
7. 基础优化操作项:设置普通用户提权操作(可选优化)
# 提权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
# 手工新添加管理员(老大)
[root@oldboy ~]# useradd oldgirl -G wheel
[root@oldboy ~]# id oldgirl
uid=1001(oldgirl) gid=1001(oldgirl) 组=1001(oldgirl),10(wheel)
[root@oldboy ~]# echo 111111|passwd --stdin oldgirl
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ sudo su -
8. 设置系统中文UTF8字符集
[root@oldboyedu ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"
#修改命令如下:
# 方法1:
cp /etc/locale.conf /etc/locale.conf.ori
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf
source /etc/locale.conf
echo $LANG
# 方法2:
cp /etc/locale.conf /etc/locale.conf.ori
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf
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
10. 基础优化操作项:提升命令行操作安全性(可选优化)
# 提升命令行安全(可选配置)
#echo 'export TMOUT=300' >>/etc/profile
#echo 'export HISTSIZE=5' >>/etc/profile
#echo 'export HISTFILESIZE=5' >>/etc/profile
tail -3 /etc/profile
. /etc/profile
11. 基础优化操作项:加大文件描述符
# 实例演示:加大文件描述
echo '* - nofile 65535' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
ulimit -SHn 65535
ulimit -n #<==命令方式查看配置结果
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
##NFS共享存储优化
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
sysctl -p
13. 扩展优化操作项-修改yum.conf文件配置信息
# 保留yum安装的软件包
# 将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。
sed -i.bak 's#keepcache=0#keepcache=1#gp' /etc/yum.conf
14. 锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,
#处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
mv chattr oldboy
mv lsattr oldgirl
[root@oldboy bin]# cat lock_oldboy.sh
oldboy -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
useradd $1
oldboy +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
#以后添加用户方法:
[root@oldboy bin]# lock_oldboy.sh littlgirl
[root@oldboy bin]# grep -w littlgirl /etc/passwd
littlgirl:x:1002:1002::/home/littlgirl:/bin/bash
#练习不动。
15. 清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
/etc/issue
/etc/issue.net
16. 清除多余的系统虚拟用户账号(可选)。
17. 为grub引导菜单加密码(自学)。
[root@oldboy bin]# grub2-setpassword
Enter password:
Confirm password:
[root@oldboy bin]# cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.7EB8A7BD86D5492EC52B8824EEBE8D80AAE2BC613EAD567BFDF49AD5A0C37E28FDCE2AE96D10898D4C0566135443CC65CC603F688641A48F64F1252400C33A71.C186128749F9EE11DD40B0CBA39212ECED8A848A43C66210688C50724E9163CB9C7A438D334A751D51069BE1009EA1631D627AB90FE4C7D87F6BA87A43192F20
18. 禁止主机被ping(内核参数)。
net.ipv4.icmp_echo_ignore_all = 1
19. 打补丁并升级有已知漏洞的软件。
yum update -y #(生产上线后不要操作)
20. 精简开机自启动服务
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash
systemctl list-unit-files |grep enable
保留服务:
sshd|crond|sysstat|rsyslog|NetworkManager|irqbalance
[root@oldboy ~]# systemctl list-unit-files |grep enable
autovt@.service enabled
crond.service enabled
getty@.service enabled
irqbalance.service enabled
NetworkManager.service enabled
rsyslog.service enabled
sshd.service enabled
sysstat.service enabled
[root@oldboy scripts]# systemctl stop postfix
检查端口:
[root@oldboy scripts]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2093/sshd
tcp6 0 0 :::22 :::* LISTEN 2093/sshd
企业生产最小化原则:
1、安装软件包最小化。
2、用户权限最小化。
3、目录文件权限最小化。
4、自启动服务最小化。
5、服务运行用户权限最小化。
21. 扩展优化操作项-优化系统提示符(根据个人喜好可选)
# 有时输入命令或查询信息时,会刷屏输出很多信息,此时会出现比较尴尬的局面,不知输出的信息是从2哪看起,可能正常都应该从输入命令后的信息进行看起,但如果刷屏好多页,如何快速定位输入命令的命令行呢,因此如果有颜色进行区分,就能回滚屏幕进行快速定位了
echo "PS1='\[\e[32;1m\][\u@\h \W]\\$ \[\e[0m\]'" >>/etc/profile
source /etc/profile
# 说明:定义ls命令的长格式显示,是输出信息格列完全对齐显示;不解释,强迫症运维都懂的
echo "alias ll='ls -l --color=auto --time-style=long-iso'" >>/etc/profile
source /etc/profile
22. 扩展优化操作项-自动快速配置改主机名和IP地址:
#sh net.sh backup 41 使用方法
[root@oldboy scripts]# cat net.sh
#!/bin/sh
if [ $# -ne 2 ];then
echo "/bin/sh $0 hostname PartIP"
exit 1
fi
hostnamectl set-hostname $1 #第一个参数
sed -i "/IPADDR/s#128#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth0 #<==模板机IP最后8位默认是200。
sed -i "/IPADDR/s#128#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth1
systemctl restart network
#check
hostname
ifconfig eth0
ifconfig eth1
exit
23. 规范目录
路径规划:
目录说明 | 目录结构说明 |
---|---|
/server/scripts | 服务器本地存放脚本程序的目录 |
/server/tools | 服务器本地存放软件安装包的目录 |
/application/软件名 | 服务器本地软件安装的根目录,软件名不带版本号,例如:/application/nginx,/application/mysql |
/application/nginx/html | Web服务器站点目录(bbs,blog,www,edu) |
/application/nginx/logs | Web服务器日志{bbs|blog|www}_access.log |
/backup | 服务器本地数据备份目录,也是备份服务器Rsync的备份目录 |
/data | NFS共享存储共享文件目录 |
mkdir -p /server/tools
mkdir -p /server/scripts
24. 规划集群服务器配置
服务器说明 | eth0外网IP(NAT) | eth1内网IP(NAT) | 主机名称规划 |
---|---|---|---|
A1-负载服务器01 | 10.0.0.5/24 | 172.16.1.5/16 | lb01 |
A2-负载服务器02 | 10.0.0.6/24 | 172.16.1.6/16 | lb02 |
B1-web服务器1 | 10.0.0.7/24 | 172.16.1.7/16 | web01 |
B2-web服务器2 | 10.0.0.8/24 | 172.16.1.8/16 | web02 |
SB1-web服务器1 | 10.0.0.9/24 | 172.16.1.9/16 | sweb01 |
SB2-web服务器2 | 10.0.0.10/24 | 172.16.1.10/16 | sweb02 |
C1-NFS存储服务器 | 10.0.0.31/24 | 172.16.1.31/16 | nfs01 |
C2-rsync备份服务器 | 10.0.0.41/24 | 172.16.1.41/16 | backup |
C3-MySQL数据库服务器 | 10.0.0.51/24 | 172.16.1.51/16 | db01 |
X-管理服务器 | 10.0.0.61/24 | 172.16.1.61/16 | m01 |
25. 配置所有主机域名解析
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
[root@oldboy scripts]# cat /etc/hosts
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
[root@oldboy scripts]# ping lb01
PING lb01 (172.16.1.5) 56(84) bytes of data.
[root@oldboyedu ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7072/sshd
tcp6 0 0 :::22 :::* LISTEN 7072/sshd
26. 集群架构系统基础环境准备
1.安装全新Centos7.6系统(VM环境),修改网卡为eth0及eth1命名模式,并添加两块网卡。
2.第一块网卡eth0配置为NAT模式[模拟公网环境],网段为10.0.0.0网段。
3.第二块网卡eth1配置为LAN区段模式[模拟局域环境],网段为172.16.1.0网段。
注意:此网段为内网网段,因此,无须配置默认网关和DNS
27. 做好快照。
1)优化后快照
2)每天上课后快照
3)每天晚上练习后快照。
27. 克隆三台:
B1-web服务器1 10.0.0.7/24 172.16.1.7/16 web01
C1-NFS存储服务器 10.0.0.31/24 172.16.1.31/16 nfs01
C2-rsync备份服务器 10.0.0.41/24 172.16.1.41/16 backup