Archive for the ‘Fără categorie’ Category

Partitia /boot e 100% pe Ubuntu

Atunci cand partitia de boot e 100% plina, variantele de apt-get autoremove sau apt-get install -f nu mai functioneaza si returneaza eroare.

Metoda de eliberare a parititei /boot presupune stergerea manuala a unui kernel vechi si apoi rularea unor comenzi.

In prima faza verificam care este kernelul activ pentru a sti ca acesta nu trebuie sters:

uname -r

care va returna actualul kernel instalar si de care vom avea grija in continuare sa nu il stergem.

Mutam unul sau chiar doua kerneluri vechi din /boot in /home (temporar cat sa putem incepe procedura de clean)

mv /boot/initrd.img-abc-generic vmlinuz-abc-generic /home

Acum putem observa ca avem putin spatiu liber pe /boot:

df -h

deci putem incepe operatiunea de curatare a kernelurilor:

apt-get install -f

iar acum putem curata manual toate kernelurile vechi si nefolosite:

Afisam lista cu toate kernelurile instalate:

dpkg –list linux-image

si incepem sa stergem din ele:

apt-get purge linux-image-abc-generic

Marire SWAP Space pe Ubuntu

tux-300x222Se creeaza un empty file care sa contina memoria virtuala SWAP.

dd if=/dev/zero of=/swapfile bs=1024 count=2048K

Acum urmeaza crearea efectiva a SWAP-ului:

mkswap /swapfile

Activam SWAP-ul:

swapon /swapfile

Odata activat se poate verifica cu comanda:

swapon -s

Ultima data trebuie sa il facem sa se incarce la fiecare pornir ea sistemului, iar pentru asta editam /etc/fstab unde adaugam:

/swapfile none swap sw 0 0

Rularea VirtualHosts ca useri separati (pool-uri separate) in Apache cu php5-FPM si Ubuntu/Debian

phpapcIn acest tutorial voi prezenta modul de rulare a php-ului cu FastCGI si a VirtualHosturilor folosind pool-uri separate cu useri separati.

Pentru ca este un server pe care vor rula si baze de date, eu am instalat si MySQL. Asadar:

apt-get install mysql-server mysql-client

unde se urmeaza procedura instalarii alocand parola pentru contul root la MySQL.

Acum incepe instalarea propriu-zisa pentru apache, php5, mysql si php5-fpm.

apt-get install apache2-mpm-worker
apt-get install libapache2-mod-fastcgi php5-fpm php5 php5-mysql

, iar dupa finalizarea instalarii trebuie dat enable la modulele instalate; actions, fastcgi si alias.

a2enmod actions fastcgi alias

Inainte de a incepe configurarile trebuie precizat ca voi rula un VirtualHost folsind grupul web si userul web_test evident ca parte din acest grup. Prima data creez grupul si userul si apoi voi trece la partea de configurare:

groupadd web
useradd -s /bin/false -d /home/web_test -m -g web web_test

Acum mai treuie sa modificam in VirtualHost unde adaugam urmatoarele linii intre <VirtualHost> si </VirtualHost>:

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9001 -pass-header Authorization
</IfModule>

astfel incat sa arate in felul urmator:

<VirtualHost *:80>
ServerName web_test

DocumentRoot /home/web_test
DirectoryIndex index.php index.html

ErrorLog „/var/log/apache2/web_test_error_log”
CustomLog „/var/log/apache2/web_test_access_log” combined

<Directory „/home/web_test/”>
AllowOverride All
</Directory>

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9001 -pass-header Authorization
</IfModule>
ServerSignature Off
</VirtualHost>

De asemenea trebuie configurat php-fpm:

vim /etc/php5/fpm/pool.d/web_test.conf

unde am adaugat:

[web_test]
listen = 127.0.0.1:9001
user = web_test
group = web
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 200
listen.backlog = -1
pm.status_path = /status
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Aici se observa ca fastCGi face diferenta intre useri folosind hostnameul si portul pe care asculta, deci fiecare pool care ruleaza ca user separat trebuie sa aiba si un port diferit. Testarea se face ruland phpinfo(); si accesandu-l din browser. In cazul meu nu a functionat corect pentru ca nu gasea fisierul php5-fcgi asa ca a trebuit sa il creez manual ruland:

touch /usr/lib/cgi-bin/php5-fcgi

Testarea:

O putem face fie din phpinfo, sau ruland whoami.

Pentru phpinfo: vim /home/web_test/www/info.php unde adaugam:

<?php phpinfo(); ?>

Pentru whoami: vim /home/web_test/www/whoami.php unde adaugam:

<?php
echo exec('whoami');
?>

Optional am instalat si php-apc ca si accelerator al aplicatiilor care ruleaza cu php.

Upgradeul de la Apache 2.2.x la 2.4.x in Ubuntu

In Ubuntu 13.04, upgradeul de la versiunea de Apache 2.2.x la 2.4.x nu se face foarte corect si asta datorita faptului ca trebuie intervenit manual in setarile VirtualHost-urilor. Asadar, in versiunea de Apache 2.4.x s-ar putea sa intampinati erori de tipul „Forbidden” in momentul in care accesati hosturi care in versiunea anterioara functionau fara nici un fel de problema, iar in loguri eroarea care apare arata cam asa:

AH01630: client denied by server configuration:

Aceasta eroare se datoreaza liniei „Allow from All” din VirtualHost care nu mai este inteleasa de Apache 2.4.x si trebuie inlocuita  cu „Require all granted” odata cu trecerea de la vechea versiune de Apache la cea noua.

De asemenea pe acest link: http://httpd.apache.org/docs/2.4/upgrading.html apar si diferentele care trebuiesc efectuate in setari odata cu trecerea la noua versiune.

apache24

ftpS cu proFTPd si openSSL in Debian/Ubuntu

In Debian/Ubuntu, folosirea serverului ftpS cu proFTPd presupune urmarea pasilor de mai jos in vedea instalarii:

1. Instalam proftpd si openssl:

apt-get install proftpd openssl

2. Creem folderele unde vom face certificatele:

mkdir /etc/opt/ssl
cd /etc/opt/ssl

3. Generam certificatul SSL:

openssl req -new -x509 -days 3650 -nodes -out proftpd.cert.pem -keyout proftpd.key.pem

4. Facem enable la TLS in proftpd adaugand continutul de mai jos in /etc/proftpd/proftpd.conf:

<IfModule mod_tls.c>
 TLSEngine                  on
 TLSLog                     /var/log/proftpd/tls.log
 TLSProtocol                SSLv23
 TLSOptions                 NoCertRequest NoSessionReuseRequired AllowClientRenegotiations
 TLSRSACertificateFile      /etc/opt/ssl/proftpd.cert.pem
 TLSRSACertificateKeyFile   /etc/opt/ssl/proftpd.key.pem
 TLSVerifyClient            off
 TLSRequired                on
</IfModule>

5. Optional verificam daca modulul a fost incarcat corect:

proftpd -vv | grep tls unde trebuie sa apara: mod_tls/2.4.2

6. La final restartam proftpd:

/etc/init.d/proftpd restart

Testarea eu am facut-o din FileZilla folosind un user existent de pe sistemul pe care am instalat proftpd (NU root ca e exclus pentru conectarea prin ftp, conform /etc/ftpusers). Asadar in FileZilla conectarea ftpS se efectueaza astfel:

File-> Site Manager-> New Site.
Host: hostname
Profocol: FTP
Encryption: Require explicit FTP over TLS

Logon Type: Normal

User-> Pass-> Connect.

Ubuntu 11.10 si Hyper-V 2012 (Windows Server 2012)

Ubuntu 11.10 din pacate nu se impaca foarte bine cu cu Hyper-ul din Windows Server 2012. In cazul meu problema a aparut la mutare aunei masini virtuale care rula pe Windows Server 2008 R2 si care a fost mutata pe Windows Server 2012, iar Ubuntu 11.10 nu a mai pornit afisand eroarea x86_64_start_kernel+0xcd/0xdc :

hyper-v

Dupa cateva cautari am vazut ca eroarea este cauzata de placa de retea care nu este compatibila cu acesta verisune de Ubuntu, iar incarcarea manuala a driverilor hv_vmbus, hv_storvsc, hv_netvsc sunt in zadar. O solutie a fost rularea cu placa de retea Legacy din Hyper-V, ceea ce a insemnat o viteza foarte lenta a conexiunii, deci nu.

Astfel pentru moment singura solutie a fost sa pornesc masina virtuala cu placa de retea „Not connected” din setarile maisnii virtuale, network adapter unde la VirtualSwitch am bifat optiunea „Not connected”. Am pornit masina virtuala asa, iar dupa ce a bootat complet, am mers din nou in setari si am reconectat-o.

Apoi am rulat comanda: /etc/init.d/netwoking restart pentru a-si primi IP-ul.

Site-to-Site IPsec VPN pfSense to pfSense

Daca e vorba de un VPN IPsec, pfSense to pfSense, acesta se poate face destul de usor pentru conectarea a doua locatii de net. Il putem folosi fie ca tunel fie ca transport. Pentru moment eu l-am testat doar ca si tunel si functioneaza corect.

Avem reteaua A cu clasa LAN 10.0.0.1/8 si reteaua B cu clasa LAN 192.168.0.1/16.

Este de mentionat faptul ca doua retele cu aceeasi clasa nu pot fi conectate intre ele prin VPN (conform specificatiilor pfSense), dar nici o retea cu o clasa /8 si una cu o clasa /24 ca apar conflicte de adrese IP.

In reteaua A configurat VPN-ul IPsec astfel: VPN-> IPsec unde creem o noua conexiune VPN.

Remote Gateway: adresa IP reala de la locatia la care ne conectam
Description: numele locatiei

Phase1:
Authentication method (default) Mutual PSK
Negotiation mode (default) aggressive
My identifier (default) My IP address
Peer identifier (default) Peer IP Address
Pre-Shared Key – aici am generat o cheie strong
Policy generation Default
Proposal Checking Default
Encryption algorithm 3DES
Hash algorithm SHA1
DH key group 5

Advanced options:
NAT Traversal Enable
Dead Peer Detection Enable

La Delay am setat 20 de secunde si la retries am pus „5”.

Dupa ce dam „Save” urmeaza Phase 2 connection pe care o creem.
Aici e forarte important ca la „Remote Network” clasa retelei la care ne conectam cu VPN-ul sa fie alocata in forma: 192.168.0.0. Apareau probleme de conectare daca puneam 192.168.0.1.

Protocol: ESP
Encryption algorithms: 3DES
Hash algorithms: SHA1
PFS key group off
Lifetime: 3600
Automatically ping host: 192.168.0.1 (IP-ul retelei la care se face conexiunea site-to-site).

In reteaua B se proceteaza la fel doar ca se modifica Remote Gateway unde se aloca IP-ul real al primei retele A, iar in Phase2 se adauga la Remote Network clasa de IP-uri din reteaua A, iar la Automatically ping host, IP-ul primei retelei.

Este important ca setarile sa fie la fel in ambele retele pentru ca VPN-ul sa se conecteze.

De asemenea in Firewall-> rules mai trebuie adaugata o regula la rubrica IPSec unde sa se permita accesul any to any prin VPN.
Este la fel de important ca dintr-o retea in alta sa fie permis accesul la interfata web pfSense, in cazul in care apar unele probleme pentru a putea fi remediate.

Fiecare retea va primi IP din clasa din care face parte insa va putea accesa si adresele IP din cealalta retea.
De exemplu daca esti in reteaua B si ai adresa IP: 192.168.1.220, VPN-ul fiind conectat poti sa accesezi un server din reteaua A care are alocat IP-ul 10.0.2.50

Crearea unei baze de date MySQL si a unui username alocat pe baza de date

Odata conectat la baza de date MySQL folosind:

mysql -u root -p

Odata conectat la MySQL, crearea bazei de date se face usor:

CREATE DATABASE nume_baza_de_date;

De aici putem crea un username pe care sa il alocam apoi la baza de date. Cea mai simpla metoda este folosind GRANT, unde creem userul si il alocam bazei de date:

GRANT ALL PRIVILEGES ON nume_baza_de_date.* TO ‘username’@localhost IDENTIFIED BY ‘parola’;

De asemenea putem crea usernaul si separat si mai apoi sa ii dam acces pe baza de date:

CREATE USER username IDENTIFIED BY PASSWORD ‘parola’;
GRANT ALL ON baza_de_date.* TO ‘username’@’localhost’;

srv StandDuPp
Articole recente