centos7初始化配置

经常会安装centos 7 mini版安装系统来做实验,每次安装之后就需要重新部署很多东西,以后就来看这篇文章吧。入门级别。

配置源

使用aliyun源的做为yum源。

1
2
3
4
5
6
rm -f /etc/yum.repos.d/*.repo
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 http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum groupinstall "System Management" "Development tools" -y
yum -y install tcpdump bash glibc nmap dstat vim-enhanced screen curl dos2unix expect net-snmp net-snmp-utils libicu libicu-devel libstdc++ gcc-c++ libgcc libgcc.i686 sysstat lshw python-simplejson tcptracert lrzsz wget mtr unzip net-tools strace bind-utils bash-completion ntpdate lsof

配置完成之后,就开始安装一些软件包了。

修改网卡名

Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、wlan0 更难读,比如 ens33 。现在修改回原来的网卡名,添加net.ifnames=0 biosdevname=0参数:

1
2
3
4
[root@localhost ~]# grep GRUB_CMDLINE_LINUX /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
#重新生成 grub 配置文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

然后重新启动系统,通过ip addr可以看到网卡名称已经变为 eth0 。然后修改网卡配置即可。

关闭SELINUX与firewall

selinux、firewall、NetworkManager这三个东西用不习惯,直接关闭,并启用iptables服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 关闭 selinux,重启后生效 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 设置 selinux 状态,临时生效命令
setenforce 0

# 停止 firewall
systemctl stop firewalld.service
systemctl disable firewalld.service

# 设置 iptables service
yum -y install iptables-services
systemctl enable iptables.service

#关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager

优化sshd

可以优化登陆速度:

1
2
3
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
systemctl restart sshd

打开文件数

1
2
3
4
5
6
7
ulimit -SHn 102400
cat >> /etc/security/limits.conf << EOF
* soft nofile 102400
* hard nofile 102400
* soft nproc 102400
* hard nproc 102400
EOF

时区与同步时间

1
2
3
4
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate ntp1.aliyun.com
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
source /etc/locale.conf

历史记录

将所有人的操作都放置在一个文件里面,方便查日志:

1
2
3
4
5
6
7
8
9
10
11
cat>>/root/.bashrc<<EOF
datestamp_history(){
export infodate=\`date "+%F %T"\`
export infowho=\`whoami\`
export infohis=\`history 1\`
echo \$infodate \$infowho' => '\$infohis >> /root/.history-timestamp
}
export PROMPT_COMMAND=datestamp_history

export LANG=C
EOF

保存特殊权限文件

1
2
3
4
5
find / -path "/proc" -prune -o -type f -perm -4000 -o -perm -2000 -print

#检查系统中所有suid及sgid文件,将检查的结果保存到文件中,可在以后的系统检查中作为参考
find / -path /proc -prune -o -type f -user root -perm -2000 -exec md5sum {} \; > /usr/share/.history/2000.txt
find / -path /proc -prune -o -type f -user root -perm -4000 -exec md5sum {} \; > /usr/share/.history/4000.txt

此文章仅供个人使用,不能用于生产环境,切记。

参考资料

https://www.linuxprobe.com/initial-minimal-centos.html

CentOS 通用优化和配置

0%