@OXDemager

Как запретить «двойной» NAT?

Здравствуйте. Стоит интересная задача. Есть некая небольшая сеть. В качестве шлюза в интернет Linux-компьютер на базе CentOS. Доступ в интернет разрешен только некоторым компьютерам (фильтрация по IP адресам через iptables. В конфиге DHCP адреса строго привязаны к MACам). Продвинутый пользователь, имея ноутбук подключенный по кабелю, или компьютер с WiFI-адаптером, может сделать открытую точку доступа посредством организации NAT'а на своем компьютере. Надо это как-то запретить. На ум пришло следующее - блокировка по TTL. Все пакеты, отправляемые напрямую шлюзу (через неуправляемый коммутатор) имеют TTL равный 64. При проходе через NAT TTL уменьшается на единицу, т.е он уже равен 63. Поэтому, можно отсекать все пакеты с TTL = 63 из локалки на шлюзе через Iptables, что я и делаю (enp2s0 - интерфейс, "смотрящий" в локалку):
iptables -A INPUT -i enp2s0 -m ttl --ttl-eq 63 -j DROP

Подключил ноутбук с линуксом по кабелю, раздал вай-фай, поднял NAT и подключил к этой ноутбуковской точке доступа планшет. Но, к сожалению, моя идея не сработала. На планшете сайты открываются (примечание: очень долго открываются. Если убрать вышенаписанную строчку iptables, то сайты открываются гораздо шустрее).
Большое спасибо, что дочитали до конца. Где я таки неправ?
  • Вопрос задан
  • 1479 просмотров
Пригласить эксперта
Ответы на вопрос 4
chumayu
@chumayu
Если в башне по*бень. То что еб*нь, что не еб*нь.
Т.е. Вы думаете, что только Вам подвластно сменить значение TTL-наивный:)

Возможно стоит ограничить кол-во одновременных соединений с одного IP?
Ответ написан
athacker
@athacker
Кроме TTL, в пакете, прошедшем через NAT, ничего тотально не меняется. SRC-адрес, SRC-порт (возможно), ну и контрольные суммы. Да и с TTL тоже вопрос. На фре, например, можно собрать ядро с опцией STEALTH, и тогда в пакетах, проходящих через NAT, не будет меняться TTL.

Если на планшете сайты таки открываются -- смотрите tcpdump'ом, что за пакеты ходят в это время между ноутом и шлюзом. Разные системы задают разные TTL. Винда, например, проставляет TTL 64, а фря -- 128. Возможно, что на планшете тоже не 64. Это не объясняет тормоза, но объясняет факт открытия сайтов.
Ответ написан
Комментировать
Ogogon
@Ogogon
Объективно говоря - технически никак!

Всегда будет мальчик, который это объедет.

Но, если у вас организация, то это можно запретить административно.
В любой вменяемой организации есть внутренние правила. Там нужно запретить создание левых подключений. Такая штука называется "инициативный шлюз".
При устройстве на работу каждый сотрудник подписывает порядок пользования информационными ресурсами предприятия. Там это запрещено.

Остается только ловить нарушителей. Это можно делать аналитически.
Если у обычной рабочей станции начинается много одновременных исходящих соединений, то это значит что она или словила трояна или на ней сгородили шлюз.
Ответ написан
Комментировать
@alegzz
вы блокируете пакеты, предназначенные для сервера. для транзитных пакетов правило надо добавлять в цепочку FORWARD
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы