1.将计算机的BIOS设置为光驱引导,并插入CentOS-7光盘,正常情况会进入安装页面,如下:
2.选择Test this media & install CentOS 7
3.等待载入完成进入欢迎界面。
4.选择安装过程所用的语言,我们可以选择中文(简体)为例,并选择Next。 注:在此选择的语言也会成功安装后系统的缺省语言。
5.本地化以及SECURITY无需配置项无需更改。
6.进入软件更改。
7.选择基础设施服务器附加开发工具点击完成。
由于实际使用情况比较复杂,建议通过脚本化安装完成更具体的软件包定制。
8.然后选择安装位置。
9.选择我要配置分区,单后选中sda,点击完成。
10.由于本教程使用虚拟机来演示,实际安装过程中请结合实际情况安排空间。 点击+号创建分区,首先创建/boot挂载点,大小500MB,然后创建swap挂载点,当系统内存高于32G时,将SWAP设为32G,低于16G,则为内存的*2,然后创建/挂载点,大小100G,最后创建home挂载点,将剩余所有空间分给home。点击完成,接受更改。
11.至此已经可以开始安装系统,在安装系统的过程中还需要设置root密码。
12.然后等待安装完成,重启主机。
系统配置
1.锁定特殊的用户
Linux提供了各种不同的角色的系统账号,在系统安装完成后,默认会安装很多不必要的用户和组,如果不需要某些用户,应立即锁定他们,因为账号越多,系统就越不安全,从而很可能被黑客利用,威胁服务器的安全。
2.账号管理
按照操作系统账号的功能和使用目可以将账号分为管理账号、程序账号和普通账号。
管理账号包括:root和具有部分root特权的账号,例如root、zx、ua、aiuap、bomc等。
程序账号:程序账号主要是指应用系统用于在程序内配置使用的账号,一般通过其他主机远程登录,账号使用者拥有账号密码。此类账号主要用途是sftp和ftp,该类账号密码由使用者维护,此类账号必须禁止ssh登录和登录后的目录切换。
普通账号:管理账号和程序账号之外的其他账号全部为普通账号,普通账号包括应用部署账号和个人账号。应用程序部署账号用于程序的部署和维护。个人账号主要用于业务人员或应用维护人员查询日志和进程。
3. 合理使用sudo命令
禁止超级用户直接登录系统,只允许普通账号登录系统,如果这些账号需要特殊权限,通过配置/etc/sudoers来完成。此处以bomc和aiuap账号sudo配置为例,在/etc/sudoers添加以下内容:
4. 禁止Ctrl+Alt+Del键盘关闭命令
在Linux的默认设置下,同时按下Ctrl+Alt+Del组合键,系统将自动重启,这个策略非常不安全,因此要禁止Ctrl+Alt+Del组合键重启系统,方法如下:
系统版本 | 方法 |
Centos6 | sed -i 's/exec/#exec/g' /etc/init/control-alt-delete.conf |
Centos7 | rm /usr/lib/systemd/system/ctrl-alt-del.target |
5. 使用sshd服务进行远程访问时,需要对sshd服务进行如下安全配置:
6. 使用shell历史命令记录功能
Linux下可以用history命令查看用户所有的历史操作记录,有助于运维人员进行系统审计和问题排查,但是默认的history命令只 能查看用户历史操作记录,并不能区分每个用户操作命令的时间,这一点对于排查问题来说十分不方便,将一下代码添加到/etc/profile文件中,可实现详细记录登录过系统的用户、IP地址、shell命令以及详细操作步骤:
7. 对于系统软件的安全,作为一个运维人员要有定期检查并试图修复漏洞的意识。修复漏洞的常见办法就是升级软件,将软件始终保持在最新的状态,可以在一定程度上保证系统安全性,根据日常安全侧漏洞扫描的经验,系统安装后,要到系统官网上下载openssh、openssl、ntp、vsftp最新版本的RPM包,升级到最新版本,以修复已知的漏洞。
8. 密码安全策略
通过设置密码强度安全策略,可以有效的防止密码被**的几率,并促使账号所有者养成良好密码设置,以及定期修改密码的习惯。
9. 日志安全设置
通过设置系统日志功能,可以方便运维人员进行系统审计和问题排查,具体设置如下:
10. 设置账户自动登出时间
为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现。将以下字段加入到/etc/profile 中即可(对所有用户生效)。
echo 'export TMOUT=180' >> /etc/profile
11. 主机名命名规范
(1)资源池主机
资源池主机命名规范: 地区-机房-主机发放日期-业务名称-虚拟机编号 例如:LY-IDC-171028-xxxx-VM01(洛阳,IDC机房,2017年10月28日,业务名称xxx,vm01)
(2)物理机命名规范
物理机命名规范: 地区-机房-设备位置编号-业务名称 HLJ-JX-J0801-xxx(黑龙江,进乡机房,J08机柜的自下而上第1台主机,业务名称xxx的服务器)
(3)Vsphere虚拟机命名规范
虚拟机命名规范: 地区-机房-宿主机位置编号-虚拟机编号-xxx HLJ-JB-F0102-VM01-xxx(黑龙江,江北机房,F01机柜自下而上的第2台主机的第一个虚拟机,业务名称为XXX的服务器)
12. Umask设置
Umask统一设置为027,此时用户新建的目录权限为750,新建的文件权限为640,设置方法如下:
echo "umask 027" >> /etc/profile
13. 关闭SELINUX和防火墙
目前在线公司已通过统一的硬件防火墙和防病毒设施进行安全防护工作,为了便捷快速的部署业务系统,预防不可预知的由于权限问题影响业务系统的正常运行,系统安装后,关闭SElinux和系统防火墙。
系统版本 | 操作目的 | 操作命令 |
Centos6 | 关闭SElinux | sed -i '/SELINUX/ s/enforcing/disabled/g' /etc/selinux/config setenforce 0 |
Centos7 | 关闭SElinux | sed -i '/SELINUX/ s/enforcing/disabled/g' /etc/selinux/config setenforce 0 |
Centos6 | 关闭防火墙 | chkconfig iptables off chkconfig ip6tables off service iptables stop service ip6tables stop |
Centos7 | 关闭防火墙 | systemctl disable firewalld.service systemctl disable iptables.service systemctl disable ip6tables.service systemctl stop firewalld.service systemctl stop iptables.service systemctl stop ip6tables.service |
14. 网卡绑定
网卡绑定采取bond的方式,具体配置方法参照如下:
#!/bin/bash
############
SET_IPADDR=$1
SET_PREFIX=$2
SET_GATEWAY=$3
SET_IF1=$4
SET_IF2=$5
############
cat > /etc/sysconfig/network-scripts/ifcfg-${SET_IF1} <<EOF
DEVICE=${SET_IF1}
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-${SET_IF2} <<EOF
DEVICE=${SET_IF2}
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-bond0 <<EOF
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
ONBOOT=yes
IPADDR=${SET_IPADDR}
PREFIX=${SET_PREFIX}
GATEWAY=${SET_GATEWAY}
BONDING_OPTS='mode=active-backup miimon=100'
EOF
15. 配置yum源
配置yum源,使用yum升级软件,安装方便,自动解决增加和删除RMP包是遇到的依赖性问题,可以同时配置多个资源库,配置文件简单明了,可以保持和RPM数据库的一致性。
16. 内核调优
通过对内核参数的一些基本调整,可以对业务更加稳定、高效的运行。根据以往的经验,对内核参数做以下基本调整:
cat >> /etc/sysctl.conf < net.ipv4.conf.all.accept_redirects=0
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.ip_local_port_range = 40000 60000
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv6.conf.all.disable_ipv6 = 1
EOF
注:以上kernel参数的调整为基础优化调整,根据不同的业务场景可进行有针对性的更改和优化。
17. limit设置
/etc/security/limits.conf文件会对每个经过pam验证登录的用户进行资源的限制,对改文件进行设置,可以有效的控制资源的使用情况,设置如下:
cat >> /etc/security/limits.conf < * soft nofile 65535
* hard nofile 65536
* hard core 0
* soft core 0
EOF
sed -i 's/4096/65535/g' /etc/security/limits.d/20-nproc.conf
echo "* hard nproc 65536" >> /etc/security/limits.d/20-nproc.conf