刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写

本篇博文主要是参考并借鉴老男孩老师的优秀博文外加自己总结及写的优化脚本!博文地址:http://oldboy.blog.51cto.com/2561410/1336488

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

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

主要优化的目录

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

1.网络配置优化

2.关闭selinux及清除iptables链

3.设定运行级别runlevel

4.精简启动项

5.配置yum源

6.设置字符集

7.配置sudo授权管理

8.ssh服务优化

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

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

11.设置时间同步

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

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

一、网络配置优化

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

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

二、关闭selinux及清除iptables链

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

关闭selinux

[[email protected] /]# 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

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

[[email protected] /]# sed ‘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系统一般很少会重启的所以还需要加个命令

[[email protected] /]# setenforce 0
[[email protected] /]# getenforce
Permissive

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

清除iptables链

[[email protected] /]# iptables -F            #清除规则链
[[email protected] /]# 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
[[email protected] /]# service iptables save   #保存规则链
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

三、设定运行级别

设定linux运行级别为runlevel3

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

四、精简启动项

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

查看级别3开的服务

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

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

可以去setup --system service设置

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

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

[[email protected] ~]for cleaner in `chkconfig --list|grep "3:on"|awk ‘{print $1}‘|grep -vE "crond|network|rsyslog|sshd"`;do chkconfig $cleaner off;done
[[email protected] ~]# chkconfig --list|grep "3:on"
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

其中grep -E可以用egrep代替

五、配置yum源

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

可以参考这个网站http://www.centoscn.com/CentOS/config/2014/0920/3796.html

首先备份原来的yum源

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo
[[email protected] yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak

其次下载网易yum源

[[email protected] yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

然后重命名

[[email protected] yum.repos.d]# cp CentOS6-Base-163.repo CentOS-Base.repo
cp: overwrite `CentOS-Base.repo‘? y

最后生成缓存

[[email protected] yum.repos.d]# yum clean all&&yum makecache

六、设置字符集

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

查看字符

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

修改中文字符集

[[email protected] ~]# sed  ‘s#LANG="zh_CN.GB18030"#LANG="en_US.UTF-8"#g‘ /etc/sysconfig/i18n   
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
[[email protected] ~]# source /etc/sysconfig/i18n                                                
[[email protected] ~]# cat /etc/sysconfig/i18n 
LANG="zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"

修改英文字符集

[[email protected] ~]# sed -i ‘s#LANG="zh_CN.GB18030"#LANG="en_US.UTF-8"#g‘ /etc/sysconfig/i18n            
[[email protected] ~]# source /etc/sysconfig/i18n 
[[email protected] ~]# cat /etc/sysconfig/i18n 
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

七、配置sudo授权管理

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

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

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

root    ALL=(ALL)       ALL

kysida  ALL=(ALL)       ALL

八、ssh服务优化

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

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

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

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

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

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

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

*  soft    nofile  65535

*  hard    nofile  65535

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

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

[[email protected] ~]# df -h
Filesystem      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

手动删除clientmquene中的垃圾文件

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

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

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

十一、设置时间同步

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

首先安装ntpdate命令

[[email protected] /]# yum -y install ntpdate

同步时间

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

设置自动同步时间

[[email protected] etc]# crontab -e
*/30 * * * * /usr/sbin/ntpdate ntp.fudan.edu.cn

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

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

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

[[email protected] /]#  </etc/issue

或者这条命令也行

[[email protected] /]# cat /dev/null > /etc/issue

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

使用chattr 命令

[[email protected] /]# chattr +i /etc/passwd etc/group /etc/shadow /etc/gshadow /etc/inittab

如果想解锁那就 chattr -i

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

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

时间: 2024-10-11 12:43:51

刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写的相关文章

JDK1.10+scala环境的搭建之linux环境(centos6.9)

---恢复内容开始--- 第一步:安装jdk1.10版本 进入网页 http://oracle.com/technetwork/java/javase/downloads/index.html  下载 我选择是rpm安装的方式,所以我下载了rpm包:切记 不用--no-cookies可能在安装的时候要报 类似 error: open of <html> failed: No such file or directory...的错 wget --no-cookies --no-check-cer

Linux环境下JDK/Eclipse一键安装脚本

-------------------------------------------------------------------- author:jiangxin Email:[email protected] Blog:http://blog.csdn.net/jiangxinnju -------------------------------------------------------------------- 假设大家必须在Linux环境下使用java开发应用程序,会感觉Lin

Java web项目在linux环境下自动编译和部署脚本

自动编译脚本 build.sh, 放置在项目根目录下. #!/bin/bash # check args # init path CURRPATH=`pwd` LIBDIR="$CURRPATH/WebContent/WEB-INF/lib" SRC="$CURRPATH/src" CLASS="$CURRPATH/WebContent/WEB-INF/classes" if [ -a $CLASS ]; then rm -rf $CLASS/*

linux环境中搭建网站并进行数据库连接

注:所有内容都是妹纸我亲自搭建成功运行,如果有问题,欢迎发邮件来交流. [email protected](此QQ只用来收邮件,一般情况下是不会登陆的,所有有问题可以发邮件哦~我会回复的) 在我的上一篇文章里面,已经告诉亲们怎么搭建一套完整的 Tomcat+mysql+jDK环境,这篇文章着重讲如何发布war包,搭建一个测试环境.下面一个一个步骤来. [发布测试网站:war包] 1.首先要普及一点,我们一般发布java工程里面的war包,要发布是直接上传到tomcat 包里面的webapps文件

搭建树莓派交叉编译环境

本学期选了嵌入式开发课程,所以第一步就是要准备环境.硬件环境自不必说,购买了树莓派二代.sd卡,读卡器.路由器.网线这些都是以前就有的.软件环境的搭建包括如下几步: 1.搭建虚拟机Linux环境2.烧录树莓派系统3.在虚拟机linux环境中搭建本地开发与编译环境4.在虚拟机linux上搭建交叉编译环境5.开发一段简单的程序,通过本地编译后,再进行交叉编译.之后将编译好的程序放到树莓派上执行进行测试. 具体步骤: 1.搭建虚拟机linux理论上说,在windows环境下如果也能找到满足要求的交叉编

windows下eclipse搭建android_ndk开发环境

安装cygwin: 由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用.通过它,你就可以在不安装linux的情况下使用NDK来编译C.C++代码了.下面我们一步一步的安装cygwin吧. 首先要下载cygwin的安装程序setup.exe,下载地址为: http://www.cygwin.com 下载完成

Windows搭建python开发环境,python入门到精通[一]

从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博客,打算将python的training弄成一个简易的python系列,供大家入门使用.Python语言自从20世纪90年代初诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.今天就让我们来搭建一个python的开发环境,Windows搭建python开发环境.一切从"Hello world

(1)Jenkins Linux环境下的简单搭建

(1)Jenkins Linux环境下的简单搭建 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ----百度百科 这是一款基于Java开发的工具.种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. 首先,所需要准备的工具JDK.Maven.资料上显示JDK版本最好高于1.7,并没有研究1.7以下版本,所谓"没有实际调研,就没有发言权",在此就不做过多

ant+jmeter 在Linux环境下接口自动化测试环境搭建(2)

上一篇讲过在Windows下搭建的方法,今天这里写一下在Linux环境下搭建的方法. 实验准备:Linux服务器一台. 服务器上安装好jdk,配置好环境变量. 服务器上配置好ant. 工具准备: Jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Jmeter下载地址 http://jmeter.apache.org/ Ant下载地址 http://ant.apache.org/ 环境准备: 所以