第一章、思想
第二章、m01管理机
1、批量管理(ssh以及ansibe),分发软件、安装软件、运行命令和脚本
2、跳板机(jumpserver)。就是登录跳板机才能管理其他服务器。
3、日志审计(jumpserver).
4、VPN服务,只有连接上VPN才能使用管理机。PPTP
5、无人值守安装(批量装1000台),kickstart,cobbler
6、zabbix监控服务,代码发布(git+jenkins)
第三章、ssh服务介绍
3.1、基本介绍
古老基础服务,SSH是远程连接linux,管理Linux的服务。
Secure Shell Protocol 简写 SSH 安全的Shell协议
使用的默认端口为22(一台机器的不同功能就用端口区分)
3.2、网络服务对应端口介绍
873 rsync服务
22 ssh 服务
25 stmp 邮件发送服务
110 pop3 邮件接收服务
80 web 网页服务
23 telnet
111 rpcbind
21 ftp
ssh协议属于 tcp/ip 协议族
3.3、 远程连接服务:
telnet数据是明文的,连交换机和路由器,配置。
telnet ip port 检测端口以及服务是否好的
ssh协议:在传输过程中数据是加密的。安全的shell协议
ssh分为服务端和客户端,称之为c/s架构,client/server
浏览器/服务器。称之为b/s架构,browser/server 大趋势
ssh服务:客户端/服务端软件
超市收银:c/s,收银,客户端可以很强大,页面展示都可以在客户端,胖客户端。
网页服务:b/s browser/server 瘦客户端,内容展示都是服务端控制的。
3.4、服务端软件(工具)
image.png如果没有yum install openssl openssh -y 安装
配置文件
ll /etc/ssh/sshd_config
image.png
image.png
3.5、ssh客户端工具介绍
windows下:
xshell 个人免费,多一些
secureCRT 收费 很好,之前有过木马问题
putty
linux :ssh
3.6、Linux ssh客户端里含有的命令
image.png3.7、ssh客户端命令介绍与实践
3.71、远程连接Linux
ssh -p 22 root@10.0.0.31
命令 -p 端口 用户@IP
上述命令相当于ssh 10.0.0.31
image.png
image.png
3.7.2、 ssh命令:远程执行命令
ssh 10.0.0.31 ifconfig
3.73、 scp命令:远程拷贝(secure copy),加密的拷贝
scp命令参数
-P 端口
-r 递归
-p 保持属性
-l 限制速度
scp推
scp -p22 -rp /data root@172.16.1.31:/tmp/
类似rsync远程shell的推送模式:
rsync -avz /data root@172.16.1.7:/opt
rsync -avz /data -e "ssh -p 22" root@172.16.1.7:/opt
scp拉
scp -P 22 -rp root@172.16.1.7:/tmp/data /tmp/
类似rsync远程shell的拉取模式:
rsync -avz root@172.16.1.7:/opt/data /data
对比下scp和rsync
scp每一次都全量拷贝
rsync第一次全量,以后增量拷贝,远程shell这也是加密拷贝
image.png
3.74、sftp(了解即可)
sftp命令:加密的ftp服务。默认缺点不能锁定家目录
ftp:vsftp服务。RHCE课程里讲
sftp -oPort=22 root@172.16.1.7
sftp> put "/etc/hosts" 上传远端家目录。
sftp> put /etc/hosts /tmp 上传远端指定目录/tmp。
sftp> get /etc/yum.conf 下载到本地家目录。
sftp> get oldboy.txt /etc 下载到本地指定目录/etc
sftp 服务也支持windows ftp 客户端:
winscp,flashftp,xshell也支持
常规和服务器交互数据文件
rz/sz属于lrzsz
3.8、xshell ssh连不上服务器,如何排查?
1、ping IP:
不通:检查物理网络网线,电脑IP设置
通:检查物理链路通的
2、telnet ip port:
不通:查服务器端防火墙和ssh服务(ps -ef|grep sshd,netstat -lntup|grep sshd)
3、检查本地xshell连接的IP端口 协议 密码 用户
image.png
3.9、ssh服务端
image.png3.10、ssh服务配置优化
####Start by oldboy#2018-04-26###
Port 52113 使用大于10000的端口
PermitRootLogin no 禁止root远程登录,可以su - root,C7需要改yes为no
PermitEmptyPasswords no 禁止空密码登录,C7默认就是
UseDNS no 不使用dns解析,yes改为no
GSSAPIAuthentication no 禁止连接慢的解决配置
ListenAddress 172.16.1.61:52113 只允许内网IP连接SSH(172.16.1.0)
####End by oldboy#2018-04-26###
image.png
实践:
image.png安全:
1、跳板机内网连接,跳板机使用VPN连接,然后内网连接。
2、防火墙限制只有源IP为内网IP访问22端口
image.png
3.11、SSH服务通信原理
ssh协议两个版本:
ssh 1.x 有漏洞,不用了
ssh 2.x 主流
image.png
image.png
image.png
客户端密钥位置
image.png3.12、SSH两种认证方式
1)密码认证pam(用户名、密码登录)
2)秘钥认证(不需要密码了,使用秘钥文件就可以连接服务器了)。
3.13、秘钥认证:
image.png实践秘钥认证
项目实践:批量管理、批量分发内容项目
1、搭建环境
m01 10.0.0.61(放钥匙)
web01 10.0.0.7(放锁)
web01 10.0.0.8(放锁)
image.png
2、是root用户,还是普通用户oldboy(sudo提权 很麻烦?)就用root用户,保证权限。考虑方便、简单、又能兼顾安全。
默认端口22,不需要禁止远程root登录,SSH服务监听内网卡(防火墙限制来源IP)
3、开始实践
1)基于root用户做Linux之间的秘钥认证。
2)生成密钥对(去超市买把锁),不需要指定服务器。
3)在61上生成密钥对(方便)。
ssh-keygen
image.png
秘钥对两个算法rsa和dsa,RSA与DSA加密算法的区别
ssh-keygen -d dsa(指定秘钥-d)
RSA是一种加密算法(PS:RSA也可以进行数字签名的),它的简写的来由是Ron Rivest、Adi Shamir和
Leonard Adleman,这三个人姓氏的第一个字母连接起来就是RSA。
DSA就是数字签名算法的英文全称的简写,即Digital Signature Algorithm,简写就是DSA,
RSA既可以进行加密,也可以进行数字签名实现认证,而DSA只能用于数字签名从而实现认证。
image.png
4、把锁放到7/8上
/usr/bin/ssh-copy-id #专业拷贝密钥中的公钥文件的。
image.png
5、ssh-copy-id(专业拷贝秘钥中的文件)原理
6、测试远程执行命令:
ssh 172.16.1.7 ifconfig
ssh 172.16.1.78ifconfig
image.png
image.png
7.写脚本批量查IP
for n in 7 8
do
ssh 172.16.1.$n ifconfig
done
执行脚本sh /server/scripts/cmd.sh
image.png
image.png
image.png
8、开发脚本批量管理服务器
for n in 7 8
do
echo -------172.16.1.$n----------
ssh 172.16.1.$n "$1"
done
image.png
image.png
image.png
9、批量发文件
image.pngimage.png
复杂分发文件脚本:
#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 2 ]
then
echo "usage:$0 localfileremotedir"
exit 1
fi
for n in 31 41 51
do
scp -P 22 -rp $1 root@172.16.1.$n:$2
if [ $? -eq 0 ]
then
action "172.16.1.$n successful" /bin/true
else
action "172.16.1.$n failure" /bin/false
fi
done
image.png
image.png
image.png
网友评论