Linux sudo命令和加密類型及其相關(guān)算法

2017年2月4日16:19:42 發(fā)表評(píng)論 3,842 ℃

sudo詳解

sudo  COMMAND

某個(gè)用戶能夠以另外哪一個(gè)用戶的身份通過(guò)哪些主機(jī)執(zhí)行什么命令

sudo的配置文件:/etc/sudoers

一個(gè)sudo條目:

who   which_hosts=(runas)  TAG:command

NOPASSWD

who : User_Alias

which_hosts:Host_Alias

runas:Runas_Alias

command:Cmnd_Alias

別名必須全部而且只能使用大寫英文字母的組合

visudo命令編輯配置文件

用戶別名:

User_Alias  USERADMIN=

用戶的用戶名

組名,使用%引導(dǎo)

還可以包含其它已經(jīng)定義的用戶別名

Host_Alias

主機(jī)名

IP

網(wǎng)絡(luò)地址

其它主機(jī)別名

Runas_Alias:

用戶名

%組名

其它的Runas別名

Cmnd_Alias:

命令路徑

目錄(此目錄內(nèi)的所有命令)

其它事先定義過(guò)的命令別名

列:

User_Alias USERADMIN = hadoop, $hadoop, $useradmin

Cmnd_Alias USERADMINCMND = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel , /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

USERADMIN             ALL=(root)  NOPASSWD: USERADMINCMND

sudo命令:

-l:列出當(dāng)前用戶可以使用的所有sudo類命令

-k:讓認(rèn)證信息失敗

TCP/IP 安全:

A-->B

機(jī)密性:明文傳輸(ftp , http , smtp ,telnet)

完整性:10 (100)

身份驗(yàn)證:

機(jī)密性:plaintext --> 轉(zhuǎn)換規(guī)則 --> ciphertext

    ciphertext --> 轉(zhuǎn)換規(guī)則 --> plaintext

轉(zhuǎn)換算法:密鑰

對(duì)稱加密:算法

數(shù)據(jù)完整性:A-->B

單向加密算法:提取數(shù)據(jù)特征碼

輸入一樣:輸出必然相同

雪崩效應(yīng):輸入的微小改變,將會(huì)引起結(jié)果的巨大改變

定長(zhǎng)輸出:無(wú)論原始數(shù)據(jù)是多大,結(jié)果大小都是相同的

不可逆:無(wú)法根據(jù)特征碼還原原來(lái)的數(shù)據(jù)

協(xié)商生成密碼:密鑰交換(Internet Key Exchange , IKE)

Diffie-Hellman協(xié)議

A --> B

p ,g ( 大素?cái)?shù) ,生成數(shù) )

A : x

B : y

A : g^x%p -- >B

B :  g^y%p -->A

g , p g^x%p ,g^y%p

A : (g^y%p)^x=g^yx%p

B : (G^X%p)^y=g^xy%p

公鑰加密算法:非對(duì)稱加密算法

密鑰對(duì):

公鑰:p

私鑰:s

發(fā)送方用自己的私鑰加密數(shù)據(jù),可以實(shí)現(xiàn)身份驗(yàn)證

發(fā)送方用對(duì)方的公鑰加密數(shù)據(jù),可以保證數(shù)據(jù)的機(jī)密性

公鑰加密算法很少用來(lái)加密數(shù)據(jù):速度太慢

Linux openSSH

telnet:遠(yuǎn)程登錄協(xié)議,23/tcp

c/s

s:telnet服務(wù)器

c:telnet客戶端

ssh:secure Shell ,應(yīng)用層協(xié)議,22/tcp

通信過(guò)程及認(rèn)證過(guò)程是加密的,主機(jī)認(rèn)證
用戶認(rèn)證過(guò)程加密
數(shù)據(jù)傳輸過(guò)程加密

ssh v1 ,v2 

man-in-middle

ssh2

認(rèn)證過(guò)程:

基于口令認(rèn)證
基于密鑰認(rèn)證

協(xié)議:規(guī)范
實(shí)現(xiàn):服務(wù)器端、客戶端

Linux:openSSH

C/S

服務(wù)器端:sshd,配置文件/etc/ssh/ssh_config
客戶端:ssh ,配置文件/etc/ssh/ssh_config

windows遠(yuǎn)程工具:putty , SecureCRT() , SSHSecureShellClient  , Xmanger

ssh-keygen:密鑰生成器

ssh-copy-id:將公鑰傳輸至遠(yuǎn)程服務(wù)器
scp:跨主機(jī)安全復(fù)制工具

ssh:

基于口令認(rèn)證

ssh USERNAME@HOST

ssh -l USERNAME HOST
ssh USERNAME@HOST 'COMMAND'

-p 指定端口

scp:基于ssh的遠(yuǎn)程復(fù)制命令,可以實(shí)現(xiàn)在主機(jī)之間傳輸數(shù)據(jù)

scp   SRC  DEST

-r 復(fù)制目錄
-a 

scp USERNAME@HOST:/path/to/somefile /path/to/local
scp /path/to/local USERNAME@HOST:/apth/to/somefile

基于密鑰的認(rèn)證

     ssh-keygen

-t {}rsa|dsa} #指定加密算法

~/.ssh/id_rsa
~/.ssh/id_rsa.pub

-f /path/to/KEY_FILE

-N '' :指定加密私鑰的密碼
公鑰追加保存到遠(yuǎn)程主機(jī)某用戶的家目錄下的.ssh/authorized_keys文件.ssh/authorized_key2文件中

ssh-copy-id

-i ~/.ssh/id_rsa.pub
ssh-copy-id -i ~/.ssh/id_rsa.pub  USERNAME@HOST

sftp命令:

dropbear:嵌入式系統(tǒng)專用的ssh服務(wù)器端和客戶端工具

服務(wù)器端:

dropbear
dropbearkey

客戶端:dbclient
drobear默認(rèn)使用nsswitch實(shí)現(xiàn)名稱解析

/etc/nsswitch.conf

/lib/libnss_files*

/usr/lib/libnss3.so
/usr/lib/libnss_files

dropbear會(huì)在用戶登錄檢查默認(rèn)shell是否當(dāng)前系統(tǒng)的安全shell

/etc/shells

主機(jī)密鑰默認(rèn)位置:

/etc/dropbear/

RSA:dropbear_rsa_host_key

長(zhǎng)度可變,只要是8的整數(shù)倍,默認(rèn)為1024

DSS:dropbear_dss_hots_key

長(zhǎng)度固定,默認(rèn)為1024

dropbearkey:

-t rsa|dsa

-f /path/to/KEY_FILE
-s SIZE

PKI:public Key Infrastructure

CA : Certificate Authority

x509 ,pkcs12

x509:

公鑰及其有效期限

證書的合法擁有者

證書該如何被使用

CA的信息

CA前面的校驗(yàn)碼

PKI : TLS/SSL: x509

PKI : OpenGPG

TLS/SSL Handshake

對(duì)稱加密:

DES:Date Encrption Standard  , 56bit

3DES : 

AES : 高級(jí)加密標(biāo)準(zhǔn) 128bit

AES192 , AES256 , AES512

單向加密:

MD4

MD5

SHA1

SHA192,SHA256,SHA384

CRC-32

公鑰加密:(加密/簽名)

身份認(rèn)證(數(shù)字簽名)

數(shù)據(jù)加密

秘鑰交換

RSA : 加密、簽名

DSA : 簽名

ElGamal

OpenSSL : SSL的開(kāi)源實(shí)現(xiàn)

libcrypto:加密庫(kù)

libssl : TLS/SSL的實(shí)現(xiàn)

基于會(huì)話的、實(shí)現(xiàn)了身份認(rèn)證、數(shù)據(jù)機(jī)密性和會(huì)話完整性的TLS/SSL庫(kù)

openssl:多用途命令行工具

實(shí)現(xiàn)私有證書頒發(fā)機(jī)構(gòu)

子命令:

openssl實(shí)現(xiàn)私有CA:

1、生成一對(duì)密鑰

私鑰:openssl genrsa -out server1024.key(保存的文件名稱) 2014(長(zhǎng)度)

公鑰:openssl rsa -in server1024.key -pubout

2、生成自簽署證書

生成證書:openssl req -new -x509 -key server2014.key -out server.crt(保存的文件名稱) -days 365(保存時(shí)間)

查看證書:openssl x509 -text -in server.crt

配置文件:/etc/pki/tls/openssl.cnf

私有CA認(rèn)證機(jī)構(gòu)

1、cd /etc/pki/CA

2、(umask 077; openssl genrsa -out private/cakey.pem) #創(chuàng)建CA,自己生成一對(duì)密鑰

3、openssl req -new -x509 -key private/cakey.pem -out cacert.pem  #生成自簽證書

認(rèn)證證書

1、cd /etc/httpd/ssl

2、(umask 077; openssl genrsa -out httpd.key 1024) #客戶端生成一對(duì)密鑰

3、openssl req -new -key httpd.key -out httpd.csr  #生成證書頒發(fā)請(qǐng)求(然后將請(qǐng)求發(fā)給CA)

4、openssl ca -in httpd.csr -out httpd.crt -days 365 #CA端 簽署此證書,然后傳送給客戶端

總結(jié):

1、密碼應(yīng)該經(jīng)常換

2、使用非默認(rèn)端口登錄

3、限制登錄客戶地址

4、禁止管理員直接登錄

5、僅允許有限用戶登錄

6、使用基于秘鑰的認(rèn)證

7、禁止使用版本1

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: