четверг, 5 октября 2023 г.

Ubuntu настройка в качестве Маршрутизатора (DHCP,DNS,NAT,Iptables) статика и dhcp + vlan

 



Конфиги без вланов просто статикой и с vlanами:

1) Net

sudo nano /etc/netplan/**** (имя интерфейса)

Если просто статика то:

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses:
      - 192.168.99.1/24
      nameservers:
        addresses: []
        search: []
  version: 2

Дополнение: 
Если нужно добавить вланы примерно такой конфиг для двух вланов 100 и 200 со статикой на внешнею сетевую enx28ee520513a4.
Вланы идут в ТРАНКЕ!

network:
   ethernets:
       enp8s0:
           dhcp4: true
       enx28ee520513a4: {}
   version: 2
   vlans:
       enx.100:
           id: 100
           link: enx28ee520513a4
           addresses: [192.168.100.2/24]
       enx.200:
           id: 200
           link: enx28ee520513a4
           addresses: [192.168.200.2/24]



2) DHCP

sudo apt install isc-dhcp-server

/etc/dhcp/dhcpd.conf


default-lease-time 600;
max-lease-time 7200;

##первый диапазон для vlan 100
subnet 192.168.100.0 netmask 255.255.255.0 {
       range 192.168.100.150 192.168.100.200;
       option domain-name-servers 192.168.100.1;
       option routers 192.168.100.1;
}

##второй диапазон для vlan 200
subnet 192.168.200.0 netmask 255.255.255.0 {
       range 192.168.200.150 192.168.200.200;
       option domain-name-servers 192.168.200.1;
       option routers 192.168.200.1;
}


=====

/etc/default/isc-dhcp-server 
                                                                             
# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid

# Additional options to start dhcpd with.
#       Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp0s8" (если в vlan то указываем имя влана например enx.100) если несколько вланов то просто перечисляем так: 
INTERFACESv4="enx.100 enx.200"
INTERFACESv6=""

====

Посмотреть выданные ip адреса:

sudo nano /var/lib/dhcp/dhcpd.leases

3) DNS

sudo apt install bind9

/etc/bind/named.conf.options

acl testLan {
        192.168.100.0/24;
        192.168.200.0/24;
        localhost;
};

options {
        directory "/var/cache/bind";

        forwarders {
                1.1.1.1;
                8.8.4.4;
        };

        recursion yes;
        allow-query { testLan; };

        dnssec-validation auto;
        listen-on-v6 { any; };
};

4)NAT

sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

enp0s3 //интерфейс который смотрит в интернет

sudo nano /etc/sysctl.d/99-sysctl.conf

Раскоментировать 
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Затем: 

sudo sysctl -p

Решение проблемы с русской кодировкой в Wine

Нужно лишь добавить аргумент перед запуском приложения:

env LC_ALL=ru_RU.CP1251 

Например: 
env LC_ALL=ru_RU.CP1251 wine start.exe -ob "PostgreSQL Ansi" -hb 111.111.111.111 -pb 5432 -db megabil -u exec -w pepperexec "c:\work\bs\billi.exe" 

Настройка iptables в Linux

 iptables — это утилита командной строки, используемая для управления встроенным брандмауэром netfilter, доступным в ядре Linux, начиная с версии 2.4. Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил. Обеспечить безопасность сервера или инфраструктуры, означает обеспечить отказоустойчивость и стабильность работы ваших серверов и приложений, что крайне чувствительно для бизнеса или персональных проектов.

В глобальной сети огромное количество угроз — боты, периодически прощупывают стандартные точки входа в системы, хулиганы, любопытные, взломщики — люди, целенаправленно пытающиеся получить несанкционированный доступ к информационным системам. Задача iptables — исключить либо хотя бы минимизировать негативное воздействие со стороны разного рода правонарушителей.


Установка iptables

В образах CentOS 8 64-bit и CentOS 8 Stream 64-bit iptables отсутствует, поскольку разработчики отказались от него в пользу более нового пакета — nftables. Его поддержка на уровне ядра доступна с версии 3.13. Если существует необходимость использовать именно iptables, требуется выполнить следующий порядок действий:

yum install iptables-services

Включение сервиса в автозагрузку:

systemctl enable iptables

Запуск сервиса:

systemctl start iptables

Межсетевой экран готов к использованию.

Синтаксис iptables

Сетевой экран iptables очень гибок в настройке и имеет огромное количество разнообразных ключей и опций. Общий вид управляющей команды:

iptables таблица команда цепочка критерии действие

Рассмотрим каждый элемент в отдельности.

Пакет

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

Цепочки

Существует 5 видов цепочек:

  • PREROUTING — предназначена для первичной обработки входящих пакетов, адресованных как непосредственно серверу, так и другим узлам сети. Сюда попадает абсолютно весь входящий трафик для дальнейшего анализа.
  • INPUT — для входящих пакетов, отправленных непосредственно этому серверу.
  • FORWARD — для проходящих пакетов, не адресованных этому компьютеру, предназначены для передачи следующему узлу, в случае, если сервер выполняет роль маршрутизатора.
  • OUTPUT — для пакетов, отправленных с этого сервера.
  • POSTROUTING — здесь оказываются пакеты, предназначенные для передачи на другие узлы сети.

Также есть возможность создавать и удалять собственные цепочки, в большинстве случаев, в этом нет необходимости. Названия цепочек пишут заглавными буквами.

Таблицы

В netfilter существуют 5 типов таблиц, каждая из них имеет свое назначение.

Таблица raw

Содержит цепочки PREROUTING и OUTPUT, здесь производятся манипуляции с пакетами до задействования механизма определения состояний.

Таблица mangle

Предназначена для модификации заголовков сетевых пакетов, таких параметров как ToS (Type of Service), TTL (Time To Live), MARK. Содержит все существующие пять цепочек.

Таблица nat

Используется для трансляции сетевых адресов, т.е. подмены адреса получателя/отправителя, применяется, если сервер используется в качестве маршрутизатора. Содержит цепочки PREROUTINGOUTPUTPOSTROUTING.

Таблица filter

Основная таблица, служит для фильтрации пакетов, именно здесь происходит принятие решений о разрешении или запрете дальнейшего движения пакета в системе. Используется по умолчанию, если явно не указано имя другой таблицы. Содержит цепочки INPUTFORWARD и OUTPUT.

Таблица security

Используется для взаимодействия с внешними системами безопасности, в частности с SELinux и AppArmor. Содержит цепочки INPUTOUTPUT и FORWARD.

Имена таблиц принято писать строчными буквами.

Действия

Правилами задается поведение для iptables, каким образом поступить с тем или иным пакетом при попадании под заданные критерии. Решения, которые принимает брандмауэр, называют действиями, самые распространенные из них:

  • ACCEPT — разрешить дальнейшее прохождение пакета по системе;
  • DROP — выбросить пакет без уведомления отправителя;
  • REJECT — отказать в прохождении пакета с уведомлением отправителя, такой способ может привести к дополнительным затратам ресурсов процессора, поэтому, в большинстве случаев рекомендуется использовать DROP;
  • LOG — зафиксировать информацию о пакете в файле системного журнала;
  • MARK — позволяет помечать определенные пакеты, например для маршрутизации, данная метка перестает существовать, как только пакет покинет брандмауэр;
  • CONNMARK — то же самое, что и MARK, только для соединений;
  • QUEUE — отправляет пакет в очередь приложению для дальнейшего взаимодействия;
  • RETURN — прекращение движения пакета по текущей цепочке и возврат в предыдущую цепочку. Если текущая цепочка единственная — к пакету будет применено действие по умолчанию;
  • REDIRECT — перенаправляет пакет на указанный порт, в пределах этого же узла, применяется для реализации «прозрачного» прокси;
  • DNAT — подменяет адрес получателя в заголовке IP-пакета, основное применение — предоставление доступа к сервисам снаружи, находящимся внутри сети;
  • SNAT — служит для преобразования сетевых адресов, применимо, когда за сервером находятся машины, которым необходимо предоставить доступ в Интернет, при этом от провайдера имеется статический IP-адрес;
  • MASQUERADE — то же, что и SNAT, но главное отличие в том, что может использоваться, когда провайдер предоставляет динамический адрес, создаёт дополнительную нагрузку на систему по сравнению с SNAT;
  • TOS — позволяет управлять битами в одноименном поле заголовка IP-пакета;
  • ULOG — более продвинутый вариант записи информации, может писать как в обычный текстовый файл, так и в базу данных;
  • TTL — используется для изменения значения поля одноименного заголовка IP-пакета, устанавливает время жизни пакета.

Основные команды iptables

Как посмотреть список правил iptables

iptables --line-numbers -L -v -n

Ключ —line-numbers нумерует строки, -L выводит список правил всех цепочек, -v отвечает за детализацию вывода, -n выводит IP-адреса и номера портов в числовом формате.

Как удалить правило в iptables:

В первую очередь необходимо определить номер правила, которое требуется удалить, выводим список действующих правил командой:

iptables --line-numbers -L -v -n

Предположим, требуется удалить правило 4 в цепочке INPUT:

iptables -D INPUT 4

Как сохранить правила iptables

Утилита iptables, как и маршрутизаторы Cisco, не сохраняет правила, если это явно не указать и после перезагрузки возвращается в предыдущее состояние. Установим пакет:

apt install iptables-persistent

В процессе установки на оба вопроса ответить Yes. Сохранить текущие правила:

service netfilter-persistent save

Система при следующей загрузке использует последние сохраненные правила.

Как восстановить правила

В процессе настройки брандмауэра, по разным причинам, возникает необходимость вернуться к заведомо рабочим, испытанным правилам. Сервис netfilter-persistent сохраняет их в файле /etc/iptables/rules.v4, если не успели сохранить активные правила, значит в файле предыдущая версия, восстанавливаем:

iptables-restore < /etc/iptables/rules.v4


Примеры настройки iptables

В данном разделе рассмотрим задачи, с которыми придется столкнуться, работая с iptables.

Как заблокировать IP-адрес в iptables

Допустим, необходимо заблокировать компьютер с IP-адресом 172.10.10.1, тогда правило будет выглядеть следующим образом:

iptables -A INPUT -s 172.10.10.1 -j DROP

Как разрешить IP-адрес в iptables

Необходимо разрешить весь трафик к серверу для клиента с IP-адресом 192.168.111.1:

iptables -A INPUT -s 192.168.111.1 -j ACCEPT

Как открыть порт в iptables

Предположим, что политика по умолчанию — блокировать все, что явно не разрешено. Откроем порты веб-сервера для обеспечения работы HTTP протокола — порт 80, и поддержки HTTPS протокола совместно с SSL — порт 443. Также для доступа к серверу по SSH откроем порт 22. Эту задачу можно решить как минимум двумя способами: создать однострочное правило, либо прописать правила по каждому из портов, рассмотрим оба. В одну строку:

iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT

При использовании расширения multiport, всегда необходимо использовать критерий -p tcp или -p udp, таким образом, одной строкой можно указать до 15 разных портов через запятую. Важно не путать критерии —-dport и —-dports. Первый из них используется для указания одного порта, второй сразу для нескольких, аналогично с —sport и —sports.

Вариант многострочной записи — для каждого порта свое правило:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Управление службами systemctl

 В этой статье нас интересуют только модули, которые имеют суффикс .service, то есть службы. 

Благодаря утилите systemctl список сервисов легко получить:

systemctl list-units --type=service

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

Запуск и остановка служб

Чтобы запустить службу используйте команду start. Например, для запуска apache2 выполним:

sudo systemctl start apache2.sevice

или 

sudo systemctl start apache2

Для установки службы нужно использовать команду stop. На примере apache2:

sudo systemctl stop apache2.service

Перезапуск и перезагрузка

Для того, чтобы перезапустить службу, используйте команду restart. Например, мы внесли изменения в конфигурацию веб-сервера и теперь нам нужно перезапустить apache2, нужно выполнить:

sudo systemctl restart apache2.service

Некоторые приложения поддерживают перезагрузку файлов конфигурации без перезапуска всей службы. В таком случае вы можете использовать команду reload. Например, если вы работаете c nginx в качестве веб-сервера, после изменения конфигурационных файлов можно выполнить reload:

sudo systemctl reload nginx.service

Но если вы не уверены, умеет ли служба перезагружать конфигурацию, воспользуйтесь командой reload-or-restart. В таком случае systemd перезагрузит конфигурацию или всю службу:

sudo systemctl reload-or-restart apache2.service

Включение и отключение

Основное предназначение диспетчера systemd — запускать службы при загрузке системы. Но все команды, перечисленные выше, относились к работе только во время текущего сеанса. 

Чтобы включить автозагрузку приложения, воспользуйтесь командой enable. После этого systemd создаст символическую ссылку из служебного файла — /etc/systemd/system — в место, где диспетчер ищет приложения для автозапуска.

sudo systemctl enable apache2.service 

Чтобы отключить автозапуск, используйте disable. При этом символическая ссылка будет удалена.

sudo systemctl disable apache2.service

Обратите внимание, что ни включение, ни отключение автозагрузки приложения не повлияют на работу службы в текущем сеансе.

Проверка статуса

Чтобы проверить статус службы в системе, нужно использовать команду status

Например, команда sudo systemctl status apache2.service отобразит статус, процессы в иерархии контрольных групп и фрагмент журнала.

Этого достаточно для того, чтобы проверить, корректно ли работает служба и устранить проблемы, если они возникают. 

Помимо развёрнутого отчёта о статусе службы диспетчер systemd также предоставляет методы для проверки конкретных статусов. Это позволяет обернуть множество проверок в скрипты и проще работать с результатом.

  • is-active. Проверяет, активен ли модуль. Возвращает active или inactive.
  • is-enabled. Проверяет, включена ли автозагрузка службы. Возвращает enabled или disabled.
  • is-failed. Проверяет, находится ли юнит в работе. Возвращает active, если всё работает корректно, failed — если ошибка. При этом вы можете получить также unknown или inactive, если служба была остановлена вручную.


среда, 4 октября 2023 г.

 Ventoy — это программа с открытым исходным кодом, предназначена для создания мультизагрузочной USB-флешки. По сравнению с другими инструментами, ventoy является многофункциональным. Он имеет такие функции как поддержка нескольких загрузок ОС, поддержка большего размера файла, поддержка различных операционных систем. Ventoy так же может быть установлен на USB флешку, локальный диск или SSD диск.

После того, как Ventoy установлен на USB, нет необходимости переформатировать флешку для записи новой ОС, достаточно просто скопировать файлы *.iso

Ventoy поддерживает собственное загрузочное меню как для Legacy, так и для UEFI и поддерживает более 160+ ISO-образов.

В этой инструкции мы покажем, как загрузить и установить Ventoy на USB из системы Ubuntu.

Установка Ventoy на Ubuntu

Приложение Ventoy необходимо загрузить на свой компьютер, прежде чем вы сможете установить его на съемный USB-накопитель.

Эта инструкция будет справедлива как для Ubuntu, так и других дистрибутивов Linux.

  • Скачайте Ventoy из официальных релизов GitHub. Либо воспользуемся терминалом:
wget https://github.com/ventoy/Ventoy/releases/download/v1.0.87/ventoy-1.0.87-linux.tar.gz
  • Извлеките tar.gz файл, который вы скачали:
sudo tar -xvf ventoy-1.0.87-linux.tar.gz
  • Перейдем в распакованный каталог:
cd ventoy-1.0.87
  • Посмотрим файлы и каталоги с помощью команды ls:

Для нас важен VentoyWeb.sh так как мы собираемся открыть интерфейс Ventoy из браузера.

  • Запустите скрипт VentoyWeb.sh следующей командой:
./VentoyWeb.sh

Вы увидите что загруженная вами версия сервера Ventoy запущена и работает по адресу:

  • Откройте свой браузер и перейдите по указанному адресу http://127.0.0.1:24680

Нас встретит следующий интерфейс

Веб-интерфейс Ventoy

В строке Устройство выбираем нашу флешку и нажимаем на кнопку Установить, тем самым мы запишем Ventoy на нашу флешку.

ВНИМАНИЕ: убедитесь, что на флешке нет ничего важного! Возможно, вы потеряете все данные на флешке или диске во время установки Ventoy.

Ventoy выдаст предупреждение:

Предупреждение о форматировании флешки или диска

Он попросит вас 2 раза подтвердить шаг, просто нажмите кнопку ОК.

Сообщение об успехе Ventoy

После установки Ventoy создаст два раздела на USB-диске. Чтобы просмотреть нашу USB-флешку, набираем следующие команды:

sudo lsblk

У меня это разделы sdg1 и sdg2

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931,5G  0 disk 
├─sda1   8:1    0     2G  0 part [SWAP]
├─sda2   8:2    0  44,2G  0 part /
├─sda3   8:3    0 181,9G  0 part /home
└─sda4   8:4    0 703,5G  0 part 
sdb      8:16   0 931,5G  0 disk 
├─sdb2   8:18   0     1K  0 part 
├─sdb5   8:21   0 730,2G  0 part 
└─sdb6   8:22   0 186,3G  0 part 
sdg      8:96   1  29,3G  0 disk 
├─sdg1   8:97   1  29,3G  0 part 
└─sdg2   8:98   1    32M  0 part 
sr0     11:0    1  1024M  0 rom
  • /dev/sdg1– Это представляет собой основной раздел, который должен содержать файлы ISO-образов для ОС, и он отформатирован в формате exFAT.
  • /dev/sdg2– Этот раздел размером 32 МБ содержит файлы загрузчика Ventoy.
sudo fdisk -l /dev/sdg
Диск /dev/sdg: 29,29 GiB, 31440961536 байт, 61408128 секторов
Disk model: DataTraveler 2.0
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x04c77068
Устр-во    Загрузочный   начало    Конец  Секторы Размер Идентификатор Тип
/dev/sdg1  *               2048 61342591 61340544  29,3G             7 HPFS/NTFS/exFAT
/dev/sdg2              61342592 61408127    65536    32M            ef EFI (FAT-12/16/32)

Теперь можно скопировать ISO-образы на USB-накопитель и наслаждаться возможностями и функциями Ventoy.

Закачиваем образы на Ventoy

Чтобы загрузить образ на USB-флешку с Ventoy, необходимо подключить USB-накопитель к компьютеру. После чего откроется файловый менеджер с нашим USB-диском. А затем переместить любую операционную систему Linux на USB-накопитель обычным копированием *.iso файлов.

Mission Center - Системный монитор

 


Mission Center

Mission Center — программа для мониторинга состояния использования CPU, RAM, GPU, дисков, сети, процессов.

Возможности

  • Мониторинг использования CPU: общая статистика и статистика по каждому ядру отдельно.
  • Просмотр процессов и потоков.
  • Мониторинг использования RAM и Swap.
  • Мониторинг использования дисков, расчет скорости записи и чтения.
  • Мониторинг использования сети.
  • Мониторинг использования видео-карты (GPU).
  • Просмотр информации о сетевых интерфейсах.
  • Вывод информации в графическом виде. Используется OpenGL.

Установка

Установка через Flatpak

Установка:

flatpak install flathub io.missioncenter.MissionCenter

Запуск:

flatpak run io.missioncenter.MissionCenter

Разработка

Исходный код:
  •  Open Source (открыт)
Языки программирования:
  • Rust
Библиотеки:
  • GTK
Лицензия:
  • GNU GPL
Приложение переведено на русский язык.

Сайт (скачать бесплатно):

missioncenter.io