因此,这个周末,我一直在努力将我的apache2服务器迁移到一个docker容器中,我对此没有问题。
我目前有一个带有SSTP和Exchange2016的windows服务器,它们都使用端口443进行通信。
这样做的目的是让传入的443流量转发到我的ubuntu服务器,而apache将根据我给虚拟主机的别名来决定,用户将被重定向到哪个虚拟主机。这是我的工作,但如果用户试图连接到也使用端口443的VPN怎么办?我如何才能将流量重定向到我的服务器?
我所想的是为IPTABLES创建一条规则,使目标为vpn.domain.com并将其转发给服务器,但由于所有子域/CNames只是指向同一个主机的别名(我的外部IP),因此端口443上的所有请求都将被发送到windows服务器,而绕过我的was主机,这不是我想要的。
实际上,我还尝试使用apache将443上的任何传入连接通过ServerAlias vpn.domain.com转发到windows服务器,因为它是在443上进行的,但这是行不通的。
我不知道怎么做,我想我只需要在我的ubuntu服务器上创建一个新的VPN服务。如果有什么办法可以达到我所需要的,那我就省去麻烦了。
谢谢
发布于 2017-11-27 07:33:00
尝试使用SSLH
安装SSLH
SSLH是为大多数Linux发行版打包的,因此您可以使用默认的包管理器来安装它。
sudo apt install sslh配置Apache
正如您已经知道的,Apache默认会监听所有网络接口(即0.0.0.0:443)。我们需要更改此设置,让webserver只监听localhost接口(即127.0.0.1:443或localhost:443)。
为此,编辑webserver (nginx或apache)配置文件,并找到以下行:
listen 443 ssl;并将其改为:
listen 127.0.0.1:443 ssl;如果您在Apache中使用Virutalhost,请确保您也对其进行了更改。
VirtualHost 127.0.0.1:443保存并关闭配置文件。不要重新启动服务。
配置SSLH
使webserver仅在本地界面上侦听之后,编辑SSLH配置文件:
sudo vi /etc/default/sslh查找以下行:
Run=no并将其改为:
Run=yes然后,向下滚动一点,修改下面的行,允许SSLH在所有可用接口上监听端口443 (例如。0.0.0.0:443)。
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --openvpn 127.0.0.1:1194 --pidfile /var/run/sslh/sslh.pid"哪里,
保存并关闭文件。
最后,启用并启动sslh服务以更新更改。
sudo systemctl enable sslh
sudo systemctl start sslh更改ip、端口和协议以满足您的需要。
https://serverfault.com/questions/885258
复制相似问题