LINUX.ORG.RU

Как правильно отключить Internet

 


0

1

Уважаемые, тут возник вопрос, как правильно отключить Internet и оставить только внутреннюю сеть. Нужно для тестирования ситуации, когда приложение не имеет доступа к мировой сети.

Есть виртуалка с сетями:

10.0.0.0/24
10.0.2.0/24
192.168.37.0/24

С этих сетей нужно закрыть доступ в Internet.

Сразу вспомнился iptables и была выдана команда:

# Generated by iptables-save v1.4.21 on Sat Jun 27 17:21:29 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:LOG_DROP - [0:0]
-A INPUT -s 10.0.0.0/24 -j ACCEPT
-A INPUT -s 10.0.2.0/24 -j ACCEPT
-A INPUT -s 192.168.37.0/24 -j ACCEPT
-A INPUT -j DROP
-A OUTPUT -d 10.0.0.0/24 -j ACCEPT
-A OUTPUT -d 10.0.2.0/24 -j ACCEPT
-A OUTPUT -d 192.168.37.0/24 -j ACCEPT
-A OUTPUT -j LOG --log-prefix "BLOCKED "
-A OUTPUT -j DROP
COMMIT

После чего сразу проверка:

[root@master ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

И вроде бы как работает (ни пинги не проходят ни сайты в браузере не открываются).

Но меня терзают смутные сомнения, потому что если у провайдера ведутся какие профилактические работы и Internet соединения нет, то никаких:

Operation not permitted

нет. Там другой ответ.

Возникает вопрос, правильно лия смоделировал ситуацию «нет Internet соединения» с помощью приведенных выше iptables rules?



Последнее исправление: voran (всего исправлений: 1)

для тестирования ситуации, когда приложение не имеет доступа к мировой сети

rm /etc/resolv.conf будет достаточно

Spoofing ★★★★★
()

не имеет доступа к мировой сети.

не иметь доступа можно разными способами

как вариант, можно несуществующий default gateway указать

Harald ★★★★★
()
Ответ на: комментарий от Spoofing

rm /etc/resolv.conf будет достаточно

Вообще, ТС восьмерки пинговал для теста. Без ресольва и айпишники не найдёшь? Не знал...

Dementy ★★★
()
Ответ на: комментарий от Dementy

Спуф ересь прогнал. Тсу надо либо указать левый гейт либо вовче его удалить.

Anoxemian ★★★★★
()
Ответ на: комментарий от Dementy

пинговал что сподручнее для проверки iptables.

а в приложении наверняка используется привязка к хостам.

вряд ли в современном мире люди будут использовать привязку к IP. o_O

и ниразу не ересь. когда он удалит маршрут или будет делать DROP, соединение сразу прервётся, а его приложение учитывает третью сторону? что если соединение будет отваливаться не сразу, а по-таймауту, когда dns отвечает NYEET? то-то же. пусть учитывает такие нюансы.

Spoofing ★★★★★
()
Последнее исправление: Spoofing (всего исправлений: 2)
ip a d default

Это если внутренняя сеть плоская, без маршрутизации.

anonymous
()
Ответ на: комментарий от Spoofing

вряд ли в современном мире люди будут использовать привязку к IP

Это точно. Даже в локалочке могут быть имена, а не 192.168.то, да 192.168.это. А ТСу локалочку хочется оставить.

upd. Или это я теперь ересь прогнал?.. За имена в локальной сети кто вообще отвечает?..

Dementy ★★★
()
Последнее исправление: Dementy (всего исправлений: 1)
Ответ на: комментарий от anonymous

Локальный компьютер шлёт имя другого локального компьютера локальному DNS, локальный DNS в ответ дает айпишник? resolver для этого не нужен? Тогда я действительно прогнал.

Dementy ★★★
()
Ответ на: комментарий от Dementy

Уточнение. Аппликуха стучится по restful api на сервак на Амазоне. Стучится по имени (не по ip). Мне нужно смоделировать ситуация «нет Internet соединения». Iptables являются фильтром/фаерволом. Они тупо дропают пакеты и все. А нужно, чтобы, как по настоящему. Я не it-шник, я поэт. Поэтому так много неточностей в формулировке. Хотелось бы узнать, как моделируют ситуацию «нет Internet соединения» по правильному, как делают это в «московских и питерских гостиных»?

voran
() автор топика

Что такое «internet»? Что значит «отключить internet»?

targitaj ★★★★★
()

Там другой ответ.

конечно, там другой ответ.

Operation not permitted

касается только и исключительно процессов на этой машине

targitaj ★★★★★
()
Ответ на: комментарий от Dementy

Локальный компьютер шлёт имя другого локального компьютера локальному DNS, локальный DNS в ответ дает айпишник?

Сложно сказать, что там подразумевалось под локальным DNS, но вообще да, наверное.

resolver для этого не нужен?

У DNS-сервера для своей сети может быть своя зона, он сам себе резолвер. Она может быть и неявной, не требующей особых настроек. Например, dnsmasq, работая как DHCP и DNS может разрешать имена клиентов, которым выдаёт адреса, если они удосужились представиться. Это не очень-то энтерпрайзно, но для дома годится.

Тогда я действительно прогнал.

Не совсем :) Есть такие штуки, как mDNS и LLMNR, они работают без сервера через мультикасты. Не уверен, что они популярны, особенно последнее, но я у себя в сети пробовал, и оно вполне себе работает.

anonymous
()
Ответ на: комментарий от voran

Есть разные причины почему один узел в сети не смог достучаться до другого. В вашем случае, наверное проще всего будет добавить `127.0.0.1 name-of-the-server-in-AWS’ в /etc/hosts.

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.