Linux-Engineer3

案例4:编写一个判断脚本
在 server0 上创建 /root/foo.sh 脚本
1)当运行/root/foo.sh redhat,输出为fedora
2)当运行/root/foo.sh fedora,输出为redhat
3)当没有任何参数或者参数不是 redhat 或者fedora时,
其错误输出产生以下信息: /root/foo.sh redhat|fedora

[root@server0 ~]# vim /root/foo.sh
 #!/bin/bash
 if  [ $# -eq  0 ];then
   echo '/root/foo.sh redhat|fedora' >&2  #变成错误输出
   exit  36                   #程序退出返回值
 elif  [ $1 == redhat ];then
   echo fedora
 elif  [  $1 == fedora ];then
   echo redhat
 else
   echo '/root/foo.sh redhat|fedora' >&2  #变成错误输出
   exit  25                   #程序退出返回值
 fi

###########################################
扩展案例:
[root@server0 /]# vim /root/user.txt
yuanxiao
qingming
duanwu
wuyi
liuyi
wusi

请利用for循环:
该文件/root/user.txt内容,每一行为一个用户的名称
创建/root/user.txt文件中所有用户

 [root@server0 ~]# vim /root/for.sh
 #!/bin/bash
 for a in `cat /root/user.txt`
 do
  useradd $a &> /dev/null
  echo $a创建成功
 done

################################################
案例5:编写一个批量添加用户脚本
在 server0 上创建 /root/batchusers 脚本
1)此脚本要求提供用户名列表文件作为参数
2)如果没有提供参数,此脚本应该给出提示
Usage: /root/batchusers,退出并返回相应值
3)如果提供一个不存在的文件,此脚本应该给出提
示 Input file not found,退出并返回相应值
4)新用户的登录Shell为 /bin/false,无需设置密码
5)用户列表测试文件:

[root@server0 ~]# cat /root/userlist
  zhangsan
  lisi
  harry
  natasha
  dc
  tc
  jack

[root@server0 ~]# cat /root/batchusers 
  #!/bin/bash
  if  [ $# -eq 0 ];then
    echo 'Usage: /root/batchusers' >&2
    exit 2
  elif  [  -f  $1 ];then
    for i  in  `cat $1`
    do
     useradd -s /bin/false $i &> /dev/null
     echo $i创建成功
    done
  else
    echo 'Input file not found' >&2
    exit 3
  fi

###########################################
系统安全保护
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安
全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件
提供了预设的保护策略,以及管理工具

• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)

任何一种运行模式,变成disabled(彻底禁用)都要经历重起系统

切换运行模式
– 临时切换:setenforce 1|0
– 固定配置:/etc/selinux/config 文件

修改两台虚拟机 Server与 Desktop

[root@server0 ~]# getenforce 
Enforcing   #强制模式                   
[root@server0 ~]# setenforce 0   #修改当前状态为宽松模式
[root@server0 ~]# getenforce 
Permissive     
              
[root@server0 ~]# vim /etc/selinux/config 
SELINUX=permissive

###########################################
虚拟机Server:搭建基本Web服务
1.安装httpd(Apache)软件包(服务端软件)

[root@server0 ~]# yum -y install httpd 

2.重起程序(服务)

[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# systemctl enable httpd  #开机自起
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

3.验证本机访问测试

[root@server0 ~]# firefox 172.25.0.11

4.书写一个页面
网页文件默认存放路径:/var/www/html/
默认网页文件的名字:index.html

[root@server0 ~]# cat /var/www/html/index.html
<marquee><font color=red><h1>test 阳光明媚
 滚动效果       字体颜色             最大字体

[root@server0 ~]# firefox 172.25.0.11

###########################################
虚拟机Server:搭建FTP服务:文件数据传输

1.安装软件包vsftpd
2.重起vsftpd服务

[root@server0 ~]# systemctl restart vsftpd
[root@server0 ~]# systemctl restart vsftpd

默认共享数据路径:/var/ftp

3.本机测试

[root@server0 ~]# firefox  ftp://172.25.0.11

###########################################
防火墙: 隔离作用

硬件防火墙
软件防火墙

firewalld服务

• 系统服务:firewalld
• 管理工具:firewall-cmd、firewall-config

[root@server0 ~]# systemctl restart firewalld
[root@server0 ~]# firewall-config &

###########################################
• 根据所在的网络场所区分,预设保护规则集
– public:仅允许访问本机的ssh、ping、dhcp服务
– trusted:允许任何访问
– block:阻塞任何来访请求,明确拒绝
– drop:丢弃任何来访的数据包,直接丢弃

数据包: 数据 源ip地址 目标IP地址

防火墙进入区域的规则:匹配及停止
1.查看数据包种源ip地址,再查看所有的区域中,是否有该源IP地址的规则,那个区域有,则进入该区域

2.进入默认区域为public

默认区域的修改
虚拟机Server:

  # firewall-cmd --get-default-zone   #查看默认区域

虚拟机Desktop:

  # ping 172.25.0.11   #可以通信

虚拟机Server:

  # firewall-cmd --set-default-zone=block #修改默认区域
  # firewall-cmd --get-default-zone 

虚拟机Desktop:

  # ping 172.25.0.11   #不可以通信,有回应

虚拟机Server:

  # firewall-cmd --set-default-zone=drop #修改默认区域
  # firewall-cmd --get-default-zone 

虚拟机Desktop:

  # ping 172.25.0.11   #不可以通信,没有回应

###########################################
添加服务

虚拟机Server:

# firewall-cmd --set-default-zone=public 
# firewall-cmd --get-default-zone
# firewall-cmd --zone=public --list-all
列出 public区域中规则
# firewall-cmd --zone=public --add-service=http
为 public区域,添加允许的协议http
# firewall-cmd --zone=public --list-all 

虚拟机Desktop:

  # firefox  172.25.0.11          #访问成功
  # firefox  ftp://172.25.0.11    #访问失败

###########################################
– 永久(permanent)
虚拟机Server

 # 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 

虚拟机Desktop

  # firefox  172.25.0.11

###########################################
添加源IP规则设置
虚拟机Server:单独拒绝172.25.0.10访问

# firewall-cmd --zone=block --add-source=172.25.0.10

###########################################
数据包: 数据 源ip地址 目标IP地址 目标端口号 80

端口号: 编号 标识程序及应用、服务

互联网常见协议:
http:超文本传输协议 默认端口号:80
https:安全的超文本传输协议 默认端口号:443
FTP:文件传输协议 默认端口号:21
DNS:域名解析协议 默认端口号:53
SMTP:用户发邮件协议 默认端口号:25
pop3:用户收邮件协议 默认端口号:110
telnet:运程管理协议 默认端口号:23
TFTP:简单的文件传输协议 默认端口号:69
SNMP:网络管理协议 默认端口号:161

协议的端口可以有root改变,也可以具备多个端口
###########################################

实现本机的端口映射
• 本地应用的端口重定向(端口1 --> 端口2)
– 从客户机访问 端口1 的请求,自动映射到本机 端口2
– 比如,访问以下两个地址可以看到相同的页面:

客户端访问172.25.0.11:5423 ----> 172.25.0.11:80

虚拟机Server

 # firewall-cmd --permanent --zone=public 
   --add-forward-port=port=5423:proto=tcp:toport=80

 # firewall-cmd --reload
 # firewall-cmd --zone=public --list-all 

虚拟机Desktop

 # firefox  172.25.0.11:5423

###########################################
配置IPv6地址

IPv4地址:32个二进制组成,利用点分隔,用4个十进制数表示

IPv6地址:128个二进制组成,利用冒号分隔8部分,
最终每一部分利用4个16进制数表示

每段内连续的前置 0 可省略、连续的多个 : 可简化为 ::
例如: 2003:ac18:0000:0000:0000:0000:0000:0305
2003:ac18::305

虚拟机Server0

# nmcli connection modify 'System eth0' 
ipv6.method manual ipv6.addresses 2003:ac18::305/64  
connection.autoconnect  yes

# nmcli connection up 'System eth0'

# ifconfig | head -4

# ping6 2003:ac18::305

##############################################
配置聚合连接(链路聚合)

备份网卡 eth1 eth2

虚拟网卡team0 192.168.1.1

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   网卡名  team0
每次开机自动启用
工作模式为     热备份

# ifconfig
# nmcli  connection  delete  team0     #删除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-2  网卡名  eth2 主设备  为team0

 # nmcli connection delete team0-1
 # nmcli connection delete team0-2
  1. 为虚拟网卡team0配置IP地址
# nmcli connection modify team0        
  ipv4.method manual 
  ipv4.addresses 192.168.1.1/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

5.专用于查看链路聚合的命令

[root@server0 ~]# ifconfig  eth1  down
[root@server0 ~]# teamdctl  team0 state
发布了24 篇原创文章 · 获赞 2 · 访问量 1115

猜你喜欢

转载自blog.csdn.net/Kammingo/article/details/104944386