Kuva: Aviad Raviv & bfick.
Esipuhe
Jos olet käyttänyt DD-WRT: n sisäänrakennettua toimintoa VPN: lle tai sinulla on toinen VPN-palvelin verkostossasi, saatat arvostaa kykyä suojata se hyökkäyksiltä piilottamalla se koputusjärjestyksen taakse. Näin voit suodattaa komentosarjakuvat, jotka yrittävät päästä verkkoon. Kuten sanottu edellisessä artikkelissa, sataman koputus ei ole korvaus hyvästä salasanasta ja / tai turvallisuuspolitiikasta. Muista, että riittävän kärsivällisyydellä hyökkääjä voi löytää sekvenssin ja suorittaa uusintahyökkäyksen. Muista myös, että tämän toteutuksen haittapuoli on se, että mikäli jokin VPN-asiakas haluaa muodostaa yhteyden, heidän olisi käynnistettävä koputusjaksoetukäteen ja että jos he eivät pysty täydentämään järjestystä mistä tahansa syystä, he eivät pysty lainkaan VPN: hen.
Yleiskatsaus
VPN-palvelun * suojaamiseksi suljemme ensin kaiken mahdollisen viestinnän sen kanssa estämällä 1723 mallinnusportin. Tämän tavoitteen saavuttamiseksi käytämme iptablesia. Tämä johtuu siitä, että viestintä suodatetaan nykyaikaisimmilla Linux / GNU-jakeluilla yleensä ja erityisesti DD-WRT: ssä. Jos haluat lisätietoa iptables-kassasta sen wiki-merkinnästä, tutustu edelliseen artikkeliimme aiheesta. Kun palvelu on suojattu, luodaan koputusjakso, joka avaa väliaikaisesti VPN-instantiointisovelluksen ja sulkee sen automaattisesti määrätyn ajan jälkeen samalla, kun ylläpidetty VPN-istunto on kytketty.
Huomautus: Tässä oppaassa käytetään PPTP VPN-palvelua esimerkkinä. Tällöin samaa menetelmää voidaan käyttää muissa VPN-tyypeissä, sinun on vain muutettava estettyä porttia ja / tai viestintyyppiä.
Edellytykset, olettamukset ja suositukset
- Oletetaan / vaaditaan, että sinulla on Opkg-käytössä DD-WRT -reititin.
- Oletetaan / vaaditaan, että olet jo suorittanut ohjeet "Kuinka kopioida verkkoon (DD-WRT)" -oppaaseen.
- Joitakin verkko-osaamista oletetaan.
Halkeilee.
oletusarvo "Estää uusien VPN-sääntöjen" sääntö DD-WRT: llä
Vaikka alla oleva koodinpätkä todennäköisesti toimii jokaisella, itsevaltaisella, iptables-ohjelmalla käyttäen Linux / GNU-jakelua, koska siellä on niin paljon muunnelmia, näytämme vain, miten sitä käytetään DD-WRT: ssä. Mikään ei estä sinua, jos haluat, suorittavan sen suoraan VPN-ruutuun. Kuitenkin, miten se tehdään, se ei kuulu tämän oppaan soveltamisalaan.
Koska haluamme lisätä reitittimen palomuurin, on vain loogista, että lisäämme "palomuuri" -komentosarjaan. Jos näin tehdään, iptables-komento suoritetaan joka kerta, kun palomuuri päivitetään ja näin pidämme täydennyksemme paikallaan.
DD-WRT: n web-käyttöliittymästä:
-
Siirry kohtaan "Hallinta" -> "Komennot".
-
Kirjoita alla oleva "koodi" tekstikenttään:
inline='$( iptables -L INPUT -n | grep -n 'state RELATED,ESTABLISHED' | awk -F: {'print $1'} )'; inline=$(($inline-2+1)); iptables -I INPUT '$inline' -p tcp --dport 1723 -j DROP
- Napsauta "Tallenna palomuuri".
- Tehty.
Mikä tämä "Voodoo" -komento on?
Yllä oleva "voodoo magic" -komento tekee seuraavaa:
- Määrittää missä on iptable-linja, joka mahdollistaa jo olemassa olevan tiedonsiirron. Teemme tämän, koska A. DD-WRT-reitittimissä, jos VPN-palvelu on käytössä, se sijaitsee juuri tämän rivin ja B alapuolella. On oleellista, että tavoitteenamme on jatkaa jo olemassa olevien VPN-istuntojen jatkamista koputus tapahtuma.
- Poistaa kaksi (2) listauskäskyn tulosta vastaamaan informaation sarakkeen otsikoista johtuvaa siirtymää. Kun tämä on tehty, lisää yhteen (1) edellä mainittuun numeroon, joten sääntö, jonka lisäämme, tulee juuri sen säännön jälkeen, joka sallii jo olemassa olevan viestinnän. Olen jättänyt tämän hyvin yksinkertaisen "matemaattisen ongelman" tänne, vain tekemään logiikan "miksi joudutaan pienentämään sitä säännön sijaan sen sijaan, että lisäät sen siihen".
KnockD-kokoonpano
Meidän on luotava uusi käynnistysjakso, joka mahdollistaa uusien VPN-yhteyksien luomisen. Voit tehdä tämän muokkaamalla knockd.conf-tiedostoa julkaisemalla päätelaitteessa:
vi /opt/etc/knockd.conf
Liitä olemassa olevaan kokoonpanoon:
[enable-VPN] sequence = 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
Tämä kokoonpano:
- Aseta ikkunan tilaisuus täydentää sekvenssi, 60 sekuntia. (On suositeltavaa pitää tämä mahdollisimman lyhytinä)
- Kuuntele kolmen kolkutuksen sarjasta portteilla 2, 1 ja 2010 (tämä tilaus on tarkoituksenmukaista heittää sataman skannerit pois radalta).
- Kun sekvenssi on havaittu, suorita "start_command". Tämä "iptables" -komento sijoittaa palomuurisääntöjen yläpuolelle "hyväksyä liikenteen, joka on tarkoitettu satamaan 1723, josta koputus tuli". (% IP% -direktiiviä kohdellaan erityisesti KnockD: llä ja se korvataan kopioinnin alkuperäisellä IP-osoitteella).
- Odota 20 sekuntia ennen kuin "stop_command" annetaan.
- Suorita "stop_command". Jos tämä "iptables" -komento palauttaa yllä olevan kohdan ja poistaa säännön, joka mahdollistaa viestinnän.
VPN-palvelu tulisi nyt yhdistää vasta onnistuneen "koputtumisen" jälkeen.
kirjailija Vinkkejä
Vaikka sinun pitäisi olla kaikki asetettu, on pari pistettä, jotka tunnen tarpeen mainita.
- Ongelmien karttoittaminen. Muista, että jos sinulla on ongelmia, ensimmäisen artikkelin lopussa oleva "vianmääritys" -segmentti olisi ensimmäinen pysäytys.
- Jos haluat, voit "käynnistää / pysäyttää" -direktiivit suorittaa useita komentoja erottamalla ne semi-colen (;) tai jopa käsikirjoituksella. Näin voit tehdä hienoja juttuja. Esimerkiksi olen knockd lähetä minulle * Sähköposti kertoo minulle, että sekvenssi on laukaistu ja mistä.
- Älä unohda, että "There's a app for that" ja vaikka sitä ei mainita tässä artikkelissa, sinun kannattaa tarttua StavFX: n Android knocker-ohjelmaan.
- Android-aiheissa, älä unohda, että PPTP VPN -asiakas on tavallisesti valmistajan käyttöjärjestelmä.
- Menetelmää, joka estää jotain aluksi ja jatkaa jo sallittua viestintää, voidaan käyttää käytännössä millä tahansa TCP-pohjaisella viestinnällä. Itse asiassa Knockd on DD-WRT 1 ~ 6 elokuvia, olen tehnyt paluumatkalla, kun olen käyttänyt etäpöytäprotokolla (RDP), joka käyttää porttia 3389 esimerkkinä.
Huomaa: Jotta voit tehdä tämän, sinun on saatava sähköpostiominaisuus reitittimellesi, joka tällä hetkellä ei todellisuudessa ole sellainen, joka toimii, koska OpenWRT: n opkg-pakettien SVN-tilannekuva on epäonnistunut. Siksi ehdotan knockdin käyttämistä suoraan VPN-ruutuun, jonka avulla voit käyttää kaikkia Linux / GNU: n käytettävissä olevia sähköpostin lähetysvaihtoehtoja, kuten SSMTP ja sendEmail.
Kuka häiritsee minun väsymystä?