iptables starten
iptables starten
Hallo,
ich habe mir ein Firewall Script zusammengestrickt und möchte es gerne manuell starten.
Wenn ich ./xyz eingebe erscheint:
: bad interpreter: No such file or directory
Ich bin im richtigem Verzeichnis und das Script ist auch dort zu finden.
Ausführbar ist es auch und ich bin als root eingeloggt.
Fehlt mir noch ein Paket welches ich nicht installiert sein könnte ?
Noch eine Frage:
Standard mäßig befindet sich iptables in /usr/sbin/
Dort ist es aber nicht zu finden ???
iptables ist installiert, welches der Befehl :
iptables -vL mir anzeigt.
Ich nutze Debian 3.0.
Danke für Eure Hilfe.
Grüße
DaGrrr
ich habe mir ein Firewall Script zusammengestrickt und möchte es gerne manuell starten.
Wenn ich ./xyz eingebe erscheint:
: bad interpreter: No such file or directory
Ich bin im richtigem Verzeichnis und das Script ist auch dort zu finden.
Ausführbar ist es auch und ich bin als root eingeloggt.
Fehlt mir noch ein Paket welches ich nicht installiert sein könnte ?
Noch eine Frage:
Standard mäßig befindet sich iptables in /usr/sbin/
Dort ist es aber nicht zu finden ???
iptables ist installiert, welches der Befehl :
iptables -vL mir anzeigt.
Ich nutze Debian 3.0.
Danke für Eure Hilfe.
Grüße
DaGrrr
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Check 'mal die erste Zeile deines "xyz" Skriptes. Dort steht normaler weise
Der Fehler soll sagen, dass der dort angegebene Interpreter nicht gefunden wird.
Patrick
Code: Alles auswählen
#!/pfad/zum/interpreter
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Hallo,
Danke Euch beiden.
Den Pfad habe ich gefunden.
In meinem Script habe ich stehen:
#!/bin/tcsh
tcsh ist installiert. Warum kann ich das Script nicht ausführen ?
Es erscheint immernoch die gleiche Fehlermeldung wie oben beschrieben.
Bin root. Das Script ist ausführbar.
Hier mal der Anfang des Scriptes:
#!/bin/tcsh
# Firewallscript für xyz
# ----------------------------------------------------------
# PART I: Variablen
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
Grüße
DaGrrr
Danke Euch beiden.
Den Pfad habe ich gefunden.
In meinem Script habe ich stehen:
#!/bin/tcsh
tcsh ist installiert. Warum kann ich das Script nicht ausführen ?
Es erscheint immernoch die gleiche Fehlermeldung wie oben beschrieben.
Bin root. Das Script ist ausführbar.
Hier mal der Anfang des Scriptes:
#!/bin/tcsh
# Firewallscript für xyz
# ----------------------------------------------------------
# PART I: Variablen
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
Grüße
DaGrrr
- feltel
- Webmaster
- Beiträge: 10476
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Bei solchen einfachen Skripen sollte man als Interpreter POSIX-Konform "/bin/sh" verwenden, um das Skript portabel zu halten.
/bin/sh ist dann ein Link auf eine existierende Shell:
Natürlich musst Du dann die Variablenzuweisungen/Schleifen auch anpassen. Siehe auch http://www.debian.org/doc/debian-policy ... #s-scripts
/bin/sh ist dann ein Link auf eine existierende Shell:
Code: Alles auswählen
feltel@skywalker:/bin$ ls -al|grep sh
-rwxr-xr-x 1 root root 511400 8. Apr 21:07 bash
lrwxrwxrwx 1 root root 4 2. Jan 2001 rbash -> bash
lrwxrwxrwx 1 root root 4 2. Jan 2001 sh -> bash
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
- feltel
- Webmaster
- Beiträge: 10476
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Zeig doch mal das Script.
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
Hallo,
hier mein Script.
Das Script habe ich mit Hilfe des Buches "Das firewall Buch" von Wolfgang
Barth erstellt. Auf meinem ehemaligen SuSe Linux lief das Script ohne Probleme !
Ich hoffe es hilft das Problem zu finden.
Grüße
DaGrrr
#!/bin/sh
# Firewallscript für xyz
# ----------------------------------------------------------
# PART I: Variablen
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
# ----------------------------------------------------------
# ip hosts
set surfer = 192.168.0.4 # Meine IP
set ns = 192.168.0.1 # Router
set mail = 213.165.64.20 # GMX
set FRIEND = 192.168.0.3/255.255.255.0 # Server
# ----------------------------------------------------------
# PART II: Grundkonfiguration: absichern
# ----------------------------------------------------------
# dynamische Kernelparameter setzen
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
echo "1" > /proc/sys/net/ipv4/conf/$IF/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$IF/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$IF/log_martians
# ----------------------------------------------------------
# Default Policy und flush
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -F # flush aller chains
# ----------------------------------------------------------
# spoof protection
$IPTABLES -A INPUT -s $surfer -i $IF -j DROP
# ----------------------------------------------------------
# lokale Prozesse
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# ----------------------------------------------------------
# PART III: endgültige Filterregeln
# ----------------------------------------------------------
# ----------------------------------------------------------
# DROP & LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP "
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP "
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP "
$IPTABLES -A my_drop -j DROP
# ----------------------------------------------------------
# ICMP
# ping: 8 und 0, ausgehend
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j my_drop
# source quench (4)
$IPTABLES -A OUTPUT -p ICMP --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type source-quench -j my_drop
# time exceeded (11)
$IPTABLES -A OUTPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# parameter problem (12)
$IPTABLES -A OUTPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
# destination unreachable (3)
$IPTABLES -A OUTPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT
# ----------------------------------------------------------
# DNS
$IPTABLES -A OUTPUT -p UDP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p UDP --dport $p_high -s $ns \
--sport domain -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $ns \
--sport domain ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport domain --syn -j my_drop
$IPTABLES -A INPUT -p UDP --sport domain -j my_drop
# ----------------------------------------------------------
# SMTP, POP3
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport smtp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $mail \
--sport smtp ! --syn -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport pop3 -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport $p_high \
-s $mail --dport pop3 ! --syn -j ACCEPT
# ----------------------------------------------------------
# HTTP
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport http -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport http ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport http --syn -j my_drop
# ----------------------------------------------------------
# HTTP via SSL
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport https -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport https ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport https --syn -j my_drop
# ----------------------------------------------------------
# ident: reject
$IPTABLES -A INPUT -p TCP --dport auth --syn -j REJECT
# ----------------------------------------------------------
# ftp, out, control connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport ftp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport ftp ! --syn -j ACCEPT
# ftp, out, passive data connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport $p_high -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport $p_high ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport ftp --syn -j my_drop
# ----------------------------------------------------------
# Ausputzer: Rest sperren, loggen
$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j REJECT
hier mein Script.
Das Script habe ich mit Hilfe des Buches "Das firewall Buch" von Wolfgang
Barth erstellt. Auf meinem ehemaligen SuSe Linux lief das Script ohne Probleme !
Ich hoffe es hilft das Problem zu finden.
Grüße
DaGrrr
#!/bin/sh
# Firewallscript für xyz
# ----------------------------------------------------------
# PART I: Variablen
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
# ----------------------------------------------------------
# ip hosts
set surfer = 192.168.0.4 # Meine IP
set ns = 192.168.0.1 # Router
set mail = 213.165.64.20 # GMX
set FRIEND = 192.168.0.3/255.255.255.0 # Server
# ----------------------------------------------------------
# PART II: Grundkonfiguration: absichern
# ----------------------------------------------------------
# dynamische Kernelparameter setzen
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
echo "1" > /proc/sys/net/ipv4/conf/$IF/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$IF/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$IF/log_martians
# ----------------------------------------------------------
# Default Policy und flush
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -F # flush aller chains
# ----------------------------------------------------------
# spoof protection
$IPTABLES -A INPUT -s $surfer -i $IF -j DROP
# ----------------------------------------------------------
# lokale Prozesse
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# ----------------------------------------------------------
# PART III: endgültige Filterregeln
# ----------------------------------------------------------
# ----------------------------------------------------------
# DROP & LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP "
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP "
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP "
$IPTABLES -A my_drop -j DROP
# ----------------------------------------------------------
# ICMP
# ping: 8 und 0, ausgehend
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j my_drop
# source quench (4)
$IPTABLES -A OUTPUT -p ICMP --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type source-quench -j my_drop
# time exceeded (11)
$IPTABLES -A OUTPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# parameter problem (12)
$IPTABLES -A OUTPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
# destination unreachable (3)
$IPTABLES -A OUTPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT
# ----------------------------------------------------------
# DNS
$IPTABLES -A OUTPUT -p UDP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p UDP --dport $p_high -s $ns \
--sport domain -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $ns \
--sport domain ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport domain --syn -j my_drop
$IPTABLES -A INPUT -p UDP --sport domain -j my_drop
# ----------------------------------------------------------
# SMTP, POP3
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport smtp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $mail \
--sport smtp ! --syn -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport pop3 -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport $p_high \
-s $mail --dport pop3 ! --syn -j ACCEPT
# ----------------------------------------------------------
# HTTP
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport http -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport http ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport http --syn -j my_drop
# ----------------------------------------------------------
# HTTP via SSL
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport https -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport https ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport https --syn -j my_drop
# ----------------------------------------------------------
# ident: reject
$IPTABLES -A INPUT -p TCP --dport auth --syn -j REJECT
# ----------------------------------------------------------
# ftp, out, control connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport ftp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport ftp ! --syn -j ACCEPT
# ftp, out, passive data connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport $p_high -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport $p_high ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport ftp --syn -j my_drop
# ----------------------------------------------------------
# Ausputzer: Rest sperren, loggen
$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j REJECT
- feltel
- Webmaster
- Beiträge: 10476
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Die set-Anweisungen funktionieren so nicht, Deine sind csh-spezifisch. Mach sie mal so:
Also ohne führendes "set" und ohne Leerzeichen zwischen Variablenname und Wert. Und wenn Du Werte mit Leerzeichen zuweisen musst, dann setzt die in Gänsefüschen.
Code: Alles auswählen
variable=wert
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM