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

2017年2月4日16:19:42 發(fā)表評論 4,036 ℃

sudo詳解

sudo  COMMAND

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

sudo的配置文件:/etc/sudoers

一個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

主機名

IP

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

其它主機別名

Runas_Alias:

用戶名

%組名

其它的Runas別名

Cmnd_Alias:

命令路徑

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

其它事先定義過的命令別名

列:

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:列出當前用戶可以使用的所有sudo類命令

-k:讓認證信息失敗

TCP/IP 安全:

A-->B

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

完整性:10 (100)

身份驗證:

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

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

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

對稱加密:算法

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

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

輸入一樣:輸出必然相同

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

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

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

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

Diffie-Hellman協(xié)議

A --> B

p ,g ( 大素數(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

公鑰加密算法:非對稱加密算法

密鑰對:

公鑰:p

私鑰:s

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

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

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

Linux openSSH

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

c/s

s:telnet服務(wù)器

c:telnet客戶端

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

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

ssh v1 ,v2 

man-in-middle

ssh2

認證過程:

基于口令認證
基于密鑰認證

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

Linux:openSSH

C/S

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

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

ssh-keygen:密鑰生成器

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

ssh:

基于口令認證

ssh USERNAME@HOST

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

-p 指定端口

scp:基于ssh的遠程復(fù)制命令,可以實現(xiàn)在主機之間傳輸數(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

基于密鑰的認證

     ssh-keygen

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

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

-f /path/to/KEY_FILE

-N '' :指定加密私鑰的密碼
公鑰追加保存到遠程主機某用戶的家目錄下的.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默認使用nsswitch實現(xiàn)名稱解析

/etc/nsswitch.conf

/lib/libnss_files*

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

dropbear會在用戶登錄檢查默認shell是否當前系統(tǒng)的安全shell

/etc/shells

主機密鑰默認位置:

/etc/dropbear/

RSA:dropbear_rsa_host_key

長度可變,只要是8的整數(shù)倍,默認為1024

DSS:dropbear_dss_hots_key

長度固定,默認為1024

dropbearkey:

-t rsa|dsa

-f /path/to/KEY_FILE
-s SIZE

PKI:public Key Infrastructure

CA : Certificate Authority

x509 ,pkcs12

x509:

公鑰及其有效期限

證書的合法擁有者

證書該如何被使用

CA的信息

CA前面的校驗碼

PKI : TLS/SSL: x509

PKI : OpenGPG

TLS/SSL Handshake

對稱加密:

DES:Date Encrption Standard  , 56bit

3DES : 

AES : 高級加密標準 128bit

AES192 , AES256 , AES512

單向加密:

MD4

MD5

SHA1

SHA192,SHA256,SHA384

CRC-32

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

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

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

秘鑰交換

RSA : 加密、簽名

DSA : 簽名

ElGamal

OpenSSL : SSL的開源實現(xiàn)

libcrypto:加密庫

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

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

openssl:多用途命令行工具

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

子命令:

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

1、生成一對密鑰

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

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

2、生成自簽署證書

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

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

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

私有CA認證機構(gòu)

1、cd /etc/pki/CA

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

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

認證證書

1、cd /etc/httpd/ssl

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

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

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

總結(jié):

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

2、使用非默認端口登錄

3、限制登錄客戶地址

4、禁止管理員直接登錄

5、僅允許有限用戶登錄

6、使用基于秘鑰的認證

7、禁止使用版本1

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

發(fā)表評論

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