Linux基础优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础优化相关的知识,希望对你有一定的参考价值。
安装完linux系统,如何做基础优化? 1、yum源 2、SELinux 3、关闭防火墙 4、精简开机自启动服务 5、利用sudo管理文件 6、中文字符集显示 7、时间服务器同步 8-9、ssh远程连接 10、历史记录文件数 11、调整linux系统文件描述符数量 12、内核优化 13、调整内核参数文件 14、隐藏linux版本号: 15、锁定系统文件 16、禁止linux系统被ping 17、定时清理邮件服务临时目录垃圾文件 18、linux运维思想最小化原则
一、yum源的简单理解 yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题。 本地源,如光盘里面一般会附带一些软件,这时可以把光盘当成本地源来安装软件。 网络源比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装,至于修改yum源,是因为网络源比本地源丰富的多。 更改yum源: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo
二、SELinux功能 安全工具,控制太严格,生产环境不用它,使用其他安全手段。 SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。 Security-Enhanced Linux (SELinux)由以下两部分组成: 1) Kernel SELinux模块(/kernel/security/selinux) 2) 用户态工具 SELinux是一个安全体系结构,它通过LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。 SELinux对系统用户(system users)是透明的,只有系统管理员需要考虑在他的服务器中如何制定严格的策略。策略可以根据需要是严格的或宽松的。 关闭SElinux方式: 1)通过vi /etc/selinux/config 进入配置文件进入修改 2)通过sed 命令操作: [[email protected] ~]# cp /etc/selinux/config /etc/selinux/config.ori #---操作前的备份 [[email protected] ~]# sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config [[email protected] ~]# grep SELINUX=disabled /etc/selinux/config SELINUX=disabled #---修改结果 3)临时关闭: [[email protected] ~]# setenforce 0 [[email protected] ~]# getenforce Permissive(临时生效) 4)查看对比修改后的文件: 命令:(vimdiff)diff /etc/selinux/config.ori /etc/selinux/config 输出: 7c7 < SELINUX=enforcing --- > SELINUX=disabled SELINUX=disabled(永久生效)重启系统
三、关闭防火墙 查看防火墙:iptables -L -n 关闭防火墙: [[email protected] ~]# /etc/init.d/iptables stop iptables:将链设置为政策 ACCEPT:filter [确定] iptables:清除防火墙规则: [确定] iptables:正在卸载模块: [确定] 查看防火墙状态: [[email protected] ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination
四、精简开机自启动服务 为什么要设置开机自启动? 1、节省开机时间、加快启动速度 2、节省资源开销 3、减少安全隐患 需要保留的开机自启动: sshd:远程连接linux服务器 rsyslog:是操作系统提供的一种机制,系统的守护程序通常会使用rsylog将各种信息系统日志文件中 network:激活关闭各个网络接口 crond:用于周期性地执行系统及用户配置的任务计划(周期性的处理一些重复问题的计划任务服务) Sysstat:是一个软件包,监测系统性能及效率的一组工具 Sysstat软件包集成的主要工具为: iostat工具提供CPU使用率及硬盘吞吐效率的数据 mpstat工具提供与单个或多个处理器相关的数据 sar工具负责收集、报告并存储系统活跃的信息 精简开机实现方法: 1、通过setup来修改 2、通过ntsysv来修改 3、通过chkconfig来实现 [[email protected] ~]# chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk ‘{print "chkconfig",$1,"off"}‘|bash [[email protected] ~]# chkconfig --list|grep 3:on|awk ‘{print $1}‘|grep -Ev "sshd|network|rsyslog|crond|sysstat"|sed -r ‘s#(.*)#chkconfig \1 off#g‘|bash [[email protected] ~]# for name in `chkconfig --list|grep 3:on|awk ‘{print $1}‘|grep -Ev "sshd|network|rsyslog|crond|sysstat"`;do chkconfig $name off;done [[email protected] ~]# chkconfig --list|grep 3:on
五、利用sudo管理文件 描述:在visudo进入文件增加普通用户的命令路径使得普通用户环境下利用sudo进行命令操作。 [[email protected] ~]# useradd oldboy [[email protected] ~]# echo 123456|passwd --stdin oldboy [[email protected] ~]# \cp /etc/sudoers /etc/sudoers.ori [[email protected] ~]# echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers [[email protected] ~]# tail -1 /etc/sudoers [[email protected] ~]# visudo -c ----------------------------------------------------------------------------------------- root ALL=(ALL) ALL oldboy ALL= (ALL) NOPASSWD: ALL /bin/ls 用户 用户管理的机器 临时拥有的用户角色 /bin/ls 注意:内置命令无法用到sudo。 -----------------------------------------------------------------------------------------
六、中文字符集显示 字符集是一套文字符号及其编码:GBK 、UTF-8(企业广泛使用) 调整服务器端字符集:调整字符集路径(/etc/sysconfig/i18n) [[email protected]/]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" #---英文字符集 SYSFONT="latarcyrheb-sun16" [[email protected]/]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori #---修改前备份 利用sed替换字符文件修改为中文字符: [[email protected]/]# sed-i ‘s#LANG="en_US.UTF-8"#LANG="zh_CN.UTF-8"#g‘/etc/sysconfig/i18n [[email protected]/]# cat /etc/sysconfig/i18n LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" [[email protected]/]# source /etc/sysconfig/i18n #---使得修改后的文件生效 [[email protected]/]# echo $LANG zh_CN.UTF-8
七、时间服务器同步 [[email protected]/]/usr/sbin/ntpdate time.nist.govov #---互联网同步时间 [[email protected]/]# date -s "2015/10/3 9:34" 2015年 10月 03日星期六 09:34:00 CST [[email protected]/]# ntpdate time.nist.gov set the date and time viaNTP 3 Oct 09:35:21 ntpdate[28135]: adjust timeserver 132.163.4.103 offset 0.286494 sec [[email protected]/]# date date 查看时间 -s 修改时间 2015年 10月 03日星期六 09:48:46 CST [[email protected] /]# hwclock query and set the hardwareclock 2015年10月03日星期六 08时59分12秒 -0.737654 seconds crond :定时任务,每5分钟同步一次 [[email protected]/]# echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null2>&1" >>/var/spool/cron/root [[email protected] /]# crontab –l 定时生效 */5 * * * */usr/sbin/ntpdate time.nist.gov /dev/null 2>&1 echo ‘#time sync by oldboy at 2010-2-1‘ >>/var/spool/cron/root echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘ >>/var/spool/cron/root crontab -l
八、ssh远程连接安全 1、命令行安全: echo ‘export TMOUT=300‘ >>/etc/profile echo ‘export HISTSIZE=5‘ >>/etc/profile echo ‘export HISTFILESIZE=5‘ >>/etc/profile tail -3 /etc/profile . /etc/profile 2、解决连接断开问题 vim /etc/profile shifg+g注释掉最后三行 #export TMOUT=300 #export HISTSIZE=5 #export HISTFILESIZE=5
九、ssh远程连接慢的问题优化 解决连接速度慢: sed -ir ‘13 i #Port 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no\n#ListenAddress 10.0.0.61‘ /etc/ssh/sshd_config 或 vim /etc/ssh/sshd_config #81gg改为no #122gg改为no /etc/init.d/sshd restart 重启生效:/etc/init.d/sshd reload【平滑重启不影响用户】(restart) Linux下SSH远程连接服务慢的解决方案请见老男孩的博客: http://oldboy.blog.51cto.com/2561410/1300964
十、历史记录文件数设定 [[email protected] /]# export HISTSIZE=5 定义历史记录数5条 [[email protected] /]# history 28 cat ~/.bash_history 29 HISTFILESIZE=5 30 cat ~/.bash_history 31 HISTSIZE=5 32 history [[email protected] ~]# echo ‘export HISTFILESIZE=5‘ >>/etc/profile #---永久生效 [[email protected] ~]# tail -3 /etc/profile
十一.调整linux系统文件描述符数量 文件描述符是由无符号整数表示的句柄,进程使用它来标示打开文件。 文件描述符概念: 1、表示形式为整数数字(0-65535) 2、会占用文件描述符(标示打开文件) 查看默认文件描述符 ulimit-n 3、调整文件描述符 [[email protected] ~]# ulimit -SHn 65535 设置文件描述符数量 [[email protected] ~]# ulimit -n 65535(32768) [[email protected] ~]# echo ‘* - nofile 65535‘ >>/etc/security/limits.conf 将修改的描述符数量写入文件 [[email protected] ~]# tail -1/etc/security/limits.conf * - nofile 65535
十二、内核优化 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 EOF
十三.调整内核参数文件 (/etc/sysctl.conf) vim/etc/sysctl.conf linux内核优化参数: -------------------------------------------------------------------- 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 ---------------------------------------------------------------------- 网络状态说明及优化命令和优化细节参考资料请看: http://yangrong.blog.51cto.com/6945369/1321594老男孩教育的优秀学生博文 http://oldboy.blog.51cto.com/2561410/1336488 sysctl -p 使得加载的参数生效
十四.隐藏linux版本号: [[email protected] ~]# cat /etc/issue CentOS release 6.7 (Final) Kernel \r on an \m [[email protected] ~]# cat /etc/issue.net CentOS release 6.7 (Final) Kernel \r on an \m [[email protected] ~]# >/etc/issue [[email protected] ~]# >/etc/issue.net [[email protected] ~]# cat /etc/issue
十五.锁定系统文件 相关的系统文件:/etc/passwd/etc/shadow /etc/group /etc/gshadow /etc/inittab [[email protected]~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab +i锁定系统文件 [[email protected] ~]# useradd dddd useradd: cannot open /etc/passwd [[email protected] ~]# rm -f /etc/passwd Do not use rm command. -f /etc/passwd [[email protected] ~]# \rm -f /etc/passwd rm: 无法删除"/etc/passwd": 不允许的操作 [[email protected] ~]# chattr -i /etc/passwd/etc/shadow /etc/group /etc/gshadow/etc/inittab -i解除系统文件 [[email protected] ~]# useradd dddd [[email protected] ~]# chattr +i /etc/passwd/etc/shadow /etc/group /etc/gshadow/etc/inittab [[email protected] ~]# lsattr /etc/passwd 查看系统文件属性 ----i--------e- /etc/passwd [[email protected] ~]# chattr -i /etc/passwd/etc/shadow /etc/group /etc/gshadow/etc/inittab [[email protected] ~]# lsattr /etc/passwd -------------e- /etc/passwd
十六.禁止linux系统被ping 内核中修改禁止ping,缺点是禁止自己ping echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all [[email protected] ~]# echo"net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf [[email protected] ~]# tail -1 /etc/sysctl.conf net.ipv4.icmp_echo_ignore_all=1 [[email protected] ~]# sysctl -p 生效: [[email protected] ~]# echo"net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf [[email protected] ~]# tail -1 /etc/sysctl.conf net.ipv4.icmp_echo_ignore_all=1 [[email protected] ~]# sysctl -p 还原禁ping: echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
十七.定时清理邮件服务临时目录垃圾文件 centos5系列的系统默认安装Sen时dmail服务,因此邮件临时存放地点的路径/var/spool/clientmqueue/. centos6默认情况下没有安转Sendmail服务,而是改装了Posfix服务,因此邮件存放地点的路径为:/var/spool/postfit/maildrop/ 以上两个目录很容易被垃圾文件填满导致系统的inode数量不够用,从而导致无地方存放文件 手动清理的方法: find /var/spool/clientmqueue/ -typef|xargs rm -f适合centOS5的sendmail服务 find /var/spool/postfix/maildrop/ -typef|xargs rm -f适合Centos6的postfix服务 定时清理的方法为:将上述命令写成脚本,然后做定时任务,每天晚上0点执行一次(定时任务再说)
十八.linux运维思想最小化原则 多一事不如少一事! 1、安装linux系统最小化,选包最小化,yum安装软件包也要最小化,无用的包不装。 2、开机自启动最小化 3、操作命令最小化 例如:用rm -f test.txt而不用rm -fr test.txt 4、登录linux用户最小化。 平时没有需求不用root登录,用普通用户登录即可 5、普通用户授权权限最小化, 即只给必须的管理系统的命令。 6、linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除。理论上限制掉。
本文出自 “Linuxgao” 博客,请务必保留此出处http://linuxgao.blog.51cto.com/11934904/1929588
以上是关于Linux基础优化的主要内容,如果未能解决你的问题,请参考以下文章