基础环境搭建
VMware Wrokstation Pro 17.6.1 虚拟机
现如今的 VMware Workstation Pro(17.6.1) 已经免费开放了,现如今的 VMware 被博通收购了,官网的下载方式有所改变,需要先注册一个博通的账号,然后去博通网站上下载。
下载地址:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Workstation+Pro
百度网盘链接:https://pan.baidu.com/s/1SMJBschWGoBZVoEcZok19w?pwd=t6vm
Centos8
官网:https://www.centos.org/download/
百度网盘链接:https://pan.baidu.com/s/1ZYr1CNntXg5dmz-iQ53JKQ?pwd=8zw6
题目
项目背景
你是一位刚入职A公司的安全运维实习生,入职公司后,你发现公司目前的系统配置存在很大的优化空间,作为一名在校期间门门课程都轻松拿A的学霸来讲,公司老板非常器重你,允许你对公司的系统配置进行一场酣畅淋漓的安全改造。
网络拓扑如下:
注意:以下实现过程,需要有详细的实现过程说明和过程描述,并且配上操作截图(记住,不要截全屏!!)。
项目得分点
你将从以下几个方面进行系统配置优化:
一、 服务部署(30分)
a、 边界服务器部署Nginx服务,主要实现反向代理的功能(10分)
b、 两台内网服务器分别部署LNMP,部署完成后,分别在/var/www/html目录下创建一个index.php文件,在使用网页访问时,分别输出的内容为:
门户网站:姓名全拼-this is portal website,
OA网站:姓名全拼-this is OA website(15分)
c、 在边界服务器上部署FTP服务,设置FTP的访问用户为:姓名全拼,将访问用户限制在自己的家目录,在家目录下创建一个FTP目录,将其属主和属组都修改为所创建的用户名,最后在FTP目录下,创建一个test.txt文件。(5分)
二、 传输安全(20分)
a、在边界服务器上配置https服务,并且配置反向代理,分别实现对内网两台web服务器的访问。(10分)
www.shdz.com 访问的是公司的门户网站
oa.shdz.com 访问的是公司的OA
b、实现HTTP到HTTPS的重定向,当使用HTTP访问这些域名时,自动跳转到HTTPS。(10分)
三、 边界安全(25分)
a、 在边界服务器上部署Snort入侵检测设备,并监测外侧vmnet8网卡,当发现有用户ping此网卡时,记录下访问日志。(10分)
b、 在边界服务器上开启主机防火墙,并将防护模式设置为白名单模式。允许外界用户主动访问本地的HTTP、HTTPS服务。并实现仅本主机可以ping通其它主机,而其它主机无法主动ping通本主机。(5分)
c、 在边界服务器上部署堡垒机服务,并创建一个运维帐号,帐号名称为:姓名全拼,授予此帐号对内网两台主机的管理权限。(10分)
四、 计算环境安全(20分)
a、 使用运维帐号登录堡垒机后,配置内网的两台web服务器,在web1服务器创建一个/share目录,设置此目录下的文件仅创建者和root能删除,其它用户无法进行删除。在web2服务器上配置sudo,实现对如下用户的最小权限管理:(15分)
网络路由管理: 张三(zhangsan)
磁盘管理: 王五(wangwu)
软件包管理: 田七(tianqi)
b、 在物理主机访问边界器上的FTP服务,并下载test.txt文件(5分)
五、 报告得分(10分)
基础配置
配置 VMware 网络环境
打开 VMware Workstation Pro 17.6.1,打开虚拟网络编辑器
先点击VMnet1,然后点击更改设置
会黑屏然后问你是否允许此应用对你的修改,直接允许就行,然后就可以编辑VMnet1的子网了。
修改VMnet1的子网IP地址范围为 192.168.10.0,子网掩码为 255.255.255.0,然后点击应用即可。
创建虚拟机
这一步可以直接参考:VMware Workstation Pro 17 创建 Centos8 虚拟机 - 祀梦的个人博客,先创建三个虚拟机,分别是边界服务器、Web1-公司门户网站、Web2-公司OA
创建完三个对应的虚拟机之后,选择边界服务器,点击“编辑虚拟机设置”,点击“网络适配器”,配置为“仅主机模式”,然后点击添加。
添加一个新的网络适配器,点击完成
修改我们刚刚创建的网络适配器2为 NAT 模式
另外两个Web服务器的网卡配置为仅主机模式
虚拟机基础配置
在进行下面的配置之前请先确保已经配置好 yum 源,可以参考 Centos8 配置本地 Yum 源 - 祀梦的个人博客 这篇文章。
打开虚拟机的网络配置
启动网卡,点击设置
配置 IPv4 最好是静态的IP地址,确认之后可以重启一下网卡
通过 ifconfig
检查一下 ip 地址
我的静态IP地址配置如下:
边界服务器:192.168.10.50
Web1-公司门户网站:192.168.10.100
Web2-公司OA:192.168.10.200
边界服务器有两张网卡,请设置仅主机模式的那张网卡,可以先点击虚拟机->右键设置->硬件->网络适配器,点击高级,里面可以查看到这张网卡的MAC地址,然后根据MAC地址来修改网卡的IP地址。
边界服务器的 NAT 网卡,需要添加配置
点击IPv4,然后点击Add即可
如果第一个网卡是NAT网卡,第二个网卡是仅主机的网卡的话,两个网卡的配置反过来,也就是第一个网卡通过DHCP,第二个网卡配置IP地址为192.168.10.50。
配置完成之后,边界服务器既可以 ping 通百度,也可以 ping 通两个 Web 服务器。
这里的IP地址一定要配置清楚!!!
一、服务部署( 30分 )
a、边界服务器部署Nginx服务,主要实现反向代理的功能(10分)
打开边界服务器,下载 nginx 服务。
命令:yum install nginx -y
反向代理的具体要求这里没给出,所以说到具体的需求了再具体配置。
b、 两台内网服务器分别部署LNMP
LNMP 中,L 指的是 Linux,N指的是Nginx服务器,M指的是MySQL服务器,P指的是PHP,组合起来运行一个动态网站。接下来来安装这些服务。
接下来的这些操作,均执行在“Web1-公司门户网站”虚拟机上,“Web2-公司OA”可以参考 Web1 来写
安装 MySQL 服务
先切换到 root 用户,然后安装 mariadb 服务
命令:yum install @mariadb -y
下载 mariadb 数据库
显示如下内容代表安装完成
启动 mariadb 服务,并查看服务状态
命令:systemctl enable --now mariadb
设置mariadb服务开机自启动,在命令结束后启动mariadb服务
命令:systemctl status mariadb
查看mariadb服务的运行状态,CTRL+C 退出查看
进行数据库初始化,第一个问题直接回车,然后确认设置 root 用户密码,剩下的问题全部选择 y 即可。
命令:mysql_secure_installation
初始化数据库配置
确认可以连接到 MySQL 数据库即可
命令:mysql -u root -proot
,-u后面是用户名,-p后面是用户的密码,注意-p后面不需要加空格
安装 PHP 服务
这里他给的LNMP服务管理.pdf
中写的太麻烦了,根本没必要,我选择自己的做法,但是一样可以实现PHP服务。
命令:yum install php -y
安装PHP
启动 PHP 服务
命令:systemctl enable php-fpm.service
开机自启动 php-fpm
命令:systemctl start php-fpm.service
启动 php-fpm 服务
命令:systemctl status php-fpm.service
查看 php-fpm 服务状态
安装 Nginx 服务
命令:yum install nginx -y
安装nginx 服务
编辑 nginx 配置文件
命令:vim /etc/nginx/nginx.conf
编辑配置文件
修改 server_name 为 www.shdz.com(如果是 Web2 的修改为 oa.shdz.com )
在图中位置添加如下内容:
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
在 Web 服务的家目录创建 index.php,先添加 phpinfo 查看 php 是否生效
命令:cd /usr/share/nginx/html/
切换到Web的家目录
命令:touch index.php
创建文件
命令:echo "<?php phpinfo(); ?>" > index.php
将代码写入到index.php中
命令:cat index.php
查看代码是否写入
添加本机的hosts文件,将 www.shdz.com 解析到 192.168.10.100,也就是Web1 本机上(这里的 Web2的话,将 www.shdz.com 修改为 os.shdz.com,将 192.168.10.100 修改为192.168.10.200 即可)
命令:echo "192.168.10.100 www.shdz.com" >> /etc/hosts
将解析追加到 hosts 文件中
启动 nginx 服务
命令:systemctl start nginx
启动 nginx 服务
命令:systemctl enable nginx
开机自启动 nginx 服务
命令:systemctl status nginx
查看 nginx 服务状态
选择 Activities,选择 firefox
输入 www.shdz.com ,可以查看到如下页面,代表 php 生效了。( 如果没显示的话可以尝试访问一下 www.shdz.com/index.php 看看有没有 )。
修改 index.php 为题目要求的内容(这里看服务器,Web1 和 Web2 不一样)
命令:vim /usr/share/nginx/html/index.php
编辑网站首页的 index.php
这里的 simeng 用自己的姓名拼音!Web2 中填写的是 simeng-this is OA website
simeng-this is portal website.
Nginx 服务配置 HTTPS 连接
这里由于没有 CA 服务器,使用自签名证书。
先创建证书存放目录,然后创建自签名证书
命令:mkdir -p /etc/ssl/private/
创建证书存放目录
命令:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
创建证书
这里的信息都可以乱填,除了倒数第二条那个域名要写 www.shdz.com ( Web2 服务器写 os.shdz.com)
创建配置文件目录/etc/nginx/snippets/
并编辑 /etc/nginx/snippets/self-signed.conf
和/etc/nginx/snippets/ssl-params.conf
命令:mkdir -p /etc/nginx/snippets/
创建配置文件目录
命令:vim /etc/nginx/snippets/self-signed.conf
编辑配置文件
命令:vim /etc/nginx/snippets/ssl-params.conf
编辑配置文件
配置文件中写入如下内容:
self-signed.conf
:
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl-params.conf
:
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable preloading HSTS for now. You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
编辑 nginx.conf 配置文件,然后重启服务
命令:vim /etc/nginx/nginx.conf
编辑配置文件
命令:systemctl restart nginx
重启nginx服务
nginx.conf 中如图所示位置添加如下内容
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
在 firefox 中通过 https 协议访问,由于是自签名证书,firefox 会提示有风险,点击 Go Back 即可。
证明可以通过 https 协议访问到网站内容
最后记得在防火墙放行 https 和 http 流量,方便别人访问
命令:firewall-cmd --permanent --add-service=https
命令:firewall-cmd --permanent --add-service=http
命令:firewall-cmd --reload
同样的操作在 Web2 上也做一遍,记得 Web2 的网址和网页内容和 Web1 不一样!
c、部署 FTP 服务
原题题目要求为:在边界服务器上部署FTP服务,设置FTP的访问用户为:姓名全拼,将访问用户限制在自己的家目录,在家目录下创建一个FTP目录,将其属主和属组都修改为所创建的用户名,最后在FTP目录下,创建一个test.txt文件。
接下来的操作在边界服务器上部署!
命令:yum install vsftpd -y
安装 FTP 服务
命令:systemctl start vsftpd
启动 FTP 服务
命令:systemctl enable vsftpd
设置开机自启动 FTP 服务
创建用于进行 FTP 连接的用户,这里记得改成自己的名字的拼音,后续的 ailixiya 都要改
命令:useradd ailixiya
创建爱莉希雅用户
命令:passwd ailixiya
给爱莉希雅账号设置密码
这里需要输入两次密码
在 FTP 用户家目录下创建一个 ftp 目录
命令:mkdir -p /home/ailixiya/ftp
在用户家目录下创建一个 ftp 目录
编辑 vsftpd 配置文件
命令:vim /etc/vsftpd/vsftpd.conf
编辑配置文件
找到如下内容,修改为如下形式,如果没有找到就在末尾添加如下内容
chroot_local_user=YES
allow_writeable_chroot=YES
修改用户家目录下的 ftp 文件夹的拥有者和拥有组,创建 test.txt , 注意将 test.txt 的拥有者和拥有组也改为 ailixiya
命令:chown ailixiya:ailixiya /home/ailixiya/ftp
将 ftp 的拥有者和拥有组设置为ailixiya用户和用户组
命令:touch /home/ailixiya/test.txt
创建 test 文件
命令:echo "this is ailixiya home" > /home/ailixiya/test.txt
写入欢迎词到 test.txt
命令:chown ailixiya:ailixiya /home/ailixiya/test.txt
设置 test 文件的拥有者和拥有组
关闭安全模式,防火墙放行 ftp 服务,重启 vsftpd服务
命令:setenforce 0
关闭安全模式
命令:firewall-cmd --permanent --add-service=ftp
防火墙放行 ftp 服务
命令:firewall-cmd --reload
防火墙策略重新加载
命令:systemctl restart vsftpd
重启 vsftpd 服务
在 Web1 服务器上安装 ftp,进行测试
命令:yum install ftp -y
安装 ftp 服务
在本地创建一个 test.txt,写入内容
命令:touch /tmp/test.txt
创建 test.txt
命令:echo "this is Web1" >> /tmp/test.txt
写入欢迎词到 test.txt
命令:chmod 777 /tmp/test.txt
给 test.txt 全部权限
在Web1上尝试通过 ailixiya 连接到边界服务器,并执行测试
命令:ftp 192.168.10.50
尝试连接到 192.168.10.50,输入用户名和密码之后即可
命令:ls
查看当前目录下的内容
命令:pwd
查看绝对路径,发现是 /,但是当前实际上处于/home/ailixiya下,满足题目中的:“将访问用户限制在自己的家目录”这一条。
命令:get test.txt
尝试获取 test.txt,成功
命令:cd ftp
,切换到 ftp 目录下,成功,拥有相应权限
命令:put /tmp/test.txt Web1.txt
将之前准备的 test.txt 以 Web1.txt 的名字上传到 ftp 服务器,证明有上传权限
命令:ls
查看是否上传成功
命令:exit
退出 ftp 命令行
命令:cat test.txt
查看从 ftp 服务器上下载的 test.txt ,内容正确
在边界服务器上能够查看到上传的Web1.txt,内容正确
二、传输安全(20分)
a 和 b 边界服务器配置反向代理 - 实现 HTTP 到 HTTPS 的重定向
原题:a、在边界服务器上配置https服务,并且配置反向代理,分别实现对内网两台web服务器的访问。www.shdz.com 访问的是公司的门户网站,oa.shdz.com 访问的是公司的OA 。
边界服务器在之前已经安装了 nginx,这里就不重复安装了。
命令:vim /etc/nginx/conf.d/shdz.conf
在 /etc/nginx/conf.d/
下创建 shdz.conf
,编写内容如下:
server {
listen 80;
server_name www.shdz.com;
return 301 https://192.168.10.100;
}
server {
listen 80;
server_name oa.shdz.com;
return 301 https://192.168.10.200;
}
server {
listen 443 ssl;
server_name www.shdz.com;
ssl_certificate /etc/ssl/certs/www.crt;
ssl_certificate_key /etc/ssl/private/www.key;
location / {
proxy_pass https://192.168.10.100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
server_name oa.shdz.com;
ssl_certificate /etc/ssl/certs/oa.crt;
ssl_certificate_key /etc/ssl/private/oa.key;
location / {
proxy_pass https://192.168.10.200;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
在边界服务器上创建证书文件夹
命令:mkdir -p /etc/ssl/private/
将 Web1 的证书传递到 Nginx 服务器上
命令:scp -P 22 /etc/ssl/certs/nginx-selfsigned.crt root@192.168.10.50:/etc/ssl/certs/www.crt
命令:scp -P 22 /etc/ssl/private/nginx-selfsigned.key root@192.168.10.50:/etc/ssl/private/www.key
将 Web2 的证书传递到 Nginx 服务器上
命令:scp -P 22 /etc/ssl/certs/nginx-selfsigned.crt root@192.168.10.50:/etc/ssl/certs/oa.crt
命令:scp -P 22 /etc/ssl/private/nginx-selfsigned.key root@192.168.10.50:/etc/ssl/private/oa.key
重启 nginx 服务,防火墙放行 http 和 https 流量
命令:systemctl restart nginx.service
重启 nginx 服务
命令:firewall-cmd --permanent --add-service=http
放行 http 流量
命令:firewall-cmd --permanent --add-service=https
放行 https 流量
命令:firewall-cmd --reload
防火墙重新加载规则
命令:setenforce 0
边界服务器修改 hosts 文件,将 www.shdz.com 和 oa.shdz.com 都解析到边界服务器上( 如果 Web1 和 Web2 要测试代理的话也需要执行这两条命令,记得在执行前要先删除之前添加到 /etc/hosts 文件之中的内容 )、
命令:echo "192.168.10.50 www.shdz.com" >> /etc/hosts
将 www.shdz.com 解析到 192.168.10.50
命令:echo "192.168.10.50 oa.shdz.com" >> /etc/hosts
将 oa.shdz.com 解析到 192.168.10.50
由下图可得,www.shdz.com 和 oa.shdz.com 都解析到了 192.168.10.50,通过 http 协议访问之后显示 301 跳转,通过 https 协议可以访问到网站的内容
三、边界安全
a、部署 Snort 入侵检测设备
原题:在边界服务器上部署Snort入侵检测设备,并监测外侧vmnet8网卡,当发现有用户ping此网卡时,记录下访问日志。(10分)
提前下载 Snort 的 rpm 包上传到边界服务器,或者直接 wget 下载,需要配置 epel 仓库
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
wget https://www.snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
dnf install -y snort-2.9.20-1.centos.x86_64.rpm
wget https://www.snort.org/downloads/community/community-rules.tar.gz
tar -zxvf community-rules.tar.gz -C /etc/snort/rules
先通过 ifconfig 确定一下外网的网卡名称和网段,我这里是 ens224 和 192.168.178.0 网段,根据自己的虚拟机情况来定。
编辑 snort
主配置文件
命令:vim /etc/snort/snort.conf
ipvar HOME_NET 192.168.10.0/24
ipvar EXTERNAL_NET !$HOME_NET
...
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
...
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
编辑服务启动配置文件
命令:vim /etc/rc.d/init.d/snortd
修改:INTERFACE="-i eth224"
命令:vim /etc/sysconfig/snort
修改:INTERFACE=eth224
注释默认规则文件,启用社区规则文件
sed -i 's/include \$RULE_PATH/#include \$RULE_PATH/' /etc/snort/snort.conf
echo '' >> /etc/snort/snort.conf
echo '# enable community rule' >> /etc/snort/snort.conf
echo 'include $RULE_PATH/community-rules/community.rules' >> /etc/snort/snort.conf
echo 'include $RULE_PATH/local.rules' >> /etc/snort/snort.conf
安装 Libdnet
库
执行 make 安装过程中会有几个选项,直接输入 y 就行
yum install gcc-c++ -y
wget https://nchc.dl.sourceforge.net/project/libdnet/libdnet/libdnet-1.11/libdnet-1.11.tar.gz
tar -zxvf libdnet-1.11.tar.gz
cd libdnet-1.11/
./configure && make && make install
创建对应的配置文件夹并给予权限,这里还需要创建黑白名单
mkdir -p /usr/local/lib/snort_dynamicrules
chown -R snort:snort /usr/local/lib/snort_dynamicrules
chmod -R 700 /usr/local/lib/snort_dynamicrules
touch /etc/snort/rules/white_list.rules
touch /etc/snort/rules/black_list.rules
touch /etc/snort/rules/local.rules
运行 snort 自我检查 ,可以看到检查完成
命令:snort -T -i ens224 -u snort -g snort -c /etc/snort/snort.conf
启动 snort 服务,要先 systemctl daemon-reload
不然会报错
systemctl daemon-reload
systemctl start snortd
编写规则
命令:vim /etc/snort/rules/local.rules
写入如下内容:
alert icmp any any -> 192.168.178.180 any (msg:"ICMP Testing Rule";sid:1000001;)
针对所有来源的ICMP协议,目标为192.168.178.180的任意端口进行警告
通过下述命令运行 snort
命令:snort -A console -i ens224 -u snort -g snort -c /etc/snort/snort.conf
运行之后,在主机(自己电脑)上打开 cmd 窗口 ping 一下虚拟机的网卡
然后就可以看到对应的记录了
b、防火墙单向 ping 通
原题目:在边界服务器上开启主机防火墙,并将防护模式设置为白名单模式。允许外界用户主动访问本地的HTTP、HTTPS服务。并实现仅本主机可以ping通其它主机,而其它主机无法主动ping通本主机。(5分)
防火墙默认就是白名单,关于 http 和 https 的策略前面做过了,这里做一下 ICMP 的回包拦截即可
firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
firewall-cmd --reload
在边界服务器上进行测试
结论:边界服务器可以 ping 通 Web1 和 Web2
在 Web1 上进行测试
结论:无法 ping 通边界服务器,可以正常访问边界服务器的网页服务,且确实是由边界服务器进行反向代理的服务。
c、在边界服务器上部署堡垒机服务
在边界服务器上安装堡垒机服务
这里 wget 可能会出现问题,可以先将压缩包下载到本地然后上传到边界服务器上
链接:https://pan.baidu.com/s/1fxDQC2bCqg1FwJ3IuONKNQ?pwd=cq1v
cd /usr/local/src
wget https://tp4a.com/static/download/teleport-server-linux-x64-3.6.4-b3.tar.gz
tar -zxzf teleport-server-linux-x64-3.6.4-b3.tar.gz
cd teleport-server-linux-x64-3.6.4-b3
./setup.sh
我这里是直接上传的
确认 Web 服务开启
命令:netstat -tnlp | grep 7190
这里边界服务器参考前面的内容安装MySQL服务
命令:mysql -u root -proot
数据库操作语句:
create database teleport;
grant all on teleport.* to 'teleport'@'localhost' identified by 'admin123';
flush privileges;
编辑 Teleport 数据库配置文件
使用 Firefox 连接 Web 界面
刷新后可以登录 Teleport
这里建议在边界服务器中放行端口
firewall-cmd --zone=public --add-port=7190/tcp --permanent
firewall-cmd --reload
然后在主机中访问网页,因为需要下载 Teleport 助手,不然一直会跳弹窗
Teleport 助手下载链接:https://tp4a.com/static/download/teleport-assist-windows-3.6.3.exe
创建一个运维账号,这里请使用自己的姓名全拼
点击用户最右边的操作->重置密码,给爱莉希雅设置密码
将两个主机添加到资产列表中
点击账号数
添加账号
输入远程账号,点击确定
192.168.10.200 同样操作
运维授权,创建爱莉希雅的运维授权
点击授权策略
点击添加用户
全选,添加为授权操作者
点击添加主机
点击添加为被授权资产
点击连接设置,确认允许所有,保存设置
四、 计算环境安全(20分)
a、运维账号配置Web服务器
原题目: 使用运维帐号登录堡垒机后,配置内网的两台web服务器,在web1服务器创建一个/share目录,设置此目录下的文件仅创建者和root能删除,其它用户无法进行删除。在web2服务器上配置sudo,实现对如下用户的最小权限管理:(15分)网络路由管理: 张三(zhangsan),磁盘管理: 王五(wangwu),软件包管理: 田七(tianqi)
这里需要注意,建议使用内网的地址登录,也就是192.168.10.50的IP地址登录运维账号,需要提前修改本机的VMnet1网卡,给自己一个IP地址。
登录之后可以看到运维主机
接下来一定一定要关闭边界服务器的防火墙,这里哪怕是设置了直接连接依旧会映射到边界服务器的端口上,防火墙不关的话 Putty 根本无法连接。
( 我一直以为是 Putty 的错 ,排错排了一个小时... )
点击 ssh 之后会弹出这样的页面,点击是,第一次连接可能会黑屏,关掉重开就好了
使用 sticky bit 来进行设置,仅拥有者和拥有组可以删除,都是 root
mkdir /share
chmod +t /share
chmod 1777 /share/
ls -ld /share
验证,由图可得,root 用户可以删除其他用户创建的文件,其他用户只能删除自己创建的文件
cd /share/
touch root.txt
echo "this is root" > root.txt
su simeng
cat root.txt
rm -rf root.txt
touch 1.txt
touch 2.txt
rm -rf 1.txt
exit
rm -rf root.txt
rm -rf 2.txt
连接到Web2服务器上,执行如下命令
打开 sudoers
文件进行编辑
命令:visudo
在文档末尾添加如下内容
zhangsan ALL=(ALL) NOPASSWD: /usr/sbin/ip, /sbin/ifconfig, /sbin/route
wangwu ALL=(ALL) NOPASSWD: /sbin/fdisk, /sbin/mkfs, /bin/mount, /bin/umount
tianqi ALL=(ALL) NOPASSWD: /usr/bin/yum, /usr/bin/dnf
创建这些用户进行测试
useradd zhangsan
useradd wangwu
useradd tianqi
验证,有图可得,zhangsan只能使用 ifconfig,无法使用 ls 命令,其他用户同理。
b、在物理机上访问边界服务器上的FTP服务
win + r 打开命令行界面,直接执行 ftp 连接即可
打开家目录的 test.txt( test.txt 的位置默认位于当前cmd窗口的执行位置 ),可以看到确实是边界服务器上的 test.txt