Forums Neueste Beiträge
 

Script beim Systemstart ausführen

28/12/2009 - 23:35 von Dominik Schmidt | Report spam
Hallo,

ich habe ein SUSE Linux 11 System als NAT-Router eingerichtet.
Das interne Interface heißt eth0, das externe dsl0.

Wenn ich nun ein Terminalfenster starte, mich als root anmelde (su root)
und anschließend mein zusammengefrickeltes Script starte, funktioniert es.
Das heißt, die anderen Maschinen im Netzwerk, die so konfiguriert sind,
dass sie das Linux-System als Router verwenden, kommen ins Internet.

Meine bisherigen Versuche, das Script beim Systemstart automatisch starten
zu lassen, sind allerdings gescheitert.
Ich habe ein Init-Script (/etc/init.d) erstellt und es über den
Runlevel-Editor auf Runlevel 5 gestellt.
Im anderen Versuch habe ich den Aufruf in die boot.local eingetragen.
In beiden Fàllen wird das Script gestartet, denn beim Systemstart, kurz
bevor die GUI erscheint, wird die Ausgabe vom Script ("NAT routing wird
gestartet...") angezeigt.
Es kommt aber keine andere Maschine ins Internet.

Ich bin gerade am Vermuten, dass das Script zu früh gestartet wird, denn
bei meinen Versuchen, es automatisch laden zu lassen, hat ein
anschließender "iptables -L" viel mehr angezeigt, als wenn ich das Script
manuell gestartet habe.
Vielleicht kann jemand einem Linux-Neuling einen Tipp geben...


Hier mein Script:


#!/bin/sh

echo "NAT routing wird gestartet...";

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

iptables --table nat --append POSTROUTING --out-interface dsl0 -j
MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
 

Lesen sie die antworten

#1 Andreas Kohlbach
29/12/2009 - 01:26 | Warnen spam
Dominik Schmidt wrote on 28. December 2009:

ich habe ein SUSE Linux 11 System als NAT-Router eingerichtet.
Das interne Interface heißt eth0, das externe dsl0.

Wenn ich nun ein Terminalfenster starte, mich als root anmelde (su root)
und anschließend mein zusammengefrickeltes Script starte, funktioniert es.
Das heißt, die anderen Maschinen im Netzwerk, die so konfiguriert sind,
dass sie das Linux-System als Router verwenden, kommen ins Internet.

Meine bisherigen Versuche, das Script beim Systemstart automatisch starten
zu lassen, sind allerdings gescheitert.
Ich habe ein Init-Script (/etc/init.d) erstellt und es über den
Runlevel-Editor auf Runlevel 5 gestellt.
Im anderen Versuch habe ich den Aufruf in die boot.local eingetragen.
In beiden Fàllen wird das Script gestartet, denn beim Systemstart, kurz
bevor die GUI erscheint, wird die Ausgabe vom Script ("NAT routing wird
gestartet...") angezeigt.
Es kommt aber keine andere Maschine ins Internet.

Ich bin gerade am Vermuten, dass das Script zu früh gestartet wird, denn
bei meinen Versuchen, es automatisch laden zu lassen, hat ein
anschließender "iptables -L" viel mehr angezeigt, als wenn ich das Script
manuell gestartet habe.
Vielleicht kann jemand einem Linux-Neuling einen Tipp geben...



[...]

Dem Skript mal eine hohe Ziffer, wie "S99..." geben.

Ggf. in /etc/rc.local ausführen. Das Skript kann man von dort aufrufen am
besten am Ende (vor "exit 0"), oder einpasten.
Andreas
Linux: The choice of a GNU generation.

Ähnliche fragen