diff --git a/change_vm_ssh_port.sh b/change_vm_ssh_port.sh deleted file mode 100755 index 22893b1..0000000 --- a/change_vm_ssh_port.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -# Script per cambiare la porta SSH delle VM da 22 a 2222 -# Questo permette ai container SFTP di usare la porta 22 standard - -set -e - -NEW_SSH_PORT=2222 -SSH_CONFIG="/etc/ssh/sshd_config" - -echo "================================================" -echo "Cambio porta SSH della VM da 22 a $NEW_SSH_PORT" -echo "================================================" -echo "" - -# Backup della configurazione originale -if [ ! -f "${SSH_CONFIG}.backup" ]; then - echo "Creazione backup di $SSH_CONFIG..." - cp "$SSH_CONFIG" "${SSH_CONFIG}.backup" - echo "✓ Backup creato: ${SSH_CONFIG}.backup" -else - echo "✓ Backup già esistente: ${SSH_CONFIG}.backup" -fi - -# Modifica la porta SSH -echo "" -echo "Modifica della porta SSH a $NEW_SSH_PORT..." - -# Rimuovi eventuali configurazioni Port esistenti e aggiungi la nuova -grep -v "^Port " "$SSH_CONFIG" | grep -v "^#Port " > "${SSH_CONFIG}.tmp" -echo "Port $NEW_SSH_PORT" | cat - "${SSH_CONFIG}.tmp" > "$SSH_CONFIG" -rm "${SSH_CONFIG}.tmp" - -echo "✓ Configurazione SSH aggiornata" - -# Verifica la configurazione -echo "" -echo "Verifica della configurazione SSH..." -if sshd -t; then - echo "✓ Configurazione SSH valida" -else - echo "✗ ERRORE: Configurazione SSH non valida!" - echo "Ripristino del backup..." - cp "${SSH_CONFIG}.backup" "$SSH_CONFIG" - exit 1 -fi - -# Riavvia il servizio SSH -echo "" -echo "Riavvio del servizio SSH..." -systemctl restart sshd -echo "✓ Servizio SSH riavviato" - -# Mostra lo status -echo "" -echo "Status del servizio SSH:" -systemctl status sshd --no-pager -l | head -10 - -echo "" -echo "================================================" -echo "✓ Porta SSH cambiata con successo!" -echo "================================================" -echo "" -echo "IMPORTANTE:" -echo " - SSH ora ascolta sulla porta $NEW_SSH_PORT" -echo " - Connettiti con: ssh -p $NEW_SSH_PORT root@" -echo " - La porta 22 è ora disponibile per i container SFTP" -echo "" -echo "Per verificare:" -echo " ss -tlnp | grep sshd" -echo "" diff --git a/scripts/sync_modifche_vm.sh b/scripts/sync_modifche_vm.sh new file mode 100755 index 0000000..69a80e4 --- /dev/null +++ b/scripts/sync_modifche_vm.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +rsync -avz --exclude='*.pyc' --exclude '__pycache__/' /home/alex/devel/ASE/src /home/alex/devel/proxmox-ha-setup/vm1/ +rsync -avz --exclude='*.pyc' --exclude '__pycache__/' /home/alex/devel/ASE/src /home/alex/devel/proxmox-ha-setup/vm2/ +rsync -avz -e "ssh -p 2222" --exclude='*.pyc' /home/alex/devel/proxmox-ha-setup/vm1/ root@192.168.1.201:/opt/myapp/ +rsync -avz -e "ssh -p 2222" --exclude='*.pyc' /home/alex/devel/proxmox-ha-setup/vm2/ root@192.168.1.202:/opt/myapp/ \ No newline at end of file diff --git a/scripts/test-failover.sh b/scripts/test-failover.sh index 8964576..37b4ef0 100755 --- a/scripts/test-failover.sh +++ b/scripts/test-failover.sh @@ -15,12 +15,12 @@ echo "=== Test Failover HA ===" echo "" # Determina chi ha il VIP -if ssh root@$VM1_IP "ip addr show | grep -q $VIP" &>/dev/null; then +if ssh -p 2222 root@$VM1_IP "ip addr show | grep -q $VIP" &>/dev/null; then MASTER_VM=$VM1_IP MASTER_NAME="VM1" BACKUP_VM=$VM2_IP BACKUP_NAME="VM2" -elif ssh root@$VM2_IP "ip addr show | grep -q $VIP" &>/dev/null; then +elif ssh -p 2222 root@$VM2_IP "ip addr show | grep -q $VIP" &>/dev/null; then MASTER_VM=$VM2_IP MASTER_NAME="VM2" BACKUP_VM=$VM1_IP diff --git a/vm1/docker-compose.yml b/vm1/docker-compose.yml index 33ed0ea..5fd2ec0 100644 --- a/vm1/docker-compose.yml +++ b/vm1/docker-compose.yml @@ -110,16 +110,18 @@ services: DB_HOST: ${VIP:-192.168.1.210} FTP_INSTANCE_ID: 11 FTP_MODE: sftp + FTP_PORT: "22" TZ: Europe/Rome volumes: - app-logs:/app/logs - ./aseftp:/app/aseftp + - ./ssh_host_key:/app/ssh_host_key:ro - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro networks: - app-network - expose: - - "22" + ports: + - "22:22" labels: logging: "promtail" @@ -133,7 +135,6 @@ services: - app-network ports: - "21:21" - - "22:22" - "8404:8404" labels: logging: "promtail" diff --git a/vm1/haproxy.cfg b/vm1/haproxy.cfg index 3649bbc..48671ca 100644 --- a/vm1/haproxy.cfg +++ b/vm1/haproxy.cfg @@ -31,11 +31,3 @@ frontend ftp_control backend ftp_servers mode tcp server ftp1 ftp-server-1:21 check - -frontend sftp_control - bind *:22 - default_backend sftp_servers - -backend sftp_servers - mode tcp - server sftp1 sftp-server-1:22 check diff --git a/vm1/src/utils/config/loader_ftp_csv.py b/vm1/src/utils/config/loader_ftp_csv.py index 41b63e9..a6e1bf7 100644 --- a/vm1/src/utils/config/loader_ftp_csv.py +++ b/vm1/src/utils/config/loader_ftp_csv.py @@ -18,7 +18,7 @@ class Config: c.read([f"{ENV_PARENT_PATH}/env/ftp.ini", f"{ENV_PARENT_PATH}/env/db.ini"]) # FTP setting (with environment variable override for Docker) - self.service_port = c.getint("ftpserver", "service_port") + self.service_port = int(os.getenv("FTP_PORT", c.getint("ftpserver", "service_port"))) # FTP_PASSIVE_PORTS: override della porta iniziale del range passivo self.firstport = int(os.getenv("FTP_PASSIVE_PORTS", c.getint("ftpserver", "firstPort"))) diff --git a/vm1/src/utils/servers/sftp_server.py b/vm1/src/utils/servers/sftp_server.py index 40e5edc..002c3f0 100644 --- a/vm1/src/utils/servers/sftp_server.py +++ b/vm1/src/utils/servers/sftp_server.py @@ -185,7 +185,6 @@ async def start_sftp_server(cfg, host='0.0.0.0', port=22): port, server_host_keys=['/app/ssh_host_key'], # You'll need to generate this sftp_factory=SFTPFileHandler, - session_encoding=None, # Binary mode for file transfers ) logger.info(f"SFTP server started successfully on {host}:{port}") diff --git a/vm1/ssh_host_key b/vm1/ssh_host_key new file mode 100644 index 0000000..7c9068a --- /dev/null +++ b/vm1/ssh_host_key @@ -0,0 +1,49 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff --git a/vm1/ssh_host_key.pub b/vm1/ssh_host_key.pub new file mode 100644 index 0000000..fee64c1 --- /dev/null +++ b/vm1/ssh_host_key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+i1N/AMsdC/CN8NwdxJTKHdrwMC3+I6MhA9YT7Q55DpRSd62micGOOBe3lL9dNXalX4Aye7izLPsG76QHqiF1PmgDm5Z47O0ovDt3oNY25qJazQDr4u7dMfD49zcF6VO/XAoJqeDmveUZwrAUbm0XGR3uTBbNMI79tHt/FelGrUgY8/q9efFUHyvkEd73UGEcnb3zaRPaD4dkvGGUILiWwE53MBkG4MDISbVIxr6LGyUDLd/SoS8HcVaz0unkPvDODaJcNyyfnp8ckgtu+oDsS6OhYR9rTViCk9NEUi3Iq8Y2PE1IuSMsiEZoEc0sYdyrWIU+XnA/56aeh2A514BKDEwBREpvraiNKAc5uZUWK2eWGRHwlF/bAhqOqiW/fEaWJOb7UdSXXs/E55LMxAVlvJ9FGNs/3gkdlUnBhMmPxcXmI8qthVe5NsqknSDaFR/vn6TLe/hB/jgKUUnsj39fiXKliJpLAGvPSbR2GvIQ+2QEPD0JLwImNDFlbZqlCpvus9USoyeB9y9JP1kQ97V2VF7f8IzZLOoq+CwqRFiL66DfJNdiopeuaIKF1WXYhvy26W1rnjxUDVikJPDlasQBTy2giV33UCun4LRDdkU9A5sbZ60tiLIt67MAHLPODpLkwEZoBiVQWzTABrceoe+/X33LsaUwJvfLcK/BGBVQbw== SFTP-VM1-Host-Key diff --git a/vm2/docker-compose.yml b/vm2/docker-compose.yml index c6868b3..cbcdf25 100644 --- a/vm2/docker-compose.yml +++ b/vm2/docker-compose.yml @@ -84,16 +84,18 @@ services: DB_HOST: ${VIP:-192.168.1.210} FTP_INSTANCE_ID: 12 FTP_MODE: sftp + FTP_PORT: "22" TZ: Europe/Rome volumes: - app-logs:/app/logs - ./aseftp:/app/aseftp + - ./ssh_host_key:/app/ssh_host_key:ro - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro networks: - app-network - expose: - - "22" + ports: + - "22:22" labels: logging: "promtail" @@ -107,7 +109,6 @@ services: - app-network ports: - "21:21" - - "22:22" - "8404:8404" labels: logging: "promtail" diff --git a/vm2/haproxy.cfg b/vm2/haproxy.cfg index e0c555e..20f3b82 100644 --- a/vm2/haproxy.cfg +++ b/vm2/haproxy.cfg @@ -31,11 +31,3 @@ frontend ftp_control backend ftp_servers mode tcp server ftp2 ftp-server-2:21 check - -frontend sftp_control - bind *:22 - default_backend sftp_servers - -backend sftp_servers - mode tcp - server sftp2 sftp-server-2:22 check diff --git a/vm2/src/utils/config/loader_ftp_csv.py b/vm2/src/utils/config/loader_ftp_csv.py index 41b63e9..a6e1bf7 100644 --- a/vm2/src/utils/config/loader_ftp_csv.py +++ b/vm2/src/utils/config/loader_ftp_csv.py @@ -18,7 +18,7 @@ class Config: c.read([f"{ENV_PARENT_PATH}/env/ftp.ini", f"{ENV_PARENT_PATH}/env/db.ini"]) # FTP setting (with environment variable override for Docker) - self.service_port = c.getint("ftpserver", "service_port") + self.service_port = int(os.getenv("FTP_PORT", c.getint("ftpserver", "service_port"))) # FTP_PASSIVE_PORTS: override della porta iniziale del range passivo self.firstport = int(os.getenv("FTP_PASSIVE_PORTS", c.getint("ftpserver", "firstPort"))) diff --git a/vm2/src/utils/servers/sftp_server.py b/vm2/src/utils/servers/sftp_server.py index 40e5edc..002c3f0 100644 --- a/vm2/src/utils/servers/sftp_server.py +++ b/vm2/src/utils/servers/sftp_server.py @@ -185,7 +185,6 @@ async def start_sftp_server(cfg, host='0.0.0.0', port=22): port, server_host_keys=['/app/ssh_host_key'], # You'll need to generate this sftp_factory=SFTPFileHandler, - session_encoding=None, # Binary mode for file transfers ) logger.info(f"SFTP server started successfully on {host}:{port}") diff --git a/vm2/ssh_host_key b/vm2/ssh_host_key new file mode 100644 index 0000000..572be31 --- /dev/null +++ b/vm2/ssh_host_key @@ -0,0 +1,49 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff --git a/vm2/ssh_host_key.pub b/vm2/ssh_host_key.pub new file mode 100644 index 0000000..d3c8bc2 --- /dev/null +++ b/vm2/ssh_host_key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpNAD/DQNpTQI5epGWoozsDKKKkyHDWguV6dXXOl2dKkkmBoU6DqVOOYPmaHCDSCbO3MnXY/8hb7yQSOD+IFps2izBOUbPNmvGKfM3M/fxzCOnSsn2/5NoGdF2RA71xwJ0/SKucaKrHfO3fD3XsYaveyICwYV3nMzOhAqR3Fjdcjy/4qbOySIacaVYGUz1nPdcUCmwWoc6qYquldiN+bm0BgtOB0fuVcFbc/WoQ/0uSNwy32ywuu3G4XjSKSccRvBoqayebS6++4JYR38uTGwZNIVGrqwOnaIzG+on1SVfbcvFeHe0K88x1nLDXGbz9Dsbmz2SevsEqgu+FDh1/Na04++EE7ZAXJfj/UUKXcW9fbOI/3WXXbd6/Rc3A+9/D+BLPWB7/mqGw+EaiBUOJizKCiC7txToMDHs3OAJrrSj93WoCj/fFpaCoRaMnlwgPcvhpX74yNLhfnlz0Ur2i7iosnaQJOcoDA01MTT859LgQa03nz/B1qCEB5tb+BcYoqyDPZmFSPg198PlvMRmhoBIvPYoFOVLMEB1Tegk3D9x4pE0ErT57W4R2QNsVqTx/8xx6Bxt2Unnrc72PCVoyxzT6TMgDbkZofkmUEWBDECEhVIBDEbOqj+oMcBtmTD0C8mU3+EggimKGsTJqaItURRfkC9op/kwIjjc343IYypoFw== SFTP-VM2-Host-Key