Прокси+firewall. Часть третья, отслеживание соединений и маскарадинг
HTML-код
- Опубликовано: 12 окт 2016
- Делаем первое правило для проброса трафика через iptables: разрешаем сквозной пинг. Параллельно говорим о таблицах и учимся сохранять правила iptables.
Мануал: github.com/ksemaev/manuals
Бляха, такая тема - нарезали практически точь-в-точь задачу для того, чтобы взять меня стажёром в одну фирму, которая по сетям специализируется. Возьмут энивей, ибо чего от стажёра расчитывать. Знаний из универа - 0. (самому 20 лет, на 4 курсе ещё). На практике в такие дебри (относительные) не залазил, а теории, вычитанной в инете явно мало. Но теперь хотя бы не упаду совсем уж в грязь лицом) Видосу уже 3 года, актуальность не потерял. Спасибо, чувак, всё идеально доступно и понятно!
Очень хорошая фраза - "Мы с вами рассматриваем концепцию , что бы потом нормально читать мануал".
Вот так бы все преподаватели подходили к вопросу. А то все сразу - "Иди читай мануал", а что там читать , если не понимаешь что происходит в общем.
Спасибо за уроки!
Удачи!
Кирилл,спасибо большое!И побольше видео,побольше!!!!!!!!!!!!!!Когда видишь глазами,что оно работает -начинаешь понимать,что это у тебя(меня)косяк,а не пакет битый,свич (винда,виртуалбокс-вмваре-сетевуха-провайдер)!!!!!!Ищешь и находишь в итоге свои косяки,а не бросаешь дело,думая,что с устатку глаз замылился,и не начинаешь искать другой ман.
Лучшего обучения еще не встречал! Огромное спасибо!
Кирилл спасибо тебе за твой труд! .Дай Бог тебе здоровья и желание для продолжения этих серии уроков по "Практическое системное администрированию" Я поддерживаю Pasha CH и говорю тоже самое ты Лучший!!! так держать !
Спасибо Кирилл! Это лучшие уроки по iptables в мире!!!
Cпасибо Кирилл,Ты отличный учитель,легкая подача ,очень доходчиво.
автор - умничка!!!
Кирилл ты как всегда на высоте, успехов тебе, и что бы твое руководство мозг включили и организовали курс по линуксу
Ты лучший!!!
Мне еще никто так не объяснял, очень класнючие видосы, Кирилл!!!)
Спасибо! Отличные уроки! Уже месяц как смотрю Ваш канал. Все очень нравится! С нетерпением жду продолжения LPIC-2 (exam 201)
Держи, Братюня, 555-тый класс! Очень помогаешь!)))))
Все отлично чётко и ясно... Спасибо вам!
Шикарные видосы, очень все понятно и четко, репост однозначно!
Спасибо тебе! Больше Linux'а! Больше всяких beginner/advanced админских фич!
Благодарю, очень понятно всё и полезно!
Спасибо, очень хорошие видео.
Спасибо за видео!
Всё грамотно, я понял материал
Привет, чювак! Спасибо тебе!
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT без этой строчки ничего отбрасываться не будет, просто при использование tcp будет фаерфолиться каждая дейтаграмма, а не только те которые с флагами на установку соединения )) А в целом все круто )))
-- Если слетает конфигурация при перезагрузке линукс --
Вернулся к этому уроку чтобы написать коммент о сохранении конфигурации iptables при перезагрузке линукса. И кстати у меня CentOS 7.
В CentOS 7 установленной в минимальной конфигурации работал фаервол firewalld. Первое что делаем, останавливаем его и убираем из автозагрузки:
systemctl stop firewalld.service
systemctl disable firewalld.service
Запускаем, если не запущен сам iptables:
systemctl start iptables.service
И у кого при перезапуске не загружались настройки (слетали), нужно добавить iptables в автозагрузку:
systemctl enable iptables.service
Кроме того, в файле /etc/sysconfig/iptables-config ставим yes в строках:
IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"
Тогда при остановке или перезапуске службы или при выключении линукса будет сохраняться конфигурация.
Кстати конфигурация iptables в CentOS сохраняется в файл:
/etc/sysconfig/iptables
А сохранение вручную действительно командой:
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Кирилл, твои уроки очень легко смотрятся и всё понятно, просто столкнулся с такой проблемой что при перезагрузке слетают настройки. Начал копать и оказалось таких людей много. Вот и добавил сюда. Сам в линуксе совсем недавно.
Всем удачи!
Спасибо.
Не рассказывайте меньше, рассказывайте больше, потому что настройка iptables - очень непростая тема, и в нее достаточно тяжело вникнуть даже не особо начинающему линуксоиду)
rahmat
Кирилл приветствую! Спасибо тебе за то, что ты делаешь с удовольствием смотрю, очень познавательно и помогает мне как начинающему. Вопрос: с какой периодичностью будет выходить этот цикл видео про прокси? Заранее спасибо.
За неделю уложимся, думаю
Спасибо за видео,не плохо б было услышать про пробросы ,fail2ban, и может это не совсем то но и про freeradius,pppoe-server, по больше сетей)
Попробую, в меру своих знаний)
Kirill Semaev спасибо)
Есть только один косяк в рассуждениях. NAT к маршрутизации не имеет никакого отношение. NAT применяется там, где нет возможности указать маршрут до подключаемой сети (например на границе с провайдеровской сетью). Данная конфигурация и без нат работать будет, нужно только на шлюзе реальной сети указать что внутренняя сеть VB доступна через 10.0.1.5. Вот это реально будет маршрутизируемая сеть.
Кирилл, спасибо за видео! интересен вариант прокси с одним иртерфейсом, без нат, только прокся
с одним интерфейсом все гораздо проще, если прокси не выступает шлюзом, а просто пропускает через себя траффик
Этот конфиг оч редко используется, так как прокся обычно пограничная все же. А так да - все еще проще - как доберемся до squid я отмечу
iptables-persistent сохраняет настройки только в момент установки. В будущем после изменений использовать sudo dpkg-reconfigure iptables-persistent или с аналогичным результатом sudo iptables-save > /etc/iptables/rules.v4
Может, кому-то поможет: настройку производил на CentOS 7.9 и для себя смог сохранять конфиг и после ребута командой service iptables save
В центе конфиг iptables лежит тут /etc/sysconfig/iptables и подгружается при каждой загрузке системы. Соответственно, команда выше этот файлик перезаписывает и наступает счастье. Полагаю, что для юбунты команда также актуальна, или есть её аналог
10:04 - а для каких целей в таблице NAT нужны цепочки INPUT, FORWARD, OUTPUT, если данная таблица отвечает за натирование и именно через цепочки PREROUTING и POSTROUTING?
Кирилл, подскажите пожалуйста, на 4:34 Вы с компа Windows 10 (192.168.0.101) УСПЕШНО пингуете WAN сетевуху (10.0.1.5). Каким образом? У Вас в iptables для FORWARD стоит политика DROP (4:09). Каким образом Вы успешно пингуете из одной сети другую без маршрутизации?
Так там идёт пинг фаервольной тачки и это работает через INPUT. А вот если надо пинговать что-то за этой такой, то там уже нужна маршрутизация и FORWARD.
А после того как был включен маскарад, от куда линукс знает какой интерфейс внешний? Если допустим я хочу пустить трафик через какой нибудь саб интерфейс. Спасибо за урок!
Благодаря дефолтному маршруту
У меня не устанавливался пакет iptables-persistent
, пока в Input не дал ACCEPT. А у вас работает я вижу, как так?
у меня скорее всего разрешены на вход пакеты относящиеся к уже установленным соединениям `iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT` serverfault.com/questions/433295/what-is-the-right-iptables-rule-to-allow-apt-get-to-download-programs
круто
вопрос- как прикрутить теперь мониторинг и web для начальника?
все прикртутим)
Вы сказали что можно добавить правило указав имя интерфейса (8:47). Набираю
iptables -t nat -A POSTROUTING -i eth1 -j MASQUERADE
выдает ошибку
iptables v1.4.21: Can't use -i with POSTROUTING
Ubuntu 14.04
Все правильно выдает. Правильно iptables -t nat -A POSTROUTING -o eth0 -s $LAN_NET -j MASQUERADE. Где "$LAN_NET" - адрес локальной сети.
6:58 - так а почему мы пишем в цепочку FORWARD? Подразумевается же исходящий пинг, а это OUTPUT...
Потому-что FORWARD это транзитный трафик, а OUTPUT это исходящий трафик, который идет с самого сервака, если бы мы с него пинговали то, нужно было писать в OUTPUT.
Я то всегда думал, что Masquerade это линуксовое название NAT'a ... Т.е. есть и другие варианты?
Есть SNAT и DNAT, маскарад это очень частный случай
Здравствуйте Кирилл.
Выполняю ваши инструкции и возник вопрос.
У меня роутер с адресом 192.168.1.1/24
На прокси сервере:
карты:
wan 192.168.1.10/24
lan 192.168.0.10/16
на клиенте
192.168.0.101/16
после добавления правила маскарадинга:
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
не могу пропинговать роутер 192.168.1.1 (как делали в видео)
Если же клиенту задаю адрес 192.168.0.101/24, то пинг идет.
С чем может быть связано?
а дайте вывод команды route на клиенте?
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.0.10 192.168.0.101 266
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.0.0 255.255.0.0 On-link 192.168.0.101 266
192.168.0.101 255.255.255.255 On-link 192.168.0.101 266
192.168.255.255 255.255.255.255 On-link 192.168.0.101 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.0.101 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.0.101 266
===========================================================================
причем: ping 8.8.8.8 идет.
по маршрутам все норм, так что к сожалению так не подскажу, надо на обоих машинах руками походить проверить. Звучит странно конечно, может опечатка там где в масках, не знаю(
По 10 раз проверил, хотя, конечно, я специалист еще тот. Интернет через сервер раздаю, а на веб-интерфейс роутера выйти не могу. Подписчики! Ни кто не сталкивался с таким эффектом?
13:11 - я че-то про connection tracker в видео ничего не узрел...
В чем отличие masquerade от NAT?
Мне бы эти уроки пару лет назад. Спасибо, а как завернуть 443 порт на 192.168.0.10 при том что шлюз на 192.168.0.1 У меня просто squid SSL bump HTTPS на .....0.10. и вручную на каждой машине не хочется приписывать. Все эксперименты не были успешны т.к. фаервол на ....0.1
Нет там нужно правило типа iptables -t nat -A PREROUTING -i eth1 ! -d
192.168.0.11-192.168.0.100 -p tcp -m multiport --dport 443-j DNAT --to
192.168.0.10:8888 Проблема в диапазоне адресов потому ,что компы в одной
сети
что-то типа такого может?
на сквиде сделать ipfw fwd 192.168.0.10,3128 tcp from 192.168.1.0/24 to any 443
а на роутере сделать проброс 443 порта с роутера 0.1 на сквид 0.10
А это мы уже рассматриваем в пятой части, если по ней не разберетесь - пишите. Я ее сейчас выложу
Кирилл спасибо огромное! Только начинаю вникать в Линукс, в частном порядке сможешь помочь? Задача - прокси с авторизацией пользователей из домена. Домен на 2012 сервере МS, пока дошел до того, что либо прямой интернет через сквид (без авторизации, из всей локалки) либо прокси выдает :
ОШИБКА
Запрошенный URL не может быть получен
При получении URL www.newsru.com/ произошла следующая ошибка
Доступ запрещён.
Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему администратору.
Администратор Вашего кэша: webmaster.
Ни как не настроить авторизацию хотя бы просто из списков сквида.
Заранее спасибо !
ну я надеюсь что уже разобрался, мне оповещение об этом комменте не пришло(
sudo - substitute user and do
Почему делаете основную политику DROP? Если ради обучения, то понятно, а так же приходится всем по отдельности разрешать... со стандартными политиками достаточно маскарад или снат только прописать и все взлетит
если прод среда: все всегда дроп, это базовые действия для обеспечения минимальной безопасности: разрешено только то, что явно разрешено
помнится на cisco icnd тренер когда рассказывал про ACL, то говорил, что если не хотите много головной боли, то сначала все запретить, а потом разрешать только то, что надо в явном виде.