Hoe te kloppen in uw netwerk, deel 2 Bescherm uw VPN (DD-WRT)
We hebben je laten zien hoe je WOL op afstand kunt triggeren door "Port Knocking" op je router. In dit artikel laten we zien hoe u het kunt gebruiken om een VPN-service te beveiligen.
Afbeelding door Aviad Raviv & bfick.
Voorwoord
Als je de ingebouwde functionaliteit van DD-WRT hebt gebruikt voor VPN of als je een andere VPN-server in je netwerk hebt, zou je het kunnen waarderen om het te beschermen tegen brute force-aanvallen door het te verbergen achter een klopsequentie. Door dit te doen, filtert u de scriptkiddies die proberen toegang te krijgen tot uw netwerk. Met dat gezegd, zoals vermeld in het vorige artikel, is 'poort kloppen' geen vervanging voor een goed wachtwoord en / of beveiligingsbeleid. Onthoud dat een aanvaller met genoeg geduld de reeks kan ontdekken en een replay-aanval kan uitvoeren.
Houd er ook rekening mee dat het nadeel van het implementeren hiervan is dat wanneer een of meerdere VPN-clients verbinding willen maken, ze de knock-upsequentie moeten activeren vooraf en dat als ze de volgorde om welke reden dan ook niet kunnen voltooien, ze helemaal niet in staat zullen zijn om VPN te gebruiken.
Overzicht
Om * de VPN-service te beschermen, schakelen we eerst alle mogelijke communicatie met het uit door de instantiating-poort van 1723 te blokkeren. Om dit doel te bereiken, zullen we iptables gebruiken. Dit is omdat, zo wordt de communicatie gefilterd op de meeste moderne Linux / GNU-distributies in het algemeen en op DD-WRT in het bijzonder. Als je meer informatie wilt over iptables check je zijn wiki-vermelding en bekijk je ons vorige artikel over het onderwerp. Als de service eenmaal is beveiligd, maken we een klopsequentie die de VPN-instantiant-poort tijdelijk opent en deze ook automatisch sluit na een geconfigureerde hoeveelheid tijd, terwijl de reeds bestaande VPN-sessie verbonden blijft.
Opmerking: in deze handleiding gebruiken we de PPTP VPN-service als een voorbeeld. Met dat gezegd, dezelfde methode kan worden gebruikt voor andere VPN-typen, u hoeft alleen de geblokkeerde poort en / of het communicatietype te wijzigen.
Vereisten, veronderstellingen en aanbevelingen
- Er wordt aangenomen / vereist dat u een Opkg-enabled DD-WRT-router hebt.
- Er wordt aangenomen / vereist dat u de stappen in de handleiding "Hoe te kloppen in uw netwerk (DD-WRT)" al hebt uitgevoerd.
- Er wordt uitgegaan van netwerkkennis.
Laten we kraken.
Standaard "Blokkeer nieuwe VPN's" -regel op DD-WRT
Hoewel het onderstaande codefragment waarschijnlijk zou werken op elke, zichzelf respecterende, iptables met behulp van, Linux / GNU distributie, omdat er zoveel varianten zijn, zullen we alleen laten zien hoe het te gebruiken op DD-WRT. Niets houdt u tegen om het rechtstreeks in de VPN-box te implementeren. Echter, hoe dit te doen, valt buiten het bestek van deze gids.
Omdat we de firewall van de router willen vergroten, is het niet meer dan logisch dat we het script 'Firewall' toevoegen. Als u dit doet, wordt het iptables-commando elke keer uitgevoerd als de firewall wordt vernieuwd en zo onze vergroting op zijn plaats houdt.
Uit de Web-GUI van DD-WRT:
- Ga naar "Administratie" -> "Opdrachten".
- Voer de onderstaande "code" in het tekstvak in:
inline = "$ (iptables -L INPUT -n | grep -n" staat GERELATEERD, GEVESTIGD "| awk -F: 'print $ 1')"; inline $ = (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP
- Klik op "Firewall opslaan".
- Gedaan.
Wat is dit "Voodoo" -commando?
De bovenstaande opdracht "voodoo magic" doet het volgende:
- Vindt waar de iptable-lijn is die reeds bestaande communicatie doorlaat. We doen dit, omdat A. Op DD-WRT routers, als de VPN-service is ingeschakeld, deze zich net onder deze regel en B bevindt. Het is van essentieel belang voor ons doel om al bestaande VPN-sessies verder te laten leven nadat de kloppende gebeurtenis.
- Trekt twee (2) af van de uitvoer van de listingopdracht om rekening te houden met de offset veroorzaakt door de informatieve kolomkoppen. Zodra dat is gebeurd, voegt u een (1) toe aan het bovenstaande nummer, zodat de regel die we invoegen net na de regel komt die reeds ingestelde communicatie toestaat. Ik heb hier dit heel eenvoudige 'wiskundeprobleem' achtergelaten, gewoon om de logica te maken van 'waarom iemand de regels van de regel moet vervangen in plaats van er één toe te voegen'.
KnockD-configuratie
We moeten een nieuwe triggeringreeks maken waarmee nieuwe VPN-verbindingen kunnen worden gemaakt. Hiertoe bewerkt u het bestand knockd.conf door in een terminal op te geven:
vi /opt/etc/knockd.conf
Voeg toe aan de bestaande configuratie:
[Enable-VPN]
volgorde = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -p tcp --dport 1723 -j ACCEPT
Deze configuratie zal:
- Stel het kansvenster in om de reeks te voltooien, tot 60 seconden. (Het wordt aanbevolen om dit zo kort mogelijk te houden)
- Luister naar een reeks van drie kloppen op poorten 2, 1 en 2010 (deze volgorde is bedoeld om ports-scanners van het spoor te halen).
- Nadat de reeks is gedetecteerd, voert u de "start_opdracht" uit. Dit "iptables" commando plaatst een "accepteer verkeer bestemd voor poort 1723 van waar de kloppen vandaan kwamen" bovenop de firewall regels. (De% IP% -richtlijn wordt speciaal behandeld door KnockD en wordt vervangen door de IP van de oorsprong van de klop).
- Wacht 20 seconden voordat het "stop_command" wordt uitgegeven.
- Voer de "stop_opdracht" uit. Waar dit "iptables" commando het omgekeerde van het bovenstaande doet en de regel verwijdert die communicatie mogelijk maakt.
Schrijvertips
Terwijl u helemaal klaar zou moeten zijn, zijn er een aantal punten die ik nodig heb genoemd.
- Probleemoplossen. Houd er rekening mee dat als u problemen ondervindt, het segment 'probleemoplossing' aan het einde van het eerste artikel uw eerste stop moet zijn.
- Als je wilt, kun je de "start / stop" -richtlijnen meerdere opdrachten laten uitvoeren door ze te scheiden met een semi-colen (;) of zelfs een script. Als je dit doet, kun je een aantal handige dingen doen. Ik heb bijvoorbeeld een e-mail gestuurd waarin staat dat er een reeks is geactiveerd en waar vandaan.
- Vergeet niet dat "Daar is een app voor" en hoewel het niet in dit artikel wordt genoemd, wordt u aangemoedigd om het Android-kloppersysteem van StavFX te gebruiken.
- Vergeet, ten aanzien van Android, niet dat er een PPTP VPN-client is die gewoonlijk door de fabrikant in het besturingssysteem is ingebouwd.
- De methode om iets in eerste instantie te blokkeren en vervolgens door te gaan met het toestaan van reeds bestaande communicatie, kan worden gebruikt op praktisch elke op TCP gebaseerde communicatie. In feite heb ik in de Knockd op DD-WRT 1 ~ 6 films heel lang geleden gedaan, ik heb het remote desktop-protocol (RDP) gebruikt dat poort 3389 als voorbeeld gebruikt.
Wie verstoort mijn sluimer?