Строим домашнюю сеть

Строим домашнюю сеть

Сообщение nezabudka » 08 ноя 2015, 18:45

Еще совсем недавно моя домашняя сеть была очень простенькой, состоящей
всего из двух интерфейсов eth1 обеспечивающий доступ в глобальную сеть и br0
моста связывающего мои три виртуальные машины с целевым хостом. Мне достаточно
было прописать всего одно правило в файрвол и разрешить все три политики,
что бы связать во едино все и вся.
Код: выделить все
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

Которое отвечает за доступ в глобальную сеть из виртуалок,
тоесть подменяет ip при передачи на шлюзе, а за переадресацию
на уровне ядра отвечает строчка превращающая мой хост в роутер
Код: выделить все
net.ipv4.ip_forward=1

в файле /etc/sysctl.conf
В один прекрасный день я решила запопробовать работу с контейнерами и
установила пакет под названием docker.io ман здесь
Идея всего этого мне понравилась только не понравилось что докер
самовольно захватил мой файрвол и распорядился им как своим собственным.
Мало того что он понаписал мне там вместо правил кучу гадости, так еще и создал
дополнительный виртуальный мост для связи контейнеров. Такой наглости я вынести
не смогла и удалила нафиг и докер и хотела было уже разобратся с интерфейсом docker0
как меня посетила идея. Я оставила новый мост и повесила на него дополнительные
две виртуалки под консольной федорой. Я давно собиралась познакомится с rpm дистром
и еще хотела как то поработать с созданием тунелей и пробросом портов по протоколу ssh
и это был идеальный вариант. У меня получилось две разных сети 192.168.1.0 и 172.17.42.0
на двух разных интерфейсах и удалив правила в iptables я могла даже создать пример канала
с двойным тунелированием. Но пока я просто прописала очередное правило
Код: выделить все
iptabels -A POSTROUNTING -s 172.17.42.0/24 -o eth1 -j MASQUERADE

дающее выход в сеть новым виртуалкам.
Совсем недавно я приобрела wifi роутер dir-300 и он сразу превратил мою маленькую
домашнюю сеть в гиганскую, а я чуть не лопнула от важности. В конечном итоге
схема моей сети приобрела вот такой вот симпатишный вид.

245
Меня же теперь обеспокоил вопрос, как например я смогу подключится по ssh
к одной из виртуальных машин с нетбука или увидеть например
запущенный сайт на виртуалке. Хочу сразу заметить что как это делают большие
пацаны я не знаю, знаю что например есть в virsh параметр -redir, кстати если
кто то просветит буду безмерно благодарна, но у меня помимо родились несколько
идей. Первая это тунель по протоколу ssh. Потом, я уже писала о сервисе miredo
по протоколу ipv6 завернутому в ipv4 вот здесь
К слову сказать миредо пробьется даже за прокси провайдера и например база
данных будет доступна везде где есть доступ в глобальную сеть и есть подклю
чение к ipv6 или просто установлен пакет miredo. Первое я отбросила по причине
того что глупо шифровать данные в нутри одной физической железки. Второе,
для подключения внутри одной домашней сети необходимо отслеживать
маршрут до сервисной третьей машины за пределами этой сети мне показалось
ваще не красивым. В качестве разового соединения это конечно бы подошло,
но не в этом случае. Ну и третий вариант которым я и воспользовалась это
настройка файрвола. А именно, переадресация портов с помощью iptables.
Я привиду дополнительные правила на примере запущенного сервера apache
на 80 порту виртуальной машины VM1 . Следующее правило перенаправит запрос
пришедший на 80 порт целевой машины в локальную сеть на аналогичный порт виртуалки.
Код: выделить все
iptables -t nat -A PREROUTING --dst 192.168.0.79 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.11

Все, так как у меня домашний сервер и политика форвардинга у меня разрешена
то пакет попадет на виртуалку по зеленой. Порты можно указать через запятую.
Или например что бы пробросить ssh сервис на другой порт потому как
аналогичный будет занят и не удовлетворит все виртуалные машины, то
подберем для кождой виртуалки подходящие порты например по последней цифре ip адреса
Код: выделить все
iptables -t nat -A PREROUTING --dst 192.168.0.79 -p tcp --dport 2211 -j DNAT --to-destination 192.168.1.11:22

После ввода этого правила все пакеты попадающие на порт 2211 целевой машины
будут перенаправлены на 22 порт виртуалки.
Обратите внимание что в последнем правиле ip адрес виртуалки записан с указанием порта.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 613
Фото: 180
Стаж: 3 года 3 месяца 29 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

Строим домашнюю сеть

Спонсор

Спонсор
 

Вернуться в Сети. Настройка и администрирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3