SSH安全服务
ssh安全服务
client \ sever
ssh: secure shell, protocol, 22 / tcp, 安全的远程登录, 基于RSA或DSA实现身份认证
两种方式的用户登录认证:
基于password
基于key
客户端组件:
ssh, 配置文件: / etc / ssh / ssh_configu
Host PATTERN
StrictHostKeyChecking no 首次登录不显示检查提示
格式:ssh[user @ ]host[COMMAND]
ssh[-l user]host[COMMAND]
ssh 192.168.0.1 'ipconfig'
常见选项
-p port:远程服务器监听的端口
-b: 指定连接的源IP
ssh - b 192.168.0.1 192.168.0.2
-v: 调试模式
-C:压缩方式
-X: 支持x11转发
-Y:支持信任x11转发
ForwardX11Trusted yes
-t: 强制伪tty分配
ssh - t remoteserver1 ssh remoteserver2
ssh基于key的验证
(1)在客户端生成密钥对
ssh - keygen - t rsa[-P ''][-f "~ / .ssh / id_rsa "]
(2) 把公钥文件传输至远程服务器对应用户的家目录
ssh-copy-id [-i [identity_file]] [user@]host
(3)测试
服务端生成一对公私钥
A B C
sever client_A client_B
ssh-copy-id {B,C}
若B有A的私钥 可直连C
(5)重设私钥口令:
ssh-keygen –p
(6)口令代理管理
ssh-agent bash
ssh-add
ssh实现服务批量KEY验证
编辑脚本:批量keyv
ssh-keygen -t rsa -P '' -f ~/.ssh.id_rsa
生成Kety 指定 -t方式 -P '口令为空' -f 指定路径
###[root@centos6 ~]#cat hostlist.txt
###192.168.30.7 root centos
###192.168.30.17 root magedu
###[root@centos6 ~]#cat pushkey.sh
####!/bin/bash
###ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null && echo " Ssh key is created "
###while read line;do
ip=`echo $line|awk '{print $1}'`
user=`echo $line|awk '{print $2}'`
password=`echo $line|awk '{print $3}'`
expect <<-EOF
set timeout 50
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user@$ip
expect {
" yes / no " { send " yes \ n ";exp_continue }
" password " { send " $password \ n " }
}
expect eof
EOF
echo " $ip is finished "
###done < hostlist.txt
rsync命令(同步变动数据)
基于ssh和rsh服务实现高效率的远程系统之间复制文件
使用安全的shell连接做为传输方式
rsync –av /etc server1:/tmp 复制目录和目录下文件
rsync –av /etc/ server1:/tmp 只复制目录下文件
比scp更快,只复制不同的文件
选项:
-n 模拟复制过程
-v 显示详细过程
-r 递归复制目录树
-p 保留权限
-t 保留时间戳
-g 保留组信息
-o 保留所有者信息
-l 将软链接文件本身进行复制(默认)
-L 将软链接文件指向的文件复制
-a 存档,相当于–rlptgoD,但不保留ACL(-A)和SELinux属性(-X)
SSH端口转发
###本地转发:clientA-ssh severB-
-L localport:remotehost:remotehostport sshserver
选项:
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能
示例
ssh –L 9527:telnetsrv:23 -N sshsrv
telnet 127.0.0.1 9527
à
ß sshsrv:22 à
ß localhost:XXXXX à
ßlocalhost:9527 ß当访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23 data
telnetsrv:23à
ßsshsrv:YYYYY
###远程转发:
-R sshserverport:remotehost:remotehostport sshserver
示例:
ssh –R 9527:telnetsrv:23 –N sshsrv
让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发到telnetsrv:23
à
ß localhost:XXXXX à
ß sshsrv:22 à
ß sshsrv:9527 à
ßData
telnetsrv:23à
ßlocalhost:YYYYY
动态端口转发:
当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问
请求被转发到sshserver上,由sshserver替之访问internet
ssh -D 1080 root@192.168.244.131
在本机firefox设置代理socket proxy:127.0.0.1:1080
ssh服务器
服务器端:sshd, 配置文件: /etc/ssh/sshd_config 第17行 port端口改掉
登录信息日志在 /var/log/secure
awk '/failed password/{ip$[(NF-3)]++}END{for (i in ip){if(ip[i]>=3)system(" iptables - A INPUT - s " i " - j REJECT ")}}' /var/log/secure
常用参数:
Port (端口)
ListenAddress ip (监听ip)
LoginGraceTime 2m (登录维持两分钟)
PermitRootLogin yes (是否ROOT登录)
StrictModes yes 检查.ssh/文件的所有者,权限等
MaxAuthTries 6 (最多能尝试连接一半的次数)
MaxSessions 10 同一个连接最大会话
PubkeyAuthentication yes (公钥验证)
PermitEmptyPasswords no (是否能空密码)
PasswordAuthentication yes (密码验证 )
GatewayPorts no (网关端口)
ClientAliveInterval:客户端活动间隔 单位:秒
ClientAliveCountMax:客户端活动间隔探测次数 默认3
UseDNS yes (dnf解析 建议no)
GSSAPIAuthentication yes 提高速度可改为no
MaxStartups 未认证连接最大值,默认值10
Banner /path/file
限制可登录用户的办法:
AllowUsers user1 user2 user3
DenyUsers
两个都有的时候。拒绝名单优先
AllowGroups
DenyGroups
建议使用非默认端口
禁止使用protocol version 1
限制可登录用户
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址
基于口令认证时,使用强密码策略
tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30| xargs
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
经常分析日志
ssh 工具
dropbear
编译安装dropbear示例
ssh协议的另一个实现:dropbear
源码编译安装:
1、安装开发包组:yum groupinstall "Development tools"
2、下载dropbear-2017.75.tar.bz2
3、tar xf dropbear-2017.75.tar.bz2
4、less INSTALL README
5、./configure
6、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
7、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
dropbear启动ssh服务:
8、ls /usr/local/sbin/ /usr/local/bin/
9、/usr/local/sbin/dropbear -h
10、mkdir /etc/dropbear
11、dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
12、dropbearkey -t dss -f /etc/dropbear/dropbear_dsa_host_key
13、dropbear -p :2222 -F –E #前台运行
dropbear -p :2222 #后台运行
客户端访问:
14、ssh -p 2222 root@127.0.0.1
15、dbclient -p 2222 root@127.0.0.1
AIDE
AIDE(Advanced Intrusion Detection Environment)
高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.
AIDE
安装
yum install aide
修改配置文件
vim /etc/aide.conf (指定对哪些文件进行检测)
/test/chameleon R
/bin/ps R+a
/usr/bin/crontab R+a
/etc PERMS
!/etc/mtab #"!"表示忽略这个文件的检查
R=p+i+n+u+g+s+m+c+md5 权限+索引节点+链接数+用户+组+大小+
最后一次修改时间+创建时间+md5校验值
NORMAL = R+rmd60+sha256
AIDE
初始化默认的AIDE的库:
/usr/local/bin/aide --init
生成检查数据库(建议初始数据库存放到安全的地方)
cd /var/lib/aide
mv aide.db.new.gz aide.db.gz
检测:
/usr/local/bin/aide --check
更新数据库
aide --update
SSH安全服务的更多相关文章
- Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...
- systemctl status ssh.service 服务重启出现报错
Case: ubuntu在从Ubuntu 16.04 LTS 升级到18.04 的时候,执行 do-release-upgrade -d 后,发现ssh无法登陆服务器, Solution: 1.通过s ...
- (转)远程SSH连接服务与基本排错
远程SSH连接服务与基本排错 原文:https://www.cnblogs.com/chensiqiqi/p/6224474.html#top 1.1 为什么要远程连接Linux系统 在实际的工作场景 ...
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- Linux SSH,FTP服务配置
CentOS-6.4-x86_64-minimal 0.网卡配置 参考:Linux系统\Centos没有网卡eth0配置文件怎么办? - http://jingyan.baidu.com/articl ...
- 远程SSH连接服务与基本排错
为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...
- SSH高级服务
SSH端口转发 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的 加密及解密服务.这 ...
- 安装,配置,启动FTP,SSH,NFS服务
1.安装,配置,启动FTP服务 sudo apt-get install vsftpd 修改vsftpd的配置文件/etx/vsftpd/.config,将下面几行前面的“#”去掉 #local_en ...
- Ubuntu13.10:[3]如何开启SSH SERVER服务
作为最新版本的UBUNTU系统而言,开源,升级全部都不在话下.传说XP已经停止补丁更新了,使用UBUNTU也是一个很好的选择.ubuntu默认安装完成后只有ssh-agent(客户端模式),宾哥百度经 ...
随机推荐
- Mac 下安装配置jdk
jdk官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1. Mac自带了的JDK6,安装在目录:/ ...
- bzoj 3566: [SHOI2014]概率充电器【树形概率dp】
设g[u]为这个点被儿子和自己充上电的概率,f[u]为被儿子.父亲和自己充上电的概率 然后根据贝叶斯公式(好像是叫这个),1.P(A+B)=P(A)+P(B)-P(A)*P(B),2.P(A)=(P( ...
- bzoj 1007: [HNOI2008]水平可见直线【半平面交】
其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top-1]交点的x轴在s[top],s[top-1]交点左侧,则说明s[top]被a[i],s[ ...
- (3)css文本样式
本篇学习资料主要讲解: 如何用css 的样式定义方法来介绍文字的使用. 第(1)节:用css设置文本样式. 一.弄懂文本文字的制作.利用css的样式定义版面 ...
- spring 获取配置文件的值
Spring 获取配置文件的值 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ...
- 如何用PS快速做出3D按钮效果的图片
1 先建立一个透明图层 2:再创建一个矩形 3:选用过喷样式 4: 双击图层并应用蓝色,记得这里应该复制下颜色的16进制值. 效果如图所示 取消光泽选项,大功告成! 最终效果如图所示,将其保存为PNG ...
- 利用Marshal.AllocHGlobal申请非托管内存,unsafe代码
unsafe public class RUN { int[] array3; IntPtr handle; ; public RUN() { handleCount = * ; handle = S ...
- D. Winter Is Coming 贪心(好题)
http://codeforces.com/contest/747/problem/D 大概的思路就是找到所有两个负数夹着的线段,优先覆盖最小的长度.使得那时候不用换鞋,是最优的. 但是这里有个坑点, ...
- ASP.NET MVC+Bootstrap个人博客之文章打赏(六)
看到新浪微博.百度百家等等平台上都带有文章“打赏”功能,觉得很新鲜,于是也想在自己的博客中加入“打赏”功能. 当然,加入打赏功能并非是真的想要让别人打赏.因为只有那些真正能引起共鸣,发人深思,让人受益 ...
- windows8.1专业版 关闭ie11总是已停止工作
该问题通常原因: 1 系统重病毒: 2 系统和安装的软件不兼容导致. 解决方案: 1 杀毒更新至最新进行杀毒,仍未解决,重新安装系统: 2 目前身边人员多数属于该情况: 1 如安装了输入法.迅雷或其它 ...