linux tools

day37课堂笔记(ssh服务)

2019-04-23  本文已影响70人  五月_w

第一章、思想

第二章、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.png

3.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.png

3.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.png

3.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.png
image.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
上一篇下一篇

猜你喜欢

热点阅读