本篇博文主要是参考并借鉴老男孩老师的优秀博文外加自己总结及写的优化脚本!博文地址: 

虽然我并没有参加过老男孩老师的培训但是看过他的优秀视频和优秀博文,接受过他的熏陶与教育,在这里十分感谢老男孩老师!!

还有这篇博文之中一些操作与脚本的编写非常感谢京峰老师们的帮助!

主要优化的目录

我使用的linux版本是CentOS6.6 x86_64

1.网络配置优化

2.关闭selinux及清除iptables链

3.设定运行级别runlevel

4.精简启动项

5.配置yum源

6.设置字符集

7.配置sudo授权管理

8.ssh服务优化

9.调整服务器文件描述符

10.定时清理clientmqueue目录垃圾文件防止占满磁盘空间

11.设置时间同步

12.隐藏登录时的系统版本信息

13.锁定关键的系统文件(本可以变更chattr命令,由于一些用户添加,暂不写入)

一、网络配置优化

针对网络配置的优化我这里先介绍一下,由于我是linux初学者使用虚拟机,便于对自己虚拟机的管理,网络配置优化是包括IP地址的排序管理,gateway、netmask和dns的一致性等!

[root@optimization /]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0TYPE=EthernetONBOOT=yes                      #启动时激活网卡BOOTPROTO=static                #静态IPADDR=192.168.137.6            #IP地址,我的一般是6,7,8……NETMASK=255.255.255.0           #子网掩码GATEWAY=192.168.137.1           #网关[root@optimization /]# vi /etc/resolv.conf         nameserver 114.114.114.114      #配置DNS1nameserver 8.8.8.8              #配置DNS2[root@optimization /]# vi /etc/sysconfig/network        NETWORKING=yes                  #启动自动联网HOSTNAME=optimization           #主机名

二、关闭selinux及清除iptables链

为了防止出现各种问题一般都会将selinux关闭及防火墙关闭,这里我是清除iptables链.....

关闭selinux

[root@optimization /]# vim /etc/selinux/config # This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled           #将原来的enforcing改成disabled就可以了# SELINUXTYPE= can take one of these two values:#     targeted - Targeted processes are protected,#     mls - Multi Level Security protection.SELINUXTYPE=targeted

或者使用一条命令直接更改

[root@optimization /]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config # This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these two values:#     targeted - Targeted processes are protected,#     mls - Multi Level Security protection.SELINUXTYPE=targeted

一般的更改selinux在系统重启之前是不会生效的,但是linux系统一般很少会重启的所以还需要加个命令

[root@optimization /]# setenforce 0[root@optimization /]# getenforcePermissive

这样临时设置selinux为permissive状态,重启之后自然为disabled状态

清除iptables链

[root@optimization /]# iptables -F            #清除规则链[root@optimization /]# iptables -L            #查看规则链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@optimization /]# service iptables save   #保存规则链iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

三、设定运行级别

设定linux运行级别为runlevel3

[root@optimization /]# cat /etc/inittab |grep -v "#"id:3:initdefault:            #将id后面的数字改成3及命令行级别

四、精简启动项

刚刚做完的系统可以只保留crond(定时服务)、network(网络服务)、rsyslog(日志系统)、sshd(远程连接)这四个服务

查看级别3开的服务

[root@optimization ~]# chkconfig --list|grep "3:on" #由于下面开启的服务较多就不一一列举了

关闭其他服务只保留着四个服务

可以去setup --system service设置

或者ntsysv设置,但是这两种方法都比较麻烦

所以直接用下面方法就能直接执行

[root@optimization ~]for cleaner in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|rsyslog|sshd"`;do chkconfig $cleaner off;done[root@optimization ~]# chkconfig --list|grep "3:on"crond           0:off   1:off   2:on    3:on    4:on    5:on    6:offnetwork         0:off   1:off   2:on    3:on    4:on    5:on    6:offrsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:offsshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

其中grep -E可以用egrep代替

五、配置yum源

由于一些yum源是CentOS官网的源是国外的源网站比较慢,所以我准备配置网易源

可以参考这个网站

首先备份原来的yum源

[root@optimization ~]# cd /etc/yum.repos.d/[root@optimization yum.repos.d]# lsCentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo[root@optimization yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak

其次下载网易yum源

[root@optimization yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

然后重命名

[root@optimization yum.repos.d]# cp CentOS6-Base-163.repo CentOS-Base.repocp: overwrite `CentOS-Base.repo'? y

最后生成缓存

[root@optimization yum.repos.d]# yum clean all&&yum makecache

六、设置字符集

个人觉得还是英文字符集较好,这里只是提下如何修改,在后面的优化脚本中都是英文字符集   

查看字符

[root@optimization ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"

修改中文字符集

[root@optimization ~]# sed  's#LANG="zh_CN.GB18030"#LANG="en_US.UTF-8"#g' /etc/sysconfig/i18n   LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"[root@optimization ~]# source /etc/sysconfig/i18n                                                [root@optimization ~]# cat /etc/sysconfig/i18n LANG="zh_CN.GB18030"SYSFONT="latarcyrheb-sun16"

修改英文字符集

[root@optimization ~]# sed -i 's#LANG="zh_CN.GB18030"#LANG="en_US.UTF-8"#g' /etc/sysconfig/i18n            [root@optimization ~]# source /etc/sysconfig/i18n [root@optimization ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"

七、配置sudo授权管理

为了下面的ssh登录,并且需要减少root用户的使用

[root@optimization ~]# useradd kysida[root@optimization ~]# echo "123456"|passwd --stdin kysida&& history -c Changing password for user kysida.passwd: all authentication tokens updated successfully.[root@optimization ~]# visudo

在root 一行下面加上自己新增的用户

root    ALL=(ALL)       ALL

kysida  ALL=(ALL)       ALL

八、ssh服务优化

ssh服务优化包括两点:禁root用户登录;非22端口登录。

ssh优化是针对/etc/ssh/sshd.config这个文件

[root@optimization ~]# sed -i's/#Port 22/Port 52113/g;s/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config [root@c64 ~]# /etc/init.d/sshd reload #重新加载ssh配置[root@c64 ~]# netstat -lnt

九、调整服务器文件描述符

文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。

[root@optimization ~]# ulimit -n         #查看文件描述符大小1024[root@optimization ~]# ulimit -HSn 65535 #增加到文件描述符大小[root@optimization ~]# ulimit -n  65535

这只能临时保存,但是永久保存需要将下面两行写入/etc/security/limits.conf文件中保存并退出后生效

*  soft    nofile  65535

*  hard    nofile  65535

十、定时清理clientmqueue目录垃圾文件防止占满磁盘空间

查看系统当前的磁盘分区及磁盘使用率

[root@optimization ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda3        18G  1.8G   15G  11% /tmpfs           491M     0  491M   0% /dev/shm/dev/sda1       190M   27M  153M  16% /boot

手动删除clientmqueue中的垃圾文件

find /var/spool/clientmqueue/ -type -f |xargs rm -f 

若要定时清理则加入到crontab中

[root@optimization ~]# echo "0 0 * * * `find /var/spool/clientmqueue/ -type -f |xargs rm -f `> /dev/null 2/&1" >> crontab"

十一、设置时间同步

这里并不是部署ntp服务器来设置时间同步

首先安装ntpdate命令

[root@optimization /]# yum -y install ntpdate

同步时间

[root@optimization /]# ntpdate ntp.fudan.edu.cn 5 Aug 14:44:41 ntpdate[1882]: step time server 61.129.42.44 offset -26855.718069 sec

设置自动同步时间

[root@optimization etc]# crontab -e*/30 * * * * /usr/sbin/ntpdate ntp.fudan.edu.cn

十二、隐藏登录时的系统版本信息

一般的登录界面的时候会出现一些版本内核信息,也是为了安全将会隐去这些信息!

而这些信息在/etc/issue这个文件中

[root@optimization /]#  

或者这条命令也行

[root@optimization /]# cat /dev/null > /etc/issue

十三、锁定关键的系统文件

使用chattr 命令

[root@optimization /]# chattr +i /etc/passwd etc/group /etc/shadow /etc/gshadow /etc/inittab

如果想解锁那就 chattr -i 

但是如果更想安全的话自己可以偷偷的把这个命令换个名字哈哈!

这篇博文写的时间有点长,感觉不太理想,哎。。。脚本正在写我会尽快传上去的~~~