# Lab 1. System and Network administartion
## Mustafin Timur
# Setuping
1. Install latest [docker](https://docs.docker.com/install/) (i used `Docker version 19.03.1, build 74b1e89`), [docker-compose](https://docs.docker.com/compose/install/)(i used `docker-compose version 1.24.1, build 4667896b`). Don't install them just from repos because they may be outdated
2. Clone https://github.com/14MR/sna-labs
3. `cd assignment2`
4. Create file `authorized_keys` with your public key (or modify the volume if you want)
5. `docker-compose up -d`
6. From your workstation: `ssh -L 31337:app:3000 root@IP_ADDRESS_OF_THE_MACHINE -p 2222`
7. open `http://localhost:31337/` in your browser

# Images
## SSH
For ssh i build my own image ([Dockerfile](https://github.com/14MR/sna-labs/blob/master/assignment2/Dockerfile), [Dockerhub](https://hub.docker.com/r/mr14mr/alpine-openssh)). Final version is small enough. I may decrease it more but then i won't benefit from layers.
## Wiki
Just used [Hackmd's open version](https://github.com/hackmdio/CodiMD), [Dockerhub](https://hub.docker.com/r/hackmdio/hackmd)
# Containers and networks
Wiki container has no access to the Internet
```
root@SNA003 assignment2]# docker-compose exec app ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
^C
--- 1.1.1.1 ping statistics ---
111 packets transmitted, 0 packets received, 100% packet loss
```
While SSH has:
```
[root@SNA003 assignment2]# docker-compose exec ssh ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: seq=0 ttl=58 time=63.226 ms
64 bytes from 1.1.1.1: seq=1 ttl=58 time=61.355 ms
64 bytes from 1.1.1.1: seq=2 ttl=58 time=61.041 ms
64 bytes from 1.1.1.1: seq=3 ttl=58 time=61.317 ms
^C
--- 1.1.1.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 61.041/61.734/63.226 ms
```
Easy to check looking at `docker ps` (PORTS column):
```
[root@SNA003 assignment2]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b821f1a5363f hackmdio/hackmd:1.3.1-alpine "/usr/local/bin/dock…" 25 minutes ago Up 25 minutes assignment2_app_1
b67bdba9d26b postgres:11.5-alpine "docker-entrypoint.s…" 26 minutes ago Up 25 minutes assignment2_database_1
e252de094141 mr14mr/alpine-openssh:latest "/usr/sbin/sshd -D" 26 minutes ago Up 26 minutes 0.0.0.0:2222->22/tcp assignment2_ssh_1
```
# Network diagram
