Toon posts:

[Debian] Ipchains - Waar plaats ik het script?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Gisteren Debian 2.2r5 (Potato) geinstalleerd. Wat HOWTO's verder draait het netwerk en heb ik zelfs IP-Masquerading aan de praat gekregen.

Wat ik nu niet voor elkaar krijg is het bouwen van een script dat de firewall-rules automatisch instelt na het booten. In RedHat kun je hiervoor volgens mij het bestand /etc/rc.d/rc.firewall aanmaken, maar in Debian bestaat de directory /etc/rc.d niet. Hoe regel ik dit (liefst een beetje veilig uiteraard)?

Verwijderd

Je kunt het bij debian onder /etc/init.d plaatsen, en daarna even update-rc.d <filenaam> defaults runnen :)

Verwijderd

Topicstarter
Op zaterdag 09 maart 2002 14:10 schreef sharpe het volgende:
Je kunt het bij debian onder /etc/init.d plaatsen, en daarna even update-rc.d <filenaam> defaults runnen :)
code:
1
2
cd /etc/inet.d
bash: cd: /etc/inet.d: No such file or directory

?

  • Newjersey
  • Registratie: November 2000
  • Laatst online: 10-08 23:25
Op zaterdag 09 maart 2002 14:13 schreef Mr.Unbreakable het volgende:

[..]
code:
1
2
cd /etc/inet.d
bash: cd: /etc/inet.d: No such file or directory

?
Op zaterdag 09 maart 2002 14:10 schreef sharpe het volgende:
Je kunt het bij debian onder /etc/init.d plaatsen, en daarna even update-rc.d <filenaam> defaults runnen :)
niet inet.d maar init.d

Verwijderd

Op zaterdag 09 maart 2002 14:13 schreef Mr.Unbreakable het volgende:

[..]
code:
1
2
cd /etc/inet.d
bash: cd: /etc/inet.d: No such file or directory

?
Volgens mij zei ik toch ook /etc/init.d/ ;)

Verwijderd

Topicstarter
Volgens mij zei ik toch ook /etc/init.d/ ;)
Dom, dom. Kan ik voor <filenaam> zelf iets kiezen? En moet ik die file nog executable maken oid?

Verwijderd

Je kunt elke naam gebruiken voor het script, het is maar net wat je leuk vindt, ik zelf zou wel iets makkelijks kiezen, firewall/packetfilter oid.
Daarna even chmod 755 doen :)

Verwijderd

Topicstarter
Kun je iets zeggen over wanneer dit script wordt uitgevoerd (ja tijdens booten :). Wat ik bedoel is 't volgende: het is toch handig om je firewall in te stellen voordat je NAT aanzet? Of kan ik dat ook het beste in het script doen?
Op zaterdag 09 maart 2002 14:21 schreef sharpe het volgende:
Je kunt elke naam gebruiken voor het script, het is maar net wat je leuk vindt, ik zelf zou wel iets makkelijks kiezen, firewall/packetfilter oid.
Daarna even chmod 755 doen :)

  • Jordi
  • Registratie: Januari 2000
  • Niet online

Jordi

#1#1

Lees ook de FAQ over runlevels eens door, daar word je vast ook wat wijzer van :)

Het zal wel niet, maar het zou maar wel.


Verwijderd

Topicstarter
Zal ik doen. Las in de man pages van update-rc.d al dat je de scripts eigenlijk in /etc/rc.RUNLEVEL.d/name moet plaatsen, en dat update-rc.d deze dan in /etc/init.d plaats. Roept bij mij meteen de vraag op wat update-rc.d dan _verder_ doet, kopieren kan ik ook. Maar ongetwijfeld vind ik dat in de FAQ >:)
Op zaterdag 09 maart 2002 14:35 schreef Jotti het volgende:
Lees ook de FAQ over runlevels eens door, daar word je vast ook wat wijzer van :)

Verwijderd

Topicstarter
Nog een middagje zitten spitten, toch snap ik nog niet hoe het werkt. In /etc/init.d staan de files ipmasq en ipmasq-kmod, die ook in die volgorde worden uitgevoerd. Het eerste script geeft op een gegeven moment de melding "Warning: you must enable IP forwarding for this machine by issuing command 'echo 1> /proc/sys/net/ipv4/ip_forward'."

Dat commando wordt echter al uitgevoerd, blijkbaar op voor mij mysterieuze wijze door dat ipmasq-kmode script (want het ipmasq script veroorzaakt de warning).

Kan iemand me uitleggen hoe dit in Debian standaard geregeld is? Lijkt me bovendien wel prettig om even m'n firewall-ruleset in te laten _voordat_ IP forwarding wordt aangezet...

Verwijderd

Topicstarter
Nog iets dat me opvalt: /etc/init.d/ipmasq en /etc/init.d/ipmasq-kmod worden geladen _voordat_ init aan de slag gaat. Tijdens het bootproces zie je op een gegeven moment de melding (INIT: entering runlevel: 2), en daarna worden keurig de Sxx scripts uitgevoerd in de juiste volgorde die in /etc/rc2.d staan.

Wat regelt er nu dat die ipmasq / ipmasq-kmod scripts geladen? Blijkbaar kan ik daar met update-rc.d dus niets aan wijzigen... (?)

Verwijderd

Topicstarter
Weer heel wat HOWTOs verder weet ik inmiddels aardig hoe het Debian bootproces in elkaar steekt, maar begin ik steeds minder te snappen van Ipmasq.

Blijkbaar had ik /etc/rcS.d over het hoofd gezien: files in deze directory (Kxx / Sxx) worden eerder uitgevoerd dan files in de directory /etc/rc2.d, en inderdaad worden van hieruit de scripts ipmasq en ipmasq-kmod aangeroepen. Die roepen op hun beurt de script /usr/sbin/ipmasq en /usr/ipmasq-kmod aan. ipmasq gebruikt als "Rulesdir" /etc/ipmasq/rules om de instellingen te bepalen, ipmasq-kmod gebruikt het bestand /etc/ipmasq/modules om te bepalen welke modules worden geladen. Dit bestand is echter leeg (worden geen modules in genoemd).

Inmiddels weet ik dus veel, maar snap ik er geen donder meer van. Concrete vragen (het voorgaande inachtnemend):

(1) Waar wordt nu daadwerkelijk het IP forwarden aangezet ('echo 1> /proc/sys/net/ipv4/ip_forward' commando), ik ben het namelijk nergens in die scripts tegengekomen.

(2) Hoe bouw ik hier veilig mijn eigen ruleset in (niet gehinderd door teveel voorkennis lijkt het me logisch om _eerst_ de firewall ruleset te speciferen en daarna pas ip forwarden aan te zetten). Ik neem toch aan dat ik niet in de /etc/ipmasq/rules moet gaan vogelen? Vraag is ook wat er dan wel gebeurd middels de files in die directory...

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
code:
1
2
      echo -n "Enabling packet forwarding: "
      echo 1 > /proc/sys/net/ipv4/ip_forward

staat bij mij in /etc/init.d/networking (potato)

Verwijderd

Topicstarter
Zoiets staat er bij mij ook, ja. Begrijp het script niet helemaal, maar volgens mij wordt het toch niet uitgevoerd vanuit dit script: in /etc/rcS.d heeft staan nl. S40networking, S46ipmasq en S47ipmasq-kmod. ipmasq en ipmasq-kmod worden dus blijkbaar NA dat networking script uitgevoerd, en komen op een gegeven moment toch nog met de waarschuwing dat IP forwarding moet worden aangezet (ipmasq script), wat daarna blijkbaar gebeurt (proefondervindelijk vast te stellen, op client bak kan ik internetten).

Leuk al die HOWTOs, maar aan de standaard masquerading HOWTO heb ik op deze manier dus geen donder, ik weet niet eens precies wat er gebeurt op m'n systeempje...
Op zaterdag 09 maart 2002 19:26 schreef blaataaps het volgende:
code:
1
2
      echo -n "Enabling packet forwarding: "
      echo 1 > /proc/sys/net/ipv4/ip_forward

staat bij mij in /etc/init.d/networking (potato)

Verwijderd

Topicstarter
Een laatste bericht om de topic af te sluiten (voor het archief). Inmiddels is het na veel proberen uiteindelijk gelukt. Het bleek natuurlijk helemaal niet nodig om _exact_ te begrijpen wat er gebeurde bij het uitvoeren van de ipmasq en ipmasq-kmod scripts in /etc, al moet ik zeggen dat het doorspitten van het Debian bootproces wel z'n nut heeft gehad >:)

Oplossing was de "remove" optie van update-rc.d. Daarmee heb ik de ipmasq/ipmasq-kmod scripts (die door apt-get automatisch worden geplaatst in /etc/init.d) uit het boot proces gedonderd en vervolgens met
code:
1
update-rc.d <mijn script> defaults

m'n eigen script erin gezet. Nu alleen nog even uitvogelen hoe dat keurig op de "start" en "stop" parameters kan reageren die er standaard bij booten resp. shutdown aan worden meegegeven, maar heel lastig zal dat niet zijn verwacht ik. In /etc/init.d staan tenslotte meer dan voldoende voorbeelden.

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh
case "$1" in
    start)
      echo -n "Mijn bootscriptje gaat nu starten ;)"
      ;;

    stop)
      echo -n "En nu stopt het..."
    ;;
    *)
      echo "hier kun je een helptekstje plaatsen ofzo"
      exit 1
    ;;
esac

exit 0

Zo zou het er ongeveer uit moeten komen te zien ;)
Pagina: 1