远程管理服务简绍 ( 了解 )
SSH : 服务端口 22 对远程传输数据进行加密 默认支持 root 用户远程连接
telnet : 服务端口 23 对远程数据明文显示 默认禁止 root 用户远程呢个链接
远程服务通讯原理 ( 了解 )
- 基于密码建立远程通讯过程如下 :
- 客户端和服务端建立三次握手
- 客户端向服务端发起 SSH 远程连接请求
- 服务端回复客户端 SSH 远程连接确认信息 确认是否建立连接或确认是否接受公钥信息
- 客户端接受信息后向服务端发送确认连接信息
- 服务端接收确认后向客户端发送公钥信息 (/etc/ssh/公钥信息)
- 客户端接收服务端公钥信息后保存并进行确认 ( ~/.ssh/know_hosts )
- 服务端向客户端询问连接密码信息
- 客户端向服务端发送登录密码信息
- 服务端向客户端进行最后确认
- 基于密钥登录方式 : ( 身份验证 数据信息加密处理 )
- 管理端将创建好的秘钥对中的公钥发送给被管理端 并发送远程连接请求
- 被管理端对管理端进行公钥质询
- 管理端响应被管理端发送的公钥质询信息
- 被管理端进行公钥质询结果确认
秘钥连接 : ( 配置 )
管理端服务器上配置(10.0.0.61)
- 创建秘钥对信息 :
执行 ssh-keygen -t dsa
The key's randomart image is:
+---[DSA 1024]----+
| o. oB*o. |
| o . o.o... |
| . + . . + o |
| . = . o * = . |
| * . S = o. |
| . . . o + .o.+ |
| . oo o.+Eo |
| .o+.o+. |
| .oo . |
+----[SHA256]-----+
- 检查文件是否创建成功 :
执行 ll ~/.ssh/
-rw------- 1 root root 668 Aug 21 16:34 id_dsa
-rw-r--r-- 1 root root 598 Aug 21 16:34 id_dsa.pub
-rw-r--r-- 1 root root 518 Aug 21 11:37 known_hosts
创建成功式样
- 将公钥发送到被管理端服务器上 :
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
远程管理服务配置文件 :
配置文件 :
ssh服务端 : /etc/ssh/sshd_config
ssh客户端 :/etc/ssh/ssh_config
配置文件参数信息
#Port 22 --- 指定服务端口号 52113
#ListenAddress 0.0.0.0 --- 任意主机地址都进行监听
PS: 所有服务监听的地址只能是本地网卡上有的地址
#PermitRootLogin yes --- 是否允许root用户远程登录 oldboy -- su -- root (jumpserver)
#PermitEmptyPasswords no --- 是否允许无密码进行远程连接
#GSSAPIAuthentication yes --- 使用GSSAPI认证方式进行远程连接 影响ssh远程连接效率
#UseDNS yes --- 是否进行DNS反向解析过程 影响ssh远程连接效率
远程管理安全 :
- 尽量使用秘钥认证减少密码认证的使用 , 使用密码认证时要保证密码具有一定的复杂程度且要不定期修改密码
- 架构中的服务器尽量避免安装外网网卡保障环境好安全
- 在有外网网卡的服务器上做好服务地址监听提高安全性
- 监控系统重要文件 如 /etc/ /var/ 是否被修改 inotify 对比指纹信息(zabbix)
- 防火墙服务或硬件根据业务情况做相应的安全访问控制
- 给重要文件上锁 : ( chattr )
- 用户相关文件上锁 : password shadown group groupshadown
- 服务程序运行相关文件上锁 : rc.local profile.d/ crond
- 系统环境配置相关文件上锁 : profile bashrc ifcfg-eth0 reslove.conf rsyncd.conf
批量管理服务
- 同时并行管理多台主机 ()
- 批量分发数据
- 批量部署软件
- 批量搜集系统信息资产管理
- 实现自动管理理应用 (代码上线 服务重启 )
- ansible 软件特点 :
- 部署安装简单方便
- 软件不需要启动服务
- 客户端不需要进行配置
- 功能作用强大
ansible 部署安装过程
管理端 :
安装软件 : yum install -y ansible
-rw-r--r-- 1 root root 19980 Jul 21 07:59 ansible.cfg -- 程序配置文件默认配置即可
-rw-r--r-- 1 root root 1016 Jul 21 07:59 hosts -- 主机清单文件
drwxr-xr-x 2 root root 6 Jul 21 07:59 roles
ansible 语法 : ansible 管理谁 -m 模块信息(要做的事) -a (具体使用模块的参数)
[ansilble 172.16.1.41 -m ping]
排错方法
编写文件 : vim /etc/ansible/hosts
被管理端 :
确认防火墙和selinux安全服务是否关闭
配置使用软件
主机清单配置
-
直接将被管理的主机Ip地址写入 /etc/ansible/hosts 文件底行
- vim /etc/ansible/hosts
- ansible all -m ping
- ansible 172.16.1.41,172.16.1.31 -m ping
-
分组配置
-
组名用[] 号来括起来 :
[分组名称]
IP 地址
-
-
ansible程序内置变量
ansible_user=root ansible_password=123456 ansible_port=22
1 2 3
- 用户
- 密码
- 服务端口
-
嵌入式 :
[rsync:children] [ 名称 : children]
rsync_server 管理的分组名称
rsync_client 管理的分组名称
-
使用符号信息匹配
[rsync_client]
172.16.1.[1:7]
掌握功能模块
command 命令模块 批量执行命令 ansible all -m command -a hostname
局限性 : 有些特殊符号不能识别
shell 模块 命令模块 批量执行命令 万能模块
可识别一些特殊符号
script 批量运行脚本 命令模块
shell编写脚本
将脚本分发给每个被管理主机 :
ansible oldboy -m copy -a "src=/server/scripts/create_user.sh dest=/server/scripts/"
修改脚本文件权限 加上执行权限
ansible oldboy -m file -a "path=/server/scripts/create_user.sh mode=755"
批量执行脚本
ansible oldboy -m shell -a "/server/scripts/create_user.sh"
script 编写脚本 批量执行
ansible oldboy -m script -a "/server/scripts/create_user.sh"
尽量使用专业的模块功能完成相应的工作
[模块使用方法 : 先进入官方网站 简单了解模块的作用 (看标题) ; 查看详细说明 Synopsis 简绍 ; 参数信息 Parameters 看举例里面相应模块参数 (缩进信息)]
ansible 不同颜色说明 :
- 绿色 : 对主机信息进行查看 执行成功
- 黄色 : 对主机信息进行查看 对主机进行调整修改
- 紫色 : 对主机信息进行查看 建议忠告信息
- 红色 :对主机信息进行查看 报错提示信息