1. 建立跳板机的背景
跳板机(Jump Server),也叫网关服务器或者中转服务器,是指一个位于公网上的服务器,用于限制和控制外部对内网的访问。
在网络环境中,为了保障内网安全,常常会有需求将内网和外网进行隔离,只允许通过特定的服务器进行访问。通过在外网部署跳板机,可以实现对内网服务器的安全访问和维护,提高网络的安全性。使用Linux制作跳板机非常方便,本文将详细介绍如何使用Linux建立跳板机。
2. 准备工作
2.1 硬件要求
在建立跳板机之前,需要确保你拥有一台Linux服务器,并且该服务器已经连接到内外网。
2.2 软件要求
跳板机主要负责网络访问控制和数据转发的功能,因此需要安装相应的软件。下面是常用的软件以及其安装命令:
# 安装OpenSSH Server
sudo apt-get install openssh-server
# 安装OpenVPN
sudo apt-get install openvpn
# 安装Squid代理服务器
sudo apt-get install squid
3. 设置SSH访问
3.1 开启SSH服务
跳板机的主要作用是进行远程访问,因此需要开启SSH服务,并设置相应的访问权限。
# 开启SSH服务
sudo systemctl start ssh
# 设置SSH服务随系统自启动
sudo systemctl enable ssh
3.2 配置SSH访问权限
为了保障跳板机的安全性,需要对SSH服务进行访问控制,限制只有特定的IP地址或者特定的用户可以访问跳板机。
编辑SSH配置文件/etc/ssh/sshd_config
,将下面的配置项添加到文件末尾:
# 限制SSH登录的用户
AllowUsers user1 user2
# 限制SSH登录的IP地址
AllowTcpForwarding yes
PermitOpen any
# 只允许特定的IP地址访问
Match Address 192.168.1.100
PermitOpen 192.168.1.0/24
Match Address 192.168.1.200
PermitOpen 192.168.1.0/24
在上述配置中,AllowUsers 用于指定允许访问的用户列表,Match Address 用于指定允许访问的IP地址。
4. 配置OpenVPN
4.1 创建OpenVPN配置文件
OpenVPN是一种用于在公网上创建安全私有网络(Virtual Private Network)的工具,可以实现跨网络的安全访问。
在跳板机上创建OpenVPN配置文件/etc/openvpn/server.conf
,添加以下内容:
# OpenVPN配置文件
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
在上述配置中,port 用于指定OpenVPN服务器监听的端口号,dev tun 指定使用的设备类型,server 指定了分配给客户端的IP地址池。
4.2 生成OpenVPN证书和密钥
使用以下命令生成OpenVPN证书和密钥:
# 创建相关目录
cd /etc/openvpn
mkdir keys
# 生成证书和密钥
openssl req -nodes -new -x509 -keyout keys/server.key -out keys/server.crt -days 3650
openssl dhparam -out keys/dh.pem 2048
openvpn --genkey --secret keys/ta.key
# 拷贝CA证书
cp /etc/openvpn/keys/ca.crt /etc/openvpn
以上命令生成了ca.crt
、server.crt
、server.key
、dh.pem
和 ta.key
这些文件。
5. 配置Squid代理服务器
5.1 编辑Squid配置文件
Squid是一个高性能的代理服务器,可以用来加速Web访问,并且也可以用来限制特定的IP地址或者特定的用户访问互联网。
编辑Squid主配置文件/etc/squid/squid.conf
,添加以下内容:
# 允许所有IP地址访问
acl all src all
# 允许跳板机访问
acl jump_server src 192.168.1.100
acl jump_server_private dst 192.168.0.0/16
http_access allow jump_server jump_server_private
# 其他所有请求都拒绝
http_access deny all
在上述配置中,acl all src all 允许所有的IP地址都可以访问,acl jump_server src 192.168.1.100 指定了跳板机的IP地址,acl jump_server_private dst 192.168.0.0/16 指定了内网的IP地址段。
5.2 重启Squid服务
完成配置之后,通过以下命令重启Squid服务:
sudo systemctl restart squid
6. 测试访问
完成以上设置之后,就可以通过SSH访问跳板机,并通过OpenVPN和Squid代理服务器进行访问控制。
在本地机器上设置OpenVPN连接,并使用SSH连接跳板机。然后,在对应的代理设置中,配置Squid服务器的地址和端口,即可实现通过跳板机访问内网资源。
7. 总结
本文详细介绍了使用Linux建立跳板机的步骤。通过配置SSH访问、OpenVPN和Squid代理服务器,可以实现对内网资源的安全访问和管控。使用跳板机可以提高网络的安全性,防止外部攻击和非法访问。
通过本文的步骤,你可以快速搭建一个功能强大的跳板机,并根据实际需求进行相应的配置和扩展。希望本文对你有所帮助,祝你在Linux环境中建立安全的跳板机顺利完成!