Administratoriaus diegimas „HestiaCP“: automatinis saugos nustatymas + duomenų bazių valdymo optimizavimas

Naujausi HestiaCP Šis išsamus „Adminer“ diegimo vadovas apima diegimą vienu spustelėjimu, saugumo stiprinimą ir automatizuoto konfigūravimo veiksmus. Jame nuosekliai paaiškinama, kaip diegti duomenų bazių valdymo įrankius ir apsaugoti serverį, kad pradedantiesiems būtų lengva greitai pradėti ir būtų išspręstos „HestiaCP + Adminer“ valdymo ir priežiūros problemos.

Jei vis dar naudojate duomenų bazių valdymo įrankius be jokios apsaugos, raktus perduodate įsilaužėliams.

Kodėl verta rinktis „Admin“, o ne... phpMyAdmin?

„Adminier“ sudaro vienas PHP failas, mažesnis nei 1 MB, todėl diegimas yra itin paprastas, greitas ir taupiai naudoja išteklius.

Palyginti su sudėtinga „phpMyAdmin“ struktūra, „Adminer“ labiau tinka VPS, mažoms svetainėms ir asmeniniams projektams.

Administratoriaus diegimas „HestiaCP“: automatinis saugos nustatymas + duomenų bazių valdymo optimizavimas

Administratoriaus diegimo „HestiaCP“ veiksmai

1. Atsisiųskite administratoriaus failą

Eiti į Oficiali administratoriaus svetainė Atsisiųskite naujausią versiją adminer.php.

Įkelkite failą į „HestiaCP“ svetainės katalogą, pavyzdžiui:

/home/username/web/adminer.domain.com/public_html/adminer.php

2. Sukurkite subdomeną ir įjunkite SSL.

Pridėti subdomeną HestiaCP skydelyje adminer.domain.comĮjunkite „Let's Encrypt SSL“, kad užtikrintumėte saugų perdavimą.

3. Konfigūruokite „Nginx“ slaptažodžio apsaugą

Į subdomeno „Nginx“ konfigūracijos failą pridėkite šiuos duomenis:

location / {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;

    root /home/username/web/adminer.domain.com/public_html;
    index index.php adminer.php;
}

Sukurti slaptažodžių failą:

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd adminuser

Prisijungus prie administratoriaus paskyros, pasirodys slaptažodžio įvedimo dialogo langas, kuriame galėsite prisijungti tik įvedę teisingą vartotojo vardą ir slaptažodį.

Automatiškai atnaujinti administratoriaus failus

Siekiant išvengti su senesnių versijų naudojimu susijusios saugumo rizikos, automatinius atnaujinimus galima atlikti naudojant apvalkalo scenarijus ir „Cron“ suplanuotas užduotis.

Atnaujinimo scenarijaus pavyzdys

#!/bin/bash
URL="https://www.adminer.org/latest.php"
TARGET="/home/username/web/adminer.domain.com/public_html/adminer.php"

wget -q -O "$TARGET" "$URL"
chown username:username "$TARGET"
chmod 644 "$TARGET"

Išsaugoti kaip /usr/local/bin/update-adminer.shIr pridėkite suplanuotą užduotį:

crontab -e
0 3 * * 1 /usr/local/bin/update-adminer.sh

Tokiu būdu administratoriaus failas bus automatiškai atnaujinamas kiekvieną pirmadienį 3 val.

Fail2Ban anti-brute-force ataka

„Simple Basic Auth“ yra pažeidžiamas „brute-force“ atakų, o „Fail2Ban“ gali automatiškai blokuoti kenkėjiškus IP adresus.

Filtro konfigūracija

dokumentas:/etc/fail2ban/filter.d/nginx-adminer.conf

[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =

Kalėjimo konfigūracija (didėjanti draudimo trukmė)

dokumentas:/etc/fail2ban/jail.local

[nginx-adminer]
enabled  = true
filter   = nginx-adminer
port     = http,https
logpath  = /var/log/nginx/access.log
maxretry = 3
findtime = 600

bantime.increment = true
bantime.rndtime   = 60
bantime.factor    = 2
bantime           = 600

Poveikis: Pirmasis draudimas galioja 10 minučių, antrasis – 20 minučių, trečiasis – 40 minučių ir taip toliau. Nuolat puolantys žaidėjai bus blokuojami vis ilgesniam laikotarpiui.

Užbaikite diegimo scenarijų vienu spustelėjimu

Išsaugoti kaip /usr/local/bin/setup-fail2ban-adminer.sh:

#!/bin/bash
FILTER_PATH="/etc/fail2ban/filter.d/nginx-adminer.conf"
JAIL_PATH="/etc/fail2ban/jail.local"

cat > $FILTER_PATH << 'EOF'
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
EOF

cat >> $JAIL_PATH << 'EOF'

[nginx-adminer]
enabled  = true
filter   = nginx-adminer
port     = http,https
logpath  = /var/log/nginx/access.log
maxretry = 3
findtime = 600

bantime.increment = true
bantime.rndtime   = 60
bantime.factor    = 2
bantime           = 600
EOF

systemctl restart fail2ban
fail2ban-client status nginx-adminer

执行:

sudo chmod +x /usr/local/bin/setup-fail2ban-adminer.sh
sudo /usr/local/bin/setup-fail2ban-adminer.sh

Išvada: Saugumo ir efektyvumo pusiausvyra

Tvirtai tikiu, kad duomenų bazių valdymo įrankiai nėra tai, ką galite tiesiog palikti viešajame internete ir naudoti ramiai. „Adminier“ lengvas dizainas yra patrauklus, tačiau saugumo priemonės turi neatsilikti. Slaptažodžių apsauga yra pirmoji gynybos linija, automatiniai atnaujinimai užtikrina nuolatinę apsaugą, o „Fail2Ban“ siūlo išmanias apsaugos priemones. Tik derindami šiuos tris elementus galite sukurti efektyvią ir saugią duomenų bazių valdymo aplinką.

Tikras meistras yra ne tik tas, kuris moka gaminti įrankius, bet ir tas, kuris moka juos saugoti.

发表 评论

Jūsų el. pašto adresas nebus skelbiamas. Naudojami privalomi laukai * Etiketė

Pereikite į viršų