首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

Oracle最佳替代者PostgreSQL数据库的整体安全性

http://www.oklinux.cn  2010-01-03  51CTO.com    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

SSH 隧道使用端口转发

IP 转发是一项隧道(tunneling)技术,它可以将 Internet 包从一台主机转发到另一台主机。它允许您的 PostgreSQL 客户机,比如 psql、pgadmin 甚至 openoffice,通过一个 SSH 连接与远程 Postgres 服务器建立联系。

考虑下面的问题:

?如果远程 PostgreSQL 服务器上不存在 psql 客户机,会发生什么?
?如果需要在您的工作站和远程主机之间上传或下载数据,会发生什么?
?如果需要使用数据库客户机来执行 psql 客户机无法很好地执行或根本无法执行的任务,该怎么做?
?如何对网络使用隧道,从而使您的团队能够远程连接到防火墙后面的数据库?
这个例子将一个客户机(本地主机)连接到一台远程主机(192.168.2.100)。在工作站的端口 10000 创建了一个代理连接。客户机连接到端口 10000 后,被转发到远程主机的 PostgreSQL 服务器,后者正在侦听端口 5432:ssh -L 10000:localhost:5432 192.168.2.100。

添加 -g 参数(switch)允许其他主机利用您的转发连接,这使得连接成为了专门用于 Postgres 连接的即时虚拟专有网(VPN):ssh -g -L 10000:localhost:5432 192.168.2.100.

有关隧道的一些注意事项:

?数据库客户机和服务器都被认为它们正在与各自的本地主机通信。
?注意要配置文件 pg_hba.conf 以使用 TCP/IP 为本地主机连接设置正确的身份验证。
?1024 以内的端口全部由根用户控制。
?SSH 会话需要在 PostgreSQL/SSH 服务器上有一个已有的用户帐户。
由 SSL 加密的会话

PostgreSQL 中的加密会话要求服务器通过 --with-openssl 参数进行编译。Linux 发行版二进制文件提供了这个功能。诸如 psql 和 pgadmin 之类的客户机也具有这类必需的功能。

可以使用 pg_config 命令行工具对服务器进行检验,如下所示。

pg_config --configure


针对加密会话配置 PostgreSQL 服务器:

1.使用 OpenSSL 命令行工具 openssl 创建一个自签名的服务器密匙(server.key)和证书(server.crt)。
1.创建服务器密匙:openssl genrsa -des3 -out server.key 1024。
2.删除密码 openssl rsa -in server.key -out server.key。
3.为服务器创建一个自签名的证书:openssl req -new -key server.key -x509 -out server.crt。
2.将 server.key 和 server.crt 这两个文件安装到数据集群的目录中。
3.编辑 postgresql.conf 文件并设置指定的对:ssl = on。
4.重启服务器。

清单 23. 成功的 SSL 加密会话连接
robert@wolf:~$ psql -h 192.168.2.100 -U robertWelcome to psql 8.2.4, the PostgreSQL interactive terminal.Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quitSSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)robert=#

服务器将始终针对已加密的会话请求测试连接。然而,通过编辑身份验证文件 pg_hba.conf,您可以控制服务器的行为。在客户机端,可以通过定义环境变量 PGSSLMODE 来控制客户机(psql)的默认行为:是否使用加密的会话。

共有 6 种模式(其中两种新模式特别针对 V8.4)。

模式 描述
disable 将只尝试未加密的 SSL 连接。
allow 首先尝试未加密的连接,如果不成功,则尝试 SSL 连接。
prefer 与 allow 模式相反;首先尝试 SSL 连接,然后尝试未加密连接。
require 客户机只尝试已加密的 SSL 连接。
verify-ca SSL 连接,并且具有由可信 CA 签发的有效客户机证书。
Verify-full SSL 连接,具有由可信 CA 签发的有效客户机证书,并且服务器主机名匹配证书的主机名。


例如:导出 PGSSLMODE=prefer.

SSL 证书

SSL 身份验证是指客户机和服务器交换由具有可靠凭证的第三方签发的证书。这个第三方被称为证书权威(CA)。如果客户机或服务器不能从另一方接收到合法的证书,那么连接将被拒绝。

尽管涉及许多细节,但是在 PostgreSQL 上使用 SSL 证书设置身份验证非常简单:

1.编辑 postgresql.conf,ssl=on。 服务器端身份验证要求下面的文件必须位于其数据集群中:

?server.key
?server.crt(必须由 CA 签发)
?root.crt(检验客户机身份验证)
?root.crl(证书撤销列表,可选)
文件 root.crt 包含一个经过检验的证书列表。其中应该包含可用于您的特定发行版的所有证书,您也可以向该文件中添加证书。
文件 root.crl 类似于 root.crt,因为它包含一组经过 CA 签名的证书。然而,这些证书属于已被撤销了连接权的客户机。一个空的 root.crl 文件不会影响身份验证过程。

共12页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 11 [12] 下一页

上一篇:Google手机发布会仿效苹果   下一篇:豆瓣开源数据存储系统BeansDB

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Oracle数据库实例两则
·在Linux下定时备份MySQL
·出现mysql max-connections问题解决
·Oracle 如何快速查找和删除重复记录
·Oracle Dataguard备库失败与主库响应测试
·Oracle简单stream一个用户单向复制配置
·Oracle小知识集锦
·2009 MySQL数据库学习者盛会
·深入解析Oracle参数及参数文件
·查看修改Oracle10G归档日志空间的限制
·Linux环境下给MySQL数据库文件打包流程记录
·MySQL 5.1.41释出
·Ubuntu 9.10 修改 MySQL 的 datadir
·在MySQL中修改表名的SQL语句
·Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
·MySQL知识学习之my.ini详解
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Oracle数据库实例两则
·在Linux下定时备份MySQL
·出现mysql max-connections问题解决
·Oracle 如何快速查找和删除重复记录
·Oracle Dataguard备库失败与主库响应测
·Oracle简单stream一个用户单向复制配置
·Oracle小知识集锦
·2009 MySQL数据库学习者盛会
·深入解析Oracle参数及参数文件
·查看修改Oracle10G归档日志空间的限制
·Linux环境下给MySQL数据库文件打包流程
·MySQL 5.1.41释出
  阅读排行
·MySQL导入导出.sql文件步骤
·Linux下安装Oracle数据库完整笔记
·Oracle建表过程初学
·Oracle 建立临时表语法及使用技巧
·Oracle面试题及答案整理
·Linux系统下启动MySQL的命令及相关知识
·MySQL中文乱码解决方案集锦
·Oracle10g RAC for Linux配置全过程
·Linux平台下配置MySQL主从复制
·手工配置Oracle 10G Enterprise Manage
·Linux平台下启动oracle 11g EM控制台
·RHEL5.1 下安装Oracle 10.2.0.1及常见
·Oracle数据库里查看表空间使用状况
·Linux下安装Oracle客户端
·VMware中在Linux下安装Oracle9i
网摘收藏: