安装及配置基于开源免费软件的企业内部安全研发网络
中小微企业,特别是小微企业在启动有较高安全审计要求的项目时,用于设置研发过程全程可控和审计的设备/软件的前期费用往往是较大负担,这里我们将介绍如何使用开源免费软件建立研发过程全程可控和审计研发网络。
下图是本文实例中使用的网络架构。
本示例中,主要包含边界路由器(edge router),跳板机(Jump Server),工作组路由器(group router),监控服务器(ELK server)和缓存服务器(caching server)。
边界路由器(edge router):负责连接外部网络,使用OPNSense版本19.1.1。在本文中,我们将不做介绍,有关OPNSense的具体安装和配置,请参见 《OPNsense - 多功能高可靠易使用的防火墙》一文。
跳板机(Jump Server):提供远程接入安全网络服务,使用Apache的Guacamole软件包。
工作组路由器(group router):安全网络的边界路由器,建立在Ubuntu服务器版本18.04.1上。主要功能为安全网络防护墙,为安全网络提供DNS、DHCP和NTP服务,以及安全网络监控服务。
监控服务器(ELK server):收集安全网络监控及其他监控数据,并提供监控数据分析服务。
缓存服务器(caching server):安全网络内部的所有电脑不能直接连接到外网,所有允许的对外连接,都将通过改代理服务器完成。
服务器安装和配置
一、边界路由器(edge router)
在本文中,我们将不做介绍,有关OPNSense的安装和配置,请参见 《OPNsense - 多功能高可靠易使用的防火墙》一文。
二、安装、配置跳板机(Jump Server)
- 操作系统配置:
apt update && apt upgrade -y
- 安装、配置Web服务
1. 安装 tomcat8 server
apt install tomcat8 -y
2. 将内部 Certificate Authority 的证书添加到 JAVA 的 keystore
keytool -importcert -file /usr/share/ca-certificates/lswin/LSWIN-ROOT-CA.crt -keystore /usr/lib/jvm/default-java/lib/security/cacerts
3. 将由内部 Certificate Authority 为跳板机生成的证书下载并复制到 /var/lib/tomcat8/conf
我们的证书分别是:jumpserv.crt 和 jumpserv.key
4. 修改/var/lib/tomcat8/conf/server.xml,启用SSL
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/jumpserv.key"
certificateFile="conf/jumpserv.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
5. 使用 nginx 作为 web 前端服务器
a) 安装 nginx
apt install nginx -y
b) 修改 nginx 服务脚本(/lib/systemd/system/nginx.service),确保 nginx 在网络在线后才被启动
将
After=network.target
修改为:
After=network.target systemd-networkd-wait-online.service
6. 配置nginx
a) 启用 SSL (/etc/nginx/conf.d/tomcat-proxy.conf)
server {
listen 443 ssl;
ssl_certificate /var/lib/tomcat8/conf/jumpserv.crt;
ssl_certificate_key /var/lib/tomcat8/conf/jumpserv.key;
server_name jumpserv.lswin.cn;
location / {
proxy_pass https://jumpserv.lswin.cn:8443/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log off;
}
}
b) 配置 HTTP -> HTTPS跳转 (/etc/nginx/http-redirect.conf)
server {
listen 80;
server_name jumpserv.lswin.cn;
return 301 https://jumpserv.lswin.cn;
}
- 安装编译工具安装编译工具
apt install build-essential autoconf
- 安装支持软件包
a) 安装必需软件库
apt install libcairo2-dev libjpeg-turbo8-dev libossp-uuid-dev
b) 安装协议支持软件库 (只支持VNC、RDP和SSH,不支持Telnet)
apt install libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
- 下载Guacamole服务(guacd)软件包
从Guacamole项目主站下载 guacamole-server-1.0.0.tar.gz - 编译、安装guacd
a) 在当前目录下解压Guacamole源码
tar -xzf guacamole-server-1.0.0.tar.gz
b) 转到源码目录
cd guacamole-server-1.0.0
c) 自动配置Makefile
./configure --with-init-dir=/etc/init.d
Makefile产生后,将自动显示Makefile的配置情况,和下面的类似。
------------------------------------------------
guacamole-server version 1.0.0
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... no
libVNCServer ........ yes
libvorbis ........... yes
libpulse