一、加密
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