🔒 Безопасность и шифрование
Современные вычислительные системы работают в условиях постоянных сетевых взаимодействий, где конфиденциальность и целостность данных являются критически важными параметрами.
Два ключевых столпа сетевой безопасности — шифрование трафика (TLS) и сетевой фильтр (Firewall).
🧩 1. SSL/TLS и сертификаты
🔹 Что такое SSL и TLS
SSL (Secure Sockets Layer) и его преемник TLS (Transport Layer Security) — это криптографические протоколы, обеспечивающие:
- Конфиденциальность — данные передаются в зашифрованном виде.
- Целостность — исключается возможность незаметной подмены данных.
- Аутентификацию — подтверждение подлинности сервера (а при необходимости — и клиента).
📘 Простыми словами:
Когда ты открываешь https://example.com, браузер и сервер договариваются о зашифрованном соединении, чтобы никто не мог подслушать или изменить данные.
🔹 Как работает TLS (упрощённо)
- Клиент (браузер) сообщает, какие версии TLS и наборы шифров он поддерживает.
- Сервер выбирает алгоритм шифрования и отправляет свой цифровой сертификат.
- Браузер проверяет сертификат:
- подпись центра сертификации (CA),
- срок действия,
- доменное имя.
- Создаётся общий сеансовый ключ (через Diffie–Hellman или RSA).
- Все дальнейшие данные передаются в зашифрованном виде.
🔹 Что такое сертификат
Цифровой сертификат X.509 — это своего рода паспорт домена, содержащий:
- доменное имя и владельца;
- срок действия (обычно 90–365 дней);
- публичный ключ;
- подпись центра сертификации (CA).
🔍 Проверка сертификата:
openssl s_client -connect example.com:443
openssl x509 -in cert.pem -text -noout
🔹 Центры сертификации (CA)
Certificate Authority (CA) — доверенная организация, подписывающая сертификаты.
Примеры: Let’s Encrypt, DigiCert, GlobalSign, Sectigo.
🧠 Браузер при проверке сертификата удостоверяется, что:
- сертификат подписан доверенным CA;
- не истёк срок действия;
- домен совпадает с реальным адресом сайта.
🔹 Цепочка доверия (Chain of Trust)
Браузер проверяет всю иерархию сертификатов:
Root CA → Intermediate CA → Server Certificate
🧩 Пример:
Let’s Encrypt выдаёт сертификаты, подписанные R3, который в свою очередь подписан ISRG Root X1.
🔹 Самоподписанные сертификаты
Self-signed certificate создаётся вручную без участия CA.
Применяется для тестовых или внутренних сервисов (Prometheus, Grafana, API).
Пример создания:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Браузеры при подключении выдают предупреждение
«Соединение не защищено»
так как такой сертификат не подписан доверенным CA.
🔥 2. Firewall (Брандмауэр)
🔹 Что такое Firewall
Брандмауэр (Firewall) — механизм сетевой фильтрации, контролирующий прохождение пакетов.
Он действует как «охранник», пропуская только разрешённый трафик и блокируя всё остальное.
🔹 iptables и цепочки (chains)
iptables — классическая система фильтрации пакетов в Linux, использующая подсистему netfilter.
Основные таблицы:
filter— фильтрация пакетов;nat— трансляция адресов (маскарадинг, порт-форвардинг);mangle— модификация пакетов;raw— низкоуровневые операции.
Главные цепочки:
| Цепочка | Описание |
|---|---|
| INPUT | Входящие пакеты в сервер |
| OUTPUT | Исходящие пакеты из сервера |
| FORWARD | Пакеты, проходящие через сервер |
🔹 nftables — современная альтернатива iptables
nftables — новый фреймворк фильтрации, заменяющий iptables, arptables и ip6tables.
Он объединяет правила IPv4 и IPv6 и использует более лаконичный синтаксис.
Пример:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0; policy drop; }
nft add rule inet filter input tcp dport {22,80,443} accept
nft add rule inet filter input ct state established,related accept
nft list ruleset
📘 Преимущества:
- Единый интерфейс
nft; - Поддержка IPv4 и IPv6;
- Повышенная производительность и удобство конфигурации.
🔹 ufw — упрощённый интерфейс
ufw (Uncomplicated Firewall) — надстройка над iptables/nftables.
Подходит для быстрых DevOps-настроек безопасности, особенно в Ubuntu.
ufw enable
ufw allow 22
ufw allow 80,443/tcp
ufw deny 25
ufw status verbose
🔗 Рекомендации к изучению: