1.1 安全登录优化
1)添加一个普通用户oldboy
# useradd oldboy
# echo 123456|passwd --stdin oldboy
2)加到sudo管理,oldboy就相当于管理员
# visudo
# grep -w oldboy /etc/sudoers
oldboy ALL=(ALL) NOPASSWD: ALL
特殊:
安装系统最后一步,勾选后系统将oldboy加为了管理员设置方法:
# usermod -G wheel oldboy
# id oldboy
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy),10(wheel)
# 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用户登录。
# 对SSH服务进行调整
vim /etc/ssh/sshd_config # 以下为配置文件内配置
# 禁止root用户登录
PermitRootLogin no
#优化SSH远程连接效率:
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
# 保存后重启sshd
systemctl restart sshd
4)基础优化操作项:更新yum源信息
# 配置阿里 YUM 源
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 配置 epel 源
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
5)安装常用软件
# 升级所有有已知漏洞的软件
yum update -y
#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
1.2 防火墙优化
1)关闭selinux
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2)暂时关闭firewalld防火墙服务
systemctl stop firewalld
systemctl disable firewalld
1.3 普通用户提权操作(可选优化)
1)提权oldboy可以利用sudo
# 创建 oldboy 用户
useradd oldboy
echo 123456|passwd --stdin oldboy
# 备份 suoders 源文件
\cp /etc/sudoers /etc/sudoers.ori
# oldboy 提权
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
2)手工新添加管理员(老大)
# 创建 oldgirl 用户,并指定为 wheel 管理员权限组
useradd oldgirl -G wheel
echo 111111|passwd --stdin oldgirl
3)设置系统中文UTF8字符集
方法1:
# 备份源文件
cp /etc/locale.conf /etc/locale.conf.ori
# 修改字符集文件
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf
# 使修改后的配置生效
source /etc/locale.conf
方法2:
# 备份源文件
cp /etc/locale.conf /etc/locale.conf.ori
# 修改字符集设置
localectl set-locale LANG="zh_CN.UTF-8"
1.4 时间同步设置
设置系统时间同步
# 下载 ntpdate 时间同步命令
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
1.5 提升命令行操作安全性(可选优化)
提升命令行安全(可选配置)
# echo 'export TMOUT=300' >>/etc/profile
# echo 'export HISTSIZE=5' >>/etc/profile
# echo 'export HISTFILESIZE=5' >>/etc/profile
# tail -3 /etc/profile
# . /etc/profile
1.6 加大文件描述符
实例演示:加大文件描述
echo '* - nofile 65535' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
ulimit -SHn 65535
ulimit -n #<==命令方式查看配置结果
1.7 优化系统内核
# 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
1.8 修改yum.conf文件配置信息
保留yum安装的软件包
将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。
sed -i.bak 's#keepcache=0#keepcache=1#gp' /etc/yum.conf
1.9 锁定关键系统文件
如 /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
将 chattr 命令改为 oldboy
# mv chattr oldboy
将 lsattr 命令改为 oldgirl
# mv lsattr oldgirl
编写 lock_oldboy 脚本
# 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
以后添加用户方法:
# lock_oldboy.sh littlgirl
# grep -w littlgirl /etc/passwd
littlgirl:x:1002:1002::/home/littlgirl:/bin/bash
1.10 去除系统登录提示
清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示
# > /etc/issue
# > /etc/issue.net
1.11 清除多余的系统虚拟用户账号(可选)。
1.12 为grub引导菜单加密码(自学)。
# /usr/bin/grub2-setpassword
1.13 禁止主机被ping(内核参数)。
echo 'net.ipv4.icmp_echo_ignore_all = 1' >>/etc/sysctl.conf
1.14 精简开机自启动服务
# 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
# 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
# systemctl stop postfix
检查端口:
# 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.15 优化系统提示符(根据个人喜好可选)
有时输入命令或查询信息时,会刷屏输出很多信息,此时会出现比较尴尬的局面,不知输出的信息是从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
1.16 自动快速配置改主机名和IP地址:
# 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
本文链接:https://www.yunweibase.com/archives/712
网友评论comments