Port banke: Forbedre Security Bruke knockd og /eller Iptables Fra Basics

Før du flytter inn i artikkelen, la meg fortelle deg hvordan denne artikkelen er skrevet. Denne artikkelen starter med introduksjon til knockd, og fortsetter med gjennomføringen av porten banke ved hjelp iptables. Legg merke til at den samme porten banker kan oppnås ved hjelp knockd, også, som vil bli diskutert i kommende artikkel.
- Intro til knockd- iptables Anmeldelser - muligheter og begrensninger - Gjennomføring av knock scenarier bruker iptables
- To tilnærminger i å sette opp brannmur
1) avvise alle og akseptere unntak
2) Akseptere alle og avvise unntak Z - Forståelse av iptables- traversering av regler-FILTER tabell Verste tenkelige scenarier mens du setter opp firewall- kommandoer for å sette opp grunnleggende brannmur og banke scenario på toppen av it Explanation- Den spennende delen (testing knock)

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.

Fortsett videre selv om du ikke får det, siden knockd vil bli diskutert enklere, og i detalj i den kommende innlegg på dette, mens her har vi tenkt å oppnå det samme ved hjelp iptables alene.

Det er i utgangspunktet like, hver forespørsel ville banke på døren 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.

Iptables

Grunnen til at jeg begynner med iptables er fordi det bør være en eksisterende brannmur på maskinen din, slik at du skal teste en vellykket gjennomføring av knockd. Eller uansett, skal du gjennomføre port banke bare bruker iptables alene, så vel. Selv store bedrifter bruker sanntids brannmurer (maskinvare), iptables fortsatt spille en avgjørende rolle i å forbedre sikkerheten.

muligheter og begrensninger

Evner inkluderer oppgaver som Port forwarding , port blokkering, adresse blokkering, begrenser /begrense trafikk til en bestemt port, NAT osv ..

Begrensninger er at det bare kan håndtere angrep utenfra. I tilfelle, hvis noen på innsiden av selskapet forsøker å gjøre noe, som ikke kan forebygges. Alo, kan virusangrep ikke stoppes, med mindre det er et kjent virus.

Implementering av knock scenarier bruker iptables

Først la oss starte med å sette opp en grunnleggende brannmur og deretter knock

Iptables kommer sammen med linux installasjonspakken, ellers kan være yum installert. I tilfelle når du ønsker å bruke iptables for noen bestemt oppgave, er det noen oppdateringer som må installeres til kjernen, som også vil bli installert som standard, i de fleste tilfellene.

Det er to tilnærminger i sette opp brannmur

1) Avvise alt og akseptere unntak

2) Akseptere alle og avvise unntak

1 er å foretrekke for den åpenbare grunnen til at det er bedre å stenge hele dører og åpne vinduer hensiktsmessig :)

Det er ulike terminologier som brukes i Iptables:

1) BORD

2) KJEDER

3) ACTION

Nedenfor er de tre typer tabeller og kjeder forbundet med det.

Filter

. INPUT

. UTGANGS

. FORWARD

Nat

. PREROUTING

. UTGANGS

. POSTROUTING

Mangle

. PREROUTING

. UTGANGS

ACTION er den som bestemmer hva du skal gjøre med en pakke. Various ACTION inkluderer Z - ACCEPT - Å la en pakke gjennom firewall- Avvis - Avviser en pakke med error- DROP - Pakken er rett og slett droppet, ingen feilmelding sent- LOG - Logger tilfelle

NAT er nødvendig i tilfelle, når du har delt en enkelt ip blant flere verter og Mangle, i tilfelle når du ønsker å endre noen av feltene som TOS (Type tjeneste) i IP Packet.

traversering av regler :


Her vil vi diskutere FILTER del alene. Som navnet antyder, er det til å filtrere alle innkommende pakker til din maskin. Det vil matche pakken mot definerte regelen og utføre handlinger definert
nå, kommer tilbake til hvordan man setter opp en brannmur, vi kunne enten

-. Avvis alt og akseptere unntak

- Godta alt og avviser unntak

Ved å diskutere en, vil du ha en forståelse av begge. Derfor skal vi diskutere den første.
Avvis alt og jeg aksepterer unntak
Forstå logikken bak ideen er veldig base som ville hjelpe i forståelse videre.
Utgangspunktet vi er kommer til å definere en regel som sier "Avvis alle /alt"
Og på toppen av det, er vi goind til staten "Avvis alle /alt, bortsett fra hvis -" og dermed gjør et vindu der unntakene kan skrive Anmeldelser Advarsel: Du må være svært forsiktig hvis du setter opp iptables i en ekstern maskin. Uriktig sekvens av kommandoer kan ende ur terminal session, og dermed kan du ikke lenger har tilgang til maskinen eksternt.
Igjen, kan du sette opp brannmuren ved å kjøre iptables kommandoen i terminal med corressponding bord /filter /action eller du skal redigere /etc /. sysconfig /iptables og disse kommandoene i filen og starte tjenesten
Nå skal vi starte setup (enkel og banket scenario)
# iptables -Jeg INPUT -p tcp -m state --state relatert, ETABLERT - j GODTA-I - Sette regelen som første linje i brannmuroppsettet
-p - protokoll
-m --match mot statene relatert, ETABLERT, i dette tilfellet
-j - jump til handling, som er accpet her.
Denne regelen sier å tillate for tiden pågående sesjon gjennom brannmuren. Twitter /* Det er viktig slik at hvis du har currrently tatt eksterne økten på denne datamaskinen ved hjelp av SSH, vil det være bevart og ikke bli avsluttet ved nærmere regler der du kan definere blokkere ssh eller alle slike tjenester
Merk at her er vi ikke nevner navnet på bordet siden FILTER er standard tabellen, i tilfelle hvis du bruker en annen tabell som nat må du nevne det ved hjelp -t nat alternativ sammen med iptables kommandoen * /
# 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) * /

Definere knock scenario
# iptables -A INPUT -p tcp -m tcp --dport 1000 -m siste --set --name BANKE -rsource-A - legger regelen til sist av eksisterende brannmur
/* Dette sjekker for TCP-pakker til destinasjon port tusen av maskinen, og hvis den oppdager en pakke, setter det en fersk navn kalt ' BANKE 'to siste bordet. -rsource Betyr det holder styr på Remote Source, hvorfra TCP pakken kom. * /
# iptables -A INPUT -p tcp -m tcp --dport 22 -m siste --rcheck --seconds 15 --name BANKE --rsource j GODTA /* Vær oppmerksom på at denne regelen er lagt, så at det kommer i orden. dvs.) etter det sjekker for port 1 000 i forrige regelen. Dette sjekker siste tabellen for knocking "med -rcheck alternativ, og ser også etter 5 sekunder timeout i posten, noe som betyr at SSH forespørsel må startes innen 5 sekunder etter banket port 1000, ellers ssh port vil bli stengt igjen for maskin som banket port nummer 1000 * /
# iptables -A INPUT j avvise /* Vær oppmerksom på at denne regelen er lagt til den siste linjen. Her er fangsten, beviser det vi sa innledningsvis, avviser alt og på toppen av hvilke andre akseptere reglene er der.
I tilfellet hvis du bruker -Jeg i stedet for -A i kommandoen ovenfor, så hele oppsettet er bortskjemt , siden dette AVVIST vil være den første linjen, der alt blir avvist, og ingen får passere gjennom det til neste regelen. I slike tilfeller skal du slette den aktuelle regelen linje alene ved kommandoen.
# Iptables -D INPUT 1 /* sletter den første linjen i INPUT kjeden * /# tjenesteleverandører iptables spare /* for å spare iptables * /# tjenesteleverandører iptables Start /* å starte brannmur * /# chkconfig iptables på /* for å sørge for at iptables er startet på ytterligere reboots * /Dette er hvordan min /etc /sysconfig /iptables fil utseende etter å ha utført over trinn
# generert av iptables-save v1.4.7 på Man 2 september 18:22:24 2 013 * filter: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0: 0]: OUTPUT ACCEPT [31: 2964] -A INPUT -p tcp -m state - tilstand relatert, ETABLERT -j ACCEPT-A INPUT -P ICMP-j GODTA-A INPUT -p tcp -m tcp --dport 1000 -m siste --set --name BANKE --rsource-A INPUT -p tcp -m tcp --dport 22 -m siste --rcheck --seconds 15 --name BANKE --rsource -J GODTA-A INPUT j AVVIST --reject-med ICMP-port-unreachableCOMMIT # Fullført Man 2 september 18:22 : 24 2013 ~ Som nevnt tidligere, i stedet for ovennevnte kommandoer, skal du straks redigere denne filen i henhold til og starte iptables
Du skal liste opp de eksisterende reglene etter:.
# iptables -land slette alle regler ved,
# iptables -F /* Merk at du trenger å kjøre #service iptables spare
å slette den permanent. Når du kjører iptables lagre, blir endringene skrives til /etc /sysconfig /iptables fil * /
Nå er vår brannmur klar som er konfigurert til Z - Tillat ping forespørsler-Tillat pågå nåværende sessions- Tillat ssh etter 5 sekunder av port tusen hit (knock scenario) - Avvis alt annet
spennende delen: (Testing banke)
La oss teste det
Fra en annen maskin, kjør:
# ssh 192.168.. 42,132 /* der 192.168.42.132 er maskinen der du har konfigurert thefirewall og banke som i fremgangsmåten ovenfor * /
Dette vil bla gjennom definerte regler
Det oppfyller ikke noen av Accept regler. Derfor vil det traversere til bunnen, hvor det vil bli avvist av
basen regelen dvs.) -A INPUT -J AVVIST
Nå kjører:
# telnet 192.168.42.132 1000; ssh 192.168.42.132/* Denne kommandoen treffer tusen porten på serveren ved hjelp av telnet og deretter ssh-es umiddelbart * /
Dette samsvarer med regelen
-A INPUT -p tcp -m tcp --dport tusen - m nyere --set --name BANKE --rsource-A INPUT -p tcp -m tcp --dport 22 -m siste --rcheck --seconds 15 --name BANKE --rsource -J GODTA

Og dermed du ville har gått gjennom brannmuren, vellykket å ta den eksterne økten, som en sjef.
Dette er den. Port 22 blir åpnet i 5 sekunder etter banket port 1000, det også, bare for maskinen som banket på. Hvis noen prøver å ssh uten å banke på, så døren vil ikke bli åpnet i det hele tatt, slik at det blir avvist :)
Du vil kanskje sjekke ut min nye artikkel Knockd -. Detaljert og Enklere
Takk for lesing. Cheers!