LINUX调优
一、Linux系统调优及安全设置
系统安装安全最小化原则说明
◆安装linux系统最小化,即选包最小化,yum安装软件最小化。
◆开机自启动程序服务最小化,即无用的服务不开启。
◆操作命令最小化原则,rm -f 1.txt 不用rm -fr 1.txt。
◆登录linux用户最小化原则,平时没有需求不用root登录,用普通用户登录。
◆文件及目录的权限设置最小化。一般建议设置权限:文件644,目录755。
◆各种网络服务,系统配置参数合理,不要最大化。
1、关闭selinux(也不是强制的)
执行命令:
setenforce 0
getenforce
cp /etc/selinux/config /etc/selinux/config.bak
sed -i 's@SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config
diff /etc/selinux/config.bak /etc/selinux/config
2、切换运行级别为3文本模式
执行命令:
cp /etc/inittab /etc/inittab.bak
sed -i 's@id:\(.*\):initdefault:@id:3:initdefault:@g' /etc/inittab
diff /etc/inittab.bak /etc/inittab /tmp/syscheck.log
linux的运行级别如下:
0:关机模式
1:单用户模式
2:无网络模式的多用户
3:文本模式
4:无用
5:图形界面模式
6:重启模式
3、精简开机自启动
执行命令:
LANG=en
for a in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $a off;done
for a in crond network rsyslog sshd;do chkconfig --level 3 $a on;done
chkconfig --list |grep 3:on >>/tmp/syscheck.log
另一种方法:
chkconfig --list|grep "3:on"|grep -vE "sshd|crond|network|rsyslog" |awk '{print $1}'|sed -r 's#^(.*)#chkconfig \1 off#g'|bash
chkconfig --list|grep "3:on"
4、更改ssh的远程登陆端口
执行命令:
/etc/init.d/iptables stop
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cat >>/etc/ssh/sshd_config<<EOF
#######by zhangsan 2016-11-11######
Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
#######by zhangsan 2016-11-11######
EOF
tail -8
/etc/ssh/sshd_config>>/tmp/syscheck.log
/etc/init.d/sshd
restart
关于GSSAPIAuthentication no参数的说明:
客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,则连接速率会比较慢。
5、加入sudo管理
可以用命令visudo或者vi /etc/sudoers
,一般用前者,因为前者会检查语法。
格式如下:
用户
机器=(授权那个角色的权利) 命令
zhangsan ALL=(ALL) /bin/rm
授权zhangsan可以以所有用户角色的权限,执行rm。
执行命令:
echo 'zhangsan ALL=(ALL) ALL'>>/etc/sudoers
tail -1
/etc/sudoers>>/tmp/syscheck.log
验证:
[zhangsan@c66-moban ~]$ rm -f /root/a.log
rm: cannot remove `/root/a.log': Permission denied
[zhangsan@c66-moban ~]$ sudo rm -f /root/a.log
[sudo] password for zhangsan:
6、更改字符集支持中文
[root@c66-moban /]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
执行命令:
cp /etc/sysconfig/i18n
/etc/sysconfig/i18n.bak
echo
'LANG="zh_CN.UTF-8"'>/etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo $LANG >>/tmp/syscheck.log
7、校准系统时间
执行命令:
echo '*/5 * * * * /usr/sbin/ntpdate
time.windows.com >/dev/null 2>&1'>/var/spool/cron/root
crontab -l >>/tmp/syscheck.log
[root@c66-moban /]# echo '*/5 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >/dev/null 2>&1' >>/var/spool/cron/root
[root@c66-moban /]# crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >/dev/null 2>&1
同步到
BIOS里面:
[root@C66-mode
~]# hwclock
2015年01月08日 星期四 19时58分26秒
-0.884854 seconds
8、调整连接工具的超时时间及历史记录数
l TMOUT=5 是指SecureCRT或者Xshell的连接超时时间
l HISTSIZE=5 是指当前shell命令history的最大值
l HISTFILESIZE=5 是指.bash_history文件中保存的命令条数最大值
执行命令:
echo 'TMOUT=300' >>/etc/profile
echo 'HISTSIZE=5' >>/etc/profile
echo 'HISTFILESIZE=5' >>/etc/profile
tail -3 /etc/profile
source /etc/profile
9、加大文件描述符
文件描述符是由无符号整数表示的句柄(一般使用范围0~65535),进程使用它来标识打开的文件。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。
对于内核而言,所有打开的文件都是通过文件描述符引用的。当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。
退出后再登陆,即生效
echo '* - nofile 65535 '
>>/etc/security/limits.conf
也可以加入开机自启动
cat >> /etc/rc.local <<EOF
#open files
ulimit -HSn 65535
#stack size
ulimit -s 65535
EOF
10、优化内核参数
执行命令:
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
#############################################################
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
sysctl -p
网络状态说明及优化参数,详细参见:
http://yangrong.blog.51cto.com/6945369/1321594
11、清空系统显示
执行命令:
>/etc/issue
>/etc/issue.net
可以加一些重要的系统提示!
[root@C66-mode
~]# echo " This is DataBase-Server,Please Be Careful!">/etc/motd
[root@C66-mode
~]# cat /etc/motd
This is
DataBase-Server,Please Be Careful!
12、特殊文件加锁
执行命令:
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/inittab
也可以把命令改名后再加锁:
mv /usr/bin/chattr /opt/zhangsan
/opt/zhangsan +i /etc/passwd /etc/shadow
/etc/group /etc/gshadow /etc/inittab
13、系统升级
执行命令:
cp /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
命令说明:
yum upgrade 只升级所有包,不升级软件和系统内核
yum update 升级所有包同时也升级软件和系统内核
升级建议:
新装的服务器 可以更新
运行的服务器,上线了。尽量不要更新
14、禁止linux系统被ping(非必须)
执行命令:
echo"net.ipv4.icmp_echo_ignore_all=1"
>> /etc/sysctl.conf
tail -1 /etc/sysctl.conf
sysctl -p
LINUX调优的更多相关文章
- 于erlang依赖的linux调优
[皇室]杭州-sunface(61087682) 上午 9:42:02 http://docs.basho.com/riak/latest/ops/tuning/linux/ 这篇文章对于erlang ...
- Linux调优(内存,CPU)
一.相关概念简介 system call:系统调用 time slice:cpu时间片 O(1):Linux系统进程调度器 page frame:分页 RSS:常驻内存集,无法被页面化的数据 MMU: ...
- 【转】转 Linux调优方案,sysctl.conf的设置
http://blog.sina.com.cn/s/blog_541086000100skq0.html proc/sys/net/ipv4/下各项的意义 http://blog.chinauni ...
- 转 Linux调优方案,sysctl.conf的设置
$ /proc/sys/net/core/wmem_max最大socket写buffer,可参考的优化值:873200 $ /proc/sys/net/core/rmem_max最大socket读bu ...
- Linux 调优方案, 修改最大连接数(ulimit命令)【转】
转自:http://blog.csdn.net/liangxiaozhang/article/details/8363435 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源 ...
- Linux 调优方案, 修改最大连接数-ulimit
Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制.下面我把某linux用户的最 ...
- Linux 调优方案--ulimit命令
可以用ulimit -a 来显示当前的各种用户进程限制.下面把某linux用户的最大进程数设为10000个: ulimit -u 10240 对于需要做许多 socket 连接并使它们 ...
- Linux调优(文件系统)
查看单个文件是否发生碎片化(被存在磁盘非连续磁盘块上) # filefrag -v /var/log/messages 查看文件系统是否存在大量碎片(会显示空闲离散的块) # dumpe2fs /de ...
- 高负载linux调优
调整Linux内核参数: # vi /etc/sysctl.conf# tells the Kernel it's ok if services bind to non-existant IP ADD ...
随机推荐
- python TypeError: 'str' object does not support item assignment”
想替换string里的空格,遍历替换提示如题错误,查询得知string类型不可更改 import string s = "2013/2/12" b = s.replace('/', ...
- jQuery的插入
append(content) 概述 : 向每个匹配的元素内部追加内容. 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似 append(function(index ...
- iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途! 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法. 良好的 ...
- jquery------提供灵活的方法参数
index.jsp <h1 >再次重逢的世界</h1> my.js $(document).ready(function(){ (function($){ $.fn.shado ...
- mongo(删除操作)
在使用MongoDB的时候,经常会用到MongoDB的删除操作,以下是我在使用MongoDB删除操作的总结 首先是删除用户: db.removeUser("用户名") 其次是删除数 ...
- ecshop后台"云提醒未激活 点击激活" 补丁删除方法
ecshop后台"云提醒未激活 点击激活" 补丁删除方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2015-01-15 ecshop后台提 ...
- 锋利的jQuery-6--序列化函数serialize()和serializeArray()在表单提交中的作用
在通过jQuery ajax提交表单的时候,通常用下边的方法获取表单内容. var form = 'add-account-form'; //表单id $('#' + form).submit(fun ...
- c/s架构nginx+php-fpm通信原理
FastCGI是一个运用于Http Server和动态脚本语言间通信的接口,多数流行的Http Server都支持FastCGI,包括Apache.Nginx和lighttpd等.同时,Fas ...
- 【Derby 系列】Apache Derby 功能特点
前言 进入Derby 的应用开发之前,浏览一下derby的功能集,这样在真正选择的时候,可以决定Derby是不是适合你的应用. 本篇的是[Derby 系列]初级的第3篇. 1. Derby 是关系型数 ...
- [转]优化wp_head()
经过对head的优化,我的博客访问速度也快了好多,在此过程中也了解到wp_head()模板函数的作用,可以再次优化,特此记录. 步骤:加入到function.phpremove_action(‘wp_ ...