-
远程管理配置文件参数
-
远程管理防范入侵方法
-
批量管理服务概念作用
-
批量管理服务安装部署
-
批量管理服务配置应用
-
主机清单配置部分
-
模块功能应用
-
1.远程管理服务配置文件
/etc/ssh/sshd_config ---ssh服务端配置文件
/etc/ssh/ssh_config ---ssh客户端配置文件
服务端部分配置说明:
#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远程连接效率
2.远程管理防范入侵
01.尽量使用秘钥认证,不要使用密码认证(或者密码复杂,定期修改)
02.尽量让架构中的服务器没有外网网卡
03.对于拥有外网地址服务器,做好服务地址监听,提高安全性
04.防火墙服务/硬件,根据业务情况做安全访问控制(ACL访问控制)
05.监控系统重要文件是否被修改(inotify 对比指纹信息)
如/etc、/var
06.给重要文件信息上锁(chattr)
用户相关文件上锁: passwd shadow group groupshadow
服务程序运行相关: rc.local profile.d/ crond
系统环境配置相关: profile bashrc ifcfg-eth0 reslove.conf rsyncd.conf
补充chattr:
chatter: 锁定文件,不能删除,不能更改
+a: 只能给文件添加内容,但是删除不了,
chattr +a /etc/passwd
-d: 不可删除
加锁:chattr +i /etc/passwd 文件不能删除,不能更改,不能移动
查看加锁: lsattr /etc/passwd 文件加了一个参数 i 表示锁定
解锁:chattr -i /home/omd/h.txt - 表示解除
3.批量管理服务概念介绍(ansible)
ansible:自动化运维工具,基于Python开发、SSH远程管理服务实现远程主机批量管理,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
ansible软件特点:
a.部署安装简单方便,不需要编写配置文件(/etc/ansible/ansible.cfg)
b.管理端不需要启动服务
c.客户端不需要进行配置
d.服务程序管理操作模块众多(module)
e.利用剧本编写来实现自动化(playbook)
ansible批量管理服务功能:
a 实现批量分发数据信息
b 实现批量部署软件服务
c 实现批量收集系统信息 资产管理
d 实现批量自动管理应用 代码上线 服务重启
4.ansible软件部署过程
管理端:
第一个里程:安装软件
yum install -y ansible
被管理者:确认防火墙和selinux安全服务是否关闭
5.如何配置使用软件
1).主机清单配置
vim /etc/ansible/hosts
172.16.1.41 --- ansible管理端可以管理的主机信息
主机清单配置方法:
官方参考: https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
方法一: 直接写上管理主机IP地址信息
172.16.1.41
172.16.1.31
172.16.1.7
进行测试:
ansible 172.16.1.31,172.16.1.41 -m ping --- 单台或多台主机测试
ansible all -m ping --- 对所有管理主机测试
方法二: 按照分组信息进行配置 *****
[rsync_server]
172.16.1.41
[rsync_client]
172.16.1.31
172.16.1.7
进行测试:
ansible 管理谁 -m 模块 信息实现什么功能
ansible rsync_client -m ping
方法三: 设置管理主机连接参数(ansible程序内置变量)信息
[rsync_server]
172.16.1.41 ansible_user=root ansible_password=654321 ansible_port=22
[rsync_server]
backup ansible_host=172.16.1.41 ansible_user=root ansible_password=654321 ansible_port=22
[rsync_server]
www.oldboy.com ansible_user=root ansible_password=654321 ansible_port=22
ansible_user --- 指定远程连接用户信息
ansible_password --- 指定远程连接用户密码
ansible_port --- 指定远程连接服务端口
ansible_host --- 可以使用主机名称进行管理 参数后面指定IP地址 参数前面指定主机名信息
方法四: 嵌入式配置主机清单
[rsync:children]
rsync_server
rsync_client
[rsync_server]
www.oldboy.com ansible_host=172.16.1.41 ansible_user=oldboy ansible_password=654321 ansible_port=22
[rsync_client]
172.16.1.31
172.16.1.7
进行测试:
ansible rsync -m ping
[rsync_client]
172.16.1.31
172.16.1.7
[rsync_client:vars] --- 对管理组中所有主机信息,统一设置变量
ansible_user=root
ansible_password=654321
ansible_port=22
方法五: 使用匹配符号信息,匹配多个主机
[rsync_client]
172.16.1.[1:7]
[rsync_client]
web-[a:z]
2).功能模块
第一个模块(默认模块): command 命令模块 批量执行命令
ansible oldboy -m command -a "hostname"
第二个模块(万能模块): shell 命令模块 批量执行命令
ansible oldboy -m shell -a "yum install -y htop"
ansible oldboy -m shell -a "cd /tmp;pwd"
第三个模块: script 命令模块 批量运行脚本
第一个里程: 编写脚本
第二个里程: 批量执行脚本
ansible oldboy -m script -a "/server/scripts/create_user.sh"
专业的模块干专业的事:如使用脚本创建一个用户(利用万能模块和script模块对比)
万能模块:
第一个里程: 编写脚本
第二个里程: 将脚本进行分发
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"