PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu Iptables nur eine bestimmen Port frei geben



Mastercontrol
14.05.16, 07:46
Hallo, ich bin neu in der Linux Welt zu mindestens kommt es nicht all zu heufig vor. Habe jetzt aber in einer schule einen Iserv Linux Server (Debian). Der Iserv verwaltet in der Schule welcher Rechner online gehen darf und welcher nicht. Leider ist es aber so das er ausgehend alles erlaubt. Also wenn ich einem Rechner erlaube ins Internet zu gehen dann halt komplett. Das möchte ich aber nun etwas einschenken zu mindesten für einen bestimmten IP bereich.

Habe mich gestern schon mal etwas eingelesen. Also ich möchte jetzt 10 Rechner im Netzwerk nur erlauben den Port 80 nutzen zu dürfen wie muß ich das dann machen. Die Rechner haben z.b die ips´10.10.25.1 - 10.10.25.10

Die Jungs von IServ habe ich gestern schon mal gesprochen die haben mir gesagt das die das halt iptables FORWARD -I *********** --dport ** REJECT machen würden aber wie muss das genau aussehen konnte im netzt nichts finden wie ich einen IP Bereich angebe. Konnte auch nur finden wie ich bestimmte Ports Blockiere aber nicht alle außer 80 oder eine liste von erlaubten Port.

Danke schon mal

mbo
14.05.16, 12:36
Das wird so etwas aufwendig, da das bisherige Regelwerk zukünftige Regeln beeinflusst.

Ein iptables -n -L zeigt Dir die Rules und Chains an.

Standard wäre eigentlich ein Drop und Reject als Policy, folglich muss nicht Port 80 verboten, sondern erlaubt werden. Es wird aber wohl eine Accept auf Destination Any sein.

Wie werden auf diesem Server den die Regeln definiert und konfiguriert? Wer hat ihn eingerichtet und warum fiel die Wahl der Administration auf Dich?

fork
14.05.16, 23:22
Lese Dir doch mal ein kleines iptables-Tutorial durch. Da hast Du schon mal einen Einstieg:

http://www.online-tutorials.net/internet-netzwerk/iptables-tutorial/tutorials-t-29-214.html

Nach dem durchlesen kommst Du mit Google bestimmt auf alles was noch fehlt.

Im übrigen: Willst Du wirklich auch HTTPS(Port 443) blocken?

Mastercontrol
17.05.16, 06:55
Die Schulen im Landkreis bekommen alle IServ das ist ein Schulportal. Eigentlich reichen meine Linux Kenntnisse für die Dinger soweit aus. Sind so aufgebaut das eigentlich die Medien beauftragen der Schulen das machen sollen. Eine Schule möchte allerdings noch eine Firewall für ausgehende Verbindungen. Zuerst dachte ich mir eine Hardwarefirewall zwischen Router und Iserv allerdings geht das nicht da der Iserv als 1 Rechner erkannt wird egal wie viele Hundert danach kommen.

Also dachte ich mir das über den Iserv zu machen. Da halt jeder Raum eine Extra IP bereich hat.

Also im Grunde für einen Raum alle Ports dicht machen und dann halt die erlaupten frei geben. Port 80 war nur als Beispiel. (80,25,443,995 usw.) Was halt in dem Raum erlaubt ist.

Merke nur das das auch nicht mal eben so erledigt ist.

Mastercontrol
18.05.16, 10:17
Also bin bei meiner Suche auf das hier gestoßen von der TU leipzig. Werde damit etwas Experimentieren


:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#
-N LOGREJECT
-A LOGREJECT -j LOG --log-level info --log-prefix "iptables REJECT:"
-A LOGREJECT -p tcp -j REJECT --reject-with tcp-reset
-A LOGREJECT -j REJECT --reject-with icmp-port-unreachable
#
-N CLEANCHECK
-A CLEANCHECK -m state --state RELATED,ESTABLISHED -j ACCEPT
-A CLEANCHECK -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A CLEANCHECK -p tcp ! --syn -m state --state NEW -j REJECT --reject-with tcp-reset
#
-A INPUT -j CLEANCHECK
-A INPUT -s 10.10.1.0/24 -p icmp -j ACCEPT
-A INPUT -s 10.10.1.0/24 -p tcp -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type port-unreachable -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j LOGREJECT
#
#
-A OUTPUT -j CLEANCHECK
-A OUTPUT -p tcp --tcp-flags RST RST -m multiport --sports 80,443 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 10.10.1.0/24 -p udp -j ACCEPT
-A OUTPUT -d 10.10.1.0/24 -p tcp -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 43,79 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -j LOGREJECT
COMMIT

BetterWorld
18.05.16, 15:24
Ich halte deinen Wissensstand für bei weitem nicht ausreichend direkt in den iptables rules rumzufuhrwerken.

Meine Empfehlung wäre da schlicht ein geeignetes Frontend zu verwenden.
Du kannst einfach ufw ( UncomplicatedFireWall) nehmen. Das ermöglicht die Bedienung von iptables sehr einfach.
Damit wirst du deine Ziele erreichen können.

Direkt die Rules selber zu basteln, setzt profundes Wissen über TCP/IP voraus. Und eine ziemlich lange Lernphase.
Damit wirst du -meiner Meinung nach- lediglich die Sicherheit vermindern und Löcher aufreißen, oder gewollte Services zum Schweigen bringen.