系统环境
系统 | IP地址 |
---|---|
node1.example.com | 192.168.122.10 |
node2.example.com | 192.168.122.20 |
在node1.example.com上执行以下任务
一、配置网络设置
将 node1 配置为具有以下⽹络配置:
1、主机名:node1.example.com
2、IP 地址:192.168.122.10
3、⼦⽹掩码:255.255.255.0
4、⽹关:192.168.122.1
5、名称服务器(dns):192.168.122.1
# 设置主机名
[root@localhost ~]# hostnamectl set-hostname node1.example.com
[root@localhost ~]# bash
[root@node1 ~]#
# ⾸先使⽤ nmcli ⼯具查询当前的⽹络链接
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
enp1s0 334c0e99-05e2-3aa6-aee6-b6abaa9e0437 ethernet enp1s0
[root@node1 ~]#
# ⽹络连接的名称,记得使⽤ TAB 键补⻬,不要⼿敲,注意这是⼀条命令。
[root@node1 ~]# nmcli connection modify enp1s0 ipv4.addresses 192.168.122.10/24 ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 ipv4.method manual connection.autoconnect yes
[root@node1 ~]# nmcli connection up enp1s0
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@node1 ~]#
修改第40行
[root@node1 ~]# vim /etc/ssh/sshd_config
39 #LoginGraceTime 2m
40 PermitRootLogin yes //该为yes
41 #StrictModes yes
42 #MaxAuthTries 6
43 #MaxSessions 10
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
二、配置您的系统已使用默认存储库
配置您的系统以使⽤默认存储库: YUM 存储库可以从
http://ansible.example.com/rhel9/BaseOS 和
http://ansible.example.com/rhel9/AppStream使用配置您的系统,以将这 些位置作为默认存储库。
[root@node1 ~]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# ls
redhat.repo
[root@node1 yum.repos.d]# rm -rf *
[root@node1 yum.repos.d]# ls
[root@node1 yum.repos.d]# vim server.repo
[aa]
name=aa
baseurl=http://ansible.example.com/rhel9/BaseOS
enabled=1
gpgcheck=0
[bb]
name=bb
baseurl=http://ansible.example.com/rhel9/AppStream
enabled=1
gpgcheck=0
[root@node1 yum.repos.d]# yum -y install net-tools.x86_64 //测试安装
三、调试SElinux
⾮标准端⼝ 82 上运⾏的 Web 服务器在提供内容时遇到问题。根据需要调试并解决 问题, 使其满⾜以下条件:
1、系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML ⽂件 (注:不要删除或以其他⽅式改动现有的⽂件内容)
2、Web 服务器在端⼝ 82 上提供此内容
3、Web 服务器在系统启动时⾃动启动
#查看 httpd 服务的主配置⽂件,是否侦听 82 端⼝,如果侦听了,那么就不⽤管配置
⽂件,如果没有侦听,则把原先的端⼝改成侦听 82 端⼝
[root@node1 ~]# cat /etc/httpd/conf/httpd.conf | grep Listen
# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on a specific IP address, but note that if
#Listen 12.34.56.78:80
Listen 82
[root@node1 ~]#
# 查看 httpd 默认 DocumentRoot ⽬录下⽂件的上下⽂ context 值,发现其中⼀个⽂
件的 context 值不是 web 服务器站点⽹⻚所需的 context 值,此时,我们修改其
context 值
ot@node1 html]# ll -Z
总用量 12
-rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 23 1月 3 08:52 file1
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 23 1月 3 08:53 file2
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 23 1月 3 08:53 file3
[root@node1 html]#
# 先删除 file1 ⽂件的默认 context 值,然后再设置其 DocumentRoot 默认的 context值,然后递归应⽤
[root@node1 html]# semanage fcontext -d -t default_t/var/www/html/file1
file_spec option is needed for delete
[root@node1 html]# semanage fcontext -a -t httpd_sys_content_t
file_spec option is needed for add
[root@node1 html]# restorecon -Rv /var/www/html/
Relabeled /var/www/html/file1 from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
[root@node1 html]# ll -Z
总用量 12
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 23 1月 3 08:52 file1
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 23 1月 3 08:53 file2
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 23 1月 3 08:53 file3
[root@node1 html]#
# 做 selinux 的端⼝标签,将 82 端⼝添加到 http_port_t 类型中
[root@node1 html]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@node1 html]# semanage port -a -t http_port_t -p tcp 82
[root@node1 html]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 82, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@node1 html]#
# 设置防⽕墙,允许流量通过 82 端⼝
[root@node1 html]# firewall-cmd --add-port=82/tcp --permanent
success
[root@node1 html]# firewall-cmd --reload
success
[root@node1 html]#
# 重启 httpd 服务,并设置下次启动⽣效
[root@node1 html]# systemctl restart httpd
[root@node1 html]# systemctl enable httpd
# 验证,使⽤宿主机,测试 file1,file2,file3 ⽂件是否都能通过 http 进⾏访问
[root@mars ~]# curl http://node1:82/file1
Welcome to EX200 exam!
[root@mars ~]#
[root@mars ~]# curl http://node1:82/file2
Welcome to EX200 exam!
[root@mars ~]# curl http://node1:82/file3
Welcome to EX200 exam!
[root@mars ~]#
四、配置用户账户
创建用户tammy,其用户ID为2024,此用户的密码应当是redhat
[root@node1 html]# useradd -u 2024 tammy
[root@node1 html]# echo redhat | passwd --stdin tammy
更改用户 tammy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 html]#
五、创建用户账户
创建下列⽤户、组和组成员资格:
1、名为 admins的组
2、⽤户 zhsan,作为次要组从属于 admins
3、⽤户 lisi,作为次要组从属于 admins
4、⽤户 wangwu,⽆权访问系统上交互式 shell,且不是 admins 的成员
5、zhsan、lisi、wangwu 的密码都应该是 redhat
[root@node1 ~]# groupadd admin
[root@node1 ~]# useradd -G admins zhsan
[root@node1 ~]# useradd -G admins lisi
[root@node1 ~]# useradd -s /sbin/nologin wangwu
[root@node1 ~]# echo redhat | passwd --stdin zhsan
更改用户 zhsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]# echo redhat | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]# echo redhat | passwd --stdin wangwu
更改用户 wangwu 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]#
六、配置cron计划任务
1、以用户zhsan的身份每5分钟执行一次命令 logger “RH200 Test”
[root@node1 ~]# crontab -e -u zhsan
crontab: installing new crontab
[root@node1 ~]# crontab -l -u zhsan
*/5 * * * * logger "RH200 Test"
[root@node1 ~]# systemctl restart crond.service
[root@node1 ~]# systemctl enable crond.service
[root@node1 ~]#
2、以zhsan的身份每天下午2:28分执行一次命令 logger “RH200 Test”
[root@node1 ~]# crontab -e -u zhsan
crontab: installing new crontab
[root@node1 ~]# crontab -l -u zhsan
28 14 * * * logger "RH200 Test"
[root@node1 ~]# systemctl restart crond.service
[root@node1 ~]# systemctl enable crond.service
[root@node1 ~]#
七、配置文件权限
将文件/etc/hosts 复制为/var/tmp/hosts 并按要求配置/var/tmp/hosts的权限:
1、文件/var/tmp/hosts 属于root用户
2、文件/var/tmp/hosts 属于root组
3、任何用户对/var/tmp/hosts 都没有可执行权限
4、用户zhsan能够读取和写入/var/tmp/hosts 文件
5、用户lisi无法读取或者写入/var/tmp/hosts 文件
6、所有其他用户(当前或未来)能够读取/var/tmp/hosts 文件
[root@node1 ~]# cp /etc/hosts /var/tmp/hosts
[root@node1 ~]# ll /var/tmp/hosts
-rw-r--r--. 1 root root 481 4月 9 22:45 /var/tmp/hosts
[root@node1 ~]# setfacl -m u:zhsan:rw /var/tmp/hosts
[root@node1 ~]# setfacl -m u:lisi:--- /var/tmp/hosts
[root@node1 ~]#
八、创建共享目录
创建具有以下特征的写作目录
1、/home/tools的组的所有权是admins
2、此目录能被admins组的成员读取、写入和访问,除了root外其他用户没有这些权限,在此目录下创建的文件,其组的所有权自动设置为admins组
[root@node1 ~]# mkdir /home/tools
[root@node1 ~]# chgrp admins /home/tools/
[root@node1 ~]# chmod g=rwx,o=--- /home/tools/
[root@node1 ~]# ll /home/
总用量 0
drwx------. 2 lisi lisi 62 4月 9 22:24 lisi
drwx------. 6 student student 140 1月 4 09:18 student
drwx------. 2 tammy tammy 62 4月 9 19:29 tammy
drwxrwx---. 2 root admins 6 4月 10 14:08 tools
drwx------. 2 wangwu wangwu 62 4月 9 22:25 wangwu
drwx------. 2 zhsan zhsan 62 4月 9 22:24 zhsan
[root@node1 ~]# chmod g+s /home/tools/