Executando o servidor VPN e as portas conflitantes do Apache

1

Atualmente, minha configuração é com o XAMPP e um servidor VPN simples fornecido por conexões de rede do Windows.

SeeuexcluiroIncomingConnections,inicieoapachee,emseguida,refaçaoservidorVPNdaseguinteforma:

Funciona bem (tanto na VPN como no apache).

Eu já sei que posso mudar o Apache para rodar em portas diferentes, mas não quero fazer isso. Existe alguma maneira eu posso parar o sistema de usar a porta 443?

Então talvez não seja do meu interesse mudar a porta do servidor VPN.

Eu quero executar o meu apache e VPN ao mesmo tempo, alguma recomendação?

    
por David Chen 01.06.2013 / 20:21

3 respostas

4

O problema é que o Windows 7 tenta aceitar conexões VPN de entrada usando todo o protocolo que ele poderia suportar, e isso inclui SSTP (Secure Socket Tunneling Protocolo) . O SSTP é basicamente encapsulado em PPP por SSL e, por padrão, usa a mesma porta 443 como as conexões HTTPS usuais. Tal uso da porta 443 permite que o SSTP passe por muitos proxies HTTP que permitem a conexão com servidores HTTPS. Infelizmente, isso também significa que ele entrará em conflito com a execução de um servidor HTTPS na mesma máquina do servidor VPN SSTP - a menos que o servidor HTTPS seja o Microsoft IIS, que usa o mesmo driver kernel http.sys do servidor SSTP para processar HTTP e HTTPS solicitações.

Observe que as conexões SSTP de entrada provavelmente falharão, porque sua máquina provavelmente não possui um certificado de servidor apropriado para aceitá-las. Você provavelmente veria eventos de aviso RasSstp / 18 no log de eventos do sistema informando sobre esses problemas. No entanto, isso não impede que o sistema ocupe a porta 443, mesmo que as conexões do cliente SSTP realmente falhem.

Existem alguns artigos úteis sobre o SSTP no Blog de roteamento e acesso remoto . No entanto, não consegui encontrar um método para desabilitar o uso do SSTP apenas para o servidor VPN. É possível desativar o dispositivo “WAN Miniport (SSTP)” no Gerenciador de dispositivos (depois de habilitar a opção “Mostrar dispositivos ocultos”), no entanto, isso também pode afetar as conexões VPN de saída da mesma máquina.

Mas há um artigo sobre a configuração do servidor SSTP e também KB947054 , que descrevem uma maneira de alterar a porta usada pelo Servidor SSTP para aceitar conexões de entrada. Usando um editor de registro, localize a seguinte subchave:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Sstpsvc\Parameters

Em seguida, defina o valor ListenerPort DWORD para o número da porta que deve ser usado para conexões SSTP de entrada. Certifique-se de especificá-lo como um valor decimal (por padrão, o botão de opção "Hex" é selecionado). Selecione uma porta que não entrará em conflito com outras portas usadas pelo sistema ou seus aplicativos.

Para aplicar a nova configuração, reinicie o serviço "Roteamento e acesso remoto". Verifique a saída do comando netstat -aon para confirmar que a porta recém-especificada está em uso e a porta 443 não é mais usada.

    
por 01.06.2013 / 22:42
2

Esta é uma pergunta antiga, mas quero adicionar outras opções.

A vantagem de ambos é que você ainda pode continuar usando o SSTP na porta 443. Isto é especialmente útil porque esta porta está aberta na maioria dos firewalls da empresa, hotel, hotspot, ..., permitindo que você configure uma conexão VPN onde o PPTP / IPSec / ... falharia.

Use o IIS em vez do Apache

Você pode executar praticamente qualquer coisa (como o PHP) no IIS que também seja executado no Apache.

Você pode usar o Microsoft Web Platform Installer para configurar isso para você: link De lá você pode instalar todos os tipos de frameworks.

Se você quer especificamente PHP (isto apenas lança o Web Platform Installer com PHP pré-selecionado): link

Isso também será muito mais rápido no Windows do que no Apache.

Apache liderado pelo IIS como proxy reverso

Deixe o IIS ouvir na porta 443 (descarregamento de SSL) e encaminhe para o Apache (na porta 80 ou outra coisa).

Procure "proxy reverso do IIS" no Google. Suas opções são reescrita de URL ou ARR (Request Request Routing).

Alguns aplicativos da Web podem ter que ser especificamente configurados para trabalhar por trás de um proxy reverso, porque a URL recebida será modificada pelo proxy.

    
por 15.01.2015 / 15:06
0

Eu criei um arquivo VBS para alterar rapidamente a porta do SSTP.

If WScript.Arguments.length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """" & " RunAsAdministrator",, "runas", 1
    WScript.Quit
End If

Set objRegistry = GetObject("winmgmts:\.\root\default:StdRegProv")

strValue = InputBox("Desired new port for SSTP:")
objRegistry.SetDWORDValue &H80000002, "SYSTEM\CurrentControlSet\services\SstpSvc\Parameters", "ListenerPort", strValue
MsgBox "SSTP ListenerPort has been changed to " & strValue & "."

Copie e cole isso em um novo documento de texto e altere a extensão para .vbs .

Você também pode baixar este script aqui .

Após a porta ter sido alterada, você precisará ir ao prompt de comando como um administrador (crie um atalho cmd.exe e execute como administrador). Em seguida, insira estes dois comandos:

net stop "routing and remote access"
net start "routing and remote access"
    
por 02.06.2013 / 00:12