Avatar billede iphase Nybegynder
26. september 2004 - 16:37 Der er 10 kommentarer og
2 løsninger

iptables. block på dns suffix

Hej Eksperter.

Jeg har lige sat en smoothwall express 2.0 final server op.
Men da jeg også har et lille windows domain som mine pc'er er medlem af, vil jeg gerne have den til kun at tillade adgang for pc'er som har det rette dns suffix, fra mit domæne. så man ikke bare lige uden videre kan gå på nettet hvis man er på mit netværk.
Jeg ved det ikke er sværere end bare at tilføje det rette dns suffix til ens pc, men det er bedre end ingenting, og den eneste løsning jeg lige kan komme på så alle i mit domæne kan komme på uden at skulle taste koder og skidt.

Hvis man det er muligt at få den til at authentikere med brugerne domæne konto ville det jo klart være fedest, har hørt at det kan lade sig gøre med squid, men det skulle være lidt mere indviklet. Så nu nøjes jeg med den anden måde.
Avatar billede langbein Nybegynder
26. september 2004 - 17:59 #1
Nå husker jeg ikke alle detaljer rundt smoothwall, men rent generelt:

Det er vanskelig å få en linux firewall til å filtrere på basis av dns suffiks (hvis jeg nå forstår dette rett). Firewall jobber i utgangspuktet på basis av ip adresser. Det er i utgangspunktet ganske enkelt å konfigurere en Linux firewall (iptables) slik at det bare er bestemte ip som kommer på nett. Det er også godt mulig å filtrere på basis av mac adresser. (men altså ikke "logiske" computer navn).

Har ikke Smoothwall kjørende nå, så jeg kan ikke få sjekket det i detalj, men jeg ville ha sjekket om det ikke finnes en mulighet for å åpne for kun visse ip og/eller visse mac adresser.

Du kunnne ellers lagt ut et eksempel på hva du mener med "dns suffiks" i denne sammenheng. Er ikke sikker på om jeg forstår dette helt rett.
Avatar billede langbein Nybegynder
26. september 2004 - 18:18 #2
Hvis du ser på side 36 i admin manualen så står det i hvert fall hvordan du blokker visse ip. Prinsippet for å bare tillate visse ip er ellers ganske likt, slik at det burdte eventuelt finnes en konfigurasjonmulighet "et sted i nærheten på konfigurasjonsmenyen".

http://download.smoothwall.org/archive/docs/2.0/admin.pdf

"Smoothwall" er vel i virkeligheten "bare" er grafisk grensenitt for å konfigurere de standard firewall funksjoner som finnes hos de fleste Linux, slik at det som i utgangspunktet ikke finnes som, standard hos Linux det kan vanskelig støttes, mens det er lett å bygge inn støtte for det som er "standard".

(Men Smoothwall er jo elelrs et veldig bra produkt, sjansen for at man ender opp med en riktig eller best mulig firewall er kanskje en hel del bedre enn dersom man jobber med en standard Linux. Dessuten så er jo hele smoothwall distribusjonen optimalisert mot oppgaven, slik at distribusjonen blir liten og kompakt.)

Ulempen det er jo at når man konfigurerer "manuelt" så har man "alle muligheter", mens man med et produkt som Smoothwall er begrenset til de standardmuligheter som er lagt inn via det grafiske konfigurasjongrensenittet.

Hvis ikke det å bare tillate visse ip eller visse mac adresser eventuelt ikke er lagt inn i Smoothwall sine standardfuksjoner, så kan man eventuelt ikke få satt opp dette, selv om dette er enkelt å sette opp via "manuell konfigurering" og script.
Avatar billede iphase Nybegynder
26. september 2004 - 18:35 #3
Med dns suffix mener jeg at alle computere i mit domain hedder "computernavn.mitdomain.local", så vil jeg have det således at alle der har .mitdomain.local i deres computernavn, godt må gå gennem firewallen, men alle der ikke har, bliver blokeret.

smoothwall bygger på IPTABLES, så det er bare et par linjer til rc.firewall jeg skal have regner jeg med.
Avatar billede ranglen Nybegynder
26. september 2004 - 18:59 #4
Hvad mener du kan spærres på baggrund af dns suffix? Det vil jo kræve, at suffix indgår i de pakker som sendes ud..
Avatar billede langbein Nybegynder
26. september 2004 - 19:31 #5
rangelen -> du treffer problemstillingen midt på. dns suffiks inngår ikke i de opplysninger i ip header som blir undersøkt av firewall (når denne jobber på "ordinær måte")

Linux firewall jobber generelt ikke på basis av logiske komputernavn som  "computernavn.mitdomain.local" men i prinsipp "bare" på basis av ip adresser, eventuelt mac no og portnummer.

En annen sak er hva som er mulig å få til vha "spesiell konfigurering" men dette vil nok ikke inngå i en standard Linux firewall distribusjon som Smoothwall (vil jeg tro).
Avatar billede langbein Nybegynder
26. september 2004 - 19:55 #6
"smoothwall bygger på IPTABLES, så det er bare et par linjer til rc.firewall jeg skal have regner jeg med"

Tja, jo kanskje. Ville være skeptisk til å begynne å legge inn nye rules i en slik ferdig firewall som smoothwall. Den bruker vel ikke noen fil som heter rc.firewall, gjør den det ??

Hvis man har shell access til smoothwall maskinen så kunne man faktisk eksperimentere med å legge til ekstra rules på toppen av de eksisterende regelsett, men det vil vel ikke akkurat forbause meg om det ikke fungerer.

...

Laget så et par eksperimenter med å legge inn tillegsregler som stiller krav om at ip-pakker måtte komme fra visse ip eller visse mac adresser. Det ser ikke ut til å være særlig enkelt å formulere slike tillegsregler som stiller krav om visse ip eller mac. Dette ser nesten ut til å forutsette at hele firewall konfigureringen arbeides om, dvs ut med hele smoothwall og inn med et "manuelt" firewall script som tar seg av det hele.

Har aldri prøvd, men det er da ellers teoretisk mulig å beholde smoothwall installasjonen med for eksempel web proxy og så skifte ut hele firewall konfigurasjons delen. Det grafiske konfigurasjonsfgrensenittet vil da i prinsipp ikke lengere kunne brukes til noe.  (Smoothwall fyller jo bare en brøkdel av det installasjonsvolum som gjelder for for eksmepel Fedora 2)
Avatar billede iphase Nybegynder
26. september 2004 - 22:29 #7
smoothwall express 2.0 er bare en "neat package" man kan lave om på alt. og jo den bruger iptables og har en rc.firewall fil med routing og nat regler i.

ja dns suffix ingår ikke i en ip pakke. men man må kunne få den til at lave reverse lookup på ip adressen og se suffixed. ?

Jeg har shell adgang til smoothwallen..
Avatar billede langbein Nybegynder
27. september 2004 - 06:06 #8
Har aldri studert smoothwall "i dybden" på den måten ved å forsøke å endre på den.

Så det man konfigurer, det ender altså opp i en konfigureringsfil der man kan lese ut reglene i klartekst ?

Er den laget i php som man kan redigere om, eller hvordan skulle man ellers kunne "lave om på alt" ? (Ganske interessant hvis dette er mulig. Vil i så fall, om litt, installere smoothwall på nytt, og forsøke å få til slike endringer.)

Hva med å legge ut den eksisterende (eller for anledningen tillempede) rc.firewall fil som et eksempel ?!
Avatar billede iphase Nybegynder
27. september 2004 - 09:42 #9
Det er lavet i PERL

her er rc.firewall.up


#!/bin/sh

# Disable ICMP Redirect Acceptance
for FILE in /proc/sys/net/ipv4/conf/*/accept_redirects; do
        echo 0 > $FILE
done

# Disable Source Routed Packets
for FILE in /proc/sys/net/ipv4/conf/*/accept_source_route; do
        echo 0 > $FILE
done

# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for FILE in /proc/sys/net/ipv4/conf/*/log_martians; do
        echo 1 > $FILE
done

# Set timeouts.  2.5 hours for TCP.
#/sbin/ipchains -M -S 9000 0 0

/sbin/iptables -F
/sbin/iptables -X

/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -A INPUT -p TCP -i $GREEN_DEV -s 0/0 --dport 800 -j DROP

# IP blocker
/sbin/iptables -N ipblock
/sbin/iptables -A INPUT -i ppp0 -j ipblock
/sbin/iptables -A INPUT -i ippp0 -j ipblock
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A INPUT -i $RED_DEV -j ipblock
fi
/sbin/iptables -A FORWARD -i ppp0 -j ipblock
/sbin/iptables -A FORWARD -i ippp0 -j ipblock
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A FORWARD -i $RED_DEV -j ipblock
fi


# For IGMP and multicast
/sbin/iptables -N advnet
/sbin/iptables -A INPUT -i ppp0 -j advnet
/sbin/iptables -A INPUT -i ippp0 -j advnet
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A INPUT -i $RED_DEV -j advnet
fi

# Spoof protection for RED (rp_filter does not work with FreeS/WAN)
/sbin/iptables -N spoof
/sbin/iptables -A spoof -s $GREEN_NETADDRESS/$GREEN_NETMASK -j DROP
if [ "$ORANGE_DEV" != "" ]; then
        /sbin/iptables -A spoof -s $ORANGE_NETADDRESS/$ORANGE_NETMASK -j DROP
fi

/sbin/iptables -A INPUT -i ppp0 -j spoof
/sbin/iptables -A INPUT -i ippp0 -j spoof
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A INPUT -i $RED_DEV -j spoof
fi


# localhost and ethernet.
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i $GREEN_DEV -j ACCEPT

# IPSEC
/sbin/iptables -N secin
/sbin/iptables -A secin -i ipsec0 -j ACCEPT
/sbin/iptables -A INPUT -j secin

/sbin/iptables -N secout
/sbin/iptables -A secout -i ipsec0 -j ACCEPT
/sbin/iptables -A FORWARD -j secout

/sbin/iptables -N block

# Let em through.
/sbin/iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A block -i $GREEN_DEV -j ACCEPT

# External access.  Rule set with setxtaccess setuid
/sbin/iptables -N xtaccess
/sbin/iptables -A block -j xtaccess

# IPSEC
/sbin/iptables -N ipsec
/sbin/iptables -A ipsec -p udp --destination-port 500 -j ACCEPT
/sbin/iptables -A ipsec -p 47 -j ACCEPT
/sbin/iptables -A ipsec -p 50 -j ACCEPT
/sbin/iptables -A block -i ppp0 -j ipsec
/sbin/iptables -A block -i ippp0 -j ipsec
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A block -i $RED_DEV -j ipsec
fi

# DHCP
if [ "$RED_DEV" != "" -a "$RED_TYPE" = "DHCP" ]; then
        /sbin/iptables -A block -p tcp --source-port 67 --destination-port 68 \
                -i $RED_DEV -j ACCEPT
        /sbin/iptables -A block -p tcp --source-port 68 --destination-port 67 \
                -i $RED_DEV -j ACCEPT
        /sbin/iptables -A block -p udp --source-port 67 --destination-port 68 \
                -i $RED_DEV -j ACCEPT
        /sbin/iptables -A block -p udp --source-port 68 --destination-port 67 \
                -i $RED_DEV -j ACCEPT
fi

# All ICMP on ppp too.
/sbin/iptables -A block -p icmp -i ppp0 -j ACCEPT
/sbin/iptables -A block -p icmp -i ippp0 -j ACCEPT
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A block -p icmp -i $RED_DEV -d $RED_NETADDRESS/$RED_NETMASK -j ACCEPT
fi

/sbin/iptables -A INPUT -j block

# last rule in INPUT chain is for logging.
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A INPUT -j REJECT

# Allow packets that we know about through.
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -o ppp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state NEW -o ppp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -o ippp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ippp0 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state NEW -o ippp0 -j ACCEPT
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -o $RED_DEV -j ACCEPT
        /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i $RED_DEV -j ACCEPT
        /sbin/iptables -A FORWARD -m state --state NEW -o $RED_DEV -j ACCEPT
fi

# Port forwarding
/sbin/iptables -N portfwf
/sbin/iptables -A FORWARD -j portfwf

/sbin/iptables -N dmzholes

# Allow GREEN to talk to ORANGE.
if [ "$ORANGE_DEV" != "" ]; then
        /sbin/iptables -A FORWARD -i $ORANGE_DEV -o $GREEN_DEV -m state \
                --state ESTABLISHED,RELATED -j ACCEPT
        /sbin/iptables -A FORWARD -i $GREEN_DEV -o $ORANGE_DEV -m state \
                --state NEW,ESTABLISHED,RELATED -j ACCEPT
        # dmz pinhole chain.  setdmzholes setuid prog adds rules here to allow
        # ORANGE to talk to GREEN.
        /sbin/iptables -A FORWARD -i $ORANGE_DEV -o $GREEN_DEV -j dmzholes
fi

# VPN
/sbin/iptables -A FORWARD -i $GREEN_DEV -o ipsec0 -j ACCEPT
/sbin/iptables -A FORWARD -i ipsec0 -o $GREEN_DEV -j ACCEPT

/sbin/iptables -A FORWARD -j LOG
/sbin/iptables -A FORWARD -j REJECT

# NAT table
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X

# squid
/sbin/iptables -t nat -N squid
/sbin/iptables -t nat -N jmpsquid
/sbin/iptables -t nat -A jmpsquid -d 10.0.0.0/8 -j RETURN
/sbin/iptables -t nat -A jmpsquid -d 172.16.0.0/12 -j RETURN
/sbin/iptables -t nat -A jmpsquid -d 192.168.0.0/16 -j RETURN
/sbin/iptables -t nat -A jmpsquid -d 169.254.0.0/16 -j RETURN
/sbin/iptables -t nat -A jmpsquid -j squid
/sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -j jmpsquid

# Masqurade
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE
if [ "$RED_DEV" != "" ]; then
        /sbin/iptables -t nat -A POSTROUTING -o $RED_DEV -j MASQUERADE
fi

# Port forwarding
/sbin/iptables -t nat -N portfw
/sbin/iptables -t nat -A PREROUTING -j portfw
Avatar billede langbein Nybegynder
27. september 2004 - 15:54 #10
Har litt problem med å forstå denne logikken:

# IP blocker
/sbin/iptables -N ipblock
/sbin/iptables -A INPUT -i ppp0 -j ipblock
/sbin/iptables -A INPUT -i ippp0 -j ipblock

Her opprettes det et nytt regelsett ved navn ipblock (??)

Etterpå så sender man div trafikk til regelstacken ipblock, men det står da ikke definert noe sted hva slags regler denne inneholder ??

Kan det være slik at den totale firewall består av flere script enn denne, at dette er bare et script no 1 som drar det hele i gang, mens den detaljerte definisjonen av "ipblock" kommer opp i et senere påfølgende script ?

Eller kan det være slik at "ipblock" er en standard chain med en spesiell eller standard reservert betydning ? Eller kan det være slik at det å sende pakkene til en tom chain har en bestemt betydning ??
Avatar billede langbein Nybegynder
27. september 2004 - 16:01 #11
ipblock står vel ikke beskrevet på man siden:
http://www.die.net/doc/linux/man/man8/iptables.8.html

For sjekk av hypotesen om at det kan dreie seg om flere script - kan du også legge ut den utscriften som kommer når man ber om firewall status, dvs kommando

"iptables -L -n" og "iptables -t nat -L -n"
Avatar billede iphase Nybegynder
30. september 2004 - 00:07 #12
JEg har lukket serveren ned nu, så kan ikke ikke hive flere scritps ud af den. jeg må nøjes med en windows firewall som kan blokerer på bruger nivo, i active directory.

Lukker spm.

Men tak for interressen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester