ssh服务与 sudo授权(ssh,sudo,aide)

SSH服务与sudo授权

ssh服务,即安全的远程系统登录服务,使用22端口
windows也支持ssh服务
过程:
客户端发起链接请求
服务端返回自己的公钥,以及一个会话ID
客户端生成密钥对
客户端用自己的公钥异或会话ID,计算出一个值,并用服务端的公钥加密
客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
服务端用解密后的值异或会话ID,计算出客户端的公钥
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

openssh 通用
openssh-clients 客户端
openssh-server 服务器端
客户端:
当用户首次连接会将服务器公钥复制在~/.ssh/know_hosts中,下次连接,会自动匹配私钥,如果不匹配,将拒绝连接
ssh客户端配置文件 /etc/ssh/ssh_config
设置ssh首次连接不再提示yes/no
echo “StrictHostKeyChecking no” >> /etc/ssh/ssh_config

ssh相关命令

lastb 查看失败登录的远程主机 

ssh命令 安全连接远程主机

  登录对方主机执行完命令后退出
  ssh root@10.0.0.8 cat /etc/redhat-reless
  -p 连接指定端口号
  ssh -p 22 root@10.0.0.1
  -t 强制伪终端分配
  ssh -t 10.0.0.8  ssh -t 10.0.0.7  ssh -t 10.0.0.6

ssh登录验证方式

ssh登录验证包括: 密码 密钥
密钥:
主机密钥 /etc/ssh/*.key
用户密钥 ~/.ssh/
ssh实现基于密钥登录

1,生成客户端密钥对
  ssh-keygen  
        -p 私钥加密
2,复制公钥到远程服务器
  ssh-copy-id  root@10.0.0.8
3,发起连接执行命令
  ssh root@10.0.0.8  useradd yun 
注:复制公钥到服务器后,具有对应私钥的客户端即可实现密钥**登录

expect实现批量基于ssh的key部署

#!/bin/bash
PASS=magedu
rpm -q expect &> /dev/null || yum -y install expect &> /dev/null
ssh-keygen  -t rsa -P "" -f /root/.ssh/id_rsa &> /dev/null && echo "ssh key is 
created"
while read IP ;do
expect &> /dev/null <<EOF  #或者expect <<EOF  &> /dev/null
set timeout 20
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASS\n" }
}
expect eof
EOF
echo $IP is ready
done < hosts.txt

批量修改多台主机的root密码为随机密码

#!/bin/bash
 yum -y install sshpass &>/dev/null 
NET=10.0.0
mima=123456
for i in {1..254};do
 PASS=`cat /dev/urandom | tr -dc [:alnum:] |head -c6 `
 sshpass -p $mima ssh $NET.$i "echo $PASS|passwd --stdin root &> /dev/null"
 echo $NET.$i:$PASS >> host.txt
done

ssh服务相关工具

rsync 实现远程主机之间复制文件
       -a 保留属性   -v 显示过程
注: 双方主机都需安装rsync
rsync  -av /data/  root@10.0.0.8:/data/
rsync  -av root@10.0.0.8:/data/  /data/

sshfs 实现远程挂载目录
sshfs 10.0.0.8:/data/  /data/

sshpass远程自动登录   
注: 基于密码登录,且非首次登录
sshpass -p ssy192011  ssh 10.0.0.8  useradd  yunge

ssh服务器配置优化

ssh 服务器配置
cat /etc/ssh/sshd_config
Port 22 端口号
LoginGraceTime 2m 连接超时时间,默认:分钟,不输入则退出
StrictModes yes 检查.ssh/文件的所有者,权限等
MaxSessions 10 同一个连接最大会话个数,10.0.0.7的最大终端数
PubkeyAuthentication yes 是否支持key验证
PermitEmptyPasswords no 是否允许空密码连接
PasswordAuthentication yes 是否允许密码验证
GatewayPorts no 是否当网关跳转
ClientAliveInterval 60 60秒监控一次。如果无操作,断开
ClientAliveCountMax 0 与上一项配合
MaxStartups 10 未认证连接最大值
Banner /path/file 用户登录提示信息

数据完整性检查aide

aide
通过样本库与文件库的对比,检查数据完整性
规则配置文件: /etc/aide.conf
定义监控项:权限+索引节点+链接数+用户+组+大小+最后一次修改时间+创建时间+md5校验值
R=p+i+n+u+g+s+m+c+md5
/data/ R
!/data/fstab 排除对这个文件的检查

过程:
1, yum install aide -y
2, vim /etc/aide.conf
3, aide -i
4, mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
5, aide -C

sudo授权

sudo:允许系统管理员让普通用户执行一些或者全部的root命令
sudo授权需要的密码为授权用户密码,且5分钟内再次授权不用密码
sudo规则文件: /etc/sudoers 支持通配符
规则:
user host=(runas) cmd
用户 主机=(代表用户) 命令
%wheel 组wheel
! 除了
任意字符
例:
yun ALL=(root) ALL,!rm
%wheel ALL=(root) mount , umount

执行sudo:
sudo -i 切换为root
sudo mount /dev/sr0 /mnt 实现sudo授权挂载
visudo -c 查看sudo规则文件是否语法错误
注意:
通配符会实现 cat /data/f1 /etc/passwd
正确方法:
yun ALL=(ALL) /bin/cat /data/f
, ! /bin/cat /data/f
**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值