1awww.com - Forum
Oktober 12, 2008, 12:42:31 am *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Just Installed!
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]
  Drucken  
Autor Thema: Alle nicht benötigten Ports verriegeln  (Gelesen 22 mal)
admin
1awww.com ISP
Administrator
Newbie
*****
Offline Offline

Beiträge: 13


Profil anzeigen WWW
« am: Januar 22, 2008, 10:09:41 pm »

Stellen Sie fest, welche Ports Ihr Server sowohl ausgangsseitig, als auch eingangsseitig benötigt.

Im Allgemeinen sind ausgangseitig folgende Ports von Nöten:
80 - Ihr Webserver soll von außen erreichbar sein
22 - Ihr Server soll für Sie persönlich zur Fernbedienung und Einstell-Möglichkeit erreichbar sein
109 - Ihr Server soll via POP2 erreichbar sein - eher lieber via POP3
110 - Ihr Server soll via POP3 erreichbar sein - für das Abholen von Mails zu Ihrem PC-Mail-Programm
3306 - sofern Ihr Server auch Zugriffe von einem PC zu Ihrer MySQL-Server-Datenbank erlauben soll - intern ist von php zu MySQL-Datenbank, benötigen Sie diesen Port NICHT!
21 - wenn Ihr Server via FTP Dateien von Kunden erhalten oder gesendet werden sollen

... das wars eigentlich im Grundsätzlichen ... es sei denn, Sie müssen wirklich weitere Ports für obskure Dinge für Ihre Kunden oder Anwender öffnen, dann finden Sie die Port-Liste unter /etc/services - Prüfen Sie dann bitte aber auch, ob diese Ports überhaupt benötigt werden über den Befehl: netstat -at
Beachten Sie die Listen-Einträge - schauen Sie aber auch auf andere Einträge, ganz interressant, aber die nicht Listen-Einträge, müssen nicht unbedingt frei gegeben werden! Sie werden eher vom OS dynamisch vergeben!

Das Gleiche, empfehlen wir Ihnen nun auch ausgangsseitig zu ermitteln:

Sie benötigen via SSH, z.B. Zugriff auf http-Seiten / ftp-Seiten, um mit wget was herunter zu laden. Ihre Kunden benötigen evtl. Zugriffe auf MySQL-Datenbanken, Ihr Server muß via SMTP versenden können usw. - klar, hier könnnen uns sollten auch Einschränkungen vorgenommen werden, nur sprengen diese gerade die Kapazitäten von vServern, wo Sie nur via iptables blockieren können. Auch sind Ihnen hier bei vServern oder virtuell dedizierten Servern erhebliche Grenzen gesetzt, aus diesem Grund wird Ihnen vielleicht ein Riesen-Speicherplatz und vielleicht auch ein unlimited Traffic zur Verfügung gestellt, mit einem abgemargerten RAM-Bereich und einem schmalen Bereich im IPFilter und ich habe kein anderes Konzept finden können, was alles unter "einen Hut" bringt!

Nun aus den obigen Informationen, können Sie eine Firewall einrichten - unter den meisten vServern ist dies nicht möglich, jedoch oft via iptables - allerdings auch begrenzt, weil offensichtlich diese iptables-Einstellungen, nicht echt auf Ihrem Server ablaufen, sondern in dem übergeordneten Paket-Filter des Gesamt-Servers mit einfließen und klar, daß ein Server-Vermieter, der seine Server in diverse vServer unterteilt, hier Limits setzt, da ja JEDES Paket von ALLEN virtuellen Servern durch diesen GLOBALEN IP-Filter fließt.

Daher sollten Sie auch vorsichtig sein, wie Sie iptables programmieren und ob wirklich alle IP-Filter-Regeln auch später in Ihrem Server so ablaufen - sorry - "dat is leider scheisse" - aber dat is leider so!

Wenn Sie dann alles so verstanden haben, geben wir Ihnen ein Script im Original mit unseren Veränderungen mit - mit Beachtung der Urheber-Rechts-Information. Andererseits, können Sie jederzeit nach Stichwort: iptables generator suchen. Löschen Sie die Dienste, die Sie nicht benötigen und fügen Sie die Dienste ein, die Sie benötigen. Ausgangsseitig gibt es keine Beschränkung! Verstehen Sie bitte auch venet - auf Ihrem Server kann ein anderer Netzwerkkarten-Name verwendet werden, wie z.B. standardmäßig net - prüfen Sie Ihre Netzwerkkarten in Linux über den Befehl ifconfig! ... wobei bei uns venet+ für alle venetx, wie z.B. venet0, venet1, venet2, venet3, venet4 usw. deklariert werden!

Code:
#!/bin/bash
# ---------------------------------------------------------------------
# Linux-iptables-Firewallskript, Copyright (c) 2004 under the GPL
# Autogenerated by iptables Generator v1.16 (c) 2002 by Harald Bertram*
# Please visit http://www.harry.homelinux.org for new versions of
# the iptables Generator (c).
#
# This Script was generated by request from:
# xxxxxxx@xxxxxxxxx.de on: 2004-4-15 20:34.27 MET.
#
# If you have questions about the iptables Generator or about
# your Firewall-Skript feel free to take a look at out website or
# send me an E-Mail to webmaster@harry.homelinux.org.
#
# My special thanks are going to Lutz Heinrich (trinitywork@hotmail.com) who
# made lots of Beta-Testing and gave me lots of well qualified
# Feedback that made me able to improve the iptables Generator.
#
# 1awww.com - Inform: 22.01.2007
# We will inform you, that we have changed many entries about our
# informations and about our server policies! You can change too,
# our settings, but you must accept the GPL of all the other authors!
# Be aware, your risk, is your own - and you must now, what your are
# do! From us: this script is a help for you - not more!
# Please inform us: when you need more help in our forum.1awww.com
# Many thanks
# Regards 1awww.com ISP Detlef Bracker
# --------------------------------------------------------------------

case "$1" in
start)
echo "Starte IP-Paketfilter"

# iptables-Modul
# modprobe ip_tables
# Connection-Tracking-Module
# modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
# modprobe ip_conntrack_irc
# modprobe ip_conntrack_ftp

# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Einbruchsversuch mit localer Adresse DROPen
#iptables -A INPUT -i venet+ -s 127.0.0.1 -j MY_DROP

# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP

# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# HTTP
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 80 -j ACCEPT

# HTTPS
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 443 -j ACCEPT

# SMTP
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 25 -j ACCEPT

# POP3
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 110 -j ACCEPT

# POP3S
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 995 -j ACCEPT

# FTP
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 21 -j ACCEPT

# SSH
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 22 -j ACCEPT

# MYSQL
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 3306 -j ACCEPT

# ZABBIX
iptables -A INPUT -i venet+ -m state --state NEW -p tcp --dport 10051 -j ACCEPT

# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

;;

stop)
echo "Stoppe IP-Paketfilter"
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
echo "Deaktiviere IP-Routing"

# Default-Policies setzen
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;

status)
echo "Tabelle filter"
iptables -L -vn
echo "Tabelle nat"
iptables -t nat -L -vn
echo "Tabelle mangle"
iptables -t mangle -L -vn
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop|status}"
exit 1
;;

esac

« Letzte Änderung: Januar 22, 2008, 10:17:12 pm von admin » Gespeichert

Grüße

Detlef
auch interessant Final-Sell, für eBay-Verkäufer
http://www.final-sell.com
Admin von http://www.1awww.com
Seiten: [1]
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.313 Sekunden mit 17 Zugriffen.