Voici la procédure d'installation du serveur fdroid. Exécutez toutes les commandes avec l'utilisateur debian, utilisez sudo si nécessaire
INSTALLATION DE F-DROID
apt-get install software-properties-common
add-apt-repository "http://deb.debian.org/debian buster-backports main"
apt update
apt-get install fdroidserver/buster-backports
mkdir ~/android-sdk-linux
cd ~/android-sdk-linux
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
unzip commandlinetools-linux-6858069_latest.zip
export ANDROID_HOME="$HOME/android-sdk-linux"
./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"
echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
CONFIGURATION DU REPO F-DROID AVEC NGINX
sudo apt-get install nginx
sudo mkdir /usr/share/nginx/www
sudo mkdir /usr/share/nginx/www/fdroid
sudo chown -R $USER /usr/share/nginx/www/fdroid
cd /usr/share/nginx/www/fdroid
fdroid init
nano /etc/nginx/sites-enabled/default
(Faites ce qui suit) :
changé le répertoire racine en ajoutant la ligne suivante :
root /usr/share/nginx/www;
Supprimer ou commenter /var/www/html
sudo service ngnix restart
cd /usr/share/nginx/www/fdroid
Placez maintenant vos fichiers apk dans le répertoire repo
cp /path/to/*.apk /usr/share/nginx/www/fdroid/repo/
fdroid update --create-metadata
fdroid update
adduser android
Password set: android
nano /usr/share/nginx/www/fdroid/config.yml
(ajouter la ligne suivante)
serverwebroot:
android@localhost:/usr/share/nginx/www/fdroid
ÉTAPES D'INSTALLATION ET DE CONFIGURATION I2P (Y COMPRIS LES RÈGLES IPTABLES ET I2P AS SYSTEM SERVICE)
INSTALLATION I2P :
sudo apt-get update
sudo apt-get install apt-transport-https curl
sudo apt-get install i2p
CONFIGURATION IPTABLES POUR I2P :
iptables -I INPUT -p tcp -m tcp --dport 7657 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 7658 -j ACCEPT
vi /etc/sysctl.conf
(Ajouter la ligne suivante en bas de sysctl.conf)
net.ipv4.conf.eth0.route_localnet=1
(Enregistrer et quitter)
(Exécutez les commandes suivantes) :
sysctl –p
iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 7657 -j DNAT --to-destination 127.0.0.1:7657
iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 7658 -j DNAT --to-destination 127.0.0.1:7658
iptables-save > /etc/iptables.rules
crontab -e
@reboot sudo iptables-restore -n </etc/iptables.rules
RÉGLER LE SERVICE I2P POUR DÉMARRER AU REDÉMARRAGE :
systemctl enable i2p
systemctl start i2p
Accès dans le navigateur http://195.15.218.162:7657/config
et cliquez sur Hidden Service Manager
Cliquez sur l'assistant de tunnel
Sélectionnez Tunnel de serveur et cliquez sur suivant
Sélectionnez le tunnel HTTP et cliquez sur suivant
Tapez le nom de n'importe quel tunnel dans notre cas "F-DROID"
Type Hôte :127.0.0.1, port :80
Cocher Démarrer automatiquement le tunnel au démarrage du routeur et cliquer sur Terminer
Maintenant, le tunnel sera disponible comme indiqué dans l'image ci-dessous, et le lien i2p est disponible avec le tunnel F-Droid comme destination :nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p
Accessible en tant que :
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo
CONFIGURER I2P POUR UTILISER 90 % DE LA BANDE PASSANTE
Accès dans le navigateur http://195.15.218.162:7657/config et cliquez sur Bande passante et sélectionnez 90 % comme indiqué ci-dessous
CONFIGURATION NGINX POUR I2P
Comme nous avons déjà défini iptables lors de l'installation d'I2P, il ne nous reste plus qu'à faire la configuration suivante dans nginx.
cd /etc/nginx/sites-enabled
nano default
commentez "écoutez 80 default_server ;" et "écoutez [::]:80 default_server ;" et ajouter les lignes suivantes
listen 127.0.0.1:80;
server_name 127.0.0.1;
Enregistrez et quittez, puis redémarrez le service nginx comme suit
systemctl restart nginx
MÉTHODE D'ACCÈS AU RÉFÉRENTIEL F-DROID À L'AIDE DE L'URL I2P
ÉTAPE 1 :
Téléchargez et installez F-Droid.apk sur votre mobile à partir du lien suivant
https://f-droid.org/F-Droid.apk
ÉTAPE 2 :
Puisque nous utilisons l'URL I2P, pour accéder à l'URL i2p, nous devrons installer l'application pro invisible de Google Store :
Ouvrez l'application Invizible Pro, cochez les 3 cases et cliquez sur Démarrer
ÉTAPE 3 :
Ouvrez maintenant l'application F-droid installée à l'ÉTAPE 1 et accédez aux paramètres comme indiqué ci-dessous
Maintenant, cliquez sur les dépôts et désactivez tout si un dépôt est ouvert
Cliquez maintenant sur le signe + pour ajouter vos propres référentiels
Dans l'adresse des référentiels, entrez l'adresse suivante Adresse I2P
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo
Activez le référentiel nouvellement ajouté, la synchronisation prendra un certain temps
Nous avons terminé, nous pouvons télécharger nos APK et les installer sur nos appareils Android.
PROCÉDURE DE TÉLÉCHARGEMENT ET DE MISE À JOUR DES FICHIERS APK VERS F-DROID REPO
Téléchargez vos APK sur votre système local
Connectez-vous au serveur en utilisant WinSCP comme indiqué ci-dessous
Faites glisser et déposez ComboApp (dossier(s) d'applications) vers le répertoire d'accueil de Debian
Accédez maintenant au shell du serveur F-Droid en utilisant SSH avec l'utilisateur debian comme vous le faites normalement et exécutez les commandes suivantes
cd /usr/share/nginx/www/fdroid
cp ~/ComboApp/*.apk repo/
sudo fdroid update –c
sudo fdroid update
C'est ça. Ouvrez maintenant l'application client F-Droid sur votre appareil Android et toutes les applications que vous avez téléchargées/mises à jour devraient y être affichées.
CONFIGUREZ SSH ET SÉCURISEZ-LE POUR ACCEPTER LA COMMANDE FDROID DEPLOY -V
nano /etc/ssh/sshd_config
(Ajoutez la ligne suivante à la fin de sshd_config, ainsi l'utilisateur Android ne pourra pas ssh depuis n'importe quel emplacement distant)
Autoriser les utilisateurs [email protected] debian
(enregistrer et quitter)
service sshd restart
fdroid deploy –v
CONFIGURER LA SÉCURITÉ HABITUELLE DU SYSTÈME FAIL2BAN POUR PROTÉGER LE SERVEUR
apt install fail2ban -y
vi /etc/fail2ban/jail.d/jail-debian.local
[sshd]
port = 22
maxretry = 3
service fail2ban restart
CONFIGURE AUTOMATIC SECURITY UPDATES
sudo apt install unattended-upgrades
nano /etc/apt/apt.conf.d/50unattended-upgrades
(Uncomment following lines by removing forward slashes)
"origin=Debian,codename=${distro_codename}-updates";
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security";
DÉFINIR LE NOM D'HÔTE I2P FDROID.DEV.I2P
vi /etc/hostname
(remplacez le nom d'hôte existant par ce qui suit)
fdroid.dev.i2p
(enregistrer et quitter)
Nano /etc/hosts
(ajouter la ligne suivante)
127.0.0.1 fdroid.dev.i2p
RECOMMANDATIONS POUR LA SÉCURITÉ, LA MAINTENANCE DU SERVEUR ET LES SAUVEGARDES :
Bien que j'aie déjà audité et appliqué tous les correctifs de sécurité, etc. et que notre serveur soit entièrement sécurisé, voici quelques recommandations utiles
– La clé privée existante peut être modifiée ultérieurement
– La sauvegarde hors site/à distance doit être configurée pour les données/applications, etc.
– Un instantané hebdomadaire du VPS doit être pris via le fournisseur d'hébergement.
-La sauvegarde de tout fichier de configuration doit être effectuée avant d'y apporter des modifications, comme cp abc.conf à abc.conf-backup - Une vérification de l'état du serveur peut être effectuée tous les 3 à 4 mois juste pour s'assurer que tout fonctionne correctement et que le serveur est en bonne santé