一. selinux、established
1 | 示例1:永久修改selinux |
二. SSH访问控制
SSH使用TCP Wrappers实现访问控制 # 注:做访问控制
主要配置文件
/etc/hosts.allow
/etc/hosts.deny
TCP Wrappers可以控制哪些服务
- 受super daemon(xinetd)管理的服务 # 注:守护进程的服务
- 支持libwrap.so模块的服务
TCP Wrappers的访问控制原则
- 首先检查 hosts.allow 文件,若找到相匹配的策略,则允许访问
- 否则继续检查 hosts.deny 文件,若找到相匹配的策略,则拒绝访问
- 如果两个文件中都没有相匹配的策略,则允许访问
#注:守护进程层面的控制
1 | 示例:/etc/hosts.deny |
#注:主机公钥在 /etc/ssh/下面 默认使用ecdsa模式
#注:known_hosts文件里有什么 前面是ip地址,后面是公钥
#注:authorized_keys 放受信任的公钥
三. ssh隧道
#注:本地端口转发
CSDN https://www.cnblogs.com/keerya/p/7612715.html
端口转发:A、C、B主机。主机B起了个nginx服务 端口号80;主机A不能直接访问主机B,但主机A可以访问主机C,主机C可以访问主机B (A–>C–>B);A可以ssh到C,A跳到C,然后访问B的80端口 (nginx)。现在 在主机C上面建立一个隧道,隧道开启15577端口连接B的80端口,A去访问15577端口相当于去访问B的80映射
#注:ssh隧道 第一个用于不能直接访问的情况;第二个考虑密文传输
1 | [root@cPen_C ~]# lsof -i:15577 # 注:在C主机上操作,15577端口未被占用 |
#总结:ssh隧道
端口转发
1、关闭防火墙
2、关闭selinux
#本地端口转发
# ssh -g -L 15577:192.168.0.39:80 192.168.0.39 -p 2233 # 注:C主机上执行 把B主机80端口映射本地15577端口*
B主机80端口 B主机
实验环境:
A主机:192.168.0.132
C主机:192.168.0.48
B主机:192.168.0.39
在C主机上执行:[root@cPen_C ~]# ssh -g -L 15577:192.168.0.39:80 192.168.0.39 -p 2233
把B主机的80端口映射到本地的15577端口
访问C主机的15577端口就是访问B主机的80端口
#远程端口转发
# ssh -R 15566:192.168.0.39:80 -fN 192.168.0.132 -p 2233 # 注:C主机上 把B主机80端口 映射到 A主机15566端口
B主机 80端口 A主机
远程端口转发:在C主机上执行:[root@C .ssh]# ssh -R 15566:192.168.0.39:80 -fN 192.168.0.132 -p 2233
把B主机的80端口映射到A主机的15566端口
访问A主机的15566就是访问B主机的80
#注:A主机 192.168.0.132
#注:B主机 192.168.0.39
#注:在C主机上建立远程通道,在C主机上为A主机启动15566端口,映射到B主机
1
2
3
4
5 [root@cPen_A ~]# lsof -i:15566 # 注:A主机开启15566端口
sshd 2067 root 8u IPv6 38604 0t0 TCP localhost:15566 (LISTEN) # 注:监听的是本地回环地址
sshd 2067 root 9u IPv4 38605 0t0 TCP localhost:15566 (LISTEN)
[root@cPen_A ~]# curl 127.0.0.1:15566 # 注:访问本地15566端口映射到B主机的80端口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> # 返回的内容
四. ansible服务
ansible是一个自动化运维工具的名称
基于Python开发,集合了众多运维工具的优点(puppet,fabric,slatstack),实现批量系统配置,程序的部署,批量运行命令等
.--------------------------------------------------------------------------------------------------------------------------------------------
Linux运维:自动化(脚本),智能化,平台化
Linux运维人员,人肉运维不可取
诞生了一系列的运维工具,ansible就是其中之一
.--------------------------------------------------------------------------------------------------------------------------------------------
日常运维:
1、软件安装
2、服务的配置
3、运行脚本
4、升级
5、备份
.--------------------------------------------------------------------------------------------------------------------------------------------
ansible基于Python开发,依赖于:paramiko,PyYaml和jinja三个关键组件
基于ssh协议,只要……没写完
#其他服务需要部署agent,而ansible只需要部署到server,只要十万台的key都上传到其他机器上
#注:glibc 内核底层的库
.--------------------------------------------------------------------------------------------------------------------------------------------
#实验环境
a: 192.168.0.132(ansible)
c: 192.168.0.48
b: 192.168.0.39
实验前提,做好免密码认证,详见ssh服务
a --> b , a --> c a可以免密码登录到b和c
1、在a上安装ansible
[root@cPen_A .ssh]# yum install epel-release # 注:安装epel源
[root@cPen_A .ssh]# yum install ansible # 注:安装ansible
2、配置
配置目录:
/etc/ansible/ansible.cfg
ansible的主配置文件,这个文件主要定义了roles_path路径,主机清单路径,连接清单中的主机方式等配置,这些大部的默认配置已经足够我们平时使用,如需要特别配置可以自行去修改
/etc/ansible/hosts
这个配置文件就是默认的主机清单配置文件,可以通过ansible.cfg重新定义
备份/etc/ansible/hosts文件
编辑/etc/ansible/hosts文件
#将需要管理的主机添加到webser组
#如果通过ssh登录的端口不是22号端口,就需要在配置文件中指明端口号
1
2
3
4
5
6
7
8 [root@cPen_A ansible]# cp hosts{,.bak} # 注:备份
[root@cPen_A ansible]# ls
ansible.cfg hosts hosts.bak roles
[root@cPen_A ansible]# >hosts # 注:老的清空
[root@cPen_A ansible]# vim hosts
[webser]
192.168.0.31:2233
192.168.0.55
ansible组成:
1、host inventory --#定义客户机,可以对客户机进行分类:db类,web类…等等
2、playbook --#剧本 让主机按照我给定的剧本去完成一些事情
3、module --#模块 实现一个个功能的程序
4、pluging --#插件 实现一些额外的小功能
.--------------------------------------------------------------------------------------------------------------------------------------------
1 | [root@cPen_A /]# cd /etc |
.--------------------------------------------------------------------------------------------------------------------------------------------
ansible 主执行程序,一般用于命令行下执行
ansible-playbook 执行playbook中的任务
ansible-doc 获取各模块的帮助信息
.--------------------------------------------------------------------------------------------------------------------------------------------
1 | [root@cPen_A ~]# ansible -h # 注:ansible -h帮助文档 |