iptables bestimmten Port nur auf einer IP zulassen

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-02 12:21

Hallo

Folgende Situation zu der ich hier im Forum nichts gefunden habe:

ich habe 4 IP Adressen so jetzt möcht ich das auf zB:

ip 1.1.1.1 der port 1111 geblockt wird
ip 2.2.2.2 der port 1111 geblockt wird
ip 3.3.3.3 der port 1111 geblockt wird
ip 4.4.4.4 der port 1111 NICHT geblockt wird

Das binden des Dienstes auf die einzelne IP geht leider nicht da der Port anscheinend Hardgecoded ist und der Dienst dann nicht mehr startet wenn ich ihn auf eine IP binde.

Das blocken der Ports ist kein Thema:

/usr/sbin/iptables -A INPUT -p tcp --dport 1111 -j DROP

nur möchte ich halt das IP spezifisch machen vielleicht könnte mir da jemand ein Beispiel geben und ob dies überhaupt möglich ist. ?

Vielen Dank

Gerhard

incognito
Posts: 4
Joined: 2006-01-31 14:24

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by incognito » 2006-05-02 14:23

Hi,

ich bin jetzt kein iptables Guru, aber soviel ich weiss werden die Regeln von iptables der reihe nach durchgearbeitet. d.h. wenn zuvor eine Regel erstellt wurde, die eine bestimmte Verbindung erlaubt wird es zugelassen, egal was danach kommt. Erstell doch mal eine Regel vor der jetzigen, die die Verbindung zulässt.

bye

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-02 22:02

Hallo


es geht mir ja hier nicht um das Generelle zulassen sonder wie oben schon geschrieben für bestimmte IP s die Port s zu Dropen.

Vielleicht hat ja jemand noch einen Tip für mich ?


Gruss

Gerhard :lol:

hornox
Posts: 139
Joined: 2005-09-22 23:09

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by hornox » 2006-05-02 22:21

es geht mir ja hier nicht um das Generelle zulassen sonder wie oben schon geschrieben für bestimmte IP s die Port s zu Dropen.
Wenn du nicht dazu schreibst was für eine policy die INPUT chain hat mußt du dich nicht wundern wenn jemand falsch rät.
Vielleicht hat ja jemand noch einen Tip für mich?
RTFM, geht meistens schneller und man lernt mehr als wenn man nur Befehle per copy&paste übernimmt.

Code: Select all

iptables -A INPUT -p tcp -d 1.1.1.1  --dport 80 -j DROP
-s, --source [!] address[/mask]
Source specification. Address can be either a network name, a hostname (please note that specifying any name to be resolved with a remote query such as DNS is
a really bad idea), a network IP address (with /mask), or a plain IP address. The mask can be either a network mask or a plain number, specifying the number
of 1's at the left side of the network mask. Thus, a mask of 24 is equivalent to 255.255.255.0. A "!" argument before the address specification inverts the
sense of the address. The flag --src is an alias for this option.

-d, --destination [!] address[/mask]
Destination specification. See the description of the -s (source) flag for a detailed description of the syntax. The flag --dst is an alias for this option.

fump
Posts: 6
Joined: 2004-11-29 19:32

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by fump » 2006-05-02 22:28

Wenn deine INPUT policy ACCEPT ist, mach doch mal das was Incognito geschrieben hat. Erlaube auf IP 4.4.4.4 Port 1111 und verbiete danach anhand deiner Regel. Sollte IIRC funktionieren. Generell solltest du dir die entsprechende man page zu Gemüte führen und http://iptables-tutorial.frozentux.net/ ... orial.html durchlesen.

Wobei du vielleicht eher schauen solltest warum der Dienst sich nicht restriktiver binden läßt, anstatt das Problem mit iptables zu erschlagen.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-03 13:50

Hallo

und danke für eure Hinweise die zu meiner Lösung geführt haben.

/usr/sbin/iptables -A INPUT -p tcp -d 1.1.1.1 --dport 1111 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -d 2.2.2.2 --dport 1111 -j DROP
/usr/sbin/iptables -A INPUT -p tcp -d 3.3.3.3 --dport 1111 -j DROP
/usr/sbin/iptables -A INPUT -p tcp -d 4.4.4.4 --dport 1111 -j DROP

Nun funktioniert es wunderbar

War natürlich nicht untätig und wie von HornOx auch geschrieben
RTFM, geht meistens schneller und man lernt mehr als wenn man nur Befehle per copy&paste übernimmt.
habe zwar den Hinweis, "schon kopiert" aber habe mir noch ne Deutsche Anleitung zu IPTABLES gesucht denn ich musste noch ein bischen mehr anpassen und habe darin soweit alles gefunden was ich noch benötigt habe um den Rat von HornOx und fump auch nachzukommen ( RTFM )

Deutsche Anleiung zu IPTABLES

>> http://www.selflinux.org/selflinux/html/iptables.html


Vielen Dank

Gruss
Gerhard

elch_mg
Posts: 302
Joined: 2006-01-23 19:14
Location: 41063

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by elch_mg » 2006-05-03 13:59

Was ist denn das für ein komischer Dienst, bei dem das Interface/die IP hardcoded ist? So einen Schwachsinn hab ich bisher nur bei diesem komischen Ventrilo-Server erlebt..

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-03 14:17

Hallo


hier Handelt es sich um Plesk mit DrWeb.

Jetzt habe ich natürlich schon versucht den Port von Plesk zu ändern oder einfach das Plesk auf eine IP zu binden nur das Problem ist dann das DrWeb nicht mehr startet und Plesk mag dann auch nicht.

Hab mich dann an den Support von Plesk gewannt worauf ich die Antwort erhielt das es bei Plesk 7.5.4 nicht möglich sei den Port von Plesk zu ändern, weil in DrWeb von Plesk (nehme mal an das ist die LightVersion ) der Port Hardcoded ist.
Die einzige Möglichkeit währe IP Masquerading aber damit bin ich noch nicht durchgestiegen.

Schalte ich DrWeb aus kann ich auch den Port ändern. Nur das wollte ich natürlich nicht.


Gruss
Gerhard

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-04 07:28

Du könntest auch eine standardregel definieren mit Verbindungsstatus z.b.:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -p tcp --syn -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -p udp --syn -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp -d 1.1.1.1 --syn --destination-port 1111 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp -d 1.1.1.1 --syn --destination-port 80 -j ACCEPT
iptables -A INPUT -m state --state NEW,INVALID -j LOG --log-prefix "INPUT: "
iptables -A INPUT -m state --state NEW,INVALID -p udp -j REJECT --reject-with icmp-p
ort-unreachable
iptables -A INPUT -m state --state NEW,INVALID -p tcp --syn -j REJECT --reject-with
tcp-reset
nur mal ein schnellschuss aus Hüfte und spart Regeln.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-04 09:56

Lord_Pinhead wrote: iptables -A INPUT -m state --state ESTABLISHED,RELATED -p tcp --syn -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -p udp --syn -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp -d 1.1.1.1 --syn --destination-port 1111 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp -d 1.1.1.1 --syn --destination-port 80 -j ACCEPT
iptables -A INPUT -m state --state NEW,INVALID -j LOG --log-prefix "INPUT: "
iptables -A INPUT -m state --state NEW,INVALID -p udp -j REJECT --reject-with icmp-p
ort-unreachable
iptables -A INPUT -m state --state NEW,INVALID -p tcp --syn -j REJECT --reject-with
tcp-reset
Sowas in der Art, glaub hab ich schon, bin aber mit der Manual IPTABLES noch nicht ganz durch darum versteh ich das ganze noch nicht genau was da Überhaupt läuft.

bei mir sieht das immoment so aus
/usr/sbin/iptables -F
/usr/sbin/iptables -X
/usr/sbin/iptables -Z
/usr/sbin/iptables -P INPUT DROP
/usr/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/usr/sbin/iptables -A INPUT -m state --state INVALID -j DROP
/usr/sbin/iptables -P OUTPUT DROP
/usr/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
/usr/sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
/usr/sbin/iptables -P FORWARD DROP
/usr/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
/usr/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
/usr/sbin/iptables -A INPUT -i lo -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/usr/sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT
/usr/sbin/iptables -t mangle -F
/usr/sbin/iptables -t mangle -X
/usr/sbin/iptables -t mangle -Z
/usr/sbin/iptables -t mangle -P PREROUTING ACCEPT
/usr/sbin/iptables -t mangle -P OUTPUT ACCEPT
/usr/sbin/iptables -t mangle -P INPUT ACCEPT
/usr/sbin/iptables -t mangle -P FORWARD ACCEPT
/usr/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/usr/sbin/iptables -t nat -F
/usr/sbin/iptables -t nat -X
/usr/sbin/iptables -t nat -Z
/usr/sbin/iptables -t nat -P PREROUTING ACCEPT
/usr/sbin/iptables -t nat -P OUTPUT ACCEPT
/usr/sbin/iptables -t nat -P POSTROUTING ACCEPT

und dann die Regeln für DROP ACCEPT FORWARD usw.

Gruss
Gerhard

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-05 13:28

Andere dumme frage, warum konfigurierst du den Dienst nicht einfach auf die IP? Warum sollte der den überhaupt an den andere lauschen wenn er da nichts zu suchen hat. Bringt mehr als ne Firewall Einstellung ;)

lord0815
Posts: 4
Joined: 2004-03-11 14:12

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord0815 » 2006-05-09 00:31

Twisterchen wrote: Das binden des Dienstes auf die einzelne IP geht leider nicht da der Port anscheinend Hardgecoded ist und der Dienst dann nicht mehr startet wenn ich ihn auf eine IP binde.
@Lord_Pinhead

Ähm... hast Du auch mal das ursprüngliche Posting gelesen oder einfach mal 'was' geschrieben?? :roll:

Und warum es mehr als eine Firewall Einstellung bringt, das musst Du mir auch mal erklären.

Der Effekt, dass sich niemand über eine andere IP-Adresse verbinden kann, bleibt IMO der gleiche. Oder?

Gute Nacht.
Was mir da grad noch einfällt, es gibt keine dumme Fragen ;) nur dumm Antworten oder wie war das? :-D

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-09 17:08

Es gibt kein hardcoded, es gibt nur Herrausforderungen ;) Schonmal ein Wrapper probiert? Xinetd dürfte dein Problem vielleicht lösen, oder hast du das schon probiert und der Dienst will dann nicht? Würde micht persöhnlich nach eine alternative umsehen wenn solche Sachen passieren.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-10 20:26

Hallo @Lord_Pinhead

Eine alternative hmm wenn SWSoft schon gesagt hat das es da keine Möglichkeit gibt da es hardcoded ist.

Vielleicht könntest du mir mal erklähren wie ich das mit einem Wrapper lösen könnte hier fehlt mir absolut der ansatz.


Gruss
Gerhard

rerajung
Posts: 38
Joined: 2005-07-02 16:55
Location: 7km von Koblenz entfernet (RLP)

Plesk auf einen Port beziehungsweise IP beschränken

Post by rerajung » 2006-05-11 01:12

Hallo Twisterchen,

man kann in /opt/psa/admin/conf/httpsd.conf kann man sehr wohl Plesk konfigurieren. Es handelt sich hier scheinbar um einen extra Apache Konfigurationsdatei. Die Direktive lautet also "Listen".

Grüße René.

Debian 3.1 - Plesk 7.5.4 - IP4

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-11 11:49

Hallo @rerajung

Ja die das hab ich schon gewusst das Plesk einen eigenen Apache laufen hat, habe das auch schon versucht in der httpsd.conf das einzustellen den port und die IP danach den Plesk neustarten nur dann kommt Plesk not running und DrWeb wird auch nicht mitgestartet.
Ändere ich nur die IP und lasse den Port auf 8443 dann startet zwar Plesk aber DrWeb bleibt down läst sich auch nicht manuel starten weil er sagt Plesk not running.

Wie schon gesagt habe das mit SWSoft schon zickmal versucht und bekomm immer wieder die gleiche Antwort das in Verbindung mit DrWeb kein Portwechsel möglich ist.

Hast du etwa Plesk mit DrWeb und einem geänderten Port am laufen ?


Gruss
Twisterchen

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-12 01:10

Also entweder du versuchst xinetd davorzuschalten (ich schätze aber das läuft wirklich schief) oder bleibst bei der iptables Variante (nicht elegant, geht aber auch). Würde allerdings den Port "aussen" ändern und dann einfach nur per NAT an den orginalport weiterleiten, ist wenigstens die Gefahr von Bots etwas geringer. Blöd das du unbedingt Plesk nehmen willst, diese Kauftools sind bei mir schon lange gestorben weil ich genau wegen solchen Problemen immer ein immensen Kaffeeverbrauch hatte und es immer zu den ungünstigsten Zeiten passieren musste. Ausserdem bin ich nicht so begeistert das mein Admintool sich einfach so offen zeigt an einem eigenen Port, sowas verstecke ich doch lieber hinter einer URL wo nicht so schnell gefunden wird. Jedenfalls nicht von Kindern ;)

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-12 09:10

Hallo @ Lord_Pinhead

Also ich bin natürlich imo bei iptable Vraiante geblieben und habe den Port einfach gedropt funktioniert einwandfrei.

Ja das habe ich auch schon gemerkt umso mehr mann dazulernt umso mehr merke ich das Plesk einfach schei... ist bzw eigentlich nicht zu gebrauchen ist, das Problem an der sache ist habe natürlich oft in Forums gelesen "Welches Admin tool könntet ihr mir empfehlen Plesk Confixxs Serveradmin24 usw", dass hier natürlich nicht gescheites bei raus kommt ist mir jetzt auch klar denn jeder sieht das anders der eine findets gut der andere nicht.
Im Grunde lernt mann immer erst danach aus der erfahrung raus, darum umso mehr man selber macht umso mehr weis mann was auf seiner Maschiene überhauot läuft.

Ich habe mir gestern mal auf VMWare ein system zusammen gestellt aus Debian Sarge 3.1 und VHCS2 erstellet ( wusste leider jetzt nicht ob ein link zu VHCS2 gegen die Forumregeln verstossen würde darum habe ich keinen gesetzt aber einfach mal google bemühen und nach VHCS2 suchen da kommt es gleich ).

Nun werde ich mal VHCS2 mit fastcgi versuchen zu installieren da gibts einige Howto s dazu die anscheinend auch funktionieren.

Mich würde jetzt aber interessieren Welche Tools so die Profis benutzen um ihren Server leichter zu bedienen und sagt mir jetzt bitte nicht ihr benutzt Plesk oder so das glaub ich euch dann aber nicht.


Gruss
Gerhard

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-12 11:42

VHCS hatte letztens erst wieder ein eintrag in den Sicherheitsdatenbanken. Kannst ja fast gleich Webmin nehmen ;) Serverkonfigurationen mach ich fast alles per Hand, ausser die Einträge von den Vhosts oder Domains. Mag es nicht wenn ein Admintool zu weit ins System rein kann.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-15 08:06

Hallo

Sorry das es solange gedauert hat mit dem Antworten aber bei dem Schönen Wetter am Wochenende musst ich einfach mal ne Runde Motorrad fahren.

@Lord_Pinhead

Ja das hab ich gelesen das durch einen Exploid Admins eingetragen werden konnten.
Ok Serverkonfiguration per Hand ok aber du schreibst
ausser die Einträge von den Vhosts oder Domains. Mag es nicht wenn ein Admintool zu weit ins System rein kann
Wie machst du das dann mit welchem tool?


Gruss
Gerhard

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by lord_pinhead » 2006-05-15 15:02

Ich nutze Syscp, da können auch die Kunden Ihre Sachen anlegen und ich brauch mich nur um die Configs vom Server kümmern. Es funkt mir eigentlich nicht dazwischen (ausser bei Apache die vhosts.conf und beim Bind die syscp_bind.conf, aber die fasse ich eh nicht an per Hand. Ist eigentlich ganz einfach wenn es einmal läuft, ausserdem kennen die Kinder das meist nichtmal.

twisterchen
Anbieter
Posts: 229
Joined: 2005-07-14 14:13

Re: iptables bestimmten Port nur auf einer IP zulassen

Post by twisterchen » 2006-05-16 08:53

Hallo

Ja das hab ich mir schonmal in der Demo angeschaut und wie ich gesehen habe leuft das auch schon mit fastcgi.

Ich werde mir das mal auf VMWare installieren die haben auf der Seite sogar ein sehr gutes Install Howto bez. gibt es ja für Debian ein .deb Paket.

Mein Problem ist halt immer das Ich Angst habe mir ein Riesen Sicherheitsloch mit einzubauen da ich vielleicht gravierende Sachen vergesse einzustellen einfach aus Unerfahrenheit oder dafür fehlendes wissen.

Na ich werde das jetzt mal Testen auf meinem Testsystem.

Danke für deine Info schonmal

Gruss
Gerhard