Gå til innhold

iptables ubuntu linux


Anbefalte innlegg

Hei

 

Jeg strever med iptables kommandoene. Jeg har prøvd mange forskjellige måter å skrive dem på men jeg for det ikke til å funke.

 

Jeg vil at brannmuren skal stenge for all input, output og all forwarding, slik at jeg kan kun slippe igjennom det jeg vil: ssh, http, https, dns, vnc, rdp og icmp.

 

Noen som kunne tenke seg å se på et script?

Lenke til kommentar
Videoannonse
Annonse

Jeg anbefaler Shorewall. Den er veldig fleksibel og mye enklere å bruke enn å sette opp egne tabeller.

 

Takk for svar. Interessant, den skal jeg teste ut.

 

Men jeg prøver å lære meg routing og hvordan dette funker, så det er mest for å skjønne dette at jeg bruker et iptables script.

Lenke til kommentar

Vel, du trenger ikke bruke assemblerkode for å lære deg programmering (ja, det er å trekke det langt).

 

Med Shorewall så setter du først opp grensesnitt (les nettverkskort),

så definerer du soner og knytter sonene mot grensesnitt,

så definerer du grunnregler (policy) for sonene

til slutt lager du unntak (regler) som gjør at trafikk oppfører seg anneledes en policy.

 

Etter at du har installert Shorewall så finner du gode eksempler i /usr/share/docs/shorewall/examples og manualen på nett inneholder mange gode eksempel.

 

Forskjellen på å sette opp Shorewall fremfor å lage IP-Tables skript for hånd er at syntaksen er mer oversiktlig.

 

Når det gjelder routing så gjøres dette som oftest hovedsaklig igjennom grunnregler av typen

 

 

#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST
$FW             net             ACCEPT
$FW             loc             ACCEPT
$FW             rem             ACCEPT

loc             net             ACCEPT
loc             $FW             ACCEPT
loc             rem             ACCEPT

rem             $FW             ACCEPT
rem             loc             ACCEPT

net             all             DROP            info
# The FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

 

 

Her har jeg definert fire soner.

$FW er brannveggen, altså maskinen hvor Shorewall kjører

loc er det lokale nettet hos meg

rem er nettet hos en kamerat som er koblet til via VPN

net er internet

 

Som du ser så er trafikk fra @FW til alle andre tillat. Trafikk fra loc til alle andre er tillat. Trafikk fra rem til $FW og til loc er tillat (men ikke til net da han har sin egen gateway og ikke skal gå igjennom meg) og trafikk fra net til alle blir kastet ut av vinduet.

 

Når det gjelder regelsett så har jeg her satt opp unntak som gir net tilgang til tjenester på $FW. Ideelt sett så skulle disse kjørt på en dmz, men det ble overkill for mitt nett.

 

 

 

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP

# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
Ping(DROP)              net             $FW

# Permit all ICMP traffic FROM the firewall TO the net zone
ACCEPT                  $FW             net             icmp

#Notify servers that we do not provide these services so they do not have to time out
Auth(REJECT)            net             $FW
DCC(REJECT)             net             $FW
DNS(REJECT)             net             $FW

#Public services
FTP(ACCEPT)             net             $FW
HTTP(ACCEPT)            net             $FW
HTTPS(ACCEPT)           net             $FW
IMAP(ACCEPT):info       net             $FW
IMAPS(ACCEPT)           net             $FW
POP3(ACCEPT):info       net             $FW
POP3S(ACCEPT)           net             $FW
SMTP(ACCEPT)            net             $FW
SSH(ACCEPT):info        net             $FW

# Do NOT send mail EVER!
SMTP(REJECT)            $FW             net

#Give access to Petter for magic mushrooms
DNAT:info       net:88.91.xxx.yyy       loc:10.50.50.227 TCP
DNAT:info       net:88.91.xxx.yyy       loc:10.50.50.227 UDP

 

 

Som du ser helt på slutten her så har jeg en stygg hack for å gi en kamerat tilgang til erhmm... "feriebilder" som ligger på en maskin i lokalnettet. Når det gjelder tjenester som Bittorrent og venner så vil du nok DNAT dem på samme måte mot noe annet enn $FW.

 

Håper det hjelper.

  • Liker 1
Lenke til kommentar

Vel, du trenger ikke bruke assemblerkode for å lære deg programmering (ja, det er å trekke det langt).

 

Med Shorewall så setter du først opp grensesnitt (les nettverkskort),

så definerer du soner og knytter sonene mot grensesnitt,

så definerer du grunnregler (policy) for sonene

til slutt lager du unntak (regler) som gjør at trafikk oppfører seg anneledes en policy.

 

Etter at du har installert Shorewall så finner du gode eksempler i /usr/share/docs/shorewall/examples og manualen på nett inneholder mange gode eksempel.

 

Forskjellen på å sette opp Shorewall fremfor å lage IP-Tables skript for hånd er at syntaksen er mer oversiktlig.

 

Når det gjelder routing så gjøres dette som oftest hovedsaklig igjennom grunnregler av typen

 

 

#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST
$FW             net             ACCEPT
$FW             loc             ACCEPT
$FW             rem             ACCEPT

loc             net             ACCEPT
loc             $FW             ACCEPT
loc             rem             ACCEPT

rem             $FW             ACCEPT
rem             loc             ACCEPT

net             all             DROP            info
# The FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

 

 

Her har jeg definert fire soner.

$FW er brannveggen, altså maskinen hvor Shorewall kjører

loc er det lokale nettet hos meg

rem er nettet hos en kamerat som er koblet til via VPN

net er internet

 

Som du ser så er trafikk fra @FW til alle andre tillat. Trafikk fra loc til alle andre er tillat. Trafikk fra rem til $FW og til loc er tillat (men ikke til net da han har sin egen gateway og ikke skal gå igjennom meg) og trafikk fra net til alle blir kastet ut av vinduet.

 

Når det gjelder regelsett så har jeg her satt opp unntak som gir net tilgang til tjenester på $FW. Ideelt sett så skulle disse kjørt på en dmz, men det ble overkill for mitt nett.

 

 

 

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP

# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
Ping(DROP)              net             $FW

# Permit all ICMP traffic FROM the firewall TO the net zone
ACCEPT                  $FW             net             icmp

#Notify servers that we do not provide these services so they do not have to time out
Auth(REJECT)            net             $FW
DCC(REJECT)             net             $FW
DNS(REJECT)             net             $FW

#Public services
FTP(ACCEPT)             net             $FW
HTTP(ACCEPT)            net             $FW
HTTPS(ACCEPT)           net             $FW
IMAP(ACCEPT):info       net             $FW
IMAPS(ACCEPT)           net             $FW
POP3(ACCEPT):info       net             $FW
POP3S(ACCEPT)           net             $FW
SMTP(ACCEPT)            net             $FW
SSH(ACCEPT):info        net             $FW

# Do NOT send mail EVER!
SMTP(REJECT)            $FW             net

#Give access to Petter for magic mushrooms
DNAT:info       net:88.91.xxx.yyy       loc:10.50.50.227 TCP
DNAT:info       net:88.91.xxx.yyy       loc:10.50.50.227 UDP

 

 

Som du ser helt på slutten her så har jeg en stygg hack for å gi en kamerat tilgang til erhmm... "feriebilder" som ligger på en maskin i lokalnettet. Når det gjelder tjenester som Bittorrent og venner så vil du nok DNAT dem på samme måte mot noe annet enn $FW.

 

Håper det hjelper.

Det er sant, man trenger ikke å lære seg assembler kode for å lære seg å programmere. Jeg skjønner poenget, og det hjelper på forståelsen av hvordan brannmurer fungerer ved å se på hvordan din brannmur er satt opp.

 

Jeg ser likheter med iptables her ja. Soner - Chains, net - input regler, loc - output regler osv. Hvis jeg har forstått dette riktig. Uansett i dag hadde jeg et stOrt gjennombrudd med iptables reglene mine, da jeg fant ut at dns trafikk brukte udp protokollen og ikke tcp. :D

VNC derimot er kranglete!

 

Takk for innblikket, kommer til å skjekke ut shorewall!

 

feriebilder....ja akkurat. :D

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...