LINUX.ORG.RU

Сообщения Dodik

 

Fail2ban. Jail для кодов 403 и 404

Форум — Security

Есть веб-сервис, в логах которого наблюдаются попытки открыть несуществующие страницы, либо выйти за пределы папки сервиса, либо вообще попытки что-то запустить. Это всё сопровождается кодами ответов 403 и 404.

Строка лога

196.251.92.121 - - [27/May/2025:22:12:05 +0000] "GET /.env HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0" "-"

Получается, что мне нужна регулярка, чтоб из лога взять IP, метод (GET|POST) и код ответа

Подскажите, как написать правило для f2b, чтоб если такие коды встречаются в логах, он этих злодеев отправлял в nftables.

 , , ,

Dodik
()

Возможно ли переопределить сетевой порт приложения при запуске контейнера?

Форум — Admin

Я хочу запустить контейнер с nextcloud’ом на (например) 8081 порту для того, что бы реверс-прокси в другом контейнере, стоящий перед ним, проксировал трафик на некстклауд именно на порт 8081.

Если я в компос файл добавлю

ports:
  - 8081:8081

то сам сервис из веба доступен на порту 8081, но провалившись в контейнер, апач работает на 80 порту

root@9634f469ef19:/var/www/html# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1/apache2           
tcp        0      0 127.0.0.11:38919        0.0.0.0:*               LISTEN      -                   

Безусловно это обходится внесением изменений в файл ports.conf внутри контейнера, либо скопировав его на хост, предварительно внеся изменения прокинуть внутрь, но вопрос в заголовке

 , ,

Dodik
()

vhost reverse-proxy в контейнере отправляет трафик не туда...=(

Форум — Admin

Сто раз перепроверил и не могу найти ошибку

Есть 3 контейнера.
1 - Только nginx как реверс-прокси
2 - Веб-сервер
3 - Nextcloud

Компос конфиг nginx

services:
  nginx:
    image: nginx:1.27.5-alpine3.21-slim
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./etc/nginx/conf.d:/etc/nginx/conf.d:ro
      - ./etc/nginx/ssl:/etc/nginx/ssl:ro
      - ./etc/nginx/well-known/:/usr/share/nginx/html
    networks:
      proxy:
        ipv4_address: 172.29.3.254
      web:
        ipv4_address: 172.29.3.6
      cloud:
        ipv4_address: 172.29.3.246

networks:
  # Сеть прокси-сервера с одним хостом
  proxy:
    ipam:
      config:
        - subnet: 172.29.3.252/30

  # Сеть веб-сервера
  web:
    ipam:
      config:
        - subnet: 172.29.3.0/29

  # Сеть клауда
  cloud:
    ipam:
      config:
        - subnet: 172.29.3.240/29

Компос конфиг облака

services:
  db:
    image: mariadb:10.6
    ...
    networks:
      proxy_cloud:

  cloud:
    image: nextcloud:29.0.16
    ports:
      - 82:82
    links:
      - db
    depends_on:
      - db
    ...
    networks:
      proxy_cloud:
        ipv4_address: 172.29.3.242

networks:
  proxy_cloud:
    external: true

Конфиг nginx на клауд

server {
	listen 80;
	server_name cloud.exam.ple;

	location ~ /.well-known {
		root /usr/share/nginx/html;
		allow all;
	}

	location / {
		proxy_pass http://172.29.3.242:82;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

А ещё есть nginx конфиг на сайт

server {
	listen 80;
	listen 443 ssl;
	server_name exam.ple;

	# === For SSL === #

	location ~ /.well-known {
		root /usr/share/nginx/html;
		allow all;
	}

	if ($scheme = 'http') {
		return 301 https://$host$request_uri;
	}

	ssl_certificate     /etc/nginx/ssl/live/exam.ple/fullchain.pem;
	ssl_certificate_key /etc/nginx/ssl/live/exam.ple/privkey.pem;

	# === END for SSL === #

	location / {
		proxy_pass http://172.29.3.2:81;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
	}
}

Извне сайт по имени exam.ple работает и в логах реверс-прокси видно, как сыплет прокси_пасс на адрес http://172.29.3.2:81
Но вот когда пытаюсь открыть облако cloud.exam.ple, то открывается сайт exam.ple
Останавливаю контейнер с сайтом. Пытаюсь запустить снова клауд нифига! В логах контейнера прокси вижу, как по имени клауда, прокси_пасс пытается замаршрутить трафик на ip сайта.

ЧЯДНТ…?!?

 , ,

Dodik
()

Телефон в фоне посылает GET-запросы в локальной сети. Почему?

Форум — Admin

Качая скилл в контейнеризации, заметил одну подозрительную вещь. При запущенном локально контейнере с веб-приложением, в интерактивном (attached) режиме, в лог потихоньку сыплет

192.168.100.6 - - [12/May/2025:04:15:05 +1000] "GET / HTTP/1.1" 301 169 "-" "Dalvik/2.1.0 (Linux; U; Android 15; 23124RA7EO Build/AQ3A.240829.003)" "-"

Исходя из слова Android, полез смотреть IP в мобилу и точно! IP-шник телефона.

Какого хрена телефон в фоне посылает GET-запросы, предварительно уже зная куда?

 , , ,

Dodik
()

Алгоритмы управления TCP-соединениями. Стоит ли менять?

Форум — Admin

Вопрос больше к сетевикам.
Услышал про алгоритмы управления TCP-соединениями, которых на сегодняшний день 4. Reno, Cubic, Hybla и BBR. Последний от гугла и вроде как его рекомендуется включать при использовании туннеля, как например чел описал в своём блоге, подчеркнув, что такой подход с TCP работает быстрее UDP. Неужели прям такая магия?
Так как в сетях я больше профан, а не профи, хотелось бы узнать мнение общественности. Были ли у кого кейсы с заменой дефолтного сubic на BBR ну и если были, то можно пару строк о результате

 , ,

Dodik
()

Зачем в докере докер?

Форум — General

Познавая контейнеризацию и гуляя по списку официальных образов докерхаба, я наткнулся на образ докера. Хоть там и есть некий дескрипшн

Although running Docker inside Docker is generally not recommended, there are some legitimate use cases, such as development of Docker itself.

Но почесав затылок и задумавшись, решил спросить - кто-нибудь разворачивал докер в докере? Если да, то нафига?

P.S> Тавтология какая-то получилась

 

Dodik
()

Gentoo. Тип процессора Atom и клавиатура

Форум — Admin

Познавая Gentoo и естественно по пути экспериментируя, решил при сборке ядра попробовать выбрать тип процессора Atom, так как сам процессор у меня Intel(R) Atom(TM) CPU Z3735F @ 1.33Ghz

В make menuconfig выбрал следующее:

[ ] Opteron/Athlon64/Hammer/K8
[ ] Intel P4 / older Netburst based Xeon
[ ] Core 2/newer Xeon
[*] Intel Atom
[ ] Generic-x86-64

После сборки ядра, обновлении граба и рестарта перестала работать клавиатура. Гугл говорит, что при таком раскладе (процессор Atom) ОСь считает, что я на планшете и клавиатура непотребна, в связи с чем заботливо отключила её. Выход - подключение USB-клавы.
Подскажите, какой модуль отвечает за клавиатуру и как его скормить системе, чтоб он уже по умолчанию в ней работал.

 , , ,

Dodik
()

Cross-compiling build kernel. Растолкуйте

Форум — Admin

Не так давно (как и в линуксе) решил попробовать кросс-компиляцию, но возможно чего-то недопонимаю.
Дано:
Слабенький и уже старенький ноут (2 core, 2 threads, 2 ram)
Стационарный комп (4 core, 4 threads, 16 ram)
На обоих Gentoo
Ноут

cat /etc/portage/make.conf 
CFLAGS="-O2 -pipe -mtune=silvermont"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="--jobs 11 --load-average 2"
FEATURES="distcc"

Комп

cat /etc/portage/make.conf 
CFLAGS="-O2 -pipe -mtune=skylake"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="--jobs 11 --load-average 9"
FEATURES="distcc"

На обоих девайсах /etc/conf.d/distccd со следующими параметрами DISTCCD_OPTS="--allow 127.0.0.1 --port 3632 --log-level critical --allow 10.254.27.192/26 --listen 10.254.27.218 -N 15 за исключением параметра --listen. То есть на буке листен ip компа, а на компе соответственно листен ip бука

Поигравшись с настройками distcc и потестировав сборку пакетов на буке, открыв и там и там htop, видно как перекладывается нагрузка на cpu компа при сборке.
Но запустив сборку ядра на буке, нагрузки никакой на компе нет =( скриншот (сверху htop бука, снизу компа). Соответственно на дохлом буке сборка происходит ужасно долго
Подскажите пжлста ЧЯДНТ…?!?

 , , ,

Dodik
()

Dracut vs Genkernel. Параметры ядра grub

Форум — Admin

Объясните «на пальцах» что лучше Dracut или Genkernel.
При генерации initramfs genkernel’ом, весь файла ~ 13mb
При генерации initramfs dracut’ом, весь файла ~ 32mb

И следующий вопрос:
На десктопе стоит генту с шифрованным lvm’ом. Строка в /etc/default/grub - GRUB_CMDLINE_LINUX="ipv6.disable=1 crypt_root=UUID=<цыфарки> root=UUID=<цыфарки> rootfstype=ext4 dolvm quiet"
Пытаюсь аналогично установить на нетбук, граб не видит шифрованный раздел. Я и так и сяк и об косяк…НИКАК! Полез за ответами в гугл, он привёл меня на интересный ман, в котором рекомендации строки загрузчика выглядят так - GRUB_CMDLINE_LINUX="loglevel=4 rd.luks.uuid=<цыфарки> rd.lvm.vg.uuid=<цыфарки> dolvm quiet ipv6.disable=1". В общем я поменял crypt_root на rd.luks.uuid и root на rd.lvm.vg.uuid только после этого граб всё увидел и загрузил систему.

Расскажите в чём разница в параметрах указанных выше?

 , , , ,

Dodik
()

Что лучше выбрать для реверс-прокси в контейнере?

Форум — Admin

Начал изучать контейнеризацию.
Есть кейс - 1 доменное имя, 1 ip, 2 app.
Перед app’ами надо поставить реверс-прокси. Ранее я делал подобное на виртуализации. Ставил обычный nginx и в директории конфига добавлял нужный ip в директиву proxy_pass. Сейчас же смотрю на докерхабе для этого есть куча готовых образов.

Подскажите, чем лучше готовые решения от ванильного nginx’a, на том же alpine с директивой proxy_pass?

 , , , ,

Dodik
()

Nvidia patch 470. Как применить?

Форум — Admin

Gentoo выкатила стабильное ядро 6.12, где не поддерживается драйвер нвидиа 420, а моя видеокарта поддерживает максимум только эту версию. Нарыл в сети патч, но не понимаю как его применить/установить.
Помогите пожалуйста

 , ,

Dodik
()

RSS подписка на новые темы