По крайней мере частично это - так система, может иметь a games
группа, что определенные пользователи являются членами, и они все имеют права выполнить игры в games
папка
Удаление маршрута по умолчанию должно сделать это. Можно показать таблицу маршрутизации с /sbin/route
, и удалите значение по умолчанию с:
sudo /sbin/route del default
Это оставит Вашу систему подключенной к локальной сети, но без идеи, куда отправить пакеты, предназначенные за вне. Это, вероятно, не моделирует "внешний доступ" ситуация очень точно.
Можно отложить его с route add
(помнящий, что Ваш шлюз, как предполагается), или просто перезапустив сети. Я просто примерил систему с NetworkManager, и уничтожение значения по умолчанию хорошо работало, и я мог восстановить его просто путем нажатия на значок панелей и перевыбора локальной сети. Возможно, что NM мог бы сделать это отдельно на других событиях, поэтому остерегаться этого.
Другой подход должен был бы использовать iptables
управляйте для блокирования исходящего трафика. Но я думаю, что подход маршрутизации, вероятно, лучше.
Вы записали
Так, как я не моделирую "внешнего доступа" в моей машине разработки?
Как я "деактивирую" свой интерфейс Ethernet и повторно активирую позже без преград?
Эти два вопроса или один вопрос? Я не уверен, под чем Вы подразумеваете simulate "no external access"
. Однако для деактивации интерфейса Ethernet Вы могли просто сделать
#ifdown eth0
#ifup eth0
или независимо от того, что Ваше интернет-устройство. Это снизит Ваш интерфейс Ethernet и, соответственно.
Вы могли выполнить свой код в виртуальной машине (Непривилегированный режим Linux, VServer, OpenVZ, VirtualBox, VMware, KVM, …), что Вы предоставляете только сетевой интерфейс только для хоста (т.е. никакая маршрутизация от VM до где угодно, но хост-машина).
Если Вы запускаете приложение как преданный пользователь appuser
, можно ограничить доступ к сети того пользователя. Удостоверьтесь, что Вы имеете iptables
(Ubuntu: iptables Установите iptables http://bit.ly/software-small) и iproute2 (ip
команда) (Ubuntu: iproute Установите iproute http://bit.ly/software-small, iproute-документ Iproute-документ установки http://bit.ly/software-small) установленный. Затем можно использовать iptables
отметить исходящий трафик от процессов, работающих как appuser
, и ip rule
и ip route
настраивать альтернативную таблицу маршрутизации для того пользователя.
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
(Примечание: непротестированный. См. также больше пакетных примеров искажения IP Linux.)
Вот для чего нужны контейнеры ( https://linuxcontainers.org/ ) они немного похожи на chroot, но более тонкие, с контролем сети и другими вещами.
К сожалению, я понятия не имею, как их использовать. (Мое обучение заключалось только в том, что я знал, что они существуют, и что они примерно делают)
docker
- это приложение, которое управляет контейнерами, вы не хотите делать это вручную.