GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es posible simular ningún acceso externo desde una máquina Linux durante el desarrollo?

Eliminar la ruta predeterminada debería hacer esto. Puede mostrar la tabla de enrutamiento con /sbin/route y elimine el valor predeterminado con:

sudo /sbin/route del default

Eso dejará su sistema conectado a la red local, pero sin idea de dónde enviar los paquetes destinados al más allá. Esto probablemente simula la situación de "sin acceso externo" con mucha precisión.

Puedes devolverlo con route add (recordando cuál se supone que es su puerta de enlace), o simplemente reiniciando la red. Acabo de probar en un sistema con NetworkManager, y zapping el valor predeterminado funcionó bien, y pude restaurarlo simplemente haciendo clic en el ícono del panel y volviendo a elegir la red local. Es posible que NM pueda hacer esto por sí mismo en otros eventos, así que ten cuidado con eso.

Otro enfoque sería usar un iptables regla para bloquear el tráfico saliente. Pero creo que el enfoque de enrutamiento es probablemente mejor.


tu escribiste

Entonces, ¿cómo simulo "sin acceso externo" en mi máquina de desarrollo?

¿Cómo "desactivo" mi interfaz ethernet y la vuelvo a activar más tarde sin problemas?

¿Son estas dos preguntas o una sola pregunta? No estoy seguro de lo que quieres decir con simulate "no external access" . Sin embargo, para desactivar la interfaz de ethernet, simplemente puede hacer

#ifdown eth0
#ifup eth0

o cualquiera que sea tu dispositivo de internet. Esto bajará y subirá la interfaz de ethernet, respectivamente.


Puede ejecutar su código en una máquina virtual (User Mode Linux, VServer, OpenVZ, VirtualBox, VMWare, KVM, …) que proporciona solo con una interfaz de red solo de host (es decir, sin enrutamiento desde la VM a ningún otro lugar que no sea la máquina host) ).

Si ejecuta la aplicación como usuario dedicado appuser , puede restringir el acceso a la red de ese usuario. Asegúrate de tener iptables (Ubuntu:iptables Instale iptables http://bit.ly/software-small) e iproute2 (ip comando) (Ubuntu:iproute Instalar iproute http://bit.ly/software-small, iproute-doc Instalar iproute-doc http://bit.ly/software-small) instalado. Entonces puedes usar iptables para marcar el tráfico saliente de los procesos que se ejecutan como appuser y ip rule y ip route para configurar una tabla de enrutamiento alternativa para ese usuario.

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:no probado. Consulte también más ejemplos de manipulación de paquetes IP de Linux).


Linux
  1. Servicio del sistema operativo Linux 'iptables'

  2. ¿Cómo acceder a la carpeta compartida de Windows desde Linux?

  3. Cómo acceder a Team Foundation Server (TFS) desde Linux

  4. Apague la máquina de Windows desde la terminal de Linux

  5. Conexión a una VPN de SonicWall desde una máquina con Linux

Serie Microsoft Azure:creación de una máquina virtual Linux a partir de una plantilla

GooBook:acceda a sus contactos de Google desde la línea de comandos en Linux

Cómo acceder a las particiones de Linux desde Windows 10

Ssh Port Forward para acceder a la máquina doméstica desde cualquier lugar?

Cómo SSH en WSL2 en Windows 10 desde una máquina externa

Cómo SSH en una máquina con Windows 10 desde Linux O Windows O en cualquier lugar