CentOS6.x系统安装后的基本优化与安全设置

CentOS6.x系统安装后的基本优化与安全设置

一. 关闭SELinux功能

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。

** SELinux有三种状态: **

  1. enforcing - SELinux security policy is enforced.
  2. permissive - SELinux prints warnings instead of enforcing.
  3. disabled - No SELinux policy is loaded.

它的配置文件在:/etc/selinux/config和/etc/sysconfig/selinux,只不过/etc/sysconfig/selinux是连接到/etc/selinux/config的

[[email protected] ~]# ls -l /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 17 Nov 17 16:28 /etc/sysconfig/selinux ../selinux/config

用sed命令修改配置文件,使其永久关闭

方法1:

[[email protected] ~]# grep "^SELINUX=" /etc/selinux/configSELINUX=enforcing[[email protected] ~]# sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config[[email protected] ~]# grep "^SELINUX=" /etc/selinux/configSELINUX=disabled

方法2:

[[email protected] ~]# grep "^SELINUX=" /etc/selinux/configSELINUX=enforcing[[email protected] ~]# sed -i "s#$(awk -F "[= ]+" ‘NR==7{print $2}‘ /etc/selinux/config)#$(awk ‘NR==6{print $2}‘ /etc/selinux/config)#g" /etc/selinux/config[[email protected] ~]# grep "^SELINUX=" /etc/selinux/configSELINUX=disabled

查看及修改SELinux当前状态

[[email protected] ~]# getenforce
Enforcing[[email protected] ~]# setenforce ---命令直接回车可以看见帮助
usage: setenforce [ Enforcing | Permissive | 1 | 0 ][[email protected] ~]# setenforce 0[[email protected] ~]# getenforce
Permissive

生产场景Linux服务器不能随便重启,若要不重启关闭selinux,首先修改selinux配置问津改为disabled,然后再用setenforce修改当前状态,这样不重启也可以关闭selinux了。

二. 精简系统开机启动项

和Windows系统一样,在Linux服务器运行的过程中,也会有很多无用的软件服务默认就在运行,这些服务占用了很多系统资源,而且也带来了安全隐患,因此要关闭掉。

建议企业环境新装Linux系统之后必须自动开启的服务:

  1. sshd 远程连接Linux服务器,,需要这个服务程序,必须开启,否则无法远程连接Linux服务器(必须开启)
  2. rsyslog 是操作系统的一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件(必须开启)
  3. network 激活/关闭启动时的各个网口(必须)应考虑开启
  4. crond 周期的运行用户调度的任务,配置更简单,有周期执行任务时,要开启

将来根据服务器的业务使用场景可以进行调整,所以调整就是增加,上面的四个服务中只能增加不能减少,关闭系统所有开机自启动服务的方法:

方法1:

[[email protected] ~]# chkconfig --list|grep "3:on"|awk ‘{print $1}‘|sed ‘s#^#chkconfig #g‘|sed ‘s#$# off#g‘|bash

方法2:

[[email protected] ~]# chkconfig --list|grep 3:on|awk ‘{print $1}‘|sed -r ‘s#(.*)#chkconfig \1 off#g‘|bash

方法3:

[[email protected] ~]# chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog" |awk ‘{print $1}‘|sed -r ‘s#(.*)#chkconfig \1 off#g‘|bash

方法4:

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

方法5:

[[email protected] ~]# for n in `chkconfig --list|grep 3:on|awk ‘{print $1}‘`;do chkconfig --level 3 $n off;done

启动需要的服务

[[email protected] ~]# for n in crond network rsyslog sshd ;do chkconfig --level 3 $n on;done

检查开机自启动的服务器

[[email protected] ~]# chkconfig --list|grep 3:on
crond 0:off 1:off 2:off 3:on 4:off 5:off 6:off
network 0:off 1:off 2:off 3:on 4:off 5:off 6:off
rsyslog 0:off 1:off 2:off 3:on 4:off 5:off 6:off
sshd 0:off 1:off 2:off 3:on 4:off 5:off 6:off

三. 关闭iptables防火墙

[[email protected] ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ]

或者

[[email protected] ~]# service iptables stop

关闭开机自启动

[[email protected] ~]# chkconfig iptables off

检查

[[email protected] ~]# /etc/init.d/iptables status
 iptables: Firewall is not running.[[email protected] ~]# chkconfig --list iptables
 iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

四. Linux最小化原则

最小化原则:既多一事不如少一事,具体为:

1) 安装Linux系统最小化,既选包最小化,yum安装软件最小化;

2) 开机自启动程序服务最小化,既无用的服务不启动(少开一扇窗)

3) 操作命令最小化原则,rm –f test.txt,不用rm –rf test

4) 登陆Linux最小化,禁止root从远程终端登录,平时没有需求不用root,用普通用户登录。

5) 文件及目录的权限设置最小化。

6) 各种网络服务,系统配置参数合理,不要最大化。

五. 更改ssh服务端远程登录的配置

SSHD的配置文件在/etc/ssh/目录下

ssh_config:客户端

sshd_config:服务端

[[email protected]]# vim sshd_config

修改的内容

Port 61482               #更改SSH远程连接的端口PermitRootLogin no       #设置是否允许root通过ssh登录,这个选项从安全角度来讲应设成"no"。PermitEmptyPasswords no  #设置是否允许用口令为空的帐号登录。UseDNS no                #关闭UseDNS加速SSH登录GSSAPIAuthentication no  #是否允许使用基于GSSAPI的用户认证.默认值为"no".仅用于SSH-2.[[email protected] ssh]# /etc/init.d/sshd restart
Stopping sshd: [ OK ]Starting sshd: [ OK ]

当前连接不重启不会中断,占用的连接没断开不会断开

六. 通过sudo管理权限

让一个用户可以拥有原本他没有执行这个命令的权限,这个命令的权限可能是其他用户的,它可以用其他用户执行,用sudo执行的权限都是需要当前执行sudo用户的密码。

sudo 是一种程序,用于提升用户的权限,在linux中输入sodu就是调用这个程序提升权限,是一个命令解析器,sudo cd是错误的,因为cd是内置的,不是系统里面的,sudo可以运行系统带的命令,但无法用系统中一个软件中的命令

创建一个普通用户

[[email protected] ~]# useradd AnSheng

非交互式设置密码

[[email protected] ~]# echo "123456"|passwd --stdin AnSheng
Changing password for user AnSheng.
passwd: all authentication tokens updated successfully.#把echo的输出通过—stdin参数传输为zhanghui这个用户的密码
[[email protected] ~]# su - AnSheng[[email protected] ~]$ whoami
AnSheng

小提示:

1)超级管理员用户切换到普通用户不需要密码,普通用户切换普通用户需要密码,普通用户切换超级管理员用户也需要密码

2)普通用户的权限比较小,只能做基本的信息查看,无法更改(就像臣子进皇宫,我在皇宫里面无论做什么都需要向皇上请示,只有授权了才可以访问)

3)#超级管理员 $普通用户

[[email protected] ~]# visudo#在98行下面添加以下内容AnSheng ALL=(ALL) ALL#如果是命令使用下面的方式:AnSheng ALL=(ALL) /bin/touch(多个权限用“,”分开,ALL所有权限,NOPASSWD: ALL免密码)

查看设置sudo用户的权限

[[email protected] ~]# su - AnSheng[[email protected] ~]$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: #1) Respect the privacy of others.
 #2) Think before you type.
 #3) With great power comes great responsibility.[sudo] password for AnSheng: #输入密码Matching Defaults entries for AnSheng on this host:
 requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1
 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
 LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User AnSheng may run the following commands on this host: (ALL) ALL

七. 修改系统字符集

什么是字符集?

简单来说字符集就是一套文字符号及其编码,常用的字符集有GBK和UTF-8

Linux默认字符集路径:/etc/sysconfig/i18n

[[email protected] ~]# echo $LANG           #查看当前语言[[email protected] ~]# locale -a|grep zh    #查看已安装语言包,如果没有中文语言包就安装中文语言包[[email protected] ~]# LANG="zh_CN.gb18030" #修改当前字符集[[email protected] ~]# source /etc/sysconfig/i18n  #让其生效[[email protected] ~]# vi /etc/sysconfig/i18n      #修改字符集[[email protected] ~]# source /etc/sysconfig/i18n  #让其永久生效,Linux字符集和远程连接设置的字符集要对应。[[email protected] ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.ori[[email protected] ~]# vi /etc/sysconfig/i18n[[email protected] sysconfig]# source /etc/sysconfig/i18n[[email protected] sysconfig]# echo $LANGzh_CN.UTF-8[[email protected] sysconfig]# cat /etc/sysconfig/i18n#LANG="en_US.UTF-8"LANG="zh_CN.UTF-8"SYSFONT="latarcyrheb-sun16"

八. 设置Linux系统时间每五分钟同步一次

[[email protected] ~]# crontab -l[[email protected] ~]# echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null 2&1‘ > /var/spool/cron/root[[email protected] ~]# crontab -l*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null 2&1

九. 修改文件描述符

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

[[email protected] ~]# echo ‘* - nofile 65535 ‘ > /etc/security/limits.conf[[email protected] ~]# ulimit -n
65535#需要退出重新登陆下

还有一种方法就是直接把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次重起生效。

[[email protected] ~]# cat /etc/rc.local EOF#-S use the `soft‘ resource limit#-H use the `hard‘ resource limit#-n the maximum number of open file descriptorsulimit -HSn 65535#-s the maximum stack sizeulimit -s 65535
EOF

十. 隐藏Linux版本信息显示

清空/etc/issue

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

十一. 配置国内yum源

本次以阿里云的yum源为例

[[email protected] ~]# cd /etc/yum.repos.d/[[email protected] yum.repos.d]# mkdir repo[[email protected] yum.repos.d]# mv * repo
mv: cannot move `repo‘ to a subdirectory of itself, `repo/repo‘[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
--2015-11-26 21:31:23-- http://mirrors.aliyun.com/repo/epel-6.repo
Resolving mirrors.aliyun.com... 115.28.122.210, 112.124.140.210
Connecting to mirrors.aliyun.com|115.28.122.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1083 (1.1K) [application/octet-stream]
Saving to: “/etc/yum.repos.d/epel.repo”

100%[==========================================================================================================] 1,083 --.-K/s in 0s

2015-11-26 21:31:23 (196 MB/s) - “/etc/yum.repos.d/epel.repo” saved [1083/1083][[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
--2015-11-26 21:31:29-- http://mirrors.aliyun.com/repo/Centos-6.repo
Resolving mirrors.aliyun.com... 115.28.122.210, 112.124.140.210
Connecting to mirrors.aliyun.com|115.28.122.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2572 (2.5K) [application/octet-stream]
Saving to: “/etc/yum.repos.d/CentOS-Base.repo”

100%[==========================================================================================================] 2,572 --.-K/s in 0s

2015-11-26 21:31:30 (489 MB/s) - “/etc/yum.repos.d/CentOS-Base.repo” saved [2572/2572][[email protected] yum.repos.d]# yum clean all  #清楚缓存Loaded plugins: fastestmirror, security
Cleaning repos: base epel extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors[[email protected] yum.repos.d]# yum makecache  #重新生成缓存
时间: 2024-10-13 18:19:41

CentOS6.x系统安装后的基本优化与安全设置的相关文章

CentOS6.X 系统安装后的基础优化

特别说明:克隆之后的网卡修改 1 编辑eth0的配置文件:vi /etc/sysconfig/network-scripts/ifcfg-eth0, 删除HWADDR地址那一行及UUID的行如下: HWADDR=00:0c:29:08:28:9fUUID=cee39dbb-6a10-4425-9daf-768b6e79a9c9 2.清空以下上网规则: > /etc/udev/rules.d/70-persistent-net.rules. 然后reboot重启即可 优化条目: 修改ip地址.网关

系统安装后的基础优化

系统安装后的基础优化 1.更改远程连接用户和端口 [[email protected] ~]# cp /etc/ssh/sshd_config{,.bak_$(date +%F)} [[email protected] ~]# vim /etc/ssh/sshd_config Port 28888 #更改ssh远程连接端口 PermitRootLogin no #禁止 root 用户 ssh 远程登录 PermitEmptyPasswords no #禁止空密码登录 GSSAPIAuthenti

Linux运维二:CentOS6.6系统安装后的基本配置与优化

CentOS6.6系统安装完成后还需要做一些配置与优化: 一:Linux内核版本号介绍 查看内核版本: [[email protected] scripts]# uname -r 2.6.32-504.el6.x86_64 2 表示主版本号,有结构性变化才会更改 6 表示次版本号,新增功能时才变化,一般奇数表示测试版,偶数表示开发版 32 表示对次版本的修订次数或补丁包数 504 代表编译的次数,每次编译可对少数程序优化或修改 el6 用来表示版本的特殊信息,有较大的随意性 e1 代表企业版li

CentOS系统安装后的基础优化

在运维工作中,我们发现Linux系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行. 下面我就为大家简单讲解几点关于Linux系统安装后的基础优化操作. 注意:本次优化都是基于CentOS(5.8/6.4).关于5.8和6.4两者优化时的小区别,我会在文中提及的. 优化条目: 修改ip地址.网关.主机名.DNS等 关闭selinux,清空iptables 添加普通用户并进行sudo授权管理 更新yum源及必要软件安装 定时自动更新服务器时间 精简开机自启动服务 定时自动

服务器系统安装后初始化(优化)

一般在服务器安装完操作系统,上架之前都要进行初步的优化工作,总结几点如下: 1.修改ip地址: 若centos 7 请查阅前面的文档设置网卡信息 2.关闭 selinux 和 iptables 3.添加普通用户并进行sudo授权管理  :  vi /etc/sudoer 4.更新国内yum源及epel源,并安装必要的软件,wget.lrzsz.ntpdate.sysstat 5.同步服务器时间 ,ntpdata -s ntp.fudan.edu.cn  复旦大学时间服务器 6.精简开机启动项,如

ubuntu桌面版系统安装后切换到root用户并且设置root密码

方案一. ubuntu桌面版系统安装后切换到root用户方法: :~$ sudo -s -H 使用上述命令切换到root用户 在root用户下使用如下命令: :/# passwd 设置root用户的密码 通过上述方法修改ubuntu系统的root密码修改后可以通过如下命令: :~$ su root 接着输入root的密码切换用户到root用户 方案二. 此方法在网上很多网友都是用的这种方法比较简单 在安装完ubuntu系统以后进入安装时建立的用户使用如下命令: :~$ sudo passwd r

CentOS6.3系统安装后简单的配置和优化

全新以最小化包安装了的CentOS6.3系统,作为本地的Web服务器使用,现记录全过程配置网易163的yum源 1. 下载repo文件 下载地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo 2. 备份并替换系统的repo文件 [[email protected] ~]#cd /etc/yum.repos.d/ [[email protected] ~]#mv CentOS-Base.repo CentOS-Base.repo.bak [[

CentOS7系统安装后初始化基础优化

修改主机名 # vim /etc/hostname 更新内核 yum -y update 修改yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo h

Centos6.5安装后优化(实验用)

############################################################################## #Centos6.5安装后优化(实验用) ############################################################################## # 优化条目: # 1.修改ip地址.网关.主机名.DNS等 # 2.关闭selinux,清空iptables # 3.更新yum源及必要软件