Optimiser la vitesse de transfert de données volumineuses en déployant un serveur relais croc sur le réseau interne
Si vous êtes un professionnel de l'informatique qui perd du temps à attendre des approbations à chaque transfert de données volumineuses parce que les politiques de sécurité interdisent l'utilisation de services de stockage cloud externes, cet article est votre solution. croc utilise le protocole PAKE, ce qui signifie que même le serveur relais ne peut pas voir le contenu des données. Voici comment garantir des vitesses de transfert élevées sans enfreindre les politiques de sécurité.
1. Supprimer l'attente d'approbation du pare-feu avec un serveur relais dédié
En plaçant un serveur relais directement dans la zone DMZ sans passer par des serveurs externes, vous pouvez éviter les procédures d'approbation de l'équipe de sécurité. croc utilise le port TCP 9009 pour les signaux de contrôle et les ports 9010 à 9013 pour le transfert de données. En fixant cette plage, il devient possible d'enregistrer ces règles dans le pare-feu.
Utilisez Docker pour exécuter le conteneur et isoler l'environnement.
`bash
docker network create --driver bridge croc-dmz-net
docker run -d --name croc-relay
-p 9009:9009 -p 9010-9013:9010-9013
-e CROC_PASS='비밀번호'
docker.io/schollz/croc:latest
`
Pour éviter de saisir manuellement l'adresse du serveur et le mot de passe sur chaque machine interne, ajoutez les paramètres suivants à votre fichier de profil (~/.bashrc) :
`bash
export CROC_RELAY="내부서버IP:9009"
export CROC_PASS='비밀번호'
`
Grâce à cela, le temps d'attente pour l'approbation du transfert de données est éliminé puisque vous ne passez plus par des serveurs externes.
2. Exécution automatique du serveur relais avec systemd
Il est inefficace de démarrer manuellement le relais à chaque redémarrage du serveur. Créez un fichier d'unité systemd pour maintenir le processus en exécution permanente. L'utilisation du compte "nobody" au lieu de "root" permet de minimiser les dommages en cas d'incident de sécurité.
Créez le fichier /etc/systemd/system/croc-relay.service :
`ini
[Unit]
Description=croc relay service
[Service]
User=nobody
ExecStart=/usr/local/bin/croc relay --ports "9009,9010,9011,9012,9013"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
`
Après la création, exécutez systemctl daemon-reload et démarrez le service avec la commande systemctl enable --now croc-relay.service. Si le serveur s'arrête, il se rétablira automatiquement en 5 secondes.
3. Conseils pour l'intégrité des fichiers volumineux et le transfert
Lors du transfert de dossiers de projets de plusieurs centaines de gigaoctets, il est crucial d'éviter la perte de fichiers. Utilisez tar pour archiver et vérifiez les sommes de contrôle (checksums).
Voici un exemple de script de transfert :
`bash
Côté émetteur
tar -czf data.tar.gz ./project_folder
sha256sum data.tar.gz > checksum.txt
croc send data.tar.gz checksum.txt
Côté récepteur
croc recv [코드]
sha256sum -c checksum.txt && tar -xzf data.tar.gz
`
Cette méthode permet d'éviter les vulnérabilités de décompression comme CVE-2023-43616 tout en vérifiant immédiatement après le transfert que les données ne sont pas corrompues.
4. Ajustement des paramètres réseau pour maintenir la vitesse
Lorsque le volume de données transférées atteint le niveau du téraoctet, les paramètres par défaut peuvent provoquer des goulots d'étranglement. Ajoutez les paramètres de socket suivants dans /etc/sysctl.conf pour éviter que la session ne soit coupée.
`bash
net.ipv4.tcp_keepalive_time=60
net.core.rmem_max=134217728
`
Réduire le cycle TCP keepalive à 60 secondes permet de résoudre les problèmes de coupure forcée de session par les pare-feux à état. Si plusieurs équipes utilisent ce serveur simultanément, allouez des plages de ports par équipe, comme 9010-9014 ou 9020-9024, et lancez des conteneurs séparés. Une fois la configuration du pare-feu fixée, les équipes peuvent transférer leurs données de manière stable sans interférence mutuelle.