Ubuntu Server und die Default-Route

shivarulez

shivarulez

Mitglied
Hi all.

Hab mal wieder ein kleines Problem. Mein Server steht im Moment in einem Rechenzentrum in Frankfurt. Am Anfang war das Problem das der Server nicht erreichbar war, weder per anpingen noch per ssh/ftp. Habe dann dem Support gemailt und der hat mir dann die fehlende "Default-Route" eingestellt. Jetzt ist der Server erreichbar, nur das Problem ist das der Support gesagt hat, wenn ich nen reboot mache die Default-Route wieder weg ist und somit der Server nicht mehr von außen zu erreichen ist, da sie nur "manuell" gesetzt wurde.

Könnt ihr mir bitte sagen bzw. erklären wie ich im System die Default-Route dauerhaft festlege??

Kann ich das auch per Webmin machen???

Vielen Dank schon mal im Voraus für eure Hilfe

gruß
shiva
 
Hihi, die simpelste Loesung waere wohl, den Befehl, den die benutzt haben aus der History rauszusuchen und am Ende der /etc/init.d/rc einzufuegen. Normalerweise sollte das aber auch ueber die Netzwerk-Einstellungen gehen.
 
ok, den Befehl habe ich jetzt

Code:
route add default gw XX.XXX.XXX.X

Code:
esac
                last_step=$(($last_step + 1))
                # 50% of progress for rcS, 50% for our ultimate runlevel
                progress=$(($last_step * 50 / $num_steps + 50))
                if type usplash_write >/dev/null 2>&1; then
                    usplash_write "PROGRESS $progress" || true
                fi
        done
  fi
# eof /etc/init.d/rc

Wo muss ich genau den Befehl einfügen?? Zwischen fi und # eof /etc/inti.d/rc ???
 
Jep, '# eof...' ist ja nur ein Kommentar, also entweder unter das 'fi' oder einfach als letzte Zeile (abschliessende Leerzeile nicht vergessen). Diese Loesung ist sicher nicht professionell, aber simpel und schnell umzusetzen. Du kannst natuerlich auch einfach die Datei /etc/network/interfaces anpassen und dort den Default-Gateway fuer deine Netzwerkkarte setzen. Was anderes tut der Befehl ja auch nicht. Der Eintrag muesste dann wie folgt aussehen:

Code:
auto eth0
iface eth0 inet static
        address <deine-serverip>
        netmask <deine-netmask>
        gateway <deine-gateway-ip-aus-dem-route-befehl>

Natuerlich die entsprechenden Werte eintragen. ;)

PS: Rootserver ohne serielle Konsole sind immer Mist. :)
 
Danke für deine Hilfe, theton.

Eine Frage habe ich noch. Welche offene Ports kann ich am Server schließen?

Code:
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
631/tcp   open  ipp
1723/tcp  open  pptp
10000/tcp open  snet-sensor-mgmt
32770/tcp open  sometimes-rpc3
32771/tcp open  sometimes-rpc5

Die Ports 21, 22 und 10000 sind klar, die brauch ich bzw. brauch ich noch.
Aber die restlichen Ports sagen mir gar nix!!
Brauch ich die???
Auf dem Server sollen Gameserver und Homepages laufen...

gruß
shiva
 
Nach dem, was ich sehen, brauchst du die nicht. Hier ein kleines Firewall-Script, dass du mit dem Parameter 'start' aufrufen kannst um eine grundlegende Firewall aufzubauen, die nur die Ports 21, 22, und 10000 offen laesst:

Code:
#!/bin/bash

echo "Starting firewall"

LOGLIMIT=20
IPTABLES=/sbin/iptables

case "$1" in
start)
        # alle alten Regeln entfernen
        echo "Loesche alte Regeln"
        $IPTABLES -F
        $IPTABLES -X
        $IPTABLES -t nat -F
        ### ERSTELLE NEUE KETTEN ###
        # Chain to log and reject a port by ICMP port unreachable
        $IPTABLES -N LOGREJECT
        $IPTABLES -A LOGREJECT -m limit --limit $LOGLIMIT/minute -j LOG --log-prefix "FIREWALL REJECT " --log-level notice --log-ip-options --log-tcp-options
        $IPTABLES -A LOGREJECT -j REJECT --reject-with icmp-port-unreachable

        ### PROC MANIPULATION ###
        # auf Broadcast-Pings nicht antworten
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
        # halt die Klappe bei komischen ICMP Nachrichten
        echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
        # Kicke den ganzen IP Spoofing Shit
        # (Source-Validierung anschalten)
        echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
        # Setze Default-TTL auf 61 (Default fuer Linux ist 64)
        echo 61 > /proc/sys/net/ipv4/ip_default_ttl
        # sende RST-Pakete wenn der Buffer voll ist
        echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
        # warte max. 30 secs auf ein FIN/ACK
        echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
        # unterbreche Verbindungsaufbau nach 3 SYN-Paketen
        # Default ist 6
        echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
        # unterbreche Verbindungsaufbau nach 3 SYN/ACK-Paketen
        # Default ist 6
        echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

        ### MAIN PART ###
        $IPTABLES -P INPUT DROP
        $IPTABLES -P FORWARD DROP
        $IPTABLES -P OUTPUT ACCEPT
        $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
        # im Loopback koennen wir jedem trauen
        $IPTABLES -A INPUT -i lo -j ACCEPT
        # erlaube Pings
        $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
        # erlaube SSH
        $IPTABLES -A INPUT -p tcp --dport 22 --tcp-flags ALL SYN -j ACCEPT
        # erlaube FTP
        $IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
        # erlaube Webmin
        $IPTABLES -A INPUT -p tcp --dport 10000 -j ACCEPT
        # Alle TCP Packete, die bis hier hin kommen, werden
        # geloggt und rejected
        # Der Rest wird eh per Default Policy gedroppt...
        $IPTABLES -A INPUT -p tcp -j LOGREJECT
        $IPTABLES -A FORWARD -p tcp -j LOGREJECT
        ;;
*)
        echo "Usage: `basename $0` {start}" >&2
        exit 64
        ;;
esac

exit 0

Nachtrag: Sobald dein Webserver eingerichtet ist, kannst du wie in diesem Beispiel fuer FTP auch Port 80 freigeben und fuer den Gameserver musst du natuerlich auch den Port freischalten, den der benutzt.
 
ich würde noch die ports raussuchen die die spiele benützen und da dann auch noch ins firewall skript einfügen denn sonst wirst dann wieder probleme haben :)
 
Danke für das script. Aber ein bisschen Angst wenn ich das Script ausführe dass ich mich evtl. "aussperre" bzw. die Firewall irgendwie kaputt mache :)

Wollte den Dienst eigentlich deaktivieren und nicht durch ne Firewall verhindern...

z.B.

Code:
update-inetd --remove 


p15145775:/# update-inetd --remove daytime
p15145775:/# update-inetd --remove telnet
p15145775:/# update-inetd --remove time
p15145775:/# update-inetd --remove finger
p15145775:/# update-inetd --remove talk
p15145775:/# update-inetd --remove ntalk
p15145775:/# update-inetd --remove ftp
p15145775:/# update-inetd --remove discard
p15145775:/# update-inetd --remove smtp

WARNING!!!!!! /etc/inetd.conf contains multiple entries for
the `discard' service. You're about to remove these entries.
Do you want to continue? [n] y

Ok, I'll stop ...

Code:
139/tcp   open  netbios-ssn		samba
445/tcp   open  microsoft-ds		drucker
631/tcp   open  ipp			Cups Jobverwaltung
1723/tcp  open  pptp			VNP Server
32770/tcp open  sometimes-rpc3
32771/tcp open  sometimes-rpc5
Stimmt das in etwa was ich da über die Ports/Dienste geschrieben habe??
Kann mir bitte wer erklären für was die port 32770 und 32771 gut sind??
 
Zuletzt bearbeitet:
Mit dem Firewall-Skript bleibt mindestens deine aktuelle SSH-Verbindung offen. Dafuer sorgen die Zeilen

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Diese besagen soviel wie alle Verbindungen, die als Forward oder Input gekommen sind und bereits existieren, sowie die Verbindungen, die zu diesen gehoeren, sollen akzeptiert werden. Ich benutze das Skript auf meinen Rootservern um nach aussen nur die Services zuzulassen, die ich zulassen will.
 
Gut, das hört sich doch sehr vernüftig an. Wenn du mir noch sagt wie ich das Script ausführe bzw. mit welchem Programm?
 
Einfach die Datei ausfuehrbarmachen und dann mit './scriptname start' aufrufen, alternativ:

bash scriptname.sh start

Diesen Startparameter habe ich eingebaut, damit man es auch beim Booten starten kann. Einfach nach /etc/init.d kopieren, ausfuehrbar machen und Links in die entsprechenden Runlevel setzen.
 
In welchem Verzeichnis muss ich das Script uploaden??
 
Wenn du es als Start-Skript benutzen willst, dann nach /etc/init.d und entsprechend in die Runlevel verlinken. Willst du es als "normalen" Befehl ausfuehren koennen, dann nach /usr/sbin o.ae. Dann einfach mal ein

chmod root:root /usr/sbin/skriptname
chmod ug+x /usr/sbin/skriptname

und schon kannst du es mit

skriptname start

aufrufen.
 
Wie mach aus dem Text ein Script?? Den Text in ein .txt Dokument kopieren und dann umbenennen oder?
 
Hallo!

Code:
139/tcp   open  netbios-ssn		samba
445/tcp   open  microsoft-ds		drucker
631/tcp   open  ipp			Cups Jobverwaltung
1723/tcp  open  pptp			VNP Server
32770/tcp open  sometimes-rpc3
32771/tcp open  sometimes-rpc5

Von den Ports 32770 und 32771 habe ich auch noch nichts gehört, aber bei einer Google-Suche bin ich folgenden Foren-Beitrag gestoßen: http://ubuntuforums.org/archive/index.php/t-77684.html
Du scheinst also nicht der einzige zu sein bei dem die Ports offen sind.

Gib doch mal in der Konsole auf deinem Server 'netstat -apn --ip' ein und poste die Ausgabe hier rein. Mal sehen welche Programme hinter den Ports stecken.
 
Code:
tcp        0      0 127.0.0.1:32771         0.0.0.0:*               LISTEN     -

Der Port 32770 steht gar nicht drin...
 
Hi!

Du hast das vermutlich als normaler Benutzer gemacht.
Damit du bei netstat alle Verbindungen angezeigt bekommst musst du root sein, bzw. bei Ubuntu ein 'sudo' vor den eigentlichen Befehl stellen.

Also gibt jetzt nochmal folgendes ein:
Code:
sudo netstat -apn --ip
Du wirst dann nochmal nach deinem Passwort gefragt und solltest dann die komplette Ausgabe sehen.

Gruss,
Philip
 
Hat sich schon erledigt... Die Ports waren von einem Samba Server und einem VNP Server. Hab sie mittels Webmin "platt" gemacht
 

Ähnliche Themen

Problem mit Ubuntu/openVPN-Server hinter Router

OpenVPN - Server kann clients nicht erreichen.

iptables - default policy - Server macht dicht

Runlevel+Startscript unter Ubuntu 10.04 Server x64

Ubuntu X / dbus problem

Zurück
Oben