9月9日 安全和加密 2

1恐锣、安全協(xié)議SSL/TLS

SSL: Secure Socket Layer
TLS: Transport Layer Security
1995:SSL 2.0 Netscape
1996: SSL 3.0
1999: TLS 1.0
2006: TLS 1.1 IETF(Internet工程任務(wù)組) RFC 4346
2008:TLS 1.2 當(dāng)前使用
2015: TLS 1.3
這兩種協(xié)議位于傳輸層和應(yīng)用層之前的協(xié)議,用于加密數(shù)據(jù)襟己,保證數(shù)據(jù)安全的協(xié)議垂谢。
加密機制:服務(wù)器端將證書發(fā)給客戶端厦画,證書里面是CA用私鑰簽名的服務(wù)器的公鑰,客戶端因為信任CA滥朱,所以事先已經(jīng)拿到CA的公鑰根暑,客戶端用CA的公鑰解密證書,得到服務(wù)器的公鑰徙邻,客戶端會自動生成對稱秘鑰排嫌,并用服務(wù)器的公鑰加密這個對稱秘鑰,將這個對稱秘鑰傳給服務(wù)器缰犁,服務(wù)器用自己的私鑰解密也得到這個對稱秘鑰淳地,這樣雙方就可以用這個對稱秘鑰加密數(shù)據(jù)進行通訊了。
HTTPS 協(xié)議:就是“HTTP 協(xié)議”和“SSL/TLS 協(xié)議”的組合帅容。HTTP over SSL”或“HTTP over TLS”颇象,對http協(xié)議的文本數(shù)據(jù)進行加密處理后,成為二進制形式傳輸并徘。

2遣钳、openssl

  • 對稱加密
    工具:openssl enc
    算法:3des, aes, blowfish, twofish
[root@redhat7 app]#ls
bak.sh  dos.sh  reset.sh  scp.sh  script
[root@redhat7 app]#openssl enc -e -des3 -a -salt -in bak.sh -out bak.enc  加密文件,-e是加密麦乞,-des3就是3des加密算法-a  -salt是加鹽
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
[root@redhat7 app]#ls
bak.enc  bak.sh  dos.sh  reset.sh  scp.sh  script
[root@redhat7 app]#openssl enc -d -des3 -a -salt -in bak.enc -out bak  ---解密文件用-d
enter des-ede3-cbc decryption password:
[root@redhat7 app]#ls
bak  bak.enc  bak.sh  dos.sh  reset.sh  scp.sh  script
[root@redhat7 app]#cat bak
cp -a /etc/ /app/`date "+%F-%T"`/
  • 對文件進行哈希運算
[root@redhat7 app]#openssl dgst -md5 bak  ---也可以進行哈希運算
MD5(bak)= 1bd8b8413eafd7d6502c763ecba53386
[root@redhat7 app]#md5sum bak    ---和上面是相同的蕴茴,因為算法相同
1bd8b8413eafd7d6502c763ecba53386  bak
[root@redhat7 app]#openssl dgst -sha512 bak
SHA512(bak)= d5ea17d3c7dc100967e4a9098793f41a4e53dc2b429bf9205fbc3e65cbb58c4810a2268cbafc4fcde03f5ab33d45ff138d409977e24bd3b1ef21f6d14f652b2e
  • 生成用戶加密口令
[root@redhat7 app]#openssl passwd -1 ---1就是$1,指的是md5加密算法路幸,默認生成的口令是加鹽的
Password: 
Verifying - Password: 
$1$u1p3rJj9$yPPNsuRQGwPl6/fo7K.fo/
[root@redhat7 app]#openssl passwd -1 -salt magedu   ---也可以指定加的鹽是什么
Password: 
$1$magedu$2fbALA5Hbgf9m8izrwwA//
[root@redhat7 app]#openssl passwd -1 -salt magedu
Password: 
$1$magedu$2fbALA5Hbgf9m8izrwwA//  ---可以發(fā)現(xiàn)鹽相同荐开,輸入的口令也相同付翁,生成的加密口令就相同
[root@redhat7 app]#openssl passwd -1 -salt mageduddffggg
Password: 
$1$magedudd$3ZgvXBGsY20eqyOIBJ5F0/   ---鹽不相同简肴,輸入的口令相同,生成的加密口令也不同
  • 生成隨機數(shù)
[root@redhat7 app]#openssl rand -base64 12  ---基于base64編碼機制生成隨機數(shù)
1F5TsRK4otfuKgMg
[root@redhat7 app]#openssl rand -hex 12   ---基于十六進制生成隨機數(shù)
1b1efd0bd28a1e017a1d4941
12表示字節(jié)數(shù)百侧,-hex時砰识,每個字符為十六進制能扒,相當(dāng)于4位二進制,1/2個字節(jié)辫狼,一個字節(jié)8位
  • 生成秘鑰對
[root@redhat7 app]#(umask 066;openssl genrsa -out zhang.skey -des 2048)   ---生成私鑰初斑,umask 066是設(shè)定私鑰的默認權(quán)限,讓私鑰
的權(quán)限低一點膨处,rsa指生成私鑰的加密算法见秤,-des是對稱秘鑰加密算
法,用來對私鑰進行對稱秘鑰加密真椿,保護私鑰的安全鹃答,2048指明生成
私鑰的位數(shù)。小括號的作用是讓umask的值只對本次有效突硝,相當(dāng)于開
了一個子進程测摔,避免對當(dāng)前shell造成影響。
[root@redhat7 app]#ll zhang.skey 
-rw-------. 1 root root 1746 Sep  9 20:55 zhang.skey
[root@redhat7 app]#openssl rsa -in zhang.skey -pubout -out zhang.pubkey    ---從私鑰中提取公鑰
Enter pass phrase for zhang.skey:
writing RSA key
[root@redhat7 app]#ll zhang.pubkey 
-rw-r--r--. 1 root root 451 Sep  9 21:01 zhang.pubkey
  • 隨機數(shù)生成器
    利用鍵盤解恰、鼠標(biāo)和塊設(shè)備中斷生成的隨機數(shù)锋八,保存在熵池中。
/dev/random:僅從熵池返回隨機數(shù)护盈;隨機數(shù)用盡挟纱,阻塞
/dev/urandom:從熵池返回隨機數(shù);隨機數(shù)用盡腐宋,會利用軟件生成偽隨機數(shù),非阻塞
兩個都可以用來生成隨機數(shù)樊销,只是第一個隨機數(shù)用完時會終端。
[root@redhat7 app]#cat /dev/urandom |tr -dc "[[:alnum:]]"|head -c 10     ---生成隨機數(shù)
ZnDsTH9CRS

3脏款、CA的配置文件

[root@redhat7 app]#cat /etc/pki/tls/openssl.cnf  
---查看一下openssl的配置文件围苫,這個配置文件中有關(guān)于CA搭建的配置說明
QQ截圖20170909212029.png
QQ截圖20170909212146.png
QQ截圖20170909212202.png

4、如何搭建CA和服務(wù)器向CA申請證書

centos7為搭建CA主機撤师,cenots6為服務(wù)器剂府,向CA申請證書
1、生成CA的私鑰
[root@redhat7 CA]#(umask 066;openssl genrsa -out private/cakey.pem 2048)   
--在這里沒有對私鑰進行加密剃盾,為了試驗方便
[root@redhat7 CA]#tree 
.
├── certs
├── crl
├── newcerts
└── private
    └── cakey.pem   --發(fā)現(xiàn)已經(jīng)生成

4 directories, 1 file
2腺占、生成自簽名證書
[root@redhat7 CA]#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300  ---req請求, -new新的證書痒谴,-x509專用
于CA生成自簽名證書衰伯,-key指明生成自簽名證書時用到的私鑰文
件,這里沒有用公鑰积蔚,是因為私鑰里面有公鑰 -out指明輸出的證書文
件
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn  --必須和后面匹配
State or Province Name (full name) []:henan  ---必須和后面匹配
Locality Name (eg, city) [Default City]:zhengzhou
Organization Name (eg, company) [Default Company Ltd]:magedu.com    ---必須和后面匹配
Organizational Unit Name (eg, section) []:shuaiguo
Common Name (eg, your name or your server's hostname) []:magedu  ----這里頒發(fā)者的名字
Email Address []:
到此CA就搭建好了意鲸,就可以給服務(wù)器頒發(fā)證書了
3、切換到centos6,生成私鑰怎顾,這里私鑰文件沒有具體的規(guī)定放到哪里读慎,可以在app下創(chuàng)建一個private/目錄
[root@centos6 app]#(umask 066;openssl genrsa -out /app/private/app.key 2048)
4、生成證書請求文件
[root@centos6 app]#openssl req -new -key private/app.key -out app.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn   ---和上面的要相同
State or Province Name (full name) []:henan  --和上面的要相同
Locality Name (eg, city) [Default City]:luoyang
Organization Name (eg, company) [Default Company Ltd]:magedu.com  --和上面要相同
Organizational Unit Name (eg, section) []:beiguoxia
Common Name (eg, your name or your server's hostname) []:www.magedu.com   ---這個名字就是將來給網(wǎng)站用的域名槐雾,必須是唯一的夭委,可以用泛域名*.magedu.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
5、把證書請求文件傳給CA
[root@centos6 app]#scp app.csr 172.18.21.7:/etc/pki/CA/certs.csr
可以在centos7上創(chuàng)建一個目錄certs.csr募强,專門放證書請求文件株灸,便
于管理
root@172.18.21.7's password: 
app.csr                             100% 1017     1.0KB/s   00:00 
6、頒發(fā)證書
[root@redhat7 certs.csr]#openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 365   ---頒發(fā)證書
Using configuration from /etc/pki/tls/openssl.cnf
/etc/pki/CA/index.txt: No such file or directory
unable to open '/etc/pki/CA/index.txt'  ---發(fā)現(xiàn)沒有創(chuàng)建索引數(shù)據(jù)庫文件
140336389027744:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('/etc/pki/CA/index.txt','r')
140336389027744:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:
[root@redhat7 certs.csr]#touch /etc/pki/CA/index.txt  --創(chuàng)建之后繼續(xù)執(zhí)行
[root@redhat7 certs.csr]#openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
/etc/pki/CA/serial: No such file or directory   ---發(fā)現(xiàn)沒有指明證書編號的文件
error while loading serial number
140336405546912:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('/etc/pki/CA/serial','r')
140336405546912:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:
[root@redhat7 certs.csr]#echo 01 > /etc/pki/CA/serial  ---創(chuàng)建證書編號的文件擎值,并指明編號蚂且,編號必須是兩位數(shù)
[root@redhat7 certs.csr]#openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 365  ---再次執(zhí)行就可以了
[root@redhat7 CA]#tree 
.
├── cacert.pem
├── certs
│   └── app.crt  ---證書文件已經(jīng)生成
├── certs.csr
│   └── app.csr
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts  ---又生成了一個新的證書文件,這兩個文件是相同的
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

5 directories, 10 files
[root@redhat7 CA]#cat index.txt   ---查看一下數(shù)據(jù)庫幅恋,V表示證書是有效的
V   180909143602Z       01  unknown /C=cn/ST=henan/O=magedu.com/OU=beiguoxia/CN=www.magedu.com
[root@redhat7 CA]#cat serial  ---下一個證書的編號
02
[root@redhat7 CA]#scp certs/app.crt 172.18.21.6:/app
把證書傳給服務(wù)器就可以了
[root@centos6 app]#openssl x509 -in app.crt -noout -text  ---查看證書杏死,以文本方式顯示
[root@centos6 app]#openssl x509 -in app.crt -noout -dates
notBefore=Sep  9 14:36:02 2017 GMT
notAfter=Sep  9 14:36:02 2018 GMT
[root@centos6 app]#openssl x509 -in app.crt -noout -subject
subject= /C=cn/ST=henan/O=magedu.com/OU=beiguoxia/CN=www.magedu.com
[root@centos6 app]#openssl x509 -in app.crt -noout -issuer
issuer= /C=cn/ST=henan/L=zhengzhou/O=magedu.com/OU=shuaiguo/CN=www.magedu.com
也可以單獨的查看
[root@redhat7 CA]#openssl ca -status 01
Using configuration from /etc/pki/tls/openssl.cnf
01=Valid (V)
查看證書某個編號的信息,可以看到證書是可用的
  • cenots6做為子CA捆交,給服務(wù)頒發(fā)證書如何實現(xiàn)
1淑翼、首先centos6做為子CA,要搭建子CA
[root@centos6 app]#cd /etc/pki/CA/
[root@centos6 CA]#ls
certs  crl  newcerts  private
[root@centos6 CA]#touch index.txt   ---創(chuàng)建數(shù)據(jù)庫文件
[root@centos6 CA]#echo 01 > serial   ---生成證書的編號文件
[root@centos6 CA]#ls
certs  crl  index.txt  newcerts  private  serial
[root@centos6 CA]#(umask 066;openssl genrsa -out private/cakey.pem 2048)   ---生成子CA的私鑰
[root@centos6 CA]#openssl req -new -key private/cakey.pem -out subca.csr  ---生成證書請求文件品追,用于向根CA申請證書
[root@centos6 CA]#scp subca.csr  172.18.21.7:/etc/pki/CA/certs.csr   ---把證書請求文件傳給根CA
[root@redhat7 CA]#openssl ca -in certs.csr/subca.csr -out certs/subca.crt -days 300   ---頒發(fā)證書
無論是根CA還是子CA玄括。都必須有自簽名或者上級CA簽名的證書后,才能給服務(wù)器頒發(fā)證書
[root@redhat7 CA]#cat index.txt   ----查看數(shù)據(jù)庫肉瓦,可以看到有兩個證書了遭京,第二個是頒發(fā)給子CA的證書
V   180909143602Z       01  unknown /C=cn/ST=henan/O=magedu.com/OU=beiguoxia/CN=www.magedu.com
V   180706151220Z       02  unknown /C=cn/ST=henan/O=magedu.com/OU=beigo/CN=centos6magedu
[root@redhat7 CA]#scp certs/subca.crt 172.18.21.6:/etc/pki/CA/cacert.pem     ---將證書文件傳給子CA,在
配置文件里規(guī)定泞莉,無論是根CA還是子CA哪雕,只要是CA,證書文件就應(yīng)
該是/etc/pki/CA/cacert.pem文件鲫趁,并且路徑也要是這個斯嚎。
所以在拷貝的時候直接把名字改過來了
這樣子CA已經(jīng)搭建好了。這里用centos7.3做為服務(wù)器挨厚,向子CA申請證書
[root@centos7 app]#(umask 066;openssl genrsa -out app1.key 2048)    ---生成私鑰
[root@centos7 app]#openssl req -new -key app1.key -out app.csr
  ----生成證書請求文件
[root@centos7 app]#scp app.csr 172.18.21.6:/app
---把證書請求文件發(fā)給子CA
[root@centos6 app]#openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 365   ---頒發(fā)證書堡僻,然后將證書傳給服務(wù)器就可以了
  • 吊銷證書和生成證書吊銷列表
[root@redhat7 CA]#openssl ca -revoke newcerts/01.pem ---吊銷證書
Using configuration from /etc/pki/tls/openssl.cnf
Revoking Certificate 01.
Data Base Updated
[root@redhat7 CA]#cat index.txt   ---發(fā)現(xiàn)數(shù)據(jù)庫里面證書已經(jīng)處于R
狀態(tài),就是被吊銷的狀態(tài)
R   180909143602Z   170909154144Z   01  unknown /C=cn/ST=henan/O=magedu.com/OU=beiguoxia/CN=www.magedu.com
V   180706151220Z       02  unknown /C=cn/ST=henan/O=magedu.com/OU=beigo/CN=centos6magedu
[root@redhat7 CA]#echo 01 > /etc/pki/CA/crlnumber  --生成被吊銷
的證書的序號文件疫剃,并指明序號
[root@redhat7 CA]#openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
生成證書吊銷列表
[root@redhat7 CA]#cat crlnumber  ---下一個被吊銷的證書的編號
02
[root@redhat7 CA]#cat crlnumber.old   ---前一個編號
01
[root@redhat7 CA]#openssl ca -revoke newcerts/02.pem ---再吊銷一個證書
Using configuration from /etc/pki/tls/openssl.cnf
Revoking Certificate 02.
Data Base Updated
[root@redhat7 CA]#cat index.txt  ---發(fā)現(xiàn)兩個證書都被吊銷了
R   180909143602Z   170909154144Z   01  unknown /C=cn/ST=henan/O=magedu.com/OU=beiguoxia/CN=www.magedu.com
R   180706151220Z   170909154819Z   02  unknown /C=cn/ST=henan/O=magedu.com/OU=beigo/CN=centos6magedu
[root@redhat7 CA]#openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
生成證書吊銷列表文件钉疫,文件名必須是crl.pem,并且路徑也要是這個
路徑巢价。吊銷一個證書牲阁,就要從新更新一下這個列表文件固阁。
[root@redhat7 CA]#openssl crl -in crl/crl.pem -noout -text  查看吊銷列表文件
如果把這個吊銷列表導(dǎo)出來在windows中看,要把后綴改為crl才可以
看咨油。

最后生成的證書文件在windows中查看如下圖


Paste_Image.png

出現(xiàn)這種效果您炉,要把證書一個個的安裝才可以柒爵,安裝過程為要把每個證書導(dǎo)出來役电,后綴為crt才可以,安裝過程如下

QQ截圖20170910104527.png
QQ截圖20170910104539.png
QQ截圖20170910104558.png

也可以在瀏覽器的internet選項里棉胀、內(nèi)容法瑟、證書里導(dǎo)入證書或者刪除證書。

5唁奢、ssh客戶端

ssh: secure shell, protocol, 22/tcp, 安全的遠程登錄
具體的軟件實現(xiàn):
OpenSSH: ssh協(xié)議的開源實現(xiàn)霎挟,CentOS默認安裝
dropbear:另一個開源實現(xiàn)
兩種方式的用戶登錄認證:
基于password
基于key
?OpenSSH介紹
?相關(guān)包:
openssh
openssh-clients
openssh-server

  • ssh客戶端
    ssh, 配置文件:/etc/ssh/ssh_config
[root@redhat7 ~]#ssh wang@172.18.21.6
默認不寫wang@時是連接到對方的roo用戶,因為你現(xiàn)在是以root身份登錄的麻掸,如果你現(xiàn)在是以wang身份登錄的酥夭,默認連接的時候就是連接到對方的wang用戶,但如果對方?jīng)]有wang用戶就連接不了了脊奋,所以連接的時候最好指明對方的用戶熬北。
[root@redhat7 ~]#ssh -b 172.18.21.100 172.18.21.6   ---指定用哪個
ip地址去連接對方的ip地址
[root@centos7 ~]#ssh -t 172.18.21.100 172.18.21.106
-t選項的作用是。如果直接連接
172.18.21.106不能連接诚隙,可以借助于
172.18.21.100這個ip地址去連接后面的讶隐,
相當(dāng)于借助于一個跳板去連接
[root@redhat7 ~]#ssh 172.18.21.6 -p 2222   ---指定端口號,如果把
服務(wù)器的端口號改為非標(biāo)準(zhǔn)端口久又,連接時就要指明端口號巫延,因為默認
是22端口
[root@centos6 ~]#ssh 172.18.21.7
The authenticity of host '172.18.21.7 (172.18.21.7)' can't be established.
RSA key fingerprint is f4:90:98:ae:60:ed:e4:ae:bf:16:34:83:2e:17:1c:1e.
Are you sure you want to continue connecting (yes/no)? 
用ssh和遠程主機連接時,剛開始要問yes地消,這個就是要確定一下遠程
主機的身份炉峰,身份如何確定的呢?RSA key fingerprint is 
f4:90:98:ae:60:ed:e4:ae:bf:16:34:83:2e:17:1c:1e.就是根據(jù)這個key
確定的脉执,遠程主機的key會公開的發(fā)布到一個網(wǎng)站上讲冠,可以根據(jù)
key確定是否是遠程主機。
確定身份后當(dāng)敲yes的時候适瓦,就會在自己的家目錄里復(fù)制一份遠程
主機的公鑰竿开,下次再連接時就不用敲yes了,因為已經(jīng)有這個公鑰
了玻熙,下次連接時遠程主機會用自己的私鑰簽名加密數(shù)據(jù)傳給要連接的主機否彩,因為要連接的主機已經(jīng)有遠程主機的公鑰了,所以就能解開這個數(shù)據(jù)嗦随,進而證明這個數(shù)據(jù)就是遠程主機發(fā)過來的列荔,就確定了遠程主機的身份了敬尺,不用再問yes,到網(wǎng)站上去查找比對了贴浙,比如以root身份登錄時在自己的家目錄里會看到如下
[root@redhat7 ~]#cd .ssh/  ---家目錄里有個隱藏的目錄
[root@redhat7 .ssh]#ls    ---這個文件里存放的就是遠程主機的公鑰
known_hosts
遠程主機的公鑰存放在下面目錄中
[root@centos6 .ssh]#cd /etc/ssh/
[root@centos6 ssh]#ls
moduli       ssh_host_dsa_key      ssh_host_key.pub
ssh_config   ssh_host_dsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_key          ssh_host_rsa_key.pub  ---這個就
是主機的公鑰砂吞,如果之前兩個主機連接過,這個公鑰在對方的家目錄
里.ssh/known_hosts文件中也會有這個公鑰崎溃,是一樣的
如果另外一臺主機想要冒充遠程主機蜻直,只要將遠程主機的私鑰偷到自
己的主機上,并覆蓋自己的私鑰文件/etc/ssh/ ssh_host_rsa_key袁串,
并且將ip地址改成和遠程主機一樣的ip地址概而,當(dāng)我要連接遠程主機
時,你用私鑰簽名加密數(shù)據(jù)傳給我囱修,我可以用原來遠程主機的公鑰解
開赎瑰,我就誤認為你就是原來的那個遠程主機了。

ssh -X 選項用于在連接遠程主機后破镰,可以在本主機顯示遠程主機的圖形餐曼。


QQ截圖20170910131106.png

總結(jié):當(dāng)你用ssh連接遠程主機時,如果是第一次連接鲜漩,要回答yes源譬,是確定遠程主機的身份,你連接的是不是遠程主機宇整,當(dāng)輸入yes后瓶佳,第二次就不用輸入了,因為在輸入yes的時候你已經(jīng)得到了遠程主機的公鑰鳞青,并保存在自己家目錄里的.ssh目錄霸饲,第二次連接時因為你有遠程主機的公鑰,你會發(fā)個數(shù)據(jù)用遠程主機的公鑰加密臂拓,如果能夠解密確定是遠程主機厚脉;當(dāng)連接的時候要輸入密碼,是確定你的身份胶惰,如果把你的公鑰給遠程主機傻工,這樣遠程主機就會發(fā)數(shù)據(jù)用你的公鑰加密,如果你能解開孵滞,遠程主機就可以確定是你中捆,這樣就可以連接了,所以連接的過程是個雙方確認的過程坊饶。

6泄伪、ssh登錄驗證

ssh服務(wù)登錄驗證方式:①用戶/口令;②基于密鑰
一匿级、基于用戶和口令登錄驗證
1蟋滴、客戶端發(fā)起ssh請求染厅,服務(wù)器會把自己的公鑰發(fā)送給用戶
2、用戶會根據(jù)服務(wù)器發(fā)來的公鑰對密碼進行加密
3津函、加密后的信息回傳給服務(wù)器肖粮,服務(wù)器用自己的私鑰解密,如果密碼正確尔苦,則用戶登錄成功

Paste_Image.png

二涩馆、基于密鑰的登錄方式
1、首先在客戶端生成一對密鑰(ssh-keygen)
2蕉堰、并將客戶端的公鑰ssh-copy-id 拷貝到服務(wù)端
3 凌净、當(dāng)客戶端再次發(fā)送一個連接請求悲龟,包括ip屋讶、用戶名
4、服務(wù)端得到客戶端的請求后须教,會到authorized_keys中查找皿渗,如果有響應(yīng)的IP和用戶,就會隨機生成一個字符串轻腺,例如:acdf
5乐疆、服務(wù)端將使用客戶端拷貝過來的公鑰進行加密,然后發(fā)送給客戶端
6贬养、得到服務(wù)端發(fā)來的消息后挤土,客戶端會使用私鑰進行解密,然后將解密后的字符串發(fā)送給服務(wù)端
7误算、服務(wù)端接受到客戶端發(fā)來的字符串后仰美,跟之前的字符串進行對比,如果一致儿礼,就允許免密碼登錄

Paste_Image.png

7咖杂、基于key認證

1、在客戶端生成秘鑰對
[root@centos7 ssh]#ssh-keygen -t rsa -P '' -f "/root/.ssh/id_rsa"
生成公鑰和私鑰對兒蚊夫,-t指定算法诉字,-P給私鑰對稱加密,在這里為了
方便知纷,寫的是空口令壤圃,可以在單引號里輸入口令,這樣私鑰就被加密
了,注意是大寫的P琅轧,也可以直接用ssh-keygen命令生成伍绳。默認就是rsa算法、空口令和私鑰存放在/root/.ssh/id_rsa文件中鹰晨。
[root@centos7 ssh]#cd 
[root@centos7 ~]#cd .ssh
[root@centos7 .ssh]#ls    ---可以看到已經(jīng)生成公鑰和私鑰對
id_rsa  id_rsa.pub  known_hosts
2墨叛、把公鑰文件傳輸至遠程服務(wù)器對應(yīng)用戶的家目錄
[root@centos7 .ssh]#ssh-copy-id -i id_rsa.pub root@172.18.21.106
[root@centos6 ~]#cd .ssh/
[root@centos6 .ssh]#ls   ---可以看到在遠程服務(wù)器生成一個
authorized_keys文件止毕,這個文件就是客戶端的公鑰
authorized_keys  known_hosts
3、測試連接
[root@centos7 .ssh]#ssh 172.18.21.106  ---不需要輸入口令就可以直接連接了
Last login: Thu Aug 31 07:02:08 2017 from 172.18.252.32
 Good morning,clock in please!
[root@centos6 .ssh]#ssh-keygen -t rsa -P '123456'   ---也可以不指定存放的文件漠趁,-P指定了對私鑰加密的口令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  ---直接敲回車扁凛,就是默認的這個文件
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:93:c3:7e:a6:9d:5c:48:16:29:af:bc:1f:e5:07:22 root@centos6.magedu.com
[root@centos6 .ssh]#cd 
[root@centos6 ~]#cd .ssh
[root@centos6 .ssh]#ls    ---發(fā)現(xiàn)已經(jīng)生成
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@centos6 .ssh]#ssh-copy-id id_rsa.pub root@172.18.21.107
把公鑰拷貝給對方
[root@centos6 .ssh]#ssh 172.18.21.107  ---可以直接連接了,連接
之前要輸入對稱加密的口令闯传,就是給私鑰加密的對稱秘鑰的口令谨朝,從
中也可以看出連接的過程中要用到私鑰解密。
[root@centos7 .ssh]#ssh-keygen -p   ---如果私鑰之前沒有加口令甥绿,可以用這個命令對私鑰加口令字币,注意是小寫的p
  • 啟用代理
    對私鑰加密后,要連接對方時共缕,每次都要輸入生成秘鑰對時設(shè)置的對稱加密口令洗出,很麻煩,可以用下面的辦法图谷,啟用代理翩活,讓代理去幫助你輸入口令,就可以直接連接了便贵。
[root@centos7 .ssh]#ssh-agent bash  ---啟用代理
[root@centos7 .ssh]#ssh-add  ---輸入要代理的對稱加密口令
Enter passphrase for /root/.ssh/id_rsa: 
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

8菠镇、在xshell里實現(xiàn)基于key的驗證

QQ截圖20170910145253.png
QQ截圖20170910145306.png
QQ截圖20170910145319.png
QQ截圖20170910145335.png

將公鑰另存到桌面上,并rz上傳至要連接的服務(wù)器承璃,這里我們要連接172.18.21.106的機器利耍,并且存放到/root/.ssh/authorized_keys中

[root@centos6 .ssh]#ls
authorized_keys  id_rsa_2048_zhang.pub  known_hosts
id_rsa           id_rsa.pub
[root@centos6 .ssh]#cat id_rsa_2048_zhang.pub >>authorized_keys ---因為這個文件中已經(jīng)有別的公鑰了,所以要用>>把公鑰追加到這個文件中
[root@centos6 .ssh]#cat authorized_keys ---我們看到已經(jīng)追加進去盔粹,變成兩個公鑰了
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDirvPoTUGmzblUyiZXYdufIK0E0Q8K8q/6T413e5dr+RcbdUX8OcBYTtNLUyefGwERsfmHuxJE0Ic2ECBW1v42+7EOreyjP6bGQieNRdogiwcRQQoc/4QdADoVWo/W4aPlAh06nwbDL0BratXnZtFs6rZwDnc1s/onM9ClwolvJoTwUY+jLMiXATONr0D+THyyCySQRHKlZUexIkHT5DNcxAt/Zw5Qqx96PAo1AnUyEtZ15bLVVLtZtf2LkeFGo9x/BWIK1MbOduWnFUhxskeHhEAxTC4VoW4IuChGJMG+krFEeebDON96B4V4tWaP+ESHWvvwOpoqa9T8IKxZ5k+t root@centos7.magedu.com
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcugl5AB+AKs8QfganOe02iURbfOYQi5EYcOSRu0iy6r/a+qbnl8Dr8ZM8RdW8JTpT1Z1adQ3p6pJcELXw/J4h3Ikc7o9mMbJkSSv/mjbYQW+0F68TKjD9pHZT0uyIWGu5a3gIDm3RnlzLxlWPRQa9NhRfHo2Qk4sjJ6LL7Rnta4iL0JhC9PZcTIdUdp4Q9mOFvhyfVb1QZxVU/XGsrwid3A9xspdBm3MLkGdN8ze13aeTW7Nt/3Zryv3j8PkzISHZrNftgJVHfULNFS9133JfEhWEgms/MkEVFuuY7EUMvOwT1ybeGT73QjBM3LKShjiA4SosNzKOH+Tpy09JwU1Q==

在xshell中進行如下操作


QQ截圖20170910145812.png
QQ截圖20170910145822.png
QQ截圖20170910145838.png

9隘梨、scp命令

基于key的驗證后,scp命令十分方便玻佩,不用輸入密碼就可以實現(xiàn)遠程拷貝出嘹。
scp[options] SRC... DEST/
?兩種方式:
scp[options] [user@]host:/sourcefile /destpath ---把遠程主機的文件拷貝到當(dāng)前主機的目錄
scp[options] /sourcefile [user@]host: /destpath ---把當(dāng)前主機的文件拷貝到遠程主機的哪個目錄
?常用選項:
-C: 壓縮數(shù)據(jù)流
-r: 遞歸復(fù)制
-p: 保持原文件的屬性信息
-q: 靜默模式
-P PORT: 指明remote host的監(jiān)聽的端口

[root@centos7 app]#scp app.csr app1.key root@172.18.21.106:/app  ---可以一次性的拷貝多個文件。
[root@centos7 app]#scp -r /etc/sysconfig/ root@172.18.21.106:/app  ---拷貝目錄要加上-r選項咬崔,也可以加上-q為靜默模式拷貝税稼,不在屏幕上輸出,適合寫到腳本里

scp在拷貝時垮斯,如果遠程主機已經(jīng)有這個文件郎仆,它也會再拷貝一遍,并且覆蓋原來的文件兜蠕。

10扰肌、rsync命令

?基于ssh和rsh服務(wù)實現(xiàn)高效率的遠程系統(tǒng)之間復(fù)制文件
?使用安全的shell連接做為傳輸方式
?rsync –av /etc server1:/tmp復(fù)制整個目錄
?rsync –av /etc/ server1:/tmp只復(fù)制目錄下文件
?比scp更快,只復(fù)制不同的文件熊杨,用法和格式根scp差不多
?選項:
-n 模擬復(fù)制過程
-v 顯示詳細過程
-r 遞歸復(fù)制目錄樹
-p 保留權(quán)限
-t 保留時間戳
-g 保留組信息
-o 保留所有者信息
-l 將軟鏈接文件本身進行復(fù)制(默認)
-L 將軟鏈接文件指向的文件復(fù)制
-a 存檔曙旭,相當(dāng)于–rlptgoD盗舰,但不保留ACL(-A)和SELinux屬性(-X)
示例

[root@centos7 app]#rsync /etc/fstab root@172.18.21.106:/app/
[root@centos7 app]#rsync -av /etc root@172.18.21.106:/app
這里要注意,/etc后面加斜線和不加斜線是有區(qū)別的桂躏,加斜線表示復(fù)制這個目錄下文件钻趋,不加斜線表示復(fù)制整個目錄,把文件夾也復(fù)制了

11剂习、pssh工具

?pssh是一個python編寫可以在多臺服務(wù)器上執(zhí)行命令的工具蛮位,也可實現(xiàn)文件復(fù)制,工具在epel源里下載,包名為pssh鳞绕,pssh命令可以用于管理遠程多臺主機失仁。
?選項如下:
?--version:查看版本
?-h:主機文件列表,內(nèi)容格式”[user@]host[:port]”
?-H:主機字符串们何,內(nèi)容格式”[user@]host[:port]”
?-l:登錄使用的用戶名
?-p:并發(fā)的線程數(shù)【可選】
?-o:輸出的文件目錄【可選】
?-e:錯誤輸入文件【可選】
?-t:TIMEOUT 超時時間設(shè)置萄焦,0無限制【可選】
?-O:SSH的選項
?-v:詳細模式
?-A:手動輸入密碼模式
?-x:額外的命令行參數(shù)使用空白符號,引號垂蜗,反斜線處理
?-X:額外的命令行參數(shù)楷扬,單個參數(shù)模式解幽,同-x
?-i:每個服務(wù)器內(nèi)部處理信息輸出
?-P:打印出服務(wù)器返回信息
示例

[root@centos7 yum.repos.d]#pssh -H 172.18.21.106 -i hostname
[1] 15:56:20 [SUCCESS] 172.18.21.106
centos6.magedu.com
[root@centos7 yum.repos.d]#pssh -H "172.18.21.106 172.18.21.6" -i hostname
[1] 16:08:59 [SUCCESS] 172.18.21.6
centos6.9.magedu.com
[2] 16:08:59 [SUCCESS] 172.18.21.106
centos6.magedu.com
[root@centos7 app]#vim ip.txt
  1 172.18.21.106
  2 172.18.21.6
[root@centos7 app]#pssh -h ip.txt -i hostname
[1] 16:11:34 [SUCCESS] 172.18.21.6
centos6.9.magedu.com
[2] 16:11:34 [SUCCESS] 172.18.21.106
centos6.magedu.com
[root@centos7 app]#pssh -h ip.txt -i setenforce 0
[1] 16:12:28 [SUCCESS] 172.18.21.106
[2] 16:12:28 [SUCCESS] 172.18.21.6
[root@centos7 app]#pssh -h ip.txt -i sed -i.bak '/^SELINUX=/cSELINUX=permissive' /etc/selinux/config 
[1] 16:16:11 [SUCCESS] 172.18.21.6
[2] 16:16:11 [SUCCESS] 172.18.21.106
[root@centos7 app]#pssh -H root@172.18.21.6 -i hostname  ---這
種寫法才是正規(guī)的寫法贴见。不寫用戶名默認是當(dāng)前登錄的用戶
[1] 16:22:55 [SUCCESS] root@172.18.21.6
centos6.9.magedu.com
[root@centos7 ~]#pssh -H 172.18.21.106 -l zhang -A -i hostname
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:35:57 [SUCCESS] 172.18.21.106
centos6.magedu.com
[root@centos7 app]#pssh -h ip.txt -i -o /app/ hostname  ---在遠程的
主機上執(zhí)行hostname這個命令,并把結(jié)果保存到/app/目錄下
[1] 19:48:25 [SUCCESS] 172.18.21.106
centos6.magedu.com
[2] 19:48:25 [SUCCESS] 172.18.21.6
centos6.9.magedu.com
[root@centos7 app]#ls
172.18.21.106  172.18.21.6  app1.key  app.csr  ip.txt
[root@centos7 app]#cat 172.18.21.106 
centos6.magedu.com
[root@centos7 app]#cat 172.18.21.6
centos6.9.magedu.com
[root@centos7 app]#pssh -h ip.txt -i -o /app/ uptime  ---查看兩個主
機的負載情況躲株,并把結(jié)果保存到/app的目錄下
[1] 19:51:07 [SUCCESS] 172.18.21.6
 19:51:57 up  3:53,  1 user,  load average: 0.00, 0.00, 0.00
[2] 19:51:07 [SUCCESS] 172.18.21.106
 13:37:26 up  7:12,  3 users,  load average: 0.00, 0.00, 0.00
[root@centos7 app]#vim f1.sh
  1 #!/bin/bash
  2 echo $HOSTNAME
[root@centos7 app]#pscp.pssh -h ip.txt /app/f1.sh /app   ---把f1.sh
這個腳本推送到遠程主機
[1] 19:55:23 [SUCCESS] 172.18.21.106
[2] 19:55:23 [SUCCESS] 172.18.21.6
[root@centos7 app]#pssh -h ip.txt -i /app/f1.sh  ---執(zhí)行遠程主機的
腳本片部,執(zhí)行之前要加執(zhí)行權(quán)限
[1] 19:57:48 [SUCCESS] 172.18.21.6
centos6.9.magedu.com
[2] 19:57:48 [SUCCESS] 172.18.21.106
centos6.magedu.com
[root@centos7 app]#pslurp -h ip.txt -L /app /etc/passwd pass  ---把
遠程主機的文件拷貝到我的主機,并改名為pass霜定,-L 是指定考到本
機的哪個目錄
[1] 20:08:49 [SUCCESS] 172.18.21.6
[2] 20:08:49 [SUCCESS] 172.18.21.106
[root@centos7 app]#tree
.
├── 172.18.21.106
│   └── pass
├── 172.18.21.6
│   └── pass
└── ip.txt

2 directories, 3 files

pssh這個命令對于管理遠程多臺主機很方便档悠,小型環(huán)境很實用,但前提是基于key的驗證望浩,就是要把本機本用戶的公鑰傳給遠程主機辖所,也可以不基于key的驗證,用-A選擇進行輸入密碼磨德,但前提是遠程主機的密碼都是一樣的缘回,只需要輸入一次密碼。如果遠程主機每個密碼都不一樣典挑,則要輸入很多次酥宴,所以最好還是基于key的驗證,每個主機的每個用戶都有自己的公鑰私鑰對您觉,放在自己的家目錄里拙寡,root用戶就放在/root/.ssh這個目錄下,zhang用戶就放在/home/zhang/.ssh目錄下琳水,進行這個命令前肆糕,要把本機登錄的用戶的公鑰傳給遠程主機的用戶般堆。

12、sftp命令

?交互式文件傳輸工具
?用法和傳統(tǒng)的ftp工具相似
?利用ssh服務(wù)實現(xiàn)安全的文件上傳和下載
?使用ls cd mkdirrmdirpwdget put等指令诚啃,可用郁妈?或help獲取幫助信息
sftp[user@]host
sftp> help

[root@centos7 app]#sftp 172.18.21.106  
Connected to 172.18.21.106.   ---因為事先已經(jīng)基于key的驗證,所
以直接就連到遠程主機上了
sftp> ls
Desktop                  Documents                Downloads                
Music                    Pictures                 Public                   
Templates                Videos                   anaconda-ks.cfg          
install.log              install.log.syslog       mbr                      
sftp> cd /app
sftp> ls
app.csr    app1.key   etc        f1.sh      fstab      sysconfig  
sftp> get fstab  ---可以下載文件
Fetching /app/fstab to fstab
/app/fstab                                 100%  595     0.6KB/s   00:00    
sftp> put /etc/issue  ---可以上傳本機的文件到遠程
Uploading /etc/issue to /root/issue
/etc/issue                                 100%   68     0.1KB/s   00:00    
sftp> pwd
Remote working directory: /root
sftp> ls
Desktop                  Documents                Downloads                
Music                    Pictures                 Public                   
Templates                Videos                   anaconda-ks.cfg          
install.log              install.log.syslog       issue  ---發(fā)現(xiàn)已經(jīng)上傳成功                
mbr                      

sftp> quit
[root@centos7 app]#ls  ---發(fā)現(xiàn)文件已經(jīng)下載到連接的時候的前期目
錄
172.18.21.106  172.18.21.6  fstab  ip.txt

sftp走的是ssh協(xié)議绍申,所以是安全的噩咪,可以實現(xiàn)安全的上傳和下載文件。
openssl軟件包提供的是ssl/tls協(xié)議极阅,命令是openssl溯警;openssh軟件包提供的是ssh服務(wù)阵具,走的是ssh協(xié)議,命令時ssh,這兩個協(xié)議都是安全的加密協(xié)議匾竿。

13、SSH的端口轉(zhuǎn)發(fā)

?SSH端口轉(zhuǎn)發(fā)
SSH 會自動加密和解密所有SSH 客戶端與服務(wù)端之間的網(wǎng)絡(luò)數(shù)據(jù)测萎。但是星澳,SSH 還能夠?qū)⑵渌鸗CP 端口的網(wǎng)絡(luò)數(shù)據(jù)通過SSH 鏈接來轉(zhuǎn)發(fā),并且自動提供了相應(yīng)的加密及解密服務(wù)髓迎。這一過程也被叫做“隧道”(tunneling)峦朗,這是因為SSH 為其他TCP 鏈接提供了一個安全的通道來進行傳輸而得名。例如排龄,Telnet波势,SMTP,LDAP 這些TCP 應(yīng)用均能夠從中得益橄维,避免了用戶名尺铣,密碼以及隱私信息的明文傳輸。而與此同時争舞,如果工作環(huán)境中的防火墻限制了一些網(wǎng)絡(luò)端口的使用凛忿,但是允許SSH 的連接,也能夠通過將TCP 端口轉(zhuǎn)發(fā)來使用SSH 進行通訊
?SSH 端口轉(zhuǎn)發(fā)能夠提供兩大功能:
?加密SSH Client 端至SSH Server 端之間的通訊數(shù)據(jù)
?突破防火墻的限制完成一些之前無法建立的TCP 連接
?本地轉(zhuǎn)發(fā):
-L localport:remotehost:remotehostport sshserver
?選項:
-f 后臺啟用
-N 不打開遠程shell竞川,處于等待狀態(tài)
-g 啟用網(wǎng)關(guān)功能
?示例
ssh–L 9527:telnetsrv:23 -N sshsrv
telnet 127.0.0.1 9527
當(dāng)訪問本機的9527的端口時店溢,被加密后轉(zhuǎn)發(fā)到sshsrv的ssh服務(wù),再解密被轉(zhuǎn)發(fā)到telnetsrv:23
data<--->localhost:9527 <--->localhost:XXXXX<--->sshsrv:22 <--->sshsrv:YYYYY<--->telnetsrv:23
數(shù)據(jù)首先發(fā)送到本機的9527端口流译,收到后在本機開一個隨機端口充當(dāng)ssh的客戶端逞怨,把數(shù)據(jù)通過ssh協(xié)議加密后發(fā)送到ssh服務(wù)器的22端口,服務(wù)器收到后解密數(shù)據(jù)并在ssh服務(wù)器生成一個隨機端口充當(dāng)telnet的客戶端福澡,然后走telnet流量把數(shù)據(jù)傳給telnet服務(wù)器的23端口叠赦。
實驗

本機是個172.18.21.106去連接遠程的telnet服務(wù)器172.18.21.6,因為防火墻限制,無法直接連接除秀,172.18.21.107是一個ssh服務(wù)器糯累,可以通過中間的ssh服務(wù)器做為跳板,連接到遠程的telnet服務(wù)器册踩,當(dāng)你telnet 127.0.0.1 9527時泳姐,最終的連接就是172.18.21.106連接到172.18.21.107的ssh22端口,172.18.21.107去連接172.18.21.6的telnet23端口暂吉,因為172.18.21.107沒有被172.18.21.6這個機器做防火墻策略拒絕胖秒,可以訪后者的telnet23端口。中間的ssh服務(wù)器就向一個隧道或者橋一樣慕的,把前后兩者通過ssh協(xié)議連接起來阎肝。

[root@centos6 ~]#ssh -L 9527:172.18.21.6:23 -Nf 172.18.21.107  ---實現(xiàn)隧道功能的命令
[root@centos6 ~]#telnet 127.0.0.1 9527  ---執(zhí)行連接命令
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64
centos6.9.magedu.com login: dufu
Password: 
Last login: Sun Sep 10 21:08:23 from 172.18.21.106
[dufu@centos6 ~]$
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肮街,隨后出現(xiàn)的幾起案子风题,更是在濱河造成了極大的恐慌,老刑警劉巖嫉父,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沛硅,死亡現(xiàn)場離奇詭異,居然都是意外死亡绕辖,警方通過查閱死者的電腦和手機摇肌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來引镊,“玉大人朦蕴,你說我怎么就攤上這事〉芡罚” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵涉茧,是天一觀的道長赴恨。 經(jīng)常有香客問我,道長伴栓,這世上最難降的妖魔是什么伦连? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮钳垮,結(jié)果婚禮上惑淳,老公的妹妹穿的比我還像新娘。我一直安慰自己饺窿,他們只是感情好歧焦,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肚医,像睡著了一般绢馍。 火紅的嫁衣襯著肌膚如雪向瓷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天舰涌,我揣著相機與錄音猖任,去河邊找鬼。 笑死瓷耙,一個胖子當(dāng)著我的面吹牛朱躺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搁痛,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼室琢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了落追?” 一聲冷哼從身側(cè)響起盈滴,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轿钠,沒想到半個月后巢钓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡疗垛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年症汹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贷腕。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡背镇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泽裳,到底是詐尸還是另有隱情瞒斩,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布涮总,位于F島的核電站胸囱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瀑梗。R本人自食惡果不足惜烹笔,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抛丽。 院中可真熱鬧谤职,春花似錦、人聲如沸亿鲜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陷寝,卻和暖如春锅很,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凤跑。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工爆安, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仔引。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓扔仓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咖耘。 傳聞我的和親對象是個殘疾皇子翘簇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容