web服務存在http和https兩種通訊方式,http預設採用80作為通訊埠,對於傳輸採用不加密的方式,https預設採用443,對於傳輸的資料進行加密傳輸。目前主流的**基本上開始預設採用https作為通訊方式。它其實就是http+加密+身份認證+完整性保護。https並不是一種新的協議,在通訊介面使用了ssl和tls協議而已。http通常直接和tcp通訊,而https中http先和ssl通訊,再由ssl和tcp進行通訊。模型如下
需要注意的是,ssl協議並不是乙個應用層協議,它是介於應用層和傳輸層協議之間的乙個安全協議。
對稱金鑰加密
ssl採用對稱金鑰進行加密,所謂的對稱金鑰,就是加密和解密都用同乙個金鑰,因此也叫做共享金鑰加密。但是這種方法也有乙個弊端,一旦金鑰被第三方獲得了,就可以對資料進行解密並竊取,因此這並不是乙個完全安全的方法。事實上,如果加密解密方法十分簡單,是很容易被第三方擷取的。所以這種方法的缺陷就在於,如果一方不傳送金鑰,對方就無法利用金鑰解密。另外,如果傳送了金鑰,但是金鑰被第三方擷取了,資料就容易被竊取。因此,需要一種方式,能夠保證該金鑰能夠確保送到對方手中並且還不能夠讓第三方擷取。
非對稱金鑰加密
ssl還採用了一種技術就是非對稱金鑰加密,所謂的非對稱金鑰,就是這是一對金鑰,乙個是私鑰,乙個是公鑰。私鑰不能讓其他任何人知道,而公鑰可以隨意發布,任何人都可以獲得到,因此這種加密方式也叫公開金鑰加密。
它的原理是這樣的:
客戶端向伺服器發起請求,伺服器建立一對非對稱金鑰,將公有私鑰返回給可客戶端,自己保留著這個私鑰而不傳送。
客戶端收到了來自伺服器的公鑰,於是將自己的資料通過公鑰加密,並返回給伺服器
伺服器接收到了客戶端的資料,因為使用自己傳送的公鑰加密的,因此用自己的私鑰對其進行解密,拿到資料
即使第三方拿到了加密後的資料,因為沒有私鑰,因此也無法獲取到真實的資料。假如想要破解這個解密方式,是十分困難的。
https使用兩種加密方式的混合加密
對稱金鑰加密方式的優缺點:
優點:處理速度快
缺點:但是容易被第三方盜取
非對稱金鑰加密方式的優缺點:
優點:更加安全,不容易被盜取
缺點:處理效率相比對稱金鑰加密要慢,如果在通訊時用這種方式加密,效率很低
於是https採用了兩者的優點,使用了混合加密的方式,使用非對稱金鑰加密的方式安全地交換再稍後對稱金鑰加密中要使用的金鑰。確保交換的金鑰是安全的之後,放棄非對稱金鑰加密,使用對稱金鑰加密來進行通訊,保證傳輸效率
centos7和centos6啟動流程差不多,只不過到init程式時候,改為了systemd,因此詳細解釋一下systemd後的啟動流程
1.uefi或bios初始化,開始post開機自檢
2.載入mbr到記憶體
3.grub階段
4.載入核心和inintamfs模組
5.核心開始初始化,使用systemd來代替centos6以前的init程式
(1)執行initrd.target
包括掛載/etc/fstab檔案中的系統,此時掛載後,就可以切換到根目錄了
(2)從initramfs根檔案系統切換到磁碟根目錄
(3)systemd執行預設target配置
centos7表面是有「執行級別」這個概念,實際上是為了相容以前的系統,每個所謂的「執行級別」都有對應的軟連線指向,預設的啟動級別時/etc/systemd/system/default.target,根據它的指向可以找到系統要進入哪個模式
模式:0 ==> runlevel0.target, poweroff.target
1 ==> runlevel1.target, rescue.target
2 ==> runlevel2.target, multi-user.target
3 ==> runlevel3.target, multi-user.target
4 ==> runlevel4.target, multi-user.target
5 ==> runlevel5.target, graphical.target
6 ==> runlevel6.target, reboot.target
(4)systemd執行sysinit.target
有沒有很眼熟?是的,在centos6上是被叫做rc.sysint程式,初始化系統及basic.target準備作業系統
(5)systemd啟動multi-user.target下的本機與伺服器服務
(6)systemd執行multi-user.target下的/etc/rc.d/rc.local
6.systemd執行multi-user.target下的getty.target及登入服務
getty.target我們也眼熟,它是啟動終端的systemd物件。如果到此步驟,系統沒有被指定啟**形桌面,到此就可以結束了,如果要啟**形介面,需要在此基礎上啟動桌面程式
1.指令碼內容
#!/bin/bash
. /etc/rc.d/init.d/functions
dir=/var/run/rsyncd.pid
if [ $# -ne 1 ];then
echo "error:$0 start|restart|stop"
exit 1
ficase $1 in
start)
num=`netstat -lntup|grep 873|wc -l`
if [ "$num" -ne 0 ];then
echo "rsync running ...."
else
/usr/bin/rsync --daemon
action "rsync start ..." /bin/true
fi;;restart)
num=`netstat -lntup|grep 873|wc -l`
if [ "$num" -ne 0 ];then
kill `cat $dir` >/dev/null 2>&1
sleep 1
/usr/bin/rsync --daemon
action "rsync restart ..." /bin/true
else
/usr/bin/rsync --daemon
action "rsync restart ..." /bin/true
fi;;stop)
num=`netstat -lntup|grep 873|wc -l`
if [ "$num" -eq 0 ];then
action "rsync stop ..." /bin/true
else
kill `cat $dir` >/dev/null 2>&1
sleep 1
action "rsync stop ..." /bin/true
fi;;*)
echo "error:$0 start|restart|stop"
;;esac
2.設成開機自啟動指令碼
[root@centos6 ~]# cp /scritp/rsyncd /etc/init.d/
[root@centos6 ~]# cd /etc/init.d/
[root@centos6 init.d]# chmod +x rsyncd
[root@centos6 init.d]# chkconfig --add rsyncd
[root@centos6 init.d]# chkconfig --list rsyncd
rsyncd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
[root@centos6 init.d]# chkconfig rsyncd on
[root@centos6 init.d]# chkconfig --list rsyncd
rsyncd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netcat是網路工具中的瑞士軍刀,它能通過tcp和udp在網路中讀寫資料。通過與其他工具結合和重定向,你可以在指令碼中以多種方式使用它。使用netcat命令所能完成的事情令人驚訝。netcat所做的就是在兩台電腦之間建立鏈結並返回兩個資料流。
#!/usr/bin/expect
spawn ssh [email protected]
expect "*password:"
send "123456\r"
expect "*#"
interact
Https原理及流程
我們知道,http請求都是明文傳輸的,所謂的明文指的是沒有經過加密的資訊,如果http請求被黑客攔截,並且裡面含有銀行卡密碼等敏感資料的話,會非常危險。為了解決這個問題,netscape 公司制定了https協議,https可以將資料加密傳輸,也就是傳輸的是密文,即便黑客在傳輸過程中攔截到資料也無法...
Https原理及流程
介紹 我們知道,http請求都是明文傳輸的,所謂的明文指的是沒有經過加密的資訊,如果http請求被攔截,並且裡面含有銀行卡密碼等敏感資料的話,會非常危險。為了解決這個問題,netscape 公司制定了https協議,https可以將資料加密傳輸,也就是傳輸的是密文,即便在傳輸過程中攔截到資料也無法破...
Https原理及流程
我們知道,http請求都是明文傳輸的,所謂的明文指的是沒有經過加密的資訊,如果http請求被黑客攔截,並且裡面含有銀行卡密碼等敏感資料的話,會非常危險。為了解決這個問題,netscape 公司制定了https協議,https可以將資料加密傳輸,也就是傳輸的是密文,即便黑客在傳輸過程中攔截到資料也無法...