summaryrefslogtreecommitdiff
path: root/LINUX/IPTABLES, NFTABLES.md
blob: 2ab407c2b67dcc1e5d89e1b818695ccaad1d1d99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
**iptables** — это утилита командной строки для межсетевого экрана, которая позволяет настраивать правила управления трафиком в Linux.

## Установка iptables

Большинство дистрибутивов Linux включают iptables по умолчанию. Чтобы установить или обновить его:

- **Debian/Ubuntu**:

`sudo apt update sudo apt install iptables

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

- **Просмотреть текущие правила**:
`sudo iptables -L -v -n

- **Разрешить входящий трафик SSH**:
`sudo iptables -A  INPUT -p tcp --dport  22 -j ACCEPT

- **Заблокировать IP-адрес**:
`sudo iptables -A  INPUT -s [IP-адрес] -j DROP

## **Сохранить правила**:

- **Debian/Ubuntu:**
`sudo iptables-save > /etc/iptables/rules.v4

## Пример конфигурации: основные правила брандмауэра

Чтобы настроить простой брандмауэр с помощью iptables, вы можете определить правила, разрешающие трафик SSH и HTTP, блокируя весь остальной входящий трафик:

```sh
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
```

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

1. **Всегда используйте политику сброса по умолчанию**: установите политику по умолчанию для сброса всего входящего трафика, разрешая только доверенные соединения.
2. **Разрешайте только определенные службы**: избегайте широких разрешений и указывайте только необходимые службы (например, SSH, HTTP).
3. **Ограничьте доступ по SSH**: ограничьте доступ по SSH, разрешив только доверенные IP-адреса и отключив вход с правами root.
4. **Используйте ведение журнала с осторожностью**: включите ведение журнала для отклоненных подключений, но ограничьте частоту, чтобы избежать переполнения журналов.


# nftables: будущее межсетевых экранов Linux

**nftables** — это современная замена **iptables** , которая обеспечивает повышение производительности, более простой синтаксис и большую гибкость. Она работает с **netfilter** и предназначена для объединения функций брандмауэра, NAT и искажения пакетов.

## Установка nftables

В большинстве последних дистрибутивов Linux nftables предустановлен. Вы можете установить или обновить его с помощью:

- **Debian/Ubuntu:**
`sudo apt install nftables

## Базовые команды nftables

- **Запуск и включение nftables**:
`sudo systemctl start nftables 
`sudo systemctl enable nftables

- **Просмотр активных правил:**
`sudo nft list ruleset

- **Сброс всех правил**:
`sudo nft flush ruleset

## Пример конфигурации nftables

Вот как можно настроить nftables для разрешения трафика SSH, HTTP и HTTPS:

1. **Откройте файл конфигурации nftables**:
`sudo nano /etc/nftables.conf

**2. Добавьте набор правил**:

```sh
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        tcp dport { 22, 80, 443 } accept
    }
    chain forward {
        type filter hook forward priority 0; policy drop;
    }
    chain output {
        type filter hook output priority 0; policy accept;
    }
}
```

**3. Загрузите наборы правил**:

`sudo nft -f /etc/nftables.conf

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