实操训练一 Linux基本操作

1.1 自动备份

  • 创建备份目录 /var/mylog
mkdir /var/mylog	# 操作系统中创建目标路径
  • 每日凌晨0点10分自动备份 /var/log 下所有文件打包至 /var/mylog 打包文件以前一天日期命名
crontab -e	# 编辑定时任务清单
10 0 * * * tar -cf /var/mylog/`date -d "1 day ago" +"\%Y\%m\%d"`.tar /var/log/	# 添加定时任务

补充知识

补充知识1 crontab 格式

*     *     *     *     *
分钟  小时  日期   月份   周

每个级别时间点的填写方式有以下几种:

  • n: 第n个时间点,如 第10分钟,第6小时,第5日,第3月
  • m,n,o,p: 第m、n、o、p个时间点;如
    1,3,5,7 * * * *	#每小时的第1、3、5、7分钟,执行任务
    
  • m-n:从第m至n的每个时间点执行一次
    *  2-15 * * * 	#每日2时至15时的每分钟执行一次
    
  • m/k: 从第m个时间点开始,每间隔k个时间点执行一次
    3/4  * * * *	#每小时第3分钟开始,每间隔4分钟执行一次
    
  • m-n/k:从第m至n、每间隔k个时间点执行一次
    20 0-23/2 * * *  #每月每天 0 点 20 分, 2 点 20 分, 4 点 20 分执行一次
    
  • 在crontab 任务设置文档中,百分号% 被当作换行符,所以需要用 \ 符号将 % 符号进行转义

补充知识2 date 指令输出格式化时间字符串

`date -d "1 day ago" +"\%Y\%m\%d"`
# 以yyyymmdd格式输出前一天的日期

1.2 用户管理

创建以下用户、组、和组成员关系

  • 名称为admin的组,组id为100
groupadd -g 100 admin
  • 用户xxxx_1,使用 admin作为附属组
useradd xxxx_1 -G admin
  • 用户xxxx_2,使用 admin作为附属组
useradd xxxx_2 -G admin
  • 用户xxxx_3,在系统上不能访问可交互的shell,且不是 admin的成员
useradd xxxx_3
usermod -s /sbin/nologin xxxx_3
  • 三个用户密码都是 centos_7
passwd xxxx_1
passwd xxxx_2
passwd xxxx_3

补充知识

补充知识1 用户附属组

每个用户都有且只有一个“主组”;创建用户时如果没有用 -g 指定主组,则会自动创建一个与用户同名的组,作为该用户的主组

每个用户可以同时存在于多个“附属组”中

1.3 基础配置

1.3.1 配置IP地址为192.168.1.10/24,网关 192.168.1.251

  • (1)配置文件所在路径及备份
cd /etc/sysconfig/network-scripts/ # 进入网卡配置文件存放路径
cp ifcfg-ens33	# 备份已有的网卡配置文件   有的网卡文件名可能后缀不一样,注意使用 ll , ls 等指令查看
vi ifcfg-ens33	# 开始编辑网卡配置信息
  • (2)查看当前网卡配置
ip addr		# CentOS7 用ip 指令辅以相应参数
ip addr |grep ens33	# 或通过 grep 指令可以更精确找到指定网卡信息
  • (3)修改配置文件
BOOTPROTO=static	# 修改 BOOTPROTO ,从 “dhcp”改为“static”,即从动态获取IP地址改为静态IP地址(2501实训环境为dhcp即可获得)
ONBOOT=yes		# 修改 ONBOOT 确保值为 yes ,即开机时网卡也启动
IPADDR=192.168.1.10	# 修改或增加 IPADDR ,设置为题目要求的IP地址
NETMASK=255.255.255.0	# 修改或增加 NETMASK ,设置子网掩码(对应24)
GATEWAY=192.168.1.251	# 修改或增加 GATEWAY, 设置为网关地址(2501实训环境网关为 192.168.1.1)
  • (4)保存配置文件并重启 network 服务以求生效
systemctl restart network	# 重启方法1
service network restart		# 重启方法2
ip addr

1.3.2 配置实现与 192.168.1.1 的时间同步

时间同步依赖于 ntp 软件实现;

一台设备担任NTP服务器角色(192.168.1.1),向其它需要时间同步服务的客户端设备(192.168.1.10)提供服务。

因此,NTP服务器、NTP客户端都需要安装 ntp 服务。

  • ntp服务安装情况检查
rpm -qa ntp	# 如果有出现 ntp-4.2.6 类似的结果,代表 ntp 服务已经安装
  • 配置文件所在路径及备份,编辑配置文件
cd /etc/
cp ntp.conf ntp.conf.bak
vi ntp.conf
  • 配置文件中的修改
# 以下4行原有的信息,在行首添加 # 符号,注释使之失效
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst

server 192.168.1.1  # 添加此行信息,将192.168.1.1 设置为ntp服务器
# 保存文件,退出
  • 配置生效
systemctl restart ntpd # 重启 ntpd 服务使配置生效

ntpq -p # 检查配置结果;若成功将会有以下反馈信息:

#     remote      refid      st    t
# =======================================
#  192.168.1.1   LOCAL(0)    6     u  

1.3.3 配置日志自动保存在192.168.1.2 服务器

日志自动保存至远程服务器,依赖于 rsyslog 服务实现;

一台设备担任NTP服务器角色(192.168.1.2),向其它需要日志保存服务的客户端设备(192.168.1.10)提供服务。

  • rsyslog 服务安装情况检查
rpm -qa rsyslog

# 若出现类似 rsyslog-8.24.0-38.el7.x86_64 的反馈,说明rsyslog服务已安装
  • 配置文件所在路径及备份,编辑配置文件
cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
vi rsyslog.conf
  • 在配置文件中修改、增加信息
# 以下原有信息取消注释
$ActionQueueFileName fwdRule1
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

*.* @192.168.1.2	# 增加此一行信息,指定日志服务器是192.168.1.2
*.* @192.168.1.2:514 	# 也可按此书写;514是rsyslog默认的UDP端口号

# 保存文件,退出
  • 登录至日志服务器,检查是否已经有日志保存
ssh rsyslog@192.168.1.2:10022

cd /var/log/syslog	
# 进入 192.168.1.2 的远程日志存放路径,查看是否有对应自己IP地址的子路径存在;
# 如果有,说明已经成功将日志推送到服务器

1.4 安全加固

1.4.1 启用口令策略与锁定策略,符合国网安全要求

编辑 /etc/pam.d/system-auth 内容

vi /etc/pam.d/system-auth 
# 设置密码复杂度配置
# 注意: CentOS7 / RHEL 7 开始使用 pam_pwquality.so 模块代替 pam_cracklib.so 模块

password requisite pam_pwquality.so retry=3 difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

# retry=3 :最多重试3次
# minlen=8 :最短长度8位
# difok=N :新密码必须与旧密码不同的最少位数N
# ucredit=N :大写字符数量
# lcredit=N :小写字符数量
# dcredit=N :数字字符数量
# ocredit=N :特殊字符个数
# (N>=0:密码中最多有多少个)(N<0:密码中最少有多少个)
# 但 root 用户进行修改时不受限制?

# 修改此行,确保包含 remember=5 ,代表禁止使用最近用过的5个密码
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

另一种方式,修改 /etc/login.defs ,但会被覆盖

PASSMAXDAYS 99999 # 密码最大有效期,99999为永久有效 
PASSMINDAYS 0  # 是否可修改密码。 0:可修改,非0:修改密码后下一次修改需间隔多少天后可修改
PASS_MIN_LEN 8 # 密码最小长度; 使用pam_pwquality.so 时 该参数不再有效
PASSWARNAGE 7 # 密码失效前多少天在用户登录时通知用户修改密码

1.4.2~1.4.4 配置 /etc/profile

  • 1.4.2 登录超时策略,超过3分钟自动退出,并立即生效
  • 1.4.3 将用户目录缺省访问权限设置为 027 ,立即生效
  • 1.4.4 配置用户命令历史记录条数为5,立即生效

编辑文件

vi /etc/profile

写入/修改内容

# 在文件最后添加或修改
export TMout=180 # 超时策略 3分钟=180秒
export HISTSIZE=5 # 配置用户命令历史记录条数为5,立即生效
umask 027 # 用户缺省访问权限设置

生效配置

source /etc/profile

1.4.5 针对 ipv4 启用 SYN cookie

查看当前配置

cat /proc/sys/net/ipv4/tcp_syncookies #确认主机系统是否使用 IPv4 TCP SYN Cookie

修改配置文件 /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1

生效配置

sysctl -p

注意事项

  • /proc/sys/net/ipv4/tcp_syncookies 此处用于查看,但不在此处修改;
  • /etc/sysctl.conf 可能默认未写入 net.opv4.tcp_syncookies 值
  • 写入/etc/sysctl.conf 并生效后, /proc/sys/net/ipv4/tcp_syncookies 值会同步更新
  • 删除 /etc/sysctl.conf 中的配置、并执行生效操作, /proc/sys/net/ipv4/tcp_syncookies 此处不会更新!如果要修改,仍须在/etc/sysctl.conf中显式指定

1.4.6 修改 ssh 端口为10022,禁止空口令登录,禁止root远程登录

修改 /etc/ssh/sshd_config 文件

vi /etc/ssh/sshd_config

修改文件

Port 10022	# 修改端口为 10022
PermitEmptyPasswords no # 禁止空口令登录
PermitRootLogin no # 禁止 root 远程登录

重启 sshd 服务以生效

systemctl restart sshd

1.4.7 仅允许 xxxx_1 用户 su 到root账户

先用 xxxx_1 用户测试,无法 su 至root,输入密码后提示“拒绝权限”。
需要将xxxx_1 用户放入 wheel 组;可以是主组也可以是附属组。

groups xxxx_1   # 查看fjdl_1 用户当前所在组

usermod xxxx_1 -g users -G syslog,admin,wheel   # xxxx_1 用户拥有wheel作为附属组;wheel组用户可以 su 至 root 用户中

登录 xxxx_1 用户进行测试

su root # 以 xxxx_1 用户测试 su 至root 用户

root组

用同样方法,xxxx_1用户主组或附属组设置为 root ,试试能否su 至 root 用户?

1.4.8 创建 /mnt/xxxx 文件,写入 hello world ,要求锁定该文件,即使root用户也不能删除

文件新建及编辑

echo "hello world" > /mnt/xxxx

锁定文件

通过 chattr +i 文件名 ,对指定文件加锁;去除锁, chattr -i 即可

chattr +i /mnt/xxxx
rm -f /mnt/xxxx # 尝试删除,提示 rm: 无法删除"xxxx": 不允许的操作

chattr -i /mnt/xxxx
rm -f /mnt/xxxx # 再次尝试删除,成功执行

1.4.9 要求设置 /tmp 权限,要求该文件夹下的文件,除了所有者外,任何人不得删除。

chmod 1777 /tmp

补充介绍

(1) 基础权限

在任意目录执行 ll ,可以查看文件、目录的属性,以10个字符串表示。

例如"drwxr-xr–" 代表是某个目录的读®、写(w)、执行(x) 权限;"-rwxrw-r–"代表某一个文件的权限。

d 代表是一个路径 directory;如果是文件,则用"-"代表。

之后3组 “rwx” ,代表用户本人、用户所属组、其他用户的权限设置。每一组3个字符分别代表 读®、写(w)、执行(x) 权限,具备读权限,则对应位置标记为 r,否则标记为-,写、执行权限同理。

如果每组的3个字符对应到一个三位的二进制数(例如rwx对应111,r–对应100),则可以一个8进制数字代表每一组的权限设置:

  • rwx → 111 → 7 ;
  • r-- → 100 → 4 ;

上述"drwxr-xr–"→ 754,"rwxrw-r–"对应 764 。

修改文件或路径的读写执行权限,可以用诸如 chmod 754 /tmp 的指令实现。

(2) 进阶

在(1) 基础权限的基础上,可以在第一位增加一个8进制数字,形成1777、2777、4777

chmod 1777 /tmp 

这里是用增加的8进制数字,代表设置 setuid、 setgid、sticky bit这3个属性的设置,同样可以理解为一组三位的二进制数。

4 代表设置了setuid,没有设置 setgid和 sticky bit(100 = 4 );

2 代表设置了 setgid ,没有设置 setuid 和 sticky bit (010 = 2)

其中,sticky bit 可理解为“防删除位”,对特定的路径进行设置。设置后,该路径下即使某个用户有写入权限,也无法删除其他用户拥有的文件。

sticky bit 需要针对不允许删除的目标文件/路径的上层路径 进行设置。

例如,要防止其他用户删除 /test 路径下的 1.log,需要对 /test 路径进行 chmod 1777

1.5 防火墙中,设置 http 的基本服务为7001,7010 并开启http 的对外访问。

此题考查CentOS7 中防火墙端口开放控制,即 firewall-cmd 的使用。

firewall-cmd开放端口,有2种方式:

  1. 通过 --add-port ==???/xxx 形式,开放端口号为???、传输层协议为 xxx 的端口。这里 xxx= tcp 或 udp。
  2. 通过 --add-service=??? 形式,开放 ??? 服务(在firewall相关配置文件中,对应此服务的端口号)。
  • 例如http ,默认为 80 端口
  • ftp默认为21端口。

按题目要求,需要修改 firewall 服务中,对应 http 服务的配置文件、将端口号改为7001、7010 两项,并且启用 http 服务。

cd /usr/lib/firewalld/services/ # 进入 firewalld 各类服务的配置文件存放路径
cp http.xml http.xml.bak    # 备份http 服务的配置文件
vi http.xml         # 开始修改配置文件

文件中已有以下这行:

<port protocol="tcp"  port="80"/>

修改其为

<port protocol="tcp"  port="7001"/>
<port protocol="tcp"  port="7010"/>

保存退出

firewall-cmd --zone=public --permanent --add-service=http   # 启用 http 服务
firewall-cmd --reload   # 配置生效

补充知识

firewall-cmd 对应的配置文件,在以下两处路径都有:

  • /etc/firewalld/
  • /usr/lib/firewalld/
测试上述两个路径优先级

同时在 /etc/firewalld/services/ 、 /usr/lib/firewalld/services/两个路径下,写入http.xml文件;

  • /etc/firewalld/services/http.xml 开放 17001、17003 端口
  • /usr/lib/firewalld/services/http.xml 开放17001、17002 端口

使用上述允许http 协议的命令;生效后,17001、17003端口可以访问;17002端口无法访问。
说明: /etc/firewalld/ 路径下的配置文件,优先级更高

zone

zone=public,则此路径下会存在一个 public.xml 文件;
可以查看此文件

cat /etc/firewalld/zones/public.xml

如果多次修改了public区的策略,会另有 public.xml.old 文件作为备份

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值