一、配置yum源

1、添加普通用户,使用普通用户su - root 登陆到root
2、设置更新源
Linux下方便安装软件的优秀工具叫做yum工具,linux的二进制软件包一般是rpm包,类似windows下的exe程序。
通过yum工具安装软件,默认获取rpm包的软件配置是从国外centos官方源下载。
因此,我们yum安装软件速度会比较慢,因此需要把默认获取rpm包的配置从国外官方源改为国内。
centos 5.8 64位yum 源
http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
centos 6.4 64位yum源
http://mirrors.163.com/.help/CentOS6-Base-163.repo

cd /etc/yum.repos.d/ //进入yum源
/bin/mv CentOS-Base.repo CentOS-Base.repo.ori //备份yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo //下载soho源
/bin/mv CentOS-Base-sohu.repo CentOS-Base.repo

说明:我们现在使用的是互联网上的门户网站提供的yum源,将来我们也可以把iso镜像或光盘配置成yum源,你还可以自己配置一个像门户网站提供的这种yum源
配置公网yum源及制作rpm包。
http://dreamway.blog.51cto.com/1281816/1110874 你们的师兄


3、使用yum upgrade 相当于windows下的打补丁,这个功能就用到了yum源,速度会比较快

4、安装必要的软件包
yum -y install lrzsz
一、关闭selinux
由于安装服务、软件中,经常和selinux冲突,在国内生产环境中,都是关掉selinux。
vi /etc/selinux/config //配置文件
默认是 enforcing启用状态
disabled是完全关闭状态
permissive是打印警告,selinu不生效
这种修改只能重启生效

gentenforce 0 临时关闭selinux,使用gentenforce查看当前selinux状态

二、设定runlevel 3
runlevel 查看当前系统运行级别
vi /etc/inittab //运行级别配置文件

三、精简开机启动服务
1、可以使用setup-system services 里面调整,这样调整起来效率低
2、或者ntsysv调出来
3、使用脚本一件关闭
#LANG=en

#显示出所有服务的所有运行级别的启动状态

chkconfig --list

#停止所有在运行级别3上开机启动的服务

for oldboy in `chkconfig --list|grep3:on |awk '{print $1}'`;do chkconfig --level 3 $oldboyoff;done

#在开启常用的服务,crond,network,rsyslog,sshd

for oldboy in crond network rsyslogsshd;do chkconfig --level 3 $oldboy on;done

#显示出所有3运行级别下的所有服务(根据需求决定哪个服务启动)

chkconfig --list |grep3:on

刚装完的操作系统,只需要开启几个服务,剩下的以后用到再开,这样安全,遵循最小化原则,没用的不启动。
crond 定时任务
network 网络服务
sshd 远程服务
syslog 日志服务


四、配置sudo授权管理
为什么使用sudo,如果普通用户使用su - root切换到管理员。进行非法操作,比如passwd root 修改root密码。那么系统其他用户将无法访问系统。这个普通管理员说白了,已经”功高盖主“
1、在root权限下执行visudo 在98行修改。命令使用逗号隔开,使用全路径。
# user MACHINE= COMMANDS
root ALL =(ALL) ALL
用户 机器=(授权哪个角色的权限) /usr/sbin/useradd,/usr/sbin/passwd

如果不授权,默认是不能执行useradd命令的
#su - liuyalei //切换到普通用户liuyalei$sudo /usr/sbin/useradd test //创建test用户,注意,前面要加上sudo,打个比方就是一把钥匙开一把锁。第一次执行sudo需要输入普通用户密码,防止被非法利用。下次5分钟内不需要输入密码

如果你是运维经理,带一个小弟,不会吧整个root的权限都给他,只给他一些普通权限。目的:既能让菜的运维干活,又不能威胁系统安全
如果你是小弟,你的运维经历要把自己的账户提升成root,那么直接复制,把root改成经理账号即可。下次经理直接使用sudo su - root 就能切到root权限下
boss ALL =(ALL) ALL

这样做,boss既有了root权限还不知道root的密码,但是每次切到root,都要输入boss普通用户密码,太繁琐了,可以在visudo中改成如下,这样就不用输入密码了,但是不安全。
boss ALL =(ALL) NOPASSWD: ALL


su命令总结
普通用户切换到root,使用su - 或者su - root 需要输入root密码
超级用户切换到普通用户不需要密码。但是centos5.8会有环境变量问题,需要给普通用户修改环境变量

su优点是给管理服务器带来方便,但是他的缺点就是大家都知道root的密码,而且还能改掉root的密码。在一定程度上,对服务器带来了很大的安全隐患。在工作用几乎有一半的问题来自于内部。

五、ssh服务优化
linux默认管理员root,port端口号是22,为了安全,我们要改掉默认的管理员和端口
配置文件/etc/ssh/sshd_config

[root@oldboy ~]# vi /etc/ssh/sshd_config添加如下内容保存。

####byoldboy#2011-11-24##

52113#→ssh连接默认的端口,谁都知道,必须要改。

PermitRootLogin no#→root用户***都知道的,禁止它远程登陆。

PermitEmptyPasswords no #→禁止空密码登陆

UseDNSno#→不使用DNS

GSSAPIAuthentication no

####byoldboy#2011-11-24##

重启sshd服务 #/etc/init.d/sshd restart
注意:yum,rpm安装的软件,启动程序一般都在/etc/init.d

六、修改linux默认字符集
[root@eric6 ~]# cat /etc/sysconfig/i18n //查看linux默认的字符集,默认是UTF-8
LANG="zh_CN.UTF-8"
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori //备份默认字符集
echo 'LANG="ZH_CN.GB18030"' >/etc/sysconfig/i18n //修改字符集为GB18030

什么是字符集?
简单的说就是一套文字符号及其编码。常用的字符集有:
GBK 定长 双字节 不是国际标准,支持的系统不少
UTF-8 非定长 1-4字节 广泛支持,MYSQL也使用UTF-8
这个不一定要修改,有的公司使用的就是UTF-8,因为linux对中文支持不好

七、服务器时间同步
如果时间不同步,经常带来业务不正常。如果公司规模小,可以使用联网手动同步,如果服务器多,可以在公司内部搭建ntp server。还有一种可能是公司服务器不出外网,比如内部数据库服务器。可以在内网搭建两台时间服务器,因为一台可能down掉,搭建两台可以做到冗余的目的(50台-100台以上在用)。

手动同步方法:
/sbin/ntpdate time.nist.gov //必须要联网
/usr/sbin/ntpdate time.nist.gov //6.4在/usr/sbin下


自动同步方法(每五分钟同步一次):
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

八、加大服务器文件描述符
最简单的说,在unix/liux里面,你的服务只要开启一个进程,就要占用文件描述符的。liunx默认是1024,如果描述符少了,你的访问量多了,你的服务器支撑不了,所以要把描述符加大。
#echo '* - nofile 65535 ' >>/etc/security/limits.conf
#ulimit -n //查看当前文件描述符数量
有的时候,你的服务器硬盘/内存没那么大,如果文件描述符过大,访问量过来,有可能把服务器搞垮。但是网友们通常都改成65535

九、清理clientmqueue垃圾文件防止inode被占满
#find /var/spool/clientmqueue/ -type -f |xargs rm -f

十、调整内核优化
所谓内核优化,主要是在linux中针对业务服务应用而进行的系统内核参数优化,优化并无特殊的标准,下面以常见生产环境linux的内核优化为例讲解,仅供大家参考:
内核调优

#vi /etc/sysctl.cof


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.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120







[root@eric6 ~]#
sysctl -p //使配置文件生效
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
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
error: "net.ipv4.ip_conntrack_max" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_max" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait" is an unknown key //防火墙未开启报错,不用管,5.8的话,不会报错

十、grep设置高亮显示

[root@eric ~]# vi /etc/profile

alias grep='grep --color=auto'

[root@eric ~]# source /etc/profile





centos 6.4 安装软件包:

软件自定义-基本

性能工具

调试工具

兼容程序库

开发工具

服务器----系统管理工具

系统管理---snmp/系统管理

优化总结

01)添加普通用户,通过sudo授权管理
02)定时自动更新服务器时间
03)配置yum更新源
04)关闭selinux和iptables
05)调整文件描述符数量
06)定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点被占满
07)精简开机自动启动服务(sshd,crond,network,syslog)
08)内核参数优化/etc/sysctl.config,sysctl -p 生效
09)更改默认ssh服务端口,及禁止root用户远程登陆
10)更改字符集,支持中文
11)锁定关键系统文件
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
12)清空/etc/issue,去除系统及内核版本登陆前的屏幕显示
13)更改系统登录后的信息 /etc/motd



j_0036.gif以上是基础的linux调优