热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

巧用SSH的端口转发功能

默认情况下,客户端和Oracle数据库之间的数据传输都是以明文方式进行的,这在广域网环境下,存在着较大的安全漏洞。我们可以用SSH加密的方

默认情况下,客户端和Oracle数据库之间的数据传输都是以明文方式进行的,这在广域网环境下,存在着较大的安全漏洞。我们可以用SSH加密的方式进行数据传输,其实现原理是:客户端通过ssh-keygen生成一对公钥和私钥,其中客户端保留私钥,公钥存放在服务器端。当客户端通过SSH协议向服务端发送信息时,客户端会将信息加密,在发送到服务端后,如果私钥和公钥无误,服务端自动将信息解密,还原为明文信息。此外SSH还有端口转发功能,它能够将TCP连接通过SSH的安全机制转发到远端机器上,这样我们就可以得到一个可靠的TCP会话,从而实现安全的信息通道了。简单地说,就是利用SSH的端口转发功能,实现SSH对特定端口的监听,当有任何会话连接到监听的端口时(如本地端口1555),我们可以将其转发到其他端口(如远程端口1521)。

假设客户端IP为172.16.4.28,服务端IP为172.16.4.200,数据库运行在服务端上,监听端口为1521,目的是在客户端172.16.4.28实现SSH的端口转发功能,从而得到一条客户端至服务端的安全链路。以下为Oracle客户端调用SSH端口转发功能的简要配置过程。

(1)在IP为172.16.4.28的客户端中执行SSH端口转发命令。这样连接至IP为172.16.4.28,端口1555的会话就可以通过SSH转发至IP为172.16.4.200的1521端口上了。如下所示:

[root@hzmc etc]# ssh -CNfg -L 1555:172.16.4.200:1521 ora10g@172.16.4.200

使用netstat命令可以看到客户端的1555端口转发链路已经确立,如下所示:

[root@hzmc etc]# netstat -an|grep :1555
tcp 0 0 :::1555 :::* LISTEN

(2)查看服务端的监听状态,可以看到监听运行在IP地址为172.16.4.200的端口1521上,如下所示:

Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.4.200)(PORT=1521)))
Service "gg11" has 1 instance(s). Instance "gg11", status READY, has 2 handler(s) for this service...

(3)查看客户端tnsnames.ora连接串,可以看到会话连接的HOST配置为172.16.4.28,端口配置为1555。如下所示:

gg11 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.28)(PORT = 1555)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gg11) ) )

(4)由于在客户端上的转发链路已经确立,所以连接至IP地址为172.16.4.28、端口为1555的会话可以自动转发至IP地址为172.16.4.200、端口为1521的地址上,如下所示:

[ora10g@hzmc admin]$ tnsping gg11 TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 10-JUL-2012 12:28:50 Copyright (c) 1997, 2006, Oracle. All rights reserved. Used parameter files:
/ora10g/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
172.16.4.28)(PORT = 1555)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME
= gg11)))
OK (10 msec)
[ora10g@hzmc admin]$ sqlplus "zhoul/zhoul@gg11" SQL*Plus: Release 10.2.0.3.0 - Production on Tue Jul 10 12:28:54 2012 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> exit

(5)如果要关闭安全链路,只要将端口转发进程844杀掉即可,如下所示:

[ora10g@hzmc admin]$ ps -ef|grep CNfg|grep -v grep
root 844 1 0 12:07 ? 00:00:00 ssh -CNfg -L
1555:172.16.4.200:1521 ora10g@172.16.4.200
[ora10g@hzmc admin]$ kill 844

内容转自http://book.51cto.com/art/201312/421443.htm


推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
author-avatar
命运2502901041_350
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有