创建私有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地址和端口
设置完成后就可以链接

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