1. 主机名规划

主机名规划,尽量做到见名知意。
云厂商-项目名-环境-业务-编号
aws-ar-pord-gs-001
环境标签:
pro:生产环境
pre:灰度环境
test:测试环境
dev:开发环境

2. 路径规划

数据盘挂在至/data目录下,避免系统盘出问题导致数据无法取回。
日志存放路径:/data/logs/
脚本存放路径:/data/scripts/
备份路径:/data/backup/
第三方应用部署路径:/usr/local/xxx
业务部署路径:/data/项目名/

3.安装常用维护命令

yum install ntpdate telnet vim tree lsof zip net-tools iotop htop curl rsync dmidecode sysstat net-snmp lrzsz screen -y

4.命令行用户审计

记录服务器什么用户在什么时间点哪个ip执行了什么命令,方便查看,及问题复盘回溯。

  1. mkdir -p /var/log/usermonitor/
  2. echo usermonitor >/var/log/usermonitor/usermonitor.log
  3. chown nobody:nobody /var/log/usermonitor/usermonitor.log
  4. chmod 002 /var/log/usermonitor/usermonitor.log
  5. chattr +a /var/log/usermonitor/usermonitor.log
  6. echo "export HISTORY_FILE=/var/log/usermonitor/usermonitor.log" >> /etc/profile
  7. echo -n "export PROMPT_COMMAND='{ date " >> /etc/profile
  8. echo -n '"+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")#### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE' >> /etc/profile
  9. echo "'" >> /etc/profile
  10. echo 'export HISTTIMEFORMAT=" $(who am i |awk "{print \$1\" \"\$5}") | %F | %T |"' >> /etc/profile

5.limits参数优化

系统默认一个进程最多打开1024个文件,在高访问量/数据库使用场景下,很容易出现不够用的现象。
报错现象:Too many open files
命令行设置临时生效。

echo "ulimit -SHn 200000>>/etc/profile
source /etc/profile

配置到文件,使其永久生效。

echo '*        soft    noproc 200000
*        hard    noproc 200000
*        soft    nofile 200000
*        hard    nofile 200000'>>/etc/security/limits.conf

6.时区设置及时间同步

#安装
yum install chrony -y
#查看所有的时区
timedatectl list-timezones
#设置时区
timedatectl set-timezone Asia/Shanghai
#时间同步
systemctl enable chronyd
systemctl start chronyd

7.senlinx关闭

#临时关闭
setenforce 0
#永久关闭
sed -i 's#SELINUX=disabled#SELINUX=enforcing#g' /etc/selinux/config

8.防火墙

#安装iptables
yum install -y iptables
#安装iptables-services
yum install iptables-services -y

#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld

#查看iptables现有规则
iptables -L -n
#先允许所有,不然有可能会悲剧
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z

#保存上述规则
service iptables save

#开机自启动
systemctl enable iptables.service
#开启服务
systemctl start iptables.service
#查看状态
systemctl status iptables.service

9.ssh端口修改及开启key认证,关闭密码。

/etc/ssh/sshd_config

Port 64444
Protocol 2
SyslogFacility AUTHPRIV
AuthorizedKeysFile      .ssh/authorized_keys
PermitRootLogin yes
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
ClientAliveInterval 420
Subsystem       sftp    /usr/libexec/openssh/sftp-server

10.私钥配置

将管理员和开发人员私钥注入至/root/.ssh/authorized_keys