Di seguito è riportata la procedura di installazione del server fdroid. Esegui tutti i comandi con l'utente debian, usa sudo dove necessario
INSTALLAZIONE 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
CONFIGURAZIONE REPO F-DROID CON 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
(Esegui le seguenti operazioni):
cambiato la directory principale aggiungendo la seguente riga:
root /usr/share/nginx/www;
Elimina o commenta /var/www/html
sudo service ngnix restart
cd /usr/share/nginx/www/fdroid
Ora posiziona i tuoi file apk nella directory 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
(aggiungi riga successiva)
serverwebroot:
android@localhost:/usr/share/nginx/www/fdroid
FASI DI INSTALLAZIONE E CONFIGURAZIONE I2P (COMPRESE LE REGOLE IPTABLES E I2P COME SERVIZIO DI SISTEMA)
INSTALLAZIONE I2P:
sudo apt-get update
sudo apt-get install apt-transport-https curl
sudo apt-get install i2p
CONFIGURAZIONE IPTABLES PER 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
(Aggiungi la riga seguente in fondo a sysctl.conf)
net.ipv4.conf.eth0.route_localnet=1
(Salva ed esci)
(Esegui i seguenti comandi):
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
IMPOSTA IL SERVIZIO I2P PER AVVIARE AL REBOOT:
systemctl enable i2p
systemctl start i2p
Accesso nel browser http://195.15.218.162:7657/config
e fai clic su Hidden Service Manager
Fai clic su Procedura guidata tunnel
Seleziona Server Tunnel e fai clic su Avanti
Seleziona il Tunnel HTTP e fai clic su Avanti
Digita il nome di qualsiasi tunnel nel nostro caso "F-DROID"
Digita Host:127.0.0.1, porta:80
Metti un segno di spunta su Avvia automaticamente il tunnel all'avvio del router e fai clic su Fine
Ora il tunnel sarà disponibile come mostrato nell'immagine sottostante e il collegamento i2p è disponibile con il tunnel F-Droid come destinazione:nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p
Accessibile come:
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo
CONFIGURA I2P PER UTILIZZARE IL 90% DELLA LARGHEZZA DI BANDA
Accesso nel browser http://195.15.218.162:7657/config e fai clic su Larghezza di banda e seleziona 90% come mostrato di seguito
CONFIGURAZIONE NGINX PER I2P
Dato che abbiamo già impostato iptables durante l'installazione di I2P, ora non ci resta che seguire la configurazione in nginx.
cd /etc/nginx/sites-enabled
nano default
commenta "ascolta 80 server_predefinito;" e "ascolta [::]:80 server_predefinito;" e aggiungi le seguenti righe
listen 127.0.0.1:80;
server_name 127.0.0.1;
Salva ed esci, quindi riavvia il servizio nginx come segue
systemctl restart nginx
METODO DI ACCESSO DI F-DROID REPOSITORY UTILIZZANDO L'URL I2P
PASSAGGIO 1:
Scarica e installa F-Droid.apk sul tuo telefonino dal seguente link
https://f-droid.org/F-Droid.apk
PASSO 2:
Poiché stiamo utilizzando l'URL I2P, per accedere all'URL i2p sarà necessario installare l'app invizible pro da Google Store:
Apri l'app invizible pro, seleziona tutte e 3 le caselle di controllo e fai clic su avvia
PASSO 3:
Ora apri l'app F-droid installata nel PASSAGGIO 1 e vai alle impostazioni come mostrato di seguito
Ora fai clic sui repository e disattiva tutto se è aperto un repository
Ora fai clic su + segno per aggiungere i tuoi repository
Nell'indirizzo dei repository inserisci il seguente indirizzo Indirizzo I2P
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo
Attiva il repository appena aggiunto, la sincronizzazione richiederà del tempo
Abbiamo finito, possiamo scaricare i nostri APK e installarli sui nostri dispositivi Android.
PROCEDURA DI CARICAMENTO E AGGIORNAMENTO DEI FILE APK IN F-DROID REPO
Scarica i tuoi APK sul tuo sistema locale
Connettiti al server usando WinSCP come mostrato di seguito
Trascina e rilascia ComboApp (Cartella/e delle applicazioni) nella home directory di Debian
Ora accedi alla shell del server F-Droid usando SSH con l'utente debian come fai normalmente ed esegui i seguenti comandi
cd /usr/share/nginx/www/fdroid
cp ~/ComboApp/*.apk repo/
sudo fdroid update –c
sudo fdroid update
Questo è tutto. Ora apri l'app client F-Droid sul tuo dispositivo Android e tutte le app che hai caricato/aggiornato dovrebbero essere visualizzate lì.
CONFIGURA SSH E SICURALO PER ACCETTARE IL COMANDO FDROID DEPLOY -V
nano /etc/ssh/sshd_config
(Aggiungi la riga seguente alla fine di sshd_config, quindi l'utente Android non sarà in grado di eseguire ssh da nessuna posizione remota)
Consenti utenti [email protected] debian
(salva ed esci)
service sshd restart
fdroid deploy –v
CONFIGURA LA SOLITA SICUREZZA DEL SISTEMA FAIL2BAN PER PROTEGGERE IL SERVER
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";
IMPOSTA NOME HOST I2P FDROID.DEV.I2P
vi /etc/hostname
(sostituisci il nome host esistente con il seguente)
fdroid.dev.i2p
(salva ed esci)
Nano /etc/hosts
(aggiungi riga seguente)
127.0.0.1 fdroid.dev.i2p
RACCOMANDAZIONI PER LA SICUREZZA, LA MANUTENZIONE DEL SERVER E I BACKUP :
Anche se ho già verificato e applicato tutte le patch/correzioni di sicurezza, ecc. e il nostro server è ora completamente sicuro, ma di seguito sono riportati alcuni consigli utili
– La chiave privata esistente potrebbe essere modificata in una fase successiva
– Il backup fuori sede/remoto deve essere configurato per dati/app ecc.
– Scattare un'istantanea settimanale del VPS tramite il provider di hosting.
-È necessario eseguire il backup di qualsiasi file di configurazione prima di apportare modifiche come da cp abc.conf a abc.conf-backup – Il controllo dello stato del server può essere eseguito ogni 3 o 4 mesi solo per assicurarsi che tutto funzioni correttamente e il server è in buona salute