Hi,
ich versuche mich grad an bash Programmierung. Ich habe auch schon einiges hinbekommen. Ich wollte jetzt ein einfaches Iptables Script mit dialog vereinfachen (nur aus Lehrzwecken, muss nicht unbedingt sinnvoll sein;) ).
Das Problem ist mir fehlt der Ansazt.
Es soll halt so ausehen: Man startet das Script und landet halt in einem dialog Fenster wo man durch anwählen entweder eine Regel hinzufügen kann oder beenden und somit das Script ausführen kann. Beim Regel hinzufügen stoße ich auf das erste Problem. (Aus der Eingabe (dialog --backtitle IPT --title "Bitte Port und Protokoll eingeben" --inputbox "" 0 0 2> tmp.dialog1) müsste ich ja zwei Variablen abfangen, (bzw aus der temporären Textdatei) einmal den Port und einmal das Protokoll, z.B: 80 tcp.)
/Edit (Wie ich zwei Variablen aus einer tmp Datei auslese habe ich jetzt herausgefunden)
var1=`head -n 1 temp.dialog` var2=`tail -n 1 temp.dialog`
Auch ein passendes Menu hätte ich jetzt gefunden:
dialog --backtitle "IPT" \ --form " Bitte Port und Protokoll eingeben " 21 70 18 \ "port" 2 4 "" 2 15 20 0\ "protokoll" 4 4 "" 4 15 20 0\ 2> temp.dialog
Was bleibt ist das beim klick auf weiter das auswahlfenster wider kommt um einen neuen Port und Protokoll einzugebn. Und diese dann in zwei anderen Variablen zu speichern. ))) ///Edit
Wenn ich dann auf Weiter klicke müsste ich wider auf das Auswahlfenster von vorhin kommen um zb eine neue Regel hinzu zu fügen. (Eig müsste das Script dann in dem Teil wider von vorne los laufen) So nur wenn dann wider die Eingabe von Port und Protokoll kommt muss ich diese ja in zwei neuen Variablen Speichern da diese dann ja neue Werte enthalten. Wenn man dann seine 4 bis 5 Regeln eingegeben hat geht es dann ins eigentliche Script über, wo dann die Variablen in die jeweiligen Variablen für die Iptables Befehle eingesetzt werden.
IN_ALLOWED_Variable2(Protokoll)="Variable1(Port)" OUT_ALLOWED_Variable4="Variable3" IN_ALLOWED_Variable6="Variable5" usw Diese Werden dann halt weiter unten in die Befehele eingesetzt also zb: for $Variable1(Port) in $IN_ALLOWED_$Variable2(Protokoll); do echo "Accepting $Variable2 port $Variable1" iptables -A INPUT -t filter -p $Variable2 --dport $Variable1(port) -j ACCEPT done
Joa das alles will ich eig nur machen weil es mich interessiert wie es geht und weil ich diese Art von Script öfters einsetzen könnte. Leider weiß ich nicht wie ich dies Realisieren soll. Ich würde mich freuen wenn mir jemand einen Ansatzt sagen könnte wie ich die einzelnen Stellen realisieren könnte.
Hoffe man versteht einigermaßen was ich meine.
Danke
MFG Xabot