assumindo que você é paranóico mesmo [cenário de exagero]:
- coloque um proxy reverso [por exemplo, usando apache2] em uma sub-rede com firewall, torne-o acessível somente via https, somente do endereço IP selecionado de usuários externos que precisam acessá-lo [isso protege você contra ataques cegos a possíveis vulnerabilidades no apache / svn / trac]. encaminhar sobre ele apenas solicita para URLs válidos [por exemplo, / svn e / trac] para o servidor real localizado em sub-rede separada. Certifique-se de que esse proxy possa alcançar apenas o servidor real, somente na porta 80 / tcp. nada mais.
- coloque seu servidor svn / trac real em uma sub-rede separada, com acesso controlado: permita conexões HTTP de entrada dentro de sua empresa e do proxy. não permitir conexões de saída.
se limitar o acesso a # 1 para listar explicitamente intervalos de ip não é uma opção - considere alguma forma de gatekeeper - novamente - para evitar ataques cegos.
no nível do proxy - considere usar:
- modsecurity para evitar, por exemplo, ataques sql injection / xss no trac,
- fail2ban para tornar os ataques de dicionário no mecanismo de autenticação do svn / trac um pouco mais difíceis.