一、加密
1.why?
网络中传输数据较多,需保证数据的安全
2.方法
1)置换
例:
AAAAA --> + 1A6AA --> AAAAA
约定表(第一A换位1、第三A换位6)
2)数字加密
密钥:成对产生,分为私钥和公钥(一般私钥自己留存、而公钥公布在公网中)
算法
a.对称算法
DES:IBM
3DES:IBM
AES:128、192、256位长度
注:分
b.非对称算法
RSA
DSA
DH:IPsec ×××
对称加密:
加密:发送方(QQ)--> 今晚去xxx店 --> 发送方私钥(文件)+算法 => 加密后数据
解密:接收方(QQ) -->加密后数据 --> 发送方私钥(文件)-算法 => 解密后数据
非对称加密
1)私加+公解
加密:发送方(QQ)--> 今晚去xxx店 --> 发送方私钥(文件)+算法 => 加密后数据
解密:接收方(QQ)--> 今晚去xxx店 --> 发送方公钥(文件)+算法 => 加密后数据
2)公加+私解
加密:发送方(QQ)--> 今晚去xxx店 --> 接收方公钥(文件)+算法 => 加密后数据
解密:接收方(QQ)--> 今晚去xxx店 --> 接收方私钥(文件)+算法 => 加密后数据
1+2=3
1-2=-1
1x2=2
1/2=0.5
今晚去xxx店 + 私钥 +算法
A算法(将数据第二位和第四位调换)
今晚去xxx店 + 1a2 + A算法 = 今x去xx店(1a2xa123)
B算法(将数据第二位、第三位和第五、第六替换)
今晚去xxx店 + 1a2 + B算法 = 今xxx晚去店(sadsa12213)
C算法(将数据第二换为和、第五位换位H)
今晚去xxx店 + 1a2 + C算法 = 今和去xHx点(sadsad)
注:不同算法,主要在于加密方式不同,越强的算法越复杂越安全
二、数字签名
保证操作的不可否认性,防止数据被篡改
1)数据由签名者(发送方)自己签名发送,签名者不可否认
2)数据自签收到接受过程中是否发生过修改
注:数字签名使用HASH(散列))算法实现
三、数字证书
CA机构
1.功能
1)数据的机密性
2)数据的完整性
2.数字证书内容
1)使用者的公钥
2)使用的标记(如名称和邮箱等)
3)有效期
4)颁发者的标志信息
5)颁发者的数字签名
注:一般数字证书用于公司网站服务器
四、自建CA
1.CA配置
1)安装openssl软件包
yum -y install openssl
2)修改模版配置文件
vim /etc/pki/tls/openssl.cnf
130 countryName_default = CN //指定国家
135 stateOrProvinceName_default = Beijing //指定省份
138 localityName_default = Beijing //指定城市
141 0.organizationName_default = xueluo.org //颁发的组织名称
148 organizationalUnitName_default = IT //指定部分
3)生成私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048 //生成使用RSA 2048位的私钥文件
chmod 600 /etc/pki/CA/private/cakey.pem
4)生成根证书(CA证书)
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 //通过私钥文件生成有效期有10年的根证书
注:Common Name (eg, your name or your server's hostname) []:ca.xueluo.org
5)创建索引和证书序列号文件
touch /etc/pki/CA/index.txt
echo "00" >/etc/pki/CA/serial
6)scp /etc/pki/CA/cacert.pem [email protected]:/etc/postfix
2.Mailserver配置(postfix)
1)生成私钥
openssl genrsa 2048 >/etc/postfix/mail.key
chmod 600 /etc/postfix/mail.key
2)生成只能证书请求文件
scp [email protected]:/etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf
openssl req -new -key /etc/postfix/mail.key -out /etc/postfix/mail.csr
注:Common Name (eg, your name or your server's hostname) []:mail.xueluo.org
scp /etc/postfix/mail.csr [email protected]:/tmp
3)证书服务器签发证书(CA服务器操作!!!)
openssl ca -in /tmp/mail.csr -out /tmp/mail.crt -days 3650
scp /tmp/mail.crt [email protected]:/etc/postfix
3.配置postfix
创建运行用户和组
1)/etc/init.d/postfix stop && chkconfig --level 35 postfix off //将系统自带服务停止并开机禁用
#useradd -M -s /sbin/nologin postfix
#groupadd postfix
#groupadd postdrop
3)gpasswd -a postfix postfix //将postfix用户加入到Postfix组
4)gpasswd -a postfix postdrop //将postfix用户加入到postdrop组
解压并安装postfix
1)tar -zxvf postfix-3.2.2.tar.gz -C /usr/src/
2)cd /usr/src/postfix-3.2.2/
3)make makefiles CCARGS='-DUSE_TLS -I/usr/include/openssl/'AUXLIBS='-L/usr/lib -lssl -lcrypto'
//生成Mailfile配置文件,并启动TLS认证、指定依赖库文件位置
4)make && make install
编辑配置文件
1)postconf -n >/tmp/hehe.conf //将有效的配置文件导出
2)mv /tmp/hehe.conf /etc/postfix/main.cf
3)vim /etc/postfix/main.cf
9 inet_interfaces = 192.168.1.10 //指定监听IP
10 myhostname = mail.xueluo.org //新增,指定当前主机名
11 mydomain = xueluo.org //新增,指定邮件域
12 myorigin = $mydomain //新增,外发邮件时发送中邮件域
13 home_mailbox = Maildir/ //新增,邮件的存储位置(存储到用户的家目录)
19 mydestination = $myhostname,$mydomain //允许投递的目标邮件域
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/mail.key //邮件服务器私钥文件
smtpd_tls_cert_file = /etc/postfix/mail.crt //邮件服务器证书文件(公钥文件)
smtpd_tls_CAfile = /etc/postfix/cacert.pem //CA证书服务器证书文件(公钥文件)
smtpd_tls_received_header = yes
smtpd_enforce_tls = yes
smtpd_tls_loglevel = 2
smtp_use_tls = yes
smtp_tls_key_file = /etc/postfix/mail.key
smtp_tls_cert_file = /etc/postfix/mail.crt
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
上半部分的配置是系统作为服务端,接收客户端和其他邮件服务器时如何启用tls;下版半部分服务器作为客户端对外发送邮件也启用tls
4)vim /etc/postfix/master.cf
12 smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes //打开465(smtps)端口
5)vim /etc/postfix/tls_policy //强制使用TLS发信
xueluo.org encrypt
6)postmap /etc/postfix/tls_policy
注:通过以上的配置启用了tls发信设置,那么系统发信时会检查对方服务器是否支持tls,如果支持则使用tls传输,否则采用正常的邮件发送;postfix可以设置向某些域发送强制使用TLS,如果对方不支持则邮件将延迟发送
7)postfix stop && postfix start //启动postfix服务
4.配置Mailserver(dovecot)
创建运行用户
1)useradd -M -s /sbin/nologin dovecot
2)useradd -M -s /sbin/nologin dovenull
源代码编译安装
1)tar -zxvf /root/dovecot-2.2.31.tar.gz -C /usr/src/
2)cd /usr/src/dovecot-2.2.31/
3)./configure --sysconfdir=/etc/ --enable-ssl //配置dovecot的配置文件存储目录
4)make && make install
拷贝模版文件
1)cp doc/dovecot-initd.sh /etc/init.d/dovecot //拷贝启动脚本文件
2)chmod +x /etc/init.d/dovecot
3)chkconfig --add dovecot //将dovecot注册为系统服务
4)cp -r /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/ //拷贝模版配置文件
新建PAM认证模块
vim /etc/pam.d/dovecot
#%PAM-1.0
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
编辑配置文件
vim /etc/dovecot/dovecot.conf
!include conf.d/10-auth.conf //只使用系统用户认证
!include conf.d/10-ssl.conf //启动SSL证书认证
disable_plaintext_auth = no
mail_location = maildir:~/Maildir //指定邮箱的位置
#!include conf.d/*.conf //注释该行,位于98行
vim /etc/dovecot/conf.d/10-ssl.conf
6 ssl = yes
12 ssl_cert = </etc/postfix/mail.crt
13 ssl_key = </etc/postfix/mail.key
启动服务
/etc/init.d/dovecot restart //重启dovecot服务
DNS部署
一块网卡为vmnet1
1.修改网络配置
1)vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
DNS1=192.168.1.10
2)/etc/init.d/network restart
3)vim /etc/sysconfig/network
HOSTNAME=ns.xueluo.org
2.安装bind软件包
1)yum -y install bind bind-utils
3.编辑主配置文件
1)vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.10; }; //设置监听IP地址;需修改
directory "/var/named"; //区域配置文件存放目录
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";\
allow-query {localhost;}; //删除该行
recursion yes;
dnssec-enable no; //bind安全检测机制;需修改
dnssec-validation no; //bind安全检测机制;需修改
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "xueluo.org" IN { //指定正向解析域为xueluo.org
type master; //指定DNS类型,为主DNS服务器
file "xueluo.org.zone"; //正向解析文件
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
2)cp /var/named/named.empty /var/named/xueluo.org.zone //拷贝DNS模版文件并重命名
3)vim /var/named/xueluo.org.zone
$TTL 86400(TTL值,生命周期)
@ IN SOA xueluo.org.(需要解析的域名) admin.xueluo.org.(管理员邮箱) (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.xueluo.org. //NS记录(起始授权记录);输入DNS服务器的主机名
ns IN A 192.168.1.10 //DNS服务器对应的IP地址
IN MX 10 mail.xueluo.org. //MX记录
mail IN A 192.168.1.10 //mail.xueluo.org对应的IP
4)chown named:named /var/named/xueluo.org.zone
5)/etc/init.d/named start && chkconfig --level 35 named on