Linux sudo命令和加密类型及其相关算法_阿汤博客
阿汤博客-承接中小企业服务器维护和网站维护,有意者可以联系博主!

Linux sudo命令和加密类型及其相关算法

学习笔记 213℃ 0评论

sudo详解

sudo  COMMAND

某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令

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=

用户的用户名

组名,使用%引导

还可以包含其它已经定义的用户别名

Host_Alias

主机名

IP

网络地址

其它主机别名

Runas_Alias:

用户名

%组名

其它的Runas别名

Cmnd_Alias:

命令路径

目录(此目录内的所有命令)

其它事先定义过的命令别名

列:

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 –> 转换规则 –> ciphertext

    ciphertext –> 转换规则 –> plaintext

转换算法:密钥

对称加密:算法

数据完整性:A–>B

单向加密算法:提取数据特征码

输入一样:输出必然相同

雪崩效应:输入的微小改变,将会引起结果的巨大改变

定长输出:无论原始数据是多大,结果大小都是相同的

不可逆:无法根据特征码还原原来的数据

协商生成密码:密钥交换(Internet Key Exchange , IKE)

Diffie-Hellman协议

A –> B

p ,g ( 大素数 ,生成数 )

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

发送方用自己的私钥加密数据,可以实现身份验证

发送方用对方的公钥加密数据,可以保证数据的机密性

公钥加密算法很少用来加密数据:速度太慢

Linux openSSH

telnet:远程登录协议,23/tcp

c/s

s:telnet服务器

c:telnet客户端

ssh:secure Shell ,应用层协议,22/tcp

通信过程及认证过程是加密的,主机认证
用户认证过程加密
数据传输过程加密

ssh v1 ,v2 

man-in-middle

ssh2

认证过程:

基于口令认证
基于密钥认证

协议:规范
实现:服务器端、客户端

Linux:openSSH

C/S

服务器端:sshd,配置文件/etc/ssh/ssh_config
客户端:ssh ,配置文件/etc/ssh/ssh_config

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

ssh-keygen:密钥生成器

ssh-copy-id:将公钥传输至远程服务器
scp:跨主机安全复制工具

ssh:

基于口令认证

ssh [email protected]

ssh -l USERNAME HOST
ssh [email protected] 'COMMAND'

-p 指定端口

scp:基于ssh的远程复制命令,可以实现在主机之间传输数据

scp   SRC  DEST

-r 复制目录
-a 

scp [email protected]:/path/to/somefile /path/to/local
scp /path/to/local [email protected]:/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  [email protected]

sftp命令:

dropbear:嵌入式系统专用的ssh服务器端和客户端工具

服务器端:

dropbear
dropbearkey

客户端:dbclient
drobear默认使用nsswitch实现名称解析

/etc/nsswitch.conf

/lib/libnss_files*

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

dropbear会在用户登录检查默认shell是否当前系统的安全shell

/etc/shells

主机密钥默认位置:

/etc/dropbear/

RSA:dropbear_rsa_host_key

长度可变,只要是8的整数倍,默认为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

公钥加密:(加密/签名)

身份认证(数字签名)

数据加密

秘钥交换

RSA : 加密、签名

DSA : 签名

ElGamal

OpenSSL : SSL的开源实现

libcrypto:加密库

libssl : TLS/SSL的实现

基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库

openssl:多用途命令行工具

实现私有证书颁发机构

子命令:

openssl实现私有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认证机构

1、cd /etc/pki/CA

2、(umask 077; openssl genrsa -out private/cakey.pem) #创建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  #生成证书颁发请求(然后将请求发给CA)

4、openssl ca -in httpd.csr -out httpd.crt -days 365 #CA端 签署此证书,然后传送给客户端

总结:

1、密码应该经常换

2、使用非默认端口登录

3、限制登录客户地址

4、禁止管理员直接登录

5、仅允许有限用户登录

6、使用基于秘钥的认证

7、禁止使用版本1

转载请注明:阿汤博客 » Linux sudo命令和加密类型及其相关算法

喜欢 (0)or分享 (0)