Изменил(а) на 'labs/lab2/README.md'

main
Сергей Филатов 1 год назад
Родитель 9c6cf95c94
Сommit fa2e219025

@ -275,14 +275,10 @@ IP-SERVER:PORT
### 1.1. Работа *IPTABLES*. Основные понятия ### 1.1. Работа *IPTABLES*. Основные понятия
При описании выполняемых команд приняты следующие обозначения:
- `#` - если перед командой стоит данный знак, это означает, что команда должна выполняться от имени пользователя root (суперпользователь)
- `$` - если перед командой стоит данный знак, это означает, что команда должна выполняться от имени обычного пользователя.
Обработка пакетов осуществляется согласно определенным правилам. Каждое правило - это строка, содержащая в себе критерии определяющие, подпадает ли пакет под заданное правило, и действие, которое необходимо выполнить в случае выполнения критерия. В общем виде правила задаются в командной строке так: Обработка пакетов осуществляется согласно определенным правилам. Каждое правило - это строка, содержащая в себе критерии определяющие, подпадает ли пакет под заданное правило, и действие, которое необходимо выполнить в случае выполнения критерия. В общем виде правила задаются в командной строке так:
```sh ```sh
# iptables [-t table] command [match] [target/jump] iptables [-t table] command [match] [target/jump]
``` ```
Если в правило не включается спецификатор [-t table], то по умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно указывать в любом месте строки правила, однако более или менее стандартом считается указание таблицы в начале правила. Можно использовать следующие таблицы: Если в правило не включается спецификатор [-t table], то по умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно указывать в любом месте строки правила, однако более или менее стандартом считается указание таблицы в начале правила. Можно использовать следующие таблицы:
@ -335,36 +331,36 @@ IP-SERVER:PORT
Определение политики по умолчанию для цепочек с учетом того, что все порты системы для должны быть закрыты для внешнего пользователя. Поскольку осуществляется фильтрация пакетов, их обработка будет производится в таблице **filter**. Используем ключ `-P` чтобы задать политику по умолчанию. Зададим правило для входящих пакетов (цепочка `INPUT`). Действие для обработки политики по умолчанию `LOG` (журналирование запроса). Поскольку политика по умолчанию определяется для всех портов, критерии проверки опускаются. Определение политики по умолчанию для цепочек с учетом того, что все порты системы для должны быть закрыты для внешнего пользователя. Поскольку осуществляется фильтрация пакетов, их обработка будет производится в таблице **filter**. Используем ключ `-P` чтобы задать политику по умолчанию. Зададим правило для входящих пакетов (цепочка `INPUT`). Действие для обработки политики по умолчанию `LOG` (журналирование запроса). Поскольку политика по умолчанию определяется для всех портов, критерии проверки опускаются.
```ssh ```ssh
# iptables -P INPUT ACCEPT iptables -P INPUT ACCEPT
# iptables -A INPUT -j LOG iptables -A INPUT -j LOG
``` ```
Определим также политику «по-умолчанию» для исходящих пакетов с разрешением всем исходящим IP-пакетам беспрепятственно проходить фильтрацию. Для определения заданной политики по умолчанию необходимо выполнить в консоли Определим также политику «по-умолчанию» для исходящих пакетов с разрешением всем исходящим IP-пакетам беспрепятственно проходить фильтрацию. Для определения заданной политики по умолчанию необходимо выполнить в консоли
```ssh ```ssh
# iptables -P OUTPUT ACCEPT iptables -P OUTPUT ACCEPT
``` ```
### 2.2. Добавление правил для портов 22 и 80 ### 2.2. Добавление правил для портов 22 и 80
Осуществляется командой, в которой для заданных критериев применено действие ACCEPT, то есть пакет будет пропущен брэндмауэром. Осуществляется командой, в которой для заданных критериев применено действие ACCEPT, то есть пакет будет пропущен брэндмауэром.
```ssh ```ssh
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT
``` ```
### 2.3. Добавление правила для порта 8080. Переадресация с порта 8080 на порт 80 ### 2.3. Добавление правила для порта 8080. Переадресация с порта 8080 на порт 80
Поскольку происходит преобразование адреса назначения, используем таблицу **nat**. Критерии для применения этого правила: `-p tcp --dport 8080`. Изменение получателя осуществляется в цепочке `PREROUTING`. Правило для переадресации - `REDIRECT`, которое имеет дополнительный ключ для определения порта переадресации `--to-ports`. Зададим перенаправление на порт `80`. Таким образом для определения последнего правила, необходимо ввести в командной строке: Поскольку происходит преобразование адреса назначения, используем таблицу **nat**. Критерии для применения этого правила: `-p tcp --dport 8080`. Изменение получателя осуществляется в цепочке `PREROUTING`. Правило для переадресации - `REDIRECT`, которое имеет дополнительный ключ для определения порта переадресации `--to-ports`. Зададим перенаправление на порт `80`. Таким образом для определения последнего правила, необходимо ввести в командной строке:
```ssh ```ssh
# iptables -t nat -I PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80 iptables -t nat -I PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
``` ```
После выполнения команд правила для цепочек сформированы и необходимо осуществить проверку правильности их занесения и работы. Просмотреть созданные правила для всех цепочек можно после выполнения команды: После выполнения команд правила для цепочек сформированы и необходимо осуществить проверку правильности их занесения и работы. Просмотреть созданные правила для всех цепочек можно после выполнения команды:
```ssh ```ssh
# iptables -S iptables -S
# iptables -t nat -S iptables -t nat -S
``` ```
***Скриншот** ***Скриншот**
@ -384,20 +380,20 @@ IP-SERVER:PORT
Проверьте, что на компьютере установлен nmap, выполнив команду: Проверьте, что на компьютере установлен nmap, выполнив команду:
```ssh ```ssh
$ nmap nmap
``` ```
Если система выдала ошибку, что такой программы нет, необходимо установить nmap: Если система выдала ошибку, что такой программы нет, необходимо установить nmap:
```ssh ```ssh
# apt-get update apt-get update
# apt-get install nmap apt-get install nmap
``` ```
Запуск команды сканирования портов: Запуск команды сканирования портов:
```ssh ```ssh
$ nmap localhost nmap localhost
``` ```
Вывод команды покажет какие порты на данный момент открыты в системе. Пример: Вывод команды покажет какие порты на данный момент открыты в системе. Пример:
@ -414,8 +410,8 @@ PORT STATE SERVICE
Для сброса настроек iptables в изначальное состояние: Для сброса настроек iptables в изначальное состояние:
```ssh ```ssh
# iptables -F iptables -F
# iptables -t nat -F iptables -t nat -F
``` ```
### 3. Задание ### 3. Задание
@ -440,8 +436,8 @@ pip install simple-http-server
Для проверки доступа по указанному порту, в новом окне терминала выполните следующие команды Для проверки доступа по указанному порту, в новом окне терминала выполните следующие команды
```ssh ```ssh
$ screen -S server screen -S server
$ python3 -m http.server *EXTERNAL 1* python3 -m http.server *EXTERNAL 1*
``` ```
После запуска команды, в браузере необходимо проверить доступность вашего сервера, для этого наберите строку После запуска команды, в браузере необходимо проверить доступность вашего сервера, для этого наберите строку
@ -622,7 +618,7 @@ apt-get update
apt install -y openvpn apt install -y openvpn
``` ```
Маскарадинг (или маскирование) исходящих пакетов из подсети 10.4.0.1/2, направленных к интерфейсу *eth0* Настраиваем маскарадинг (или маскирование) исходящих пакетов из подсети 10.4.0.1/2, направленных к интерфейсу *eth0*
```ssh ```ssh
iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
@ -747,7 +743,7 @@ apt-get install -y openvpn nano curl
mkdir ~/OpenVPNconf && cd ~/OpenVPNconf mkdir ~/OpenVPNconf && cd ~/OpenVPNconf
``` ```
Копируем файл `/etc/openvpn/ovpn.Key` (на сервере) в `~/OpenVPNconf`. Например, с помощью `scp`: Копируем файл `/etc/openvpn/ovpn.Key` (на VPN-сервере) в `~/OpenVPNconf`. Например, с помощью `scp`:
```ssh ```ssh
scp -P *SSH* root@*IP-SERVER*:/etc/openvpn/ovpn.key ~/OpenVPNconf/ scp -P *SSH* root@*IP-SERVER*:/etc/openvpn/ovpn.key ~/OpenVPNconf/

Загрузка…
Отмена
Сохранить