Asigurarea unui server web linux pentru accesul public

I'd like to set up a cheap Linux box as a web server to host a variety of web technologies (PHP & Java EE come to mind, but I'd like to experiment with ruby or Python in the future as well).

Sunt destul de familiarizat cu instalarea Tomcat pentru a rula pe Linux pentru a servi aplicații Java EE, dar aș dori să pot deschide acest server în sus, chiar dacă pot crea anumite instrumente pe care le pot utiliza în timp ce lucrez Biroul. Întreaga experiență pe care am avut-o cu configurarea site-urilor Java EE a fost pentru aplicațiile intranet unde ni sa spus să nu ne concentrăm pe securizarea paginilor pentru utilizatorii externi.

Care este sfatul dvs. cu privire la crearea unui server web personal Linux într-o modalitate sigură suficient de deschisă pentru traficul extern?

0
fr hi bn

12 răspunsuri

Aveți grijă să deschideți portul SSH în sălbăticie. Dacă faceți acest lucru, asigurați-vă că dezactivați autentificările rădăcinilor (puteți oricând su sau sudo odată ce intrați) și considerați metodele de autentificare mai agresive în rațiune. Am văzut un atac amplu de dicționar în jurnalele serverului meu, un weekend care mergea după serverul meu SSH de pe un server IP de domiciliu DynDNS.

Acestea fiind spuse, este cu adevărat minunat să puteți ajunge la coajă de acasă de la locul de muncă sau de la distanță ... și adăugând că puteți folosi SFTP în același port, nu mi-am putut imagina viața fără ea. =)

0
adăugat

Dacă rulați un server Linux de acasă, instalați ossec pe acesta pentru un IDS frumos ușor care funcționează foarte bine .

[EDITAȚI | ×]

Ca o notă laterală, asigurați-vă că nu vă deranjează politica de utilizare acceptabilă și a ISP-ului că permite conexiunile de intrare pe porturile standard. ISP-ul pentru care lucram pentru că a scris în termenii lor că ați putea fi deconectat pentru a rula serverele peste portul 80/25, dacă nu ați fost pe un cont de clasă business. În timp ce nu am blocat în mod activ acele porturi (nu ne-a păsat dacă nu a provocat o problemă) unii ISP nu permit niciun trafic peste portul 80 sau 25, astfel încât va trebui să utilizați porturi alternative.

0
adăugat

Sigur și sigur dacă vă păstrați vocea în jos (de exemplu, rareori va veni cineva după serverul dvs. de acasă dacă găzduiți doar o roată webroot glorificată pe o conexiune la domiciliu) și vă vorbiți despre configurația dvs. (de exemplu, evitați să utilizați root pentru orice, asigurați-vă că păstrați actualizarea software-ului).

Pe această notă, deși acest thread va scădea potențial până la doar flaming, sugestia mea pentru serverul dvs. personal este să rămânem la tot ce este Ubuntu ( obțineți serverul Ubuntu aici ); în experiența mea, cea mai rapidă pentru a obține răspunsuri de unde a pune întrebări pe forumuri (nu sunt sigur ce să spun despre absorbție deși).

BTW-ul meu de securitate de la domiciliu beneficiază (cred, sau îmi place să cred) că nu are o IP statică (rulează pe DynDNS).

Mult noroc!

/ mp

0
adăugat

Acest articol are unele dintre cele mai bune moduri de a bloca lucrurile jos:

http://www.petefreitag.com/item/505.cfm

Unele aspecte importante:

  • Asigurați-vă că nimeni nu poate căuta directoarele
  • Asigurați-vă că numai rădăcina are privilegii de scriere pentru orice și că numai rădăcina a citi privilegii anumitor fișiere de configurare
  • Rulați mod_security

Articolul ia și unele indicii din această carte:

Apache Securiy (O'Reilly Press)

În ceea ce privește distrosurile, am rulat Debain și Ubuntu, dar depinde doar de cât doriți să faceți. Am rulat Debian fără X și tocmai am intrat în el ori de câte ori aveam nevoie de ceva. Aceasta este o modalitate simplă de a păstra deasupra capului. Sau Ubuntu are câteva lucruri frumoase în GUI care fac ușor să controlezi Apache / MySQL / PHP.

0
adăugat

Ai putea lua în considerare o instanță EC2 de la Amazon . În acest fel, puteți să testați cu ușurință "chestii", fără a vă deranja producția. Și plătiți doar pentru spațiul, timpul și lățimea de bandă pe care o utilizați.

0
adăugat

Există o mulțime de modalități de a face acest lucru care va funcționa foarte bine. De obicei, aș folosi un fișier .htaccess. Rapid pentru a configura și a asigura suficient . Probabil nu cea mai bună opțiune, dar funcționează pentru mine. Nu mi-aș pune numerele cărților de credit în spatele ei, dar în afară de asta nu-mi pasă deloc.

0
adăugat

Wow, deschizi o cutie de viermi de îndată ce începi să deschizi ceva până la traficul extern. Rețineți că ceea ce considerați un server experimental, aproape ca un miel de sacrificiu, este, de asemenea, o alegere ușoară pentru persoanele care doresc să facă lucruri rele cu rețeaua și resursele.

Întreaga dvs. abordare a unui server extern disponibil ar trebui să fie foarte conservatoare și amănunțită. Începe cu lucruri simple, cum ar fi politicile firewall-ului, include sistemul de operare (care îl păstrează, configurarea acestuia pentru securitate etc.) și implică fiecare strat al fiecărui coș pe care îl veți folosi. Nu mi-e teamă nici un răspuns simplu sau o rețetă.

Dacă doriți să experimentați, veți face mult mai bine să păstrați serverul privat și să utilizați un VPN dacă aveți nevoie să lucrați la el de la distanță.

0
adăugat

Un lucru pe care ar trebui să-l luați în considerare este acela în care porturile sunt deschise lumii. Eu personal doar deschideți portul 22 pentru SSH și portul 123 pentru ntpd. Dar dacă deschideți portul 80 (http) sau ftp asigurați-vă că ați învățat să știți cel puțin ceea ce serviți în lume și cine poate face ceea ce cu asta. Nu știu multe despre ftp, dar există milioane de tutoriale Apache excelente doar o căutare Google departe.

0
adăugat

Este important să urmați cele mai bune practici de securitate, ori de câte ori este posibil, dar nu doriți să faceți lucruri excesiv de greu pentru dvs. sau să pierdeți somnul îngrijorându-vă de a ține pasul cu cele mai recente exploatări. Din experiența mea, există două lucruri cheie care vă pot ajuta să vă păstrați serverul personal suficient de sigur pentru a vă arunca pe internet, păstrând în același timp sanatatea dvs.:

1) Securitate prin obscuritate

Fără îndoială, a se baza pe acest lucru în "lumea reală" este o idee proastă și nu trebuie să fie distrați. Dar asta pentru că, în lumea reală, cei răi știu ce este acolo și că există pradă care să fie luată.

On a personal server, the majority of 'attacks' you'll suffer will simply be automated sweeps from machines that have already been compromised, looking for default installations of products known to be vulnerable. If your server doesn't offer up anything enticing on the default ports or in the default locations, the automated attacker will move on. Therefore, if you're going to run a ssh server, put it on a non-standard port (>1024) and it's likely it will never be found. If you can get away with this technique for your web server then great, shift that to an obscure port too.

2) Gestiunea pachetelor

Don't compile and install Apache or sshd from source yourself unless you absolutely have to. If you do, you're taking on the responsibility of keeping up-to-date with the latest security patches. Let the nice package maintainers from Linux distros such as Debian or Ubuntu do the work for you. Install from the distro's precompiled packages, and staying current becomes a matter of issuing the occasional apt-get update && apt-get -u dist-upgrade command, or using whatever fancy GUI tool Ubuntu provides.

0
adăugat
Atâta timp cât permite traficul extern, este totuși o parte a "lumii reale".
adăugat autor icedwater, sursa

Bit-Tech.Net a rulat câteva articole despre cum să configurați un server de acasă utilizând linux. Iată linkurile:

Article 1
Article 2

Sper că aceștia sunt de ajutor.

0
adăugat

@svrist menționat EC2. EC2 oferă un API pentru deschiderea și închiderea porturilor de la distanță. În acest fel, vă puteți menține caseta în funcțiune. Dacă aveți nevoie de o demonstrație de la o cafenea sau de la un birou al unui client, puteți să vă luați IP-ul și să îl adăugați la ACL.

0
adăugat

Dacă aveți de gând să faceți acest lucru, cheltuiți un pic de bani și, cel puțin, cumpărați un router / firewall dedicat, cu un port DMZ separat. Veți dori să eliminați firewall-ul de pe rețeaua dvs. internă de pe serverul dvs., astfel încât atunci când (dacă nu!) Serverul dvs. Web este compromis, rețeaua dvs. internă nu este imediat vulnerabilă.

0
adăugat