Jump to content
Sign in to follow this  
donpetru

Tutorial - configurare VPS cu Linux Debian 6 instalat

Recommended Posts

In cele ce urmeaza o sa va prezint succint "un mic" tutorial pentru configurarea unui VPS (server virtual privat) care are instalat Linux Debian Squeeze 6 si care trebuie configurat ca server web cu ajutorul unor comenzi tastate in consola VPS-ului (consola accesata cu programul: PuTTY). Se poate folosi cu succes si tandemul WiNSCP + PuTTY pentru transferul de date PC -> server.

 

1. Primul pas, schimbati parola folosind comanda:

passwd

 

2. Stabiliti nume host. Spre exemplu, sa presupunem ca ati cumparat un domeniu web: domeniulmeu.ro

 

EXEMPLU: FQDN poate fi--->

myserver.server1.domeniulmeu.ro

 

Acum tastati urmatoarele comenzi valabile pentru Linux Ubuntu / Debian:

echo "ns1.domeniulmeu.ro" > /etc/hostname && hostname -F /etc/hostname
cp /etc/hostname /etc/mailname

 

Dupa aceea setati fisierul hosts, cautati cu WinSCP fisierul si deschideti-l - vezi: /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
XXX.XXX.XXX.XXX ns1.domeniulmeu.ro ns1.domeniulmeu

# The following lines are desirable for IPv6 capable hosts
#(added automatically by netbase upgrade)
::1	 ip6-localhost ip6-loopback
feo0::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

 

La tastati adresa IP a server-ului

Dupa aceea restartati serviciul hostname folosind comenzile:

/etc/init.d/hostname.sh stop
/etc/init.d/hostname.sh start

 

3. Verifica lista de update a sistemului de operare si a aplicatiilor pe care urmeaza sa le instalam (puteti sari peste pasul asta daca ati instalat Linux Debian complet de la bun inceput si nu varianta minimala):

nano /etc/apt/sources.list

 

Adauga:

deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

 

RETINETI: Apasati Ctrl+O pentru a scrie modificarile si apoi Ctrl+X pentru a iesi.

 

4. Actualizati sistemul de operare Debian Squeeze (asta in cazul in care ati instalat varianta minimala dar chiar si asa nu strica sa rulati comenzile de mai jos):

apt-get update

sau

apt-get upgrade

ATENTIE! Aici prefer apt-get dist-upgrade pentru ca inlatura pachetele vechi inutile.

 

5. Adaugati un utilizator nou (cand se executa comenzile de mai jos se creeaz automat si un grup de utilizatori a carui denumire este numele utilizatorului adaugat):

adduser XXXYYYY

 

6. Instaleaza sudo

aptitude install sudo

Nota: pentru dezinstalare folositi comanda:

apt-get purge sudo-*

 

7. Dati drepturi de admin noilor utilizatori creeati:

visudo

si dupa utilizatorul root din lista afisata adaugati:

XXXXYYYY ALL=(ALL) ALL

 

8. Acum renuntati la utilizatorul root si logati-va cu user-ul creeat (daca doriti sa adminsitrati VPS-ul de la mai multe PC-uri puteti creea unul sau mai multe fisiere ssh):

 

a) creeati urmatorul folder folosind comanda:

mkdir /home/XXXXYYYY/.ssh

retineti ca XXXXYYYY este numele utilizatorului creeat mai sus.

 

b) creeati fisierul ssh (atentie, creem un fisier ascuns):

nano /home/XXXXYYYY/.ssh/authorized_keys

 

Cheia de autorizare se genereaza cu ajutorul programului PuttyGen (componenta a pachetului de instalare Putty). Dupa generare, copiati cheia fara partea de la sfarsitul cheii care incepe cu rsa-key-20090330. Copiati cheia in fisierul deschis mai sus, atentie, sa fie pe acelasi rand. Dupa aceea introduceti o parola si salvati fisierul ca privat. Notati locatia in propriul PC unde ati salvat cheia pentru ca o sa va trebuiasca putin mai tarziu.

 

c) scrieti permisiuni de modificare/scriere a ssh key pentru unul din utilizatorii creeati:

chown -R XXXXYYYY:XXXXYYYY /home/XXXXYYYY/.ssh

 

d) scrieti permisiunile:

chmod 700 /home/XXXXYYYY/.ssh
chmod 600 /home/XXXXYYYY/.ssh/authorized_keys
sudo chown -R XXXXYYYY:XXXXYYYY /etc/ssh/sshd_config

chown -R XXXXYYYY:XXXXYYYY /var/lib/dpkg/
chown -R XXXXYYYY:XXXXYYYY /etc/

 

9. Update ssh config.

Tastati comanda:

nano /etc/ssh/sshd_config

Dupa aceea se va deschide:

Port ZZZZZ // personalizati portul de acces a VPS-ului ZZZZZ					
Protocol 2
PermitRootLogin no // atentie la asta, lasati yes si de abia dupa ce ati testat noul cont de admin reveniti si treceti in ?no? setarea asta. Daca nu tineti cont de recomandarea asta, s-ar putea sa nu puteti sa instalati orice extensie pe server pentru ca nu sunteti root.

PasswordAuthentication yes
X11Forwarding no
UsePAM no
UseDNS no
AllowUsers XXXXYYYY // ultimile doua linii va trebui sa le adaugati, iar daca vreti sa adaugati un utilizator, lasati un spatiu liber si tastati numele celuilalt utilizator

Atentie la comenzile de mai sus deoarece vor creea uid1000 in loc de 0 - chestia asta va poate incurca pe viitor sa instalati anumite extensii sau sa rulati anumite comenzii.

 

10. Reincarcati SSH

/etc/init.d/ssh reload

 

11. Conecteaza-te la VPS cu noua cheie de autentificare creeata (folositi programul PuTTy):

Instructiuni:

- Connection >> Data >> Auto-login username: XXXXYYYY

- Connection >> SSH >> Auth >> Private key file: aici navigati in propriul calculator si cautati locatia unde ati salvat cheia privata creeata cu ajutorul programului PuttyGen.

- Session - tastati IP-ul server-ului virtual si lasati portul 22 daca la pasul 9 ati lasat unde scrie ZZZZZ tot 22 (puteti sa-l schimbati mai tarziu, nu va ingrijorati).

- Creeati un nume pentru sesiune, tot in Session si dupa aceea clic pe numele creeat pentru a va conecta la VPS.

 

11. Instaleaza iptables (atentie, unele firme de webhosting nu dau acces la IP Table)

sudo aptitude install iptables

si creeza apoi noi reguli:

iptables-save > /etc/iptables.up.rules

creeaza un fisier gol, sa-i spunem iptables.test.rules:

nano /etc/iptables.test.rules

unde adaugati urmatoarele:

*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT

ATENTIE! Mai sus modificati port 30000 cu valoarea portului adaugat la pasul 9, vezi ZZZZZ.

 

Dupa aceea executati noile reguli:

iptables-restore < /etc/iptables.test.rules
iptables-save > /etc/iptables.up.rules

 

Apoi tweeak iptableS (nota: la unele distributii Linux nu e nevoie):

nano /etc/network/interfaces

 

Cauta linia: iface lo inet loopback si dupa linie adauga:

pre-up iptables-restore < /etc/iptables.up.rules

Salveaza si iesi.

 

13. Reincarca ssh

/etc/init.d/ssh reload

Acum va puteti autentifica urmand indicatiile de la pct. 8 de mai sus. Dupa aceea, continuam:

 

14. Creeaza folderele unde se vor afla site-urile (repeta comanda de mai jos pentru fiecare domeniu web sau subdomeniu):

mkdir -p /home/public_html/domeniulmeu.ro/{www,private,log,backup}

 

Apoi da permisiuni de scriere/citire grupului si utilizatorilor creeati pe folderele unde se vor afla site-urile:

chown -R XXXXYYYY:webmasters /home/public_html
chmod -R g+w /home/public_html

respectiv:

/home/public_html/domeniulmeu.ro/www/*.*
/var/www/virtual/domeniulmeu.ro/htdocs/*.*

 

15. Install "essentiales" - niste, ca sa folosesc un termen gen Windows, codecuri sau plugin-uri:

sudo aptitude -y install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev build-essential
sudo aptitude update && aptitude safe-upgrade
aptitude install tar bzip2 wget lsb-release nano

 

16. Acum instalam server-ul web APACHE (atentie, mananca cam mult RAM, cam 40...60Mb per utilizator sau conexiune in cazul cel mai defavorabil):

apt-get install apache2

Pentru a beneficia de optiuniile rewrite a server-ului apache tastati c-da (info AICI):

a2enmod rewrite

 

16. Instalam utilitarele de suport pentru Apache:

a) Ruby suport:

apt-get install libapache2-mod-ruby

 

b) Perl support:

apt-get install libapache2-mod-perl2

 

c) Python support:

apt-get install libapache2-mod-python

 

d) Daca doriti suport MySQL in Python va trebui sa instalati Python MySQL suport:

apt-get install python-mysqldb

 

17. Instalati php5 si un utilitar care va ajuta la securizarea modulului php5:

apt-get install libapache2-mod-php5 php5 php-pear php5-xcache

si apoi:

apt-get install php5-suhosin

 

18. Instalati suport MySQL:

apt-get install php5-mysql

 

19. Dezactivati default Apache virtual host folosind comanda:

a2dissite default

Fiecare website are nevoie de propriul fisier de configurare in Apache - vezi /etc/apache2/sites-available

In acel folder vom putea creea un fisier de genul /etc/apache2/sites-available/domeniulmeu.ro care va avea urmatorul continut:

<VirtualHost *:80>
 ServerAdmin webmaster@domeniumeu.ro
 ServerName domeniumeu.ro
 ServerAlias www.domeniumeu.ro	
 DocumentRoot /home/public_html/domeniulmeu.ro/www/	
 ErrorLog /home/public_html/domeniulmeu.ro/log/error.log
 CustomLog /home/public_html/domeniulmeu.ro/log/access.log combined
</VirtualHost>

 

ATENTIE! Daca doriti sa adaugati Perl suport atunci adaugati in fisierul din /etc/apache2/sites-available/bucknell.net urmatoarele:

Options ExecCGI
AddHandler cgi-script .pl

 

20. Activati website-urile creeate:

a2ensite domeniumeu.ro

 

21. Restartati serverul web Apache:

/etc/init.d/apache2 restart

iar daca ati creeat un fisier virtual host nou sau ati modificat unul existent, atunci rulati si comanda:

/etc/init.d/apache2 reload

 

22. Setarile server-ului web Apache se pot verifica/modifica din urmatoarele locatii:

  • /etc/apache2/apache2.conf
  • fisierele cu extensie .load or .conf -------> /etc/apache2/mods-enabled/ directory.
  • /etc/apache2/httpd.conf (gol implicit)
  • /etc/apache2/ports.conf
  • /etc/apache2/conf.d/
  • /etc/apache2/sites-enabled/
  • in directorul principal .htaccess - este un fisier foarte important care ajuta inclusiv la utilizarea FURL's.

Ar mai fi de adaugat partea de configurare MySQL dar asta pe altadata. Tot atunci o sa incerc sa mai completez acest tutorial.

 

Numai bine si daca aveti intentia sa copiati acest tutorial si sa-l folositi in alta parte, va rog, nu uitati sa lasati la finele acestuia un link web spre sursa web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We use cookies and related technologies to improve your experience on this website to give you personalized content and ads, and to analyze the traffic and audience of your website. Before continuing to browse www.tehnium-azi.ro, please agree to: Terms of Use.