CentOS6系统优化

[root@xuliangwei ~]# cat /etc/redhat-release //系统环境CentOS6.6 CentOS release 6.6 (Final) [root@xuliangwei ~]# uname –a //内核版本2.6.32 64位操作系统 Linux xuliangwei.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux1.1精简开机系统为什么要设置开机自启动? 好处: 1、节省开机时间、加快启动速度。 2、节省资源开销 3、减少安全隐患 保留5个必须:sshd|rsyslog|network|crond|sysstat sshd 远程连接Linux服务器时需要用到这个服务器程序,所以必须要开启,否则将无法连接Linux服务器。 rsyslog 是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息记录系统日志文件中,Centos6以前服务器的名字为syslog network 系统启动时,若想激活/关闭各个网络接口,则应(必须)考虑开启。 crond 该服务用于周期性地执行系统及用户配置的任务计划。有要周期性执行的任务,任要开启,此服务几乎是生产场景必须要用的一个软件。 sysstat sysstat是一个软件包,包含检测系统性能及效率的一组工具,这些工具对于系统性能数据很有帮助,比如CPU使用率,硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务器的助手。 sysstat软件包集成的主要工具为: iostat 工具提供CPU使用率及硬盘吞吐效率的数据; mpstat 工具提供与单个或多个处理器相关的数据; sar 工具负责收集、报告并存储系统活跃的信息; 其他不用开机自启动的处理方法: 1). setup-->SystemServices-->取消*表示关闭 2)netsysv-->取消*表示关闭 3)使用chkconfig进行关闭 chkconfig name off 4)export LANG=en 配置临时英文语言 使用for循环,配合awk清理不需要开机自启动服务 // chkconfig --list|grep "3:on"|grep -Ev "sshd|rsyslog|network|crond|sysstat"| awk '{print "chkconfig", "$1","off"}'|bash // for i in `chkconfig --list | awk '{print $1}' | grep -Ev "sshd|network|rsyslog|sysstat|crond"`; do chkconfig $i off; done // chkconfig --list |grep 3:on |awk '{print $1}'|grep -Ev "crond|network|rsyslog|sshd|sysstat" |sed -r 's/(.*)/chkconfig 1 off /g' |bash 1.列出我们需要的服务 chkconfig --list | egrep "syslog|cron|network|ssh" | awk '{print $1}' 2.关闭所有服务 for n  in'chkconfig --list | awk '{print $1}'';do chkconfig $n off; done 3.仅开启我们需要的服务 for n in 'chkconfig --list| egrep "syslog| crond|network|ssh" | awk'{print $1}'';do chkconfig --level 3 $n on ;done 4 开启所服务3的级别 for name in `chkconfig --list|awk '{print $1}'`;do chkconfig --level 3 $name on; done 5 开启所有系统服务运行级别为on for name in `chkconfig --list|awk '{print $1}'`;do chkconfig --level 0123456   $name on; done 6 关闭所有系统服务运行级别off for name in `chkconfig --list|awk '{print $1}'`;do chkconfig --level 0123456   $name off; done1.2Linux最小化安装运维思想最小化原则 2.1、安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装。 2.2、操作命令最小化。例如:用rm -f text.txt 而不用rm –rf。 2.3、登录Linux用户最小化。平时没有需求不用root登录,用普通用户登录即可sudo。 2.4、普通用户授权权限最小化,即只给必须的管理系统的命令。 2.5、Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除。(理论上禁止)1.3SSH优化配置文件修改:######xuliangwei###### Port 52113 UseDNS no PermitRootlogin no GSSAPIAuthentication no PermitEmpasswords no ######2015-10-06###### sed添加方式:[root@student ~]# sed -ir '12 iPort 52113nUseDNS nonPermitRootlogin nonGSSAPIAuthentication no' /etc/ssh/sshd_config [root@student ~]# sed -i '/#Port 22/i ######xuliangwei######nPort 52113nUseDNS nonPermitRootlogin nonGSSAPIAuthentication non PermitEmptyPasswords non######2015-10-06######' /etc/ssh/sshd_config [root@xuliangwei ~]# /etc/init.d/sshd restart //重启生效 Stopping sshd: [ OK ] Starting sshd: [ OK ]1.4SUDO提权[root@ student ~]# sed -i '98 ax1uliangwei ALL=(ALL) NOPASSWD:ALL' /etc/sudoers 普通用户能够提权至root权限,并且不需要执行密码 [root@ student ~]# visudo -c 检测sudo文件是否配置正确 /etc/sudoers: parsed OK1.5中文乱码中文字符集调整,调整服务器端字符集, Xshell客户端连接工具也需要调整为UTF-8 [root@ student ~]# cat /etc/sysconfig/i18n //调整为zh注意大小写 LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" [root@oldboy ~]# source /etc/sysconfig/i18n //source配置文件生效 [root@oldboy ~]# echo $LANG zh_CN.UTF-8 英文字符集调整 export LANG=en_US.UTF-8 //临时生效 sed或者 vim修改配置文件 “/etc/sysconfig/i18n” 更改 LANG="en_US.UTF-8" > /etc/sysconfig/i18n && echo "LANG=en_US.UTF-8"> /etc/sysconfig/i18n && source /etc/sysconfig/i18n //自动更改永久生效 1.6时间同步time.nist.gov time.windows.com //时间服务器 date -s "2015/05/28 12:00" date手动修改时间同步 echo '#time sync by oldboy at 2010-2-1' >>/var/spool/cron/root //往crond写入注释信息 echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root //ntpdate定时和互联网时间同步 服务器在50-100台之间搭建时间同步服务器ntpserver1.7优化历史记录history 查看历史记录 默认100条,防止黑客进入服务器,查看到机密信息 参数: -c:清空历史记录 -d:指定删除一行 export HISTSIZE=5 [root@student ~]# export HISTSIZE=5 命令行只看见5条信息(控制终端) [root@student ~]# history 查看是否只存留5条 730 history 731 ls 732 history 733 export HISTSIZE=5 734 history [root@student ~]# echo 'export HISTSIZE=5' >>/etc/profile 写入全局配置文件,永久生效控制终端只有5条信息 [root@student ~]#source /etc/profile 立即生效 [root@student ~]# export HISTFILESIZE=5 ~/.bash_historty(控制用户家目录下的记录) [root@student ~]# cat ~/.bash_history Test Welcome to xuliangwei Linux EOF Exit [root@student ~]# echo 'export HISTFILESIZE=5' >>/etc/profile 写入全局配置文件,永久生效。当前用户家目录下~/.bash_history [root@student ~]#source /etc/profile 立即生效 [root@student ~]# history -c 清空历史记录终端 [root@student ~]# history 734 history export HISTTIMEFORMAT="%F %T `whoami`" 记录历史命令执行时间以及是谁执行(生产必加) 1.8终端超时[root@student ~]# export TMOUT=600 //临时生效 [root@student ~]# echo "export TMOUT=600" >> /etc/profile //永久生效1.9加大文件描述符启动进程使用它来表示打开的文件。每个进程启动都会占用文件描述符,如果过文件描述符不够,会导致进程失败 ulinit -n 查看默认文件描述符 参数: -S:软 -H:硬 [root@student ~]# ulimit -SHn 65535 //临时生效调整文件描述符 [root@student ~]# echo "* - nofile 65535" >>/etc/security/limits.conf //永久生效调整文件描述符(退出终端可生效)1.10锁定系统关键文件[root@student ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 锁定文件系统 [root@student ~]# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 查看锁定文件 ----i--------e- /etc/passwd ----i--------e- /etc/shadow ----i--------e- /etc/group ----i--------e- /etc/gshadow ----i--------e- /etc/inittab [root@student ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 解除锁定 [root@student ~]# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 再次查看 -------------e- /etc/passwd -------------e- /etc/shadow -------------e- /etc/group -------------e- /etc/gshadow -------------e- /etc/inittab1.11禁止Linux被ping[root@student ~]# echo "net.ipv4.icmp_echo_ignore_all=1">>/etc/sysctl.conf //禁止Linux被ping会增加系统安全(自己也无法ping) [root@student ~]# echo "net.ipv4.icmp_echo_ignore_all=0">>/etc/sysctl.conf //还原禁ping [root@student ~]# sysctl -p //不管禁止还是开启都需要使其生效(一般工作中我们用防火墙)1.12调整yum源由于默认的yum源是从centos官网下载会很慢,调整为国内的速度会快很多。[root@student ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.xuliangwei.20150629 //备份yum源 [root@student ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo //CentOS6源 [root@student ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //CentOS 7源1.13隐藏Linux版本号1.14定时清理垃圾文件CentOS6 默认情况下没有安装sendmail服务,而是改装了postfix服务,因此邮件存放地点的路径为/var/spool/postfix/maildrop/。 以上两个目录很容易被垃圾文件填满导致系统的inode数量不够用,从而导致无法存放文件。 手动清理方法如下: [root@student ~]#find /var/spool/postfix/maildrop/ -type f | xarfs rm -f //适合CentOS6的Postfix服务 定时清理方法为:将上述命令写成脚本,然后做定时任务,每天晚上0点执行一下。1.15关闭iptables防火墙学习一般关闭掉防火墙,如果生产环境在做调试[root@student ~]# iptables -L –n //查看防火墙 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@student ~]# /etc/init.d/iptables stop //关闭防火墙 iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ]1.16关闭SElinux防火墙SELINUX是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它关闭了,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。修改/etc/selinux/config--> SELINUX=enforcing修改为SELINUX=disabled sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 使用sed替换关闭selinux getenforce 查看selinux当前环境 setenforce 临时关闭 1.开启 0.关闭 permissive1.17Linux内核优化这儿所列参数是老师生产中常用的参数:
把参数添加到/etc/sysctl.conf中,然后执行sysctl -p使参数生效,永久生效net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl =15 net.ipv4.tcp_retries2 = 5 net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_orphans = 32768 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_wmem = 8192 131072 16777216 net.ipv4.tcp_rmem = 32768 131072 16777216 net.ipv4.tcp_mem = 786432 1048576 1572864 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.ip_conntrack_max = 65536 net.ipv4.netfilter.ip_conntrack_max=65536 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 如下内容,如果不开启iptables防火墙,会报错 #net.bridge.bridge-nf-call-ip6tables = 0 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0 #net.ipv4.ip_conntrack_max = 65536 #net.ipv4.netfilter.ip_conntrack_max=65536 #net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180企业面试:Linux系统如何优化?1.sudo管理用户授权 (不用root管理,以普通用户的名义通过sudo提权) 2.更改默认的远程连接SSH服务端口,禁止root用户远程连接,(提前建立普通用户)(甚至更改为只监听内网IP) 3.精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、sysstat) 4.设置运行级别为3(文本模式) 5.服务器时间同步。 6.关闭SELINUX防火墙 7.关闭防火墙(iptables),(在工作场景中,如果有外部IP一般打开) 8.设置回话的超时时间及历史记录数。 9.配置yum更新源,从国内更新源下载安装软件包。 10.调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。 11.定时自动清理邮件目录垃圾文件,防止inodes节点被占满(注意centos5和centos6目录不同) 12.Linux内核参数优化/etc/sysctl.conf,执行sysctl -p 生效。 13.更改字符集,是其支持中文,(但建议还是用英文字符集,防止出现乱码。) 14.锁定关键系统文件如/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab处理以上内容后把chattr、lsattr改名为xuliangwei,这样就安全多了。 15.清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的信息。 16.清除多余的系统虚拟账号。 17.给grub菜单加密码。 18.禁止被PING 19.升级漏洞软件(yum/rpm升级)1.18CentOS6优化脚本

相关内容推荐