суббота, 6 февраля 2010 г.

Microsoft Россия борется со свободным ПО с помощью «В Контакте»?

Похоже, российское подразделение корпорации Microsoft нашло новый интересный способ создавать дурной имидж открытому и свободному программному обеспечению — с помощью крупнейшей русскоязычной социальной сети «В Контакте».

Несколько недель назад в «контактовской» группе «Open Source», посвященной ПО с открытым кодом, было замечено появление девушки, которая начала недвусмысленную провокацию в теме, посвященной обращению к Президенту РФ насчет свободного ПО. Приверженцы FLOSS оперативно отреагировали, но у девушки были припасены красивые маркетинговые реплики на любые заявления сторонников Open Source…

Беглый анализ ситуации выявил весьма интересные подробности. В социальной сети «В Контакте» существует группа под безобидным и весьма общим названием «IT-сообщество (перезагрузка)». В ее руководстве помимо обозначенной девушки (Татьяны Макаровой) и, по всей видимости, ее коллеги (Нины Мирадовой) можно увидеть и двух заметных представителей Microsoft Россия, не скрывающих свою принадлежность к корпорации.

В этой группе регулярно заводятся «обсуждения», посвященные Open Source, в которых под предлогом образования населения рассказывается про свободное и открытое ПО, после чего, обычно уже в ходе дискуссий, делаются замечательные выводы о неприменимости такой бизнес-модели ПО — причем, как правило, со ссылками на «подтверждения» из различных сетевых источников. Так, например, в недавнем (январь 2010 года) обсуждении вопросов надежности Linux-систем приводится ссылка на статью 2001 года, где утверждается, что «cбoй питaния мoжeт пpивecти к paзpyшeнию фaйлoвoй cиcтeмы, пoлнoй нepaбoтocпocoбнocти oпepaциoнки и пoтepe дaнныx».

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

Источник: Дмитрий Шурупов (nixp.ru)

воскресенье, 31 января 2010 г.

Общесистемные настройки Mozilla Firefox

Общесистемные настройки Mozilla Firefox хранятся в директории «/etc/firefox-3.x», где 3.x - версия браузера.
Для примера отключим режим «Safe Browsing». Браузер с включенным «Safe Browsing» может выкачать от 3 до 11 мегабайт данных в день, используемых для оценки безопасности сайтов.
Открываем файл «/etc/firefox-3.x/pref/firefox.js» и в конец файла добавляем эти строки

// Отключаем Safe Browsing
pref ("browser.safebrowsing.enabled", false);
pref ("browser.safebrowsing.malware.enabled", false);

воскресенье, 17 января 2010 г.

Открытое Общественное Письмо Президенту России

Текст письма и сбор подписей в его поддержку.

Медведеву Дмитрию Анатольевичу

Здравствуйте, уважаемый Дмитрий Анатольевич!

К Вам обращаются те, кто использует Свободное Программное Обеспечение (СПО) ежедневно. Мы давно убедились в жизнеспособности такого варианта развития ПО. Являясь патриотами своей страны – России, мы хотим видеть ее свободной от необходимости вкладывать средства в иностранные экономики без дивидендов.
Данным письмом мы бы хотели обратить Ваше внимание на тенденции, сложившиеся во всем мире. Европа и США, страны Азии и Латинской Америки уже выбрали этот путь для своих государственных учреждений. Почему же в России про СПО знают лишь энтузиасты?
Еще задолго до наступления Мирового финансового кризиса многие государственные учреждения ведущих стран мира начали успешно переходить на СПО. В основном, в силу различных причин, базовой платформой свободных информационных систем становится Linux (Приложение 1).
Наша же страна, к сожалению, пошла по иному пути. Уже на протяжении многих лет государственный бюджет расходуется на приобретение лицензионного ПО. Под лицензией понимается EULA компании Microsoft. Хотя, на наш взгляд, все эти годы у государства был выбор.
На сегодняшний день при проведении тендеров на поставку программного обеспечения в государственные учреждения, СПО даже не указывается как альтернатива. Кроме того в некоторых документах «подписанных на самом высоком уровне», возможность установки программных продуктов не от компании Microsoft просто запрещена (Приложение 2). А это уже искусственное создание монополии со стороны государства, хотя, как нам, кажется, должно быть наоборот.
Мы считаем излишним ещё раз рассказывать о финансовой выгоде и вопросах государственной безопасности, когда даже США в государственном секторе и обороне пользуется открытыми решениями, не смотря на то, что Microsoft является их налогоплательщиком. Развитие СПО позволит эффективно вкладывать средства в отечественные компании занимающиеся разработкой программного обеспечения, вместо того, чтобы инвестировать средства в куски пластика, по сути, принадлежащие стране-конкуренту (хотя корректнее было бы сказать партнеру), и которые фактически являются "Лицензионными копиями Windows". Это ставит Российские государственные институты (армию, государственный аппарат, университеты, школы) в колоссальную зависимость (Приложение3), выход из которой один: начать плановый переход «сверху» на отечественные продукты ПО с открытым кодом, на базе готовых операционных систем под свободной лицензией.

Неужели Наше государство, заявляющее на весь мир о своем интеллектуальном потенциале не способно на его инвестирование? Пройдет несколько лет, и иностранные координаторы, развивающие СПО, начнут к нам прислушиваться. Неужели вход на мировой рынок информационных технологий Россия надеется осуществить с помощью разработок под закрытые от всего мира программные платформы?
Мы считаем, необходимо создать отдельный институт, подобный РАН или МГУ, где готовились бы специалисты знающие архитектуру современных открытых операционных систем, эти люди смогли бы снять зависимость страны от чужих разработок, и, кроме того, привлечь лучшие «умы» мира на модернизацию уже Нашего кода.
Что касается Запада, то там развитие СПО происходит методами, которые повсеместно применялись в СССР. Некое конструкторское бюро (КБ) разрабатывает двигатель. Его заказывают в другие КБ, оплачивая модернизацию для себя, но в целом это тот, же двигатель, установленный на десятках моделей техники. Отличным примером такого взаимодействия является КамАЗовский мотор, созданный огромной страной для своих нужд.
Большинство разработок в СССР были открыты региональным производителям. Вспомните хоть один телевизор или УКВ-приемник без схемы деталей в комплекте. Таким образом, модель СПО очень напоминает упомянутую выше систему. На западе она уже приживается, в то время как мы от нее отказались.
Многие отечественные компании уже начали, а некоторые и вполне успешно завершили переход на СПО своими силами. Но как, ни странно, они встречают сопротивление со стороны государства, заявляющего о поддержке инноваций. Существуют "эксперты", приравнивающие свободные программы к подаренным. Соответственно, по Нашим законам, все подаренное должно быть обложено налогами (Приложение 4). Например, пользователи FireFox (разработка http://www.mozilla.org/) или "Налогоплательщик ЮЛ" (разработка ФГУП ГНИВЦ ФНС России), должны заплатить налог на дарение. Данное толкование законов является, на наш взгляд, нонсенсом, который противоречит здравому смыслу и истинным интересам страны. Необходимо в кратчайшие сроки разработать пакет нормативных документов исключающих подобные трактоваия в отношении инноваций и, в частности, программных продуктов с открытым кодом, независимо от страны их происхождения.
В целях обеспечения независимости от проприетарного ПО и их закрытых форматов, считаем целесообразным использование в государственных учреждениях открытые форматы обмена документами. Переход на такие форматы документооборота можно осуществить уже сейчас, т.к. их поддерживают все современные программы (в том числе и проприетарные), а смену самого ПО осуществить постепенно. Это позволит сэкономить значительные средства при организации обеспечения деятельности государственных органов и предприятий (Приложение 5).
Просим Вас дать поручение Министерству связи (Щеголеву И.О.) разработать необходимые проекты документов, провести их публичное обсуждение и по результатам принять соответствующие нормативные акты.
Подводя итог всему вышесказанному, хотим ещё раз повторить наши основные требования:
1. перевод всех государственных учреждений на СПО;
2. обязательное указание продуктов СПО во всех государственных тендерах;
3. создание единого Российского института разработки и внедрения СПО;
4. перевод всего документооборота в стране на открытые форматы файлов.

Надеемся на понимание с Вашей стороны.
С наилучшими пожеланиями, пользователи СПО.

Оригинал текста, приложения к нему и обсуждение петиции по адресу http://www.oslinux.ru/pismo



Текст письма и сбор подписей в его поддержку.

воскресенье, 6 декабря 2009 г.

Инноватор ли Microsoft?

David A. Wheeler
26 марта 2001 c небольшими изменениями на 11 сентября 2006

Введение
Джим Оллчин, (бывший исполнительный директор MS – прим. перев.) пытается убедить правительство США, что программное обеспечение (ПО) с открытыми исходными кодами (или, по крайней мере, Общественная публичная лицензия – General Public License) это угроза для США и интеллектуальной собственности. При этом одним из его аргументов служит утверждение, что ПО с открытым исходным кодом представляет собой угрозу для инноваций. В своих последних “судебных разбирательствах”, Microsoft также использует аргумент “инноваций” в качестве оправдания для своих собственных (хорошо известных и признанных судом незаконными) методов ведения бизнеса.
Однако после изучения приводимых ими доказательств, я сделал вывод, что Microsoft в реальности НЕ является инноватором, поэтому ее претензии на отмену решений суда, потому что “они инноваторы” явно не обоснованны. Суд определил, что методы ведения бизнеса Microsoft незаконны: популярность ее продуктов вызвана отнюдь не инновациями, а тем, что она “подсаживает” клиентов на свой продукт (ведь без клиентов не будет прибыли) [*]. Однако это не делает из Microsoft новатора, по крайней мере, в области IT-технологий. Нет ничего плохого в том, что какая-то компания не является новатором. Но для отмены судебных решений о наказании за незаконную деятельность и накладывании новых ограничений на конкурентов через суд (как они это любят делать – прим. перев.), должны быть серьезные доказательства наличия инноваций.
Ниже я приведу доказательства того, что:

  1. Ни одна из ключевых инноваций программного обеспечения не является собственной разработкой компании Microsoft;
  2. Все важные продукты Microsoft в основном представляют собой копии существовавших ранее продуктов, и
  3. Существующие ключевые технологии Microsoft также не являются инновационными.

Microsoft не является новатором, и поэтому она не должна использовать термин “инновации” ни для защиты собственных интересов, ни в качестве аргумента для убеждения других в том, что ПО с открытым исходным кодом (ОSS) представляет собой угрозу для процесса создания инноваций (поскольку для подтверждения этого нет никаких серьезных доказательств).
Но для начала мы должны определить термин “инновация”. “Инновацией” не является простое комбинирование нескольких функций в одном продукте – это описывается термином “интеграция” и не требует каких-либо “инноваций”, а только серьезного объема работы. В частности, если компания интегрирует функции в один продукт для того, чтобы препятствовать своим клиентам использовать конкурирующие продукты (хорошо известная практика Microsoft) – то это “хищничество”, а не инновации.
“Инновация” – это не конечный продукт, хотя некий продукт может реализовать или иметь в своем составе какие-то инновации. Новая реализация какого-то продукта, созданная для того, чтобы, например, сделать то же самое, но на другом компьютере (системе, архитектуре), также не является инновацией. Инновация – это новая идея. И в данном контексте, имеется в виду что это новая идея в технологиях ПО.

Microsoft никогда не являлась разработчиком своего основного программного обеспечения

Ну что ж, давайте попробуем определить понятие “наиболее важные (ключевые) технические нововведения в области программного обеспечения” и увидеть, автором каких из них является Microsoft. Несколько лет назад я заинтересовался темой того, “что являлось наиболее важными инновациями в программном обеспечении”, и поэтому составил собственный список различных событий, имеющих отношение к компьютерному миру. Я использовал множество различных источников, чтобы не упустить ничего важного. Например, я использовал информацию из архива истории компьютеров IEEE (IEEE - институт инженеров электрики и электроники – прим. перев.), виртуальный музей вычислительной техники и интернет-хронологию Гоббса. Я не обнаружил существования общепринятого списка наиболее важных инноваций в программном обеспечении, поэтому возможно, что это самый точный список. Понятно, что до 1975 года у Microsoft не могло быть никаких инноваций, так как они тогда только появились, но я хотел создать список ключевых инновационных технологий в ПО вообще, потому что так нагляднее можно увидеть, что именно они собой представляют. Таким образом становится очевидно, что то, что некоторые принимают за инновации Microsoft, на самом деле существовало задолго до ее появления.
Мои результаты (список основных инноваций в программном обеспечении), приведены здесь (чуть позже постараюсь осилить перевод и его – прим. перев.). Список интересен тем, что он включает в себя графический пользовательский интерфейс, текстовые процессоры и многое другое, что мы принимаем сегодня как должное. Ничего из приведенного там не было создано Microsoft. Проще говоря, нет никаких доказательств того, что Microsoft когда-либо создавала какие-либо важные инновации в ПО.
Некоторые из приведенных инноваций являются необходимыми для создания продуктов, однако этот уровень достигается каждым программистом, разрабатывающим какой-либо продукт (независимо от того, создаются проприетарные продукты или свободное/открытое ПО). И, наоборот, некоторые из приведенных инноваций (например, TCP/IP и World Wide Web) первоначально были реализованы и распространялись как свободное/открытое ПО. Если вы хотите увидеть реальные инновации, то свободное/открытое ПО имеет лучший послужной список по количеству инноваций, чем программное обеспечение Microsoft.

Продукты Microsoft не инновационны

Ниже я привел то, что я понимаю как ключевые продукты Microsoft, и обнаружил, что ни один из них не является принципиально инновационным, либо это просто новая реализация уже существующих продуктов:

  1. Бейсик/BASIC: Microsoft появилась в 1975 году, но сам BASIC был изобретен еще в 1964 году, да и то был лишь еще одним из многих языков программирования.
  2. В 1981 г Microsoft выпустила MS-DOS. Данное название было просто новым именем данным Microsoft для QDos – “Quick and Dirty Operating System” (”Операционная система сделанная кое-как, на скорую руку, дешево и сердито” – прим. перев.), написанной Тимом Патерсоном из Seattle Computer Products за 6 недель незадолго до этого. Патерсон написал QDos с помощью купленного им руководства для CP/M и использовал это руководство в качестве основы для своей собственной программы, поэтому QDos сама по себе не несла ничего нового. Когда IBM вела c Microsoft переговоры относительно нового ПО для своих новых PC, Microsoft быстро купила QDos и переименовала его, что и позволило ей заключить сделку с IBM (это отражено в фильме “Пираты Кремниевой долины” – прим. перев.). Естественно, такое понятие операционной системы устарело уже в 1981 году, так что MS-DOS никак не тянет на инновацию. Позже, Microsoft добавила в нее такие функции, как поддержка каталогов, но они так же не были чем-то новым и их идея была взята из другой операционной системы (UNIX).
  3. Windows: В 1983 году Microsoft объявила, что она будет заниматься разработкой Windows. Windows 1.0 была окончательно выпущена ноября 1985 года (с двухлетним опозданием), но она работала очень плохо и имела мало приложений. Так было пока не наступило 22 мая 1990 года, когда была выпущена Windows 3.0, которая получила всеобщую поддержку и признание. Интерфейс Windows сильно напоминал интерфейс Apple Macintosh, который, в свою очередь, напоминал интерфейс Xerox PARC, который напоминал оригинальное изобретение Дугласа Энгельбарта, сделанное еще в 1968 году (графический интерфейс с использованием мыши). Поскольку Windows являлась копией Macintosh, который также базировался на основе более ранних работ, Windows также не может считаться инновацией.
  4. Windows NT/2000: В Microsoft Windows NT наконец-то появилась (с ограничениями) возможность многопользовательской работы и возможность защиты памяти, что позволяло использовать ее для работы в качестве сервера, однако это было сделано с обильным заимствованием идей из уже существовавших VAX VMS и UNIX-систем (которые также не были первыми из подобных операционных систем).
  5. Word: Это просто еще один текстовый процессор, который Microsoft начала разрабатывать в 1983 году. Lexitron и Linolex разработали в 1972 году первую экран-ориентированную систему обработки текстов, уже существовавшую до Microsoft и точно также им предшествовал WordStar (1979).
  6. Excel: табличный процессор, реализованный существенно позже своих предшественников - VisiCalc (1978) и Lotus 1-2-3.
  7. Access: Еще одна система баз данных. Поскольку она является реляционной, основная инновация которую она она воплощает – это модель Кодда, которая была разработана в 1970 году (Microsoft тогда еще не существовало).
  8. Internet Explorer (IE): Internet Explorer не является оригинальной разработкой Microsoft, он всего лишь слегка расширенный в возможностях старый веб-браузер NCSA Mosaic. По меньшей мере, до версии 5.5. выбрав пункт меню “Неlp”-”About” можно было увидеть, он основан на NCSA Mosaic. NCSA Mosaic (TM) был разработан в Национальном центре суперкомпьютерных приложений (NCSA) при университете Иллинойса в Урбана-Шампейн (the University of Illinois at Urbana-Champaign). Распространялся данный браузер по лицензионному соглашению со Spyglass, Inc. Резюме – веб-браузеры (и IE) не являются инновацией Microsoft.
  9. Active Directory: это еще одна реализация Lightweight Directory Access Protocol (LDAP), который восходит к концу 80-х годов (задолго до “Active Directory”), с собственным вариантом MIT Kerberos от Microsoft. Резюме, тоже никаких серьезных инноваций.

Есть, конечно, и другие продукты Microsoft, просто я не могу их все перечислить в столь короткой статье. Но конечно, если Майкрософт когда-нибудь создаст какой-нибудь свой собственный инновационный продукт, то он мог бы стать одним из лучших в ряду себе подобных. Вместо этого, мы находим, что основные продукты Microsoft – это большей частью реализации ранее существовавших продуктов. Нет ничего плохого в попытке повторного воссоздания таких же продуктов чуть лучше и дешевле, чем кто либо другой, а пользователи даже рады видеть данный тип конкуренции! Однако, это НЕ инновации.

Технологии Microsoft не инновационные

Даже если весь продукт не является инновационным в целом, он может включать в себя (реализовывать) некоторые инновации. Ведь так или иначе разработчики все равно привносят какие-то инновации; грубо говоря, разработчик тщательно продумывает каждую деталь и наверняка привносит в работу свои идеи.
Итак, давайте взглянем на некоторые технологии от Microsoft, и посмотрим, есть ли у них какие-либо инновации, которые значительно лучше, чем у других компаний или в свободном/открытом ПО:

  1. COM/DCOM: Это основные механизмы коммуникации в Windows, которые позволяют программам находить, вызывать друг друга и поддерживать “компонентное программирование”. Однако, это просто еще одна реализация удаленного вызова процедур (RPC), конечно же не первая, и к тому же COM даже не может работать по сети!
  2. SMB/CIFS: Протокол Microsoft для обмена файлам и работы с принтерами. Но не они изобрели его. Дополнительные сведения об этом приведены здесь
  3. . NET: Часто бывает затруднительно прийти к соглашению об определении .NET, что затрудняет его анализ. Наилучшее описание я нашел здесь – Sean Wilson’s “.NET – So What? (в оригинале приведена нерабочая ссылка – прим. перев.) Здесь говорится: “.Net – общее название для огромного количества различных инициатив Microsoft, включающее в себя несколько направлений: средства разработки, серверы, клиенты, веб-служб XML. Приложения исполняются внутри “.NET Framework”, которая по существу является аналогом Java (поддержка загрузки кода с использованием промежуточного формата). .NET Framework целенаправленно разработан для поддержки нескольких языков программирования, что не являлось целью разработки Java. Но в то же время инфраструктура Java также поддерживает несколько языков и разные устаревшие технологии (такие, как UCSD p-код и ANDF), которые были специально разработаны для этого много лет назад. В начале своей статьи он говорит, что .NET не особенно инновационен по идеям… Многие из заложенных в него идей уже были реализованы ранее и прекрасно известны.
  4. Сводные таблицы: В 1986 году Пито Саласу пришла в голову идея сводных таблиц в электронных таблицах, когда он работал в Lotus Development Corporation Group. Они были продемонстрированы в 1987 году, и программы, в которых они были реализованы (ныне Lotus Improv) были выпущен в 1988 году. Lotus Improv был выпущен для Windows в 1993 году. В Excel сводных таблиц не было до релиза Excel 97. (Source: “Pivot Table Data Crunching” by Bill Jelen and Michael Alexander).

Некоторые могут заметить, что у Microsoft имеются некоторые патенты. К сожалению, патенты на программное обеспечение, не свидетельствуют об инновациях, а говорят только о том, что заявитель имеет достаточно денег, чтобы представить многие патентные заявки. База данных существующих работ в области программного обеспечения, используемая патентными экспертами, является неадекватной, причем экспертам в данной области, как правило, платят меньше, чем остальным (что снижает их количество и квалификацию), патентные эксперты имеют очень мало времени для рассмотрения каждой заявки на патент и большой соблазн просто принять заявку (с незначительными изменениями), чем отклонять запрос как некорректный. В результате, часто предоставляются патенты в области программного обеспечения на уже существующие или очевидные идеи. Действительно, США в 2007 году решение Верховного суда усилило внутренние правила проверки патентов на “очевидность”, потому что многие патенты были предоставлены на очевидные идеи, в результате чего действие таких патентов, вероятно, неосуществимо. Даже если вы и примете такую неправдоподобную идею о том, что патенты на программное обеспечение отражают инновации и захотите сравнить количество идей с разработчиками свободного/бесплатного ПО, то станет ясно, почему многие лидеры в области свободного ПО сильно озадачены вопросами применения патентов. Это наводит на мысль о том, что подсчет патентов из сообщества свободного ПО по-прежнему не позволит провести беспристрастное сравнение количества идей (потому что там не принято патентовать идеи и поэтому нельзя использовать патенты как сравнительный показатель количества идей – прим. перев.). Многие страны не позволяют патентовать идеи в ПО, но в США это возможно, а также там существует целый ряд организаций, которые противостоят идее патентов на ПО. Более подробную информацию о проблемах с патентами на программное обеспечение, можно посмотреть на сайте таких организаций, как League for Programming Freedom (Лига за свободу программирования).

Заключение

Я показал, что:

  1. Ни одна из существующих инноваций программного обеспечения не была предложена Microsoft,
  2. Ключевые продукты Microsoft – в основном копии существующих продуктов, и
  3. Ключевые технологии Microsoft не являются инновационными.

Microsoft всегда “висели на хвосте” у тех, кто является реальными инноваторами. Возможно, Microsoft имеет талант в мелочах, но нет абсолютно никаких доказательств того, что они более талантливы, чем какая-либо другая группа разработчиков.

Я не считаю плохой компанию, которая не является инновационной. В конце концов, цель Microsoft (или любой другой компании) – зарабатывание денег для своих акционеров, а не создание инноваций. Но утверждать, что вы инноватор, если вы им не являетесь – лицемерно. Оправдание незаконных действий во имя инноваций, когда этих инноваций не было — лицемерно вдвойне. И, если этот аргумент является центральным для убеждения правительства в том, что ему не следует поощрять свободное/открытое ПО, то простой анализ быстро приводит к выводу о его (аргумента) неправильности.

Только Microsoft, кажется, считает, что свободное/бесплатное ПО является основной проблемой для компьютерной индустрии. Множество ключевых нововведений пришли из сообщества свободного/бесплатного ПО, включая практически весь Интернет, поэтому очевидно, что такое ПО стимулирует инновации, а не наоборот. С другой стороны, свободное ПО получило в настоящее время широкое признание, и тому есть много причин. Например, многие крупные компании (такие как IBM, HP и Sun) осуществляют поддержку открытых проектов. Даже аналогичные Microsoft компании, продающие проприетарное программное обеспечение, такие как Oracle, находят способы, чтобы взаимодействовать со свободными проектами.

В этом контексте, заявление Оллчина:”меня волнует поддержка правительством ПО с открытым исходным кодом и я не думаю, что у нас есть достаточно грамотных политиков, чтобы понимать данную угрозу”, имеет скрытый подтекст.

Вместо этого создается ощущение, что Microsoft просто не хочет изменить свою бизнес-модель с учетом изменяющихся условий окружающей среды и желаний своих клиентов. Это слишком плохо, ведь ничто не мешает Microsoft изменить свой подход к ведению бизнеса. Ну что ж, многие ранее существовавшие монополии сделали ту же ошибку. Я не против Microsoft и я не против проприетарного программного обеспечения. Более того, я рад похвалить Microsoft или любую другую компанию, если она делает хорошие и правильные вещи. Однако, меня беспокоит, когда любая организация делает такие явно неправдоподобные заявления. И тем более неправильно, что Microsoft оправдывает свои незаконные действия, претендуя на инновации, которых у них никогда не было.

(c) Copyright by D. Wheeler
Перевод А. Чернышев



Источник: freeschool.altlinux.ru.

вторник, 1 декабря 2009 г.

Аналог reply-to из PF в IPFW

Нашел интересную статью с описанием работы межсетевого экрана IPFW. В частности, упомянута реализация действия, аналогичного reply-to из PF:
«
Тот факт, что на самом деле "перепрыгивание" выполняется на параметры действия, позволяет использовать это для интересных вещей. В частности, с использованием появившегося во FreeBSD 6.2 параметра tag на каждый пакет можно навешивать внутриядерный тег, что в применении со skipto позволяет сделать, к примеру, запоминание, с какого шлюза пришел входящий пакет на машине с каналами к двум разным провайдерам, и ответные пакеты отправлять в тот канал, откуда они пришли (допустим, у вашей машины только один IP-адрес, и сделать fwd на базе внешнего адреса не получится), т.е. реализовать аналог reply-to из PF:

ipfw add 100 skipto 300 tag 1 in recv $ext_if1 keep-state
ipfw add 200 skipto 300 tag 2 in recv $ext_if2 keep-state
ipfw add 300 allow { recv $ext_if1 or recv $ext_if2 } # входящие снаружи
ipfw add 400 allow in recv $int_if # разрешить ответы на внутреннем проходе
ipfw add 500 fwd $gw1 tagged 1 # остались ответы на внешнем интерфейсе,
ipfw add 600 fwd $gw2 tagged 2 # зарулим их куда надо
»

суббота, 28 ноября 2009 г.

Трансляция PPTP (GRE) на шлюзе с PF

Как известно, межсетевой экран PF, портированный в FreeBSD из OpenBSD, не может корректно транслировать (NAT) GRE-протокол и, к примеру, из локальной сети невозможно создать несколько одновременных соединений к внешнему серверу VPN PPTP.
Одним из способов решения проблемы является трансляция PPTP-соединений родным IPFW с «ядерным» NAT. При этом вовсе необязательно компилировать ядро. Все описанные действия проверены в FreeBSD версии 7.2. Но должно работать и в других версиях, где есть поддержка «ядерного» NAT для IPFW.

В «/etc/rc.conf» добавляем

#Включаем IPFW
firewall_enable="YES"
# Подгружаем модуль ядра ipfw_nat
firewall_nat_enable="YES"
# Указываем путь к скрипту загрузки правил
firewall_script="/etc/ipfw.script"
Создаем файл «/etc/ipfw.script»
#!/bin/sh

/sbin/ipfw -q /dev/stdin <<RULES
flush
#em0 - внешний интерфейс шлюза
nat 10 config if em0
#Правила для трансляции PPTP-соединения
add 10 nat 10 gre from any to any
add 11 nat 10 tcp from any to any dst-port pptp
add 12 nat 10 tcp from any pptp to any
# Разрешаем весь трафик
add allow all from any to any

RULES
Делаем скрипт исполняемым
# chmod +x /etc/ipfw.script
Добавляем в правила PF
# Запрещаем PF транслировать PPTP-соединения
no nat on $external_if proto gre all
no nat on $external_if proto tcp from any to any port = pptp
no nat on $external_if proto tcp from any port = pptp to any

... skip ...

# Пропускаем PPTP-соединения
pass quick on $external_if inet proto tcp from any to any port 1723
pass quick on $external_if inet proto tcp from any port 1723 to any
pass quick on $external_if inet proto gre from any to any
После всех сделанных изменений перезагружаемся.