Mělo by to udělat odstranění výchozí trasy. Směrovací tabulku můžete zobrazit pomocí /sbin/route
a smažte výchozí nastavení pomocí:
sudo /sbin/route del default
Díky tomu bude váš systém připojen k místní síti, ale nebudete vědět, kam posílat pakety určené dál. To pravděpodobně velmi přesně simuluje situaci „žádný externí přístup“.
Můžete jej vrátit zpět pomocí route add
(pamatujte si, jaká by vaše brána měla být), nebo pouhým restartováním sítě. Právě jsem zkusil na systému s NetworkManagerem a přepnutí výchozího nastavení fungovalo dobře a mohl jsem jej obnovit jednoduše kliknutím na ikonu panelu a opětovným výběrem místní sítě. Je možné, že to NM udělá sám na jiných událostech, takže si na to dejte pozor.
Dalším přístupem by bylo použití iptables
pravidlo pro blokování odchozího provozu. Ale myslím, že směrovací přístup je pravděpodobně lepší.
Napsal jsi
Jak tedy mohu na svém vývojovém stroji simulovat „žádný externí přístup“?
Jak mohu „deaktivovat“ své ethernetové rozhraní a později znovu aktivovat pomocí nohassle?
Jsou to dvě otázky nebo jedna otázka? Nejsem si jistý, co máte na mysli pod pojmem simulate "no external access"
. Pro deaktivaci ethernetového rozhraní však můžete jednoduše
#ifdown eth0
#ifup eth0
nebo jakékoli vaše internetové zařízení. Tím se sníží a zvýší vaše ethernetové rozhraní.
Svůj kód můžete spouštět na virtuálním počítači (User Mode Linux, VServer, OpenVZ, VirtualBox, VMWare, KVM, …), který poskytujete pouze se síťovým rozhraním hostitele (tj. žádné směrování z virtuálního počítače kamkoli kromě hostitelského počítače). ).
Pokud aplikaci spouštíte jako vyhrazený uživatel appuser
, můžete tomuto uživateli omezit přístup k síti. Ujistěte se, že máte iptables
(Ubuntu:iptables Nainstalujte iptables http://bit.ly/software-small) a iproute2 (ip
příkaz) (Ubuntu:iproute Install iproute http://bit.ly/software-small, iproute-doc Install iproute-doc http://bit.ly/software-small). Pak můžete použít iptables
k označení odchozího provozu z procesů běžících jako appuser
a ip rule
a ip route
nastavit alternativní směrovací tabulku pro daného uživatele.
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
(Poznámka:netestováno. Viz také další příklady úpravy paketů IP v Linuxu.)