創建私有CA和申請證書及SSH端口轉發

1、私有CA和申請證書

服務器IP:172.16.41.151 客戶端172.16.41.152
服務器端操作:
cd /etc/pki/CA
生成私鑰
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
自簽名證書
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
查看證書內容
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
客戶端操作:
比如httpd需要證書
mkdir -p /app/httpd
生成客戶端的私鑰
(umask 077;openssl genrsa -out /app/httpd/httpd.key 2048)
生成證書申請文件
openssl req -new -key /app/httpd/httpd.key -out /app/httpd/httpd.csr
傳送證書申請文件至CA服務器
scp /app/httpd/httpd.csr 172.16.41.151:/app
服務器端操作:
創建所需要的文件
生成證書索引數據庫文件
touch /etc/pki/CA/index.txt
指定第一個頒發證書的序列號
echo 01 > /etc/pki/CA/serial
CA簽署證書
openssl ca -in /app/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650
將證書文件發送到請求客戶端機器
scp /etc/pki/CA/certs/httpd.crt 172.16.41.152:/app/httpd
查看證書中的信息:
openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -text
查看指定編號的證書狀態
openssl ca -status SERIAL
客戶端操作:
查看證書中的信息:
openssl x509 -in /app/httpd/httpd.crt -noout -text
服務器端操作:
吊銷證書
openssl ca -revoke /etc/pki/CA/newcerts/01.pem
查看證書的狀態
cat /etc/pki/CA/index.txt
更新證書吊銷列表
openssl ca -gencrl -out /etc/pki/CA/crl.pem
生成吊銷證書的編號
echo 01 > /etc/pki/CA/crlnumber
查看吊銷證書的信息
cat /etc/pki/CA/crl.pem
openssl crl -in /etc/pki/CA/crl.pem -noout -text

2、SSH端口轉發

實驗1:3臺主機,其中A和B屬於公司內部,其中A爲telnet服務器,對應於telnet服務器,A不允許外網的機器訪問telnet服務,B爲普通機器。
C爲公司外部需要鏈接telnet服務器的主機,但不能直接連接
B在此次實驗中充當了SSH服務器端和telnet客戶端
A、171.16.41.151 安裝telnet服務器端
yum -y install telnet-server
[root@centos76 21:52 data]# systemctl start telnet.socket
[root@centos76 21:52 data]# ss -ntl
B、172.16.41.162 內網的普通機子
C、172.16.41.163 測試telnet連接
telnet 171.16.41.151
[root@centos7ys data]# telnet 172.16.41.151
Trying 172.16.41.151...
Connected to 172.16.41.151
Escape character is '^]'.
如何退出:
ctrl+],然後再按q就可以了
出現如下畫面可以輸入telnet服務器對應的賬號和密碼進行登陸,注意不能使用root登錄,必須使用其它賬戶
Kernel 3.10.0-957.el7.x86_64 on an x86_64
centos76 login: wangbin
Password:
Last login: Wed Apr 17 11:03:30 on pts/0
a、實驗開始前在A機器添加防火牆規則拒絕C的連接:
iptables -A INPUT -s 172.16.41.163 -j REJECT
查看B、A機器的連接情況 ss -tn
b、在C機器執行命令:
執行此命令會連接進入B機器進行操作:ssh -L 14325:172.16.41.151:23 172.16.41.162
[root@centos7ys ~]# ssh -L 14325:172.16.41.151:23 172.16.41.162 -f -f參數輸入後出現的錯誤提示
Cannot fork into background without a command to execute.
[root@centos7ys ~]# ssh -L 14325:172.16.41.151:23 172.16.41.162 -N -N參數輸入後會卡住,
正確的命令:ssh -L 14325:172.16.41.151:23 172.16.41.162 -fN 後臺執行並且不會登陸B機器
c、在C機器上查看端口情況 ss -ntl 看一下14325端口是否監聽
在B機器上查看端口情況 ss -ntl 查看連接情況
[root@centos7ys data]# ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 36 172.16.41.162:22 172.16.41.1:50481
ESTAB 0 0 172.16.41.162:22 172.16.41.163:59110
d、在C機器上執行 telnet 127.0.0.1 14325 輸入telnet服務器對應的用戶和密碼
e、查看信息
在B機器上查看
[root@centos7ys ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.16.41.162:37006 172.16.41.151:23
ESTAB 0 0 172.16.41.162:22 172.16.41.1:51816
ESTAB 0 0 172.16.41.162:22 172.16.41.163:34232
在A機器上查看
[root@centos76 22:28 ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 36 172.16.41.151:22 172.16.41.1:51787
ESTAB 0 0 ::ffff:172.16.41.151:23 ::ffff:172.16.41.162:37006
實驗2:3臺主機,其中A和B屬於公司內部,其中A爲telnet服務器,對應於telnet服務器,A不允許外網的機器訪問telnet服務,B爲普通機器。
C爲公司外部需要鏈接telnet服務器的主機,但不能直接連接,此次實驗中充當了SSH服務器端
B在此次實驗中充當了SSH客戶端和telnet客戶端
IP設置如同實驗1
a、實驗開始前在A機器添加防火牆規則拒絕C的連接:
iptables -A INPUT -s 172.16.41.163 -j REJECT
查看B、A機器的連接情況 ss -tn
b、在B機器上執行命令
ssh -R 14321:172.16.41.151:23 172.16.41.163 -fN
c、查看信息
在C機器上查看信息,剛纔b中執行的命令監聽的端口是C機器上的14321端口
ss -ntl
在B機器上查看信息
[root@centos7ys ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.16.41.162:33352 172.16.41.163:22
ESTAB 0 0 172.16.41.162:33354 172.16.41.163:22
ESTAB 0 36 172.16.41.162:22 172.16.41.1:51816
d、在C機器上執行 telnet 127.0.0.1 14321 輸入telnet服務器對應的用戶和密碼
e、查看信息
在機器B上查看信息
[root@centos7ys ~]# ss -nt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.16.41.162:37014 172.16.41.151:23
ESTAB 0 0 172.16.41.162:33352 172.16.41.163:22
ESTAB 0 0 172.16.41.162:33354 172.16.41.163:22
ESTAB 0 36 172.16.41.162:22 172.16.41.1:51816
實驗3:機子配置和上述一致
在C機器上執行
ssh -D 18936 172.16.41.162 -fNg
curl --socks5 127.0.0.1:18936 http://172.16.41.151
其中A機器搭建httpd服務
實驗4:windows通過代理訪問
在代理服務器上配置如下內容:
[root@centos7ys ~]# cat /etc/ssh/sshd_config |grep -i gateway
找到此行#GatewayPorts no
修改爲GatewayPorts yes
ssh -gD 端口 localhost
在windows機器的瀏覽器中找到設置代理設置,局域網設置,高級-類型選擇“套接字” 設置對應的IP地址和端口
設置完成後就可以鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章