-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Manuelle
Pour votre sécurité, vous pouvez également trouver les paquets sur pip ou pipx et l'exigence. Fichier txt.
apt-get update -y -qq
apt-get install git lxc lxcfs lxc-templates qemu qemu-utils qemu-kvm virtinst bridge-utils virt-manager libvirt-daemon libvirt-daemon-system virt-viewer libvirt-clients libosinfo-bin websockify sqlite3 novnc ovmf swtpm swtpm-tools -y
apt-get install python3 python3-flask python3-flask-login python3-flask-sqlalchemy python3-requests python3-lxc python3-libvirt python3-psutil python3-werkzeug python3-websockify python3-novnc python3-flask-socketio python3-openssl
apt-get install openvswitch-switch openvswitch-common
git clone https://github.com/pyhype2/Hype2.git
cd Hype2systemctl --quiet enable --now libvirtd
systemctl --quiet start libvirtdCe pont vous permettra de connecter vos serveurs et conteneurs virtuels à votre réseau local afin d'y accéder facilement.
cp ./bridged.xml /usr/share/libvirt/networks/
virsh net-define bridged.xml
virsh net-start bridged
virsh net-autostart bridgedSur votre hôte, créez l'interface de pont "br0", selon votre réseau avec :
- int L'interface physique (exemple : enp1s0)
- ip votre IP fixe
- netmask votre netmask (exemple: 255.255.255.0)
- ** passerelle** votre passerelle
auto br0
iface br0 inet static
bridge_ports <int>
bridge_fd 0
bridge_maxwait 0
address <ip>
netmask <netmask>
gateway <gateway>Cela permettra à Qemu de fonctionner comme root et d'activer VNC sur toutes les adresses de la console.
Une base de données par défaut est fournie dans le git (install/db.db.admin_exemple), l'utilisateur par défaut est admin@admin.com / admin. Pour utiliser cette base de données, il suffit de changer le nom de db.db.admin_exemple à db.db
Une fois connecté, vous pourrez créer/gérer des utilisateurs directement sur le logiciel.
cp db.db.admin_example db.dbPour des raisons de sécurité, vous devez supprimer db.db.admin_example
Si vous voulez créer cette base de données par vous-même, vous pouvez :
sqlite3 db.db
CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username NVARCHAR(200) NULL, email NVARCHAR(200) NULL, password NVARCHAR(200) NULL);python3
import app
app.encrypt('Password')
sqlite3 db.db
INSERT INTO user (id,username,email,password) VALUES (1,'<votre_login>','<votre_email>','<votre_precedent_motdepasse_chifré>');Afin d'accéder aux consoles qui exécutent des sockets web sur d'autres ports (6080 vor VNC et 5008 pour Pyxterm), Un proxy inverse est nécessaire.
Sans cela, vous pouvez toujours accéder aux consoles en utilisant CLI pour l'accès en série :
lxc-attach <container>et en utilisant un outil tel que :
https://www.realvnc.com/fr/connect/download/viewer/
Pour l'accès VNC (au port 6080).
Pour définir votre Proxy inversé, vous pouvez utiliser les exemples ci-dessous (adapté à votre cas bien sûr).
Exemple pour nginx:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_verify_client off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
proxy_read_timeout 20m;
proxy_connect_timeout 20m;
proxy_send_timeout 20m;
client_max_body_size 10G;
location /websockify {
proxy_pass http://<your_ip>:6080/websockify;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /socket.io {
proxy_pass http://<your_ip>:5008/socket.io;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass https://<your_ip>:5007/;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}Exemple pour apache2 :
<VirtualHost *:443>
ServerName www.example.com
RewriteEngine on
SSLEngine On
SSLCertificateFile /path/to/your/cert.pem
SSLCertificateKeyFile /path/to/your/privkey.pem
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyEngine On
SSLProxyCheckPeerExpire off
ProxyRequests Off
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
ProxyPass /websockify ws://<your_ip>:6080/websockify retry=3
ProxyPassReverse /websockify ws://<your_ip>:6080/websockify retry=3
ProxyPass /socket.io ws://<your_ip>:5008/socket.io retry=3
ProxyPassReverse /socket.io ws://<your_ip>:5008/socket.io retry=3
ProxyPass / https://<your_ip>:5007/
ProxyPassReverse / https://<your_ip>:5007/
</VirtualHost>NB : vous pouvez définir le nom du serveur à
server_name _;
Cela permettra de capturer tout le trafic sans filtrer la source.