v1.Lenny-cz.1

05-27-09

Tak się ostatnio stało że przypadło mi postawienie serwera, i przeniesienie całego hostingu wirtualnego na VPS’a.

Zdecydowałem że panelem do zarządzania hostingiem będzie ISPConfig2 -klik. Przyczyn było kilka:
Pierwsza jest taka że panel jest darmowy.
Druga to to że jeśli pamięć mnie nie myli to jest na licencji BSD.
Trzecia to że pomimo że ISPConfig3 jest nowszy to jednak większy support i więcej informacji znajdę o sprawdzonym rozwiązaniu niż o wersji która dopiero co oficjalnie ujrzała światło dzienne.

Instalacja przechodzi bez najmniejszego problemu – dosłownie dziedziczenie przez kopiowanie z manuala w okno putty’ego. Problemem może być wygenerowanie poprawnych certyfikatów dla naszej domeny gdyż dla kogoś kto nigdy tego wcześniej nie robił może to sprawić pewien problem.
Po instalacji stwierdzam ze system z zainstalowanymi tylko usługami potrzebnymi dla hostingu z howto + SSHD pochłania jeśli mnie pamięć nie myli z 70MB ramu także niezawiele. A po instalacji wszystko zajmowało 1,7Gb

Zabezpieczenie SSH:
1. Przyzwolenie tylko grupom do logowania przez ssh

Do pliku /etc/ssh/sshd_config dorzucamy takie 2 linijki:

1
2
AllowGroups sshAllow
DenyGroups sshDeny

następnie tworzymy takie grupy w systemie :

1
2
#:groupadd sshAllow
#:groupadd sshDeny

Do wybranych grup dodajemy odpowiednich użytkowników do wybranych grup:

1
#:adduser some_user_name sshAllow

lub

1
#:adduser some_user_name sshDeny

Jak same nazy grup mówią userzy w grupie sshAllow będą mogli się logować przez ssh do systemu.

2.Automatyczna obrona ssh przed atakami słownikowymi.

Zamiast bezsensu przepisywać treść artykuły poprostu polecam – klik a poniżej polecenia na zasadzie copy’n'paste

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apt-get install python python2.3-dev python2.3
cd /tmp
wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.0.tar.gz
tar xvfz DenyHosts-2.0.tar.gz
cd DenyHosts-2.0
python setup.py install
cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg
# w poniższym musimy wyedytować plik w zależności od naszej dystrubucji
vi denyhosts.cfg
SECURE_LOG = /var/log/auth.log
LOCK_FILE = /var/run/denyhosts.pid
cp daemon-control-dist daemon-control
vi /usr/share/denyhosts/daemon-control
# i należy upenwic się ze wartości zgadzają się z poniższymi ( dla debiana )
# DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
# DENYHOSTS_LOCK = "/var/run/denyhosts.pid"
# DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
chown root daemon-control
chmod 700 daemon-control</span></em></span>
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
update-rc.d denyhosts defaults
/etc/init.d/denyhosts start</span></em></span>
/etc/init.d/denyhosts start --purge

Po instalacji zalecam pobawienie się ustawieniami programu /usr/share/denyhosts/denyhosts.cfg
A tu mamy przykładowy plik konfiguracyjny : przykładowy plik konfugiracyjny denyhostsa

Względnie ciekawy artykulik: http://www.securityfocus.com/infocus/1876

3. Przyśpieszenie logowania proftpd

Niezależnie od logowania przez ssh każdy użytkownik systemu przynajmniej w teorii może się zalogować przez FTP do swojego konta.
Aby przyśpieszyć czasem niesamowicie wolne łączenie się s naszym hostem należy w pliku konfiguracyjnym proftpdznaleść wpis IdentLookups , zmienic jego wartość na off oraz wziąść w tagi Global:

1
2
3
<global>
IdentLookups                    off
</global>

Oraz wypadało by dodać wpisy:

1
2
3
DefaultRoot ~
UseReverseDNS off
ServerIdent on "FTP Server ready."

4. Uszczelnienie Apache2.2 i php5

W sumie całe zabezpieczenie serwera WWW polega na jak największym ograniczeniu możliwości wycieku informacji o serwerze do wiadomości potencjalnego atakującego. Wersja systemy, wersja php, apache’a, ssh, proftpd… wszystko może zwiększyć hakerowi możliwość dokonania włamania.
W pliku httpd.conf ( lub apache2.conf) powinny się znaleźć takie 2 wpisy:
#Dzięki ponizszym opcjom powodujemy ze nasz serwer apache nie zwraca zadnych informacji o swojej wersji w naglowkakch http

1
2
3
ServerSignature Off
#ServerTokens ProdServerSignature Off
ServerTokens Prod

W natomiast w pliku php.ini

1
2
3
disable_functions = exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice,ini_restore
expose_php = Off
display_errors = Off


W bliższej lub dalszej przyszłości rozgryzę iptables, zabezpieczenie FTP, skrypty do “hot backupu” maszyny przy padzie, zawartość katalogu /etc/security oraz man security

Data wpisu: 27 Maj, 2009 godzina: 11:10 pm kategoria: Adminowanie, ISPConfig2, Praca, . Możesz śledzić komentarze do tego wpisu, przez kanał RSS 2.0. Zostaw komentarz, lub ping z własnego bloga.

Zostaw odpowiedź