Posts

Nginx - rate limit for connection from different user agent

Hello.  Trying to set a rate limit for user agent using nginx on the Hestia CP . 1. In http section of the main nginx configuration /etc/nginx/nginx.conf add this code http { ...    map $http_user_agent $limit_bots {       default '';       ~*(yandex|msnbot|yahoo) $binary_remote_addr;    }    limit_req_zone $limit_bots zone=bots:10m rate=40r/m; ... } In the configuration file of the vhost  need add this code server { ...    limit_req zone=bots burst=5 nodelay; ... } PS. source article  

TCP checksum incorrect

 https://forum.proxmox.com/threads/intel-nic-e1000e-hardware-unit-hang.106001/

Heads-up: Exim 4.96-4.97 may break your Dovecot LDA delivery

 https://dovecot.org/pipermail/dovecot/2022-April/124592.html

Debian 12 (Proxmox Mail Gateway) and starting mailCow mail service

Hello. If You have a problem with starting the MailCow mail service on the Debian 12 (Proxmox Mail Gateway iso) You can use this article . 1. Need to check what template to use Apparmor root@pmg:/home/user# apparmor_status apparmor module is loaded. 10 profiles are loaded. 9 profiles are in enforce mode. docker-default /usr/bin/freshclam /usr/lib/NetworkManager/nm-dhcp-client.action /usr/lib/NetworkManager/nm-dhcp-helper /usr/lib/connman/scripts/dhclient-script /usr/sbin/clamd /{,usr/}sbin/dhclient lsb_release nvidia_modprobe nvidia_modprobe//kmod 0 profiles are in complain mode 0 profiles are in kill mode. 0 profiles are in unconfined mode. 108 processes have profiles defined. 1 processes are in enforce mode.   2. Create apparmor template in /etc/apparmor.d/docker-default #include <tunables/global> profile docker-default flags=(attach_disconnected,mediate_deleted) { #include <abstractions/base> ptrace peer=@{profile_name}, network, capabi...

Custom outgoing IP from docker container

Image
Hi. If You want to configure a custom docker container to use one public IPs that are located on the host system You can use this schema. First, need install docker engine on the system  - install docker   Next, create docker networks  like this --------------------------------------------------------- docker network create --attachable --opt 'com.docker.network.bridge.name=my-network-1' --opt 'com.docker.network.bridge.enable_ip_masquerade=false' --subnet=172.20.10.0/24 --gateway=172.20.10.1 my-network-1 docker network create --attachable --opt 'com.docker.network.bridge.name=my-network-2' --opt 'com.docker.network.bridge.enable_ip_masquerade=false'   --subnet=172.20.20.0/24 --gateway=172.20.20.1 my-network-2 docker network create --attachable --opt 'com.docker.network.bridge.name=my-network-3' --opt 'com.docker.network.bridge.enable_ip_masquerade=false'  --subnet=172.20.30.0/24 --gateway=172.20.30.1 my-network-3 ------------------------...

Docker certbor autoreNEW cert cron job

Hi. If You using a Portainer for deploy yours applications with nginx, apache and Let’s Encrypt SSL you will need to auto renew the certificates when they were ended. I'm using that bash script and put it in the  /etc/cron.weekly folder (using UBUNTU 22.03)  #!/bin/bash # Set PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Run the certbot container to renew the certs docker run --rm -v certbot-webroot-VOLUME:/var/www/certbot -v certbot-data-VOLUME:/etc/letsencrypt:rw certbot/certbot renew # Restart container docker restart container-WITH-WEB-SERVER # Copy cert for Portainer cat /var/lib/docker/volumes/certbot-data-VOLUME/_data/live/YOUR.DOMAIN.COM/fullchain.pem > /opt/portainer/certs/cert.pem cat /var/lib/docker/volumes/certbot-data/_data/live/YOUR.DOMAIN.COM/privkey.pem > /opt/portainer/certs/key.pem docker restart portainer PS. When You will put script to the   /etc/cron.weekly   folder don't add an extension to the script ...

Seample redirects on the .htaccess

Example simple redirect on the .htaccess using rewrite module of the APACHE (httpd) #redirects of one URL RewriteCond %{REQUEST_URI} ^/madres-subrogadas/ RewriteRule .* https://exanple.com/es/moms/ [R=301,L] #redirect all domain RewriteRule (.*)$ https://example.com/es/ [R=301,L]

IPv6 proxy on VPS

This draft article only for remembering  Host company with ipv6 /64 network https://www.vpsag.com/ Script for ganarate ipv6 on python3   #!/usr/bin/env python3 """ Generate a random IPv6 address for a specified subnet """ from random import seed, getrandbits from ipaddress import IPv6Network, IPv6Address subnet = '2001:db8:100::/64' seed() network = IPv6Network(subnet) address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen)) print(address) Generate 1000 ip $ for ip in {1..1000}; do python random-ipv6-addr.py ; done add ipv6 address to interface from file cat iplist1.txt | while read ip;do ip -6 addr add $ip dev eth0; done https://ip6.sh/ can be used to ganarate IPs example https://blog.vpsville.ru/blog/howto/133.html

Schedule delete email with doveadm

 for i in $(ls /directory_with_email); do doveadm expunge -u "$i" mailbox Trash before 30d; done for i in $(ls /directory_with_email); do doveadm expunge -u "$i" mailbox Junk before 30d; done for i in $(ls /directory_with_email); do doveadm expunge -u "$i" mailbox INBOX before 365d; done

Розпакування архівів ISPmanager 5 Lite руками

Всі маніпуляції проводимо з під Лінукса. 1. Спочатку розшифровуємо кожен архів openssl enc -aes-256-cbc -d -in F2019-09-29.dotcom.tgz.aes.part1 -out F2019-09-29.dotcom.tgz.part1 -pass pass:********** 2. Потім ті частини збираємо докупи. cat F2019-09-29.dotcom.tgz.part1 F2019-09-29.dotcom.tgz.part2 > F2019-09-29.dotcom.tgz 

Configure pptp-client with static IP on Centos 7

/etc/sysconfig/network-scripts/ifcfg-pptpserver ONBOOT=yes USERCTL=yes TYPE=Modem PEERDNS=no DEVICE=ppp0 /etc/ppp/peers/pptpserver #pty "pptp 31.31.31.31 --nolaunchpppd" name site #require-mppe-128 #persist holdoff 10 maxfail 0 lcp-echo-interval 15 lcp-echo-failure 4 pty "/usr/sbin/pptp 31.31.31.31 --nolaunchpppd" #usepeerdns nodefaultroute persist holdoff 30 noauth file /etc/ppp/options.pptp /etc/ppp/option.pptp ############################################################################### # $Id: options.pptp,v 1.3 2006/03/26 23:11:05 quozl Exp $ # # Sample PPTP PPP options file /etc/ppp/options.pptp # Options used by PPP when a connection is made by a PPTP client. # This file can be referred to by an /etc/ppp/peers file for the tunnel. # Changes are effective on the next connection.  See "man pppd". # # You are expected to change this file to suit your system.  As # packaged, it requires PPP 2.4.2 or later from htt...

Nginx 1.14 On UBUNTU 18.04 configure alias

This is simple example location /webmail {     alias /usr/share/roundcube;     try_files $uri $uri/ /index.php;     location ~ \.php$ {         include snippets/fastcgi-php.conf;             fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;     fastcgi_param SCRIPT_FILENAME $request_filename;     }    }

Access to SAMBA 4.6 share from WIN XP

Після оновлення SAMBA на сервері у мене виникла проблема з доступом до розшарених ресурсів з WIN XP. Проблема в тому що версія самби 4.6 перестала підтримувати протокол SMBv1. Допомогло внесення в конфіг Самби ось цих налаштувань lanman auth = yes ntlm auth = yes Ось джерело звідки взяв інформація Config for Samba to allow login Windows XP

perl 5.22.2 відновлення роботи після обнови Slackware64 14.1 to 14.2

Після обнови Slackware64 14.1 до 14.2 в мене відмовився працювати коректно perl. Гугління не допомогіло відновити роботу. Знайшов відповідну тему тут . Допомогла така команда для ідентифікації і вирішення проблеми strace aclocal 2>&1 | tail -n 10 Виконавши її я отримував такі логи root@rm-proxy:/# strace perl -MCPAN -e shell  2>&1 | tail -n 100 getuid()                                = 0 geteuid()                               = 0 getgid()                                = 0 getegid()    ...

Пошук файлів по даті зміни

Команда пошуку файлів по даті зміни. Мені допомогло для виявлення бекдорів і експлойтів за допомогою яких було зламано Джумлу на серваку find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r > etc.log

Відновлення роботи роботи роутера Linksys WRT54G3G-ST після невдалого обновлення прошивки.

Image
Купив я якось роутер Linksys WRT54G3G-ST. Із цікавості почав розбиратися в його налаштуваннях. Та спробував його сконфігурувати за допомогою утиліти з офіційного сайту. Но у мене налаштувати його не вийшло, а от вбити - так. Отже, це була передісторія. А що ми маємо. Роутер який не піднімається і не працює, тільки блимає світлодіод POWER, що сигналізує про неможливість завантаження роутера. Я не буду описувати абсолютно всіх кроків по відновленню. Я лише дам посилання на ті статті, які мені допомогли відновити роботу даного роутера. Що ми робимо найперше. 1. Ми будемо відновлювати роботу роутера за допомогою JTAG & TTL to UART (RS232) портів роутера. 2. Де саме вони розміщенні на роутері та як підключити їх до комп'ютера можна знайти ось тут        2.1 Розміщення послідовного порта та його контакти описані тут        2.2 Розміщення та розпіновка контактів JTAG ось тут 3. По цій статті можна зробити кабель JTAG і відн...

Інсталяція Xubuntu 14.04 з iso образу за допомогою grub4dos

В даній статті я коротко опишу процес інсталяції Xubuntu 14.04 за допомогою образу інсталяційного диску xubuntu-14.04.1-desktop-i386.iso, не записуючи даний образ ні на DVD, ні на FlashDrive. Я не хотів записувати даний образ, мені потрібно було просто встановити систему і все. Чому я використовую для встановлення grub4dos? У мене уже є готова завантажувальна флешка з grub4dos. Тому я вирішив її використати. Я не буду вдаватися в подробиці створення завантажувальної флешки з grub4dos, тому для роботи даної інструкції потрібно, щоб флешка уже була готова. УВАГА! Перший мій варіант встановлення, коли образ диску Xubuntu розміщується на жорсткому диску не спрацював, тому що інсталятор завжди хотів розмонтувати усі розділи диску, який був вказаний як диск для встановлення. Тому потрібно файл образ розмістити на флешці. Його розмір приблизно 1Гб. Звертаю увагу, що я встановлював 32 розрядну систему. Отже підготовка до встановлення. 1. Скачати інсталяційний образ Xubuntu. ( xubuntu-1...

Основи роботи з iptables

В даній статті буду розглядати, на конкретних прикладах, як можна налаштувати фаєрвол на сервері. 1. Обмеження кількості конектів до шлюза за допомогою iptables. Обрізаєм злісних качальників торентами: Шлюз: Slackware Linux 13.37 Linux rm-proxy 2.6.37.6-smp #2 SMP Sat Apr 9 23:39:07 CDT 2011 i686 GNU/Linux iptables-1.4.10 Кількість конектів будем обмежувати в таблиці filter, ланцюгу FORWARD для конкретного ІР. Так, як всі з'єднання, які ідуть в інтернет проходять даний ланцюг. iptables  -A FORWARD -p tcp  --syn  -s 192.168.0.160 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j REJECT Для контролю потрапляння пакетів в даний ланцюг використовуємо: iptables -vL   6221 299K REJECT tcp -- any any 192.168.0.160 anywhere tcp flags:FIN,SYN,RST,ACK/SYN #conn/32 > 5 reject-with icmp-port-unreachable

NetCat - проста утиліта обміну повідомленями

Прочитав на одному форумі про таку утиліту, як NetCat і одразу захотілось спробувати її в дії. Її роботу перевіряв на віртуальній машині. Я собі на дестопний Slackware проінсталював VirtualBox і на нього поставив також Slackware тільки вже без графіки. Отже, для того, щоб обмінюватись повідомленні потрібно на одній системі запустити утиліту nc в режимі прослуховування мережевого порта, номер якого вибираєте самі з числа тих, які є не зайняті. Для цього виконуємо команду: nc -l -p 1234 -l    опція, яка вказує утиліті прослуховувати локальний інтерфейс -p  опція, яка вказує на якому порті чекати з'єднання Для перевірки чи справді прослуховується локальний інтерфейс на даному порті можна виконати команду: root@darkstar:/home/kkk# netstat -a | grep 1234 tcp        0      0 *:1234                  *:*  ...

Встановлення та налаштування локального кешуючого проксі сервера SQUID

В даній статті я опишу процес встановлення та налаштування локального кешуючого проксі-сервера. Налаштування доступу по MAC-адресах, та обмеження швидкості внутрішніми засобами проксі-сервера. Дана стаття буде наочним посібником, який можна буде використати на практиці, а також і допоможе мені згадати, як я це все робив років з 5 назад.   Всі дії будуть виконуватись на базовій системі Slackware 13.37. Я чомусь подружився з цією системою, напевно, за її класичність, а також за простоту. Тому встановлення всіх необхідних компонентів і програм я буду проводити з початкових кодів, які можна отримати з офіційних сайтів, в нашому випадку з  www.squid-cache.org . Для тих хто працює з дистрибутивами rpm або deb сумісними встановлення усіх програм потрібно проводити з офіційного репозиторію, бо такі дистрибутиви, наскільки мені відомо, дуже болісно переносять встановлення програм з початкових кодів. Отже, завантажуємо систему на якій будемо прово...