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

main
Сергей Филатов 1 год назад
Родитель 7d0f9e3811
Сommit dbadec27ef

@ -1,4 +1,270 @@
# Лабораторная работа 2 # Лабораторная работа 2
***
## Выполнение лабораторной работы
### Подключение к серверу
Выполняются лабораторные работы на двух серверах:
1. Пункты 1. - 2.1. выполняются на сервере (**hostname : user@G-studentXX-L2-server**):
```sh
IP-SERVER:PORT
```
2. Пункт 2.3. (клиентская часть OpenVPN в ОС Linux/Ubuntu) выполняется на сервере (**hostname : user@G-studentXX-L2-client**):
```sh
10.5.143.101:PORT
```
Где порт подключения (*PORT*) у каждого студента индивидуальный:
<details>
<summary>А-01м-23</summary>
<table>
<thead>
<tr>
<th>Студент</th>
<th>SSH</th>
<th>EXTERNAL 1</th>
<th>EXTERNAL 2</th>
<th>VPN</th>
</tr>
</thead>
<tbody>
<tr>
<td>Антимонов Марк Евгеньевич</td>
<td>10122</td>
<td>10180</td>
<td>10181</td>
<td>10190</td>
</tr>
<tr>
<td>Антипов Дмитрий Алексеевич</td>
<td>10222</td>
<td>10280</td>
<td>10281</td>
<td>10290</td>
</tr>
<tr>
<td>Вареско Сергей Константинович</td>
<td>10322</td>
<td>10380</td>
<td>10381</td>
<td>10390</td>
</tr>
<tr>
<td>Зимовин Михаил Юрьевич</td>
<td>10422</td>
<td>10480</td>
<td>10481</td>
<td>10490</td>
</tr>
<tr>
<td>Капкин Егор Вячеславович</td>
<td>10522</td>
<td>10580</td>
<td>10581</td>
<td>10590</td>
</tr>
<tr>
<td>Кирьянов Борис Юрьевич</td>
<td>10622</td>
<td>10680</td>
<td>10681</td>
<td>10690</td>
</tr>
<tr>
<td>Ковалев Артур (Ин)</td>
<td>10722</td>
<td>10780</td>
<td>10781</td>
<td>10790</td>
</tr>
<tr>
<td>Козлов Игорь Алексеевич</td>
<td>10822</td>
<td>10880</td>
<td>10881</td>
<td>10890</td>
</tr>
<tr>
<td>Кононенко Александр Вячеславович</td>
<td>10922</td>
<td>10980</td>
<td>10981</td>
<td>10990</td>
</tr>
<tr>
<td>Кочурова Виктория Артёмовна</td>
<td>11022</td>
<td>11080</td>
<td>11081</td>
<td>11090</td>
</tr>
<tr>
<td>Ли Егор Андреевич</td>
<td>11122</td>
<td>11180</td>
<td>11181</td>
<td>11190</td>
</tr>
<tr>
<td>Медведев Игорь Сергеевич</td>
<td>11222</td>
<td>11280</td>
<td>11281</td>
<td>11290</td>
</tr>
<tr>
<td>Поташов Сергей Евгеньевич</td>
<td>11322</td>
<td>11380</td>
<td>11381</td>
<td>11390</td>
</tr>
<tr>
<td>Солдатов Михаил Дмитриевич</td>
<td>11422</td>
<td>11480</td>
<td>11481</td>
<td>11490</td>
</tr>
<tr>
<td>Черемных Юрий Алексеевич</td>
<td>11522</td>
<td>11580</td>
<td>11581</td>
<td>11590</td>
</tr>
</tbody>
</table>
</details>
<details>
<summary>А-02м-23</summary>
<table>
<thead>
<tr>
<th>Студент</th>
<th>SSH</th>
<th>EXTERNAL 1</th>
<th>EXTERNAL 2</th>
<th>VPN</th>
</tr>
</thead>
<tbody>
<tr>
<td>Викторов Глеб Олегович</td>
<td>20122</td>
<td>20180</td>
<td>20181</td>
<td>20190</td>
</tr>
<tr>
<td>Градов Алексей Олегович</td>
<td>20222</td>
<td>20280</td>
<td>20281</td>
<td>20290</td>
</tr>
<tr>
<td>Китайский Артём Сергеевич</td>
<td>20322</td>
<td>20380</td>
<td>20381</td>
<td>20390</td>
</tr>
<tr>
<td>Макаров Кирилл Олегович</td>
<td>20422</td>
<td>20480</td>
<td>20481</td>
<td>20490</td>
</tr>
<tr>
<td>Мосалов Кирилл Дмитриевич</td>
<td>20522</td>
<td>20580</td>
<td>20581</td>
<td>20590</td>
</tr>
<tr>
<td>Наников Игорь Яковлевич</td>
<td>20622</td>
<td>20680</td>
<td>20681</td>
<td>20690</td>
</tr>
<tr>
<td>Савин Вадим Евгеньевич</td>
<td>20722</td>
<td>20780</td>
<td>20781</td>
<td>20790</td>
</tr>
<tr>
<td>Сметанин Александр Сергеевич</td>
<td>20822</td>
<td>20880</td>
<td>20881</td>
<td>20890</td>
</tr>
<tr>
<td>Соколов Игорь Алексеевич</td>
<td>20922</td>
<td>20980</td>
<td>20981</td>
<td>20990</td>
</tr>
<tr>
<td>Фенске Александр Вячеславович</td>
<td>21022</td>
<td>21080</td>
<td>21081</td>
<td>21090</td>
</tr>
<tr>
<td>Шашерина Александра Всеволодовна</td>
<td>21122</td>
<td>21180</td>
<td>21181</td>
<td>21190</td>
</tr>
<tr>
<td>Шепелев Дмитрий Дмитриевич</td>
<td>21222</td>
<td>21280</td>
<td>21281</td>
<td>21290</td>
</tr>
<tr>
<td>Юрченков Глеб Андреевич</td>
<td>21322</td>
<td>21380</td>
<td>21381</td>
<td>21390</td>
</tr>
</tbody>
</table>
</details>
Логин: **root**
Пароль: **root**
***Рекомендуется изменить пароль**
### Требования к отчёту:
- Титульный лист
- Описание проделанной работы и вводимых команд
- Скриншоты результатов выполнения и их описание
- Вывод
***
## Часть 1. Настройка межсетевого экрана в Linux-системах ## Часть 1. Настройка межсетевого экрана в Linux-системах
### Цель работы ### Цель работы
@ -153,13 +419,13 @@ PORT STATE SERVICE
``` ```
### 3. Задание ### 3. Задание
Необходимо сделать перенаправление вызова с соответствующих портов. Необходимо сделать перенаправление вызова с \*EXTERNAL 2\* на \*EXTERNAL 1\*.
Для начала потребуется установить дополнительные пакеты Для начала потребуется установить дополнительные пакеты
```ssh ```ssh
apt-get update apt-get update
apt install -y screen python3-pip net-tools apt install -y screen python3-pip net-tools nano
pip install simple-http-server pip install simple-http-server
``` ```
@ -171,18 +437,17 @@ pip install simple-http-server
Комбинация клавиш `Ctrl+A+D` выйти в главное окно терминала. Комбинация клавиш `Ctrl+A+D` выйти в главное окно терминала.
Для проверки доступа по указанному порту, в новом окне терминала выполните следующую команду (вместо слова `port` укажите номер порта) Для проверки доступа по указанному порту, в новом окне терминала выполните следующие команды
<details>
<summary>"port"</summary>
port задается в формате 8GVV, где G - номер группы, а VV - вариант из первой лабораторной работы
</details>
```ssh ```ssh
$ screen -S server $ screen -S server
$ python3 -m http.server port $ python3 -m http.server *EXTERNAL 1*
``` ```
После запуска команды, в браузере необходимо проверить доступность вашего сервера, для этого наберите строку ip_adress:port. После запуска команды, в браузере необходимо проверить доступность вашего сервера, для этого наберите строку
```ssh
http://*IP-SERVER*:*EXTERNAL 1*.
```
**узнать свой ip-адрес можно с помощью команды `ifconfig`* **узнать свой ip-адрес можно с помощью команды `ifconfig`*
@ -194,12 +459,12 @@ $ python3 -m http.server port
Это означает, что порт открыт и вы можете получить доступ к запущенному Web-server. После запуска запустите команду **nmap** и посмотрите, какие порты открыты сейчас. Это означает, что порт открыт и вы можете получить доступ к запущенному Web-server. После запуска запустите команду **nmap** и посмотрите, какие порты открыты сейчас.
После внесения правила перенаправления, проверьте доступность вашего сервера в браузере, перейдя по адресу: ip_adress:redirect_port После внесения правила перенаправления, проверьте доступность вашего сервера в браузере, перейдя по адресу
```ssh
http://*IP-SERVER*:*EXTERNAL 2*.
```
***Скриншот** ***Скриншот**
<details>
<summary>"redirect_port"</summary>
redirect_port задается в формате 80 + VV, где VV - вариант из первой лабораторной работы (VV = 01 -> redirect_port = 81)
</details>
Повторно запустите команду **nmap** и проверьте вывод. Повторно запустите команду **nmap** и проверьте вывод.
@ -357,11 +622,9 @@ apt-get update
apt install -y openvpn apt install -y openvpn
``` ```
Настраиваем переадресацию (IP forwarding) (при выключении/перезапуске сервера это повторяем): Маскарадинг (или маскирование) исходящих пакетов из подсети 10.4.0.1/2, направленных к интерфейсу *eth0*
```ssh ```ssh
modprobe iptable_nat --
echo 1 | tee /proc/sys/net/ipv4/ip_forward --
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
``` ```
@ -369,7 +632,7 @@ iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
```ssh ```ssh
cd /etc/openvpn cd /etc/openvpn
openvpn --genkey --secret ovpn.key -- openvpn --genkey secret ovpn.key openvpn --genkey secret ovpn.key
``` ```
Создаем файл конфигурации OpenVPN, назовем его openvpn.conf, для этого воспользуемся редактором `nano` работающим в консоли: Создаем файл конфигурации OpenVPN, назовем его openvpn.conf, для этого воспользуемся редактором `nano` работающим в консоли:
@ -381,7 +644,7 @@ nano openvpn.conf
В файл вставляем: В файл вставляем:
```ssh ```ssh
port *vpn_port* port *VPN*
proto tcp-server proto tcp-server
dev tun1 dev tun1
ifconfig 10.4.0.1 10.4.0.2 ifconfig 10.4.0.1 10.4.0.2
@ -392,11 +655,6 @@ secret ovpn.key
**Выделенные `*` строки необходимо изменить на реальные значения** **Выделенные `*` строки необходимо изменить на реальные значения**
<details>
<summary>vpn_port</summary>
Задается в формате 1194 + VV, где VV - вариант из первой лабораторной работы (VV = 01 -> vpn_port = 1195)
</details>
***Скриншот** ***Скриншот**
Нажимаем `CTRL+S` и подтверждаем запись в файл, выходим из редактора — `CTRL+X`. Нажимаем `CTRL+S` и подтверждаем запись в файл, выходим из редактора — `CTRL+X`.
@ -407,7 +665,7 @@ secret ovpn.key
service openvpn start service openvpn start
``` ```
Проверяем, есть ли у нас открытый порт `*vpn_port*` на системе Проверяем, есть ли у нас открытый порт `*VPN*` на системе
```ssh ```ssh
netstat -nlpt netstat -nlpt
@ -439,7 +697,7 @@ netstat -nlpt
```ssh ```ssh
... ...
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:*vpn_port* 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:*VPN* 0.0.0.0:* LISTEN -
... ...
``` ```
@ -457,19 +715,14 @@ tcp 0 0 0.0.0.0:*vpn_port* 0.0.0.0:* LISTEN
```ssh ```ssh
proto tcp-client proto tcp-client
remote *ip_adress* remote *IP-SERVER*
port *vpn_port* port *VPN*
dev tun dev tun
secret ovpn.key secret ovpn.keY
providers legacy default providers legacy default
redirect-gateway def1 redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1 ifconfig 10.4.0.2 10.4.0.1
``` ```
<details>
<summary>ip_adress</summary>
IP-адрес сервера
</details>
***Скриншот** ***Скриншот**
@ -481,7 +734,7 @@ ifconfig 10.4.0.2 10.4.0.1
### 2.3. Установка и настройка клиентской части OpenVPN (Linux) ### 2.3. Установка и настройка клиентской части OpenVPN (Linux)
Открываем окно терминала (можно использовать машину первой лабораторной работы) и устанавливаем OpenVPN: Открываем окно терминала (второй сервер) и устанавливаем OpenVPN:
```ssh ```ssh
apt-get update apt-get update
@ -497,7 +750,7 @@ mkdir ~/OpenVPNconf && cd ~/OpenVPNconf
Копируем файл `/etc/openvpn/ovpn.Key` (на сервере) в `~/OpenVPNconf`. Например, с помощью `scp`: Копируем файл `/etc/openvpn/ovpn.Key` (на сервере) в `~/OpenVPNconf`. Например, с помощью `scp`:
```ssh ```ssh
scp -p port root@ip_adress:/etc/openvpn/ovpn.key ~/OpenVPNconf/ scp -P *SSH* root@*IP-SERVER*:/etc/openvpn/ovpn.key ~/OpenVPNconf/
``` ```
В `~/OpenVPNconf/` создадим файл с настройками OpenVPN, назовем его openvpn.client.conf: В `~/OpenVPNconf/` создадим файл с настройками OpenVPN, назовем его openvpn.client.conf:
@ -510,8 +763,8 @@ nano openvpn.client.ovpn
```ssh ```ssh
proto tcp-client proto tcp-client
remote *ip_adress* remote *IP-SERVER*
port *vpn_port* port *VPN*
dev tun dev tun
secret *path*/ovpn.key secret *path*/ovpn.key
redirect-gateway def1 redirect-gateway def1
@ -568,16 +821,8 @@ echo "IP: $(curl -s ipinfo.io/ip)"
В ней происходит запрос на сервер, отображающий IP-адрес подлючения. Убедитесь, что полученный IP-адрес и адрес удалённой машины совпадают. В ней происходит запрос на сервер, отображающий IP-адрес подлючения. Убедитесь, что полученный IP-адрес и адрес удалённой машины совпадают.
Если результат выполнения следующей команды возвращает `IP: `, то необходимо сделать следующие действия: Если результат выполнения следующей команды возвращает `IP: `, то необходимо сделать следующее действие:
```ssh ```ssh
nano /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
``` ```
Добавить в конец файла строку и сохранить файл:
```ssh
nameserver 8.8.8.8
```
## **Каждый скриншот должен сопровождаться подробным описанием вводимых команд/настроек и результатов их выполнения**
Загрузка…
Отмена
Сохранить