CentOS7常见问题
RUN yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RUN sed -i '10s/enabled=0/enabled=1/' /etc/yum.repos.d/remi.repo
RUN sed -i '30s/enabled=0/enabled=1/' /etc/yum.repos.d/remi.repo
关闭防火墙
systemctl stop firewalld
安装雅黑字体
curl -L -O https://github.com/chenqing/ng-mini/raw/master/font/msyh.ttf &&
cp msyh.ttf /usr/share/fonts/msyh.ttf && \
fc-cache -fv
fc-list
查看linux系统已安装字体,若无该命令,需要先安装相关的软件包
yum install -y fontconfig mkfontscale
查看系统中已经安装的中文字体
fc-list :lang=zh
如无中文字体
cp msyh.ttf /usr/share/fonts/
mkfontscale
mkfontdir
fc-cache
可用fc-list :lang=zh查看,字体已安装成功
Centos 初始化建议
网络不通 (一定是有单词写错)
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
BOOTPROTO=dhcp => BOOTPROTO=static 将动态IP切换成静态
IPADDR=xxx.xxx.xxx.xxx dhclient IP地址
IPADDR1=xxx.xxx.xxx.xxx 辅助IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=xxx.xxx.xxx.xxx 网关地址
DNS1=119.29.29.29 DNS1服务器
IPONBOOT=on => ONBOOT=yes 开机自启动
ip route
default via 192.168.5.1 dev enp0s3 proto static metric 100 << 检查GATEWAY是否配置正确
15.0.0.0/8 dev enp0s3 proto kernel scope link src 15.14.12.150 metric 100
192.168.5.0/24 dev enp0s3 proto kernel scope link src 192.168.5.155 metric 100
- 首先创建被挂载的目录
mkdir /media/CentOS
- 然后我们将光盘挂载
mount /dev/cdrom /media/CentOS
PS:也可以将 ISO 文件直接挂载,命令如下mount -t iso9660 -o loop /root/centos7.iso /media/CentOS
- 使用命令
vi /etc/yum.repos.d/CentOS-Media.repo
打开本地源的配置文件,
将 enabled=0 改为 enabled=1,退出并保存即可 - 移除默认源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
配置本地ISO源
挂载cdrom
mkdir /mnt/cdrom
mount -t auto /dev/cdrom /mnt/cdrom或者挂载载 iso文件
mount -o loop ~/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom
移除线上仓库
mkdir /etc/yum.repos.d/bak
mv *.repo /etc/yum.repos.d/bak创建本地仓库配置
vi /etc/yum.repos.d/cdrom.repo
[base]
name=RedHat
#注:这里的baseurl就是你挂载的目录,在这里是/mnt/cdrom
baseurl=file:///mnt/cdrom
#注:这里的值enabled一定要为1
enabled=1
# gpgckeck的值无所谓
gpgckeck=0
#注:这个你cd /mnt/cdrom/可以看到这个key,这里仅仅是个例子
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
yum clean all
yum install vim*
镜像
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
文件同步
ansible all -m copy -a "src=~/.ssh/id_rsa dest=~/.ssh/id_rsa mode=600"
ansible all -m copy -a "src=../../etc/hosts dest=/etc/hosts "
设置系统时间
ansible all -a "timedatectl set-ntp true " # 开启时间同步
ansible all -a "timedatectl set-timezone Asia/Shanghai"
ansible all -a "hwclock --systohc --utc"
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate time.pool.aliyun.com
Centos配置时间同步
yum install -y ntp
ntpdate ntp1.aliyun.com
ntpdate -u cn.ntp.org.cn ntp.ubuntu.com
ansible all -a "ntpdate -u cn.ntp.org.cn"
Centos docker 无法删除docker容器 device or resource busy
方案1. systemctl start ntpd && systemctl start docker 保证先启动ntpd服务,然后再创建docker container,就不会有任何问题。
方案2. 修改/usr/lib/systemd/system/docker.service配置文件[Service]段中加入MountFlags=slave,解决Bug
基于systemd 方式的ntpd 服务启动配置文件中设置“PrivateTmp=true”,导致ntpd 私有名字空间中挂接信息(/proc/$ntpd_pid/mounts)存在docker container 挂接磁盘信息,Docker 销毁container时需要卸载挂接磁盘,此时出现冲突导致docker 销毁container动作失败
更新系统内核
ansible all -a "grub2-editenv list"
ansible all -a "grub2-set-default 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)'"
ansible all -m copy -a "src=../../etc/yum.repos.d/MariaDB.repo dest=/etc/yum.repos.d/MariaDB.repo mode=0644"
Centos配置阿里源
1、备份原来的源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.获取CentOS 7阿里源
aliyun.repo curl -so /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
epel.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3.生成缓存
yum makecache
Centos 配置清华源
- mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
- wget http://mirrors.aliyun.com/repo/Centos-7.repo -P /etc/yum.repos.d/
- mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
- yum install -y epel-release
- yum install -y centos-release-openstack-mitaka
sed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/epel.repo
sed -i "s/mirrorlist/#mirrorlist/g" /etc/yum.repos.d/epel.repo
sed -i "s#http://download.fedoraproject.org/pub#https://mirrors.tuna.tsinghua.edu.cn#g" /etc/yum.repos.d/epel.repo
sed -i "s#http://elrepo.org/linux#https://mirror.tuna.tsinghua.edu.cn/elrepo#g" /etc/yum.repos.d/elrepo.repo
sed -i "s#mirror.centos.org#mirrors.163.com#g" /etc/yum.repos.d/CentOS-OpenStack-mitaka.repo
yum clean all
yum makecache
Centos mongo
#!/usr/bin/env bash
# install mongodb
cat <<EOF >/etc/yum.repos.d/mongodb.repo
[mongodb-org]
name=MongoDB Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el'$'releasever/
gpgcheck=0
enabled=1
EOF
sudo yum makecache
sudo yum install mongodb-org -y
sed -i 's/127.0.0.1/0.0.0.0/' /etc/mongod.conf
systemctl restart mongod
echo "/software/mongodb/bin/mongod --config /software/mongodb/mongo.config" >> /etc/rc.local
gitlab
# 清华大学开源软件镜像站
# https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/
echo -e "[gitlab-ce]\nname=Gitlab CE Repository\nbaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el\$releasever/\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/gitlab-ce.repo
sudo yum makecache
sudo yum install gitlab-ce
chmod og-rwx /etc/cron.d
chmod og-rwx /etc/cron.monthly
chmod og-rwx /etc/cron.weekly
chmod og-rwx /etc/cron.daily
chmod og-rwx /etc/cron.hourly
chmod og-rwx /etc/crontab
chmod og-rwx /boot/grub2/grub.cfg
/etc/sysctl.d/99-cis.conf
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
lvm2
set -e
set -x
sudo fdisk /dev/vdb <<EOF
d
n
p
1
t
8e
w
EOF
yum install -y lvm2
## 1. 创建
pvcreate /dev/vdb1
vgcreate VolGroup /dev/vdb1
lvcreate -l +100%FREE -n lv_data VolGroup
mkfs.ext4 /dev/VolGroup/lv_data
echo "/dev/VolGroup/lv_data /docker/ ext4 defaults 0 0"|sudo tee -a /etc/fstab
e2fsck -y /dev/VolGroup/lv_data
mkdir /docker
mount -a
检查项:
禁止转发ICMP重定向报文
加固建议:
执行sysctl -w net.ipv4.conf.all.send_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.send_redirects=0,不存在则添加
检查项:
禁止转发ICMP重定向报文
加固建议:
执行sysctl -w net.ipv4.conf.default.send_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.send_redirects=0,不存在则添加
检查项:
禁止包含源路由的ip包
加固建议:
执行sysctl -w net.ipv4.conf.all.accept_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.accept_redirects=0,不存在则添加
检查项:
禁止包含源路由的ip包
加固建议:
执行sysctl -w net.ipv4.conf.default.accept_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.accept_redirects=0,不存在则添加
检查项:
禁止转发安全ICMP重定向报文
加固建议:
执行sysctl -w net.ipv4.conf.all.secure_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.secure_redirects=0,不存在则添加
检查项:
禁止转发安全ICMP重定向报文
加固建议:
执行sysctl -w net.ipv4.conf.default.secure_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.secure_redirects=0,不存在则添加
检查项:
启用反转地址路径过滤
加固建议:
执行sysctl -w net.ipv4.conf.all.rp_filter=1,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.rp_filter=1,不存在则添加
检查项:
启用反转地址路径过滤
加固建议:
执行sysctl -w net.ipv4.conf.default.rp_filter=1,再查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.rp_filter=1,不存在则添加
检查项:
禁止ipv6路由广播
加固建议:
执行sysctl -w net.ipv6.conf.all.accept_ra=0,再查看/etc/sysctl.conf中是否存在net.ipv6.conf.all.accept_ra=0,不存在则添加
检查项:
禁止ipv6路由广播
加固建议:
执行sysctl -w net.ipv6.conf.default.accept_ra=0,再查看/etc/sysctl.conf中是否存在net.ipv6.conf.default.accept_ra=0,不存在则添加
检查项:
禁止ipv6路由重定向
加固建议:
执行sysctl -w net.ipv6.conf.all.accept_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv6.conf.all.accept_redirects=0,不存在则添加
检查项:
禁止ipv6路由重定向
加固建议:
执行sysctl -w net.ipv6.conf.default.accept_redirects=0,再查看/etc/sysctl.conf中是否存在net.ipv6.conf.default.accept_redirects=0,不存在则添加
检查项:
SSHD强制使用V2安全协议
加固建议:
在/etc/ssh/sshd_config中取消注释符号#
检查项:
SSHD仅记录ssh用户登录活动
加固建议:
在/etc/ssh/sshd_config中取消LogLevel INFO注释符号#
检查项:
SSHD仅记录ssh用户登录活动
加固建议:
在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置自定义最大密码尝试失败次数
检查项:
清理主机远程登录历史主机记录
加固建议:
在/etc/ssh/sshd_config中取消IgnoreRhosts yes注释符号#
检查项:
禁止主机认证登录
加固建议:
在/etc/ssh/sshd_config中取消HostbasedAuthentication no注释符号#
检查项:
禁止root直接登录
加固建议:
在/etc/ssh/sshd_config中PermitRootLogin 值设置为no
检查项:
禁止空密码用户登录
加固建议:
在/etc/ssh/sshd_config中取消PermitEmptyPasswords no注释符号#
检查项:
禁止用户修改环境变量
加固建议:
在/etc/ssh/sshd_config中取消PermitUserEnvironment no注释符号#
检查项:
设置输入密码间隔时间
加固建议:
在/etc/ssh/sshd_config中取消LoginGraceTime前注释符,同时设置输入密码时间间隔秒数
检查项:
设置用户密码最小长度
加固建议:
在/etc/security/pwquality.conf中取消minlen注释符号#,同时设置最小密码长度建议10位以上
检查项:
设置用户密码数字位数
加固建议:
在/etc/security/pwquality.conf中取消dcredit注释符号#,同时设置为负数建议-1最少包含1位数字
检查项:
设置用户密码大写字母位数
加固建议:
在/etc/security/pwquality.conf中取消ucredit注释符号#,同时设置为负数建议-1最少包含1位大写字母
检查项:
设置用户密码小写字母位数
加固建议:
在/etc/security/pwquality.conf中取消lcredit注释符号#,同时设置为负数建议-1最少包含1位小写字母
检查项:
设置用户密码特殊字符位数
加固建议:
在/etc/security/pwquality.conf中取消ocredit注释符号#,同时设置为负数建议-1最少包含1位特殊字符
检查项:
新密码与老密码不能重复
加固建议:
在/etc/pam.d/password-auth中添加:password sufficient pam_unix.so remember=3这一行,remember的值表示此次设置密码与过去3次不同
检查项:
新密码与老密码不能重复
加固建议:
在/etc/pam.d/system-auth中添加:password sufficient pam_unix.so remember=3这一行,remember的值表示此次设置密码与过去3次不同
检查项:
检查空密码账户
加固建议:
使用如下命令设置有密码账户不活动最大时间值:useradd -D -f 90,建议值90
检查项:
rsyslog日志文件权限配置
加固建议:
在/etc/rsyslog.conf中添加:$FileCreateMode 0640
检查项:
强制密码失效时间
加固建议:
在/etc/login.defs 设置强制密码失效时间,建议值365
检查项:
密码修改最小间隔时间
加固建议:
在/etc/login.defs 设置密码修改最小间隔时间,建议值7
检查项:
设置有密码账户不活动最大时间
加固建议:
使用如下命令设置有密码账户不活动最大时间值:useradd -D -f 90,建议值90
检查项:
检查/boot/grub2/grub.cfg文件ACL属性
加固建议:
执行:chmod og-rwx /boot/grub2/grub.cfg
检查项:
检查/etc/crontab文件ACL属性
加固建议:
执行:chmod og-rwx /etc/crontab
检查项:
检查/etc/cron.hourly文件ACL属性
加固建议:
执行:chmod og-rwx /etc/cron.hourly
检查项:
检查/etc/cron.daily文件ACL属性
加固建议:
执行:chmod og-rwx /etc/cron.daily
检查项:
检查/etc/cron.weekly 文件ACL属性
加固建议:
执行:chmod og-rwx /etc/cron.weekly
检查项:
检查/etc/cron.monthly 文件ACL属性
加固建议:
执行:chmod og-rwx /etc/cron.monthly
检查/etc/cron.d 文件ACL属性
加固建议:
执行:chmod og-rwx /etc/cron.d