Pull to refresh
2
Антон Дихтярук@AnthonyDS

IT

Send message

А будет здоро если они выпустят золотое и серебряное 🙂👍

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd>

Древние боги...

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

А что на счёт федерального закона №41-ФЗ?

# Настройка NFTABLES

Nftables является новым поколением межсетевых экранов Linux, пришедшим на смену iptables. Она отличается большей гибкостью, производительностью и удобством конфигурирования. В статье рассмотрим базовые шаги настройки и использование возможностей nftables.

## Основные понятия

### Таблицы

Таблица представляет собой контейнер для цепочек и объектов, используемых для фильтрации пакетов. Каждая таблица принадлежит определённому семейству адресов (`inet`, `ip`, `ip6`).

Пример таблицы:

```bash

table inet filter {

}

```

### Цепочки

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

Пример цепочки:

```bash

chain input {

type filter hook input priority 0; policy accept;

}

```

### Правила

Правила определяют условия обработки пакета и необходимые действия над ним. Простое правило блокировки всех исходящих подключений к внешнему миру выглядит следующим образом:

```bash

drop ip saddr != ::1 oifname lo

```

## Базовая настройка

Рассмотрим простой пример конфигурации, защищающей сервер:

### Шаг 1: Создание таблиц и цепочек

Создаем таблицу и основную цепочку:

```bash

nft add table inet filter

nft add chain inet filter input { type filter hook input priority 0 ; }

nft add chain inet filter output { type filter hook output priority 0 ; }

nft add chain inet filter forward { type filter hook forward priority 0 ; }

```

### Шаг 2: Добавление базовых правил

Разрешаем пакеты локального интерфейса и отказываем всем остальным пакетам по умолчанию:

```bash

nft add rule inet filter input iifname lo accept

nft add rule inet filter input ct state established,related accept

nft add rule inet filter input drop

```

### Шаг 3: Разрешение конкретных сервисов

Открываем доступ к SSH (порт 22):

```bash

nft add rule inet filter input tcp dport ssh accept

```

Для HTTPS (порт 443):

```bash

nft add rule inet filter input tcp dport https accept

```

### Шаг 4: Сохранение настроек

Чтобы изменения сохранились после перезагрузки системы, используем команду сохранения конфигурационного файла:

```bash

nft list ruleset > /etc/nftables.conf

systemctl enable nftables.service

```

## Полезные команды

- **Просмотр текущих правил**:

```bash

nft list ruleset

```

- **Удаление правила**:

```bash

nft delete rule inet filter input handle 1

```

- **Перезагрузка правил**:

```bash

nft flush ruleset && nft -f /etc/nftables.conf

```

## Заключение

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

Вот что дала нейронка.

Рассмотрим простой пример Hello World-программы на ассемблере для Linux и Windows, чтобы наглядно показать разницу в синтаксисе и способах взаимодействия с системой.

Код на Assembler для Linux (ELF):

section .data
    msg db 'Hello, Linux!', 0xa   ; Строка приветствия с символом новой строки
    len equ $-msg                 ; Длина строки

section .text
global _start                    ; Точка входа

_start:
    mov eax, 4                   ; Системный вызов write()
    mov ebx, 1                   ; Стандартный вывод (stdout)
    mov ecx, msg                 ; Адрес начала строки
    mov edx, len                 ; Длина строки
    int 0x80                     ; Выполнение системного вызова

    mov eax, 1                   ; Системный вызов exit()
    xor ebx, ebx                 ; Выход с кодом 0
    int 0x80                     ; Завершение процесса

Код на Assembler для Windows (PE):

.model flat, stdcall           ; Используем плоскую модель памяти и соглашение stdcall
option casemap:none          ; Отключаем автоматическое преобразование регистров

include windows.inc            ; Включаем стандартные макросы и константы
include kernel32.inc
includefile kernel32.lib      ; Импортируем необходимые библиотеки

.data
    Msg db 'Hello, Windows!', 0     ; Строка приветствия с нулевым байтом окончания

.code
main proc
    invoke MessageBoxA, NULL, addr Msg, NULL, MB_OK       ; Вывод окна с сообщением
    invoke ExitProcess, 0                                 ; Завершаем процесс
main endp

end main                      ; Конец программы

Основные различия:

  1. Формат системных вызовов:

    • В Linux используются номера системных вызовов и прямой доступ к ядру через инструкцию int 0x80.

    • В Windows применяется библиотека kernel32.dll, которая обеспечивает интерфейс к функциональности ОС посредством функций вроде MessageBoxA() и ExitProcess().

  2. Обработка строк:

    • В Linux сообщение оканчивается символом новой строки (\n или 0xa), тогда как в Windows принято использование завершающего нуля (NULL или 0).

  3. Разделители блоков:

    • В Linux традиционно применяются директивы типа section, global, тогда как в Windows часто используют конструкции вида .model, .code, .data.

  4. Библиотечные зависимости:

    • Для Linux характерно прямое взаимодействие с системными функциями, в то время как в Windows большинство операций реализуются через импортируемые библиотеки (kernel32.dll и др.).

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

Как быть с сайтами которые хранят персональные данные, такие как адрес прописки, номер телефона и др, но не имеют контактов, а хостер говорит связывайтесь с администратором сайта, которому наплевать?

Т.е. данные которые оператор удалил, могут остаться у 3-х лиц, а потом получены оператором обратно?

Интересно бы прочитать про сравнение структуры программ под Windows/Linux/Mac

Интересно, где он взял i4004 и другие микросхемы.

Это чтобы подсветить верный путь... 😜

Как глубоко и детально разбирается каждая тема?

А ещё i4004, i8086, i8088? :)

Кто использует HTTP/3?

А как это всё запускать, собирать? Есть пример, инструкция?

Почему бы не ставить гибкий экран под ткань?

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity

Specialization

Specialist
From 1,000,000 ₽