Linux:系统的基本优化

时间:2022-01-12 05:51:10

前言,在拥有一台服务器的时候,首先第一件事就要根据自己的需求进行初期的优化(装好系统了),以下是关于linux系统的基本优化,内容来源与网络,自己整理了以下,忘记来自哪个网址了,

centos 系统优化
1、内核参数优化

[root@wulaoer ~]# cat /etc/sysctl.conf #末尾添加如下参数
net.ipv4.tcp_syncookies = #1是开启SYN Cookies,当出现SYN等待队列溢出时,启用Cookies来处,理,可防范少量SYN攻击,默认是0关闭
net.ipv4.tcp_tw_reuse = #1是开启重用,允许讲TIME_AIT sockets重新用于新的TCP连接,默认是0关闭
net.ipv4.tcp_tw_recycle = #TCP失败重传次数,默认是15,减少次数可释放内核资源
net.ipv4.ip_local_port_range = #应用程序可使用的端口范围
net.ipv4.tcp_max_tw_buckets = #系统同时保持TIME_WAIT套接字的最大数量,如果超出这个数字,TIME_WATI套接字将立刻被清除并打印警告信息,默认180000
net.ipv4.tcp_max_syn_backlog = #进入SYN宝的最大请求队列,默认是1024
net.core.netdev_max_backlog = #允许送到队列的数据包最大设备队列,默认300
net.core.somaxconn = #listen挂起请求的最大数量,默认128
net.core.wmem_default = #发送缓存区大小的缺省值
net.core.rmem_default = #接受套接字缓冲区大小的缺省值(以字节为单位)
net.core.rmem_max = #最大接收缓冲区大小的最大值
net.core.wmem_max = #发送缓冲区大小的最大值
net.ipv4.tcp_synack_retries = #SYN-ACK握手状态重试次数,默认5
net.ipv4.tcp_syn_retries = #向外SYN握手重试次数,默认4
net.ipv4.tcp_tw_recycle = #开启TCP连接中TIME_WAIT sockets的快速回收,默认是0关闭
net.ipv4.tcp_max_orphans = #系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息
net.ipv4.tcp_mem =
net.ipv4.tcp_mem[]:低于此值,TCP没有内存压力;
net.ipv4.tcp_mem[]:在此值下,进入内存压力阶段;
net.ipv4.tcp_mem[]:高于此值,TCP拒绝分配socket。内存单位是页,可根据物理内存大小进行调整,如果内存足够大的话,可适当往上调。上述内存单位是页,而不是字节。

2、同步系统时间

[root@wulaoer ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  #设置Shanghai时区,这两个文件是同一个文件。
[root@wulaoer ~]# ntpdate cn.pool.ntp.org && hwclock -w #同步时间并写入blos硬件时间
[root@wulaoer ~]# crontab -e #设置任务计划每天零点同步一次
0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org ; hwclock -w

更多crontab的使用方法参考,猛点这里  

3、修改history记录

[root@wulaoer ~]# vi /etc/profile #修改记录100个
HISTSIZE=100

4、去除系统相关信息

[root@wulaoer ~]# echo "Welecome to Server" > /etc/issue
[root@wulaoer ~]# echo "Welecome to Server" > /etc/redhat-release

5、调整文件描述符大小

[root@wulaoer ~]# ulimit -n   #默认是65535 -u最大进程
65535
[root@wulaoer ~]# echo "ulimit -SHn 102400" >> /etc/rc.local #设置开机自动生效

表 1. ulimit 参数说明

选项 [options] 含义 例子

-H    设置硬资源限制,一旦设置不能增加。    ulimit – Hs ;限制硬资源,线程栈大小为 64K。
-S 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 ulimit – Sn ;限制软资源, 个文件描述符。
-a 显示当前所有的 limit 信息。 ulimit – a;显示当前所有的 limit 信息。
-c 最大的 core 文件的大小, 以 blocks 为单位。 ulimit – c unlimited; 对生成的 core 文件的大小不进行限制。
-d 进程最大的数据段的大小,以 Kbytes 为单位。 ulimit -d unlimited;对进程的数据段大小不进行限制。
-f 进程可以创建文件的最大值,以 blocks 为单位。 ulimit – f ;限制进程可以创建的最大文件大小为 blocks。
-l 最大可加锁内存大小,以 Kbytes 为单位。 ulimit – l ;限制最大可加锁内存大小为 Kbytes。
-m 最大内存大小,以 Kbytes 为单位。 ulimit – m unlimited;对最大内存不进行限制。
-n 可以打开最大文件描述符的数量。 ulimit – n ;限制最大可以使用 个文件描述符。
-p 管道缓冲区的大小,以 Kbytes 为单位。 ulimit – p ;限制管道缓冲区的大小为 Kbytes。
-s 线程栈大小,以 Kbytes 为单位。 ulimit – s ;限制线程栈的大小为 Kbytes。
-t 最大的 CPU 占用时间,以秒为单位。 ulimit – t unlimited;对最大的 CPU 占用时间不进行限制。
-u 用户最大可用的进程数。 ulimit – u ;限制用户最多可以使用 个进程。
-v 进程最大可用的虚拟内存,以 Kbytes 为单位。 ulimit – v ;限制最大可用的虚拟内存为 Kbytes。

6、关闭重启ctl-alt-delete组合键

[root@wulaoer ~]# vi /etc/init/control-alt-delete.conf
#exec /sbin/shutdown -r now "Control-Alt-Deletepressed" #注释掉

7、删除不必要的系统用户

[root@wulaoer ~]# userdel 用户名
[root@wulaoer ~]# groupdel 组名
[root@wulaoer ~]# usermod -G
[root@wulaoer ~]# vi /etc/group #找到GROUP1那一行,删除 A 或者用命令 gpasswd -d A GROUP
[root@wulaoer ~]# vi /etc/shadow
[root@wulaoer ~]# vi /etc/passwd

8、关闭不必要开机自启动服务

chkconfig --list | grep 3:on#查看开机自启动服务
chkconfig 服务名称 off #关闭自动的服务

9、禁用root远程登录

[root@wulaoer ~]# vi /etc/ssh/sshd_config
PermitRootLoginno
PermitEmptyPasswords no #禁止空密码登录
UseDNSno #关闭DNS查询

10、添加普通用户并进行sudo授权管理

[root@wulaoer ~]# useradd user
[root@wulaoer ~]# echo "123456" | passwd --stdin user #设置密码
[root@wulaoer ~]# vi /etc/sudoers #或visudo打开,添加user用户所有权限
root ALL=(ALL) ALL
user ALL=(ALL) ALL

11、清空防火墙并设置规则

[root@wulaoer ~]# iptables -F #清楚防火墙规则
[root@wulaoer ~]# iptables -L #查看防火墙规则
[root@wulaoer ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许通过的端口
[root@wulaoer ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@wulaoer ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[root@wulaoer ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@wulaoer ~]# iptables -A INPUT -p udp --dport 123 -j ACCEPT
[root@wulaoer ~]# iptables -A INPUT -p icmp -j ACCEPT
[root@wulaoer ~]# iptables -P INPUT DROP
[root@wulaoer ~]# /etc/init.d/iptables save #保存设置

12、关闭SELinux

[root@wulaoer ~]# vi /etc/selinux/config
SELINUX=disabled
[root@wulaoer ~]# setenforce #临时生效
[root@wulaoer ~]# getenforce #查看selinux状态

13、主机名设置

[root@wulaoer ~]# vi /etc/sysconfig/network
HOSTNAME=wulaoer
[root@wulaoer ~]# hostname wulaoer #临时生效

14、禁止无用服务

#! /bin/bash
service acpid off
service atd stop
service auditd stop
service avahi-daemon stop
service avahi-dnsconfd stop
service bluetooth stop
service conman stop
service cpuspeed stop
service cups stop
service dnsmasq stop
service dund stop
service firstboot stop
service hidd stop
service httpd stop
service ibmasm stop
service ip6tables stop
service irda stop
service kdump stop
service lm_sensors stop
service mcstrans stop
service messagebus stop
service microcode_ctl stop
service netconsole stop
service netfs stop
service netplugd stop
service nfs stop
service nfslock stop
service nscd stop
service ntpd stop
service oddjobd stop
service pand stop
service pcscd stop
service portmap stop
service psacct stop
service rdisc stop
service restorecond stop
service rpcgssd stop
service rpcidmapd stop
service rpcsvcgssd stop
service saslauthd stop
service sendmail stop
service setroubleshoot stop
service smb stop
service vncserver stop
service winbind stop
service wpa_supplicant stop
service xfs stop
service ypbind stop
service yum-updatesd stop
chkconfig acpid off
chkconfig atd off
chkconfig auditd off
chkconfig avahi-daemon off
chkconfig avahi-dnsconfd off
chkconfig bluetooth off
chkconfig conman off
chkconfig cpuspeed off
chkconfig cups off
chkconfig dnsmasq off
chkconfig dund off
chkconfig firstboot off
chkconfig hidd off
chkconfig httpd off
chkconfig ibmasm off
chkconfig ip6tables off
chkconfig irda off
chkconfig kdump off
chkconfig lm_sensors off
chkconfig mcstrans off
chkconfig messagebus off
chkconfig microcode_ctl off
chkconfig netconsole off
chkconfig netfs off
chkconfig netplugd off
chkconfig nfs off
chkconfig nfslock off
chkconfig nscd off
chkconfig ntpd off
chkconfig oddjobd off
chkconfig pand off
chkconfig pcscd off
chkconfig portmap off
chkconfig psacct off
chkconfig rdisc off
chkconfig restorecond off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig rpcsvcgssd off
chkconfig saslauthd off
chkconfig sendmail off
chkconfig setroubleshoot off
chkconfig smb off
chkconfig vncserver off
chkconfig winbind off
chkconfig wpa_supplicant off
chkconfig xfs off
chkconfig ypbind off
chkconfig yum-updatesd off