GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile simulare l'assenza di accesso esterno da una macchina Linux durante lo sviluppo?

L'eliminazione del percorso predefinito dovrebbe fare questo. Puoi mostrare la tabella di routing con /sbin/route ed elimina il valore predefinito con:

sudo /sbin/route del default

Ciò lascerà il tuo sistema connesso alla rete locale, ma senza idea di dove inviare i pacchetti destinati oltre. Questo probabilmente simula molto accuratamente la situazione di "nessun accesso esterno".

Puoi rimetterlo con route add (ricordando quale dovrebbe essere il tuo gateway) o semplicemente riavviando la rete. Ho appena provato su un sistema con NetworkManager e lo zapping dell'impostazione predefinita ha funzionato correttamente e ho potuto ripristinarlo semplicemente facendo clic sull'icona del pannello e scegliendo nuovamente la rete locale. È possibile che NM possa farlo da solo in altri eventi, quindi fai attenzione.

Un altro approccio sarebbe usare un iptables regola per bloccare il traffico in uscita. Ma penso che l'approccio di routing sia probabilmente migliore.


Hai scritto

Quindi, come faccio a simulare "nessun accesso esterno" nella mia macchina di sviluppo?

Come faccio a "disattivare" la mia interfaccia ethernet e riattivarla in seguito senza problemi?

Sono queste due domande o una domanda? Non sono sicuro di cosa intendi per simulate "no external access" . Tuttavia, per disattivare l'interfaccia ethernet potresti semplicemente fare

#ifdown eth0
#ifup eth0

o qualunque sia il tuo dispositivo Internet. Questo porterà la tua interfaccia ethernet rispettivamente verso il basso e verso l'alto.


Puoi eseguire il tuo codice in una macchina virtuale (User Mode Linux, VServer, OpenVZ, VirtualBox, VMWare, KVM, ...) che fornisci solo con un'interfaccia di rete solo host (ovvero nessun routing dalla VM a qualsiasi altra parte tranne la macchina host ).

Se esegui l'applicazione come utente dedicato appuser , puoi limitare l'accesso alla rete di quell'utente. Assicurati di avere iptables (Ubuntu:iptables Installa iptables http://bit.ly/software-small) e iproute2 (ip comando) (Ubuntu:iproute Installa iproute http://bit.ly/software-small, iproute-doc Installa iproute-doc http://bit.ly/software-small) installato. Quindi puoi usare iptables per contrassegnare il traffico in uscita dai processi in esecuzione come appuser e ip rule e ip route per impostare una tabella di routing alternativa per quell'utente.

ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
iptables -t mangle -A OUTPUT -m owner --uid-owner appuser -j MARK --set-mark 1

(Nota:non testato. Vedi anche altri esempi di manipolazione di pacchetti IP di Linux.)


Linux
  1. Come accedere alla cartella condivisa di Windows da Linux?

  2. Spegni la macchina Windows dal terminale Linux

  3. È possibile avviare Linux da un disco GPT su un sistema BIOS?

  4. Posso connettermi alla macchina Windows dalla shell Linux?

  5. Accesso tramite riga di comando tramite script a SQL-Server da Linux

Serie Microsoft Azure - Creazione di una macchina virtuale Linux dal modello

GooBook:accedi ai tuoi contatti Google dalla riga di comando in Linux

Come accedere alle partizioni Linux da Windows 10

Ssh Port Forward per accedere alla macchina domestica da qualsiasi luogo?

Come eseguire SSH in WSL2 su Windows 10 da un computer esterno

Come eseguire SSH in una macchina Windows 10 da Linux O Windows O ovunque