Модул 10 · 10.4
Финална проверка: оценка на Вашия сървър
Модул 10: Безопасност в дългосрочен план · Време за четене: 10 минути
Цел на урока: След този урок ще можете да оцените собствения си сървър с контролен списък и с автоматична проверка отвън, ще знаете кои точки имат предимство и ще имате постоянен ритъм на поддръжка и кратко досие на сървъра.
Основни понятия: контролен списък, приоритет, проверка отвън, досие на сървъра, ритъм на поддръжка (седмично, месечно, на тримесечие, годишно), крайна дата на поддръжка на версията, тест за възстановяване
От отделни уроци към едно цяло
В този курс Вие настроихте сървър стъпка по стъпка: сигурно влизане, права, актуализации, защитна стена, услуги, уебсайт с https, резервни копия, наблюдение и контейнери. В този последен урок събирате всичко в един списък. Преглеждате сървъра си, оставяте програмата на курса да го провери отвън и записвате как ще поддържате сървъра през следващите години.
Един сървър никога не е "завършен". Софтуерът остарява, сертификатите изтичат, дисковете се запълват, версиите достигат end of life. Затова постоянният ритъм е също толкова важен, колкото и първоначалната настройка.
Контролният списък, подреден по важност
Не всичко е еднакво спешно. Преминете през списъка отгоре надолу: първите блокове предотвратяват най-много неприятности.
Блок 1: никой не влиза просто така (модул 2, 3, 5)
- Влизане само с ключове;
PasswordAuthentication noиKbdInteractiveAuthentication no, проверено сsudo sshd -T. - Root не влиза с парола; работите като обикновен потребител със sudo.
- Базите данни, кешовете и клъстерите за търсене слушат на
127.0.0.1; портовете 3306, 5432, 6379, 9200 и 27017 са затворени отвън, както за IPv4, така и за IPv6. - Защитна стена, която по подразбиране затваря всичко входящо; отворени са само портовете, които са Ви нужни.
- fail2ban работи за SSH (
fail2ban-client status sshd).
Блок 2: пропуските в сигурността се затварят (модул 4)
- Автоматичните обновявания за сигурност са включени и проверени (лог,
apt list --upgradable). - План за рестартиране;
/var/run/reboot-requiredне стои там с седмици. - Версията все още се поддържа; крайната дата е записана в календара Ви.
Блок 3: можете да се върнете назад (модул 8)
- Криптирани резервни копия извън сървъра, автоматично, с наблюдение.
- Направен е тест за възстановяване и знаете колко време отнема възстановяването.
- Знаете как се прави snapshot и как се отваря конзолата.
Блок 4: външната страна е наред (модул 7)
- Записите A и AAAA сочат към сървъра Ви; reverse DNS (PTR) сочи обратно към същото име.
- https с валиден сертификат, който се подновява автоматично; http пренасочва към https.
- HSTS и няколко headers за сигурност;
security.txtс работещ адрес за контакт и дата на изтичане.
Блок 5: виждате какво се случва (модул 6, 8)
- Journal е постоянен; можете да четете логове отпреди рестартиране.
- Наблюдение отвън (достъпност, сертификат) и отвътре (диск, услуги), с известия, които наистина пристигат.
systemctl --failedе празно.
Блок 6: контейнерите са под контрол (модул 9, ако използвате Docker)
- Портовете на контейнерите са на
127.0.0.1или зад reverse proxy; безdocker.sockв контейнери, които наистина не се нуждаят от това. - Volumes са включени в резервното копие; images се обновяват редовно.
- Тайните стоят във файлове
.envсъс строги права, а не в Git.
Проверката отвън
Част от този списък програмата на курса може да провери отвън, точно както всеки в интернет вижда сървъра Ви. Финалната задача (Z10.4) обединява проверките от предишните задачи:
| Елемент | Какво прави програмата | От урок |
|---|---|---|
| SSH | Чете банера с версията и пита кои методи за влизане предлага сървърът Ви за Вашето потребителско име; не влиза | 2.2 |
| Портове на бази данни | Само опитва връзка към 3306, 5432, 6379, 9200 и 27017; не изпраща нищо | 5.1 |
| https | Проверява сертификата (валиден, доверен, правилно име) | 7.3 |
| Headers | Чете HSTS и другите headers за сигурност | 7.4 |
| security.txt | Изтегля /.well-known/security.txt и проверява Contact и Expires | 7.4 |
| Контейнер | Търси header с Вашия код, зададен от reverse proxy | 9.4 |
Програмата не изпълнява нищо на сървъра Ви, не опитва пароли и не сканира други портове. Всеки адрес може да бъде проверен само няколко пъти на час. Зеленият резултат означава: отвън най-известните грешки отсъстват. Той не казва нищо за това, което се случва вътре в сървъра Ви; това е останалата част от контролния списък и я преглеждате сами.
Досието на сървъра
За всеки сървър напишете кратък документ, който пазите извън сървъра (например в мениджъра на пароли или в споделена папка):
- име, IP адреси, доставчик, версия и крайна дата на поддръжка;
- какво работи (услуги, контейнери, уебсайтове) и защо;
- кои портове са отворени и за какво;
- къде са резервните копия, как се възстановява, кога е бил последният тест;
- какви тайни има на сървъра (не самите тайни, а кои са и къде се сменят);
- какво сте направили съзнателно различно от стандарта (например препоръка на Lynis, която сте пропуснали, урок 10.1);
- кой има достъп (кои ключове са в
authorized_keys).
Това досие е безценно при инцидент (урок 10.3), при надграждане на версията (урок 4.3) и когато някой друг поеме администрирането.
Ритъм на поддръжка
Без ритъм вниманието отслабва. Ето пример за малък сървър; адаптирайте го към собствената си ситуация.
| Кога | Какво |
|---|---|
| Всяка седмица | Преглед на наблюдението и известията; systemctl --failed; рестартиране, ако е налице /var/run/reboot-required (или проверка, че автоматичното рестартиране е сработило) |
| Всеки месец | apt list --upgradable (остава ли нещо неинсталирано?); docker compose pull и up -d за контейнерите, заедно с release notes; място на диска; fail2ban-client status; логове за забележими грешки (journalctl -p err --since "1 month ago") |
| Всяко тримесечие | Тест за възстановяване от резервно копие; преглед на authorized_keys и на потребителите (премахнете всеки, който вече не трябва да има достъп); повторно изпълнение на Lynis; повторна финална проверка отвън (задача Z10.4) |
| Всяка година | Обновяване на security.txt (Expires); преглед на крайната дата на версията и планиране на надграждане; обновяване на досието на сървъра и на аварийния план |
Запишете тези моменти в календара си. Голяма част можете да автоматизирате и с наблюдението от урок 8.3, но личният преглед остава необходим.
На практика
Независимо дали сървърът Ви е при WebOké или при друг доставчик: доставчикът отговаря за хардуера, мрежата и възможността да правите snapshots и резервни копия, а Вие отговаряте за всичко вътре в сървъра. Този курс е самопомощ: никой не наблюдава сървъра Ви заедно с Вас. С този контролен списък, досието и ритъма обаче имате всичко необходимо, за да извършвате това администриране самостоятелно и добре.
Обобщение
- Преглеждайте сървъра си на блокове: никой не влиза просто така, пропуските се затварят, можете да се върнете назад, външната страна е наред, виждате какво се случва, контейнерите са под контрол.
- Проверката отвън разглежда методите за влизане в SSH, портовете на бази данни, https, headers, security.txt и header на контейнера Ви; останалото преглеждате сами.
- Поддържайте досие на сървъра, съхранявано извън сървъра.
- Работете с постоянен ритъм: седмично, месечно, на тримесечие и годишно.
Тест (quiz)
Задача
Задача Z10.4: Финална задача: Вашият сървър отвън. Оставете програмата на курса да провери сървъра Ви отвън наведнъж: методите за влизане в SSH за Вашето потребителско име, петте порта на бази данни, https и headers на сайта Ви, Вашия security.txt и header X-Weboke-Cursus с Вашия код на името, на което работи контейнерът Ви. Освен това попълнете контролния списък от блокове 1 до 6 за това, което програмата не може да види.
Задача O10.4: Вашият ритъм на поддръжка. Създайте собствено досие на сървъра и собствен ритъм на поддръжка: какво правите седмично, месечно, на тримесечие и годишно, и запишете тези моменти в календара си.
Задача O10.4: Вашият ритъм на поддръжка
Тази задача изпълнявате сами; никой не я проверява. Отбележете какво сте направили и маркирайте задачата като изпълнена.
Всяка седмица: преглед на обновленията и известията; всеки месец: малко възстановяване и преглед на достъпа (authorized_keys, потребители); всяко тримесечие: пълна финална проверка; всяка година: пълно изграждане от резервното копие и подновяване на security.txt.
Вашите отметки и бележки остават само в този браузър; не ги изпращаме никъде. Ако сте влезли, в Моите курсове запазваме само че сте изпълнили задачата.
Още за четене
- Защита на Вашия VPS: първите пет минути
- HSTS и защитни headers за Вашия уебсайт
- Стратегия за резервно копиране: правилото 3-2-1 за Вашата собствена фирма
- securitytxt.org (обяснение и генератор за security.txt): https://securitytxt.org/
- Нидерландският NCSC, изготвяне на стратегия за резервни копия (нидерландски източник, на нидерландски език): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
- Как да поставите security.txt на Вашия уебсайт
- Как да поддържате Вашия VPS защитен: hardening, Lynis и график за поддръжка
- Безплатен курс Безопасно онлайн за предприемачи 9.3: Вашата собствена проверка на сигурността и план @@OМШИРЕНИЕ@@
