870 likes | 1k Views
Linux常用应用程序介绍. SSH访问虚拟机. 传统网络服务程序的弊端 什么是SSH SSH的历史 SSH安全认证 SSH协议组成 SSH组成 使用SSH连接VMware. 传统网络服务程序的弊端. 传统的网络服务程序,如: ftp 、 telnet 等在本质上都是不安全的,因为他们在网络上用 明文 传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”( man in the middle )这种方式的攻击。. “中间人”攻击.
E N D
SSH访问虚拟机 • 传统网络服务程序的弊端 • 什么是SSH • SSH的历史 • SSH安全认证 • SSH协议组成 • SSH组成 • 使用SSH连接VMware
传统网络服务程序的弊端 • 传统的网络服务程序,如:ftp、telnet等在本质上都是不安全的,因为他们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man in the middle)这种方式的攻击。
“中间人”攻击 • 所谓“中间人”攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。 • 服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题——安全隐患
什么是SSH • SSH英文全称是SecureShell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这个攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。 • 还有一个额外的好处是传输的数据经过压缩,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop甚至ppp提供一个安全的“通道”。
SSH的历史 • 最初的SSH协议是由芬兰的一家公司开发的,但是因为受版权和加密算法等等的限制,现在很多人都转而使用OpenSSH。 • OpenSSH是SSH的替代软件包,而且是开放源代码和免费的。
SSH安全认证 • 第一种级别(基于口令的安全验证)只要你知道自己的账号和口令,就可以登录到远程主机。 • 第二种级别(基于密钥的安全验证)需要依靠密钥,也就是你必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。
基于密钥验证 • 使用基于密钥的安全验证,如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。 • 服务器受到请求之后,先在你在该服务器的家目录下寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。 • 客户端软件受到“质询”之后就可以用你的私钥解密再把它发送给服务器。
SSH协议组成 • 传输层协议(SSH-TRAMS) • 用户认证协议(SSH-USERAUTH) • 连接协议(SSH-CONNECT)
SSH组成 • 服务端部分 • 服务端是一个守护进程(daemo),他在后台运行并响应来自客户端的连接请求。 • 服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。 • 客户端部分 • 客户端包含ssh程序以及scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
SSH工作机制 • 本地的客户端发送一个连接请求到远程的服务器 • 服务器端检查申请的包和IP地址再发送密钥给SSH的客户端 • 本地再将密钥发回给服务端。自此连接建立。
使用SSH连接VMware • 1. 在VMware安装服务端程序(Ubuntu为例) • 2. 在PC安装客户端程序(Putty为例)
安装步骤 • 1. Ubuntu默认安装了openssh-client
打开防火墙 • ufw enable 开启防火墙 • 防火墙原理:根据规则过滤报文 • 管理员:定义一系列规则 • ufw allow 添加允许规则 • allow 22/tcp 允许TCP的22端口 • ufw status 显示防火墙规则
ssh客户端 • ssh username@server-address
scp • 通过SSH远程复制文件
Linux包管理器 • 常用的包管理器 • dpkg • rpm • 常用的包管理器(软件仓库) • apt • yum • apt(Ubuntu)
软件包的历史 “起初GNU/Linux的世界只有.tar.gz。如果用户要使用一个软件,那就必须自己编译。当Debian诞生以后,一种能够管理操作系统中已经安装的软件包的系统软件显得很有必要,这个系统被命名为‘dpkg’。‘软件包’第一次出现在GUN/Linux。不久之后,红帽公司创建了他们自己的包管理系统‘rpm’” -- 引自:Debian APT HOWTO
包管理器的历史 “GNU/Linux 的创造者们很快又陷入了新的窘境。他们希望通过一种快捷、实用而且高效的方式来安装软件包,并能自动处理相互之间的依赖关系,还要在软件包升级过程中维护好配置文件。Debian 又一次充当了开路先锋的角色,她首创了 APT(Advanced Packaging Tool,高级软件包管理工具)。这一工具后来被 Conectiva 移植到红帽公司的 rpm 包管理系统。在其他一些发行版中,我们也能看到 APT 的身影。”
开源的文化(为什么会存在依赖?) • 发扬软件界合作互助的团结精神(GPL鼓励的精神) • 尽量重用代码,没有充分理由不可另立门户 • 如果需要新的功能,可以扩充(并开放) • 因此,开源应用软件往往使用若干开源的库。这被称为库依赖
软件包依赖(库依赖) • http://packages.debian.org/lenny/wget
软件包依赖的依赖…… • http://packages.debian.org/lenny/libc6
Linux应用程序难于安装的原因 • 因为开源文化(或称为开源精神),造成 • 软件以源代码形式发布 • 用户需自行下载,自行编译,自行安装 • 因为库依赖,所以需要下载、编译依赖的库;如此循环 • 必须解决!
解决Linux应用难以安装 • dpkg解决编译问题(提供可执行的二进制代码以及安装脚本) • apt包管理器解决依赖问题(自动下载依赖的库) • 发行版 • Debian是最早的发行版 • 发行版做的事情:在某种确定的硬件环境下 • 提供编译好的可执行程序 • 提供安装光盘(或网络下载) • 现在Linux应用已经较Windows容易安装
新立得:图形化包管理器 • Sysetm→Administration→Synaptic Package Manager
apt源 • apt的源是指服务器的软件仓库 • apt-get包管理通过source.list文件获取源。
常用命令 • 仓库维护 • 软件包搜索 • 软件包安装 • 软件包删除
命令行下载 • 使用方便 • 适合于大批量、列表化的下载文件
常用的下载工具 • Wget • Prozilla • MyGet • Linuxdown • Curl • Axel • ......
wget • wget是一个Linux环境下用于从World Wide Web上提取文件的工具,这是一个GPL许可证下的自由软件,其作者为Hrvoje Niksic <hniksic@srce.hr>。 • wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接以在本地生成可浏览的镜像。 • 由于没有交互式界面,wget可在后台运行,截获并忽略HANGUP信号,因此在用户退出登录以后,仍可继续运行。 • 通常,wget用于成批量地下载Internet网站上的文件,或制作远程网站的镜像。
应用举例 • 使用wget下载一首歌曲
wget常用命令 • -b:后台下载,wget默认的是把文件下载到当前目录。 • -O:将文件下载到指定的目录中。 • -P:保存文件之前先创建指定名称的目录。 • -t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。 • -c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
安装mPlayer • 命令行: apt-get update • 命令行: apt-get install mplayer
命令选项解释 • -O:另存为 • -:输出到StdOut • |:管道符 • 8192:设置缓冲区大小为8192K • -:mplayer从StdIn读数据