# 第六阶段：网络、远程连接与安全

## 网络配置基础

配置 TCP/IP

配置TCP/IP涉及以下一些文件

/etc/resolv.conf－－DNS 服务器

/etc/host.conf－－域名解析次序

/etc/hosts－－本地域名到IP的映射文件

/etc/sysconfig/network－－网关、主机名

/etc/sysconfig/network-scripts/ifcfg.ethx－－网卡参数的主要文件

/etc/network/interfaces－－Ubuntu 文件 ping ping [ hostname | IP address ] [options] ping 210.32.34.137 –c 10

netstat

显示与网络有关的各种数据结构，如显示网络连接、路由表和网络接口信息。

netstat -[ r | i ] [n]

netstat -i -n (显示网络接口)

netstat -r(显示路由表)

ifconfig

显示当前有效网络接口的状态

修改网络接口配置（暂时）

ifconfig [接口]

ifconfig eth0 #显示 eth0 网络接口的参数

ifconfig -a #显示所有网络接口参数

route

对内核的IP路由表进行操作。

route [add|del] [-net|-host] target [gw GW]

[netmask Nm] [metric N] [[dev] If]

使用 add 表示增加一条路由条目，del 则删除

## SSH 与传输安全

SSH

TCP 协议的风险

1、窃听——获取通信内容  
2、篡改——修改通信内容  
3、冒充——猫村他人身份参与同学

SSL $\cdot ^ { - }$ secure socket layer（安全套接字层）

1、提供身份验证的客户端‘  
2、在一个公共通信通道发送之前对数据进行加密  
3、确保数据完整性  
4、有效率

5、在双方协商使用的主要加密算法

对称加密

非对称加密

数字签名

数字签证（x509v.3）

明确和正式的规范

协商参数

在连接时的握手

重用先前谈判的参数



## 电子商务

订单：订购的产品表单使用SSL发送  
付款：使用SSL发送信用卡号等数据

## 访问安全信息

信息通信只能由“合格的”用户访问  
发送密码或其他敏感数据

·SSL-Secure Sockets Layer Version 2.0

Initially developed by Netscape

SSL2.0is sensitive toman-in-the-middle attacks leading e.g.to the negotiation of weak encryption keys   
uSSL2.0 should not be used anymore

·SSL-Secure Sockets LaverVersion 3.0

internet Draft authored by Netscape.November1996   
Supported byall browsers   
Vulnerable to the BEAST Cipher-Block-Chaining (CBC)attack

TLS-Transport Layer Security Version 1.0 (SSL3.1)

IETFRFC2246,January1999   
TLS 1.0 Ist not backwards compatible to SSL 3.0 (differences in MAC computation,PRF function formaster secretand keymaterial)   
Supported byall browsers   
Vulnerable tothe BEASTCipber-Block-Chaining (CBC)attack

![](b85f1d753ab271f4fb165278c746cb0e4a1a01c838573ce51f78379928aa0baf.jpg)

## TLS增强的基于TCP的应用协议

<table><tr><td>服务名</td><td>端口号</td><td>实现的安全服务</td></tr><tr><td>https</td><td>443/tcp</td><td>http protocol over TLS</td></tr><tr><td>smtps</td><td>465/tcp</td><td>smtp protocol over TLS</td></tr><tr><td>smtp</td><td>25/tcp</td><td>STARTTLS keyword (RFC 2487)</td></tr><tr><td>imaps</td><td>993/tcp</td><td>imap4 protocol over TLS</td></tr><tr><td>imap4</td><td>143/tcp</td><td>STARTTLS keyword (RFC 2596)</td></tr><tr><td>pop3s</td><td>995/tcp</td><td>pop3 protocol over TLS</td></tr><tr><td>pop3</td><td>110/tcp</td><td>STLS keyword (RFC 2595)</td></tr><tr><td>Idaps</td><td>636/tcp</td><td>Idap protocol over TLS</td></tr><tr><td>nntp</td><td>563/tcp</td><td>nntp protocol over TLS</td></tr><tr><td>FTPS-Data</td><td>989/tcp</td><td>FTP Data over SSL/TLS</td></tr><tr><td>FTPS</td><td>990/tcp</td><td>FTP Control over SSL/TLS</td></tr></table>

## SSL协议组件

握手协议（Handshakeprotocol）

□允许当事人协商需要交易的安全性的不同算法  
允许当事人之问的任何身份验证

警报协议（Alertprotocol）  
通知异常情况或报告问题  
更改密码说明协议（ChangeCipher Spec protocol）  
强制一个新的握手的执行重新协商安全参数，并重复认证  
记录协议（Recordprotocol）  
涉及的压缩，加密和MAC

## Open SSL

## OpenSSL特性

开源，基于一个Apache风格的许可证发布  
提供了SSLv2/v3和TLSv1.0的全功能实现  
·用C语言开发，具有优秀的跨平台性能  
基于PKI标准，支持X509证书标准  
提供众多的加密和摘要算法库  
提供了命令行界面（openssl命令）  
·提供了应用程序编程接口

## 功能

创建RSA，DSA&DH密钥对  
公共密钥加密操作  
创建X509证书，CSRs&CRLs   
生成消息摘要  
使用加密算法加密&解密  
SSL/TLS服务器端/客户端测试  
处理S/MIME签名或加密邮件  
时间戳记的请求，生成和验证  
创建和管理CA

## OpenSSL 的命令和算法

![](b252cd49cbe02651e20881ae10e69a1f8282d12e197925de730523b6a0d34125.jpg)

## 对称加密/解密

![](47a450f0e41dfb8c5381c4087f83280e7ec405a6d54c3377c85bcbb7378bae61.jpg)

## 非对称加密和解密

![](8a30e7bca29df99f6cd121cef09ce9097cef1a05519373ed842df0925bbc761a.jpg)

![](14e6550cbf3a413ff555225f6b3762c487d4d4029e1f0be7eda24bd68068e7bc.jpg)

## 加密/解密（非对称）

## 生成密钥对

$\$ 9$ openssl genrsa-outpriv.keyfile2048   
$\$ 9$ opensslrsa-inpriv.keyfile-pubout $>$ pub.keyfile

## ·用公钥加密

$\$ 5$ openssl rsautl-in inputfile-out outputfile\ -pubin-inkeypub.keyfile-encrypt

## ·用私钥解密

$\$ 1$ opensslrsautl-ininputfile-outoutputfile\ -inkeypriv.keyfiledecrypt

![](270b1ef0f055502b0d5807333740d44d7d8d2b806606fbf34c7dbd77967cfce6.jpg)  
数字签名





![](769775e6a15add89fbc96bc597ffee8c74af7bae2a9211155faa7d7495501270.jpg)

## 数字证书的组成

服务器公钥  
·支持的加密算法  
DN(Distinguish Name）：

uCN（CommonName）：通常是服务器的FQDN

其他的可选属性：Country（C）、State（S）、Location(L)

■证书的有效期（起始日期，截止日期）  
证书的序列号（serialnumber）  
被信任的CA的名字和签名  
X.509的其他扩展属性等
