Налаштування сервера за AegisX
Що змінити на вашому сервері після підключення, щоб сайт бачив справжніх відвідувачів, а платежі й інтеграції працювали без перебоїв.
Для будь-якого сайту
IP відвідувача
AegisX передає її в заголовках X-Real-IP і X-Forwarded-For. Без налаштування нижче сервер бачить у логах адреси AegisX, а не відвідувачів.
HTTPS
Відвідувачі завжди приходять через HTTPS. Якщо сервер підключено через http://, AegisX додає заголовок X-Forwarded-Proto: https, за ним сайт розуміє, що з’єднання захищене. Надійніше підключити сервер через https://.
Закрити сервер
Поки сервер відповідає всім, атакувати можна в обхід захисту. Скрипт для nftables, iptables чи ufw є в кабінеті: Сайти → сайт → Захист сервера. Він сам оновлює список адрес AegisX.
Сертифікат AegisX
На тій самій вкладці є кореневий сертифікат AegisX. З ним сервер приймає HTTPS-підключення лише від AegisX і лише для свого сайту.
Адреси AegisX завжди доступні за посиланням: my.aegisx.network/api/public/edge-ips
Адреси змінюються, коли ми додаємо сервери. Оновлюйте файл раз на день, наприклад через cron.
nginx
Справжня IP-адреса відвідувача в $remote_addr, логах і застосунку. Модуль realip зазвичай уже є в nginx.
curl -fsS https://my.aegisx.network/api/public/edge-ips | sed 's/.*/set_real_ip_from &;/' > /tmp/aegisx-realip.conf \
&& echo 'real_ip_header X-Real-IP;' >> /tmp/aegisx-realip.conf \
&& sudo mv /tmp/aegisx-realip.conf /etc/nginx/conf.d/aegisx-realip.conf \
&& sudo nginx -t && sudo systemctl reload nginxПриймати лише підключення AegisX до цього сайту (у блоці server з listen 443):
ssl_client_certificate /etc/nginx/aegisx-origin-pull-ca.pem;
ssl_verify_client on;
if ($ssl_client_s_dn !~ "CN=example.com(,|$)") { return 403; }Apache
Модуль remoteip підставляє справжню IP-адресу відвідувача. У форматі логів використовуйте %a замість %h.
sudo a2enmod remoteip
{ echo 'RemoteIPHeader X-Real-IP'; curl -fsS https://my.aegisx.network/api/public/edge-ips | sed 's/^/RemoteIPTrustedProxy /'; } > /tmp/aegisx-remoteip.conf \
&& sudo mv /tmp/aegisx-remoteip.conf /etc/apache2/conf-available/aegisx-remoteip.conf \
&& sudo a2enconf aegisx-remoteip && sudo apachectl configtest && sudo systemctl reload apache2Приймати лише підключення AegisX до цього сайту (у VirtualHost на 443 порту):
SSLCACertificateFile /etc/ssl/aegisx-origin-pull-ca.pem
SSLVerifyClient require
SSLVerifyDepth 1
<If "%{SSL_CLIENT_S_DN_CN} != 'example.com'">
Require all denied
</If>WordPress
Справжня IP-адреса
Налаштуйте nginx або Apache, як вище. Плагінам безпеки й коментарям нічого змінювати не потрібно.
HTTPS без петлі редиректів
Якщо сервер підключено через http://, додайте рядки нижче у wp-config.php перед рядком «That’s all, stop editing».
WP-Cron і перевірка стану
WordPress звертається до власного сайту з вашого сервера. Додайте адресу сервера до дозволених: Правила → Доступ за IP.
Оплати WooCommerce
Stripe, LiqPay і YooKassa вмикаються готовими винятками на вкладці «Боти». Для інших платіжних модулів додайте їхній шлях сповіщень, зазвичай /wc-api/.
Вхід і xmlrpc.php
Для /wp-login.php задайте окремий ліміт, наприклад 5 POST-запитів на хвилину: сайт → Налаштування → «Правила шляхів». Якщо не користуєтеся застосунком WordPress і Jetpack, закрийте /xmlrpc.php: Правила → Фільтри шляхів.
REST API
/wp-json/ виносьте з перевірки браузера, лише якщо до нього звертаються зовнішні застосунки.
wp-config.php
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}1С-Бітрікс
Справжня IP-адреса
У BitrixVM перед Apache стоїть nginx: налаштуйте його, як вище. Apache отримає адресу від nginx.
HTTPS
Якщо сервер підключено через http://, додайте рядки нижче у /bitrix/php_interface/dbconn.php.
Оплати
Платіжні системи надсилають сповіщення на /bitrix/tools/sale_ps_result.php. Додайте цей шлях до винятків на вкладці «Боти».
Обмін з 1С
1С підключається до /bitrix/admin/1c_exchange.php. Додайте адресу комп’ютера чи сервера з 1С до дозволених: Правила → Доступ за IP.
Адміністративний розділ
Якщо закриваєте /bitrix/admin/ за адресами, не забудьте про адресу 1С: обмін іде через цей самий розділ.
/bitrix/php_interface/dbconn.php
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}Laravel
Довірені проксі
Laravel бере IP відвідувача й HTTPS із заголовків лише від довірених проксі. Вкажіть адреси AegisX, як нижче.
Вебхуки
Маршрути для вебхуків (наприклад /webhooks/) додайте до винятків на вкладці «Боти»: платіжні системи й сервіси не проходять перевірку браузера.
API для застосунків
Шлях /api/ теж винесіть із перевірки браузера, а ліміти й перевірку токенів налаштуйте на вкладці «API».
Laravel 11 і новіші, bootstrap/app.php:
->withMiddleware(function (Middleware $middleware) {
$middleware->trustProxies(at: [
'203.0.113.10',
'198.51.100.20',
]);
})Laravel 10, app/Http/Middleware/TrustProxies.php:
protected $proxies = [
'203.0.113.10',
'198.51.100.20',
];Якщо сервер закрито скриптом для всіх, крім AegisX, замість списку можна вказати '*': тоді його не треба оновлювати.
Як перевірити
- Відкрийте сайт і знайдіть свій запит у лозі сервера: там має бути ваша адреса, а не адреса AegisX.
- У кабінеті на вкладці «Захист сервера» запустіть перевірку: вона покаже, чи не видно адресу сервера у відкритих записах.
- Спробуйте відкрити сайт напряму за адресою сервера: після скрипта з’єднання не має встановлюватися.
Не знайшли свою платформу?
Напишіть, на чому працює сайт, і ми підкажемо налаштування.