SSH端口转发

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的 加密及解密服务.这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为 其他 TCP 链接提供了一个安全的通道来进行传输而得名.

例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文 传输.而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是 允许 SSH 的连接,也能够通过将 TCP 端口转发来使用 SSH 进行通讯

SSH 端口转发能够提供两大功能:

1. 加密 SSH Client 端至 SSH Server 端之间的通讯数据

2.突破防火墙的限制完成一些之前无法建立的 TCP 连接

3.任何不安全的通信都可以由ssh来进行封装

本地转发

适用场景: 通过本机远程连接公司内部的SSH服务器跳转到公司内部的其它服务器如:(邮件)等不安全的服务

-L localport:remotehost:remotehostport    sshserver

local主机和remote主机是不能直接ping通的   localhost只能直接访问sshserver   sshserver和remotehost是能ping通的

sshserver相当于localhost和remotehost之间的通信桥梁

localport              表示本机的一个端口,这个端口必须没有被其它程序占用

remotehost         表示开启类似于telnet,smtp,httpd服务的服务器ip

remotehostport   表示telnet服务在服务器上监听的端口

sshserver           表示开启了ssh服务的主机

选项: -f 后台启用         -N 不打开远程shell,处于等待状态         -g 启用网关功能

示例   ssh  –L   9527:telnetsrv:23  -N   sshsrv

telnet 127.0.0.1 9527   这条命令相当于访问remotehost主机开启的telent服务

1. ps  aux       2.killall ssh       终止后台执行进程

当访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到 telnetsrv:23

data  <>   localhost:9527  <>   localhost:XXXXX  <>   sshsrv:22   <>   sshsrv:YYYYY  <>   telnetsrv:23

远程转发

适用场景:   在公司内部协助远程办公人员访问公司内部的不安全服务(明文传输的各种服务)

本地转发的角色是  公司内部的ssh服务主机充当sshserver      远程办公主机充当sshclient

远程转发的角色是  公司内部的ssh主机充当了sshclient           远程办公的主机充当了 sshserver

-R   sshserverport:remotehost:remotehostport    sshserver

示例: ssh –R   9527:telnetsrv:23   –N  sshsrv

让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本 机ssh客户端,再由本机解密后转发到telnetsrv:23

Data  <>  sshsrv:9527  <>  sshsrv:22   <>   localhost:XXXXX  <>   localhost:YYYYY   <>   telnetsrv:23

动态端口转发

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问 请求被转发到sshserver上,由sshserver替之访问internet

1.  ssh -D 1080 root@sshserver

2.在本机firefox设置代理socket proxy:127.0.0.1:1080

3.curl  --socks5 127.0.0.1:1080  http://www.qq.com

X协议转发

所有图形化应用程序都是X客户程序

能够通过tcp/ip连接远程X服务器

数据没有加密机,但是它通过ssh连接隧道安全进行

ssh -X user@remotehost gedit   remotehost主机上的gedit工具,将会显示在本机的X服务器上 传输的数据将通过ssh连接加密

SSH服务端

服务器端:sshd      配置文件:  /etc/ssh/sshd_config

ssh的连接日志记录信息存在  /var/log/secure

常用参数:

Port                                      默认为22,生产环境建议改成其它端口

ListenAddress ip                  主机有多个IP的情况下可以只绑定内网IP

LoginGraceTime 2m             2分钟之内必须在登录信息中输入登录密码

PermitRootLogin yes            是否允许root用户登录

StrictModes yes                    检查.ssh/文件的所有者,权限等

MaxAuthTries   6                   最大的重试密码错误登录次数为这个值的一半

MaxSessions  10                   同一个连接最大会话

PubkeyAuthentication yes     是否支持基于key登录验证

PermitEmptyPasswords no

PasswordAuthentication yes       是否允许用户名和密码的方式登录

GatewayPorts no

ClientAliveInterval:单位:秒         设置用户登录后多长时间不进行任何操作

ClientAliveCountMax:默认3       允许用户登录后不操作的提示次数

UseDNS yes                                提高速度可改为no

GSSAPIAuthentication yes          提高速度可改为no

MaxStartups                               未认证连接最大值,默认值10

Banner   /path/file                       登录后的提示信息

限制可登录用户的办法:

黑名单的优先级要高于白名单

AllowUsers     user1   user2   user3

DenyUsers

AllowGroups

DenyGroups

dropbear配置实例

系统默认提供ssh服务是由openssh来安装的,软件体积比较大,不适合嵌入式系统开发

简单的ssh服务的实现

源码编译安装:

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

启动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(Advanced Intrusion Detection Environment)

当一个入侵者进入了你的系统并且种植了木马,通常会想办法来隐蔽这个木马 (除了木马自身的一些隐蔽特性外,他会尽量给你检查系统的过程设置障碍), 通常入侵者会修改一些文件,比如管理员通常用ps -aux来查看系统进程,那 么入侵者很可能用自己经过修改的ps程序来替换掉你系统上的ps程序,以使用 ps命令查不到正在运行的木马程序。如果入侵者发现管理员正在运行crontab 作业,也有可能替换掉crontab程序等等.所以由此可以看出对于系统文件或 是关键文件的检查是很必要的.

(高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机 上的哪些文件被更改过了.

hash运算只能检测文件的内容是否发生变化

AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件.AIDE数据库 能够保存文件的各种属性

包括:权限(permission)、索引节点序号(inode number)、 所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间 (ctime)、最后访问时间(atime)、增加的大小以及连接数.

AIDE还能够使用下列算法: sha1、md5、rmd160、tiger  以密文形式建立每个文件的校验码或散列号.

这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件 系统,用户起始目录以及临时目录.

安装  yum install aide

修改配置文件  vim /etc/aide.conf (指定对哪些文件进行检测)(定义一些监控策略)

监测哪些文件       监控指定文件的哪些属性

/test/chameleon    R

/bin/ps      R+a

/usr/bin/crontab    R+a

/etc    PERMS  监控etc整个目录  PERMS表示监控规则

!/etc/mtab       #“!”   表示忽略这个文件的检查   表示对etc目录下的mtab文件不进行监控

R=p+i+n+u+g+s+m+c+md5      权限+索引节点+链接数+用户+组+大小+最后一次修 改时间+创建时间+md5校验值

NORMAL = R+rmd60+sha256

初始化默认的AIDE的库:

/usr/local/bin/aide --init    生成检查数据库(建议初始数据库存放到安全的地方)

cd  /var/lib/aide   mv aide.db.new.gz    aide.db.gz (比对的时候必须把数据库重命名为aide.db.gz)

检测: /usr/local/bin/aide    --check (一次性比对所有的文件)

更新数据库   aide --update

SSH高级服务的更多相关文章

  1. 3、SSH高级服务

    1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...

  2. SSH安全服务

    ssh安全服务     client \ sever     ssh: secure shell, protocol, 22 / tcp, 安全的远程登录, 基于RSA或DSA实现身份认证     两 ...

  3. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  4. systemctl status ssh.service 服务重启出现报错

    Case: ubuntu在从Ubuntu 16.04 LTS 升级到18.04 的时候,执行 do-release-upgrade -d 后,发现ssh无法登陆服务器, Solution: 1.通过s ...

  5. (转)远程SSH连接服务与基本排错

    远程SSH连接服务与基本排错 原文:https://www.cnblogs.com/chensiqiqi/p/6224474.html#top 1.1 为什么要远程连接Linux系统 在实际的工作场景 ...

  6. Linux SSH,FTP服务配置

    CentOS-6.4-x86_64-minimal 0.网卡配置 参考:Linux系统\Centos没有网卡eth0配置文件怎么办? - http://jingyan.baidu.com/articl ...

  7. 远程SSH连接服务与基本排错

    为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...

  8. 安装,配置,启动FTP,SSH,NFS服务

    1.安装,配置,启动FTP服务 sudo apt-get install vsftpd 修改vsftpd的配置文件/etx/vsftpd/.config,将下面几行前面的“#”去掉 #local_en ...

  9. Ubuntu13.10:[3]如何开启SSH SERVER服务

    作为最新版本的UBUNTU系统而言,开源,升级全部都不在话下.传说XP已经停止补丁更新了,使用UBUNTU也是一个很好的选择.ubuntu默认安装完成后只有ssh-agent(客户端模式),宾哥百度经 ...

随机推荐

  1. 一款Redis客户端,可以作为Redis Desktop manager的有效补充或替代

    一.由来 对于redis客户端,我和大多数人一样,都是用Redis Desktop Manager. 但我发现个问题,我的版本是0.9.1.771. 我这个版本有个问题,就是如果value太长的话,不 ...

  2. Kubernetes – Ingress

    用户在 Kubernetes 上部署的服务一般运行于私有网络,Pod和Service 提供了 hostPort,NodePort等参数用于暴露这些服务端口到K8S节点上,供使用者访问.这样的方法有明显 ...

  3. 什么是IOC为什么要使用IOC

    概念: 作用: 结论:借助于“第三方”实现具有依赖关系的对象之间的解耦 在使用IOC之前的情况 如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运 使用IOC之后 对象A获得依赖对象B的过程,由 ...

  4. AD & BC

    AD (anno domini) 含义:公元后, 需要写在年数之前 BC (Before Christ) 含义:公元前 需要写在年数之后 例: AD 2001 478 BC 另外: BCE (befo ...

  5. twisted 学习笔记一:事件循环

    from twisted.internet import reactor import time def printTime(): print "Current time is", ...

  6. MySQL-记一次备份失败的排查过程

                山竹来临,窝在家里整理个人文档.        本篇文章主要讲解排查问题的思路,涉及linux 删除文件的原理.实例误删数据恢复.MySQL实例初始化参数优先级别等,虽然涉及知 ...

  7. 让jQuery的contains方法不区分大小写

    // NEW selector jQuery.expr[':'].Contains = function(a, i, m) { return jQuery(a).text().toUpperCase( ...

  8. day2 二、编程语言、python解释器和变量

    一.编程语言分类 1.机器语言 直接用计算机能理解的二进制指令编写程序,直接控制硬件,需要了解硬件的操作细节. 2.汇编语言 用英文标签取代二进制编写程序,也是直接控制硬件,也需要了解硬件的操作细节. ...

  9. 主席树||可持久化线段树||BZOJ 3524: [Poi2014]Couriers||BZOJ 2223: [Coci 2009]PATULJCI||Luogu P3567 [POI2014]KUR-Couriers

    题目:[POI2014]KUR-Couriers 题解: 要求出现次数大于(R-L+1)/2的数,这样的数最多只有一个.我们对序列做主席树,每个节点记录出现的次数和(sum).(这里忽略版本差值问题) ...

  10. 简单示例用例(Simple Example Use Cases)--hive GettingStarted用例翻译

    1.MovieLens User Ratings First, create a table with tab-delimited text file format: 首先,创建一个通过tab分隔的表 ...