Вазух

This commit is contained in:
2025-04-20 11:38:25 +05:00
parent 584960dd14
commit 3993de1b95
8 changed files with 272 additions and 107 deletions

View File

@ -8,7 +8,7 @@ ssh administrator@10.101.1.3 -p 22
```
Connect to CCALM Turkish infrastructure:
```sh
ssh igor@156.244.31.209 -p 2200
ssh igor@88.218.94.134 -p 2200
```
----------------------------------------------------------------------------------------------------
## Install haproxy
@ -26,29 +26,29 @@ sudo cp /etc/haproxy/haproxy.cfg{,.bak}
В конец файла добавляем пока только для перенаправления (для балансироки больше IP адресов):
```conf
frontend frontend-http
bind *:80
mode http
bind *:80
mode http
# ACL для определения запросов на проверку Let's Encrypt
acl is_certbot path_beg /.well-known/acme-challenge/
# ACL для определения запросов на проверку Let's Encrypt
acl is_certbot path_beg /.well-known/acme-challenge/
# Если это не запрос Let's Encrypt, перенаправляем на HTTPS
http-request redirect scheme https code 301 unless is_certbot
# Если это не запрос Let's Encrypt, перенаправляем на HTTPS
http-request redirect scheme https code 301 unless is_certbot
# Отправляем запросы Let's Encrypt на backend-certbot
use_backend backend-certbot if is_certbot
# Отправляем запросы Let's Encrypt на backend-certbot
use_backend backend-certbot if is_certbot
frontend LOADBALANCER-01
bind *:80
bind *:443 ssl crt /etc/haproxy/ssl/mqtt.kz.pem crt /etc/ssl/certs/bigfoottrade_kz.pem
mode http #режим работы HAProxy, в http режиме происходит анализ Layer 7 трафика
option httpclose #Закрывает пассивные соединения
frontend LOADBALANCER-01
bind *:80
bind *:443 ssl crt /etc/haproxy/ssl/mqtt.kz.pem crt /etc/ssl/certs/bigfoottrade_kz.pem
mode http #режим работы HAProxy, в http режиме происходит анализ Layer 7 трафика
option httpclose #Закрывает пассивные соединения
http-request set-header x-Forwarded-for %[src]
http-request set-header x-Forwarded-uri %[url]
http-request set-header x-Forwarded-for %[src]
http-request set-header x-Forwarded-uri %[url]
acl v_geoserver2 hdr(host) -i geoserver2.ccalm.org
use_backend geoserver2_ccalm_org if v_geoserver2
acl v_geoserver2 hdr(host) -i geoserver2.ccalm.org
use_backend geoserver2_ccalm_org if v_geoserver2
#Если различные нестандартные порты то так
acl v_locust_kz hdr_reg(host) -i ^locust\.kz(:.*)?$
@ -58,13 +58,13 @@ mode http
acl v_geo_data hdr(host) -i geoserver2.ccalm.org/data
use_backend WEBSERVERS-01 if v_geo_data
default_backend WEBSERVER
default_backend WEBSERVERS-01
backend WEBSERVER
balance roundrobin
server web1 127.0.0.1:8080 check inter 5s ssl verify none
option httpchk GET /index.html
backend WEBSERVERS-01
balance roundrobin
server web10 127.0.0.1:8081 check inter 5s ssl verify none
option httpchk
backend geoserver2_ccalm_org
balance roundrobin
@ -150,7 +150,7 @@ backend 'transit_monitoring_kz' has no server available!
Бесплатный SSL сертификат Lets Encrypt для HAPROXY https://serversforhackers.com/c/letsencrypt-with-haproxy
```sh
sudo apt-get update
sudo apt-get install -y certbot
sudo apt-get install certbot -y
````
Для удаления PPA нужно выполнить:
```sh
@ -189,6 +189,9 @@ backend 'transit_monitoring_kz' has no server available!
Перезагрузить и выполнить команду:
```sh
certbot certonly --rsa-key-size 2048 --standalone --preferred-challenges http --http-01-address 127.0.0.1 --http-01-port 9080 -d powerdns.geovizor.top --email irigm@mail.ru --agree-tos --non-interactive
certbot certonly --rsa-key-size 2048 --standalone --preferred-challenges http --http-01-address 127.0.0.1 --http-01-port 9080 -d geovizor.top --email irigm@mail.ru --agree-tos --non-interactive
certbot certonly --rsa-key-size 2048 --standalone --preferred-challenges http --http-01-address 127.0.0.1 --http-01-port 9080 -d locust.kz --email irigm@mail.ru --agree-tos --non-interactive
certbot certonly --rsa-key-size 2048 --standalone --preferred-challenges http --http-01-address 127.0.0.1 --http-01-port 9080 -d gotify.locust.kz --email irigm@mail.ru --agree-tos --non-interactive
certbot certonly --rsa-key-size 2048 --standalone --preferred-challenges http --http-01-address 127.0.0.1 --http-01-port 9080 -d git.ccalm.org --email irigm@mail.ru --agree-tos --non-interactive

90
Nginx_install.md Normal file
View File

@ -0,0 +1,90 @@
Установка nginx по инсткукции с сайта: https://www.8host.com/blog/sozdanie-samopodpisannogo-ssl-sertifikata-dlya-nginx-v-ubuntu-18-04/
****************************************************************************************************
## 2. Подключаемся к нужному серверу
```sh
ssh igor@192.168.200.85 -p 22
```
Connect to CCALM Georgia infrastructure:
```sh
ssh igor@88.218.94.134 -p 2200
```
----------------------------------------------------------------------------------------------------
```sh
sudo apt-get update &&
sudo apt-get install nginx
```
Настройка самоподписанного сертификата для SSL nginx
```sh
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
```
Самой важной строкой является Common Name (введите FQDN или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера.
```sh
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096
```
Создаём файл:
```sh
sudo mcedit /etc/nginx/conf.d/ssl.conf
```
И вписываем в него:
```conf
server {
listen 8091 ssl http2;
listen [::]:8091 ssl http2;
server_name istransit.kg;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_dhparam /etc/nginx/dhparam.pem;
root /opt/www/istransit.kg;
index index.html index.htm;
location / {
try_files $uri $uri/ =404; # Попытка найти файл или возвращение 404
}
}
```
```sh
sudo systemctl restart nginx
```
Также есть такие команды:
nginx -s stop — быстрое завершение
nginx -s quit — плавное завершение
nginx -s reload — перезагрузка конфигурационного файла
nginx -s reopen — переоткрытие лог-файлов
Создаю виртуальный хост:
```sh
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/istransit.kz
```
```sh
sudo mcedit /etc/nginx/sites-available/aistransit.kz
```
Модифицируем текст настройки:
```sh
cd /etc/nginx/sites-available/ &&
sudo tee geovizor.top > /dev/null <<'EOF'
server {
listen 8081;
listen [::]:8081;
root /opt/www/istransit.kz;
index index.html;
server_name istransit.kz www.istransit.kz;
location / {
try_files $uri $uri/ =404;
}
}
EOF
```
Теперь можно включить виртуальный хост:
sudo ln -s /etc/nginx/sites-available/istransit.kz /etc/nginx/sites-enabled/
Проверяем правильность конфигурации:
sudo nginx -t
Перезапускаем:
sudo systemctl restart nginx

View File

@ -71,7 +71,10 @@ CREATE DATABASE CCALM
LC_CTYPE = 'ru_RU.UTF-8'
CONNECTION LIMIT = -1;
Файл настроек postgresql: sudo mcedit /etc/postgresql/16/main/postgresql.conf
Файл настроек postgresql:
```sh
sudo mcedit /etc/postgresql/16/main/postgresql.conf
```
listen_addresses='*' #Разрешить подключение с внешки
#Для 9й версии разрешаем экранирующие символы \' и другие без спец символа "E" перед строкой
backslash_quote = on
@ -93,7 +96,10 @@ CREATE DATABASE CCALM
\dt для отображения всех таблиц
или написать со своим IP: host all all 2.133.238.240/24 trust
Для подключения с любых IP адресов в "sudo mcedit /etc/postgresql/16/main/pg_hba.conf" прописать:
Для подключения с любых IP адресов в "
```sh
sudo mcedit /etc/postgresql/16/main/pg_hba.conf
```
host all all 0.0.0.0/0 md5
Либо с одного конкретного то: host all all 92.46.48.37/24 md5
А также поменять на listen_addresses = '*' в postgresql.conf

View File

@ -4,9 +4,9 @@
```sh
ssh igor@192.168.200.85 -p 22
```
Connect to CCALM Turkish infrastructure:
Connect to CCALM Georgia infrastructure:
```sh
ssh igor@156.244.31.209 -p 2200
ssh igor@88.218.94.134 -p 2200
```
****************************************************************************************************
DynDNS на PowerDNS авторитативный сервер тот кто отвечает на те домены которые в его базе (рекурсивный присылает авторитативному запросы)
@ -59,7 +59,7 @@ also-notify=127.0.0.1
include-dir=/etc/powerdns/pdns.d
launch=
local-address=156.244.31.209,127.0.0.1
local-address=88.218.94.134,127.0.0.1
local-port=53
log-dns-details=on
@ -68,9 +68,9 @@ log-timestamp=yes
loglevel=4
webserver=yes
webserver-address=156.244.31.209
webserver-address=127.0.0.1
webserver-allow-from=::/0, 0.0.0.0/0
webserver-port=8081
webserver-port=8091
master=yes
slave=no
@ -87,7 +87,7 @@ EOF
```
Пытаемся открыть WEB интерфейс
```sh
start http://192.168.200.85:8081
start http://88.218.94.134:8081
```
Если всё норм выполняем:
@ -115,9 +115,15 @@ sudo pdnsutil add-record test ccalm A 192.168.200.184
```sh
sudo pdnsutil create-zone geovizor.top ns1.geovizor.top &&
sudo pdnsutil replace-rrset geovizor.top @ SOA "ns1.geovizor.top admin.geovizor.top $(date +%Y%m%d)01 10800 3600 604800 3600" &&
sudo pdnsutil add-record geovizor.top ns1 A 156.244.31.209 &&
sudo pdnsutil add-record geovizor.top @ A 156.244.31.209 &&
sudo pdnsutil add-record geovizor.top * A 156.244.31.209
sudo pdnsutil add-record geovizor.top ns1 A 88.218.94.134 &&
sudo pdnsutil add-record geovizor.top ns2 A 88.218.94.134 &&
sudo pdnsutil add-record geovizor.top @ A 88.218.94.134 &&
sudo pdnsutil add-record geovizor.top * A 88.218.94.134 &&
sudo pdnsutil add-record geovizor.top @ CAA 3600 "0 issue \"letsencrypt.org\"" &&
sudo pdnsutil add-record geovizor.top @ TXT 3600 "\"v=spf1 ip4:88.218.94.134 -all\"" &&
sudo pdnsutil add-record geovizor.top @ MX 3600 "10 mail.geovizor.top." &&
sudo pdnsutil add-record geovizor.top mail A 3600 88.218.94.134 &&
sudo pdnsutil add-record geovizor.top powerdns A 3600 88.218.94.134
```
Выше задал такие настройки как
```conf
@ -141,7 +147,10 @@ dig @127.0.0.1 -p 5300 ccalm.test A
dig @127.0.0.1 -p 53 geovizor.top A
```
```sh
dig @156.244.31.209 -p 53 geovizor.top A
dig @88.218.94.134 -p 53 geovizor.top A
```
```sh
dig @88.218.94.134 -p 53 powerdns.geovizor.top A
```
### Теперь можно настроить HTTPS для взаимодействия через API с сервером для динамического задания IP адресов

View File

@ -1,7 +1,3 @@
```sh
sudo apt-get install pdns-backend-sqlite3 -y
```
Для использования SQLIte копируем схему из https://doc.powerdns.com/authoritative/backends/generic-sqlite3.html
```sh
sudo apt-get install pdns-backend-sqlite3 -y

View File

@ -121,6 +121,16 @@ http:
middlewares:
- strip-dbms-prefix
ccalm-translation:
rule: "Host(`ccalm.test`) && PathPrefix(`/api/translation/v01/`)"
service: org_ccalm_translation_v01
entryPoints:
- websecure
tls:
certresolver: myresolver
middlewares:
- strip-translation-prefix
ccalm-login:
rule: "Host(`ccalm.test`) && PathPrefix(`/login/`)"
service: org_ccalm_login_v01
@ -153,6 +163,10 @@ http:
stripPrefix:
prefixes:
- "/api/dbms/v09"
strip-dbms-prefix:
stripPrefix:
prefixes:
- "/api/translation/v01"
services:
@ -185,6 +199,16 @@ http:
path: "/"
interval: "5s"
# Бэкенд для org_ccalm_translation_v01 (HTTPS с отключенной проверкой SSL)
org_ccalm_translation_v01:
loadBalancer:
servers:
- url: "https://192.168.200.184:8085"
serversTransport: insecureTransport
healthCheck:
path: "/"
interval: "5s"
# Бэкенд для org_ccalm_login_v01 (HTTP, без SSL)
org_ccalm_login_v01:
loadBalancer:

View File

@ -2531,73 +2531,6 @@ Config:
https://oauth2:glpat-sKQh2x88gsmZbBCz4SfJ@git.istt.kz/transit/dispatcher/kz.istransit.dispatcher
****************************************************************************************************
Установка nginx по инсткукции с сайта: https://www.8host.com/blog/sozdanie-samopodpisannogo-ssl-sertifikata-dlya-nginx-v-ubuntu-18-04/
sudo apt-get update
sudo apt-get install nginx
Настройка самоподписанного сертификата для SSL nginx
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
Самой важной строкой является Common Name (введите FQDN или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера.
sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096
Создаём файл:
sudo mcedit /etc/nginx/conf.d/ssl.conf
И вписываем в него:
server {
listen 8091 ssl http2;
listen [::]:8091 ssl http2;
server_name istransit.kg;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_dhparam /etc/nginx/dhparam.pem;
root /opt/www/istransit.kg;
index index.html index.htm;
location / {
try_files $uri $uri/ =404; # Попытка найти файл или возвращение 404
}
}
sudo systemctl restart nginx
Также есть такие команды:
nginx -s stop — быстрое завершение
nginx -s quit — плавное завершение
nginx -s reload — перезагрузка конфигурационного файла
nginx -s reopen — переоткрытие лог-файлов
Создаю виртуальный хост:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/istransit.kz
sudo mcedit /etc/nginx/sites-available/aistransit.kz
Модифицируем текст настройки:
server {
listen 8081;
listen [::]:8081;
root /opt/www/istransit.kz;
index index.html;
server_name istransit.kz www.istransit.kz;
location / {
try_files $uri $uri/ =404;
}
}
Теперь можно включить виртуальный хост:
sudo ln -s /etc/nginx/sites-available/istransit.kz /etc/nginx/sites-enabled/
Проверяем правильность конфигурации:
sudo nginx -t
Перезапускаем:
sudo systemctl restart nginx
****************************************************************************************************
Как установить и настроить Elasticsearch, Logstash, Kibana (ELK Stack) на Ubuntu, Debian, Centos: https://portforwarded.com/install-elastic-elk-stack-8-x-on-ubuntu-22-04-lts/ или https://serveradmin.ru/ustanovka-i-nastroyka-elasticsearch-logstash-kibana-elk-stack/

104
Wazuh_install.md Normal file
View File

@ -0,0 +1,104 @@
https://documentation.wazuh.com/current/installation-guide/wazuh-server/installation-assistant.html
Подключаемся к нужному серверу:
```sh
ssh igor@192.168.200.86
```
```sh
curl -sO https://packages.wazuh.com/4.11/wazuh-install.sh
sudo bash wazuh-install.sh -a
```
```sh
start https://192.168.200.86:443
```
Компонент Порт по умолчанию Доступ
Wazuh API 55000 Внутренний
Wazuh Dashboard 5601 Веб-интерфейс
OpenSearch (Indexer) 9200 Только для внутреннего использования
Доступ к Dashboard:
Перейди в браузере: https://<your_ip>:5601
Пользователь по умолчанию: admin
Пароль: будет сгенерирован и выведен в консоли в конце установки
Альтернативно: ручная установка
Если нужен кластер, тюнинг или раздельная установка компонентов, можно ставить по частям:
Wazuh Indexer (OpenSearch) → инструкция
Wazuh Dashboard → инструкция
Wazuh Manager (сервер) → инструкция
Для теста разбора лога вызвать:
```sh
sudo /var/ossec/bin/wazuh-logtest
```
И вставить строку:
```json
{"exception":"","data":{"_data":"Создание роли для пользователя: anton@rebez.ru роль: Translator","_date":"2025-04-18T05:12:14.607513","user_id":156,"group_id":15,"del":false,"_user_id":3,"id":453},"level":"INFO","logger":"history","thread":"main","message":"Иванов Igor IW2 Михайлович: Создание роли для пользователя: anton@rebez.ru роль: Translator","timestamp":"2025-04-18T05:12:14.607Z"}
```
У меня выдало:
```log
**Phase 1: Completed pre-decoding.
full event: '{"exception":"","data":{"_data":"Создание роли для пользователя: anton@rebez.ru роль: Translator","_date":"2025-04-18T05:12:14.607513","user_id":156,"group_id":15,"del":false,"_user_id":3,"id":453},"level":"INFO","logger":"history","thread":"main","message":"Иванов Igor IW2 Михайлович: Создание роли для пользователя: anton@rebez.ru роль: Translator","timestamp":"2025-04-18T05:12:14.607Z"}'
**Phase 2: Completed decoding.
name: 'json'
data._data: 'Создание роли для пользователя: anton@rebez.ru роль: Translator'
data._date: '2025-04-18T05:12:14.607513'
data._user_id: '3'
data.del: 'false'
data.group_id: '15'
data.id: '453'
data.user_id: '156'
level: 'INFO'
logger: 'history'
message: 'Иванов Igor IW2 Михайлович: Создание роли для пользователя: anton@rebez.ru роль: Translator'
thread: 'main'
timestamp: '2025-04-18T05:12:14.607Z'
```
Проверяем упоминание файла history в логе:
```sh
sudo less /var/log/wazuh-indexer/wazuh-cluster.log
sudo grep -i "history" /var/log/wazuh-indexer/wazuh-cluster.log
```
Ищем ошибки индексации:
```sh
sudo grep -i "error" /var/log/wazuh-indexer/wazuh-cluster.log
```
Инициализируем кластер безопасности:
```sh
/usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh \
-cd /etc/wazuh-indexer/opensearch-security/ \
-icl -nhnv \
-cacert /etc/wazuh-indexer/certs/root-ca.pem \
-cert /etc/wazuh-indexer/certs/admin.pem \
-key /etc/wazuh-indexer/certs/admin-key.pem
```
Проверьте конфигурацию аудита в файле /etc/wazuh-indexer/opensearch.yml:
```sh
sudo mcedit /etc/wazuh-indexer/opensearch.yml
```
В нём должны быть такие настройки:
```conf
opensearch_security.audit.type: internal_opensearch
opensearch_security.audit.enable_rest: true
opensearch_security.audit.enable_transport: true
```
Выводим строчки с ошибками
```sh
sudo grep -i "error" /var/log/wazuh-indexer/wazuh-cluster.log
```