脚本案例:
用户输入一个用户名,判断该用户是否存在
如果存在,则输出该用户已存在
如果不存在,则创建该用户
[root@server0 ~]# cat /root/user.sh
#!/bin/bash
read -p ’请输入您要测试的用户名:’ user
id
if [
if [eq 0 ];then
echo 用户已存在
else
echo 用户不存在
useradd user用户创建成功
fi
脚本案例:
用户输入一个IP,判断本机是否可以与该ip通信
如果可以通信,则输出IP地址可以通信
如果不可以通信,则IP地址不可以通信
[root@server0 ~]# vim /root/ip.sh
#!/bin/bash
read -p ‘请输入您要测试的ip地址:’ a
ping -c 2
if [
if [eq 0 ];then
echo 可以
else
echo 不可以
fi
################################################################
SELinux概述
? Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件
提供了预设的保护策略,以及管理工具
? SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
任何状态变成disabled(彻底禁用),都必须通过重起reboot
? 切换运行模式
– 临时切换:setenforce 1|0
– 固定配置:/etc/selinux/config 文件
两台虚拟机均做
[root@server0 ~]# getenforce
Enforcing
[root@server0 ~]# setenforce 0
[root@server0 ~]# getenforce
Permissive
[root@server0 ~]# vim /etc/selinux/config #下一次开机后生效
SELINUX=permissive
###############################################################
用户初始化文件
? 影响指定用户的 bash 解释环境
– ~/.bashrc,每次开启 bash 终端时生效
? 影响所有用户的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效
[root@server0 ~]# vim /root/.bashrc
alias hello=’echo hello’
[root@server0 ~]# vim /home/student/.bashrc
alias hi=’echo hi’
[root@server0 ~]# vim /etc/bashrc
alias haha=’echo haha’
root可以执行:
hello haha
student可以执行:
hi haha
############################################################
配置聚合连接( 卡绑定、链路聚合)
作用: 卡设备的冗余
热备份(activebackup)连接冗余
1.创建虚拟 卡team0 (参考 man teamd.conf) /example 全文搜索
# nmcli connection add type team
con-name team0 ifname team0 autoconnect yes
config ‘{“runner”: {“name”: “activebackup”}}’
# nmcli connection 添加 类型为 team
配置文件名字 team0 ifconfig显示的名字为 team0 每次开机自动启用
配置 热备份方式
2.添加成员
# nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0
# nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0
# nmcli connection 添加 类型为 team的奴隶设备 配置文件名为 team0-1 奴隶的 卡名为 eth1 加入的组织为 team0
3.配置IP地址
[root@server0 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.1/24 connection.autoconnect yes
4.激活
# nmcli connection up team0
# nmcli connection up team0-1
# nmcli connection up team0-2
5.验证查看
# teamdctl team0 state
# ifconfig eth1 down
# teamdctl team0 state
如果配置错误,可以从头来,删掉从新做
# nmcli connection delete team0
# nmcli connection delete team0-1
# nmcli connection delete team0-2
#############################################################
ipv6地址配置
ip地址:唯一标识 络中主机地址
ipv4地址:
32个二进制 分成4段 最后用 点 分隔 用10进制表示
ipv6地址:
128个二进制 分成8段 最后用 冒 分隔 用16进制表示
每段内连续的前置 0 可省略、连续的多个 : 可简化为 ::
虚拟机server0:
# nmcli connection modify ‘System eth0’ ipv6.method manual
ipv6.addresses 2003:ac18::305/64 connection.autoconnect yes
# nmcli connection up ‘System eth0’
# ping6 2003:ac18::305
################################################################
搭建基本Web服务
服务端:虚拟机Server0
1.安装一个可以提供Web功能软件
[root@server0 ~]# yum -y install httpd
2.启动httpd服务
[root@server0 ~]# systemctl restart httpd #重起httpd服务
[root@server0 ~]# systemctl enable httpd #设置httpd服务,开机自启动
3.书写自己的页面文件
默认存放 页文件的路径:/var/www/html
默认 页文件名字:index.html
[root@server0 ~]# vim /var/www/html/index.html
NSD1801 万岁 阳光明媚
客户端:虚拟机Server0
[root@server0 ~]# firefox 172.25.0.11
搭建基本FTP服务(文件传输)
服务端:虚拟机Server
1.安装一个可以提供FTP功能软件
[root@server0 ~]# yum -y install vsftpd
2.启动httpd服务
[root@server0 ~]# systemctl restart vsftpd #重起vsftpd服务
[root@server0 ~]# systemctl enable vsftpd #设置vsftpd服务,开机自启动
3.默认vsftpd共享路径: /var/ftp
客户端:虚拟机Server
[root@server0 ~]# firefox ftp://172.25.0.11
##############################################################
防火墙策略的应用
隔离作用
允许出站,过滤入站
硬件防火墙
软件防火墙
RHEL7的防火墙体系
? 系统服务:firewalld
? 管理工具:firewall-cmd、firewall-config(图形)
预设安全区域
? 根据所在的 络场所区分,预设保护规则集
– public : 仅允许访问本机的sshd等少数几个服务
– trusted : 允许任何访问
– block : 阻塞任何来访请求 (明确回应拒绝)
– drop : 丢弃任何来访的数据包 (没有明确回应,直接丢弃)
防火墙的判断规则:匹配及停止
2.进入默认区域 (默认区域一般为public)
############################################################
默认区域的案例
虚拟机Server0:
[root@server0 ~]# firewall-cmd –get-default-zone #查看默认区域
虚拟机desktop0:
[root@desktop0 ~]# ping -c 2 172.25.0.11 #可以通行
虚拟机Server0:
[root@server0 ~]# firewall-cmd –set-default-zone=block #修改默认区域
[root@server0 ~]# firewall-cmd –get-default-zone
虚拟机desktop0:
[root@desktop0 ~]# ping -c 2 172.25.0.11 #不可以通信,有回应
虚拟机Server0:
[root@server0 ~]# firewall-cmd –set-default-zone=drop
[root@server0 ~]# firewall-cmd –get-default-zone
虚拟机desktop0:
[root@desktop0 ~]# ping -c 2 172.25.0.11 #不可以通信,没有回应
################################################################
常见的协议: 端口
http 超文本传输协议 80
https 安全的超文本传输协议 443
ftp 文件传输协议
tftp 简单文件传输协议
telnet 远程管理协议
dns 域名解析协议
smtp 邮件协议 25
pop3 收邮件协议 110
snmp 简单的管理协议
服务案例
虚拟机Server0
[root@server0 ~]# firewall-cmd –set-default-zone=public
[root@server0 ~]# firewall-cmd –zone=public –list-all #查看区域策略
虚拟机Desktop0
[root@desktop0 ~]# firefox 172.25.0.11 #不可以
[root@desktop0 ~]# firefox ftp://172.25.0.11 #不可以
虚拟机Server0
[root@server0 ~]# firewall-cmd –zone=public –add-service=http #添加协议
[root@server0 ~]# firewall-cmd –zone=public –list-all
虚拟机Desktop0
[root@desktop0 ~]# firefox 172.25.0.11 #可以
[root@desktop0 ~]# firefox ftp://172.25.0.11 #不可以
虚拟机Server0
[root@server0 ~]# firewall-cmd –zone=public –add-service=ftp
[root@server0 ~]# firewall-cmd –zone=public –list-all
虚拟机Desktop0
[root@desktop0 ~]# firefox 172.25.0.11 #可以
[root@desktop0 ~]# firefox ftp://172.25.0.11 #可以
############################################################
防火墙策略永久配置
– 永久(permanent)
虚拟机Server0
# firewall-cmd –reload #重新加载防火墙所有配置
# firewall-cmd –zone=public –list-all
# firewall-cmd –permanent –zone=public –add-service=http #设置永久
# firewall-cmd –zone=public –list-all
# firewall-cmd –reload #重新加载防火墙所有配置
# firewall-cmd –zone=public –list-all
#################################################################
防火墙对于客户端源IP控制
拒绝172.25.0.10访问本机的所有服务,其他客户端都允许
虚拟机desktop0
[root@desktop0 ~]# firefox 172.25.0.11 #可以
虚拟机Server0
# firewall-cmd –zone=block –list-all
# firewall-cmd –permanent –zone=block –add-source=172.25.0.10 (只要是永久配置就需要重新加载)
# firewall-cmd –reload success
# firewall-cmd –zone=block –list-all
虚拟机desktop0
[root@desktop0 ~]# firefox 172.25.0.11 #不可以
———————————————————————————————————————————
案例1:为虚拟机 server 配置以下静态地址参数
– 主机名:server0.example.com
– IP地址:172.25.0.11
– 子 掩码:255.255.255.0
– 默认 关:172.25.0.254
[root@server0 ~]# nmcli connection modify ‘System eth0’ ipv4.method manual ipv4.addresses ‘172.25.0.11/24 172.25.0.254’ connection.autoconnect yes
[root@server0 ~]# nmcli connection up ‘System eth0’
– DNS服务器:172.25.254.254
[root@server0 ~]# vim /etc/resolv.conf
nameserver 172.25.254.254
案例2:虚拟机 server0上操作
新建用户 alex,其用户ID为3456,密码是flectrag
[root@server0 ~]# useradd -u 3456 alex
[root@server0 ~]# passwd alex
创建下列用户、组以及组的成员关系:
– 一个名为 adminuser 的组
[root@server0 ~]# groupadd adminuser
– 一个名为 natasha 的用户,其属于 adminuser 组, 这个组是该用户的从属组
[root@server0 ~]# useradd -G adminuser natasha
– 一个名为 harry 的用户,其属于 adminuser 组,这个 组是该用户的从属组
[root@server0 ~]# useradd -G adminuser harry
– 一个名为 sarah 的用户,其在系统中没有可交互的 Shell(/sbin/nologin),并且不是 adminuser 组的成员
[root@server0 ~]# useradd -s /sbin/nologin sarah
– natasha 、harry、sarah 的密码都要设置为 flectra
[root@server0 ~]# echo flectra | passwd –stdin natasha
[root@server0 ~]# echo flectra | passwd –stdin harry
[root@server0 ~]# echo flectra | passwd –stdin sarah
案例3:虚拟机 server0上操作
将文件 /etc/fstab 拷贝为 /var/tmp/fstab,并调整文件 /var/tmp/fstab权限
满足以下要求:
– 此文件的拥有者是 root
– 此文件属于 root 组
[root@server0 ~]# cp /etc/fstab /var/tmp/fstab
– 此文件对任何人都不可执行
[root@server0 ~]# ll /var/tmp/fstab
-rw-r–r–. 1 root root 313 3月 22 09:54 /var/tmp/fstab
– 用户 natasha 能够对此文件执行读和写操作
[root@server0 ~]# setfacl -m u:natasha:rw /var/tmp/fstab
– 用户 harry 对此文件既不能读,也不能写
[root@server0 ~]# setfacl -m u:harry:— /var/tmp/fstab
– 所有其他用户(当前的和将来的)能够对此文件进行 读操作
[student@localhost tmp] cat fstab
案例4:虚拟机 server0上操作
创建一个共用目录 /home/admins,要求如下:
– 此目录的组所有权是 adminuser
[root@localhost tmp]# mkdir /home/admins
[root@localhost tmp]# chown :adminuser /home/admins
– adminuser 组的成员对此目录有读写和执行的权限,除此以外的其他所有用户没有任何权限
[root@localhost tmp]# chmod g+w,o=— /home/admins
– root用户能够访问系统中的所有文件和目录
– 在此目录中创建的文件,其组的所有权会自动设置为 属于 adminuser 组
[root@localhost tmp]# chmod g+s /home/admins
案例5:设置SELinux保护
为虚拟机 server0、desktop0 配置SELinux
1)确保 SELinux 处于强制启用模式(permissive)
[root@localhost tmp]# setenforce 0
2)在每次重新开机后,此设置必须仍然有效
[root@localhost tmp]# vim /etc/selinux/config
案例6:自定义用户环境
为系统 server0 创建自定义命令
1)自定义命令的名称为 qstat
2)此自定义命令将执行以下操作: /bin/ps -Ao pid,tt,user,fname,rsz
3)此自定义命令对系统中的所有用户都有
[root@localhost ~]# vim /etc/bashrc
alias qstat=’/bin/ps -Ao pid,tt,user,fname,rsz’
案例7:配置聚合连接
在两个虚拟机之间配置一个链路,要求如下:
– 此链路使用接口 eth1 和 eth2
– 此链路在其中一个接口失效时仍然能工作
– 此链路在 server0 上使用下面的地址 172.16.3.20/255.255.255.0
1.创建虚拟 卡
[root@server0 ~]# nmcli connection add type team con-name team0 ifname team0 autoconnect yes config ‘{“runner”: {“name”: “activebackup”}}’
2.创建奴隶
[root@server0 ~]# nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0
[root@server0 ~]# nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0
3.为虚拟 卡配置IP
[root@server0 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 172.16.3.20/24 connection.autoconnect yes
4.激活配置
[root@server0 ~]# nmcli connection up team0
[root@server0 ~]# nmcli connection up team0-1
[root@server0 ~]# nmcli connection up team0-2
[root@server0 ~]# teamdctl team0 state
– 此链路在 desktop0 上使用下面的地址 172.16.3.25/255.255.255.0
同上
– 此链路在系统重启之后依然保持正常状态
案例8:防火墙规则设置
– 修改两个虚拟机Server0与Desktop0, 请设置默认区域均为public
– 修改虚拟机Server0防火墙规则, 默认区域允许访问本机的Web服务(永久设置)
[root@server0 ~]# firewall-cmd –permanent –zone=public –add-service=http
[root@server0 ~]# firewall-cmd –reload
– 修改虚拟机Server0防火墙规则, 拒绝Desktop0访问本机的所有服务(永久设置)
[root@server0 ~]# firewall-cmd –permanent –zone=block –add-source=172.25.0.10
[root@server0 ~]# firewall-cmd –reload
[root@server0 ~]# firewall-cmd –zone=block –list-all
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!