OPT_PORTBLOCK
:::[ OPT_PORTBLOCK ][ PORTBLOCK_VORARBEITEN][ PORTBLOCK_VARIABLEN ]:::
:::[ PORTBLOCK_SONSTIGES ][ PORTBLOCK_KONTAKT ][ PORTBLOCK_CHANGES ]:::

Portgruppen per Webinterface öffnen bzw. sperren

Die Grundidee hinter OPT_PORTBLOCK ist die abwechselnde Benutzung von Programmen, welche verschiedene Ports nutzen.
Damit man sich nicht merken muß, welches Programm nun welche Ports im einzelnen nutzt kann man mit OPT_PORTBLOCK Portgruppen anlegen und ihnen Namen geben.

Beispiel:
Man nutzt gelegentlich drei verschiedene Programme:

- FTPports: 21/tcp
- Programm_2ports: 410/tcp, 410/udp und 411/udp
- Programm_3ports: 417:419/tcp und 113/tcp (für ident)

Wenn man jetzt nur eins diese Programme benutzt wäre es besser wenn die Ports der Anderen gesperrt wären.
Mit OPT_PORTBLOCK kein Problem: Webinterface aufrufen und per Mausklick die Port- Gruppen schließen.

Hinweis:
Bestehende Verbindungen über einen mit PORTBLOCK gesperrten Port werden nicht unterbrochen.

WICHTIG! OPT_PORTBLOCK richtet keine Portforwardings ein! Es steuert nur die Ports!
Informationen zum Forwarding: /doc/deutsch/opt/portfw.html

Seit Version 1.3 sind die HTTPd-Rechte gesetzt (Siehe HTTPd-Doku):
Bereich:portblock
Recht:action

nach oben

WICHTIG! Vorarbeiten

Als erstes müssen alle Ports die mit opt_portblock gesteuert weden sollen mit Firewallregeln in der BASE.TXT ausgenommen werden (nicht sperren).

Beispiel BASE.TXT (für ftp[21], auth[113], 410/411 und 512 bis 514):

FIREWALL_DENY_PORT_N='5'	               	#no. of ports to reject/deny
FIREWALL_DENY_PORT_1='0:20		REJECT'	#privileged ports: reject or deny
FIREWALL_DENY_PORT_2='22:112 		REJECT'	#privileged ports: reject or deny
FIREWALL_DENY_PORT_3='114:409		REJECT'	#privileged ports: reject or deny
FIREWALL_DENY_PORT_4='412:416		REJECT'	#privileged ports: reject or deny
FIREWALL_DENY_PORT_5='420:1023		REJECT'	#privileged ports: reject or deny

Weitere Informationen unter /doc/deutsch/html/2_firewall.html

nach oben

PORTBLOCK_VARIABLEN

OPT_PORTBLOCK='yes'	# Werte: [ yes / no ]
	Soll das Opt-Paket installiert werden?


PB_PORTRULE_N='X'	# Werte: [ ZAHL ]
	Anzahl der Regeln welche verwaltet werden sollen


PB_PORTRULE_X='ftp'	# Werte: [ SERVICE / PORT / PORTRANGE ]
	Name des Service / Portnummer / Portrange
	Gibt an, welcher Port oder Service für Zugriffe aus dem Internet gesperrt
	werden soll. Hier ist sehr wichtig: gibt es in der /ETC/SERVICES einen
	Port-Namen muß dieser hier angegeben werden.
	Beispiele für Services:
	Port:	Service:
	21/tcp	ftp
	80	www
	113/tcp	auth
	Dabei muß auf Gross- und Kleinschreibung geachtet werden!
	Ansonsten wird die Portnummer angegeben.

	Beispiel Port 113 / tcp und udp:
	Dabei müssen zwei Regeln definiert werden: siehe Beispiel Regel 3 und 4.

	Sollen mehrere Ports auf einmal gesperrt werden:
	'417:419' bedeutet Ports 417 - 419, also die Ports 417, 418 und 419.

  	TOOL: unter /doc/deutsch/opt/portblock liegt ein HTML/Javascript-Tool mit
	      dem man Portnummern auf Services testen kann: servicecheck.html


PB_PROTOCOL_X='tcp'	# Werte: [ tcp / udp / both ]
	Wahl des Protokolls: tcp, udp oder beide (both)
	Wenn man sehr auf sicherheit bedacht ist, dann blockt man am besten alles
	( alles auf 'both' ), aber VORSICHT:
	Wenn ein Service ( /ETC/SERVICES ) gesperrt werden soll, dann darf NUR
	das Protokoll angegeben werden, welches in der /ETC/SERVICES angegeben
	ist, sonst kann es zu Fehlermeldungen und Fehlfunktionen kommen.

  	TOOL: unter /doc/deutsch/opt/portblock liegt ein HTML/Javascript-Tool mit
	      dem man Portnummern auf Services testen kann: servicecheck.html

PB_DIRECTIO_X='both'	# Werte: [ in / out / both ]
	Wahl der Firewallrichtung:
        in: Vom Internet ins Intranet
        out: Vom privaten Netz ins Internet
        both: Beide Richtungen blocken

        WICHTIG: Wenn einseitige Richtungsangaben [ IN / OUT ] gemacht werden, dann
        wird als inneres Netzwerk die Angabe der MASQ_NETWORK aus der CONFIG/BASE.TXT
        im Abschnitt Masquerading genutz. Bei mehreren Netzwerken kann es deshalb zu
        Problemen kommen ( Dank an Andi ).
        HINWEIS: Die Richtungsangaben beziehen sich auf den Server und nicht auf die
        Clients. Also bedeutet "in" vom internet in das Lokale Netzwerk und "out" aus
        den Netzwerk in das Internet (Dank an Snake85).

PB_GROUPCOUNT_N='X'	# Werte: [ ZAHL ]
	Anzahl der Gruppen welche verwaltet werden sollen


PB_GROUP_NAME_X='FTP'	# Werte: [ NAME ]
	Name dieser Gruppe ( Wird im Webinterface angezeigt )


PB_GROUPRULES_X='Y'	# Werte: [ REGELNUMMERN ]
	Regel(n) in dieser Gruppe.
	Mehrere Regeln werden mit ';' getrennt angegeben, z.B. '6;7'
	Sollen die Regeln von 3 bis 5 zugewiesen werden: "3-5"
	Auch Kompinationen sind möglich: z.B.: "1;3-5;8", das bedeutet eine Zuweisung
	der Regeln 1, 3, 4, 5 und 8 zu dieser Gruppe.
	ACHTUNG!
	Es ist zwar möglich eine Regel mehreren Gruppen zuzuordnen, allerdings kann es
	dann zu Fehlerhaften Statusmeldungen kommen.


PB_BLOCK_AUTO_X='yes'	# Werte: [ yes / no ]
	Soll diese Gruppe beim booten automatisch geblockt werden?


PB_GROUP_USER_X='all'	# Werte: [ ZAHL / all / none ]
	Nur der Benutzer ZAHL sieht den Status und darf Änderungen vornehmen, wobei
	ZAHL die Nummer X des Benutzers in HTTPD_USER_X in der CONFIG/HTTPD.TXT ist.
	Soll jeder Benutzer (meißt gibt es nur einen) diese Gruppe sehen und steuern
	können,	dann ist PB_GROUP_USER_X='all' zu setzten. Soll diese Gruppe nicht
	angezeigt werden: PB_GROUP_USER_X='none' ( also kein Benutzer )


PB_BLOCKTYPE='REJECT'	# Werte: [ REJECT / DENY ]
	Art des blockens: 'REJECT' (ablehnen) oder 'DENY' (ignorieren)


PB_NETWORK='192.168.10.0/24'	# Werte: [ NETZWERK ]
	Netzwerk, welches angesprochen werden soll, wenn PB_DIRECTIO_X='in' oder
	PB_DIRECTIO_X='out'.
	Ist PB_DIRECTIO_X='both', dann dann werden die Regeln von 0.0.0.0/0 nach
	0.0.0.0/0 (also von Überall nach Überall) angelegt.


PB_SHOW_DETAILS='yes'	# Werte: [ yes / no ]
        Gibt an, ob bei jeder Gruppe ein Details-Button erstellt werden soll, mit
        dem man sich die Gruppenregeln anzeigen lassen kann.


PB_SWAP_BLOCK_COLORS='no' # Werte: [ yes / no ]
	Gibt an, welche Farben für offene bzw. geschlossene Ports verwendet werden
	sollen:
	no:	grün=geschlossen / rot=offen
	yes:	grün=offen / rot=geschlossen


PB_LANGUAGE='de'	# Werte: [ de / en ]
	Gibt an welche Sprache im Webinterface benutzt werden soll:
	deutsch oder englisch


PB_LOGGING='yes'	# Werte: ['yes' / 'no']
	Gibt an ob die im HTTPd ausgefürten Änderungen in einem Logfile angezeigt
	werden sollen


PB_LOGUSER='all'	# Werte: [ ZAHL / all / none ]
	Nur der Benutzer ZAHL sieht den Button "Logfile ansehen", wobei	ZAHL die
	Nummer X des Benutzers in HTTPD_USER_X in der CONFIG/HTTPD.TXT ist.
	Soll jeder Benutzer den Logfile sehen können, dann ist PB_LOGUSER='all'
	zu setzten. Soll dieser Button nicht angezeigt werden: PB_LOGUSER='none'


PB_LOGFILE='/var/log/log.portblock'	# Werte: [ PFAD UND DATEI ]
	Gibt den Namen und den Speicherort für die Logdatei an



# --- Optional package: pbscript ---

OPT_PBSCRIPT='no'	# Werte: [ yes / no ]
	Installiert ein Shellscript, welches z.B. mit opt_easycron Portgruppen
	Zeitgesteuert öffnen/blocken kann. (Siehe pbscript-Doku: PBSCRIPT.TXT)



# --- Optional package: pbstatus ---

OPT_PBSTATUS='no'	# Werte: [ yes / no ]
	Installiert die Zusatzfunktionen um einen Befehl auszuführen, wenn alle
        Gruppen geblockt sind, bzw. einen anderen Befehl wenn mindestens eine
        Gruppe geöffnet ist. (Siehe pbstatus-Doku: PBSTATUS.TXT)

PBSTATUS_SCRIPT_OPEN    # Werte: [ Befehl ]
        Nur norwendig wenn OPT_PBSTATUS='yes'!
        (Siehe pbstatus-Doku: PBSTATUS.TXT)

PBSTATUS_SCRIPT_CLOSED  # Werte: [ Befehl ]
        Nur norwendig wenn OPT_PBSTATUS='yes'!
        (Siehe pbstatus-Doku: PBSTATUS.TXT)
nach oben

PORTBLOCK_SONSTIGES

In der Datei /var/run/portblock.status wird der aktuelle Status [ open/closed ]
der Portblock-Gruppen gespeichert. Sie ist für Bastler gedacht, die den Status
der einzelnen Gruppen z.B. mit OPT_LPTLED verarbeiten wollen.
Einfach die Datei mit ". /var/run/portblock.status" ins Script holen und die
Variablen verarbeiten. Die Variablen:
GROUP_1='close' -> Die Gruppe 1 ist geschlossen
GROUP_2='open'  -> Die Gruppe 2 ist offen
...
allblocked='no' -> Alle Gruppen geschlossen [yes/no]?

Beispiel (LED1 von OPT_LPTLED als Status der Gruppe 1) :
#!/bin/sh
. /var/run/portblock.status
if [ $GROUP_1 = 'open' ]
  echo on > /var/run/lptled/led1
else
  echo off > /var/run/lptled/led1
fi



TOOL:	Unter /doc/deutsch/opt/portblock liegt ein HTML/Javascript-Tool	mit dem
	man Portnummern auf Services testen kann: ServiceCheck


Bekannte Probleme:
- PortBlock ist NICHT Multi-Netzwerk-fähig!!!
- OPT_WLAN_NIC - da werden Ports gesperrt die PortBlock evtl. verwalten soll!!!
nach oben

PORTBLOCK_KONTAKT

» fli4l@sirsocke.de «
» http://www.sirsocke.de «

nach oben

PORTBLOCK_CHANGES / History

25.04.2003 v1.0 Entire Version
26.04.2003 v1.1 choose tcp, udp or both at each port(range) / service
	- Angabe des Protokolls für jeden Port / Portrange / Service möglich
	- Statusmeldungen beim Booten hinzugefügt
	- HTML-Doku hinzugefügt

29.04.2003 v1.2 create Groups
	- Umstellung auf Portgruppen mit beliebigen Gruppennamen

30.04.2003 v1.3 choose language / httpd-rights
	- HTTPd-Rechte hinzugefügt
	- Sprachwahl deutsch / englisch
	- Problem mit ftp-data [20/tcp] behoben
	- Englische Doku hinzugefügt

06.05.2003 v1.4 Firewall-logging / PortBlockScript
	- Regelverstöße werden jetzt geloggt [wenn BASE.TXT FIREWALL_LOG='yes']
	  (thanx to freaker for hint and Beta-testing)
	- Probleme mit den Services amanda, snmp und kerberos behoben
	- PortBlockScript [z.B. für OPT_EASYCRON] hinzugefügt
	  (thanx to K.Singer for idea)
	- Bugfixes in der Statusanzeige

08.05.2003 v1.5 keep settings on reconnect
	- Aktuelle Einstellungen bei Wiedereinwahl beibehalten/zurücksetzen
	  (thanx to freaker for idea and Beta-testing)
	- Probleme mit getrennter verwaltung von tcp und udp eines ports behoben

15.05.2003 v1.6 Userrights / Logging
	- Benutzerzuweisung für jede Gruppe: Alle, ein Benutzer oder Niemand
	  (versteckte Gruppe)
	- Logging der PortBlockaktionen (inkl. Benutzer, IP und Zeitpunkt)
	- Tool ServiceCheck zur Doku hinzugefügt

16.08.2003 v2.0.0 Grouprules more comfortable / directions
	- Einfachere Zuweisung von vielen Regeln zu einer Gruppe
	- Firewall-Richtungszuweisung für jede Regel möglich
	- Optik überarbeitet

25.08.2003 v2.0.0a Dokumentation of Problems with more than one lan
           (thanx to Andi for hint)

04.10.2003 v2.0.1 show details?
	- Anzeigen der Gruppenregel ja/nein
	- Dokumentation überarbeitet (thanx to Snake85 and Jens-Oliver S.)

17.10.2003 v2.0.1a HTML-Doku fixed
	- Fehler in der HTML-Dokumentation behoben

04.11.2003 v2.0.2 Ethernetrouter possible / PortBlockStatus
	- PortBlock ist nun Ethernetroutertauglich, da keine IPUP / IPDOWN mehr
	- OPT_PBSTATUS um ein Script auszuführen, wenn alle Ports geschlossen sind,
	  bzw. ein anderes Script, wenn mindestens ein Port offen ist
	- Aktueller Zustand der Gruppen aus Datei auswertbar, z.B. für OPT_LPTLED
nach oben
» Zur Doku «