Toon posts:

IPchains / FTP werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik met CuteFTP probeer te connecten krijg ik het volgende:
code:
1
2
3
4
5
6
7
8
COMMAND:>   TYPE A
    200 Type set to A.
STATUS:>    Retrieving directory listing...
COMMAND:>   PORT 192,168,0,110,14,178
    500 Illegal PORT command.
STATUS:>    Error opening data socket
COMMAND:>   REST 0
    350 Restarting at 0. Send STORE or RETRIEVE to initiate transfer.

Op de server (Debian bak met Ipchains, 2.2.x kernel) vind ik in de logfiles het volgende:
code:
1
2
3
Mar 24 22:29:50 spoller kernel: Packet log: output REJECT eth1 PROTO=17 10.0.0.150:123 193.63.105.18:123 L=76 S=0x00 I=24 F=0x0000 T=64 (#20)
Mar 24 22:29:51 spoller kernel: Packet log: output REJECT eth1 PROTO=17 10.0.0.150:123 193.67.79.202:123 L=76 S=0x00 I=29 F=0x0000 T=64 (#20)
Mar 24 22:29:51 spoller kernel: Packet log: output REJECT eth1 PROTO=17 10.0.0.150:123 204.152.184.72:123 L=76 S=0x00 I=30 F=0x0000 T=64 (#20)

Hij blokt dus verkeer op poort (in dit geval, soms ook hogere poorten) nummer 123. Zowieso vind ik dit vreemd, dacht dat FTP hogere poortnummers zou gebruiken voor afhandeling van verkeer (1024:65535) maar ik begrijp eerlijk gezegd ook niet waarom m'n firewall het tegenhoud. Onderstaand een deel van m'n ruleset (output rules), dat gebaseerd is op de welbekende variant van TrinityOS:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  # ===
  # OUTPUT CHAIN
  # ===


    # ---
    # Loopback interface
    # ---

    # Loopback interface
    /sbin/ipchains -A output -i $LOOPBACKIF -s $UNIVERSE -d $UNIVERSE -j ACCEPT


    # ---
    # Internal interface
    # ---

    # Local interface, any source going to local net is valid.
    /sbin/ipchains -A output -i $INTIF -s $UNIVERSE -d $INTLAN -j ACCEPT


    # ---
    # External interface
    # ---

    # Reject outgoing traffic to the local net from the remote interface, 
    # (stuffed routing), log and reject
    /sbin/ipchains -A output -i $EXTIF -s $UNIVERSE -d $INTLAN -l -j REJECT

    # Reject outgoing traffic from the local net from the external interface,
    # (stuffed masquerading), log and reject
    /sbin/ipchains -A output -i $EXTIF -s $INTLAN -d $UNIVERSE -l -j REJECT
 
    # SMB
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --sport 137 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --sport 138 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --sport 139 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --dport 137 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --dport 138 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --dport 139 -j REJECT 

    # Common trojans 
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 6776 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 12345 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 20034 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 31337 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 54320 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 54321 -l -j REJECT

    # ICMP: Allow ICMP traffic out
    /sbin/ipchains -A output -i $EXTIF -p icmp -s $UNIVERSE -d $UNIVERSE -j ACCEPT

    # Allow all high ports for return traffic
    /sbin/ipchains -A output -p tcp -s $EXTIP $UNPRIVPORTS -d $UNIVERSE -j ACCEPT
    /sbin/ipchains -A output -p udp -s $EXTIP $UNPRIVPORTS -d $UNIVERSE -j ACCEPT


    # ---
    # Catch all output rule
    # ---

    # All other outgoing is logged and rejected
    /sbin/ipchains -A output -s $UNIVERSE -d $UNIVERSE -l -j REJECT

ip_masq_ftp wordt geladen (zonder verdere parameters op te geven).
Iemand suggesties, of een verklaring voor wat er gebeurt (liefst beide natuurlijk 8-))?

Verwijderd

Topicstarter
Een update: als ik CuteFTP vertel om PASV mode te gebruiken werkt het wel...

  • dinges
  • Registratie: September 2000
  • Niet online
modprobe ip_masq_ftp en je kan ook active ftp'en :)

PSN: Houtvlot


  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 14:22

odysseus

Debian GNU/Linux Sid

Op zondag 24 maart 2002 22:55 schreef dinges het volgende:
modprobe ip_masq_ftp en je kan ook active ftp'en :)
Dat doet hij dus al...zie zijn eerste post.

Ik zou zelf met een tool als ethereal kijken welke pakketten er precies naar buiten gaan bij de client en welke er bij de andere host binnenkomen, dan kun je precies zien welke blijkbaar geblokt worden en de daarvoor benodigde poorten open zetten.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Topicstarter
ip_masq_ftp wordt geladen (zonder verdere parameters op te geven).
Geeft geen foutmeldingen bij starten, lsmod laat zien dat ip_masq_ftp is geladen en gebruikt wordt als ik een FTP-connectie opzet...
Op zondag 24 maart 2002 22:55 schreef dinges het volgende:
modprobe ip_masq_ftp en je kan ook active ftp'en :)

Verwijderd

Topicstarter
De logfile geeft toch al prima aan welke verkeer er geblokt wordt, en ook dat dat is op basis van een output rule? Lijkt me dus wat omslachtig om zelf op pakketniveau te gaan vogelen...
Ik zou zelf met een tool als ethereal kijken welke pakketten er precies naar buiten gaan bij de client en welke er bij de andere host binnenkomen, dan kun je precies zien welke blijkbaar geblokt worden en de daarvoor benodigde poorten open zetten.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 14:22

odysseus

Debian GNU/Linux Sid

Sorry, ik had je logregels even over het hoofd gezien. In dat geval kun je toch gewoon die poort open zetten voor FTP-verkeer? Aan die regels te zien is het elke keer poort 123. Of mis ik je probleem nu?

* odysseus gaat nu eerst nog even een berg Franse woorden leren en wat slapen (lijkt wel nodig te zijn als ik dergelijke regels over het hoofd zie...), morgen komen er weer replies. Trusten eenieder :P.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Topicstarter
Het lijkt inderdaad altijd die poort te zijn. Wil hem best openzetten, maar vraag me dan af _waarom_ het altijd deze poort is. Zou ik misschien bij het laden van ip_masq_ftp moeten aangeven dat hij poorten 1024-65535 gebruikt oid?

Succes met de studie!
Op zondag 24 maart 2002 23:07 schreef odysseus het volgende:
Sorry, ik had je logregels even over het hoofd gezien. In dat geval kun je toch gewoon die poort open zetten voor FTP-verkeer? Aan die regels te zien is het elke keer poort 123. Of mis ik je probleem nu?

* odysseus gaat nu eerst nog even een berg Franse woorden leren en wat slapen (lijkt wel nodig te zijn als ik dergelijke regels over het hoofd zie...), morgen komen er weer replies. Trusten eenieder :P.

Verwijderd

Topicstarter
Wordt voor mij ook tijd onder de wol te kruipen. Zie net dat poort 123 er weinig mee te maken heeft, is de poort voor NTP (time-server) -- blijkbaar moet ik aan de configuratie daarvan nog het een en ander bijstellen.
Op zondag 24 maart 2002 23:14 schreef Mr.Unbreakable het volgende:
Het lijkt inderdaad altijd die poort te zijn. Wil hem best openzetten, maar vraag me dan af _waarom_ het altijd deze poort is. Zou ik misschien bij het laden van ip_masq_ftp moeten aangeven dat hij poorten 1024-65535 gebruikt oid?

Succes met de studie!
[..]

Verwijderd

installeer het script van www.pointman.org eens: PMFirewall.
Die gebruikt ook IPChains en kijk eens hoe die de FTP-open of stealth regelt. Wellicht haal je er wat nuttigs uit om verder te komen. de-installeren is een fluitje van een cent (lees de read-me in de install gz)

  • Solarsparc
  • Registratie: Juli 2001
  • Laatst online: 00:33
Als je eens goed naar het PORT commando kijkt, kun je er heel wat uit halen:
code:
1
2
COMMAND:>      PORT 192,168,0,110,14,178
      500 Illegal PORT command.

De server vraagt de client met ip adres 192.168.0.110 eeen poort te openen en wel poort 3762.
Wat mij opvalt, is dat je de range 10.0.0.* gebruikt. In dit geval is dit dus een illegal port command omdat de ftp server een port command verwacht van het ip van de client zelf (dit ligt anders bij FXP maar dat laat ik even buiten beschouwing).
Wat ik dus denk dat er aan de hand is: de module ip_masq_ftp gaat ervanuit dat je de 192.168.0.* reeks gebruikt voor je lan. Je kunt dus proberen deze naar 10.0.0.* te zetten in de module (als dit uberhaupt mogelijk is), of je lan op range 192.168.0.* zetten.

Verwijderd

Topicstarter
192.168.0.110 haal ik er ook uit, maar hoe kom je aan poort 3762? Verder: mijn interne lan is 192.168.0.0/24, 192.168.0.110 is de PC van waaraf ik probeer te FTP'en en 192.168.0.1 (intern) / 10.0.0.150 (extern) zijn de IP adressen van de server. Mocht 10.0.0.150 als extern adres je verwonderen: daarna staat nog het Mxstream modem van KPN, dat een geldig adres aan de buitenwereld laat zien...
Op maandag 25 maart 2002 00:09 schreef Solarsparc het volgende:
Als je eens goed naar het PORT commando kijkt, kun je er heel wat uit halen:
code:
1
2
COMMAND:>      PORT 192,168,0,110,14,178
      500 Illegal PORT command.

De server vraagt de client met ip adres 192.168.0.110 eeen poort te openen en wel poort 3762.
Wat mij opvalt, is dat je de range 10.0.0.* gebruikt. In dit geval is dit dus een illegal port command omdat de ftp server een port command verwacht van het ip van de client zelf (dit ligt anders bij FXP maar dat laat ik even buiten beschouwing).
Wat ik dus denk dat er aan de hand is: de module ip_masq_ftp gaat ervanuit dat je de 192.168.0.* reeks gebruikt voor je lan. Je kunt dus proberen deze naar 10.0.0.* te zetten in de module (als dit uberhaupt mogelijk is), of je lan op range 192.168.0.* zetten.

Verwijderd

Topicstarter
Lees net op een site dat je vanaf kernel 2.2.19 de parameter "ports=20,21" moet meegeven aan ip_masq_ftp, waar dat eerder niet zo was. Klopt dit? En waarom zou ik poort 20 moeten opgeven, de client verstuurt het PORT commando toch naar poort 21 van de server (vanaf poort >1024)?

Ben verder benieuwd wat dat ip_masq_ftp nu precies doet (toch alleen voor ACTIVE ftp nodig?). Kan iemand dat uitleggen, of even een link posten?

  • Solarsparc
  • Registratie: Juli 2001
  • Laatst online: 00:33
Mocht 10.0.0.150 als extern adres je verwonderen: daarna staat nog het Mxstream modem van KPN, dat een geldig adres aan de buitenwereld laat zien...
Ah, op die manier... :)

Ff over die poort: het PORT commando bestaat uit een IP en nog twee getallen, die samen de poort vormen.
Stel het commando is PORT x,x,x,x,g1,g2.
x,x,x,x is dan uiteraard het IP, de poort is dan g1*256 + g2.

Wat me nog te binnen schiet: voor lokaal ftp heb je in principe geen modules nodig, er zit immers geen router tussen.
Dan blijven er voor mij nog 2 dingen over:
Of je moet ip_masq_ftp een interface (ethx) meegeven, zodat ie alleen voor uitgaand verkeer werkt, of het is toch een regeltje in de firewall die roet in het eten gooit - je kunt proberen de firewall eruit te gooien en dan nog eens te proberen.

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

/sbin/ipchains -A output -s $UNIVERSE -d $UNIVERSE -l -j REJECT[/code]
ip_masq_ftp wordt geladen (zonder verdere parameters op te geven).
Iemand suggesties, of een verklaring voor wat er gebeurt (liefst beide natuurlijk 8-))?
a) Je moet zowel ip_conntrack_ftp als ip_masq_ftp laden. Een van de 2 niet laden == niet werken.

b) Je FW script accept geen related connections.

Verwijderd

Topicstarter
Interessant, die info over het PORT commando. Weer wat geleerd vandaag.

Ik snap dat ik voor lokaal ftp geen modules nodig heb, maar dat werkt prima (ACTIVE, heb Proftpd nog niet geconfigureerd om ook PASSIVE te werken). Bedacht me net nog dat ik geen "depmod -a" bovenaan in m'n firewall script heb staan. Weet niet precies wat het doet maar staat vast niet voor niets in de meeste voorbeelden, zal dat dus eens toevoegen. En zal inderdaad proberen alle regels te flushen om te kijken of dat wat verbetering brengt -- weet ik in ieder geval preciezer waar ik zoeken moet.
Op maandag 25 maart 2002 15:12 schreef Solarsparc het volgende:

Ff over die poort: het PORT commando bestaat uit een IP en

Wat me nog te binnen schiet: voor lokaal ftp heb je in principe geen modules nodig, er zit immers geen router tussen. Dan blijven er voor mij nog 2 dingen over:
Of je moet ip_masq_ftp een interface (ethx) meegeven, zodat ie alleen voor uitgaand verkeer werkt, of het is toch een regeltje in de firewall die roet in het eten gooit - je kunt proberen de firewall eruit te gooien en dan nog eens te proberen.

  • Solarsparc
  • Registratie: Juli 2001
  • Laatst online: 00:33
Oh dit is dus naar een externe ftp? Dan gaat er iets mis in de module, want die zou dan het externe IP weer moeten geven in het port commando. Kan misschien ook te maken hebben met het feit dat je eigenlijk 2x gerouterd wordt...

Verwijderd

Topicstarter
a) Volgens mij haal je twee dingen door elkaar. Tenzij ik me sterk vergis is ip_conntrack_ftp voor 2.4.x kernels met iptables, en ip_masq_ftp voor kernels die met ipchains werken. Aangezien ik ipchains gebruik heb ik dus alleen ip_masq_ftp nodig. Ben er alleen nog steeds niet uit of daar nu ports=20,21 achter hoort of dattie standaard al het verkeer nakijkt op PORT commando's

b)Begrijp ik niet helemaal. RELATED is volgens mij ook iets van iptables? Als ik het goed begrijp moet ik voor active FTP verkeer van 0.0.0.0/0 accepten met source-port 20 (ftp-data), bestemming poort >1024 op m'n locale netwerk (192.168.0.0/24). Connectie met de ftp-server wordt vanaf mijn bak gemaakt met source-port >1024, destination port 21. Dit laatste valt onder m'n "standaard" masq regel: al het uitgaande verkeer van het locale net wordt gemasqued naar het Internet toe.

Nu ik erover nadenk: is het "nut" van ip_masq_ftp dan om in het "PORT 192.168.0.111,x,x" het ip-adres van het locale net te vervangen in m'n externe adres zodat de ftp-server me terug kan vinden? In dat geval moet ik ip_masq_ftp misschien inderdaad vertellen dat ie daar dan m'n "echte" externe IP adres invult: zoals ik schreef is het adres aan de buitenkant van m'n server 10.0.0.150, daarna staat nog het Mxstream modem met het "echte" externe IP.

Iemand een idee van de commandline parameters voor ip_masq_ftp (linkje?).
Op maandag 25 maart 2002 15:26 schreef igmar het volgende:

[..]

a) Je moet zowel ip_conntrack_ftp als ip_masq_ftp laden. Een van de 2 niet laden == niet werken.

b) Je FW script accept geen related connections.

Verwijderd

Topicstarter
Denk dat CuteFTP (waarvandaan ik gecopy/past heb) wel "denkt" het commando te geven voor de locale machine, en dat ip_masq_ftp dat vervolgens vertaald naar 10.0.0.150 (externe IP van m'n server, nog steeds achter Mxstream modem). Dat zal wel verkeerd gaan ja, ftp servers proberen dan te connecten naar 10.0.0.150 en dat gaat mis...

Iemand een idee of ip_masq_ftp een commandline optie voor het externe IP adres kent? Of iemand anders die dit in combinatie met Mxstream aan de gang heeft gekregen?
Op maandag 25 maart 2002 15:55 schreef Solarsparc het volgende:
Oh dit is dus naar een externe ftp? Dan gaat er iets mis in de module, want die zou dan het externe IP weer moeten geven in het port commando. Kan misschien ook te maken hebben met het feit dat je eigenlijk 2x gerouterd wordt...

  • Solarsparc
  • Registratie: Juli 2001
  • Laatst online: 00:33
Tja als dat zou gebeuren zou je in je ftp client 10.0.0.150 zien ipv 192.168.0.112. Misschien dat ip_masq_ftp niets doet omdat er geen officiele externe interface is?

Nog iets: gebruik je deze regel ergens:
code:
1
ipchains -A forward -s 192.168.0.0/24 -j MASQ

En dan vooral de MASQ switch.
Kan zijn dat ie uberhaupt niet masq't zonder die regel namelijk.
In theorie zou trouwens je router/modem nog een keer moeten masqueraden, en zou je linux router van 192.168.0.x naar 10.0.0.x moeten masqen.

Verwijderd

Topicstarter
Met "officiele" externe interface bedoel je een interface met een IP-adres uit de non-private range neem ik aan? Er zitten namelijk wel keurig twee netwerkkaarten in die linux machine, een voor het interne net (192.168.0.1) en een richting het modem (10.0.0.150). Voor mensen die ook Mxstream hebben denk ik een standaard configuratie.

Die masq-regel staat keurig in m'n firewall script. Zal het vanavond (kan er nu niet bij) nog een keer helemaal posten, is echter nogal fors.

Gisteren nog even Flash FXP gedownload, daar kun je het IP-adres opgeven dat ie naar de FTP-server stuurt met het PORT commando. Daar keurig m'n Internet IP-adres (dus _niet_ 10.0.0.150 maar het adres waarmee het modem met de boze buitenwereld communiceert) opgegeven, resultaat blijft hetzelfde. Nu ik erover nadenk moet ik dat nog maar eens proberen zonder dat ip_masq_ftp is geladen, zou best kunnen dat die dat Internet-IP adres dus weer gaat zitten terugvertalen naar 10.0.0.150 en dan gaat het natuurlijk alsnog fout.
Op dinsdag 26 maart 2002 01:16 schreef Solarsparc het volgende:
Tja als dat zou gebeuren zou je in je ftp client 10.0.0.150 zien ipv 192.168.0.112. Misschien dat ip_masq_ftp niets doet omdat er geen officiele externe interface is?

Nog iets: gebruik je deze regel ergens:
code:
1
ipchains -A forward -s 192.168.0.0/24 -j MASQ

En dan vooral de MASQ switch.
Kan zijn dat ie uberhaupt niet masq't zonder die regel namelijk.
In theorie zou trouwens je router/modem nog een keer moeten masqueraden, en zou je linux router van 192.168.0.x naar 10.0.0.x moeten masqen.

Verwijderd

zo doet PMFirewall e.e.a in de files:


#!/bin/sh
#pmfirewall.rules.masq - used by pmfirewall package
#

## Masquerading

## Modules to help certain services

/sbin/depmod -a >/dev/null 2>&1
/sbin/modprobe ip_masq_ftp >/dev/null 2>&1
/sbin/modprobe ip_masq_raudio >/dev/null 2>&1
/sbin/modprobe ip_masq_irc >/dev/null 2>&1
/sbin/modprobe ip_masq_icq >/dev/null 2>&1
/sbin/modprobe ip_masq_quake >/dev/null 2>&1
/sbin/modprobe ip_masq_user >/dev/null 2>&1
/sbin/modprobe ip_masq_vdolive >/dev/null 2>&1

## Masquerading firewall timeouts: tcp conns 8hrs, tcp after fin pkt 60s, udp 10min
$IPCHAINS -M -S 14400 60 600

## Set up kernel to enable IP masquerading
echo 1 > /proc/sys/net/ipv4/ip_forward

## Set up kernel to handle dynamic IP masquerading
echo 1 > /proc/sys/net/ipv4/ip_dynaddr

## Don't Masquerade internal-internal traffic
$IPCHAINS -A forward -s $INTERNALNET -d $INTERNALNET -j ACCEPT

## Don't Masquerade external interface direct
$IPCHAINS -A forward -s $OUTERNET -d $REMOTENET -j ACCEPT

## Masquerade all internal IP's going outside
$IPCHAINS -A forward -s $INTERNALNET -d $REMOTENET -j MASQ

## Set Default rule on MASQ chain to Deny
$IPCHAINS -P forward DENY

## Allow all connections from the network to the outside
$IPCHAINS -A input -s $INTERNALNET -d $REMOTENET -j ACCEPT
$IPCHAINS -A output -s $INTERNALNET -d $REMOTENET -j ACCEPT

# This section manipulates the Type Of Service (TOS) bits of the
# packet. For this to work, you must have CONFIG_IP_ROUTE_TOS enabled
# in your kernel

# Set telnet, www, smtp, pop3 and FTP for minimum delay
$IPCHAINS -A output -p tcp -d 0/0 80 -t 0x01 0x10
$IPCHAINS -A output -p tcp -d 0/0 22 -t 0x01 0x10
$IPCHAINS -A output -p tcp -d 0/0 23 -t 0x01 0x10
$IPCHAINS -A output -p tcp -d 0/0 21 -t 0x01 0x10
$IPCHAINS -A output -p tcp -d 0/0 110 -t 0x01 0x10
$IPCHAINS -A output -p tcp -d 0/0 25 -t 0x01 0x10

# Set ftp-data for maximum throughput
$IPCHAINS -A output -p tcp -d 0/0 20 -t 0x01 0x08

# Allow outgoing ICMP
$IPCHAINS -A output -p icmp -s $INTERNALNET -d $REMOTENET -j ACCEPT


#!/bin/sh
# pmfirewall.rules.local
# ver.PM1 (do not remove this line)

### BEGIN SYSTEM DEFAULTS ###

# Block Nonroutable IP's from entering on the External Interface
$IPCHAINS -A input -j DENY -s 10.0.0.0/8 -d $OUTERNET -i $OUTERIF
$IPCHAINS -A input -j DENY -s 127.0.0.0/8 -d $OUTERNET -i $OUTERIF
$IPCHAINS -A input -j DENY -s 172.16.0.0/12 -d $OUTERNET -i $OUTERIF
$IPCHAINS -A input -j DENY -s 192.168.0.0/16 -d $OUTERNET -i $OUTERIF


# - Specific port blocks on the external interface -
# This section blocks off ports/services to the outside that have
# vulnerabilities. This will not affect the ability to use these services
# within your network.
#

# Back Orifice (logged)
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 31337 -j DENY -l
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 31337 -j DENY -l

# NetBus (logged)
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 12345:12346 -j DENY -l
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 12345:12346 -j DENY -l

# Trin00 (logged)
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 1524 -j DENY -l
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 27665 -j DENY -l
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 27444 -j DENY -l
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 31335 -j DENY -l

# Multicast
$IPCHAINS -A input -s 224.0.0.0/8 -d $REMOTENET -j DENY
$IPCHAINS -A input -s $REMOTENET -d 224.0.0.0/8 -j DENY


### END SYSTEM DEFAULTS ###


#### EXAMPLES ###


### ALLOWED NETWORKS
# Add in any rules to specifically allow connections from hosts/nets that
# would otherwise be blocked.
#$IPCHAINS -A input -s [trusted host/net] -d $OUTERNET <ports> -j ACCEPT

### BLOCKED NETWORKS
# Add in any rules to specifically block connections from hosts/nets that
# have been known to cause problems. These packets are logged.
#$IPCHAINS -A input -s [banned host/net] -d $OUTERNET <ports> -j DENY -l

### BLOCK ICMP ATTACKS
#
#$IPCHAINS -A input -b -i $OUTERIF -p icmp -s [host/net] -d $OUTERNET -j DENY -l


#### END OF EXAMPLES ###



### AUTOMATICALLY GENERATED BY THE INSTALL SCRIPT ###

#DHCP CLIENT ALLOW
$IPCHAINS -A input -p udp -s $REMOTENET -d $REMOTENET 67:68 -i $OUTERIF -j ACCEPT
#FTP
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 20 -j ACCEPT
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 21 -j ACCEPT
#IDENTD
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 113 -j REJECT
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 113 -j REJECT
#NETBIOS
$IPCHAINS -A input -p tcp -s $REMOTENET -d $REMOTENET 137:139 -i $OUTERIF -j DENY
$IPCHAINS -A input -p udp -s $REMOTENET -d $REMOTENET 137:139 -i $OUTERIF -j DENY
#RIP
$IPCHAINS -A input -p udp -s $REMOTENET -d $REMOTENET 520 -i $OUTERIF -j REJECT
#NFS
$IPCHAINS -A input -p tcp -s $REMOTENET -d $REMOTENET 2049 -i $OUTERIF -j DENY -l
$IPCHAINS -A input -p udp -s $REMOTENET -d $REMOTENET 2049 -i $OUTERIF -j DENY -l
#XSERVER
$IPCHAINS -A input -p tcp -s $REMOTENET -d $REMOTENET 5999:6003 -i $OUTERIF -j DENY
$IPCHAINS -A input -p udp -s $REMOTENET -d $REMOTENET 5999:6003 -i $OUTERIF -j DENY


#!/bin/sh
# pmfirewall.rules.1 used by pmfirewall package
#
#### Start Firewall ####

## Allow loopback interface
$IPCHAINS -A input -i lo -s 0/0 -d 0/0 -j ACCEPT
$IPCHAINS -A output -i lo -s 0/0 -d 0/0 -j ACCEPT

# Allow packets with ack bit set, they are from an established connection.
$IPCHAINS -A input ! -y -p tcp -s $REMOTENET -d $OUTERNET -j ACCEPT
# Block incoming IP Spoofing
# Turn on Source Address Verification
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for f in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $f
done
fi
#Turn on SYN COOKIES PROTECTION (Thanks Holger!)
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
# Now read pmfirewall.rules.local


#!/bin/sh
# pmfirewall
# chkconfig: 2345 50 80
# description: Control script for pmfirewall package.
#

CONFIG_DIR=/usr/local/pmfirewall
# Source function library.
. /etc/rc.d/init.d/functions


## Read Configuration File
. $CONFIG_DIR/pmfirewall.conf

case "$1" in

#####START FIREWALL#####
start)
echo -n "Starting PMFirewall:"
## Flush rule sets, start from scratch
$IPCHAINS -F input
$IPCHAINS -F output
$IPCHAINS -F forward

## Read firewall rules
. $CONFIG_DIR/pmfirewall.rules.1
. $CONFIG_DIR/pmfirewall.rules.local

## Read Masq Rules
. $CONFIG_DIR/pmfirewall.rules.masq

# Allow incoming and outgoing ICMP
$IPCHAINS -A input -p icmp -s $REMOTENET -d $OUTERNET -j ACCEPT
$IPCHAINS -A output -p icmp -s $OUTERNET -d $REMOTENET -j ACCEPT

# These are open to sockets created by connections allowed by ipchains
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 1023:65535 -j ACCEPT
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 1023:65535 -j ACCEPT

## Set default policy
$IPCHAINS -A output -j ACCEPT
$IPCHAINS -A input -j DENY -l
echo "Done!"
echo ""
echo "Internal: $INTERNALIF$INTERNALNET"
echo "External: $OUTERIF$OUTERNET"
echo "" ;;

#####STOP FIREWALL####
stop)
echo ""
echo -n "Shutting down PMFirewall:"
$IPCHAINS -F input
$IPCHAINS -F output
$IPCHAINS -F forward
$IPCHAINS -P forward DENY
echo "Done!"
echo "" ;;

#####START MASQ#####
masqstart)
echo ""
echo -n "Starting IP Masquerading:"
## Read Masq Rules
. $CONFIG_DIR/pmfirewall.rules.masq
echo "Done!"
echo ""
echo "Internal: $INTERNALIF$INTERNALNET"
echo "External: $OUTERIF$OUTERNET"
echo "" ;;

#####STOP MASQ#####
masqstop)
echo ""
echo -n "Shuting down IP Masquerading:"
$IPCHAINS -F forward
$IPCHAINS -P forward DENY
echo "Done!"
echo "" ;;

restart)
$0 stop
$0 start
;;

uninstall)
$CONFIG_DIR/uninstall
;;


*D

echo ""
echo " USAGE: pmfirewall [command] "
echo ""
echo " COMMANDS:"
echo " start Enables PMFirewall and Masquerading (if installed)."
echo " stop Disables PMFirewall and Masquerading (if installed)."
echo " restart Flushes and reloads the rules in PMFirewall."
echo " masqstart Enables IP Masquerading only (no firewall)."
echo " masqstop Disables IP Masquerading only (no firewall)."
echo " uninstall Completely removes PMFirewall."
echo " help Displays this list of options."
echo ""
exit 1 ;;

esac
exit 0

Verwijderd

Topicstarter
De volgende regels uit je script lijken me relevant:
code:
1
2
3
4
5
6
7
#FTP 
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 20 -j ACCEPT
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 21 -j ACCEPT

# These are open to sockets created by connections allowed by ipchains
$IPCHAINS -A input -p tcp -s $REMOTENET -d $OUTERNET 1023:65535 -j ACCEPT
$IPCHAINS -A input -p udp -s $REMOTENET -d $OUTERNET 1023:65535 -j ACCEPT

De eerste twee regels heb je erin staan omdat je zelf een FTP-server draait (correct me if I'm wrong), de tweede twee regels zetten je poorten >1023 open, nodig voor (onder andere) active FTP sessies, server connect dan vanaf poort 20 (ftp-data).

Heb ik niet veel anders in m'n script staan, alleen timmert TrinityOS de hoge poorten iets beter dicht door geen "niet-return" traffic toe te laten op poorten >1023, maar (niet te snel >:)) niet zonder eerst even een regeltje op te nemen om dat expliciet _wel_ toe te staan voor FTP data-traffic (vanaf poort 20).

Nogmaals: zal vanavond m'n eigen script posten, dan mogen de guru's kijken wat er allemaal mis mee is. Lijkt me echter sterk dat het daaraan ligt.

Naar ik aanneem werkt active FTP bij jou trouwens wel?

Verwijderd

Dat is weer zo'n fijn voorbeeld van een 'firewall' die alles >1023 gewoon lekker open zet. Heel slim. |:(

Ik zie een hoop mensen allerlei termen roepen, maar wat is nu precies de vraag? Gaat het nu om het connecten naar een eigen FTP server die achter een IPChains ketting staat? Of gaat het nu om het connecten naar een FTP server op internet vanaf een machine die middels NAT achter een IPChains ketting staat? :?

Edit: Het lijkt erop dat het dus is dat je door een NAT machine een verbinding wilt maken met een FTP server en dat lukt je alleen in PASV mode... Ik ben zelf ook nog op zoek naar de active mode oplossing. Kan je in je client niet (ik ben niet thuis, dus kan het niet uitproberen) een lokale data port range meegeven die je vervolgens open zet op je firewall?

Verwijderd

Topicstarter
Klopt ten dele. Dat moet _ook_ in ACTIVE mode kunnen, daarvoor moet je (i) ip_masq_ftp laden en (ii) je poorten >1023 openzetten voor ftp-data verkeer (source-port 20). Heb ik tenzij ik me sterk vergis keurig gedaan, toch werkt het niet.

Idee dat ik heb is dat het komt door MxStream: het "externe" IP adres van m'n NAT machine is nl. nog in de private address range (nl. 10.0.0.150) omdat het achter een Mxstream modem hangt. ip_masq_ftp zou het locale IP-adres dat m'n FTP-client doorgeeft in het PORT commando moeten vertalen in het externe adres waarmee de ftp-server dan vervolgens connect. Denk echter dattie het vertaalt naar 10.0.0.150, en dat kan de FTP-server natuurlijk nooit vinden.

Oplossing is IMHO om (i) een optie aan ip_masq_ftp mee te geven voor het externe IP-adres dat ie moet gebruiken of (ii) port forwarding te gebruiken in combinatie met een ftp-client waar ik kan instellen welke port range gebruikt wordt. Ik voel bijzonder weinig voor het laatste.
Op dinsdag 26 maart 2002 11:39 schreef Ghoster het volgende:
Edit: Het lijkt erop dat het dus is dat je door een NAT machine een verbinding wilt maken met een FTP server en dat lukt je alleen in PASV mode... Ik ben zelf ook nog op zoek naar de active mode oplossing. Kan je in je client niet (ik ben niet thuis, dus kan het niet uitproberen) een lokale data port range meegeven die je vervolgens open zet op je firewall?

Verwijderd

ik draai geen ftp-server achter mijn NAT, alleen op de server zelf. Daar heb ik mijn ftp anonymous uitgeschakeld, ook users kunnen er geen gebruik van maken. Ik heb een aparte groep ftpusers opgezet (zie meen ik linux-nl.cx voor docs) die geen andere rechten heeft dan ftp, en dus ook niet uit de dir kan... Verder doe ik niet veel met ftp, vandaar.
Poorten: boven 1023. Ik heb nog nooit problemen ermee gehad. maar wat niet is kan komen.... Waarom zou PMFirewall ze open laten.... en hoe zou ik ze het eenvoudigst dicht kunnen zetten door aanpassing van het script. Met DENY zet ik natuurlijk alles dicht maar ik kan zelf nog niet overzien wat voor andere consequneties dit heeft.
{/beetje off-topic...]

Verwijderd

Topicstarter
Zei ik dan dat ie achter je NAT stond? ;) Poorten >1023 openlaten is volgens mij specifiek bedoeld voor ACTIVE ftp, als je dat niet gebruikt kun je ze zowieso dichtgooien denk ik. Comment gewoon die regels even en kijk wat er gebeurt.

[offtopic]
Iets verder dichtzetten (geen "ongevraagd" / niet door jou geinitieerd verkeer accepteren) doe je als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# HIGH PORTS: #
# Enable all high unprivileged ports for all reply TCP/UDP traffic#
# NOTE: The use of the "! -y" flag filters TCP traffic that doesn't have the
#    SYN bit set.  In other words, this means that any traffic that is
#    trying to initiate traffic to your server on a HIGH port will be
#    rejected.#
#    The only HIGH port traffic that will be accepted is either return
#    traffic that the server originally initiated or UDP-based traffic.#
# NOTE2: Please note that port 20 for ACTIVE FTP sessions should NOT use
#     SYN filtering.  Because of this, we must specifically allow it in.#
echo "  - Enabling all input REPLY [TCP/UDP] traffic on high ports."
/sbin/ipchains -A input -j ACCEPT ! -y -p tcp -s $UNIVERSE -d $EXTIP $UNPRIVPORTS
/sbin/ipchains -A input -j ACCEPT -p tcp -s $UNIVERSE ftp-data -d $EXTIP $UNPRIVPORTS
/sbin/ipchains -A input -j ACCEPT -p udp -s $UNIVERSE -d $EXTIP $UNPRIVPORTS

Kijk ook even op http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS/cHTML/TrinityOS-c.html
Op dinsdag 26 maart 2002 13:02 schreef andre_at_home het volgende:
ik draai geen ftp-server achter mijn NAT, alleen op de server zelf.
Poorten: boven 1023. Ik heb nog nooit problemen ermee gehad. maar wat niet is kan komen.... Waarom zou PMFirewall ze open laten.... en hoe zou ik ze het eenvoudigst dicht kunnen zetten door aanpassing van het script. Met DENY zet ik natuurlijk alles dicht maar ik kan zelf nog niet overzien wat voor andere consequneties dit heeft.
{/beetje off-topic...]

Verwijderd

Topicstarter
Op dinsdag 26 maart 2002 13:39 schreef Mr.Unbreakable het volgende:
Poorten >1023 openlaten is volgens mij specifiek bedoeld voor ACTIVE ftp, als je dat niet gebruikt kun je ze zowieso dichtgooien denk ik. Comment gewoon die regels even en kijk wat er gebeurt.
Oeps, dat is niet helemaal waar. Als je ftp _server_ PASV mode ondersteunt connecten clients wel degelijk op poorten >1023. Dan nog zou ik niet de hele range openzetten maar een klein deel, in Proftpd kun je dan aangeven welke poorten dat zijn (meen "Passiveports="). Ondersteunt je _server_ alleen ACTIVE mode dan heb je ze niet nodig, en als je _clients_ alleen in PASV mode met servers op het Internet connecten ook niet.

Verwijderd

Topicstarter
Als beloofd m'n (lange) firewall script. Ben benieuwd of iemand wat vindt dat ACTV ftp verkeer blokt...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
case "$1" in
  start)
  echo -n "Starting firewall: "

  # ===
  # DECLARATIONS
  # ===

    # Interfaces
    EXTIF="eth1"
    INTIF="eth0"
    LOOPBACKIF="lo"

    # Networks
    INTLAN="192.168.0/255.255.255.0"
    UNIVERSE="0.0.0.0/0"

    # IP-addresses
    EXTIP="10.0.0.150"
    LOOPBACKIP="127.0.0.1"

    # Ports
    UNPRIVPORTS="1024:65535"


  # ===
  # INITIALISE
  # ===

    # Disable IP spoofing attacks
    for file in /proc/sys/net/ipv4/conf/*/rp_filter
    do
    echo "2" > $file
    done

    # Enable TCP SYN Cookie protection
    echo "1" > /proc/sys/net/ipv4/tcp_syncookies

    # ---
    # Ensure that various ICMP sanity settings are there
    # ---

    # Disable ICMP broadcast echo protection
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 

    # Enable bad error message protection
    echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 

    # Disable ICMP Re-directs
    for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
      echo "0" > $file
    done

    # Ensure that source-routed packets are dropped
    for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do  
    echo "0" > $file
    done

    # Log spoofed, source-routed, and redirect packets
    for file in /proc/sys/net/ipv4/conf/*/log_martians; do
    echo "1" > $file
    done

    # Support for the proper masquerading of FTP transfer (using PORT method)
    /sbin/depmod -a
    /sbin/modprobe ip_masq_ftp

    # Enable IP-forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Enable IP-defragmenting
    echo 1 > /proc/sys/net/ipv4/ip_always_defrag

    # Set MASQ timeouts
    /sbin/ipchains -M -S 7200 10 160

    # Clear previous configuration and set default policy
    /sbin/ipchains -P input ACCEPT
    /sbin/ipchains -P output ACCEPT
    /sbin/ipchains -P forward REJECT
    /sbin/ipchains -F input
    /sbin/ipchains -F output
    /sbin/ipchains -F forward




  # ===
  # INPUT CHAIN
  # ===


    # ---
    # Loopback interface
    # ---

    # Loopback interface
    /sbin/ipchains -A input -i $LOOPBACKIF -s $UNIVERSE -d $UNIVERSE -j ACCEPT


    # ---
    # Internal interface
    # ---

    # Internal lan, going anywhere is valid
    /sbin/ipchains -A input -i $INTIF -s $INTLAN -d $UNIVERSE -j ACCEPT

  
    # ---
    # External interface
    # ---

    # Remote interface, claiming to be local machines (IP spoofing), log & reject
    /sbin/ipchains -A input -i $EXTIF -s $INTLAN -d $UNIVERSE -l -j REJECT

    # SMB: Reject traffic from and to external addresses
    /sbin/ipchains -A input -i $EXTIF -p tcp -s $UNIVERSE -d $EXTIP --sport 137:139 -j REJECT
    /sbin/ipchains -A input -i $EXTIF -p tcp -s $UNIVERSE -d $EXTIP --dport 137:139 -j REJECT

    # ICMP: Allow packets from all external addresses
    /sbin/ipchains -A input -i $EXTIF -p icmp -s $UNIVERSE -d $EXTIP -j ACCEPT

    # NTP: Allow time-servers to synchronise (ntp.xs4all.nl / ntp0.nl.net)
    /sbin/ipchains -A input -i $EXTIF -p udp -s 194.109.6.65  --sport 123 -d $EXTIP --dport 123 -j ACCEPT
    /sbin/ipchains -A input -i $EXTIF -p udp -s 193.67.79.202 --sport 123 -d $EXTIP --dport 123 -j ACCEPT


    # ---
    # All interfaces
    # ---

  
    # ---
    # Port forwarding
    # ---


    # ---
    # High ports 
    # ---

    # Enable all high unprivileged ports for all reply TCP/UDP traffic
    #
    # The use of the "! -y" flag filters TCP traffic that doesn't have the
    # SYN bit set. In other words, this means that any traffic that is
    # trying to initiate traffic to your server on a HIGH port will be
    # rejected.
    #
    # The only HIGH port traffic that will be accepted is either return
    # traffic that the server originally initiated or UDP-based traffic.
    # 
    # Please note that port 20 for ACTIVE FTP sessions should NOT use
    # SYN filtering. Because of this, we must specifically allow it in.
    #
    /sbin/ipchains -A input -p tcp -s $UNIVERSE --sport 20 -d $EXTIP $UNPRIVPORTS -j ACCEPT
    /sbin/ipchains -A input ! -y -p tcp -s $UNIVERSE -d $EXTIP $UNPRIVPORTS -j ACCEPT
    /sbin/ipchains -A input -p udp -s $UNIVERSE -d $EXTIP $UNPRIVPORTS -j ACCEPT


    # ---
    # Catch all input rule
    # ---

    # All other incoming traffic is logged and rejected
    /sbin/ipchains -A input -s $UNIVERSE -d $UNIVERSE -l -j REJECT 




  # ===
  # OUTPUT CHAIN
  # ===


    # ---
    # Loopback interface
    # ---

    # Loopback interface
    /sbin/ipchains -A output -i $LOOPBACKIF -s $UNIVERSE -d $UNIVERSE -j ACCEPT


    # ---
    # Internal interface
    # ---

    # Local interface, any source going to local net is valid.
    /sbin/ipchains -A output -i $INTIF -s $UNIVERSE -d $INTLAN -j ACCEPT


    # ---
    # External interface
    # ---

    # Reject outgoing traffic to the local net from the remote interface, 
    # (stuffed routing), log and reject
    /sbin/ipchains -A output -i $EXTIF -s $UNIVERSE -d $INTLAN -l -j REJECT

    # Reject outgoing traffic from the local net from the external interface,
    # (stuffed masquerading), log and reject
    /sbin/ipchains -A output -i $EXTIF -s $INTLAN -d $UNIVERSE -l -j REJECT
 
    # SMB
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --sport 137:139 -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE --dport 137:139 -j REJECT

    # Some common trojans 
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 6776 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 12345 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 20034 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 31337 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 54320 -l -j REJECT
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP -d $UNIVERSE 54321 -l -j REJECT

    # ICMP: Allow ICMP traffic out
    /sbin/ipchains -A output -i $EXTIF -p icmp -s $UNIVERSE -d $UNIVERSE -j ACCEPT

    # NTP: Allow time-server to synchronise
    /sbin/ipchains -A output -i $EXTIF -p udp -s $EXTIP --sport 123 -d $UNIVERSE -j ACCEPT

    # Allow all high ports for return traffic
    /sbin/ipchains -A output -p tcp -s $EXTIP $UNPRIVPORTS -d $UNIVERSE -j ACCEPT
    /sbin/ipchains -A output -p udp -s $EXTIP $UNPRIVPORTS -d $UNIVERSE -j ACCEPT


    # ---
    # All interfaces
    # ---


    # ---
    # Catch all output rule
    # ---

    # All other outgoing is logged and rejected
    /sbin/ipchains -A output -s $UNIVERSE -d $UNIVERSE -l -j REJECT




  # ===
  # FORWARD CHAIN
  # ===

    # Masquerade from local net on local interface to anywhere
    /sbin/ipchains -A forward -i $EXTIF -s $INTLAN -d $UNIVERSE -j MASQ

    # All other forwarding is logged and rejected
    /sbin/ipchains -A forward -s $UNIVERSE -d $UNIVERSE -l -j REJECT

  echo "done."
  ;;


  stop)
    echo -n "Stopping firewall: "
    /sbin/ipchains -F
    /sbin/ipchains -X
    /sbin/ipchains -P input ACCEPT
    /sbin/ipchains -P output ACCEPT
    /sbin/ipchains -P forward ACCEPT
    echo 0 > /proc/sys/net/ipv4/ip_always_defrag
    echo 0 > /proc/sys/net/ipv4/ip_forward
    echo "done."
    ;;


  restart)
    echo "Restarting firewall"
    /etc/init.d/firewall stop
    /etc/init.d/firewall start
  ;;
 

  *)
    echo "Usage: /etc/init.d/firewall {start|stop|restart}"
    exit 1
  ;;

esac

Verwijderd

Op dinsdag 26 maart 2002 13:39 schreef Mr.Unbreakable het volgende:
Zei ik dan dat ie achter je NAT stond? ;) Poorten >1023 openlaten is volgens mij specifiek bedoeld voor ACTIVE ftp, als je dat niet gebruikt kun je ze zowieso dichtgooien denk ik. Comment gewoon die regels even en kijk wat er gebeurt.

[offtopic]
Iets verder dichtzetten (geen "ongevraagd" / niet door jou geinitieerd verkeer accepteren) doe je als volgt:
........
Kijk ook even op http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS/cHTML/TrinityOS-c.html
[..]
Ok, ik heb weer eens wat te bestuderen. Die link kende ik al en is vaak niet te bereiken, helaas.

Verwijderd

offtopic:
[quote]
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward REJECT
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
[/quote]

Dus je gaat eerst je policies zetten en daarna je regels weer flushen? :?

Bovendien staan je policies op ACCEPT. Dat levert je slechts een marginale winst op qua veiligheid. Je bent niet veilig voor nieuwe trojans waar jij nog nooit van hebt gehoord. Ik krijg veel scans op 27374 wat als het goed is SubSeven is. Die wordt door jouw firewall niet geblocked.

Verwijderd

hoe belangrijk het is om een firewall te hebben blijkt wel uit mijn log. Mijn ftp proberen ze telkens te benaderen:
Mar 24 04:30:54 home in.ftpd[18725]: refused connect from 212.130.63.194
Mar 24 04:30:54 home in.ftpd[18726]: refused connect from 212.130.63.194
Mar 24 10:50:45 home in.ftpd[19213]: refused connect from 212.78.157.145
Mar 24 19:38:34 home in.ftpd[19892]: refused connect from 193.251.50.161
Mar 25 02:36:19 home in.ftpd[20430]: refused connect from 213.66.213.194
Mar 25 03:09:56 home in.ftpd[20475]: refused connect from 213.25.70.126
Mar 25 04:08:24 home in.ftpd[20630]: refused connect from 80.133.239.78
Mar 25 14:12:40 home in.ftpd[21407]: refused connect from 80.133.239.78
Mar 25 15:35:31 home in.ftpd[21512]: refused connect from 80.11.17.78
Mar 25 20:38:57 home login: ROOT LOGIN ON tty2
Mar 25 21:18:23 home in.ftpd[21980]: refused connect from 80.11.17.78
Mar 26 06:54:35 home in.ftpd[22804]: refused connect from 213.122.16.51
Mar 26 07:31:47 home login: ROOT LOGIN ON tty2
Mar 26 10:12:47 home in.ftpd[23215]: refused connect from 213.122.172.178
Mar 26 11:13:23 home in.ftpd[23296]: refused connect from 155.230.152.166
Mar 26 14:16:32 home in.ftpd[23531]: refused connect from 213.25.234.239
Mar 26 14:17:26 home in.ftpd[23533]: refused connect from 217.225.208.183
Mar 26 23:33:26 home login: ROOT LOGIN ON tty2
Mar 27 02:17:00 home in.ftpd[24494]: refused connect from 148.245.152.25
Mar 27 09:21:25 home in.ftpd[25158]: refused connect from 217.230.12.127

Verwijderd

Topicstarter
Op woensdag 27 maart 2002 09:48 schreef Ghoster het volgende:
Dus je gaat eerst je policies zetten en daarna je regels weer flushen? :?
Dat maakt niet uit toch? Ik dacht dat het flushen alleen van toepassing is op je rulesets en niet op je policies. Kan het mis hebben, maar (net nagekeken) staat b.v. ook zo in het TrinityOS script. Schrok wel dat ik m'n default policies even op ACCEPT had laten staan. Een keer veranderd voor wat testdoeleinden en nooit meer teruggezet blijkbaar... :(
Pagina: 1