Firewall Piercing mini-HOWTO | ||
---|---|---|
Пред. |
На самом деле существуют разные firewall, а не только те, которые позволяют вам устанавливать telnet-соединения. Но, в любом случае, пока может существовать поток пакетов, идущий через firewall, будет и способ его обойти. Вопрос лишь в сложности написания программы обхода.
Достаточно простой случай - когда вы можете запустить ssh на локальной машине и pppd на удаленной. Чисто теоретически, cotty версии 0.3a должен это поддерживать, но в fwprc поддержки ssh нет. Возможно, вы реализуете эту поддержку самостоятельно. Вы даже можете сделать это без firewall - таким образом вы получите защищенную Виртуальную Частную сеть "VPN" (Virtual Private Network). Подробнее читайте мини-HOWTO "VPN".
Если вы должны работать с 7-битной линией - используйте SLIP, вместо PPP. Я никогда не тестировал подобный вариант - в этом просто нет необходимости, почти все линии в наше время более-менее поддерживают 8 бит; но больших трудностей быть не должно.
Если единственный путь через firewall - это WWW-прокси (обычно - это самый минимум в сети, подключенной к Интернету), то еще не все потеряно. Вы можете написать демона, который буферирует входящие и исходящие данные, и посылает их по HTTP-соединениям, достигая тем самым некоторого подобия протокола telnet-поверх-HTTP, над которым можно запустить fwprc. Возможно, это будет не очень быстро и гибко, но для fetchmail(1), suck(1) и им подобным неинтерактивным программам этого хватит.
Если вам надо нечто более производительное, но не фильтруется нечто очень дикое (запросы DNS, ICMP-пакеты, и т.п.), то у вас дела достаточно плохи. Вам придется править в ядре работу с IP, используя (например) систему работы с пакетами из проекта Fox. Вы сможете получить IP-по-HTTP, IP-по-DNS, IP-по-ICMP, или нечто подобное - это все требует не только достаточно сложного протокола обмена, но и работы с ядром OS - это достаточно сложно.
Кстати, если вы будете обходить Firewall при помощи псевдо-HTTP демона, не забудьте вложить в него пару-тройку веб-страниц, чтобы сбить с толку противных подозрительных администраторов firewall.
Я ощущал необходимость написать этот документ, но у меня не было достаточно времени, поэтому этот мини-HOWTO получился достаточно сыроват. Он таким и останется до тех пор, пока я не получу достаточно отзывов и предложений, и из них пойму, что и где дописать. Я буду очень рад отзывам и помощи. С радостью отдам в хорошие руки поддержку этого мини-HOWTO.
В любом случае, данный документ осветил некоторые проблемы, решением которых может заняться человек, которому не жалко времени (или денег?), чтобы их разрешить: в идеях нет ничего сложного, но вот детали могут достаточно сложны.
Не стесняйтесь присылать мне свои вопросы, и, я надеюсь, решения проблем, связанных с этим документом.
" Я снимаю всякую ответственность с себя за содержание этого документа. Если его использование обернется против вас самих - это ваши проблемы. А не моя вина. Если вы не осознаете риск сопряженный с выполнением этих инструкций, не делайте этого. Если все же сделаете, а после этого кто-то проникнет в сеть вашей компании, вы потеряете работу, компания - миллионы долларов, то не приходите ко мне со слезами."