首页
Linux教程
Linux实战教程
Shell教程
Mysql教程
Keepalived教程
Linux基础教程
Linux进阶教程
运维题库
运维干货
视频教程
运维资讯
资源下载
关于我们
首页 Linux进阶教程2.20 Linux安全配置

2.19 Linux定时任务

1.1 安全登录优化

1)添加一个普通用户oldboy

# useradd oldboy
# echo 123456|passwd --stdin oldboy

2)加到sudo管理,oldboy就相当于管理员

# visudo
# grep -w oldboy /etc/sudoers
oldboy        ALL=(ALL)       NOPASSWD: ALL

特殊:
安装系统最后一步,勾选后系统将oldboy加为了管理员设置方法:

# usermod -G wheel oldboy
# id oldboy
uid=1000(oldboy) gid=1000(oldboy) 组=1000(oldboy),10(wheel)

# grep -w wheel /etc/sudoers
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)   ALL
# %wheel    ALL=(ALL)   NOPASSWD: ALL

3)禁止root远程登录,改用oldboy用户登录。

# 对SSH服务进行调整
vim /etc/ssh/sshd_config # 以下为配置文件内配置
# 禁止root用户登录
PermitRootLogin no
#优化SSH远程连接效率:
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no

# 保存后重启sshd
systemctl restart sshd

4)基础优化操作项:更新yum源信息

# 配置阿里 YUM 源
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 配置 epel 源
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

5)安装常用软件

# 升级所有有已知漏洞的软件
yum update -y
#CentOS6和CentOS7都要安装的企业运维常用基础工具包
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y
#CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced ntpdate -y 

1.2 防火墙优化

1)关闭selinux

sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2)暂时关闭firewalld防火墙服务

systemctl stop firewalld
systemctl disable firewalld

1.3 普通用户提权操作(可选优化)

1)提权oldboy可以利用sudo

# 创建 oldboy 用户
useradd oldboy
echo 123456|passwd --stdin oldboy
# 备份 suoders 源文件 
\cp /etc/sudoers /etc/sudoers.ori
# oldboy 提权
echo "oldboy  ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c

2)手工新添加管理员(老大)

# 创建 oldgirl 用户,并指定为 wheel 管理员权限组
useradd oldgirl -G wheel
echo 111111|passwd --stdin oldgirl

3)设置系统中文UTF8字符集

方法1:

# 备份源文件
cp /etc/locale.conf  /etc/locale.conf.ori
# 修改字符集文件
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf  
# 使修改后的配置生效
source /etc/locale.conf 

方法2:

# 备份源文件
cp /etc/locale.conf  /etc/locale.conf.ori
# 修改字符集设置
localectl set-locale LANG="zh_CN.UTF-8"

1.4 时间同步设置

设置系统时间同步

# 下载 ntpdate 时间同步命令
yum install ntpdate -y
# 配置时间同步服务器
/usr/sbin/ntpdate ntp3.aliyun.com
# 将时间同步写入定时任务
echo '#crond-id-001:time sync by oldboy' >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root

1.5 提升命令行操作安全性(可选优化)

提升命令行安全(可选配置)

# echo 'export TMOUT=300' >>/etc/profile
# echo 'export HISTSIZE=5' >>/etc/profile
# echo 'export HISTFILESIZE=5' >>/etc/profile
# tail -3 /etc/profile
# . /etc/profile

1.6 加大文件描述符

实例演示:加大文件描述

echo '*  -  nofile  65535' >>/etc/security/limits.conf 
tail -1 /etc/security/limits.conf
ulimit -SHn  65535 
ulimit -n       #<==命令方式查看配置结果

1.7 优化系统内核

# cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

##NFS共享存储优化
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
# sysctl -p

1.8 修改yum.conf文件配置信息

保留yum安装的软件包
将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。

sed -i.bak 's#keepcache=0#keepcache=1#gp' /etc/yum.conf

1.9 锁定关键系统文件

如 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab

处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了

给重要文件上锁
# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
将 chattr 命令改为 oldboy
# mv chattr oldboy
将 lsattr 命令改为 oldgirl
# mv lsattr oldgirl
编写 lock_oldboy 脚本
# cat lock_oldboy.sh 
oldboy -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
useradd $1
oldboy +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

以后添加用户方法:
# lock_oldboy.sh littlgirl
# grep -w littlgirl /etc/passwd
littlgirl:x:1002:1002::/home/littlgirl:/bin/bash

1.10 去除系统登录提示

清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示

# > /etc/issue
# > /etc/issue.net 

1.11 清除多余的系统虚拟用户账号(可选)。

1.12 为grub引导菜单加密码(自学)。

# /usr/bin/grub2-setpassword

1.13 禁止主机被ping(内核参数)。

echo 'net.ipv4.icmp_echo_ignore_all = 1' >>/etc/sysctl.conf

1.14 精简开机自启动服务

# systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash

# systemctl list-unit-files |grep enable

保留服务:

  • sshd
  • crond
  • sysstat
  • rsyslog
  • NetworkManager
  • irqbalance
# systemctl list-unit-files |grep enable
autovt@.service                               enabled 
crond.service                                 enabled 
getty@.service                                enabled 
irqbalance.service                            enabled 
NetworkManager.service                        enabled 
rsyslog.service                               enabled 
sshd.service                                  enabled 
sysstat.service                               enabled 

# systemctl stop postfix

检查端口:

# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2093/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      2093/sshd 

企业生产最小化原则:

  1. 安装软件包最小化。
  2. 用户权限最小化。
  3. 目录文件权限最小化。
  4. 自启动服务最小化。
  5. 服务运行用户权限最小化。

1.15 优化系统提示符(根据个人喜好可选)

有时输入命令或查询信息时,会刷屏输出很多信息,此时会出现比较尴尬的局面,不知输出的信息是从2哪看起,可能正常都应该从输入命令后的信息进行看起,但如果刷屏好多页,如何快速定位输入命令的命令行呢,因此如果有颜色进行区分,就能回滚屏幕进行快速定位了

echo  "PS1='\[\e[32;1m\][\u@\h \W]\\$ \[\e[0m\]'" >>/etc/profile
source /etc/profile

说明:定义ls命令的长格式显示,是输出信息格列完全对齐显示;不解释,强迫症运维都懂的

echo "alias ll='ls -l --color=auto --time-style=long-iso'" >>/etc/profile
source /etc/profile

1.16 自动快速配置改主机名和IP地址:

# cat net.sh # 下面是脚本内容
#!/bin/sh
if [ $# -ne 2 ];then
  echo "/bin/sh $0 hostname PartIP"
  exit 1
fi
hostnamectl set-hostname $1 #第一个参数
sed -i "/IPADDR/s#128#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth0 #<==模板机IP最后8位默认是200。
sed -i "/IPADDR/s#128#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth1
systemctl restart network
#check
hostname
ifconfig eth0
ifconfig eth1
exit

本文链接:https://www.yunweibase.com/archives/712

2.19 Linux定时任务

网友评论comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 运维基地 保留所有权
扫二维码
扫二维码
返回顶部