Linux系统优化
前言:这篇博客主机讲下安装Linux系统后调优及安全设置
基础环境
一、使用网易163镜像做yum源
默认国外的yum源速度很慢,所以换成国内的。
- 先备份
- 下载163yum源:http://mirrors.163.com/.help/CentOS6-Base-163.repo
- 清除旧缓存
- 创建新缓存
- 安装必要的软件包
二、关闭SElinux功能
详见上篇博客http://www.cnblogs.com/0zcl/p/6783681.html
三、关闭iptalbes防火墙
关闭防火墙的目的是为了让初学者学习更方便,将来在学了iptables技术后可再统一开启。在企业环境中,一般只有配置外网IP的linux服务器才需要开启防火墙,但即使是有外网IP,对于高并发高流量的业务服务器仍是不能开防火墙的,因为会有较大性能损失,导致网站访问很慢,这种情况下只能在前端加更好的硬件防火墙了。
关闭防火墙的具体操作过程如下:
service iptables stop
四、设定linux运行级别为3(文本模式)
设定运行级别(runlevel)为3,即表示使用文本命令行模式管理Linux。
grep 3:initdefault /etc/inittab ==>这里的3是Linux默认的运行级别,即文本模式
runlevel ==>查看当前系统运行级别
init 3 ==>切换运行级别3
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
重点
必须掌握linux的启动流程
必须掌握linux系统的7中运行级别
必须会临时切换,永久修改linux的启动模式
Linux启动流程还是蛮复杂的,我下面讲……
看下大神写的Linux启动流程:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html
五、精简开机系统自启动
与Windows系统一样,在Linux服务器运行的过程中,也会有很多无用的软件服务默认运行,这些服务占用了很多系统资源,而且也带来了安全隐患,因此要关闭。那么,企业生产场景的Linux主机到底要保留哪些开机自启动的服务呢?
系统必须开启的5个服务
- sshd:远程连接Linux服务器
- crond:周期性地执行系统及用户配置的任务计划。有要周期性执行的任务时,就要开启。
- rsyslog:将各种信息写到日志文件中。
- sysstat:sysstat是一个软件包,包含监测系统性能及效率的一组工具。eg:CPU使用率、硬盘和网络吞吐数据等
- network:系统启动时,若想激动/关闭各个网络接口,则须开启些服务
查找当前运行级别开启的服务
下面这句代码很强! 将除需要开启的5个服务外的其他服务关闭。目前对awk还不怎么了解。以后学习到再回来补充。
六、添加普通用户账号
- linux/unix是一个多用户,多任务的操作系统。
- 超级管理员(root):root默认在unix/linux操作系统中拥有最高的管理权限
- 普通用户:管理员或者具备管理权限的用户创建的。
权限越大,责任越大
- 可以使用如下命令添加一个普通用户账号,并为其设置口令:
- 一般情况下,在企业环境中应尽量避免直接到root用户下操作,除非有超越普通用户权限的系统维护需求,使用完后立刻退回到普通用户。
- 还可通过下面的命令一步到位的设置密码(其中,chensiqi为用户名,密码为123456)
--stdin为免交互模式
必须先创用户后,才能给用户设置密码,不然系统会找不到这个用户的。注意:这种方式虽然能免提示的直接创建用户,但是密码信息都被记录在了命令的历史记录里,因此,在创建完成以后切记history
-c 清空命令的历史记录信息。
- 超级用户root切换到普通用户下面,无需输入对应用户密码,这相当于“皇帝”去“大臣”家里。
- 普通用户切换到root或其他普通用户下,需要输入切换的对应用户密码
- 普通用户的权限比较小,只能进行基本的系统信息查看等操作,无法更改系统配置和管理服务
- $符号是普通用户的命令提示符,#符号是超级管理员的提示符。示例如下:
5. 查看主机名:
6. Linux命令提示符由PS1环境变量控制。示例如下:
这里的PS1=‘[\u@\h\W]\$’,可以通过全局变量配置文件/etc/profile来调整。
七、利用sudo控制用户对系统命令的使用权限
不用root账号是安全了,但管理不方便了,为了既安全又管理方便,可将需要root权限的普通用户加入sudo管理,这样用户就可以通过自己的普通账户登陆实现利用root的权限来管理系统了,当然也就不需要有root账号及密码了。
用户管理深度讲解(企业案例)
执行如下visudo命令,即可打开sudo的配置文件进行编辑。
使用visudo命令等效于vim /etc/sudoers(sudo的配置文件)
1、在/etc/sudoers 文件大约91行的下边添加需要提升为root权限的普通用户名及对应权限,格式如下:
2、修改完毕后,进行检查
3、切换到zcl用户,就可以通过执行类似sudo ls -l /root (sudo后面追加正常命令)的命令来以root用户的权限管理系统了
通过sudo授权管理后,所有用户执行授权的特殊权限格式为“sudo”命令
如果需要切换到root执行相关操作,可以通过“sudo su -”命令,注意,此命令提示的密码为当前用户的密码,而不是root密码。
执行“sudo -l”命令可以查看当前用户被授权的sudo权限集合。
对于linux系统bash的内置命令,一般无法进行sudo授权,例如:cd命令等。
- 在生产环境中,通常会禁止root远程登录,不过,会为每个运维人员建立一个普通账号,然后根据运维人员的需求,通过sudo控制登陆系统的权限2,事实证明这是一个不错的权限管理方式。当然,在有的生产环境里可能还会使用一种叫做ldap的统一认证登陆及授权管理的方式。即只要有一个账号和密码,全公司多个机房系统内通行无阻(系统登陆,svn,vpn等),有关这部分的知识,以后学到再写博客发出来……
- sudo授权对于bash的内置命令处理,是个难题,因为内置命令没有实体文件和路径,不过一般都有解决办法例如可以使用sudo ls替代sudo cd,有的人使用sudo bash后在使用内置命令,这是很危险的,不推荐。
八、Linux系统安全最小化原则说明
最小化原则对Linux系统安全来说极其重要:即多一事不如少一事。具体包括如下几个基本方面:
- 安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装
- 开机自启动服务最小化,即无用的服务不开启。
- 操作命令最小化。例如:能用“rm -f test.txt” 就不用“rm -fr test.txt”.
- 登陆linux用户最小化。平台没有特殊需求不登陆root,用普通用户登录即可。
- 普通用户授权权限最小化,即只给用户必须的管理系统的命令,不能啥都可以干。
- Linux 系统文件及目录的权限设置最小化,禁止随意创建,更改,删除文件
- 程序服务运行最小化,即程序服务运行应尽量不用root身份运行。
九、更改SSH服务端远程登录的配置
windows服务器的默认远程登陆端口是3389,管理员用户是administrator,普通用户是guest。Linux的管理用户是root,普通用户默认有很多个,远程连接默认端口port22.这些通常搞IT的人都知道。那么黑客是否也知道呢?他们当然知道,甚至比我们更清楚,所以,为了系统安全要隐藏或更改上述默认的配置才行。更改配置的命令如下:
- Port:代表端口,后边的数字代表sshd服务监听的是哪个端口
- PermitRootLogin :yes代表允许root用户远程登录,no代表不允许(如果是no则所有远程登陆连接都不能用root用户登陆,普通用户可以正常连接)
- PermitEmptyPasswords:yes代表允许用户输入空的登陆密码,no代表不允许
- UseDNS:指定sshd是否应该对远程主机名进行反向解析,以此检查此主机名是否与IP地址真实对应。默认值“yes”,建议改成“no”,否则可能会导致SSH连接很慢
- GSSAPIAuthentication:解决Linux之间使用SSH远程连接慢的问题
将以上信息更改后,(按e或i)可进入编辑模式,进入编辑模式后可修改配置。按esc可退出编辑模式,再敲入":wq"保存后退出
执行如下命令重启sshd服务,使修改的配置生效
提示:reload为平滑重启,不影响正在SSH连接的其他用户,因此要好于restart。
十、Linux中文显示设置
字符集就是一套字符号及其编码。目前Linux下常用的字符集有:
- GBK:定长,双字节,不是国际标准,支持的系统不少,实际企业用的不多。
- UTF-8:非定长,1~4字节,广泛支持,MYSQL也使用UTF-8,企业广泛用。可以通过快捷的命令方式在/etc/sysconfig/i18n中添加如下内容,使其支持中文显示:
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak ==> 备份
echo 'LANG="zh_CN.UTF-8"' > /etc/sysconfig/i18n ==> 永久支持中文
source /etc/sysconfig/i18n ==> source一下这个文件或者重启计算机,让配置文件立刻生效
修改前(执行setup命令)
修改后
提示
- 乱码的核心解决方法:
(1)系统字符集(UTF-8)
(2)xshell软件的字符集保持一致(UTF-8) - 注意“zh-CN.UTF-8”的大小写字母
- 这个中文显示配置需要跟你自己的SSH客户端的配置一致
最后彩蛋:
参考书藉:跟老男孩学Linux运维
参考博客:http://www.cnblogs.com/chensiqiqi/p/6228006.html
Linux系统优化的更多相关文章
- Linux系统优化及基础命令
1.Linux系统优化及基础命令 2. vim编辑器 vim 操作命令 在命令模式下操作 pageup 往上翻页(重要指数****)pagedown 往下翻页(重要指数****)H 移动到屏幕首行gg ...
- linux系统优化基础
linux系统优化基础 tags: linux 优化 kingle---### 1, 查看centos版本:cat etc/redhat-release 看看centos架构信息:uname -m 查 ...
- Linux 系统优化-workstation实践
Linux 系统优化 关闭SELinux [root@workstation ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/seli ...
- Linux系统优化脚本
#!/bin/bash ############################################################################## # File Na ...
- linux 系统优化+定时任务
安装软件 通过yum安装 自动补全工具:yum completion yum install -y tree bash-completion wget vim find -[TAB] 更改系统的yum ...
- 五、Centos linux系统优化-实战
一.linux用户名和密码远程登陆的修改: windows默认的远程端口和管理员:user:administrator prot:3389在管理--->本地用户和组 进行权限设置或者修 ...
- 四、Centos linux系统优化
1. 无论是哪个版本的linux,都会提供32位和64位的两个版本的镜像. i386为32位 x86_64为64位 两者的区别: 1)目标:需要大量的内存需求的行业为64位,普通用户的需求为3 ...
- Linux系统优化之网络IO调优
修改 vi /etc/sysctl.conf后执行命令 sysctl -p立即生效 首先,系统的不同也会导致 /etc/下的 文件的不同,原本powerpc 环境下 在 /etc/init.d/下有个 ...
- 007 Linux系统优化进阶
一.更改 ssh 服务远程登录的配置 windows:默认远程端口和管理员用户 管理员:administrator port :3389 Linux:远程连接默认端口和超级用户 管理员:root ...
随机推荐
- Python之数据序列化(json、pickle、shelve)
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...
- [译]Selenium Python文档:目录
作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...
- iOS开发之UIDynamic
1.概述 什么是UIDynamic? UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架. 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象.比如:重力.弹性碰撞等现象 ...
- react+webpack开发环境配置
react是目前非常热门的前端框架,提倡组件化开发.所谓的组件,简单理解,就是一个独立的页面部件(包括页面模版,样式,逻辑等),它是一个独立的整体. webpack,是一个模块打包工具,其主要功能,就 ...
- 开源一个vue2的tree组件
一直打算偷懒使用个现成的树组件,但是在github上找了一大圈没有找到真正满足应用开发的树组件,所以没办法只能自己写了一个,开源出来希望可以帮助到需要的人,同时如果大家觉得好用,我可以顺带骗骗★(希望 ...
- PMP和PRINCE2的价值各是什么?PRINCE2的含金量如何?PMP和prince2有什么区别?
很多学员朋友会问我同样的问题:"PMP和PRINCE2到底有什么区别?哪个含金量更高?"看来,这是所有要参加认证的朋友普遍关心的问题,我将根据自己的切身体会,从三个方面回答这个问题 ...
- websocket 项目应用
序言 很早就想用起来websocket,可惜需要后台服务的支持,技术的翻新总会给我带来巨大的冲击,最近后端人员学习了websocket相关后台技术.于是我们开始动起来了. 学习 这位大兄弟的文章 h ...
- iOS 一个方法首次安装滚播图 展示应用简介
//第一次安装时会有引导页展示 非第一次直接进入应用页 if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"isOne&q ...
- Ubuntu离线安装VSCode(附带前期准备工作)
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 在说正式步骤前先把准备工作做到位: 1.IP设置,这个因为是GUI的,手动设置 ...
- as3 操作图片,获取,设置实际像素,扣除透明区域
private var a:Loader = new Loader(); private function test():void { a.load(new URLRequest("asse ...