enging-03-系统安全保护 配置用户环境 配置高级连接 防火墙策略管理 常见协议

脚本案例:
   用户输入一个用户名,判断该用户是否存在
   如果存在,则输出该用户已存在
   如果不存在,则创建该用户

[root@server0 ~]# cat /root/user.sh
#!/bin/bash
read -p  '请输入您要测试的用户名:'  user
id $user &> /dev/null

if [ $? -eq 0 ];then
  echo  用户已存在

else
   echo 用户不存在
   useradd $user
   echo $user用户创建成功
fi

脚本案例:
   用户输入一个IP,判断本机是否可以与该ip通信

   如果可以通信,则输出IP地址可以通信
   如果不可以通信,则IP地址不可以通信

[root@server0 ~]# vim /root/ip.sh
#!/bin/bash
read -p '请输入您要测试的ip地址:'  a
ping  -c 2 $a &> /dev/null

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
<marquee><font color=red><h1>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 : 丢弃任何来访的数据包 (没有明确回应,直接丢弃)

防火墙的判断规则:匹配及停止

  1.客户端请求中的来源IP地址,查看本身所有区域的规则,如果有一个区域规则有该IP地址的规则,则进入该区域

  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]$ ll /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

posted on 2019-07-26 20:22  heping1314  阅读(155)  评论(0编辑  收藏  举报