Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

homework-1 #17

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Выполнено ДЗ №

- [ ] Основное ДЗ
- [ ] Задание со *

## В процессе сделано:
- Пункт 1
- Пункт 2

## Как запустить проект:
- Например, запустить команду X в директории Y

## Как проверить работоспособность:
- Например, перейти по ссылке http://localhost:8080

## PR checklist
- [ ] Выставил label с номером домашнего задания
- [ ] Выставил label с темой домашнего задания
6 changes: 6 additions & 0 deletions .github/auto_assign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Set to true to add assignees to pull requests
addAssignees: true

# A list of reviewers to be added to pull requests (GitHub user name)
reviewers:
- mrgreyves
8 changes: 8 additions & 0 deletions .github/workflows/auto-assign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: 'Auto Assign'
on: pull_request

jobs:
add-reviews:
runs-on: ubuntu-latest
steps:
- uses: kentaro-m/[email protected]
26 changes: 26 additions & 0 deletions .github/workflows/run-tests-2022-02.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Run tests for OTUS homework

on:
push:
branches-ignore: main
pull_request:
branches-ignore: main

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout this repo
uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
- name: Checkout repo with tests
uses: actions/checkout@v2
with:
repository: "express42/otus-homeworks"
ref: 2022-02
path: "./otus-homeworks/"

- name: Run tests
run: curl https://raw.githubusercontent.com/express42/otus-homeworks/2022-02/run.sh | bash
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2022 Otus-DevOps-2022-02

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
92 changes: 92 additions & 0 deletions VPN/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# **HOME-WORK-03 - CLOUD-BASTION**

- Создаем инстансы ВМ и производим настройки по инструкции.

---
- Получена следующая адресация виртуальных серверов YC:
```
*BASTION*
EXT-IP: 51.250.64.135
INT-IP: 10.128.0.13
```
```
*SOMEINTERNALHOST*
EXT-IP: -
INT-IP: 10.128.0.17
```

---
# Спобосы подключения к SOMEINTERNALHOST в одну команду
- Первый способ подключения к SOMEINTERNALHOST в одну команду:
```
ssh -A EXT-IP-BASTION -t ssh INT-IP-SOMEINTERNALHOST
```
IP адресация указана выше.
В нашем случае (УЗ appuser) команда будет иметь вид:
```
ssh -A appuser@EXT-IP-BASTION -t ssh INT-IP-SOMEINTERNALHOST
```

---
- Второй способ подключения к SOMEINTERNALHOST в одну команду:
```
ssh -J EXT-IP-BASTION INT-IP-SOMEINTERNALHOST
```
IP адресация указана выше.
В нашем случае (УЗ appuser) команда будет иметь вид:
```
ssh -J appuser@EXT-IP-BASTION appuser@INT-IP-SOMEINTERNALHOST
```

---
- Дополнительное задание - создание ALIAS SOMEINTERNALHOST:

ALIAS можно сделать на любой тип подключения, указанный выше. Например:
```
alkolexx@ALKOLEXX-NOTE:~$ echo 'alias someinternalhost="ssh -A [email protected] -t ssh 10.128.0.17"' >> /home/alkolexx/.bashrc
alkolexx@ALKOLEXX-NOTE:~$ source /home/alkolexx/.bashrc
```
Теперь подключение к SOMEINTERNALHOST происходит следующим способом:
```
alkolexx@ALKOLEXX-NOTE:~$ someinternalhost
```

---
# VPN SERVER - PRITUNL
- Скрипт из инструкции оказался не рабочим на Xenial - отсутствуют пакеты для этой версии, выдавал ошибку.
- Обновил BASTION до версии 20.04.
- Скрипт установки VPN:
```
#!/bin/bash

# ADD REPO
sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb http://repo.pritunl.com/stable/apt focal main
EOF

sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list << EOF
deb https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse
EOF

# ADD KEY
curl https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc | sudo apt-key add -
curl https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

# UPDATE
sudo apt update

# DISABLE FIREWALL
sudo ufw disable

# INSTALL VPN
sudo apt -y install pritunl mongodb-org
sudo systemctl enable mongod pritunl
sudo systemctl start mongod pritunl
```
- Устанавливаем VPN командой: `bash setupvpn.sh`
- Действуем далее по инструкции и проверяем коннект к SOMEINTERNALHOST.
- Данные для подключения (еще раз):
```
bastion_IP = 51.250.64.135
someinternalhost_IP = 10.128.0.17
```
207 changes: 207 additions & 0 deletions VPN/cloud-bastion.ovpn
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
#{
# "version": 1,
# "user": "test",
# "organization": "OTUS",
# "server": "OTUS",
# "wg": false,
# "user_id": "623c599656256102aa2de385",
# "organization_id": "623c599556256102aa2de380",
# "server_id": "623c5a3256256102aa2de440",
# "server_public_key": [
# "-----BEGIN RSA PUBLIC KEY-----",
# "MIICCgKCAgEArt8GSuu/XtD0PSyAw8tNGK2YpFoPDEkaZgcPlDnXmeU9HfjodBan",
# "jTac8liOQIDs9IPZMQuZJVzLSw4FXfZQ4ImceiSYwnaOANB+PDqfTuXEBPbjV8RK",
# "hYbAnjp9dMPJDgYRmGLX0nh+w2xoGNTPwkbMDhEnGwpwxmVw7AHYP0rDxujh9Efp",
# "txd+mzvo6wezLB33LMNcrTwEh3BbJCARHPVjERe586Fkzebee6nJqpGTw4HZYHGH",
# "2t8iFQwzI857KR0B+ajgpCa+GA1HrS+x46s/+U7BwrScIJMZwVzLWDj0utmAc5Oy",
# "CuapKL8uG7RH4pKgIZxztEuUXfIFftDWXQYUfYcDvls3/Wn1sfGAnW0od0xQ1C6A",
# "QYn9cyB1CT7rOm/F9ZrmMpOAf/6z+uLDkOG2xVOOuU1qDhov52uSz67PCEjiJc/T",
# "UzWaCHMtJ2YsTnOVaKrgZmeTd1aa3xHG4JG66EqhmD3cMBOPAEzUcZEyENxLfIOf",
# "qJwhMWPBRWXxZsBTXgGAlmcoOZVW0oaGPH8kofm4uQSkbeNIU4mV88nANnIGREaf",
# "zby7coKtVoIG9qd/zjqGEuxWRoZd+MVqlp3YUS+V6+z073xDXE0gZUALnqPitcfR",
# "8uc64PWu4/XSXDlP2raF5zjtT1wM/vw5pwpac5Ug+skmnJdC7L+eonsCAwEAAQ==",
# "-----END RSA PUBLIC KEY-----"
# ],
# "server_box_public_key": "zaHrLdDa4N7XFhDj8SgX+ZtQAsTaCbrsEY19C5F4xiw=",
# "sync_hosts": [
# "https://51.250.64.135"
# ],
# "sync_hash": "d04a5d999ecbeec4eec0422c38e31131",
# "password_mode": "pin",
# "push_auth": false,
# "push_auth_ttl": 172800,
# "disable_reconnect": false,
# "token_ttl": 172800,
# "token": false,
# "sync_token": "SmkKFoPGUsMPM6dwm4P9jct2pP0eyx4n",
# "sync_secret": "Coeo5a6REg1W2zM4kIiEDVVtcPzYYkEN"
#}
setenv UV_ID 567e8c1268794ba19cc58dd5b0b3d33b
setenv UV_NAME summer-waves-5514
client
dev tun
dev-type tun
remote 51.250.64.135 10765 udp
nobind
persist-tun
cipher AES-128-CBC
auth SHA1
verb 2
mute 3
push-peer-info
ping 10
ping-restart 60
hand-window 70
server-poll-timeout 4
reneg-sec 2592000
sndbuf 393216
rcvbuf 393216
remote-cert-tls server
comp-lzo no
auth-user-pass
key-direction 1
<ca>
-----BEGIN CERTIFICATE-----
MIIFcTCCA1mgAwIBAgIIdqF3aXMBfwUwDQYJKoZIhvcNAQELBQAwRjEhMB8GA1UE
CgwYNjIzYzU5OTU1NjI1NjEwMmFhMmRlMzgwMSEwHwYDVQQDDBg2MjNjNTk5NTU2
MjU2MTAyYWEyZGUzODEwHhcNMjIwMzI0MTE0NDIyWhcNNDIwMzE5MTE0NDIyWjBG
MSEwHwYDVQQKDBg2MjNjNTk5NTU2MjU2MTAyYWEyZGUzODAxITAfBgNVBAMMGDYy
M2M1OTk1NTYyNTYxMDJhYTJkZTM4MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBAMnyhCRmTrYUGc6up9lndvKOfDezNR3U408eybkPfKw2DUB9uwpNDO3D
fgZHoqWWYh+ch7AsmfD07v4pqXSEF8WSbAzfGPE0WcVIksHchNFf0yrjkjCACu1v
JQIodIsdpsKqEyEDWExBDxS5sqEE6hJuEHd610jBvzW7D14TRAJTFCCGJw4I0KmA
s18gFImo9p7llC1cCJjooNjQIdNPbWaFmjvHvKC9xW/KcqciQi1pVFY920nlHIUd
Vbd0R6BcC0iP6RdBvhdeRtNYdlqIg0fqxaEy9s/lDNL5UO361saE8pXoJIPyeCRg
v7ifoEeIC+NSHkgcfv5of8FxkyOe7VjaO5pXQev8pgTvm0qA0o5/UuP8IEvlZqTy
jRQpBpTZ0c1Rq1s1rx/qA4jHLviGtycCr5v52Ym/y6aRmI2hclmmmXr/pwwiv2hl
XJ3O027Amj5mmVaWoinwdW8qNbso1JBc5g0xrJzwB+BGI4Mpob/ohR0eFMDAAqay
mIaAPeWTGUnidaMiRTRylcw9r1O+aWUDmfJG+s12ZtXQvPr43NL24SUSGfCrF3GS
x/iARBEs5MDzd98w/a1UJd0zN/VPe3FJ7z0n5Wp4vfOm0+Rjlu50O+y4FuGp7iSJ
5sv5LtPKIdqzlA0pCPF5CdJeAoNssxdwoBVFujK/EKBPrDKkQLfFAgMBAAGjYzBh
MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ6txsx
r6x929KQVXN+22bjW+BRWDAfBgNVHSMEGDAWgBQ6txsxr6x929KQVXN+22bjW+BR
WDANBgkqhkiG9w0BAQsFAAOCAgEAVEH+HMMfA1W3UEVzZaZDca85GOctZfA6HqZG
/JLK4JFCRxtmBlJUOSji/z70xypE+sCfWmL0FVYD7Nn2apMywQ/lZZLaWKTNmorz
ixgQHIGu4ZZeMPEqK2GHKCZleWtZGaUnVYKg2Abyfwa03qZBHgOQaPC7oMEdgWjw
3otkUvPjgVEr9xCATgjjOUH0TuqtGk4S/MQy3VAVweHhhdzkK0+7CPuccx9NO5aJ
iD/Bfk3BL6JWoDqEeoZTmgVsN3rxCAY4DR2lZtet7opkQHPEDjLHT83cQQQaiaWE
OPahr015twq2YJqyy+26wY6rq8aUCufWvHVTV48TDepzlGPDCEhNtBZq8UklCEWl
IlbRTdzg00OlrU2kfS1zGQ2jGWGJDBongsy7zZdFMbYGNKBIOg8ATYE86gP15SnY
mzOWHcbqat0uqfmvtk92NDL7bwT+q9LGoa5pUph+fSP5moUG6frZc5yZ/+3jQHjo
dxVy3BLXAdNpOfxnW0RCHZN73nq/swizYDDS+8iZW+LmNF0XJmg8P6Tlxeawh5CY
YTNMk7gngZ17fUVmo53jk5mkqf7NLp7sAVhAfVpEuGRd0/aTc9w+adSLtWFQv2US
U1sZFB3bSslF0NSyB9bKbmRMgvBHnIR5TaO2b/ed0jGId/bjogqcouXCuAMDu3Wf
BxVHAeI=
-----END CERTIFICATE-----
</ca>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
905fbf43cedea91a641ce88c61c10e67
82d3df5ff3a7f52d64279c5de8811fe9
13b5cacd46d08d4d1aee763fc39f7631
de2c855f5155b791fc054c70ccfa7768
2cf07f8827ab2667e0bc3adfacb95ac8
3a8ab4de012d50c71572baa6aaf79109
c9afc34e844e86d93f07638d1bd6df16
f5f4b3d2a4319bd2d503da674639c47a
5256fb932cdd330a382f252fdb8802f7
323f2016676ddcf9c49a77ea550bb60b
28dfec1fc4d790d833e89607ea881cd2
895f25d60c7671df7852a1b9c47b5e79
79d064ea5a34b04f43cb5d878ec38579
2d7f2179111d5c182e3b23698c945f18
9452eb0a99c9223b1cf7b63d1c672210
db90732b302c20883d5caf77403b4f51
-----END OpenVPN Static key V1-----
</tls-auth>
<cert>
-----BEGIN CERTIFICATE-----
MIIFgDCCA2igAwIBAgIIDTNtEn4/DQwwDQYJKoZIhvcNAQELBQAwRjEhMB8GA1UE
CgwYNjIzYzU5OTU1NjI1NjEwMmFhMmRlMzgwMSEwHwYDVQQDDBg2MjNjNTk5NTU2
MjU2MTAyYWEyZGUzODEwHhcNMjIwMzI0MTE0NDIzWhcNNDIwMzE5MTE0NDIzWjBG
MSEwHwYDVQQKDBg2MjNjNTk5NTU2MjU2MTAyYWEyZGUzODAxITAfBgNVBAMMGDYy
M2M1OTk2NTYyNTYxMDJhYTJkZTM4NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBANQwaN2FnS8EsZTPicd6MTO7BwaH4pfRIiAo0WjB91V8O4LAIkNuKuEI
1tatVcZl2lRCoPy84KBvZf42lry37OZJxchZBVaErREnV9oVH9ROIKKrsfeQba6s
aMt9Xwh2DkASxLXWJTtIzSwq9/i+2VQgpB+KY40InGtFXnJYysrPcQAoqE/3kmrJ
RVjBjmMxmEyjn4+/R7HSJ6trRbgt0UnqDBt1OmqvD+1GrEUDRKeA6wACI8ouLii+
XXkHAVFIUVZuOPdjVA6wU+dylo7z2Q1PmsX9yFUZwAYrOIuDTDENEz39VhngCM+j
gI0Fk+WNxsi/vOgZyYxRpt1so9Zh+FJNAs1x+XS/HcHYNuyrjMneZ6AjVqEaGxeB
KDYCLKaC919QXRQ/Gm66hnh5GQw6/mD/TiBGknvX+ZegO6yMxWhN0jo7nVRo1wSK
h1SYQDOX4ckTFPPAfIYxCIPEoeZUENnAKrGVh2kexBHt8gJCk/lAfcXasKSkNegf
Ch3ACU/FDOEFUJl2+DmkgSeaagqAY741rWTTnUnOOLEONFVVVHXDZuPb4i3opMu4
6bfy76Z29sRkxU1R61BGiBL9/JAifpt6WYy9SImYk6CHVbAvA56yu7hMFXBGT+uT
TRg3+bASQ67pzjFJ+mXRlnqu7006YaMMD8ts5PURfficI1/eCOZVAgMBAAGjcjBw
MA4GA1UdDwEB/wQEAwIFoDAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMC
MB0GA1UdDgQWBBQWNc+yU4GMUrKoLClt8jvebOpNdzAfBgNVHSMEGDAWgBQ6txsx
r6x929KQVXN+22bjW+BRWDANBgkqhkiG9w0BAQsFAAOCAgEAC0fM227D032KCM/Y
y8vW4DjrZQQaaiiSh2axsltM6c/OKL0WZeRR/sXrTcdMGkjBNtcgI+kAiXz/9gG+
JWm4LsDJEsBeYKGIbP7Z7CDMcJUGUMrKVvfyFflEjmqa1dMbPdQ3LJs2R85PpwKr
ZPPX42kO10Hmzz+5IqKIMQKAYqWQc1ty6jskuHhkFaBZTwmiuh9ANaNYum7sdGJh
RZYdLfDm5eIs0jRFLC8tttNqulTm/nq9c0D12abcBHmwFqW+CnNWnlEExgYYqE11
+jW8wKfUYbbo5qbEXF3Vdc2rqAJUhGHHxwMOJIadh2A5Pp0UoTkQqdfVw6jZW/hT
PExkRyWP5mcuf9f2s7ENCUEwmw7FmasmLM2B94LGfu/YULo8ITsJH745nTzuWgFx
PGF3pr5Jnd+QXbIY/zbWfHz5XXy7MiFEPty35tUMfBWfBfJtaWg3JoLi+mpnnHrY
E3qD7OlDiwkSrI+TIo2VPPXEnIHEFNKCM/nFUP7L3rf5qCC/V+GscSCXA5ITfGtJ
inUoH5OC3hYUsqFb9p9uce/1vx9sGfMndMgyT6Ia1m4QNuGntGcadVGOaWoLaSc/
+6HlSfp+mY2rGeHHIgj21rrb+cGQ0bOl4C8dXAcHaP71tpr75D9ZoQ9rv+GSbxs+
1rwxNryipsXgHKmREAlD80AQVNk=
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
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
0dschv56ivvhFGyMd+JOgeQPT0a09g==
-----END PRIVATE KEY-----
</key>
Loading