Webserver auf Debian Etch per Shell

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Webserver auf Debian Etch per Shell

      Installieren eines Webservers über SSH2 (Debian Etch 4.0)

      Sooooooo Leute, heut gehts an das Installieren eines Webservers auf Debian Etch 4.0.

      Alles was ihr dafür braucht, ist:

      - Geduld
      - Eine Thermoskanne Kaffee
      - Putty (downloadbar hier: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
      - Das Programm 'nano' auf dem Webserver. Installationsanleitung für nano siehe Anhang.
      - Filezilla 3 mit SFTP eingerichtet (Name: root, PW: rootpasswort, Host: Server-IP, Port:22, Methode: SFTP über SSH2) downloadbar

      hier: chip.de/downloads/c1_downloads_13011076.html


      (1) Installieren und konfigurieren von Apache2

      Als erstes wirds mal Zeit, dass wir den Apache Webserver überhaupt herunterladen und dann installieren. Dies ist bei Debian

      denkbar einfach, dazu reicht uns folgender Befehl:

      Quellcode

      1. apt-get install apache2


      Da wartet ihr, bis es fertig ist, und schon ist Apache installiert.

      Wenn ihr jetzt eure IP / Domain aufruft unter der der vServer / Root Server läuft, müsstet ihr eine HTML Seite mit "It Works!"

      sehen. Wenn ja, gehts weiter!

      Als erstes sollten wir mal das mit "It Works!" löschen.

      Dazu melden wir uns mit Filezilla 3 normal an und wechseln in den Ordner /var/www (um in den Hauptordner zu kommen, ist es nötig,

      oben auf ../ zu drücken, um den ordner /root zu verlassen) und löschen da den ordner /apache2-default.

      Damit wär der Ordner weg, doch die Weiterleitung ist immer noch da?!?

      Dazu müssen wir wissen, das Apache sogenannte Virtuelle Hosts (genannt VHOST) anlegt, die dazu dienen, verschiedene Domains auf

      verschiedene Ordner weiterzuleiten. Dies jedoch in einem Anderen Tutorial ;)

      Es gibt jedoch immer einen VHOST, der zurzeit auf das Verzeichnis /var/www zeigt und bei jedem aufruf, obgleich es IP oder Domain

      ist, angezeigt wird.

      Wir öffnen jetzt die Konfigurationsdatei des VHOST mitfolgendem Befehl:

      Quellcode

      1. nano /etc/apache2/sites-enabled/000-default


      Jetzt suchen wir einfach die Zeile:

      Quellcode

      1. RedirectMatch ^/$ /apache2-default/


      Die Ersetzen wir jetzt mit


      Quellcode

      1. #RedirectMatch ^/$ /apache2-default/


      und drücken STRG+O (gleichzeitig) damit nano die änderungen speichert. eventuell fragt nano auch noch, ob gespeichert werden soll,

      die bestätigt man dann mit Y!

      jetzt ein kleiner Haken: Nicht wie bei Windows üblich werden Veränderungen sofort übernommen, sondern erst nach einem Restart

      (Neustart) des Apache servers. Dies kann man folgendermaßen ausführen:

      Quellcode

      1. /etc/init.d/apache2 restart


      und fertig.

      Damit wär die Weiterleitung ausgeschaltet und du hast soeben Apache installiert! ;)

      (2) PHP5 installieren

      Jetzt haben wir zwar Apache, schön und gut.. Aber was ist mit PHP für PHP fähige dynamische Seiten?

      Ganz einfach. Da wir jetz Apache installiert und konfiguriert haben, reicht folgender Befehl:

      Quellcode

      1. apt-get install php5


      und dann ein Apache Restart. Weißt du etwa nicht mehr wie der geht? Da oben wars schonmal :P dann eben nochmal:

      Quellcode

      1. /etc/init.d/apache2 restart


      Und dann geht PHP.

      Am besten empfehle ich noch, die php5-GDLib zu installieren, die man für bestimme Anwendungen benötigt, wie WBB3 oder Joomla!.

      Dies geht auch mit einem Code:

      Quellcode

      1. apt-get install php5-gd


      Und fertig!

      (3) MySQL Server installieren

      Was nutzt jetzt aber PHP5 wenn wir kein MYSQL für ein Forum oder ein CMS haben? Keine sorge... MySQL geht genauso einfach.

      Auch wieder mit - wer hätts geahnt - einem Befehl:

      Quellcode

      1. apt-get install mysql-server


      und dann geht des auch.

      Wenn wir jetzt allerdings versuchen, mit PHP eine mysql verbindung aufzubauen, wird das nicht funktionieren, da PHP eine MySQL

      erweiterung benötigt.

      Diese installiert man folgendermaßen:

      Quellcode

      1. apt-get install php5-mysql


      Und dann wird des auch funktionieren.

      Einfach Apache neustarten, wenns nicht gleich funktioniert.

      Was, du hast schon wieder vergessen wie das geht?

      Quellcode

      1. /etc/init.d/apache2 restart


      Merks dir jetzt endlich mal!

      (4) Abschluss

      Jetzt haben wir schon alles was ein Webserver benötigt - eigentlich.

      Ganz nützlich ist auch phpmyadmin, das wir auch - wie gewohnt - mit einem Befehl installieren:

      Quellcode

      1. apt-get install phpmyadmin


      Nun nach dem Ausführen einfach

      deine-ip/phpmyadmin

      bzw.

      deine-domain.de/phpmyadmin

      aufrufen.

      Hierbei mit Phpmyadmin gleich ein ROOT passwort für MySQL setzen - MySQL ohne Root PW ist wie ein Sack Geld mitten auf einer

      Straße. Dies geht einfach:

      Phpmyadmin aufrufen -> im Hauptfenster unten auf "Rechte" klicken -> hinter "root" - "localhost" auf das Bearbeiten Symbol

      Klicken. Hier dann nach dem Feld "Passwort ändern" suchen, neues Passwort eintragen und dann auf das OK Knöpfchen ganz rechts

      klicken - fertig!

      Dies muss man eventuell beim benutzer "root" - "dein -host" oder "root" - "deine IP" wiederholen.

      Und damit haben wir au schon ein funktionierendes Phpmyadmin! Und gesichertes MYSQL!

      Was fehlt denn jetzt noch.. hmm...

      Eigentlich nichts.

      Dateien werden über SFTP hochgeladen, FTP Tutorial kommt auch noch irgendwann...

      (5) Anhang

      Probleme? -----> im Thread schreiben
      Fragen? -----> im Thread schreiben!
      Wie kann ich nano installieren ------> Im Thread... nein! Ich hab ja gesagt dass ich des extra sage^^

      Also des geht auch wieder mit apt-get, nämlich so:

      Quellcode

      1. apt-get install nano


      und dann isch des auch fertig.


      Gruß

      Nico Meier


      --------------------
      (C) 2007-2008 PC-Heaven.DE. Angeboten unter Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported lizenz
      Neuer Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/2843068.png]
      Alter Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/808641.png]

      "And, in the end, the love you take/ Is equal to the love you make." - Paul McCartney

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Odious ()

    • Kleine Fortsetzung!

      (6) Installieren von Sendmail

      Wie sicher schon viele bemerkt haben geht bei dieser Konfiguration die PHP Funktion mail() nicht. (Mail Versand per PHP)

      Dies kann einfach erreicht werden indem folgender Code ausgeführt wird:

      Quellcode

      1. apt-get install postfix


      Bei der Postfix Installation muss "Internetserver" als Zweck angegeben werden. So funktioniert Sendmail auf Anhieb!
      Neuer Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/2843068.png]
      Alter Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/808641.png]

      "And, in the end, the love you take/ Is equal to the love you make." - Paul McCartney
    • Wieder eine kleine Fortsetzung:

      (7) Installieren von ProFTPd mit MySQL Unterstützung (FTP benutzer per MySQL)

      Zuersteinmal müssen wir wieder mit einem apt-get install befehl beginnen.

      Dies mal mit

      Quellcode

      1. apt-get install proftpd-mysql


      Bei der Installation das evt. auftretende Fenster mit OK bestätigen.

      Nun funktioniert das ganze natürlich noch nicht.

      Um FTP User per MySQL hinzufügen zu können, fehlt uns noch eine Verbindung ProFTPd <-> MySQL und natürlich ein Allround User mit dem die ganzen User auf dem Server laufen.

      Diesem FTP-User gehören später alle Ordner/Dateien im FTP bereich, sodass man keine spezifischen Rechte mehr für jeden einzelnen Benutzer setzen muss.

      DIesen legen wir also dann mal als erstes an mit einer UserID die nicht im System belegt ist. Ich hab hierbei einfach aufs Geratewohl die ID 2593 genommen. Vorher müssen wir allerdings eine Gruppe erstellen, in der wir den User "parken". Hierbei nehme ich auch meine ID 2593.

      Somit lauten die 2 Befehle:

      Quellcode

      1. groupadd -g 2593 ftpgroup

      Quellcode

      1. useradd -u 2593 -s /bin/false -d /bin/null -g ftpgroup ftpuser


      Hiermit haben wir nun also unsern FTPUser.

      Damit der auch auf alles zugreifen kann, müssen wir das FTP verzeichnis komplett dem Benutzer zuweisen. Dies geht mit dem Befehl

      Quellcode

      1. chown -hRv ftpuser:ftpgroup /ordner/ordner


      Wenn wir FTP benutzer für einen Webspace im Apache Verzeichnis /var/www erstellen wollen, dann geht das mit

      Quellcode

      1. chown -hRv ftpuser:ftpgroup /var/www


      Jetzt fehlt also nur noch die Verbindung ProFTPd <-> MySQL. UNd dies wird jetzt ein bisschen aufwändiger.

      Als erstes müssen wir im MYSQL einen User für ProFTPd erstellen. Hierbei bietet sich besonderes Phpmyadmin an: Man klickt auf SQL und gibt folgenden Befehl ein:

      SQL-Abfrage

      1. CREATE DATABASE ftp;
      2. GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
      3. FLUSH PRIVILEGES;


      Bitte das Passwort auch ersetzen!!

      Als nächstes legen wir dann (wieder in phpmyadmin über DB aus wählen -> Ftp -> SQL) die Tabellen an.

      SQL-Abfrage

      1. CREATE TABLE ftpgroup (
      2. groupname varchar(16) NOT NULL default '',
      3. gid smallint(6) NOT NULL default '2593',
      4. members varchar(16) NOT NULL default '',
      5. KEY groupname (groupname)
      6. ) TYPE=MyISAM COMMENT='ProFTP group table'; CREATE TABLE ftpquotalimits (
      7. name varchar(30) default NULL,
      8. quota_type enum('user','group','class','all') NOT NULL default 'user',
      9. per_session enum('false','true') NOT NULL default 'false',
      10. limit_type enum('soft','hard') NOT NULL default 'soft',
      11. bytes_in_avail int(10) unsigned NOT NULL default '0',
      12. bytes_out_avail int(10) unsigned NOT NULL default '0',
      13. bytes_xfer_avail int(10) unsigned NOT NULL default '0',
      14. files_in_avail int(10) unsigned NOT NULL default '0',
      15. files_out_avail int(10) unsigned NOT NULL default '0',
      16. files_xfer_avail int(10) unsigned NOT NULL default '0'
      17. ) TYPE=MyISAM; CREATE TABLE ftpquotatallies (
      18. name varchar(30) NOT NULL default '',
      19. quota_type enum('user','group','class','all') NOT NULL default 'user',
      20. bytes_in_used int(10) unsigned NOT NULL default '0',
      21. bytes_out_used int(10) unsigned NOT NULL default '0',
      22. bytes_xfer_used int(10) unsigned NOT NULL default '0',
      23. files_in_used int(10) unsigned NOT NULL default '0',
      24. files_out_used int(10) unsigned NOT NULL default '0',
      25. files_xfer_used int(10) unsigned NOT NULL default '0'
      26. ) TYPE=MyISAM; CREATE TABLE ftpuser (
      27. id int(10) unsigned NOT NULL auto_increment,
      28. userid varchar(32) NOT NULL default '',
      29. passwd varchar(32) NOT NULL default '',
      30. uid smallint(6) NOT NULL default '2593',
      31. gid smallint(6) NOT NULL default '2593',
      32. homedir varchar(255) NOT NULL default '',
      33. shell varchar(16) NOT NULL default '/sbin/nologin',
      34. count int(11) NOT NULL default '0',
      35. accessed datetime NOT NULL default '0000-00-00 00:00:00',
      36. modified datetime NOT NULL default '0000-00-00 00:00:00',
      37. PRIMARY KEY (id),
      38. UNIQUE KEY userid (userid)
      39. ) TYPE=MyISAM COMMENT='ProFTP user table';
      Alles anzeigen


      Hiermit sind wir dann im MYSQL Bereich fertig und können phpmyadmin zumachen. PUH! Erstmal ein SChluck aus unserer Kaffeekanne (siehe Utensilien die man benötigt ganz oben^^)

      Jetzt muss nur noch der proftpd.conf (/etc/proftpd/proftpd.conf) beigebracht werden, wie sie zu MySQL verbinden soll!

      Als allererstes aber müssen wir ProFTPd sagen, dass wir MySQL und nicht PostgreSQL benutzen.

      Dazu öffnen wir die modules.conf folgendermaßen:

      Quellcode

      1. nano /etc/proftpd/modules.conf


      Hier suchen wir nach folgender Stelle:

      Quellcode

      1. LoadModule mod_sql_postgres.c


      und machen davor ein # um es auszukommentieren und speichern dann mit STRG+O die Datei.

      Als nächstes nehmen wir uns die proftpd.conf mit dem Befehl

      Quellcode

      1. nano /etc/proftpd/proftpd.conf


      vor.

      Hierbei fügen wir folgende Sachen ganz am Ende der Datei ein:

      DABEI UNBEDINGT DRAUF ACHTEN DASS DAS PASSWORT (BEI "
      SQLConnectInfo ftp@localhost proftpd password" IN DAS PASSWORT GEÄNDERT WIRD DASS MAN FÜR DEN FTP BENUTZER IN MYSQL ANGELEGT HAT!

      Quellcode

      1. DefaultRoot ~
      2. # The passwords in MySQL are encrypted using CRYPT
      3. SQLAuthTypes Plaintext Crypt
      4. SQLAuthenticate users* groups*
      5. # used to connect to the database
      6. # databasename@host database_user user_password
      7. SQLConnectInfo ftp@localhost proftpd password
      8. # Here we tell ProFTPd the names of the database columns in the "usertable"
      9. # we want it to interact with. Match the names with those in the db
      10. SQLUserInfo ftpuser userid passwd uid gid homedir shell
      11. # Here we tell ProFTPd the names of the database columns in the "grouptable"
      12. # we want it to interact with. Again the names match with those in the db
      13. SQLGroupInfo ftpgroup groupname gid members
      14. # set min UID and GID - otherwise these are 999 each
      15. SQLMinID 500
      16. # create a user's home directory on demand if it doesn't exist
      17. SQLHomedirOnDemand on
      18. # Update count every time user logs in
      19. SQLLog PASS updatecount
      20. SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
      21. # Update modified everytime user uploads or deletes a file
      22. SQLLog STOR,DELE modified
      23. SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
      24. # User quotas
      25. # ===========
      26. QuotaEngine on
      27. QuotaDirectoryTally on
      28. QuotaDisplayUnits Mb
      29. QuotaShowQuotas on
      30. SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
      31. SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
      32. SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
      33. SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
      34. QuotaLimitTable sql:/get-quota-limit
      35. QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
      36. SQLNamedQuery gettally SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
      37. SQLNamedQuery getlimit SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
      38. SQLNamedQuery getfree SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"
      39. SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."
      40. RootLogin off
      41. RequireValidShell off
      Alles anzeigen


      Dies reicht dann auch mit der Proftpd.conf. Eine vollständig bearbeitete proftpd.conf nach meinen Vorstellungen befindet sich im Anhang.

      Dann öffnen wir wieder phpmyadmin und tragen unsere FTP Gruppe ein. (DB auswählen -> ftp -> SQL)

      SQL-Abfrage

      1. INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2593, 'ftpuser');


      Jetzt können wir User hinzufügen.

      Dies geht ganz einfach mit dem BEfehl (DB Auswählen -> ftp -> SQL):

      SQL-Abfrage

      1. INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'BENUTZERNAME', 'PASSWORT', 2593, 2593, '/VERZEICHNIS/VERZEICHNIS', '/sbin/nologin', 0, '', '');


      Bitte genau drauf achten dass die erfoderlichen Daten ersetzt werden.

      Nach der ganzen Prozedur den ProFTPd Server neustarten mit

      Quellcode

      1. /etc/init.d/proftpd restart


      Und dann sind wir fertig mit unserem FTP Usern verarbeiten.. auf diese art können ganz einfach neue hinzugefügt werden! Es sollte nur beachtet werden dass die Shell (/sbin/nologin) und die gid/uid (beidesmal 2593) nicht verändert werden.

      Außerdem sollte beachtet werden dass die User auf das Verzeichnis dass wir ihnen zuweisen Rechte haben - im zweifelsfall also ein

      Quellcode

      1. chown -hRv ftpuser:ftpgroup /verzeichnis/verzeichnis


      Ausführen.
      Neuer Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/2843068.png]
      Alter Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/808641.png]

      "And, in the end, the love you take/ Is equal to the love you make." - Paul McCartney
    • Fehler Fixing:

      sollte in der proftpd folgendes (oder auch mit anderen gruppennamen) stehen:

      Quellcode

      1. <Limit LOGIN>
      2. DenyGroup !ftpprousers !ftpusers
      3. </Limit>


      dann ersetzen mit der FTP gruppe die wir eben erstellt haben:

      Quellcode

      1. <Limit LOGIN>
      2. DenyGroup !ftpgroup
      3. </Limit>


      Angehängt eine CONF wie ich mir das vorstelle!
      Dateien
      • proftpd.txt

        (7,43 kB, 412 mal heruntergeladen, zuletzt: )
      Neuer Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/2843068.png]
      Alter Rechner:
      [Blockierte Grafik: http://valid.canardpc.com/cache/banner/808641.png]

      "And, in the end, the love you take/ Is equal to the love you make." - Paul McCartney
    [ Barcodescanner | …finden und gefunden werden | IconShock Icons | Klassische PC-Spiele ]
    [ Webmaster Bibel | IT-System-Kaufleute | Datenrettung Service | Greensmilies | Avatare | Autokredit online | Computer Forum ]