Problem beim Einrichten von iptables (LDAP-Verkehr blockiert)

Problem beim Einrichten von iptables (LDAP-Verkehr blockiert)

Mein Anwendungsserver befindet sich in einem Netzwerk, das durch eine unternehmensweite Firewall geschützt ist, und mein Server verwendet auch fail2ban. Dennoch möchte ich mit eine zusätzliche Schutzebene einrichten iptables. Ich habe ein kleines Problem mit meiner Konfiguration.

Anforderungen:

  1. Allen den Zugriff verweigern, dann für einen bestimmten IP-Bereich zulassen (4.3.4.0/16)
  2. Weiterführende LDAP-Funktionalität in der Anwendung (Verwendung ldap_connectin PHP)
  3. Möglichkeit zum Abrufen externer Inhalte per URL

Bekannte:

  • Die IP des Anwendungsservers lautet 1.2.3.4
  • Der LDAP-Server wird auf 1.2.100.200 aufgelöst und verwendet Port 636
  • Die statische IP meines Laptops ist 4.3.2.1

Was ich versucht habe:

Ausgehend von einer Standardkonfiguration iptables, die Datenverkehr über die Ports 22, 80 und 443 zulässt, habe ich Folgendes hinzugefügt.

# explicitly allow ssh access from my laptop
iptables -A INPUT -s 4.3.2.1 -d 1.2.3.4 -p tcp --dport 22 -j ACCEPT

# deny all traffic
iptables --policy INPUT DROP

# allow traffic from a specific IP range
iptables -A INPUT -s 4.3.4.0/24 -j ACCEPT

# allow traffic from LDAP server IP
iptables -A INPUT -s 1.2.100.200 -j ACCEPT
iptables -A INPUT -p tcp --dport 636 -j ACCEPT

Ich speichere diese Konfiguration mit service iptables saveund starte dann den Dienst neu.

Symptome:

Wenn ich bereits angemeldet bin, kann ich die Anwendung durchsuchen und verwenden (bis auf eine Sache, siehe unten). Wenn ich nicht angemeldet bin, hängt die LDAP-Authentifizierung.

Das zweite Problem ist, dass ich mit der neuen Konfiguration nicht auf externe Inhalte zugreifen kann. Ich rufe Daten von einem anderen Computer über HTTPS ab. Muss ich dazu nur eine Regel hinzufügen, um ausgehenden Datenverkehr an die IP des externen Computers zuzulassen?

Antwort1

Könnte es sein, dass der LDAP-Server nicht standardmäßige Ports verwendet?

Sie können sehen, auf welchem ​​Port der LDAP-Server lauscht übernetstat -tlpn

Das zweite Problem ist, dass ich mit der neuen Konfiguration nicht auf externe Inhalte zugreifen kann

Ich gehe davon aus, dass Sie meinen, dass Sie nach dem Anwenden dieser Regeln keine Verbindung von diesem Computer zu Netzwerkressourcen herstellen können. Die Anfragen werden wahrscheinlich gesendet (da Sie OUTPUTdie Standardrichtlinie anscheinend nicht auf DROP eingestellt haben), aber die Antworten des Remote-Servers werden von der Firewall gelöscht.

Sie können dies überprüfen, indem Sie die Paketanzahl der Standardrichtlinie überwachen, während Sie den betreffenden Datenverkehr generieren:

root@xxxxxxvld02 ~ $ iptables -nvL
Chain INPUT (policy ACCEPT 157 packets, 18048 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 63 packets, 6998 bytes)
 pkts bytes target     prot opt in     out     source               destination

Oben ist 157 packetsin der INPUTKette die Anzahl der Pakete angegeben, auf die letztendlich die Standardrichtlinie angewendet wurde (Regeln haben links ihre eigenen Zählwerte und ändern diese Zahl oben nicht).

Sie möchten wahrscheinlich eine Regel erstellen, die Datenverkehr im Zusammenhang mit bereits bestehenden Verbindungen ausdrücklich zulässt:

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

verwandte Informationen