1、判斷UID是否大于等于500,如果為真就顯示為普通用戶,如果為假就顯示為系統(tǒng)或管理用戶
awk -F:'{if($3>500){print $1" is 普通用戶"}else{print $1" is 系統(tǒng)賬戶"}}'/etc/passwd
2、顯示用戶id為奇數(shù)的用戶。
awk -F:'$3%2==1{print $0}'/etc/passwd
3、統(tǒng)計(jì)web服務(wù)訪問日志中的ip訪問量
awk'{ip[$1]++}END{for(i in ip){print i,ip[i]}}'/var/log/httpd/access_log
4、簡(jiǎn)述加密類型以及數(shù)據(jù)加密解密過程
1.對(duì)稱加密:加密和解密使用同一個(gè)密鑰;加密算法和解密算法可能不同;
常見對(duì)稱加密算法:
DES:Data Encryption Standard;
加密端64位明文產(chǎn)生64位密文,解密端使用64位密文還原64位明文;64位為一個(gè)塊即8個(gè)字節(jié),加密和解密使用56位的密鑰,DES使用16個(gè)迭代塊;是現(xiàn)代加密算法,很多s核,p核進(jìn)行計(jì)算;后來被破解;
3DES:Triple DES;
是DES的三個(gè)數(shù)量級(jí),一個(gè)數(shù)量級(jí)是10的一次方;
AES:Advanced Encryption Standard;
(密鑰可為128bits, 192bits, 256bits, 384bits)安全程度非常高;
Blowfish加密算法
Twofish加密算法
IDEA商業(yè)加密算法
RC6加密算法
CAST5加密算法
特性:
1、加密、解密使用同一個(gè)密鑰;
2、將原始數(shù)據(jù)分割成為固定大小的塊,逐個(gè)進(jìn)行加密;
缺陷:
1、密鑰過多;
2、密鑰分發(fā)困難;
2. 公鑰加密:密鑰分為公鑰與私鑰,成對(duì)兒出現(xiàn)
特點(diǎn):
用公鑰加密的數(shù)據(jù),只能使用與之配對(duì)兒的私鑰解密;反之亦然
密鑰長(zhǎng)度較大,例如512bits,2048bits,4096bits;效率低下;
用途:
數(shù)字簽名:主要在于讓接收方確認(rèn)發(fā)送方的身份;
密鑰交換:發(fā)送方用對(duì)方公鑰加密一個(gè)對(duì)稱密鑰,并發(fā)送給對(duì)方
數(shù)據(jù)加密
常見算法:
RSA:即能簽名、又能加密解密;
DSA:數(shù)字簽名算法(標(biāo)準(zhǔn))
ELGamal:
公鑰加密工作模式

image
梳理:
---身份認(rèn)證的實(shí)現(xiàn):
發(fā)送方用自己的私鑰加密數(shù)據(jù)特征碼,接收方用對(duì)方的公鑰解密,如果加密成功即可實(shí)現(xiàn)身份認(rèn)證,因?yàn)楣€的成對(duì)出現(xiàn)的,私鑰只有自己有,公鑰所有人都有;
---數(shù)字簽名的實(shí)現(xiàn):
在身份驗(yàn)證中就依賴到了數(shù)字簽名,發(fā)送方用自己的私鑰加密數(shù)據(jù)特征碼這個(gè)結(jié)果就叫數(shù)字簽名;因此,數(shù)據(jù)簽名就為了完成身份驗(yàn)證的;
---密鑰交換的實(shí)現(xiàn):
自己先生成一個(gè)密碼,要用對(duì)方的公鑰加密這個(gè)自己生成的密碼,然后發(fā)送給對(duì)方,只有對(duì)方能解密,對(duì)方解密出來的就得到密碼了;所以就能使用這個(gè)密碼來解密使用對(duì)稱加密方式加密的數(shù)據(jù)了;
3. 單向加密:即提出數(shù)據(jù)指紋(特征碼);只能加密,不能解密
特性:
定長(zhǎng)輸出:無論原來的數(shù)據(jù)是多大級(jí)別,其加密結(jié)果長(zhǎng)度一樣;
雪崩效應(yīng):原始數(shù)據(jù)微小改變,將會(huì)導(dǎo)致結(jié)果巨大變化;
不可逆
用途:
數(shù)據(jù)完整性校驗(yàn)
系統(tǒng)帳號(hào)密碼校驗(yàn)
常見算法:
MD5:128bits定長(zhǎng)輸出
SHA1: 160bits定長(zhǎng)輸出
SHA256:
SHA384:
SHA512:
CRC32:
密鑰算法:
密鑰交換: IKE(Internet Key Exchange)
1、公鑰加密:實(shí)現(xiàn)密鑰交換;
密鑰是在網(wǎng)上發(fā)送的;
2、DH(Deffie-Hellman)算法
不發(fā)送密鑰就能使雙方完成密鑰交換
認(rèn)證PKI:Public Key Infrastructure
公鑰基礎(chǔ)設(shè)施:包括四部分
簽證機(jī)構(gòu):CA
注冊(cè)機(jī)構(gòu):RA
證書吊銷列表:CRL
證書存取庫
X.509v3:國(guó)際標(biāo)準(zhǔn)化組織定義了證書的結(jié)構(gòu)以及認(rèn)證協(xié)議標(biāo)準(zhǔn),x.509有三版本;
版本號(hào):x.509的版本號(hào);
序列號(hào)
簽名算法ID:簽名的使用算法;
發(fā)行者名稱:CA的名稱
有效期限:兩個(gè)日期,起始日期和終止日期
主體名稱:證書擁有者名稱;
主體公鑰:證書擁有者自己的公鑰
發(fā)行者的惟一標(biāo)識(shí)
主體的惟一標(biāo)識(shí):證書擁有者
ssl協(xié)議
SSL:Secure sockets Layer
Netscape網(wǎng)警公司: 1994發(fā)布,有3個(gè)版本;
V1.0, V2.0, V3.0(有漏洞)
TLS: Transport Layer Security
IETF: 1999發(fā)布,有4個(gè)版本;
V1.0(從來沒公開,漏洞多), V1.1, V1.2(主流), V1.3(2014年,沒到成熟期)
TLS協(xié)議采用分層設(shè)計(jì):
1、最底層:基礎(chǔ)算法原語的實(shí)現(xiàn),aes, rsa, md5
2、第2層:各種算法的實(shí)現(xiàn);
3、第3層:組合算法實(shí)現(xiàn)的半成品;
4、最高層:用各種組件拼裝而成的各種成品密碼學(xué)協(xié)議軟件;
ssl的認(rèn)證過程:

image
第一步:Visitor生成一個(gè)隨機(jī)數(shù),客戶端支持的加密方法,發(fā)送給服務(wù)端
第二步:Server確認(rèn)雙方使用的加密方法,以及一個(gè)服務(wù)端生成的隨機(jī)數(shù)(Server random)、以及把服務(wù)端的數(shù)字證書發(fā)送個(gè)客戶端
第三步:客戶端驗(yàn)證數(shù)字證書,用CA公鑰解密證書,查看證書有效期,和是否被吊銷,驗(yàn)證通過后,生成一個(gè)新的隨機(jī)數(shù),(稱為預(yù)備主密鑰Pre-master secret),并使用Server的公鑰加密預(yù)備主密鑰發(fā)給Server。公鑰自然在證書里提取。
第四步:Server使用自己的私鑰,解密Visitor發(fā)來的預(yù)備主密鑰。
第五步:Visitor和Server雙方都具有了(客戶端隨機(jī)數(shù)+服務(wù)端隨機(jī)數(shù)+預(yù)備主密鑰),它們兩者都根據(jù)約定的加密方法,使用這三個(gè)隨機(jī)數(shù)生成對(duì)稱密鑰——主密鑰(也稱為對(duì)話密鑰session key),用來加密接下來的整個(gè)對(duì)話過程。
之后所有的數(shù)據(jù)在這次會(huì)話中只需要使用“對(duì)話密鑰”即可,不需要多余的機(jī)制
5、搭建私有CA并實(shí)現(xiàn)證書頒發(fā)
第一步:設(shè)置openssl的配置文件:/etc/pki/tls/openssl.conf
match:要求申請(qǐng)?zhí)顚懙男畔⒈仨毢虲A設(shè)置的信息一致
optional:可有可無,跟CA設(shè)置的信息可以不一致
supplied:必須填寫的信息
vim /etc/pki/tls/openssl.conf[ CA_default ]dir? ? ? ? ? ? = /etc/pki/CA# Where everything is kept 存放CA的根目錄certs? ? ? ? ? =$dir/certs# Where the issued certs are kept? 客戶申請(qǐng)證書的存放位置crl_dir? ? ? ? =$dir/crl# Where the issued crl are kept? crl(證書吊銷列表)目錄的位置database? ? ? ? =$dir/index.txt# database index file.? 數(shù)據(jù)庫文件#unique_subject = no? ? ? ? ? ? ? ? ? ? # Set to 'no' to allow creation of# several ctificates with same subject.new_certs_dir? =$dir/newcerts# default place for new certs.? 新證書的存放位置certificate? ? =$dir/cacert.pem# The CA certificate? CA自簽名證書serial? ? ? ? ? =$dir/serial# The current serial number? 存放序列號(hào)的文件crlnumber? ? ? =$dir/crlnumber# the current crl number? # must be commented out to leave a V1 CRLcrl? ? ? ? ? ? =$dir/crl.pem# The current CRL? CRL文件private_key? ? =$dir/private/cakey.pem# The private key? 自己的私鑰文件policy? ? ? ? ? = policy_match? 匹配下方哪個(gè)中括號(hào)里面的策略# For the CA policy[ policy_match ]countryName? ? ? ? ? ? = match? 國(guó)家名稱stateOrProvinceName? ? = match? 省名稱organizationName? ? ? ? = match? 組織名稱organizationalUnitName? = optional? 組織單位commonName? ? ? ? ? ? ? = supplied? 域名emailAddress? ? ? ? ? ? = optional? 郵件
第二步:? 創(chuàng)建配置文件中所需要的文件
touch /etc/pki/CA/index.txt#創(chuàng)建證書索引數(shù)據(jù)庫文件echo01 > /etc/pki/CA/serial#創(chuàng)建第一個(gè)證書頒發(fā)的序列號(hào)文件,以后頒發(fā)會(huì)自動(dòng)增長(zhǎng)
第三步:生成CA私鑰
cd/etc/pki/CA(umask066; openssl genrsa -out private/cakey.pem 2048 )
第四步:生成自簽名證書
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pemYou are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter'.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:hunanLocality Name (eg, city) [Default City]:changshaOrganization Name (eg, company) [Default Company Ltd]:aaOrganizational Unit Name (eg, section) []:MISCommon Name (eg, your name or your server's hostname) []:ns1.aa.com
Email Address []:
-new:生成新證書簽署請(qǐng)求
-x509:專用于CA生成自簽證書
-key:生成請(qǐng)求時(shí)用到的私鑰文件
-days n:證書的有效期限
-out /PATH/TO/SOMECERTFILE: 證書的保存路徑
至此CA創(chuàng)建完成
第五步:頒發(fā)證書
在需要使用證書的主機(jī)上生成證書請(qǐng)求
生成私鑰
(umask066; openssl genrsa -out test.key 2048 )
生成證書請(qǐng)求文件
openssl req -new -key test.key? -out test.csr
國(guó)家,省,公司必須一致
將CSR文件傳給CA
第六步:CA簽署證書,并將證書頒發(fā)給請(qǐng)求者
openssl ca -intest.csr -out /etc/pki/CA/certs/test.crt -day 365