• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Na, habt Ihr genügend in Stoffen geschwelgt? Dann könntet Ihr Euch jetzt die zahlreichen Einsendungen dieses Monats anschauen und entscheiden, welches Foto davon Euch am Besten gefällt. Hier geht es lang zur Abstimmung --> Klick

Server Ports schliessen

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
Hi ATler
hat nur bedingt was mit "Web-Programmierung" zu tun. Ich bin grad dran, meinen Server "abzudichten".
Jetzt habe ich hier eine Liste mit Ports, zu denen ich leider ziemlich wenig Infos habe.
Werden die benötigt oder kann man die bedenkenlos schliessen?

Der Server macht nur FTP, www, SSH und E-Mail. Ergebnis des Portscans:
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
443/tcp open https
856/tcp open unknown
993/tcp open imaps
995/tcp open pop3s
2522/tcp open unknown
2932/tcp open unknown
6085/tcp open unknown
7997/tcp open unknown
8983/tcp open unknown
9923/tcp open unknown
9953/tcp open unknown
9963/tcp open unknown
41706/tcp open unknown
51800/tcp open unknown
 

Steinchen

Finkenwerder Herbstprinz
Registriert
15.04.10
Beiträge
470
Hi,

die Frage ist, was du vor hast, woraus sich die letztlich noch offen zu lassenden Ports ergeben.

Grundsätzlich kann man die Ports schliessen. Das Tool der Wahl unter Mac OS 10: "ipfw".

cu
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
Naja, der Server benötigt im Prinzip nur folgende Ports:
80, 443, 21, 22, 993, 995, 110, 25

Allerdings weiß ich nicht, ob von den oben stehenden Ports trotzdem welche offen bleiben müssen, z.B. für DNS oder Ping oder irgendwelche Linux System Prozesse. Ich weiß ja nicht wie da so die Abhängigkeiten sind.
 

Steinchen

Finkenwerder Herbstprinz
Registriert
15.04.10
Beiträge
470
Hi,

Die Ports 80,443,22,993,995 und 110 sowie 25 sind unproblematisch. 143 hast du glaub ich vergessen, ist aber auch kein Problem.

Eingehend wird 21 zum Problem da FTP den Datentransfer über "wild ausgewählte" ports abwickelt und somit nicht klar ist was oberhalb 1024 noch benötigt wird. Die IPFW hat leider kein NAT-Modul das beim Connection-Tracking helfen könnte und so musst du, im Falle von FTP, einfach alle Ports offen lassen.

Ansonsten würde ich mal prüfen welche Anwendungen an den Ports hängen um dann abzuklären ob ich sie noch brauche oder nicht.

lsof -i -n | grep LISTEN

Da die Firewall stateful ist, also weis in welche Richtung die Daten fließen, kannst du ausgehende Verbindungen extra behandeln und hier dein DNS usw. offen lassen. Das hat mit den eingehenden Ports nichts zutun.

cu
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
Firewall ist iptables, da CentOS Server. Ich hab deinen Befehl mal laufen:

portmap 2338 rpc 4u IPv4 6788 TCP *:sunrpc (LISTEN)
rpc.statd 2370 root 7u IPv4 6913 TCP *:856 (LISTEN)
httpd 3211 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3211 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3213 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3213 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3214 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3214 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3218 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3218 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3219 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3219 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3223 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3223 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3224 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3224 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3243 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3243 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 3244 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 3244 apache 6u IPv6 2839347 TCP *:https (LISTEN)
imap-logi 3818 dovecot 0u IPv6 420626 TCP *:imap (LISTEN)
imap-logi 3818 dovecot 1u IPv6 420627 TCP *:imaps (LISTEN)
pop3-logi 3960 dovecot 0u IPv6 420628 TCP *:pop3 (LISTEN)
pop3-logi 3960 dovecot 1u IPv6 420629 TCP *:pop3s (LISTEN)
pop3-logi 3970 dovecot 0u IPv6 420628 TCP *:pop3 (LISTEN)
pop3-logi 3970 dovecot 1u IPv6 420629 TCP *:pop3s (LISTEN)
pop3-logi 3971 dovecot 0u IPv6 420628 TCP *:pop3 (LISTEN)
pop3-logi 3971 dovecot 1u IPv6 420629 TCP *:pop3s (LISTEN)
vsftpd 5080 root 3u IPv4 31052 TCP *:ftp (LISTEN)
imap-logi 19480 dovecot 0u IPv6 420626 TCP *:imap (LISTEN)
imap-logi 19480 dovecot 1u IPv6 420627 TCP *:imaps (LISTEN)
coldfusio 19569 apache 27u IPv6 2839232 TCP *:58208 (LISTEN)
coldfusio 19569 apache 33u IPv6 2839246 TCP *:incp (LISTEN)
coldfusio 19569 apache 41u IPv6 2839248 TCP *:windb (LISTEN)
coldfusio 19569 apache 44u IPv6 2839250 TCP *:51800 (LISTEN)
coldfusio 19569 apache 219u IPv6 2839320 TCP *:7997 (LISTEN)
coldfusio 19569 apache 225u IPv6 2839336 TCP *:konspire2b (LISTEN)
httpd 19675 root 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19675 root 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19677 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19677 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19678 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19678 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19679 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19679 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19680 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19680 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19681 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19681 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19682 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19682 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19683 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19683 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19684 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19684 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 19685 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 19685 apache 6u IPv6 2839347 TCP *:https (LISTEN)
sshd 20229 root 3u IPv6 1691041 TCP *:ssh (LISTEN)
httpd 22121 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 22121 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 22122 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 22122 apache 6u IPv6 2839347 TCP *:https (LISTEN)
httpd 22123 apache 4u IPv6 2839342 TCP *:http (LISTEN)
httpd 22123 apache 6u IPv6 2839347 TCP *:https (LISTEN)
mysqld 23713 mysql 10u IPv4 583426 TCP 127.0.0.1:mysql (LISTEN)
dovecot 24234 root 5u IPv6 420626 TCP *:imap (LISTEN)
dovecot 24234 root 6u IPv6 420627 TCP *:imaps (LISTEN)
dovecot 24234 root 7u IPv6 420628 TCP *:pop3 (LISTEN)
dovecot 24234 root 8u IPv6 420629 TCP *:pop3s (LISTEN)
master 25693 root 11u IPv4 426680 TCP *:smtp (LISTEN)
imap-logi 30932 dovecot 0u IPv6 420626 TCP *:imap (LISTEN)
imap-logi 30932 dovecot 1u IPv6 420627 TCP *:imaps (LISTEN)

Bis auf portmap und rpc.statd ist alles klar.
 
Zuletzt bearbeitet:

Steinchen

Finkenwerder Herbstprinz
Registriert
15.04.10
Beiträge
470
Ah,

Linux. Unter Linux ist ein "netstat -anp" übersichtlicher.

die ports von Portmap und der RPC.statd sind die beiden Daemons für NFS. Wenn du das nicht brauchst kannstes ja einfach abschalten (chkconfig).

Ansonsten hat der Netfilter von Linux ein Nat-Modul mit dem man FTP usw. ohne Probleme hinter die SPI-Firewall hängen kann.

Ob Coldfusion von aussen erreichbar sein muss, musst du entscheiden.

cu
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
Ja, ColdFusion ist ein Application-Server, der sich in Apache einhakt. Der sollte schon erreichbar sein ;)
NFS bin ich mir nicht sicher, da der Server auf einer ESXi läuft und die die Backups managed.

Also kann ich ja alles zu machen, was nicht unter lsof -i -n | grep LISTEN auftaucht.
 

Steinchen

Finkenwerder Herbstprinz
Registriert
15.04.10
Beiträge
470
Ich würd das kurz und knapp machen:

for i in INPUT FORWARD OUTPUT; do

# gleichen Chain in kleiner schreibweise erstellen:
iptables -N $(echo $i | tr A-Z a-z)

# alles droppen, eigentlich unnoetig
iptables -P $i DROP;

# alles flushen
iptables -F $i;

# bestehende verbindungen durchlassen
iptables -A $i -m state --state RELATED,ESTABLISHED -m comment --comment "bestehende verbindungen durchlassen" -j ACCEPT
# ICMP IMMER durchlassen - wer das nicht macht ist hirntot und hats nicht verstanden - wiklich
iptables -A $i -p icmp -m comment --comment "ICMP durchlassen" -j ACCEPT

# aufm loopback wird auch NIE geblockt

case $i in

"INPUT")
iptables -A $i -i lo -j ACCEPT
;;

"OUTPUT")
iptables -A $i -o lo -j ACCEPT
;;

"FORWARD")
iptables -A $i -i lo -o lo -j ACCEPT
;;

esac


# sprung in den eigentlichen chain
iptables -A $i -j $(echo $i | tr A-Z a-z)

# blocken von tcp verbindungen:
iptables -A $i -j REJECT -p tcp --reject-with tcp-reset
# blocken von udp verbindungen:
iptables -A $i -j REJECT -p udp --reject-with icmp-port-unreachable
# blocken vom rest
iptables -A $i -j REJECT --reject-with --reject-with icmp-proto-unreachable

done
danach kannst du dann alle services zulassen die du brauchst:

for i in 21 22 25 80 443 110 113 143 993 995; do

iptables -A input -p tcp --sport 1024: --dport $i -m state --state NEW -m comment --comment "Akzeptiere eingehende Verbindungen fuer $i" -j ACCEPT;

done
Und wenn du ausgehend _ALLES_ akzeptieren möchtest:

for i in tcp udp; do

iptables -A output -p $i -m state --state NEW -m comment --comment "ausgehende verbindungen zulassen" -j ACCEPT

done
Danach musste noch die nat_ftp module laden und auch dein FTP funktioniert durch die stateful firewall einwandfrei.

Da Stateful nur bei udp/tcp und icmp geht, kann man nicht alles darüber überwachen, sollte aber kein Problem für dich sein.

Wenn ich das richtig verstehe greift sowohl auf MySQL als auch auf Coldfusion nur der Apache zu und nie jemand von außen direkt, deshalb reichen dir die Zugriffe via Loopback völlig aus und die Server müssen vom "evil internet" nicht erreichbar sein.

Sollte ich mich da täuschen kannste die Ports ja noch nachträglich öffnen.

Die Firewall die dieses Script generiert besteht aus sechs chains die jeweils in großer (default) und in kleiner schreibweise vorhanden sind. In der mit großer Schreibweise kommen die Default-Einstellungen, nach denen in die mit kleiner Schreibweise gesprungen wird und dort kannst du dann deine Einstellungen vornehmen.

Das Script dazu habe ich mir grad aus den Fingern gezogen, von daher garantiere ich nicht für 100%ige Korrektheit. Ich werde schon irgendwo nen Strichpunkt vergessen haben ;)

Edit: Und wenn Ihr die Backups via NFS macht dann ist das eher komisch. Mach dich da mal schlau, kann ich mir aber nicht vorstellen. Schau mal was in /etc/exports steht.

cu
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
Werd das mal mit dem Admin von der ESXi abklären, was er dazu meint.