Ini.d script LSB konform machen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
pluto21
Beiträge: 1
Registriert: 01.03.2017 11:57:35

Ini.d script LSB konform machen

Beitrag von pluto21 » 01.03.2017 12:30:51

Moin leute ich habe ein altes init.d script das ich lsb konform machen muss. Leider verstehe ich nicht ganz was ich noch alles hinzufügen muss. Bisher bin ich so weit gekommen:
### BEGIN INIT INFO
# Provides: port_redirect
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: This is a port redirection script
# Description: This is a test daemon
# This provides example about how to
# write a Init script.
### END INIT INFO
#!/bin/sh

# Vollen Pfad von iptables
IPTABLES=/sbin/iptables

#Alle alten Regeln loeschen, anschliessend die Default-Policy setzen
$IPTABLES -F
$IPTABLES -F -t nat

echo 0 > /proc/sys/net/ipv4/ip_forward


# https Anfragen auf Port 443 von XX auf Port 8443 umleiten
$IPTABLES -t nat -A PREROUTING -d 10.26.XXX.XX -p tcp --dport 443 -j DNAT --to-destination :8443
# https Anfragen auf Port 443 von Website auf Port 8443 umleiten
$IPTABLES -t nat -A PREROUTING -d 10.26.XXX.XX -p tcp --dport 443 -j REDIRECT --to-port 8443
# http Anfragen auf Port 80 von Website auf Port 8180 umleiten
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d 10.26.XXX.XX --dport 80 -j REDIRECT --to-port 8180

# interne https Anfragen auf Port 443 von Website auf Port 8443 umleiten
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d 10.26.XXX.XX--dport 443 -j REDIRECT --to-port 8443
# http Anfragen auf Port 90 von JMF auf Port 8180 umleiten
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d 10.26.XXX.XX --dport 80 -j REDIRECT --to-port 8180


echo 1 > /proc/sys/net/ipv4/ip_forward
Kann mir jemand hier weiterhlefen?
Danke

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Ini.d script LSB konform machen

Beitrag von rendegast » 01.03.2017 14:02:45

LSB wird imo dadurch erfüllt, daß der Block INIT-INFO existiert.

Ob der Header schlüssig ist, kannst Du mit wiederholten Aufrufen von

Code: Alles auswählen

insserv -v
ls -l /etc/rc*d/*{port_redirect,netw}*
prüfen.


Der Übersichtlichkeit halber sollte der Skriptname dem 'Provides:' entsprechen.
Das Skript würde ich mit einem Befehl ':' abschließen.
(Vgl. andere init-Skripte)

Der Shebang '#!/bin/sh' sollte in die erste Zeile,
allein schon, damit Editoren das richtige Syntax-Highlighting benutzen.



Du brauchst eine Fallunterscheidung,
denn sonst werden bei jedem Aufruf des Skriptes (start,stop) die Anweisungen (iptables, echo) ausgeführt.
Auch werden solche Anweisungen normalerweise nicht im init-Skript selbst gemacht,
sondern in einem Arbeitsskript, welches vom init-Skript aufgerufen wird.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten