Новости:

SMF - Just Installed!

Главное меню

Последние сообщения

#11
Командой interface print получаем список сетевых интерфейсов, чтобы убедиться что они определились в системе.
Код: bash
interface print
ЦитироватьFlags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU
0 R ether1 ether 1500

Активируем интерфейс
Код: bash
interface enable 0

Затем непосредственно вводим параметры IP конфигурации для каждого интерфейса. У нас имя интерфейса ether1
Вводим IP адрес, маску подсети и указываем имя интерфейса
Адрес сети и broadcast рассчитывается автоматически.


Код: bash
ip address add address=192.168.0.1/24 interface=ether1
Код: bash
ip address print
ЦитироватьFlags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.1/24 192.168.0.0 192.168.0.255 ether1

Добавим шлюз по умолчанию
Код: bash
ip route add gateway=192.168.1.1
Тут нужно предположить что у нас два интерфейса на котором настроен адрес из подсети 192.168.1.1

Еще можно сразу настроить DNS
Код: bash
ip dns set primary-dns=192.168.1.1 secondary-dns=192.168.1.5
Код: bash
allow-remote-requests=yes


Еще хочу остановиться на том, что желательно сменить учетную запись admin на какую-то свою. Тем более это нужно сделать если у вас поднят SSH наружу.
Создадим нового пользователя
Код: bash
user add name=crash password=G@1NiW@ group=full
#12
Сетевое оборудование / Настройки DHCP-сервера на Mikr...
Последний ответ от George - Март 13, 2025, 12:21
Для настройки DHCP-сервера на MikroTik из командной строки можно использовать следующий пример:

Создать пул адресов, из которого будут раздаваться адреса в аренду. Для этого нужно ввести команду
Код: bash
/ip pool add name=dhcp-pool1 ranges=192.168.15.101-192.168.15.200
. 1
Создать DHCP-сервер. Для этого нужно ввести команду
Код: bash
/ip dhcp-server add address-pool=dhcp-pool1 disabled=no interface=ether1-LAN1 lease-time=3d name=dhcp-server1
. 1
Задать настройки, которые должен раздавать DHCP-сервер: шлюз, DNS и WINS-серверы. Для этого нужно ввести команду
Код: bash
/ip dhcp-server network add address=192.168.15.0/24 dns-server=192.168.15.10 gateway=192.168.15.1 netmask=24 wins-server=192.168.15.10
. 1
Перед использованием команд необходимо изменить адреса и названия интерфейсов на нужные. 2

Для проверки работоспособности DHCP-сервера нужно подключиться компьютером к заданному интерфейсу, выставить в его настройках получение IP-адреса с помощью DHCP-сервера и проверить, получены ли заданные настройки.
#13
mikroTik / Настройка VRRP MikroTik
Последний ответ от George - Март 25, 2024, 05:33
Я настраивал эту схему дня два, как обычно перекопав кучу интернета)) Оставлял открытыми вкладки с разными статьями, чтоб потом собрать рабочую инструкцию, поскольку обычно что-то все равно надо доделывать, или собирать из разных мест. Но я заболел, к инету не подходил и, в итоге, попробую объяснить на пальцах, просто сделав экспорт своей конфигурации..

У меня 2 интерфейса, на одном физическом, просто 1 в "native vlan" а второй тегированный

1. Создаем бриджи
Код: bash
/interface bridge
add arp=proxy-arp name=bridge-LAN port-cost-mode=short
add arp=proxy-arp name=bridge-vlan5

2. Назовем интерфейсы понятно
Код: bash
/interface ethernet
set [ find default-name=ether2 ] name=LAN
set [ find default-name=ether4 ] name=WAN

3. Собственно сами vrrp, на 2 разные подсети, одна из которых скрыта в 5 vlan, со скриптами, первый из которых (on backup) гасит WAN интерфейс и понижает приоритет vlan5 интерфейсу, при переходе в бэкап, чтобы и этот интерфейс перехватился вторым роутером, при проблемах с основным. On-master, т.е. при возвращении "главенствующей" роли, запускается скрипт, отдельный, который включает обратно WAN и отправляет письмо о смене главного роутера
Код: bash
/interface vrrp
add arp=proxy-arp interface=bridge-vlan5 name=vrrp-cloud priority=20 vrid=6
add interface=bridge-LAN name=vrrp10 on-backup=\
    "interface disable WAN\r\
    \ninterface vrrp set vrrp-cloud priority=10;" on-master="system script run\
    \_Send_vrrp;\r\
    \ninterface vrrp set vrrp-cloud priority=20;" priority=200

4. Настройка vlan
Код: bash
/interface vlan
add interface=bridge-LAN name=vlan5 vlan-id=5

5. Блокируем DHCP между мостами))
Код: bash
/interface bridge filter
add action=drop chain=forward dst-port=67-68 ip-protocol=udp mac-protocol=ip \
    out-bridge=bridge-vlan5
add action=drop chain=forward dst-port=67-68 ip-protocol=udp mac-protocol=ip \
    out-bridge=bridge-LAN

6. Оставшаяся часть настройки vlan
Код: bash
/interface bridge port
add bridge=bridge-LAN interface=LAN internal-path-cost=10 path-cost=10
add bridge=bridge-vlan5 interface=vlan5
/interface bridge vlan
add bridge=bridge-LAN untagged=LAN vlan-ids=1
add bridge=bridge-LAN tagged=LAN vlan-ids=5

Ну и скрипт Send_vrrp, который, как я уже говорил, включает WAN и отправляет письмо, в котором понятно, какой из микротов сейчас стал главный

Код: bash
/system script
add dont-require-permissions=no name=email_config owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
    export file=full_config show-sensitive\
    \n/tool e-mail send to=\"admin@yourdomain.com\" subject=\"\$[/system ide\
    ntity get name] export\" body=\"\$[/system clock get date] config file\" f\
    ile=full_config.rsc"
add dont-require-permissions=no name=Send_vrrp owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
    interface enable WAN;\
    \n#:delay 10s;\
    \n/tool e-mail send to=\"admin@yourdomain.com\" \\\
    \n subject=\"\$[/system identity get name] VRRP status \$[/system clock ge\
    t date] \$[/system clock get time]\" \\\
    \n body=\"\$[/system clock get date] VRRP status changed! Main system now \
    is \$[/system identity get name]\""

Это настройка первого роутера. В принципе, настройка второго отличается только тем, что у него другие параметры приоритета vrrp, вот скрипт для второго:

Код: bash
/interface vrrp
add arp=proxy-arp interface=bridge-vlan5 name=vrrp-cloud priority=11 vrid=6
add interface=bridge-LAN name=vrrp10 on-backup=\
    "interface disable WAN;\r\
    \ninterface vrrp set vrrp-cloud priority=11;" on-master="system script run\
    \_Send_vrrp;\r\
    \ninterface vrrp set vrrp-cloud priority=21;" priority=110
#14
mikroTik / Защита от DDOS MikroTik
Последний ответ от George - Март 25, 2024, 03:40
Добрый день, уважаемые читатели!
Собственно скрипт, копируем, вставляем в блокнот, сохраняем как ddos.rsc, закидываем через winbox и импортируем

Код: bash
/import file-name=ddos.rsc

Код: bash
/ip firewall address-list
add list=ddos-attackers
add list=ddos-target
/ip settings set tcp-syncookies=yes
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=detect-ddos
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack
add action=add-dst-to-address-list address-list=ddos-target address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
/ip firewall raw
add action=drop chain=prerouting dst-address-list=ddos-target src-address-list=ddos-attackers
1-3 создаем два списка адресов, в которые будут попадать спамеры и жертвы (ведь спам может быть направлен и не на вас, а на сторонний ресурс).

4 включаем кэш для отслеживания SYN-ACK пакетов.

5-10 правила определяющие кто и как часто пытается нас или через нас спамить кого-либо малыми пакетами. Если это не спам, то пакетик считается легитимным и продолжает обрабатываться в обычном режиме.

11-12 отдельная цепочка прероутинга, в которой спам начинает отбрасываться.
#15
Настройки *nix (почта, web, система etc) / fastpanel смена ip
Последний ответ от George - Март 14, 2024, 05:11


Есть такая панель управления как FastPanel, есть необходимость сменить основной или другие айпи сервера.

 

    это меняем в конфигах

Код: bash
egrep -rl "10.10.10.10" /etc/ | xargs -i sed -r -i 's/10.10.10.10/20.20.20.20/g' '{}'
2. далее нужно сменить в базе sqllite , но самое простое это с помощью встроенной утилиты:
Код: bash
mogwai change_ip --from=10.10.10.10 --to=20.20.20.20
проверяем конфиги и ребутим

#16
mikroTik / Синхронизация настроек mikroti...
Последний ответ от George - Март 12, 2024, 06:55
Постановка задачи

Есть два роутера mikrotik сконфигурированных в отказоустойчивой конфигурации при помощи VRRP. Необходимо синхронизировать конфигурацию Firewall с мастера на slave.
Решение

На мастере будет запускаться (через sheduler) скрипт, который будет делать экспорт конфигурации в файл и затем будет заливать его на slave по ftp.

На slave будет запускаться скрипт, который импортирует конфигурацию из залитого с мастера файла.

Для проверки синхронизации в разделе /ip firewall address-list будет создаваться фиктивный лист с названием sync_timestamp (в состоянии disabled). Во время экспорта в комментарий к указанному листу будет добавлена дата и время экспорта. Таким образом по этому листу можно сверять версии конфигурации.

Скрипт export_firewall_to_slave на мастере:

Код: bash
:local ftpuser "user"
:local ftppassword "password"
:local ftphost "192.168..."
:local config "master"

# set timestamp for monitoring
:if ( [:len [/ip firewall address-list find where list=sync_timestamp address="0.0.0.0"  disabled=yes]] = 0 )   do={
    /ip firewall address-list add  list=sync_timestamp address="0.0.0.0"  disabled=yes
}
:local date [/system clock get date]
:local time  [/system clock get time]
:local timestamp "$date_$time"
/ip firewall address-list set [/ip firewall address-list find where list=sync_timestamp  address="0.0.0.0"   disabled=yes] comment="timestamp: $timestamp"

#export config
/ip firewall
export file="$config"
/

# put config to slave
tool fetch address=$ftphost user=$ftpuser password=$ftppassword mode=ftp src-path=($config.".rsc") dst-path=($config.".rsc")  upload=yes;

Скрипт apply_master_config на slave:

Код: bash
:local config "master.rsc"

:if ([:len [/file find name=$config]] > 0) do={
  :put "Found config from master!"
  /ip firewall filter remove  [/ip firewall filter find dynamic=no]
  /ip firewall nat remove  [/ip firewall nat find dynamic=no]
  /ip firewall raw remove  [/ip firewall raw find dynamic=no]
  /ip firewall mangle remove  [/ip firewall mangle find dynamic=no]
  /ip firewall address-list remove  [/ip firewall address-list find dynamic=no]
  /ip firewall layer7-protocol remove [/ip firewall layer7-protocol find]
  /import $config
  /file remove $config
} else { :put "Config form master ($config) not found" }

На slave нужно создать пользователя с разрешением на ftp, и добавить скрипты в sheduler (на мастер можно раз в сутки, на slave раз в час).

Эта инструкция была найдена на просторах интернета
Ну и как обычно, скрипт приема пришлось дорабатывать. Я выложил уже доработанную версию, в оригинале не очищало 2 таблицы, и импорт падал с ошибкой параметр существует. При этом остальные правила оказывались удаленными
#17
mikroTik / От: Настройка Firewall Mikroti...
Последний ответ от George - Март 11, 2024, 01:05
Входим в редактирование FW
Код: bash
/ip firewall filter
Пакеты проходят по списку правил по порядку, сверху вниз. Если пакет соответствует какому-то правилу, то он прекращает движение по цепочке. Из этого следует важный вывод - первыми в цепочке должны быть правила, которые охватывают максимальный объем трафика, чтобы он дальше не обрабатывался устройством. Примером такого правила является разрешение пакетов уже установленных (established) или связанных (related) соединений, которые ранее были разрешены каким-то правилом. Повторно проверять по всем правилам их не нужно. Сделаем такое правило для цепочки input - входящие соединения роутера.
Код: bash
add action=accept chain=input comment="accept establish & related" connection-state=established,related
Отбрасываем все неверные (Invalid) пакеты
Код: bash
add action=drop chain=input comment="drop invalid" connection-state=invalid
Разрешаем ICMP (ping). У меня он обычно закрыт (drop)
Код: bash
add action=accept chain=input comment="accept ICMP" protocol=icmp
Создаем заключительное правило для цепочки input, которое будет блокировать все запросы, пришедшие не из локальной сети. В моем примере у меня локальная сеть подключена к бриджу bridge1-lan. В него входят все порты, подключенные в локалку.
Код: bash
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
На текущий момент мы запретили все запросы из вне к роутеру, кроме пингов. При этом доступ из локальной сети полный. Настроим теперь правила для транзитного трафика цепочки forward. Здесь по аналогии с input первыми идут правила для established, related, invalid пакетов.
Код: bash
add action=accept chain=forward comment="accept established,related" connection-state=established,related
Код: bash
add action=drop chain=forward comment="drop invalid" connection-state=invalid
Теперь запретим все запросы из внешней сети, связь с которой через интерфейс ether1-wan к локальной сети. dstnat это проброс портов, о нем отдельная тема.
Код: bash
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
Разрешаем 80 и 443 порты из локальной сети:
Код: bash
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
И разрешаем 53 (DNS) порт
Код: bash
add action=accept chain=forward comment="accept dns from LAN" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp
Все остальное отбрасываем
Код: bash
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan
#18
mikroTik / Mikrotik edit/set как удалить/...
Последний ответ от George - Март 11, 2024, 12:49
Команды для консоли MikroTik:
Переходим в нужный раздел
# Переходим в разде IP/Firewall/NAT
Код: bash
/ip firewall nat

Удаляем параметр у элемента
# Удаляем параметр "dst-address" для первого элемента в списке (номер 0):
Код: bash
unset 0 dst-address


Всё то же самое, что и выше, но одной командой:
Код: bash
/ip firewall nat unset 0 dst-address

ПАМЯТКА на всякий случай:

Вывести список элементов текущего раздела:
Код: bash
print

Установить значение dst-address для первого элемента (номер 0), находясь в разделе /ip firewall nat:
Код: bash
set 0 dst-address=192.168.88.32

Удалить значение dst-address для первого элемента (номер 0), находясь в любом разделе:
Код: bash
/ip firewall nat unset 0 dst-address
#19
mikroTik / Настройка Firewall Mikrotik
Последний ответ от George - Март 11, 2024, 11:55
Сначала дропаем всё подозрительное, ненормальное, и противоестественное, такое как invalid connection, запросы на мой DNS, листы DROP и так далее.
Далее защиты от сканера портов, от DDoS и Syn атак и т.д.
Следом правила по разграничиванию доступа, запрет ненормалых подключений по VPN....
Потом разрешающие и запрещающие правила для конкретных сетей и пользователей
Последнее правило для запрета всего остального, что не попало под правила выше.
Блокировка любителей сканировать порты:

Код: bash
>/ip firewall filter add chain=input psd=21,3s,3,1 action=add-src-to-address-list address-list=psd

Код: bash
/ip firewall raw add chain=prerouting src-address-list=psd action=drop

Так мы дропнем его навсегда

блокировка DDoS

Код: bash
/ip firewall address-list
Код: bash
add list=ddos-attackers
Код: bash
add list=ddos-target
Код: bash
/ip settings set tcp-syncookies=yes
Код: bash
/ip firewall filter
Код: bash
add chain=forward connection-state=new action=jump jump-target=detect-ddos
Код: bash
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
Код: bash
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack
Код: bash
add action=add-dst-to-address-list address-list=ddos-target address-list-timeout=10m chain=detect-ddos
Код: bash
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
Код: bash
/ip firewall raw
Код: bash
add action=drop chain=prerouting dst-address-list=ddos-target src-address-list=ddos-attackers
1-3 создаем два списка адресов, в которые будут попадать спамеры и жертвы (ведь спам может быть направлен и не на вас, а на сторонний ресурс).

4 включаем кэш для отслеживания SYN-ACK пакетов.

5-10 правила определяющие кто и как часто пытается нас или через нас спамить кого-либо малыми пакетами. Если это не спам, то пакетик считается легитимным и продолжает обрабатываться в обычном режиме.

11-12 отдельная цепочка прероутинга, в которой спам начинает отбрасываться.

Особенно разжевывать или тюнить эту схему не вижу смысла - у всех будут разные задачи и разный результат, который должен получиться. В моем случае мне этого вполне достаточно. Не забудьте в IP -> Firewall поднять эти правила в самый верх. У меня еще выше этих правил стоят правила BLOCK и WhiteList - где, соответственно, черный список - это те адреса, которые мне совсем не нравятся, а белый - это список моих внешних адресов, которые нет смысла пропускать через все остальные правила фаервола. Далее должны расположиться вот эти 4 правила по отсеиванию флуда, а далее уже все остальные с пробросом к внутренним ресурсам.

#20
Настройка HAProxy Server
Чтобы начать настройку, подключитесь к серверу HAProxy по ssh и измените файл конфигурации в ./etc/haproxy/haprxy.cfg

Код: bash
sudo vi /etc/haproxy/haprxy.cfg
Чтобы назначить заголовок, добавьте следующую строку в раздел бэкенда:X-Forwarded-For

Код: vim
backend Apache2_Server
    mode http
    http-request add-header X-Forwarded-For %[src]
    http-request set-header X-Forwarded-Port %[dst_port]
Сохраните и закройте файл

Настройка веб-сервера Apache2
Затем подключите ssh remote к вашему веб-серверу Apache2 и включите модуль, набрав команду:remoteip

Код: bash
sudo a2enmod remoteip
remoteip_module – заменяет исходный IP-адрес клиента для соединения со списком IP-адресов агента пользователя, представленным сервером HAProxy. Для получения дополнительной информации>>

Если модуль remoteip не существует в вашей системе Ubuntu, то установите последнюю версию веб-сервера Apache2, используя следующее руководство:

https://linuxbeast.com/tutorials/aws/install-apache2-on-amazon-ec2-ubuntu-18-04/
После того, как вы закончите установку модуля remoteip, измените конфигурационный файл Apache2 в ./etc/apache2/apache2.conf

Код: bash
sudo vi /etc/apache2/apache2.conf
Далее добавьте в последнюю строку следующее:

Код: vim
RemoteIPHeader X-Forwarded-For
Сохраните и закройте файл.

Проверьте конфигурацию Apache2 с помощью:

Код: bash
sudo apache2ctl configtest
Если все хорошо. Затем перезапустите службу Apache2, чтобы изменения вступили в силу.

Код: bash
sudo systemctl apache2 restart
🡱 🡳

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.