Savarankiškai administruojamo VPS serverio saugumas naudojant DirectAdmin valdymo pultą yra kompleksinė užduotis. Šioje pamokoje pateikiame praktinius ir aktualius metodus, skirtus sustiprinti tiek valdymo pulto, tiek kitų serveryje veikiančių tarnybų ar programų, saugumą. Pamoka skirta serveriui, kuriame veikia AlmaLinux operacinė sistema (OS), tačiau dauguma Linux komandų tinka naudojant ir kitas OS.
Jei turite mažai patirties Linux administravimo srityje, rekomenduojame rasti specialistą - serverių administratorių, kuris pagelbėtų atliekant reikiamus pakeitimus.
1. Operacinės sistemos atnaujinimas
dnf update -y
Rekomenduojama įjungti automatinius saugumo atnaujinimus:
dnf install dnf-automatic -y
systemctl enable --now dnf-automatic.timer
2. DirectAdmin ir CustomBuild atnaujinimas
2.1. Atnaujinkite CustomBuild
cd /usr/local/directadmin/custombuild
./build update
./build update_versions
./build all d
2.2. Patikrinkite ir pakoreguokite options.conf
Atidarykite failą:
nano /usr/local/directadmin/custombuild/options.conf
Įsitikinkite, kad yra nustatyta:
clean_old_webapps=yes
cron=yes
notifications=yes
updates=no
webapps_updates=yes
(jeigu reikia, pakeiskite reikšmes pagal savo poreikius)
Po pakeitimų įvykdykite komandą:
./build cron
Jeigu norite įjungti automatinius atnaujinimus, pakeiskite:
updates=no
į reikšmę:
updates=yes
PASTABA: automatinius atnaujinimus reikėtų periodiškai stebėti savarankiškai.
3. PHP saugumo stiprinimas (PHP-FPM)
3.1. Išjunkite pavojingas funkcijas
Atidarykite php.ini failą:
nano /usr/local/php/php.ini
Pridėkite arba pakoreguokite šiuos nustatymus:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec
expose_php = Off
display_errors = Off
log_errors = On
allow_url_include = Off
Išsaugokite failą.
3.2. Naudokite PHP-FPM režimą
Atidarykite options.conf:
nano /usr/local/directadmin/custombuild/options.conf
Nustatykite:
php1_mode=php-fpm
Po pakeitimų atnaujinkite PHP konfigūraciją:
cd /usr/local/directadmin/custombuild
./build php n
4. MySQL (MariaDB) apsauga
Jei prie duomenų bazės nebus prisijungiama iš išorės (pvz., iš kito serverio ar įrenginio), apribokite prieigą.
Atidarykite konfigūracinį failą:
nano /etc/my.cnf
Po [mysqld] sekcijos pridėkite:
bind-address=127.0.0.1
Išsaugokite failą ir perkraukite MariaDB tarnybą:
systemctl restart mariadb
Papildomai rekomenduojama paleisti:
mysql_secure_installation
5. DirectAdmin prisijungimo prievado pakeitimas
Atidarykite DirectAdmin konfigūracinį failą:
nano /usr/local/directadmin/conf/directadmin.conf
Suraskite prievado eilutę:
port=2222
Ir prievadą pakeiskite į kitą, pavyzdžiui:
port=102030
Išsaugokite failą ir perkraukite DirectAdmin tarnybą:
systemctl restart directadmin
Nepamirškite naują prievadą atidaryti ugniasienėje.
6. named (BIND) recursion išjungimas
Atidarykite konfigūraciją:
nano /etc/named.conf
options bloke pridėkite:
recursion no;
allow-recursion { none; };
Išsaugokite ir perkraukite named tarnybą:
systemctl restart named
7. Įjunkite sudėtingų slaptažodžių politiką
Prisijunkite prie DirectAdmin su admin teisėmis.
Eikite į: Admin Level → Administrator Settings → Security ir ten varnele pažymėkite:
Difficult Password Enforcement
Check domain owner for Subdomain creation
8. SSH saugumo stiprinimas
Atidarykite SSH konfigūraciją:
nano /etc/ssh/sshd_config
Pakoreguokite:
PermitRootLogin no
PasswordAuthentication no
Išsaugokite failą ir perkraukite SSH tarnybą:
systemctl restart sshd
