CentOS7 笔记
文章目录
常用初始配置
- 系统更新
1
yum update
- 禁用 firewalld
1 2
systemctl stop firewalld systemctl disable firewalld
- 禁用 NetworkManager
1 2
systemctl stop NetworkManager systemctl disable NetworkManager
- 禁用 postfix
1 2
systemctl stop postfix systemctl disable postfix
- 如果不用 NFS,可以禁用 rpcbind
1 2
systemctl stop rpcbind systemctl disable rpcbind
- 禁用 selinux,可能需要重启操作系统
1 2 3
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config setenforce 0 # 可能需要重启
- 配置网卡静态地址
1 2 3 4 5 6 7 8 9 10 11 12 13
cd /etc/sysconfig/network-scripts sed -i -e '/^BOOTPROTO/d' -e '/^ONBOOT/d' \ -e '/^IPADDR/d' -e '/^NETMASK/d' -e '/^PREFIX/d' \ -e '/^GATEWAY/d' -e '/^DNS/d' ${ifcfg} cat >> ${ifcfg} <<-END ONBOOT=yes BOOTPROTO=static IPADDR=${ip} PREFIX=${mask} GATEWAY=${gw} DNS1=${dns} END systemctl restart network
- 修改 sysctl.conf
1 2 3 4 5 6 7 8 9 10 11 12 13
cat >> /etc/sysctl.conf <<-END # 防止一个套接字在有过多试图连接到达时引起过载 net.ipv4.tcp_syncookies = 1 # 连接队列的长度,默认值为128 net.core.somaxconn = 1024 # timewait的超时时间,设置短一些 net.ipv4.tcp_fin_timeout = 10 # os直接使用timewait的连接 net.ipv4.tcp_tw_reuse = 1 # 回收timewait连接 net.ipv4.tcp_tw_recycle = 1 END sysctl -p
- 修改主机名
1 2 3
hostnamectl set-hostname ${hostname} sed -i "/[ \t]\+${hostname}[ \t]*$/d" /etc/hosts echo "${ip} ${hostname}" >> /etc/hosts
- 禁用 sshd 域名解析
1 2
sed -i '/UseDNS/d' /etc/ssh/sshd_config echo 'UseDNS no' >> /etc/ssh/sshd_config
- 删除可能存在的 TMOUT 环境变量
1
sed -i '/^export[ \t]\+TMOUT=/d' /etc/profile
- 配置 history 命令数量和执行时间
1 2
echo 'export HISTSIZE=10000' > /etc/profile.d/history.sh echo 'export HISTTIMEFORMAT="[%F %T] "' >> /etc/profile.d/history.sh
- 修改时间同步服务器地址
1 2
sed -i '/^server /d' /etc/chrony.conf echo "server ${ip|domain} iburst" >> /etc/chrony.conf
- 修改 rsyslog 服务的时间格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
cat > /etc/rsyslog.d/custom.conf <<EOF template(name="CustomTime" type="list"){ property(name="timereported" dateformat="year") constant(value="-") property(name="timereported" dateformat="month") constant(value="-") property(name="timereported" dateformat="day") constant(value=" ") property(name="timereported" dateformat="hour") constant(value=":") property(name="timereported" dateformat="minute") constant(value=":") property(name="timereported" dateformat="second") constant(value=" ") property(name="hostname") constant(value=" ") property(name="syslogtag") constant(value=" ") property(name="msg" droplastlf="on") constant(value="\n") } $ActionFileDefaultTemplate CustomTime EOF
- 其他检查
- 卸载 ntpdate,换 chrony
- 检查 /etc/rc.d/rc.local
安全设置
- /etc/pam.d/sshd
- 用户 ssh 登陆密码错误 3 次后锁住用户 10 分钟
1
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root
- 用户 ssh 登陆密码错误 3 次后锁住用户 10 分钟
- /etc/login.defs
- 密码过期天数
1
PASS_MAX_DAYS 60
- 过期前警告天数
1
PASS_WARN_AGE 7
- 最短使用天数
1
PASS_MIN_DAYS 1
- 最短长度
1
PASS_MIN_LEN 8
- 密码过期天数
- /etc/pam.d/system-auth
- 密码与前 5 次不同
1
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
- 密码与前 5 次不同
- /etc/security/pwquality.conf
- 密码最小长度 8 位
1
authconfig --passminlen=8 --update
- 密码最少 2 种字符
1
authconfig --passminclass=2 --update
- 最多 2 个连续相同字符
1
authconfig --passmaxrepeat=2 --update
- 最多 4 个连续同类字符
1
authconfig --passmaxclassrepeat=4 --update
- 至少 1 个小写字符
1
authconfig --enablereqlower --update
- 至少 1 个大写字符
1
authconfig --enablerequpper --update
- 至少 1 个数字
1
authconfig --enablereqdigit --update
- 至少 1 个特殊字符
1
authconfig --enablereqother --update
- 密码最小长度 8 位
文章作者 Colben
上次更新 2019-10-30