Linux 系统优化
发布于: 2020 年 04 月 29 日
1.基础优化操作项
1.规范功能目录
创建存储软件目录(/server/tools)创建存储脚本目录(/server/scripts)
2.规范化主机名
hostnamectl set-hostname jq
3.更新yum源
1.使用国内源curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2.安装RHEL/CentOS官方源不提供的软件包curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo3.执行yum源更新命令yum clean allyum makecacheyum update -y在首次安装系统时一般可以执行yum update -y,如果是已经应用在生产线的业务服务器系统,就不要轻易更新了,以免导致业务服务异常
4.优化安全设置
1.关闭selinux##sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/configsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config2.关闭firewalld防火墙服务systemctl disable firewalld #关闭开机自启服务systemctl stop firewalld #关闭防火墙服务(如果服务器连接的是外网需开启)
5.精简开机启动程序
5.1企业生存最小化原则
1.安装软件包最小化
2.用户权限最小化
3.目录文件权限最小化
4.自启动服务最小化
5.服务运行用户最小化
6.设置普通用户提权操作
cat /etc/sudoersecho "ansible ALL=(ALL) ALL">>/etc/sudoers
7.设置系统字符集
#设置系统中文UTF8字符集1.查看系统字符集cat /etc/locale.confLANG="en_US.UTF-8"2.修改cp /etc/locale.conf{,.ori}localectl set-locale LANG="zh_CN.UTF-8"cat /etc/locale.conf
8.时间同步设置
yum install ntpdate -yntpdate ntp1.aliyun.comecho "*/5 * * * * ntpdate ntp1.aliyun.com>dev/null 2>&1">>/var/spool/cron/root
9.提升命令行操作安全性
echo 'export TMOUT=3000'>>/etc/profile #设置会话超时间为300秒 echo 'export HISTSIZE=5'>>/etc/profile #命令行历史记录保留5个 echo 'export HISTFILESIZE=5'>>/etc/profile #历史记录文件保留5个 tail -3 /etc/profile
10.加大文件描述符
在 unix/liux 里面,你的服务只要开启一个进程,就要占用文件描述符的。liunx 默认 是 1024,如果描述符少了,你的访问量多了,你的服务器支撑不了,所以要把描述符加大echo '* - nofile 65535 ' >>/etc/security/limits.conf
11.优化系统内核
cat >>/etc/sysctl.conf<<EOFnet.ipv4.tcp_fin_timeout = 2 #保持在FIN-WAIT-2状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。net.ipv4.tcp_tw_reuse = 1 #开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。net.ipv4.tcp_syncookies = 1 #开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN攻击。默认为0,表示关闭。net.ipv4.tcp_keepalive_time = 600 #keepalived启用时TCP发送keepalived消息的拼度。默认位2小时。net.ipv4.tcp_keepalive_probes = 5 #TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值。net.ipv4.tcp_keepalive_intvl = 15 #探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值。net.ipv4.ip_local_port_range = 1024 65000 #指定外部连接的端口范围。默认值为32768 61000。net.ipv4.tcp_max_syn_backlog = 262144 #表示SYN队列的长度,预设为1024,这里设置队列长度为262 144,以容纳更多的等待连接。net.ipv4.tcp_max_tw_buckets =5000 #系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量。net.ipv4.tcp_synack_retries = 1 #设置内核放弃连接之前发送SYN+ACK包的数量。net.core.somaxconn = 16384 #定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载 web服务环境来说,默认值为128,偏小。net.core.netdev_max_backlog = 16384 #表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。net.ipv4.tcp_max_orphans = 16384 #表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS攻击。此值不能太小。EOFsysctl -p
12.安装系统常用软件
yum install tree namp dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -yyum install psmisc net-tools bash-completion vim-enhanced -y
13.优化SSH远程配置
cp /etc/ssh/sshd_config{,.ori}1.修改SSH服务监听的默认端口号sed -i -e "17s/.*/Port 6222/g" /etc/ssh/sshd_config 2.修改SSH服务监听的默认IP地址(0.0.0.0,代表全部监听)sed -i -e "19s/.*/ListenAddress 192.168.2.3/g" /etc/ssh/sshd_config 3.关闭SSH登录root用户权限,提升系统安全性sed -i -e "38s/.*/PermitRootLogin no/g" /etc/ssh/sshd_config 4.禁止空密码用户SSH连接登录系统sed -i -e "64s/.*/PermitEmptyPasswords no/g" /etc/ssh/sshd_config
14.锁定关键系统文件优化
#1.锁定关键账号文件,防删防改chattr +i /etc/passwd /ect/shadow /etc/group #2.锁定其他关键文件chattr +i /etc/inittab /etc/fstab /etc/sudoers#3.查看结果lsattr /etc/passwd /ect/shadow /etc/group /etc/inittab /etc/fstab /etc/sudoers#4.解除锁定chattr -i /etc/passwd /ect/shadow /etc/group
15.为GRUB增加密码
#用户可以随意进入GRUB引导界面,这样就会存在安全隐患。例如,有人靠近设备就可以破解root密码,为了防止别人进入单用户模式破解密码,可以添加GRUB密码#123grub2-setpassword
16.服务器禁ping
echo "net.ipv4.icmp_echo_ignore_all=1" >>/etc/sysctl.confsysctl -p
划线
评论
复制
发布于: 2020 年 04 月 29 日阅读数: 52
版权声明: 本文为 InfoQ 作者【桥哥技术之路】的原创文章。
原文链接:【http://xie.infoq.cn/article/7aa3205bf15b71d15434cb899】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
桥哥技术之路
关注
真实而自由 2020.04.29 加入
自动化运维实践者、IT项目管理理念分享、个人工作总结
评论