Andreas Korthaus: Welcher Server/Software für Remote-Zugriff

Hallo!

Ich soll in einer Firma einen eigenen Server in deren Rechenzentrum zu Testzwecken bekommen. Im Prinzip kann ich schon gewisse Dinge per SSH remote durchführen, aber jetzt mehr auf einen bestehenden/fertigen Server bezogen auf Web-Programme(MySQL...) bedienen.
Ich kann mir halt frei aussuchen was für ein Betriebssystem, welche Software...
Jetzt ist die Frage was ich da nehme ;-)
Vom Betriebssystem, wohl am besten RedHat Linux, denn das verwend eich auch selbst und kenn das zumindest einigermaßen.
Dann noch Apache mit SSL, mySQL, PostGresSQL, PHP, PERL, SSH, FTP und Postfix Mailserver. Das sollte doch reichen, oder braucht man nochwas um einen Server remote zu verwalten? Kann ich so ohne weiteres per SSH auch root-Zugriff bekommen? FTP ist ja auch so eine Sache, wenn ich jetzt z.B. eine eigene httpd.conf auf den Server hochladen will, dann mache ich das mit FTP, nur kann ich mir nicht vortellen das es so "gesund" sein kann dem FTP-User Schreib-Rechte auf allen Ebenen einzuräumen, von / angefangen. Also am besten nur auf mein home-Verzeichnis und auf das Apache htdocs Verzeichnis.
Vermutlich haben da einige von Euch etwas mehr Erfahrung, was bräuchte ich vieleicht noch und worauf müßte ich achten?

Viele Grüße
Andreas

  1. Hallo Andreas,

    Ich soll in einer Firma einen eigenen Server in deren Rechenzentrum zu Testzwecken bekommen. Im Prinzip kann ich schon gewisse Dinge per SSH remote durchführen, aber jetzt mehr auf einen bestehenden/fertigen Server bezogen auf Web-Programme(MySQL...) bedienen.

    Glückspilz

    Ich kann mir halt frei aussuchen was für ein Betriebssystem, welche Software...

    Doppelter Glückspilz

    Jetzt ist die Frage was ich da nehme ;-)

    Wer die Wahl hat ...

    Vom Betriebssystem, wohl am besten RedHat Linux, denn das verwend eich auch selbst und kenn das zumindest einigermaßen.
    Dann noch Apache mit SSL, mySQL, PostGresSQL, PHP, PERL, SSH, FTP und Postfix Mailserver. Das sollte doch reichen, oder braucht man nochwas um einen Server remote zu verwalten? Kann ich so ohne weiteres per SSH auch root-Zugriff bekommen?

    Wenn Du Dich per SSH anmeldest, kannst Du das als jeder beliebige Benutzer des Systems, also auch als root.
    Du solltest dich mit kommandozeilen basierten Tools auseinandersetzen, z.B. Editoren. Ich arbeite gerne mit joe (musst Du bei RedHat extra installieren), andere lieber mit vi, emacs, ...

    Somit kannst Du Deine Konfigurationsdateien direkt auf dem Server bearbeiten, das ist IMO besser als diese per FTP hochzuladen.

    Eine Remoteverwaltung bietet beispielsweise webmin <www.webmin.net>, ist Geschmackssache. Manche der Tools löschen sämtliche Kommentare in Konfigurationsdateien, was ich gar nicht gut finde.

    Gruss,

    Vinzenz

  2. Hallo!

    Vom Betriebssystem, wohl am besten RedHat Linux, denn das verwend eich auch selbst und kenn das zumindest einigermaßen.

    Naja, ich bin nicht der Linux-Betriebssystemfachmann. IMHO ist es egal, welches man nimmt. Jedes Betriebssystem ist schlecht, wenn man es nicht pflegt. Zum Beispiel Sicherheitsupdates etc.

    Dann noch Apache mit SSL, mySQL, PostGresSQL, PHP, PERL, SSH, FTP und Postfix Mailserver.

    Standard halt. Ich würde FTP nicht installieren, bzw. es abschalten und dafür SCP oder SFTP verwenden. Ich verwalte auch ein Server für eine Firma und habe mich jetzt dazu entschieden, FTP abzustellen. Um Dateien hochzuladen verwende ich WS_FTP 7.6. ab dieser Version wird SSH/SFTP unterstützt. Auch CuteFTP unterstützt SSH. WinSCP hat mich nicht begeistert.

    Du solltest den Zugriff auf MySQL und PostgrSQL nur von localhost aus zulassen. Es sollten auch nur die Dienste laufen, die Du benötigst. Also Ports schließen, die nicht benötigt werden. Der Server wird sicherlich von einem Admin installiert, Du solttest es aber noch einmal kontrollieren.

    Kann ich so ohne weiteres per SSH auch root-Zugriff bekommen?

    Die Übertragung ist verschlüßelt. Du kannst mit SSH das selbe machen wie mit Telnet.

    FTP ist ja auch so eine Sache, wenn ich jetzt z.B. eine eigene httpd.conf auf den Server hochladen will, dann mache ich das mit FTP, nur kann ich mir nicht vortellen das es so "gesund" sein kann dem FTP-User Schreib-Rechte auf allen Ebenen einzuräumen, von / angefangen. Also am besten nur auf mein home-Verzeichnis und auf das Apache htdocs Verzeichnis.

    Ein normaler User sollte auch kein Zugriff auf Verzeichnisse haben, in der System- und Configdateien liegen.

    Auf User hat nur Zugriff auf sein Homeverzeichnis. Auf die httpd.conf hat nur root Zugriff.

    Vermutlich haben da einige von Euch etwas mehr Erfahrung, was bräuchte ich vieleicht noch und worauf müßte ich achten?

    Meine Erfahrung ist, über alles mehrmals nachzudenken, was man auf dem Server macht. Ich habe mich schonmal ausgesperrt.

    MfG, André Laugks
    L-Andre @ gmx.de

    1. Hi André,

      FTP ist ja auch so eine Sache, wenn ich jetzt z.B. eine eigene httpd.conf auf den Server hochladen will, dann mache ich das mit FTP, nur kann ich mir nicht vortellen das es so "gesund" sein kann dem FTP-User Schreib-Rechte auf allen Ebenen einzuräumen, von / angefangen. Also am besten nur auf mein home-Verzeichnis und auf das Apache htdocs Verzeichnis.
      Ein normaler User sollte auch kein Zugriff auf Verzeichnisse haben, in der System- und Configdateien liegen.
      Auf User hat nur Zugriff auf sein Homeverzeichnis. Auf die httpd.conf hat nur root Zugriff.

      für mich ist die httpd.conf keine Systemdatei, sondern eine ganz normale Datei für ein ganz normales Anwendungsprogramm.
      Ich würde für die Apache-Konfiguration eine eigene Benutzerkennung "apache" einrichten, welche zumindest die Apache-Konfiguration enthält und jederzeit ändern darf. Diese Benutzerkennung darf sogar neue Apache-Versionen installieren (_neben_ die vorherige, nicht drüber) und diese auch ausprobieren (wenngleich nur mit "hohen" Portnummern).

      Ich möchte eben gerade _nicht_, daß jemand, der gerade mal eine Zeile in der Apache-Konfiguration ändern will, dafür "root" sein muß und beliebigen Unfug anstellen kann.
      Ich dezentralisiere inhaltlich verschiedene Funktionen gerne in separate Benutzerkennungen - wer weiß, wie die sich später mal auf verschiedene Personen verteilen werden, und wie viele Leute dann das "root"-Passwort kennen müßten? Nein, danke.

      Daß der Apache selbst unter "root" gestartet werden muß, um sich an einen "niedrigen" Port zu binden, läßt sich über das httpd-Binary lösen (chown root und s-Bit - das ist dann die "Übernahme" einer getesteten Apache-Version in die "Produktion", die muß "root" pro Version einmal machen). Der Benutzer "apache" darf dann sehr wohl auch den produktiven Apache starten und stoppen, ohne dafür weitere Systemprivilegien zu besitzen.

      Viele Grüße
            Michael

      --
      T'Pol: I meant no insult.
      V'Lar: Of course not. You're simply speaking your mind ... as you always have.
      1. Hallo Michael!

        für mich ist die httpd.conf keine Systemdatei, sondern eine ganz normale Datei für ein ganz normales Anwendungsprogramm.

        Deshalb hatte ich auch noch Configdatei geschrieben.

        Ich möchte eben gerade _nicht_, daß jemand, der gerade mal eine Zeile in der Apache-Konfiguration ändern will, dafür "root" sein muß und beliebigen Unfug anstellen kann.

        Genau das ist mein Problem. Für viele Kleinigkeit muß ich mich als root anmelden. Ein falsch eingetipptes rm (rm -R * anstatt rm -R /verz/verz/*) kann da zum Verhängnis führen.

        Daß der Apache selbst unter "root" gestartet werden muß, um sich an einen "niedrigen" Port zu binden, läßt sich über das httpd-Binary lösen (chown root und s-Bit - das ist dann die "Übernahme" einer getesteten Apache-Version in die "Produktion", die muß "root" pro Version einmal machen). Der Benutzer "apache" darf dann sehr wohl auch den produktiven Apache starten und stoppen, ohne dafür weitere Systemprivilegien zu besitzen.

        Wo bekomme ich darüber nähere Infos?

        MfG, André Laugks
        L-Andre @ gmx.de

        1. Hi André Laugks,

          Daß der Apache selbst unter "root" gestartet werden muß, um sich an einen "niedrigen" Port zu binden, läßt sich über das httpd-Binary lösen (chown root und s-Bit - das ist dann die "Übernahme" einer getesteten Apache-Version in die "Produktion", die muß "root" pro Version einmal machen). Der Benutzer "apache" darf dann sehr wohl auch den produktiven Apache starten und stoppen, ohne dafür weitere Systemprivilegien zu besitzen.
          Wo bekomme ich darüber nähere Infos?

          Das ist UNIX-Basiswissen. "man chown" und "man chmod" sollten helfen.

          Jedes Programm, das ein s-Bit für owner bzw. group gesetzt hat, wird mit der entsprechenden Berechtigung ausgeführt - der (privilegierte) Systemlader macht dabei intern ein "su" oder etwas Vergleichbares. (Man ist also nicht "wirklich" dieser Benutzer, sondern nur "temporär" - dies macht in gewisser Weise einen Unterschied, beim Apache ist das aber nicht relevant.)
          Derjenige, der das Programm starten will, braucht dafür natürlich das entsprechende x-Bit. Also:
           chown root httpd # --- setzt den owner der Datei auf "root"
           chmod u+s httpd # --- setzt das s-Bit für "user" (welches der Besitzer dieser Datei ist)
           chmod o+x httpd # --- setzt das x-bit für "others" (dadurch darf "apache" das Programm starten)

          Der Punkt ist dabei, daß "chown" nur von "root" ausgeführt werden darf (das s-Bit dürfte auch "apache" setzen, um anderen Benutzern zu erlauben, das Programm unter der Berechtigung von "apache" zu starten). "root" darf also ein Programm so installieren, daß es von anderen Benutzern unter "root"-Berechtigung (oder einer beliebigen anderen Berechtigung, beispielsweise einer Projektkennung) ausgeführt werden kann.

          Diese s-Bit-Methode ist allerdings nicht ungefährlich: Es gilt, sicherzustellen, daß das entsprechende Programm nicht dazu verwendet werden kann, eine Dialog-Shell zu öffnen oder sonst irgendwie gezielt Systemkommandos auszuführen (schon ein einziges privilegiert ausgeführtes Kommando reicht aus, eine permanente Systemlücke zu manifestieren, beispielsweise ein "chown" ...).
          Es gibt also diverse Programme, die sich für diese Methode _nicht_ eignen.

          Wenn Du nicht jeder Benutzerkennung, sondern nur bestimmten Kennungen erlauben willst, den Apache-Server zu starten, dann brauchst Du eine Gruppe, in der alle diese Kennungen enthalten sind, zudem muß das httpd-binary dieser Gruppe angehören, und Du setzt nur für die Gruppe das x-Bit auf die httpd-Datei, nicht aber für "others". Beispielsweise könnte der Benutzer "apache" in der Gruppe "apache" enthalten sein, und der Benutzer "laugks" ebenfalls ... ("chmod 4110 httpd" wäre die Kurznotation - ja, das sind vier Ziffern, nicht nur drei.)

          Viele Grüße
                Michael

          --
          T'Pol: I meant no insult.
          V'Lar: Of course not. You're simply speaking your mind ... as you always have.
    2. Hallo!

      Standard halt.

      ja ;-)

      Ich würde FTP nicht installieren, bzw. es abschalten und dafür SCP oder SFTP verwenden.

      sehr gute Idee, daran hate ich gar nicht mehr gedacht.

      Du solltest den Zugriff auf MySQL und PostgrSQL nur von localhost aus zulassen. Es sollten auch nur die Dienste laufen, die Du benötigst. Also Ports schließen, die nicht benötigt werden. Der Server wird sicherlich von einem Admin installiert, Du solttest es aber noch einmal kontrollieren.

      Das stimmt. Reicht es wenn ich das bei den Benutzern so einstelle(also bei MySQL in der Tabelel Users), oder kann man das noch zentral irgendwo grundsätzlich abstellen?

      Kann ich so ohne weiteres per SSH auch root-Zugriff bekommen?

      Die Übertragung ist verschlüßelt. Du kannst mit SSH das selbe machen wie mit Telnet.

      Hab nochnie mit Telnet gearbeitet, nur mit SSH.

      Ein normaler User sollte auch kein Zugriff auf Verzeichnisse haben, in der System- und Configdateien liegen.

      Auf User hat nur Zugriff auf sein Homeverzeichnis. Auf die httpd.conf hat nur root Zugriff.

      Sollte man dann _immer_ als Root arbeiten, also nicht das auf diese Weise irgend ein korruptes Script Root-Rechte bekommt, wenn ich es als root mit vi bearbeite oder sowas!

      Vermutlich haben da einige von Euch etwas mehr Erfahrung, was bräuchte ich vieleicht noch und worauf müßte ich achten?

      Meine Erfahrung ist, über alles mehrmals nachzudenken, was man auf dem Server macht. Ich habe mich schonmal ausgesperrt.

      Das macht bestimmt einen guten Eindruck wenn man dann im Rechenzentrum anruft..."äh, tschuldige... ich komm da nicht mehr rein ... " ;-))) aber ich sag mal lieber nichts mehr ;-)

      Nochwas anderes, wie ist das wenn ich andere Software selbst installieren will. Kann man irgendwie von Remote aus eine Datei von einem externen FTP-Server direkt auf den Remote-Server übertragen, oder muß man immer den Umweg über den eigenen Rechner machen?

      Grüße
      Andreas

      1. Hallo!

        Auf User hat nur Zugriff auf sein Homeverzeichnis. Auf die httpd.conf hat nur root Zugriff.
        Sollte man dann _immer_ als Root arbeiten, also nicht das auf diese Weise irgend ein korruptes Script Root-Rechte bekommt, wenn ich es als root mit vi bearbeite oder sowas!

        so ein blödsinn. nur weil du das script als root mit vi bearbeitest,w erden weder die file permissions noch der owner geändert.

        mfg, Johannes

        1. Hi,

          und was ist, wenn man sich vorher eine Kopie anlegt?

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      2. HallO!

        Das stimmt. Reicht es wenn ich das bei den Benutzern so einstelle(also bei MySQL in der Tabelel Users), oder kann man das noch zentral irgendwo grundsätzlich abstellen?

        Du kannst den MySQL-server mit --skip-networking starten. Keine Ahnung, ob es für die my.cnf eine Variable gibt.

        PostgreSQL wird ohne TCPIP_SOCKET gestartet, was Standard ist.

        Das macht bestimmt einen guten Eindruck wenn man dann im Rechenzentrum anruft..."äh, tschuldige... ich komm da nicht mehr rein ... " ;-))) aber ich sag mal lieber nichts mehr ;-)

        Nööö! Der Admin hat zu mir gesagt, es wäre der Klassiker! Ich habe den SSH-Server gestoppt. Ist blöd, wenn man über SSH auf der Maschine ist. Das meinte ich, man muß mehr nachdenken.

        Nochwas anderes, wie ist das wenn ich andere Software selbst installieren will. Kann man irgendwie von Remote aus eine Datei von einem externen FTP-Server direkt auf den Remote-Server übertragen, oder muß man immer den Umweg über den eigenen Rechner machen?

        Du lädst den Source oder rpm auf den Server. Dort installierst Du es. So als ob Du es lokal unter RedHat machst.

        MfG, André Laugks
        L-Andre @ gmx.de

        1. Hi!

          Du lädst den Source oder rpm auf den Server. Dort installierst Du es. So als ob Du es lokal unter RedHat machst.

          Ja, ich muß es erst von dem mysql-Server auf meinen PC laden, und dann von meinem PC auf den Server hochladen: 3x(Traffic+Zeit...)
          Kann ich nicht direkt vom MySQL-Server auf meinen Server kopieren?

          Grüße
          Andreas

          1. Hallo!

            Ja, ich muß es erst von dem mysql-Server auf meinen PC laden, und dann von meinem PC auf den Server hochladen: 3x(Traffic+Zeit...)
            Kann ich nicht direkt vom MySQL-Server auf meinen Server kopieren?

            Du kannst aber auch über wget oder ssh (wie genau weis ich nicht) den Source oder RPM direkt laden.

            MfG, André Laugks
            L-Andre @ gmx.de

          2. Hallo Andreas,

            Du lädst den Source oder rpm auf den Server. Dort installierst Du es. So als ob Du es lokal unter RedHat machst.
            Ja, ich muß es erst von dem mysql-Server auf meinen PC laden, und dann von meinem PC auf den Server hochladen: 3x(Traffic+Zeit...)
            Kann ich nicht direkt vom MySQL-Server auf meinen Server kopieren?

            Wenn Du per SSL auf Deinem Rechner im Rechenzentrum angemeldet bist, dann verfügst Du auf Deinem lokalen Rechner über ein Terminal Deines Servers, Du arbeitest also auf Deinem Server. Wenn Du im Terminal einen FTP-Client startest, dann lädst Du bei einem Download die Dateien gleich auf Deinen Server, sie laufen _nicht_ über Deinen lokalen Arbeitsrechner. Du hast also _nicht_ den dreifachen Aufwand.

            Gruss,

            Vinzenz

            1. Hi Vinzenz,

              Ja, ich muß es erst von dem mysql-Server auf meinen PC laden, und dann von meinem PC auf den Server hochladen: 3x(Traffic+Zeit...)
              Kann ich nicht direkt vom MySQL-Server auf meinen Server kopieren?
              Wenn Du per SSL auf Deinem Rechner im Rechenzentrum angemeldet bist, dann verfügst Du auf Deinem lokalen Rechner über ein Terminal Deines Servers, Du arbeitest also auf Deinem Server. Wenn Du im Terminal einen FTP-Client startest, dann lädst Du bei einem Download die Dateien gleich auf Deinen Server, sie laufen _nicht_ über Deinen lokalen Arbeitsrechner. Du hast also _nicht_ den dreifachen Aufwand.

              ... und vor allem ist die Verbindung zwischen zwei Servern im WWW in der Regel wesentlich schneller als der Weg durch den Flaschenhals eines normal angebundenen Endbenutzers. Ein FTP via Dialog-Shell direkt vom Server aus ist üblicherweise rasend schnell.

              Viele Grüße
                    Michael

              --
              T'Pol: I meant no insult.
              V'Lar: Of course not. You're simply speaking your mind ... as you always have.
    3. ReHallo,

      Die Übertragung ist verschlüßelt. Du kannst mit SSH das selbe machen wie mit Telnet.

      ich kriegs nicht hin. Yast über ssh geht einfach nicht. Die Funktionstasten fehlen.

      Das ummelden mit su klappt auch nur in der ssh-Konsole und hat keine Auswirkung auf die Rechte im ssh-Browserfesnter.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      1. Hi Thomas,

        ich kriegs nicht hin. Yast über ssh geht einfach nicht. Die Funktionstasten fehlen.

        klingt nach unpassenden settings für die Terminal-Emulation in irgend einer Environmentvariable ... ($TERM?)

        Viele Grüße
              Michael

        --
        T'Pol: I meant no insult.
        V'Lar: Of course not. You're simply speaking your mind ... as you always have.
  3. Hallo!

    Kann ich so ohne weiteres per SSH auch root-Zugriff bekommen?

    natürlich geht es auch, sich über ssh direkt als root einzuloggen. das ist aber soviel ich weiß standardmäßig deaktiviert, oder sollte es zumindest sein. stattdessen solltest du dich als normaler user einloggen und su verwenden.

    mfg, johannes

  4. Hallo Andreas,

    es wird wohl ziemlich viel über SSH gehen. Allerdings kann ich bei SuSE 7.2 kein Yast über ssh bedienen. Das bekomme ich nicht hin. Und ich habe die Stelle für die delay-Einstellung noch nicht gefunden. Also, wenn man sich über ssh anmeldet und die Credentials stimmen nicht, dann soll der ssh-Server 1 Sekunde warten, bis er wieder nachfragt.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.