# Initscript wird nicht ausgeführt



## shrink (11. September 2007)

Hab mir ein script für iptables geschrieben.
Es liegt unter /etc/init.d/meinScript .
Danach hab ich mit "ln -s /etc/init.d/meinScript /etc/init.d/rc3.d/S99meinScript" in den 
Initordner für runlevel 3 gelinkt. 
Wenn ich das das script mit "meinScript start" aufrufe t es.
Jedoch nicht beim booten.
Weiss jemand woran es liegt.
Anbei das Script:


```
#!/bin/sh

ipt=/usr/sbin/iptables

case "$1" in

	start)
		#######################################
		#vorhandene ketten und regeln loeschen
		#######################################

		$ipt -F
		$ipt -X

		#####################################
		#erst mal alles sperren
		#####################################

		$ipt -P INPUT DROP
		$ipt -P OUTPUT DROP
		$ipt -P FORWARD DROP

		#######################################
		#definieren was rein darf
		#######################################

		#http
		$ipt -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

		#https
		$ipt -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

		#ftp steuerdaten
		$ipt -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT

		#ftp daten
		$ipt -A INPUT -i eth0 -p udp --dport 20 -j ACCEPT

		#ssh
		$ipt -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

		#dns tcp
		$ipt -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT

		#dns udp
		$ipt -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT

		#webmin
		$ipt -A INPUT -i eth0 -p tcp --dport 10000 -j ACCEPT

		######################################
		#definieren was raus darf
		######################################

		#http
		$ipt -A OUTPUT -o eth0 -p tcp --sport 80 -j ACCEPT

		#https
		$ipt -A OUTPUT -o eth0 -p tcp --sport 443 -j ACCEPT

		#ftp steuerdaten
		$ipt -A OUTPUT -o eth0 -p tcp --sport 21 -j ACCEPT

		#ftp daten
		$ipt -A OUTPUT -o eth0 -p udp --sport 20 -j ACCEPT

		#ssh
		$ipt -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT

		#dns tcp
		$ipt -A OUTPUT -o eth0 -p tcp --sport 53 -j ACCEPT

		#dns udp
		$ipt -A OUTPUT -o eth0 -p udp --sport 53 -j ACCEPT

		#webmin
		$ipt -A OUTPUT -o eth0 -p tcp --sport 10000 -j ACCEPT
		;;
		
	stop)
		#######################################
		#vorhandene ketten und regeln loeschen
		#######################################
		
		$ipt -F
		$ipt -X
		
		#######################################
		#alles erlauben
		#######################################
		
		$ipt -P INPUT ACCEPT
		$ipt -P OUTPUT ACCEPT
		$ipt -P FORWARD ACCEPT
		
		echo "iptables config. set to default. All ports open."
		;;
		
	status)
		echo "Statusabfrage noch nicht implementiert."
		;;
		
	*)
		echo "Usage: {start|stop|status}"
		;;
esac
	
exit 0
```


----------



## andy72 (11. September 2007)

Hat das Script denn die nötigen Berechtigungen ? --> chmod 0700 ?


----------



## Webstar (11. September 2007)

In welchen Runlevel startest Du beim booten?

Test!

```
jens@webstar2:~$ /sbin/runlevel
N 5
```

Schönen Tag noch, man liest sich. 
Euer Jens Ornot alias Webstar


----------



## andy72 (11. September 2007)

Als User hast Du gar kein Recht, einen Runlevel zu wechseln  das ist nur root vorbehalten...


----------



## Webstar (11. September 2007)

andy72 hat gesagt.:


> Als User hast Du gar kein Recht, einen Runlevel zu wechseln  das ist nur root vorbehalten...


Wie wechselt man den Runlevel?
Naaa!

per init 0...6! Oder?
Natürlich darfst Du selbiges nur als Root!

Du willst aber wissen in welchem Runlevel Du gerade bist?!
Und das findest Du mit dem Befehl /sbin/runlevel heraus. Auch als Otto-Normaluser.


```
jens@webstar2:~$ /sbin/runlevel
N 5
```
Die erste Stelle steht für den voherigen Runlevel und die zweite Stelle für den momentaten Runlevel!
N bedeutet das es keinen vorherigen Runlevel gab, und der Rechner in den Runlevel 5 bootete.
Weiter Infos liefert man runlevel.

Schönen Tag noch, man liest sich. 
Euer Jens Ornot alias Webstar


----------



## shrink (11. September 2007)

also default runlevel ist 3.
das script wird auch aufgerufen da es unter chkconfig --list als on aufgelistet ist.

edit: das script hat die nötigen rechte bzw. ist ausführbar.


----------



## andy72 (12. September 2007)

Sooooory @Webstar
Ich hatte /sbin/runlevel gar ned gelesen, sondern /sbin/init - hatte wahrscheinlich nur die N 5 gesehen und dann etwas überreagiert 

@shrink
Mit Deiner Erlaubnis kopiere ich Dein Script mal in mein Linux und werde das dann heute Abend mal testen - für mich sieht es aus, als dass es funktionieren muss.

LG
Andy


----------



## shrink (12. September 2007)

np,
das es funktionieren müsste denk ich mir auch .
wie gesagt es ist ja in der chkconfig --list im korrekten runlevel angezeit.
händisch ausgeführt ist es null problemo und da es mit der priorität S99 auf gerufen wird, sollte auch alles nötige geladen sein. iptables bzw. netfilter an sich wird doch vor den init scripten zusammen mit  den netzwerk cfg's geladen und müsste zum zeitpunkt zur verfügung stehen.


----------

