Knockd - Detaljert Og Simpler

As jeg kunne se det er mange artikler om knockd og det er gjennomføringen. Så, hva er mine anstrengelser for å gjøre dette unike? Jeg gjorde det enkelt, men detaljorienterte og har kommentert kontroverser og kritikk som finnes.
Her er en oversikt over hva jeg har diskutert.
Hva er port banke?
< b> Hva er knockd
- Hvordan fungerer det
- Installasjon
- Det vi prøver å oppnå Anmeldelser
- Forutsetning før gjennomføring av knockd:
- Gjennomføring scenario
- Testing
- Kommentarer til kontroverser og kritikk
Ansvarsfraskrivelse
Så, here we go
Hva er port banke
Wikipedia Definisjon:.?
Port banke er en metode for eksternt å åpne porter i brannmuren ved å generere et tilkoblingsforsøk på et sett av forhåndsdefinerte lukkede porter (i dette tilfellet, Telnet). Når en riktig sekvens av tilkoblingsforsøk er mottatt, er brannmurregler dynamisk endret for å tillate verten som sendte den forbindelse forsøker å koble over spesifikk port (s) Twitter /* i denne artikkelen synspunkt, er det ssh port 22 * /
Det er i utgangspunktet like, hver forespørsel vil banke på døren (brannmur) for å komme gjennom den. Knocking er nødvendig for å komme forbi døren. Du skal enten gjennomføre det ved hjelp knockd og iptables eller bare iptables alene
Å vite hvordan man skal implementere port banke bruker iptables, se vår forrige artikkel. "Port banke: Forbedre Security Bruke knockd og /eller Iptables Fra Basics"
nå ., ved hjelp knockd
Hva er knockd
Knockd - Fra zeroflux.org:?
knockd er en port-knock server. Det lytter til all trafikk i et Ethernet-grensesnitt, på jakt etter spesielle "banke" sekvenser av port-treff. En klient som gjør disse port-treff ved å sende en TCP (eller UDP) pakke til en port på serveren. Denne porten trenger ikke være åpen - siden knockd lytter på link-lags nivå, ser det all trafikk, selv om det er bestemt for en lukket port. Når serveren oppdager en bestemt sekvens av port-hits, kjører det en kommando som er definert i konfigurasjonsfilen. Dette kan brukes til å åpne opp hull i en brannmur for rask tilgang.
Hvordan fungerer det?
En. Knockd daemon installert /kjører i server.2. Konfigurere noen port sekvenser (TCP, UDP eller begge), og de riktige handlinger for hver sequence.3. gang knockd ser en definert port sekvens, vil den kjøre konfigurert handling for at sekvensen
Merk:
Det er helt stealth og det vil ikke åpne noen porter på serveren, som standard <. br> Når en port knock blir brukt til å åpne en port, brannmurreglene er generelt bare åpnet for ip-adresse som oppgitt korrekt knock Installasjon
Merk:.
Don ' t kopier /lim inn kommandoene. . Skriv det manuelt for å unngå feil som kan oppstå på grunn av formatet

 # yum install libpcap *  /* avhengighet - * til slutt installerer libpcap-devel som er en forutsetning, samt * /
Det er flere måter å installere, mens jeg har fulgt rpm installasjon.
Last egnet rpm pakken fra
http://pkgs.repoforge.org/knock/
Deretter kjører, etter
 # rpm ivh knock-0.5-3.el6.rf.x86_64.rpm  /* Her har jeg lastet ned banke 0,5-3 for 64-bits CentOS og dermed rpm navn * /
Nå, hva alle fikk installert
Knockd -? knock server daemon
Knock -. knock-klient, som hjelpemidler i å banke
Merk at dette (knock ) er standard klient kommer sammen med knockd, mens det er andre avanserte klienter som hping, sendip & . packit
Det vi prøver å oppnå.
, En måte å stoppe angrepene helt, men likevel tillate ssh tilgang fra hvor som helst, når det trengs
Forutsetning før implementering . av knockd:
Som nevnt tidligere, er en eksisterende brannmur (iptables) en forutsetning
Følg fremgangsmåten nedenfor for å konfigurere brannmuren
 # iptables -Jeg INPUT -p tcp - m tilstand --state relatert, ETABLERT -j ACCEPT-I - Sette regelen som første linje i brannmuroppsettet 
-p - protokoll
-m --match mot statene RELATERT, etablert, i dette case
-J -. hoppe til handling, som er accpet her
/* Denne regelen sier å tillate for tiden pågående sesjon gjennom brannmuren. Det er viktig slik at hvis du har currrently tatt eksterne økten på denne datamaskinen ved hjelp av SSH, vil det bli bevart og ikke bli avsluttet ved nærmere regler der du kanskje vil blokkere ssh eller alle tjenester * /
 # iptables -Jeg INPUT -P ICMP-j GODTA  /* Dette er å få maskinen til ping-stand fra hvilken som helst maskin, slik at du kan sjekke tilgjengeligheten av maskinen din (enten det er opp eller ned) * /

 # iptables -A INPUT j AVVIST  /* Avvise alt annet - Tillegg av det som siste linje, siden, hvis innsatt som første linje alle andre regler vil ikke bli vurdert og hver forespørsel vil bli avvist * /
Gjennomføring scenario: største nettstedene Nå, prøv å ssh til maskinen der du har implementert brannmur. La oss kalle den maskinen som server
Du kan ikke ssh til serveren siden brannmur oppsettet i serveren avviser alt unntatt pågå session og ping forespørsler
Nå knockd gjennomføring:..
Nå, i server, at du har installert knockd Kjør følgende kommandoer
 # vi /etc/knockd.conf  
/* Som et resultat av rpm installasjon, vil denne konfigurasjonsfilen eksisterer * /< .no> Rediger filen som nedenfor og lagre /exit
 [alternativer] logfile = /var/log/knockd.log[opencloseSSH]sequence = 2222. udp, 3333 : tcp, 4444: udpseq_timeout = 15start_command = /sbin /iptables -Jeg INPUT -s% IP% -p tcp --dport 22 -j ACCEPTcmd_timeout = 10stop_command = /sbin /iptables -D INPUT -s% IP% -p tcp - -dport 22 -J ACCEPTtcpflags = synFirst linjen i filen definerer hvor feil /advarsler knyttet til knockd blir logget. I tilfelle, hvis du ikke klarer å kunne lansere forbindelse mellom klient og server ved hjelp knockd /banke, så det er der du må sjekke - Server log 
sekvens = 2222. Udp, 3333: tcp, 4444: udp < i> /* sekvensen med å banke * /
seq_timeout = 15 /* når den ovennevnte sekvensen blir slått, er det bare gyldig for neste 15 sekunder * /
start_command = /sbin /iptables -Jeg INPUT -s% IP% -p tcp -dport 22 -j ACCEPT
/* når riktig rekkefølge blir slått, blir kommandoen over henrettet, der% IP% er ip_addr av verten som banker. Derfor gjør dette, ssh tilkobling fra knocker (klient) til serveren. En ting å være oppmerksom på er at ssh tilkobling må etableres innen neste 15 sekunder av knock. Vær også oppmerksom på at jeg har gitt iptables -Jeg, siden jeg vil at denne regelen skal settes inn som første linje, fordi, i tilfelle hvis jeg legge til, vil det ikke ha noen effekt, siden iptables avvise alt regel kommer før dette i listen * /
cmd_timeout = 10 /* den STOP_COMMAND vil bli execued i 10 sekunder fra start_command utførelse. * /
STOP_COMMAND = /sbin /iptables -D INPUT -s% IP% -p tcp -dport 22 -j ACCEPT
/* jeg slette regelen som jeg satt inn for å tillate SSH-tilkobling fra knocker (klient) til serveren. Nå betyr ikke det ender min ssh tilkobling? - Det gjør ikke
Hvordan.?
Den eksisterende regel i mine iptables, #iptables -Jeg INPUT -p tcp -m state -state relatert, ETABLERT -j ACCEPT hjelper meg å beholde den etablerte tilkoblingen. I tilfelle, hvis denne regelen ikke er angitt, så ur ssh forbindelsen vil gå tapt i 10 sekunder (ie) cmd_timeout * /
tcp-flagg = syn /* i TCP 3 veis håndtrykk, sender Client en TCP synkron pakke til Server * /
Vær oppmerksom på at det finnes andre måter å konfigurere din knockd server. For eksempel vil en port sekvens for å åpne ssh, og en annen port sekvens lukke ssh (i motsetning til de ovennevnte en), men i dette tilfellet, etter avslutning av din ssh-økt, må du treffe port sekvensen fra klienten manuelt, for å lukke ssh port for det
Nå som vi har satt vår server for å tillate ssh for kunden når kunden treffer riktig rekkefølge, noe som er 2 222. udp, 3333: tcp, 4444:. udp her
Nå må du begynne å knockd service. Kopier nedenfor script som /etc/rc.d/init.d/knockd i maskinen din
Runlevel script
 # /bin /sh # beskrivelse:..! Start og stopp knockd # Sjekk om det config fil eksisterer [-f /etc/knockd.conf] || exit 0 # Kilde funksjon bibliotek. /etc/rc.d/init.d/functions# Kilde nettverkskonfigurasjon. /etc /sysconfig /network # Sjekk at nettverk er opp ["$ NETTVERK" = "no"] & & exit 0start () {echo "Starter knockd ..." /usr /sbin /knockd &} stop () {echo "Slå knockd ..." kill `pidof /usr /sbin /knockd`} case" $ 1 " instart) starter;; stopp) stoppe;; restart) stopstart;; *) echo "Bruk: $ 0 {start | stop | restart}";; esacexit 0Now, kjører du følgende kommandoer, slik at du skal start /stopp /restart knockd som andre tjenester 
 # chmod 755 /etc/rc.d/init.d/knocd  /* lage manuset kjørbar ved roten * /
# chkconfig --add knockd /* legge knockd å chkconfig listen * /
# chkconfig --level 35 knockd på /* tjenesten vil bli startet som en del av kjørenivå 3 & 5 * /
# tjenesten knockd startwhenever du endre /etc/knockd.conf, må du starte tjenesten
Testing:.
Fra klient, kjører du følgende kommandoer <. br> Legg merke til at det finnes andre måter å banke, mens jeg bruker banke klient som kommer sammen med knockd pakken. Så, må du ha den installert i klienten, samt
Nå, etter
 # knock-v server_IP 2222: udp 3333: tcp 4444: udp, ssh server_IP-v for ordrik 
server_IP. erstattet av serverens ip-adresse.
Vi er banket sekvensen som vi nevnte i serverens /etc/knockd.conf fil
Nå skal du lykkes etablere ssh-økt til serveren. Også porten blir stengt for ytterligere økter. Så, hver gang når du ønsker å etablere ssh tilkobling til serveren, må du banke og deretter ssh
Kommentarer til kontroverser og kritikk:.
Hva om knock sekvensen bestemmes av brute force angrep?
Utdrag fra Wikipedia svar this:
——————————————————————————————————————————–
Consider at hvis en ekstern angriper ikke visste porten knock-sekvensen, selv den enkleste av sekvenser ville kreve en massiv rå makt innsats for å bli oppdaget. En tre-knock enkelt TCP-sekvens (f.eks port 1000, 2000, 3000) ville kreve en angriper uten forutgående kjennskap til fremgangsmåten for å teste alle kombinasjoner av tre porter i området 1-65535, og deretter å skanne hver port i mellom for å se om noe hadde åpnet. Som et tilstands system hadde porten ikke vil åpne før etter at den riktige tre-sifret sekvens er mottatt i rekkefølge, uten andre pakker i between.That tilsvarer maksimalt 655363 pakker for å oppnå og detektere et enkelt vellykket åpning, i worst case scenario. Det er 281.474.976.710.656 eller mer enn 281 billion pakker. I gjennomsnitt, ville et forsøk på å ta ca 9,2 quintillion pakker for å kunne åpne en enkelt, enkel tre-port TCP-bare banke ved brute force. Dette er gjort enda mer upraktisk når knock forsøk begrensende brukes til å stoppe brute force angrep, lengre og mer komplekse sekvenser er used.
——————————————————————————————————————————–
Also, det er andre port banke løsninger, der banker er kryptert, noe som gjør det enda vanskeligere å hacke.
Når vi har enkel, robust og pålitelig løsning som heter VPN-tilgang, hvorfor gå for port banke? Anmeldelser
Port banke pluss VPN-tunneler for ekstra sikkerhet. Hvis du har en annen VPN-server i nettverket, skal du beskytte den mot brute force angrep ved å skjule den bak en knock sekvens
Disclaimer:.
Port banke ikke ment å være komplett løsning, men kan være en ekstra lag med sikkerhet.
også, må det være riktig konfigurert i henhold til behovene., En nettverk som er koblet til Internett er aldri sikker. Det er ingen perfekt lås!
Beste vi kan gjøre er å gjøre systemet så sikkert som mulig for i dag. Possiblytomorrow noen vil finne ut hvordan du får gjennom vår sikkerhetskode., En sikkerhetssystem er bare så sterk som det svakeste leddet.
Men jeg tror "Port knocking" legger sikkerhet til eksisterende oppsett, og ikke gjør systemet sårbart for angrep, så få folk hevder.
Takk for lesing. Cheers!