Jump to content
Froxlor Forum
  • 0

Froxlor-Sicherheit


christophe

Question

Hallo,

 

ich m?chte einen Server mit Froxlor auf einem hohen Sicherheitsniveau laufen lassen. In diesem Thread m?chte ich meinen Plan mit euch diskutieren, vielleicht entsteht ja ein Howto daraus. Dabei geht es mir nicht um einen bestimmten Sicherheitsaspekt, sondern um alle F?lle, in denen eine Person unbefugt Zugang zu privaten Daten hat.

 

Dienste

  • Web (apache2)
  • PHP (fcgi)
  • Ruby (mod_passenger)
  • SMTP (postfix)
  • IMAP (dovecot)
  • POP3 (dovecot)
  • SSH
  • MySQL

 

(1) Angreifer nutzt bestehenden Account

 

Passwort erraten => Sichere Passw?rter verwenden, fail2ban f?r SSH, SMTP, IMAP/POP3

Passwort mitgeh?rt => Alle Dienste nur verschl?sselt anbieten (SMTP, IMAP/POP3, FTP)

 

(2) Angreifer hat Webanwendung eines Nutzers gehackt

 

Durch PHP-L?cke => In Ma?en mit Suhosin vermeidbar

Durch L?cke in der Anwendung => Nicht vermeidbar

 

(3) Zugriff von einem Account auf den anderen

 

PHP => Suexec, gute Dateirechte (Der Safe Mode bzw. open_basedir sind Bockmist)

Ruby => ?

SMTP/IMAP/POP3 => unwahrscheinlich

FTP => Chroot

SFTP => Chroot oder gute Dateirechte

SSH => gute Dateirechte

MySQL => Sichere Passw?rter

 

(4) Allgemeine Serversicherheit

 

?ber Serverupdates benachrichtigen mit apt-cron

Ggf. per Firewall die das Nachladen von Code verhindert

Ggf. per Firewall bestimmte L?nder blockieren

 

 

Ich habe fast alles umgesetzt, nur die Dateirechte fehlen noch.

 

/var/customers/webs/* rwxr-x---

/var/www/ rwxr-x--x (wg. php-fcgi-scripts)

/var/www/* rwxr-x--- (au?er php-fcgi-scripts)

/var/customers/sieve ?

/var/customers/logs ?

/var/customers/tmp OK

/var/customers/mail OK

/var/log/* ?

Link to post
Share on other sites

21 answers to this question

Recommended Posts

Also erstmal find ich die Idee gut. Man sollte/muss aber schon vorher angreifen, meiner bescheidenene Meinung nach. Das macht erst Sinn ab ein paar Kunden, aber eine Software wie froxler sollte sich das doch als "Ziel" setzen, und das andere ebenfalls erm?glichen.

 

Das bedeutet als erstes das die Dienste auf unterschiedliche Server geh?ren, so kann man auch Mailserver Betriebsystem austauschen und extra absichern, ebenfalls den Webserver. Wenn die Templates f?r die Konfiguration besser werden und flexibler, dann kann man auch eigene Software kompilieren und die Standard Templates anpassen oder erweitern, was auch nicht in Default Ordnern und Co liegen muss. Dann sollte man livezugriff vermeiden, also auf jedem Server per Cron all X Minuten die Konfiguration aktiv vom Node aus ziehen, und der sollte nur auf das Zugriff haben was er braucht, eventuell zieht er das auch per FTP und jeder Server bekommt da nur das hingelegt was er braucht, dann braucht man auch nicht zwingend eine DB.

 

So erreicht man Sicherheit auf mehreren Ebenen, ebenfalls Sicherheit vor ?berlastung, bzw. Kapselung der Dienste. Alles bekommt man nie gel?st, aber ein Kunde der PHP und FTP hat, der kann alleine schon viel machen, aber man geht ja meistens nicht davon aus das kunden was machen. Wenn die aber schon alleine auf diesem Server keine Mailkonten liegend haben, dann ist das Problem schon mal sehr eingegrenzt...

Link to post
Share on other sites

noch was, das sa-update von SpamAssassin ist sehr cool.

Man k?nnte die Server also ?ber MD5 Summen oder Serinennummer der Konfigurationsfiles entscheiden lassen ob Sie was updaten m?ssen.

 

Diese codes k?nnte man in Records im DNS hinterlegen. Da gibt es viele M?glichkeiten, mir kommen da immer mehr Ideen gerade f?r gr??ere Installationen wenn ich mir den Mechanismus ansehen. Beispielswiese k?nnte hier selbst bei einem Ausfall der Weboberfl?che (eigener Server) jeder Server durch DNS Abfragen entscheiden das er gut l?uft, und auch keine Anfrage an eien nicht laufenden Server stellen braucht.

 

Nicht alles macht Sinn, aber ansehen lohnt sich. Ideen kommen von ganz alleine.

Link to post
Share on other sites

Hallo Zusammen,

 

mein erster Beitrag hier ;)

 

Ich wollte mal horchen wie es um die Sicherheit der Defaultconfig steht.

 

Hab heute Froxlor installiert, den Apachen mit nem SSL Cert von StartSSL ausgestattet und alle Domainaufrufe zu Froxlor von HTTP auf HTTPS umgeleitet. F?r Scriptkiddys noch kurz fail2ban eingerichtet. Alles recht quick and dirty :D

 

Hab mir die genauen configs nicht angesehen, sind die soweit in Ordnung und auch sicher? War erstaunt wie "simpel" die Installation doch ist und dass nach den hunderten ge?nderten configs noch alles funzt :)

Link to post
Share on other sites

Danke :)

 

Wie sieht es eigentlich generell mit systemupdates aus. Wenn ich nun per aptitude das system auf dem Laufenden halte und da dann mal nen apache oder php Update dabei ist, die m?glichkeit dass ich mir das aktuelle Setup zerbasele ist durchaus gegeben oder?

Link to post
Share on other sites

Wenn sich bei einem Update auch Konfigurationsdateien ?ndern fragt Aptitude nach, ob aktuelle Versionen beibehalten oder ?berschrieben werden soll. Zudem kannst du dir die Differenzen anzeigen lassen. Ich gucke meist was sich ge?ndert hat und pflege das ggf. nach, bzw lasse die neue Version installieren und aktualisiere die dann. Was weniger Aufwand ist.

Link to post
Share on other sites

Also das einzige Paket was bei mir unter Gentoo bei neuer Version hin und wieder Konfigurations-?nderungen mitbringt war bisher Postfix...der Rest hat nichtmal nach Konfigurations-Updates gefragt (da evtl. nur default-config neu erstellt wurden, nicht aber die produktiven ?berschrieben).

Link to post
Share on other sites

Was ich bei mir noch ge?ndert habe ist folgendes:

 

Beim apachen habe ich:

ServerTokens Major

TraceEnable off

 

eingetragen und bei der phpini

expose_php auf off gesetzt.

 

Nun ist Tracing deaktiviert welches bei Nessus einen mittleren Alarm ausl?st und der Server verr?t nicht welche Apache und php Version installiert ist. Evtl. interessant um nicht gezielt irgendwann bekanntwerdende Sicehrheitsl?cken auszunutzen.

Link to post
Share on other sites

...

Ruby => ?

FTP => Chroot

SFTP => Chroot oder gute Dateirechte

SSH => gute Dateirechte

...

 

Ruby kannst du ebenfalls via suexec und fcgi einbinden...

Das ganze kann man gleich ebenfalls ?ber ein wrapper script realisieren wie bei PHP.

 

^^Evt. Kan man das auch in Froxlor einbauen?

 

SFTP usw. k?nnte man ?ber restrictive shells wie "scpoly" einrichten.

Link to post
Share on other sites

Ruby kannst du ebenfalls via suexec und fcgi einbinden...

Das ganze kann man gleich ebenfalls ?ber ein wrapper script realisieren wie bei PHP.

 

^^Evt. Kan man das auch in Froxlor einbauen?

 

K?nnte, ja. Ich hab das bei mir f?r meine Firma auch implementiert...nutzt nur absolut kein schwein, daher seh ich das nicht als super-dringlich

Link to post
Share on other sites

Um das Thema mal wieder auf zu greifen. Momentan habe ich einen Shared Hosting Server mit Froxlor eingerichtet. Soweit funktioniert alles wunderbar mit PHP-FPM usw.

 

Momentan sehe ich noch 2 potentielle Probleme die noch zu l?sen sind:

 

1) FTPS (Ist wahrscheinlich einfacher ein zu richten als SFTP und w?rde ich sogar bevorzugen)

 

2) Es muss verhindert werden das PHP-Skripte sich direkt mit Port 25 anderer Server verbinden k?nnen, um den Mailserver zu umgehen. Software wie z.b. Joomla oder Wordpress soll aber nicht daran gehindert werden Updates zu machen. Bisher habe ich keine Firewall-L?sung gefunden, die Port 25 f?r PHP Blockiert aber den SMTP-Server durchl?sst, diese m?sste Programm oder (besser) Benutzer orientiert sein. Auch ?ber ?ber iptables habe ich keine L?sung gefunden. (was nicht bedeuten muss das es keine gibt???)

 

Wenn das gel?st ist w?rde ich den Server in der freien Wildbahn laufen lassen. Feedback folgt ;-)

Link to post
Share on other sites

Naja, das Thema ist immernoch das gleiche und klar kann mann FTPS von Hand umsetzen, aber wozu haben wir denn Froxlor?  ;) Ungesichertes FTP f?r andere Zwecke als ein ?ffentlicher FTP-Dienst ist einfach aus der Zeit. Also wenn Froxlor zzt. keine L?sung daf?r hat, werde ich mal den Versuch machen, um Froxlor damit zu erweitern.

Link to post
Share on other sites

Also wenn Froxlor zzt. keine L?sung daf?r hat, werde ich mal den Versuch machen, um Froxlor damit zu erweitern.

 

Wir sind gespannt - Github PullRequests werden gerne gesehen :)

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
×
×
  • Create New...