SSH高级服务
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高级服务的更多相关文章
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- SSH安全服务
ssh安全服务 client \ sever ssh: secure shell, protocol, 22 / tcp, 安全的远程登录, 基于RSA或DSA实现身份认证 两 ...
- 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系统 在实际的工作场景 ...
- Linux SSH,FTP服务配置
CentOS-6.4-x86_64-minimal 0.网卡配置 参考:Linux系统\Centos没有网卡eth0配置文件怎么办? - http://jingyan.baidu.com/articl ...
- 远程SSH连接服务与基本排错
为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...
- 安装,配置,启动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(客户端模式),宾哥百度经 ...
随机推荐
- [React] 03 - Intro: react.js in twelve demos
Ref: React 入门实例教程 这算什么,react学习例子的十二门徒?哈哈 如何运行别人的react项目? Ref: [React全家桶入门之CODE]项目代码与使用方法 使用git克隆项目到本 ...
- The last packet successfully received from the server was 20,519 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
本地升级了下MySQL的版本,从5.6升为5.7,数据文件直接拷贝的,项目查询数据库报错: Could not retrieve transation read-only status server ...
- jstat 简介
1. jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间. 其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc ...
- TSPL学习笔记(2):过程和变量绑定
变量的引用 语法: variable 返回: variable的值 如果在某个范围内存在对某个标识符的变量绑定,那么当这个标识符以表达式的形式出现的时候被认为是其所绑定变量的值. 在引用一个标识符的时 ...
- spark基础---->spark的第一个程序
这里面我们介绍一下spark的安装,并通过一个python的例子来简单的体会一下spark的使用. spark的安装与使用 安装环境:mac 10.13.6,spark版本:2.3.1,python版 ...
- linux命令学习(6):ps命令
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- Unity Editor工具-代码里复制Component
//CopyComponent ublic static T CopyComponent<T>(T original, GameObject destination) where T : ...
- JSP页面嵌套乱码解决
项目中审批过程需要将业务表单嵌套在审批的页面中.由于业务表单很多,前台已经axjx到了本次选择的表单的地址.本来做的就是把这个链接放在审批页面上,但现在需求的就是直接把这个biz表单嵌套在审批的页面中 ...
- PAT甲级1131 Subway Map【dfs】【输出方案】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805347523346432 题意: 告诉你一个地铁线路图,站点都是 ...
- ujquery.fancybox api开发文档中文翻译版
2016年11月17日11:57:14 基础使用 http://fancybox.net/howto 1. 首先,请确保您使用的是有效的DOCTYPE这是FancyBox看起来和功能正确需要. 2. ...