CentOS7常见问题


原文链接: CentOS7常见问题

配置本地ISO源

  1. 挂载cdrom
    mkdir /mnt/cdrom
    mount -t auto /dev/cdrom /mnt/cdrom
  2. 或者过载 iso文件
    mount -o loop ~/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom
  3. 移除线上仓库
    mkdir /etc/yum.repos.d/bak
    mv *.repo /etc/yum.repos.d/bak
  4. 创建本地仓库配置 vi /etc/yum.repos.d/cdrom.repo

```ini 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.获取阿里源
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 配置清华源

1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
2. wget http://mirrors.aliyun.com/repo/Centos-7.repo  -P /etc/yum.repos.d/
3. mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
4. yum install -y epel-release
5. 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
```sh
#!/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

`