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
