在Linux下使用过的一些工具
openssl
加解密命令库
安装
1 | sudo apt-get install openssl |
操作
加解密
1 | openssl enc [cipher_type] |
- -e: 加密
- -d:解密
- -in [file]:指定输入文件
- -out [file]:指定输出文件
- -K:指定密钥(十六进制形式)(注意K大写)
- -iv:指定初始向量(十六进制形式)
查看PKI信息
证书信息
1
openssl x509 -noout -text -in ca.crt
密钥信息(需要输入密钥加密口令)
1
openssl rsa -in server.key -text
待续
PKI
建立CA
准备一个目录(假设命名为PKI)
拷贝openssl提供的配置文件/usr/lib/ssl/openssl.cnf,并按照配置文件要求创建相应文件(先创建dir,certs,crl_dir,database,new_certs_dir,serial即可):
其中,对于 index.txt 文件,只需创建一个空文件;对于 serial 文件,创建文件后需要输入序列号,以文件形式输入的序列号应为偶数位数的 16 进制数字,如 1000,0a等。
返回 PKI 目录, 利用 openssl req 命令为 CA 生成一个自签名证书,该证书证明 CA 可信,并成为根证书:
1
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
参数含义:
- new: 创建一个证书请求文件,若之后指定了-x509 选项,代表创建自签名证书文件
- -keyout [file]: 指定自动创建私钥时私钥的输出文件
- -config [file]: 指定 req 命令的配置文件
在证书生成过程中,需要输入口令( passphrase) 与相关信息,该 CA 在每次签发证书时都会要求输入口令。另外, 还需要输入一些相关信息,例如 Country Name, Common Name 等,可以自行输入,也可以按回车键使用默认值。输出文件包括 ca.key 与 ca.crt。
利用CA签发证书
假设有一个网站 PKILab.com,需要从 CA 处取得一个电子证书,可以通过以下步骤完成签发流程。
PKILab.com 需要生成自己的公私钥对:
1
openssl genrsa -aes128 -out server.key 2048
PKILab.com 需要生成证书请求文件(CSR)。该文件包含 PKILab.com的公钥,并会被发送给 CA,请求 CA 对公钥进行签名:
1
openssl req -new -key server.key -out server.csr -config openssl.cnf
在生成证书请求文件的过程中,对于 CommonName 域,应输入“PKILab.com”;对于extra中的attributes域,可自行输入,或直接按回车键使用默认值;对于其他域,应与CA保持一致。
CA收到证书请求文件(server.csr)后,利用自己的私钥(ca.key) 与证书(ca.crt), 签名并生成 PKILab.com 所需的 X509 证书(server.crt):
1
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
ghex/bless
两者均为二进制文件编辑器。均可通过apt直接安装。
nmap
网络映射器,网络扫描工具;
使用:
1 | nmap [scan type(s)] [options] [target] |
这里的[target]表示要扫描的对象,可以是 IP 地址、网段、主机名等,同时 nmap 命令还支持自定义扫描模式、参数等,部分参数需要 sudo 权限,表1介绍常用的几种参数,其余参数以及更详尽的用法请使用 man nmap 查看。
参数 | 含义 |
---|---|
-sN | ping扫描,主机发现 |
-sT | TCP连接扫描 |
-sS | TCP SYN扫描 |
-sA | TCP ACK扫描 |
-sU | UDP 连接扫描 |
-O | 操作系统扫描 |
-sV | 开放端口的系统服务及版本扫描 |