При описании выполняемых команд приняты следующие обозначения:
- `#` - если перед командой стоит данный знак, это означает, что команда должна выполняться от имени пользователя root (суперпользователь)
- `$` - если перед командой стоит данный знак, это означает, что команда должна выполняться от имени обычного пользователя.
Обработка пакетов осуществляется согласно определенным правилам. Каждое правило - это строка, содержащая в себе критерии определяющие, подпадает ли пакет под заданное правило, и действие, которое необходимо выполнить в случае выполнения критерия. В общем виде правила задаются в командной строке так:
Если в правило не включается спецификатор [-t table], то по умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно указывать в любом месте строки правила, однако более или менее стандартом считается указание таблицы в начале правила. Можно использовать следующие таблицы:
@ -335,36 +331,36 @@ IP-SERVER:PORT
Определение политики по умолчанию для цепочек с учетом того, что все порты системы для должны быть закрыты для внешнего пользователя. Поскольку осуществляется фильтрация пакетов, их обработка будет производится в таблице **filter**. Используем ключ `-P` чтобы задать политику по умолчанию. Зададим правило для входящих пакетов (цепочка `INPUT`). Действие для обработки политики по умолчанию `LOG` (журналирование запроса). Поскольку политика по умолчанию определяется для всех портов, критерии проверки опускаются.
```ssh
# iptables -P INPUT ACCEPT
# iptables -A INPUT -j LOG
iptables -P INPUT ACCEPT
iptables -A INPUT -j LOG
```
Определим также политику «по-умолчанию» для исходящих пакетов с разрешением всем исходящим IP-пакетам беспрепятственно проходить фильтрацию. Для определения заданной политики по умолчанию необходимо выполнить в консоли
```ssh
# iptables -P OUTPUT ACCEPT
iptables -P OUTPUT ACCEPT
```
### 2.2. Добавление правил для портов 22 и 80
Осуществляется командой, в которой для заданных критериев применено действие ACCEPT, то есть пакет будет пропущен брэндмауэром.
```ssh
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
### 2.3. Добавление правила для порта 8080. Переадресация с порта 8080 на порт 80
Поскольку происходит преобразование адреса назначения, используем таблицу **nat**. Критерии для применения этого правила: `-p tcp --dport 8080`. Изменение получателя осуществляется в цепочке `PREROUTING`. Правило для переадресации - `REDIRECT`, которое имеет дополнительный ключ для определения порта переадресации `--to-ports`. Зададим перенаправление на порт `80`. Таким образом для определения последнего правила, необходимо ввести в командной строке:
После выполнения команд правила для цепочек сформированы и необходимо осуществить проверку правильности их занесения и работы. Просмотреть созданные правила для всех цепочек можно после выполнения команды:
```ssh
# iptables -S
# iptables -t nat -S
iptables -S
iptables -t nat -S
```
***Скриншот**
@ -384,20 +380,20 @@ IP-SERVER:PORT
Проверьте, что на компьютере установлен nmap, выполнив команду:
```ssh
$ nmap
nmap
```
Если система выдала ошибку, что такой программы нет, необходимо установить nmap:
```ssh
# apt-get update
# apt-get install nmap
apt-get update
apt-get install nmap
```
Запуск команды сканирования портов:
```ssh
$ nmap localhost
nmap localhost
```
Вывод команды покажет какие порты на данный момент открыты в системе. Пример:
@ -414,8 +410,8 @@ PORT STATE SERVICE
Для сброса настроек iptables в изначальное состояние:
```ssh
# iptables -F
# iptables -t nat -F
iptables -F
iptables -t nat -F
```
### 3. Задание
@ -440,8 +436,8 @@ pip install simple-http-server
Для проверки доступа по указанному порту, в новом окне терминала выполните следующие команды
```ssh
$ screen -S server
$ python3 -m http.server *EXTERNAL 1*
screen -S server
python3 -m http.server *EXTERNAL 1*
```
После запуска команды, в браузере необходимо проверить доступность вашего сервера, для этого наберите строку
@ -622,7 +618,7 @@ apt-get update
apt install -y openvpn
```
Маскарадинг (или маскирование) исходящих пакетов из подсети 10.4.0.1/2, направленных к интерфейсу *eth0*
Настраиваем маскарадинг (или маскирование) исходящих пакетов из подсети 10.4.0.1/2, направленных к интерфейсу *eth0*