Browse Source

Update 'project_info.adoc'

master
Iro_Val 3 years ago
parent
commit
af1d068507
  1. 66
      project_info.adoc

66
project_info.adoc

@ -330,18 +330,18 @@ sudo service fail2ban stop
==== ====
* Βρίσκουμε το αρχείο sshd_config και το ανοίγουμε + * Βρίσκουμε το αρχείο sshd_config και το ανοίγουμε +
==== ====
---- ```
sudo nano /etc/ssh/sshd_config sudo nano /etc/ssh/sshd_config
---- ```
Βγάζουμε από σχόλια και αλλάζουμε τις τιμές στα: + Βγάζουμε από σχόλια και αλλάζουμε τις τιμές στα: +
LogLevel VERBOSE + LogLevel VERBOSE +
PermitRootLogin prohibit-password + PermitRootLogin prohibit-password +
PasswordAuthentication no + PasswordAuthentication no +
Restart the ssh service + Restart the ssh service +
---- ```
sudo service ssh restart sudo service ssh restart
---- ```
Παρατηρούμε ότι πλέον δεν μπορούμε να μπούμε με κωδικό + Παρατηρούμε ότι πλέον δεν μπορούμε να μπούμε με κωδικό +
image:images/ssh_denied_password.png[] + image:images/ssh_denied_password.png[] +
==== ====
@ -349,29 +349,29 @@ image:images/ssh_denied_password.png[] +
* Αν έχουμε κάνει τα παραπάνω: + * Αν έχουμε κάνει τα παραπάνω: +
==== ====
Αλλάζουμε σε σχόλιο το PasswordAuthentication στο αρχείο sshd_config + Αλλάζουμε σε σχόλιο το PasswordAuthentication στο αρχείο sshd_config +
---- ```
sudo nano /etc/ssh/sshd_config sudo nano /etc/ssh/sshd_config
---- ```
Σε νέο terminal στον υπολογιστή μας γράφουμε: + Σε νέο terminal στον υπολογιστή μας γράφουμε: +
---- ```
ssh-keygen ssh-keygen
---- ```
Δίνουμε όνομα αρχείου/κωδικό (αν θέλουμε) + Δίνουμε όνομα αρχείου/κωδικό (αν θέλουμε) +
image:images/ssh_keygen.png[] + image:images/ssh_keygen.png[] +
Δίνουμε την εντολή + Δίνουμε την εντολή +
---- ```
ssh-copy-id -i ~/.ssh/id_rsa.pub UserName@RemoteServer ssh-copy-id -i ~/.ssh/id_rsa.pub UserName@RemoteServer
ssh-copy-id -i ~/.ssh/id_rsa.pub docker@172.19.0.3 ssh-copy-id -i ~/.ssh/id_rsa.pub docker@172.19.0.3
---- ```
Βγάζουμε από comment το PasswordAuthentication και κάνουμε restart το ssh + Βγάζουμε από comment το PasswordAuthentication και κάνουμε restart το ssh +
---- ```
sudo service ssh restart sudo service ssh restart
---- ```
Αν πάμε να συνδεθούμε, πλέον θα χρειάζεται το κλειδί που δώσαμε στο ssh-keygen + Αν πάμε να συνδεθούμε, πλέον θα χρειάζεται το κλειδί που δώσαμε στο ssh-keygen +
@ -379,20 +379,20 @@ sudo service ssh restart
== SSH Forwarding == SSH Forwarding
=== Εγκατάσταση υπηρεσίας (apache) === Εγκατάσταση υπηρεσίας (apache)
==== ====
---- ```
sudo apt-get update sudo apt-get update
sudo apt install apache2 sudo apt install apache2
---- ```
TIP: Αν έχουμε ήδη κάποια άλλη υπηρεσία, μπορούμε να χρησιμοποιήσουμε αυτή. TIP: Αν έχουμε ήδη κάποια άλλη υπηρεσία, μπορούμε να χρησιμοποιήσουμε αυτή.
==== ====
Για να τρέξουμε την υπηρεσία: Για να τρέξουμε την υπηρεσία:
==== ====
---- ```
sudo apachectl start sudo apachectl start
sudo netstat -antlupe sudo netstat -antlupe
---- ```
image:images/apache_is_running.png[] + image:images/apache_is_running.png[] +
Η υπηρεσία μας τρέχει! + Η υπηρεσία μας τρέχει! +
==== ====
@ -400,9 +400,9 @@ image:images/apache_is_running.png[] +
Η πρώτη συράγγωση είναι μεταξύ ενός container στον υπολογιστή μας. Για να επιτευχθεί αυτό χρειάζεται ο υπολογιστής μας να έχει και την server side υπηρεσία του ssh. Η port μετά το localhost θα πρέπει να είναι εκείνη που έχει την υπηρεσία που θέλουμε. Αλλάζουμε username και IP ανάλογα. + Η πρώτη συράγγωση είναι μεταξύ ενός container στον υπολογιστή μας. Για να επιτευχθεί αυτό χρειάζεται ο υπολογιστής μας να έχει και την server side υπηρεσία του ssh. Η port μετά το localhost θα πρέπει να είναι εκείνη που έχει την υπηρεσία που θέλουμε. Αλλάζουμε username και IP ανάλογα. +
==== ====
Σε ένα οποιοδήποτε container γράφουμε: + Σε ένα οποιοδήποτε container γράφουμε: +
---- ```
ssh -nNT -L 8081:localhost:80 iro@192.168.64.128 ssh -nNT -L 8081:localhost:80 iro@192.168.64.128
---- ```
image:images/local_port_forwarding.png[] + image:images/local_port_forwarding.png[] +
@ -413,9 +413,9 @@ image:images/apache_page.png[] +
=== Remote port forwarding === Remote port forwarding
==== ====
Στον υπολογιστή μας γράφουμε: + Στον υπολογιστή μας γράφουμε: +
---- ```
ssh -nNT -R 8082:localhost:80 docker@172.21.0.6 ssh -nNT -R 8082:localhost:80 docker@172.21.0.6
---- ```
image:images/remote_ssh.png[] + image:images/remote_ssh.png[] +
image:images/remote_ssh_apache.png[] + image:images/remote_ssh_apache.png[] +
@ -430,7 +430,7 @@ image:images/remote_ssh_apache.png[] +
* copy-paste * copy-paste
==== ====
[source,bash] [source,bash]
---- ```
#!/bin/bash #!/bin/bash
IP=127.0.0.1 # Server IP # <1> IP=127.0.0.1 # Server IP # <1>
P=1194 # Server Port # <2> P=1194 # Server Port # <2>
@ -478,7 +478,7 @@ sudo sysctl -w net.ipv4.ip_forward=1
#show created #show created
docker ps docker ps
---- ```
<1> localhost inside of a container will resolve to the network stack of this container <1> localhost inside of a container will resolve to the network stack of this container
<2> Port <2> Port
<3> Specify Addresses and Netmasks for VPN Clients <3> Specify Addresses and Netmasks for VPN Clients
@ -496,7 +496,7 @@ image:images/vpn_success_2.png[] +
=== Δημιουργία χρήστη === Δημιουργία χρήστη
Για να μπορέσει να συνδεθεί ένας χρήστης, χρειάζεται ένα config αρχείο. Για να μπορέσει να συνδεθεί ένας χρήστης, χρειάζεται ένα config αρχείο.
==== ====
---- ```
Η δομή της εντολής είναι: Η δομή της εντολής είναι:
docker run -v $vpn_data:/etc/openvpn --rm -it $docker easyrsa build-client-full $USERNAME nopass docker run -v $vpn_data:/etc/openvpn --rm -it $docker easyrsa build-client-full $USERNAME nopass
@ -512,13 +512,13 @@ docker=registry.vlabs.uniwa.gr:5080/myownvpn
docker run -v $PWD/openvpn-services:/etc/openvpn --rm -it registry.vlabs.uniwa.gr:5080/myownvpn easyrsa build-client-full sec1 nopass docker run -v $PWD/openvpn-services:/etc/openvpn --rm -it registry.vlabs.uniwa.gr:5080/myownvpn easyrsa build-client-full sec1 nopass
docker run -v $PWD/openvpn-services:/etc/openvpn --rm --log-driver=none -it registry.vlabs.uniwa.gr:5080/myownvpn ovpn_getclient sec1 > sec1.ovpn docker run -v $PWD/openvpn-services:/etc/openvpn --rm --log-driver=none -it registry.vlabs.uniwa.gr:5080/myownvpn ovpn_getclient sec1 > sec1.ovpn
---- ```
Θα πρέπει να επιστρέψει την παρακάτω οθόνη (αφού εισάγουμε τον κωδικό) + Θα πρέπει να επιστρέψει την παρακάτω οθόνη (αφού εισάγουμε τον κωδικό) +
image:images/user_config_create_1.png[] + image:images/user_config_create_1.png[] +
==== ====
Ανοίγουμε το αρχείο του χρήστη και κάνουμε copy-paste αντικαθιστώντας την host machine IP με την δική μας, δηλαδή το μηχανάκι που τρέχει το docker. Το 1194 είναι η πόρτα που έχουμε δώσει στο create-vpn.sh Ανοίγουμε το αρχείο του χρήστη και κάνουμε copy-paste αντικαθιστώντας την host machine IP με την δική μας, δηλαδή το μηχανάκι που τρέχει το docker. Το 1194 είναι η πόρτα που έχουμε δώσει στο create-vpn.sh
==== ====
---- ```
client client
nobind nobind
dev tun dev tun
@ -529,29 +529,27 @@ keepalive 15 60
remote-cert-tls server remote-cert-tls server
remote <HOST MACHINE IP> 1194 udp remote <HOST MACHINE IP> 1194 udp
float float
---- ```
Αντιγράφουμε το αρχείο στον φάκελο που έχουμε το project Αντιγράφουμε το αρχείο στον φάκελο που έχουμε το project
---- ```
cp sec* ../test/project/ cp sec* ../test/project/
---- ```
image:images/sec_on_project_folder.png[] + image:images/sec_on_project_folder.png[] +
==== ====
=== Εγκατάσταση openvpn === Εγκατάσταση openvpn
Για να μπορέσουμε να συνδεθούμε στο vpn, χρειαζόμαστε το openvpn. Το εγκαθιστούμε τόσο στα containers όσο και στο docker (τον master) Για να μπορέσουμε να συνδεθούμε στο vpn, χρειαζόμαστε το openvpn. Το εγκαθιστούμε τόσο στα containers όσο και στο docker (τον master)
==== ```
----
apt update apt update
apt install openvpn apt install openvpn
---- ```
====
=== Λειτουργία === Λειτουργία
Εκτελούμε την παρακάτω εντολή σε κάποιο container: Εκτελούμε την παρακάτω εντολή σε κάποιο container:
==== ====
---- ```
openvpn --config ./sec1.ovpn openvpn --config ./sec1.ovpn
---- ```
image:images/init_sequence_complete.png[] + image:images/init_sequence_complete.png[] +
Εδώ βλέπουμε ότι το container πήρε την IP 10.80.0.2, η οποία είναι εντός του VPN nertwork που ορίστηκε στο create-vpn.sh αρχείο (10.80.0.0/16). + Εδώ βλέπουμε ότι το container πήρε την IP 10.80.0.2, η οποία είναι εντός του VPN nertwork που ορίστηκε στο create-vpn.sh αρχείο (10.80.0.0/16). +

Loading…
Cancel
Save