Разобраться что именно открыть в iptables. Настройка фаервола с помощью iptables за пять минут. почему так мало

Разобраться что именно открыть в iptables. Настройка фаервола с помощью iptables за пять минут. почему так мало

Обзор поисковых систем.

Поисковые системы предназначены для поиска информации в различных информационных инфраструктурах Internet. Полного центрального каталога ресурсов Internet не существует.

Archie - первая система для навигации в Internet. Цель ее создания - построить индексный список файлов, доступных на анонимных FTP-серверах во всем Internet. Для этого Archie периодически обращается к FTP-серверам и собирает информацию о имеющихся файлах, и записывает ее в базу данных. Чтобы обращаться к этой системе, нужно на своем компьютере установить Archie-клиент или с помощью telnet обратиться к Archie-серверу с использованием режима удаленного терминала. Поиск нужных файлов выполняется только по имени. Главным ограничением Archie является то, что пользователю необходимо хоть что-то знать об имени файла. Кроме того база данных Arhie не полная, т.к. не все серверы занесены в нее.

Veronica - система сетевого поиска на серверах Gopher, позволяющая определить, на каком сервере находиться искомая информация или файл. Veronica (Very Easy Redent-Oriented Net-wide Index of Computerized Archives) позволяет найти нужный пункт меню на каком-нибудь сервере. База данных системы Veronica построена на основе сканирования меню Gopher-серверов, расположенных по всему миру. Доступ к базе данных возможен с сервера gopher.tc.unm.edu при выборе пункта меню Other Gopher or Information Servers и далее Search Gopherspace using Veronica. Информацию искать легче, т.к. пункты меню содержат не имена файлов, а описательную систему информацию.

По завершении поиска Veronica строит меню, содержащее все ссылки, построенные во время поиска по заданию пользователя.

WAIS - Wide Area Information Server - глобальный информационный сервер представляет собой средство для поиска на серверах всего мира документов, в которых упоминаются определенные объекты. WAIS исследует базы данных, содержащие индексные ссылки на ключевые слова, и возвращает адреса, по которым в сети можно найти интересующие объекты.

Основой WAIS является клиентская программа, устанавливаемая на компьютер пользователя Сети и позволяющая формировать запросы на языке, близком английскому. Сервер WAIS принимает и отправляет запросы.

Центральный сервер WAIS (quake.thiuk.com) постоянно поддерживает информацию о других WAIS-серверах.

Telnet - средство, позволяющий двум компьютерам соединиться по сети Internet и обмениваться информацией. Telnet служит для эмуляции терминального соединения с удаленной машиной. Такой вид соединения позволяет набирать на компьютере команды, посылаемые на другую машину, и видеть на экране результат выполнения. Internet- клиент связывается с Telnet-сервером, который определяет возможности клиента. Это может быть щирокий набор программ или несколько команд, которые можно ввести с командной строки. Это зависит от ресурсов хост-компьютера (сервера).

Конференции IRC - Internet Relay Chat обеспечивает двум пользователям общаться друг с другом посредством ввода информации с клвиатуры. Пользователи, желающие общаться друг с другом должны загрузить на своих компьютерах программы. IRC-клиентов и установить связь с IRC-сервером. На сервере они выбирают канал, на котором они будут разговаривать.

Телеконференции UserNet - дискуссии с помощью электронной почты. User Net - Users Network - это сеть пользователей, система, объединяющая машины, и предоставляющая средства для обмена информацией. Телеконференции - это вид сетевого сервиса, обеспечивающий посылку сообщений пользователей на компьютеры участников UserNet.

Информация, распространяемая по UserNet делится на группы, в которых обсуждаются проблемы телеконференции практически по любой теме.

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

Основой Internet является высокоскоростная информационная магистрам banckbone, которую образует выделенные телефонные линии (со скоростью 44 000 Мбит/с.).

Подключение к Internet выполняется через специально выделенный компьютер - шлюз (gatewag). Каждый шлюз имеет IP-адрес. Если приходит сообщения, адресованное сети, в которую включен шлюз, сообщение передается в сеть. Иначе оно передается на другой шлюз. Шлюзы знают обо всех остальных шлюзах и сетях, с которыми они взаимодействуют. Шлюз знает, каким маршрутом отправить сообщение из ЛВС адресату. Шлюзы обмениваются друг с другом информацией о маршрутизации и состоянии сети. Некоторые организации предоставляют свои шлюзы для подключения к Internet других организаций, являясь сервис-провайдерами.

Программы, работающие на компьютере, можно разделить на три категории:

· Прикладные программы , непосредственно обеспечивающие выполнение необходимых пользователям работ: редактирование текстов, рисование картинок, обработка информационных массивов;

· Системные программы , выполняющие различные вспомогательные функции, например создание копий используемой информации, выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера;

· Инструментальные системы (системы программирования), обеспечивающие создание новых программ для компьютера.

Системные программы

· Операционная система . Среди всех системных программ особое место занимает операционная система - программа, которая загружается при включении компьютера. Она осуществляет диалог с пользователем, управление компьютером, его ресурсами (оперативной памятью, местом на диска и т.д.), запускает другие (прикладные) программы на выполнение. Операционная система обеспечивает пользователю и прикладным программам удобным способом общения (интерфейс) с устройствами компьютера. Для компьютеров типа IBM PC чаще всего используется операционная система MS DOS фирмы Microsoft или совместные с ней операционные системы PC DOS фирмы IBM и DR DOS фирмы Digital Research. Иногда IBM PC используются операционные системы OS/2 и UNIX.

· Драйверы . Важным классом системных программ являются программы-драйверы. Они расширяют возможности DOS по управлению устройствами ввода-вывода компьютера (клавиатурой, жестким диском, мышью и т.д.), определенной памятью. С помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся устройств.

· Программы-оболочки . Весьма популярный класс системных программ составляют программы-оболочки. Они обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS. Многие пользователи настолько привыкли к удобствам, предоставляемым своей любимой программой-оболочкой, что чувствуют себя без нее "не в своей тарелке". Наиболее популярными программами-оболочками являются Norton Commander, Xtree Pro Gold, PC Shell из комплекта PC Tools. В состав операционной системы MS DOS, начиная с версии 4.0, также входит собственная программа-оболочка Shell.

· Операционные оболочки , в отличие от обычных программ-оболочек, не только дают пользователю более наглядные средства для выполнения часто используемых действий, но и предоставляют новые возможности для запускаемых программ.

Ø Графический интерфейс , т.е. набор средств для вывода изображений на экран и манипулирования ими, построения меню, окон на экране;

Ø Мультипрограммирование , т.е. возможность одновременного выполнения нескольких программ;

Ø Расширенные средства для обмена информацией между программами

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

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

· Программы для создания резервных копий информации на дисках позволяют быстро копировать информацию, находящуюся на жестком диске компьютера, на дискеты или кассеты стриммера. Из этих программ широко используются Norton Backup, FastBack Plus.

· Антивирусные программы . Предназначены для предотвращения заражения компьютерным вирусом и ликвидации последствий заражения вирусом.

· Коммуникационные программы предназначены для организации обмена информацией между компьютерами. Программы этого типа позволяют удобно пересылать файлы с одного компьютера на другой при соединении кабелем их последовательных портов (некоторые программы - при соединении параллельных портов, что обеспечивает большую скорость).

· Программы для диагностики компьютера . Позволяют проверить конфигурацию компьютера (количество памяти, ее использование, типы дисков) а также проверить работоспособность устройств компьютера (прежде всего жестких дисков).

· Программы-кэши для диска. Убыстряют доступ к информации на диске путем организации в оперативной памяти кэш-буфера, содержащего наиболее часто используемые участки диска. Чаще всего для кэша используется дополнительная или расширенная память компьютера. Некоторые контролеры дисков имеют в своем составе встроенный кеш-буфер, но обычно их производительность ненамного выше, а стоимость значительно больше, чем у программы-кэша хорошую производительность показывают программы SmartDrv, Ncache и Super PC-Kwik.

· Программы для оптимизации дисков позволяют обеспечить более быстрый доступ к информации на диске за счет оптимизации размещения данных на диске. Эти программы перемещают все участки каждого файла друг к другу (устраняют фрагментацию), собирают все файлы в начале диска, за счет чего уменьшается число перемещений головок диска (ускоряется доступ к данным) и снижается износ диска). Из программ для оптимизации дисков широко используются SpeedDisk из комплекса Norton Utilities, FastTrax.

· Программы динамического сжатия дисков (например, Stacker, Doublespace) позволяют увеличить количество информации, хранимой на дисках путем ее динамического сжатия. Эти программы снижают информацию при записи на диск, а при чтении восстанавливают ее в исходном виде. Таким образом, для пользователя эти программы незаметны, они проявляются только увеличением емкости дисков и изменением скорости доступа. Если на диске хранятся программы, то увеличение емкости невелико - в 1,5 раза, но для без данных оно может достигать 4-5 раз.

· Программы для автономной печати (спулеры) позволяют распечатывать файлы на принтере параллельно с выполнением другой работы на компьютере. Некоторые из этих программ, например PrintCashe, вдобавок обеспечивают и некоторое ускорение печати. Многие программы, например Microsoft Windows, Microsoft Word для DOS, имеют встроенные средства для поддержки автономной печати.

· Программы для управления памятью . Обеспечивают более гибкое использование оперативной памяти компьютера. Программы дают возможность загрузить в память компьютера несколько программ и "переключаться" с одной на другую с помощью нескольких нажатий клавиш.

· Программы для печати экрана бывают весьма полезны при использовании графических программ для вывода на печать содержимого экрана (отнюдь не всегда это можно сделать с помощью самой графической программы). Одни из наиболее популярных программ этого вида - это Pizzaz Plus и Hot Shot Graphics, они работают со всеми наиболее распространенными экранами и принтерами, позволяют заменять цвета и использовать для передачи цвета на черно-белых принтерах различные штриховки, варьировать размер и расположение картинки на печатаемой странице.

· Программы управления локальной сетью . Пользователи компьютеров, объединенных в локальную сеть, могут передавать друг другу сообщения, совместно использовать базы данных или устройства (например, принтеры), что значительно повышает удобство и эффективность коллективного труда. Для объединения компьютеров в локальную сеть компьютеры необходимо соединить специальными проводами (кабелями) и вставить в них платы сетевых адаптеров, позволяющих передавать информацию по кабелям сети.

Однако локальные сети не могут полностью удовлетворить все нужды в обмене информацией между компьютерами. Они потому и называются локальными (от латинского locus - место), что связывают компьютеры, находящиеся близко друг от друга. Однако компьютеры и локальные сети можно связывать между собой с помощью каналов связи (телефонный, радиорелейной, спутниковой и т.д.), образуя распределение вычислительные системы и сети различного назначения. Так, широко известны системы электронной InerNet, EuroNet, FidoNet, у нас в стране -RelCom, система межбанковских расчетов SWIFT и т.д.

Прикладные программы

Для IBM РС разработаны и используются сотни тысяч различных прикладных программ для различных применений.

Наиболее широко применяются программы:

· Подготовки текстов (документов) на компьютере - редакторы текстов;

· Подготовки документов типографского качества - издательские системы;

· Обработка табличных данных - табличные процессы;

· Обработки массивов информации - системы управления базами данных;

Табличные процессоры обеспечивают работу с большими таблицами чисел (немного шире мы остановимся на них в практической части);

Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами - базами данных. Наиболее простые системы этого вида позволяют обрабатывать на компьютере один массив информации, например персональную картотеку. Они обеспечивают ввод, поиск, сортировку записей, составление отчетов и т.д. С таким СУБД легко могут работать пользователи даже невысокой квалификации, так как все действий в них осуществляются с помощью меню и других диалоговых средств. Среди таких СУБД можно назвать PC-File, Reflex, Q&A.

Графически редакторы позволяют создавать и редактировать на экране компьютера.

Системы деловой и научной графики позволяют наглядно представить на экране различные данные и зависимости. Системы деловой графики дают возможность выводить на экран различные виды графиков и диаграмм (гистограммы, круговые и секторные диаграммы и т.д.). Среди этих систем наиболее популярны программы Microsoft Chart, Boeing Graph, Harvard Graphics и другие, при этом пакет Harvard Graphics имеет возможности научной графики.

Системы автоматизированного проектирования (САПР) позволяют осуществлять черчение и конструирования различных механизмов с помощью компьютера. Среди этих систем лидером является AutoCad, но для многих задач целесообразно использование других САПР.

Интегрированные системы сочетают в себе возможности системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Среди интегрированных систем весьма популярны FrameWork, Open Access, Microsoft Works и др.

Бухгалтерские программы предназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Некоторые из них предназначены для автоматизации отдельных участков бухгалтерского учета-начисления заработной платы, учета товаров, материалов на складах и т.д.

Системы программирования.

Даже при наличии десятков тысяч программ для пользователя может потребоваться что-то такое, чего не делают (или делают, но не так) имеющие программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ.

Современные системы программирования для персональных компьютеров обычно предоставляют пользователю весьма мощные и удобные средства для разработки программ.

В них входят:

· Компилятор , осуществляющий преобразование программ на языке программирования в программу в машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение текста программы на языке программирования высокого уровня;

· Библиотеки подпрограмм , содержащие заранее подготовленные подпрограммы, которыми могут пользоваться программисты;

· Различные вспомогательные программы , например отладчики, программы для получения прекрасных ссылок;

· Часто компиляторы интерпретаторы объединяются с редакторами текстов для ввода и исправления текстов программ и отладчиками для правления ошибок в программах (отладки программ).

Для популярных языков программирования на IBM PC существует множество систем программирования. Естественно, что программисты предпочитают те системы, которые легки в использовании, позволяют получить эффективность программы, имеют богатые библиотеки функций (подпрограмм) и мощные возможности для отладки разрабатываемых программ. В качестве примеров таких систем программирования можно назвать Turbo C.

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

· Паскаль

2009. Microsoft и HP создают платформу унифицированных коммуникаций

В то время, как Cisco наступает на позиции Microsoft в сфере систем совместной работы, Microsoft решила открыть второй фронт на рынке унифицированных коммуникаций, где традиционно доминирует Cisco. И првлекла для этого своего партнера HP. Компании намерены потратить на продвижение совместных UC-систем 180 млн долларов в течении 4 лет. Проект предусматривает развитие сетевого оборудования HP ProCurve и программного обеспечения Microsoft Office Communications Server. Кроме того, в HP намерены сертифицировать компьютеры TouchSmart Business PC, ряд смартфонов, а также новых настольных IP-телефонов для работы с коммуникационным программным инструментарием Microsoft. В рамках совместной деятельности предполагается усилить поддержку Microsoft Office Communications Server программным обеспечением HP Business Technology Optimization. Кроме того планируется предоставление возможности определять уровень качества сервиса при передаче видео и голосового трафика. Пользователи OCS смогут участвовать в телеконференциях, организуемых с помощью системы HP Halo.

2008. Avaya представила one-X Communicator

Компания Avaya объявила о создании Avaya one-X Communicator - нового клиента системы унифицированных коммуникаций, который через единый интерфейс предоставляет пользователям доступ к широкому спектру самых распространенных коммуникационных инструментов. Avaya one-X Communicator позволяет одним нажатием кнопки мыши осуществить любой вид коммуникации, основанный на различных протоколах и получить доступ к любым программным приложениям от различных вендоров. Avaya one-X Communicator предоставляет пользователям возможность широкого применения полного спектра функций телефонии и видео-приложений, визуальную голосовую почту, контроль онлайн статуса, а также электронную почту и систему мгновенных сообщений, интеграцию с коммутатором для конференц-связи, историю директорий и контактов. Благодаря поддержке протоколов H.323 и SIP сотрудники предприятий с неоднородными коммуникационными системами могут одновременно участвовать в одном и том же сеансе связи.

2006. Google и Skype скрещивают VoIP-сервисы

Сделка между Google и eBay предполагает некое совместное использование их коммуникационных программ Skype и Google Talk в рамках новой функции «Click-to-Call», которая свяжет пользователей и рекламодателей и на сайте eBay, и на сайте Google. Каким образом будет осуществлено это совместное использование и что это за новый сервис - пока не сообщается. Держатся в секрете также и финансовые условия сотрудничества. Для покупателей и продавцов на сайте eBay уже сейчас доступна услуга «Click-to-Call», то есть функция голосовой связи. Она позволяет одним щелчком мыши запустить программу Skype и набрать указанный номер, чтобы поговорить по телефону с продавцом того или иного товара на аукционе. Благодаря альянсу с корпорацией Google, функция «звонка одним щелчком мыши» через Skype, возможно, будет каким-то образом интегрирована с Google Talk и станет доступна более широкой аудитории.


2006. Dell предустановит Skype на своих ноутбуках

Компания Dell будет комплектовать часть своих ноутбуков коммуникационными аудио- и видеосистемами на базе ПО Skype. После достижения договоренности между Dell и Skype, было объявлено, что новые коммуникационные средства будут предустанавливаться на нижеследующие модели переносных компьютеров: XPS, XPS M1210 и XPS M2010. Следует отметить, что на днях Dell также заключила соглашение с поисковым гигантом Google, и теперь будет снабжать свои ноутбуки его специализированной программой поиска данных на жестком диске. Некоторые специалисты считают, что союз Dell и Skype может негативно отразиться на репутации производителя ноутбуков. IT-службы предприятий всерьез опасаются проблем с безопасностью и стараются блокировать появление архитектуры Skype в своих сетях.

2005. Skype планирует бизнес-версию

Большинство нынешних сторонников программы Skype (пиринговая IP-телефония), использует ее в личных целях, но, как оказалось, все большее количество людей пользуются возможностями этого программного VoIP-телефона и по служебным делам. Некоторые бизнесмены прямо заявляют, что Skype не просто экономит деньги, но и значительно увеличивает коммуникационные возможности. Представители Skype уже отметили возможность выпуска специальной бизнес-версии программы, которая во многом будет подобна нынешнему варианту, но за небольшую дополнительную плату сможет обеспечивать сеансы видеоконференцсвязи и поиск по справочникам абонентов, в том числе и по предприятиям. Целевая аудитория для обслуживания – это обычные сотрудники компаний, которым необходима связь по работе.

Введение и история

Netfilter - межсетевой экран (он же, брандмауэр, он же файерволл, он же firewall...) встроен в ядро Linux с версии 2.4. Netfilter управляется утилитой iptables (Для IPv6 - ip6tables). До netfilter/iptables был Ipchains , который входил в состав ядер Linux 2.2. До ipchains в Linux был так называемый ipfw (IPV4 firewal) , перенесенный из BSD. Утилита управления - ipfwadm. Проект netfilter/iptables был основан в 1998. Автором является Расти Расселл (он же руководил и прошлыми разработками). В 1999 г. образовалась команда Netfilter Core Team (сокращено coreteam). Разработанный межсетевой экран получил официальное название netfilter. В августе 2003 руководителем coreteam стал Харальд Вельте (Harald Welte).

Проекты ipchains и ipfwadm изменяли работу стека протоколов ядра Linux, поскольку до появления netfilter в архитектуре ядра не существовало возможностей для подключения дополнительных модулей управления пакетами. iptables сохранил основную идею ipfwadm - список правил, состоящих из критериев и действия, которое выполняется если пакет соответствует критериям. В ipchains была представлена новая концепция - возможность создавать новые цепочки правил и переход пакетов между цепочками, а в iptables концепция была расширена до четырёх таблиц (в современных netfilter - более четырех), разграничивающих цепочки правил по задачам: фильтрация, NAT, и модификация пакетов . Также iptables расширил возможности Linux в области определения состояний, позволяя создавать межсетевые экраны работающие на сеансовом уровне.

Архитектура Netfilter/iptables

Предварительные требования ()

Как уже говорилось выше, для работы Netfilter необходимо ядро версии 2.6 (ну или хотя бы 2.3.15). Кроме того, при необходимо наличие настроек CONFIG_NETFILTER, CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_FILTER (таблица filter), CONFIG_IP_NF_NAT (таблица nat), CONFIG_BRIDGE_NETFILTER, а также многочисленные дополнительные модули: CONFIG_IP_NF_CONNTRACK (отслеживание соединений), CONFIG_IP_NF_FTP (вспомогательный модуль для отслеживания FTP соединений), CONFIG_IP_NF_MATCH_* (дополнительные типы шаблонов соответствия пакетов: LIMIT, MAC, MARK, MULTIPORT, TOS, TCPMSS, STATE, UNCLEAN, OWNER), CONFIG_IP_NF_TARGET_* (дополнительные действия в правилах: REJECT, MASQUERADE, REDIRECT, LOG, TCPMSS), CONFIG_IP_NF_COMPAT_IPCHAINS для совместимости с ipchains, CONFIG_BRIDGE_NF_EBTABLES и CONFIG_BRIDGE_EBT_* для работы в режиме моста, прочие CONFIG_IP_NF_* и CONFIG_IP6_NF_*. Полезно также указать CONFIG_PACKET.

Как видно, таблица nat и mangle может модифицировать получателя или отправителя сетевого пакета. Именно поэтому сетевой пакет несколько раз сверяется с таблицей маршрутизации.

Механизм определения состояний (conntrack)

Выше в тексте несколько раз указывалось понятие "определение состояний", оно заслуживает отдельной темы для обсуждения, но тем не менее я кратко затрону данный вопрос в текущем посте. В общем, механизм определения состояний (он же state machine, он же conn ection track ing, он же conntrack ) является частью пакетного фильтра и позволяет определить определить к какому соединению/сеансу принадлежит пакет. Conntrack анализирует состояние всех пакетов, кроме тех, которые помечены как NOTRACK в таблице raw . На основе этого состояния определяется принадлежит пакет новому соединению (состояние NEW ), уже установленному соединению (состояние ESTABLISHED ), дополнительному к уже существующему (RELATED ), либо к "другому " (неопределяемому) соединению (состояние INVALID ). Состояние пакета определяется на основе анализа заголовков передаваемого TCP-пакета. Модуль conntrack позволяет реализовать межсетевой экран сеансового уровня (пятого ). Для управления данным механизмом используется утилита conntrack, а так же параметр утилиты iptables: -m conntrack или -m state (устарел). Состояния текущих соединений conntrack хранит в ядре. Их можно просмотреть в файле /proc/net/nf_conntrack (или /proc/net/ip_conntrack) .

Чтобы мысли не превратились в кашу, думаю данной краткой информации для понимания дальнейшего материала будет достаточно.

Управление правилами сетевой фильтрации Netfilter (использование команды iptables)

Утилита iptables является интерфейсом для управления сетевым экраном netfilter . Данная команда позволяет редактировать правила таблиц, таблицы и цепочки. Как я уже говорил - каждое правило представляет собой запись/строку, содержащую в себе отбора сетевых пакетов и над пакетами, которые соответствуют заданному правилу. Команда iptables требует для своей работы прав root.

В общем случае формат команды следующий:

Iptables [-t ]

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

Ниже приведены команды и параметры утилиты iptables:

Параметр Описание Пример
Команды
--append (-A) Добавить в указанную цепочку и указанную таблицу заданное правило в КОНЕЦ списка. iptables -A FORWARD критерии -j действие
--delete (-D) Удаляет заданное номером(ами) или правилом(ами) правило(а). Первый пример удаляет все правила с номерами 10,12 во всех цепочках, в таблицах filter, второй пример удаляет заданное правило из таблицы mangle в цепочке PREROUTING. iptables -D 10,12
iptables -t mangle -D PREROUTING критерии -j действие
--rename-chain (-E) Изменить имя цепочки. iptables -E OLD_CHAIN NEW_CHAIN
--flush (-F) Очистка всех правил текущей таблицы. Ко всем пакетам, которые относятся к уже установленным соединениям, применяем терминальное действие ACCEPT - пропустить iptables -F
--insert (-I) Вставляет заданное правило в место, заданное номером. iptables -I FORWARD 5 критерии -j действие
--list (сокр. -L) Просмотр существующих правил (без явного указания таблицы - отображается таблица filter всех цепочек). iptables -L
--policy (-P) Устанавливает стандартную политику для заданной цепочки. iptables -t mangle -P PREROUTING DROP
--replace (-R) Заменяет заданное номером правило на заданное в критериях. iptables -R POSROUTING 7 | критерии -j действие
--delete-chain (-X) Удалить ВСЕ созданные вручную цепочки (оставить только стандартные INPUT, OUTPUT, FORWARD, PREROUTING и POSTROUTING). iptables -X
--zero (-Z) Обнуляет счетчики переданных данных в цепочке. iptables -Z INPUT
Параметры
--numeric (-n) Не резолвит адреса и протоколы при выводе.
--line-numbers Указывать номера правил при выводе (может использоваться совместно с -L). iptables -L --line-numbers
--help (-h) куда же без нее
-t таблица Задает название таблицы, над которой необходимо совершить действие. В примере сбрасывается таблица nat во всех цепочках. iptables -t nat -F
--verbose (-v) Детальный вывод. iptables -L -v

Критерии (параметры) отбора сетевых пакетов команды iptables

Критерии отбора сетевых пакетов негласно делятся на несколько групп: Общие критерии, Неявные критерии, Явные критерии. допустимо употреблять в любых правилах, они не зависят от типа протокола и не требуют подгрузки модулей расширения. (я бы из назвал необщие ), те критерии, которые подгружаются неявно и становятся доступны, например при указании общего критерия --protocol tcp|udp|icmp . Перед использованием , необходимо подключить дополнительное расширение (это своеобразные плагины для netfilter). Дополнительные расширения подгружаются с помощью параметра -m или --match . Так, например, если мы собираемся использовать критерии state , то мы должны явно указать это в строке правила: -m state левее используемого критерия. Отличие между явными и неявными необщими критериями заключается в том, что явные нужно подгружать явно, а неявные подгружаются автоматически.

Во всех критериях можно использовать знак! перед значением критерия. Это будет означать, что под данное правило подпадают все пакеты, которые не соответствуют данному параметру . Например : критерий --protocol ! tcp будет обозначать, что все пакеты, которые не являются TCP-протоколом подходят под действие правила. Однако последние версии iptables (в частности, 1.4.3.2 и выше), уже не поддерживают этот синтаксис и требуют использования не --protocol ! tcp , а ! --protocol tcp , выдавая следующую ошибку:

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Ниже в виде таблицы приведены часто используемые параметры отбора пакетов:

Параметр Описание Пример
Общие параметры
--protocol
(сокр. -p)
Определяет протокол . Опции tcp, udp, icmp, all или любой другой протокол определенный в /etc/protocols iptables -A INPUT -p tcp
--source
(-s, --src)
IP адрес источника пакета. Может быть определен несколькими путями:
  • Одиночный хост: host.domain.tld, или IP адрес: 10.10.10.3
  • Пул-адресов (подсеть): 10.10.10.3/24 или 10.10.10.3/255.255.255.0

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

iptables -A INPUT -s 10.10.10.3
--destination
(-d)
IP адрес назначения пакета. Может быть определен несколькими путями (см. --source). iptables -A INPUT --destination 192.168.1.0/24
--in-interface
(-i)
Определяет интерфейс, на который прибыл пакет. Полезно для NAT и машин с несколькими сетевыми интерфейсами. Применяется в цепочках INPUT, FORWARD и PREROUTING. Возможно использование знака "+", тогда подразумевается использование всех интерфейсов, начинающихся на имя+ (например eth+ - все интерфейсы eth). iptables -t nat -A PREROUTING --in-interface eth0
--out-interface
(-o)
Определяет интерфейс, с которого уйдет пакет. Полезно для NAT и машин с несколькими сетевыми интерфейсами. Применяется в цепочках OUTPUT, FORWARD и POSTROUTING. Возможно использование знака "+". iptables -t nat -A POSTROUTING --in-interface eth1
Неявные (необщие) параметры
-p proto -h вывод справки по неявным параметрам протокола proto. iptables -p icmp -h
--source-port
(--sport)
Порт источник, возможно только для протоколов --protocol tcp, или --protocol udp iptables -A INPUT --protocol tcp --source-port 25
--destination-port
(--dport)
Порт назначения, возможно только для протоколов --protocol tcp, или --protemocol udp iptables -A INPUT --protocol udp --destination-port 67
Явные параметры
-m state --state (устарел)
он же
-m conntrack --ctstate

Состояние соединения. Доступные опции:

  • NEW (Все пакеты устанавливающие новое соединение)
  • ESTABLISHED (Все пакеты, принадлежащие установленному соединению)
  • RELATED (Пакеты, не принадлежащие установленному соединению, но связанные с ним. Например - FTP в активном режиме использует разные соединения для передачи данных. Эти соединения связаны.)
  • INVALID (Пакеты, которые не могут быть по тем или иным причинам идентифицированы. Например, ICMP ошибки не принадлежащие существующим соединениям)
  • и др. (более подробно в документации)
iptables -A INPUT -m state --state NEW,ESTABLISHEDiptables -A INPUT -m conntrack --ctstate NEW,ESTABLISHED
-m mac --mac-source Задает MAC адрес сетевого узла, передавшего пакет. MAC адрес должен указываться в форме XX:XX:XX:XX:XX:XX. -m mac --mac-source 00:00:00:00:00:0

Действия над пакетами

Данный заголовок правильнее будет перефразировать в "Действия над пакетами, которые совпали с критериями отбора ". Итак, для совершения какого-либо действия над пакетами , необходимо задать ключ -j (--jump) и указать, какое конкретно действие совершить.

Действия над пакетами могут принимать следующие значения:

  • ACCEPT - пакет покидает данную цепочку и передается в следующую (дословно - ПРИНЯТЬ).
  • DROP - отбросить удовлетворяющий условию пакет, при этом пакет не передается в другие таблицы/цепочки.
  • REJECT - отбросить пакет, отправив отправителю ICMP-сообщение, при этом пакет не передается в другие таблицы/цепочки.
  • RETURN - возвратить пакет в предыдущую цепочку и продолжить ее прохождение начиная со следующего правила.
  • SNAT источника в пакете. Может использоваться только в цепочках POSTROUTING и OUTPUT в таблицах nat.
  • DNAT - применить трансляцию адреса назначения в пакете. Может использоваться в цепочке PREROUTING в таблице nat. (в исключительных случаях - в цепочке OUTPUT)
  • LOG - протоколировать пакет (отправляется демону ) и обработать остальными правилами.
  • MASQUERADE - используется вместо SNAT при наличии соединения с динамическим IP (допускается указывать только в цепочке POSTROUTING таблицы nat).
  • MARK - используется для установки меток на пакеты, передается для обработки дальнейшим правилам.
  • и др.

Кроме указанных действий, существуют и другие, с которыми можно ознакомиться в документации (возможно, в скором времени я дополню статью в ходе освоения темы). У некоторых действий есть дополнительные параметры.

В таблице ниже приведены примеры и описания дополнительных параметров:

Параметр Описание Пример
DNAT (Destination Network Address Translation)
--to-destination указывает, какой IP адрес должен быть подставлен в качестве адреса места назначения. В примере во всех пакетах протокола tcp, пришедших на адрес 1.2.3.4, данный адрес будет заменен на 4.3.2.1. iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -j DNAT --to-destination 4.3.2.1
LOG
--log-level Используется для задания уровня журналирования (). В примере установлен максимальный уровень логирования для всех tcp пакетов в таблице filter цепочки FORWARD. iptables -A FORWARD -p tcp -j LOG --log-level debug
--log-prefix Задает текст (префикс), которым будут предваряться все сообщения iptables . (очень удобно для дальнейшего ) Префикс может содержать до 29 символов, включая и пробелы. В примере отправляются в syslog все tcp пакеты в таблице filter цепочки INPUT с префиксом INRUT-filter. iptables -A INPUT -p tcp -j LOG --log-prefix "INRUT-filter"
--log-ip-options Позволяет заносить в различные сведения из заголовка IP пакета. iptables -A FORWARD -p tcp -j LOG --log-ip-options
и др...

На этом закончим теорию о сетевом фильтре netfilter/iptables. В следующей статье я приведу практические примеры для усвоения данной теории.

Резюме

В данной статье мы рассмотрели очень кратко основные понятия сетевого фильтра в Linux. Итак, подсистема netfilter/iptables является частью ядра Linux и используется для организации различных схем фильтрации и манипуляции с сетевыми пакетами. При этом, каждый пакет проходит от сетевого интерфейса, в который он прибыл и далее по определенному маршруту цепочек, в зависимости от того, предназначен он локальной системе или "нелокальной". Каждая цепочка состоит из набора таблиц, содержащих последовательный набор правил. Каждое правило состоит из определенного критерия/критериев отбора сетевого пакета и какого-то действия с пакетом, соответствующего данным критериям. В соответствии с заданными правилами над пакетом может быть совершено какое-либо действие (Например, передача следующей/другой цепочке, сброс пакета, модификация содержимого или заголовков и др.). Каждая цепочка и каждая таблица имеет свое назначение, функциональность и место в пути следования пакета. Например для фильтрации пакетов используется таблица filter, которая содержится в трех стандартных цепочках и может содержаться в цепочках, заданных пользователем. Завершается путь пакета либо в выходящем сетевом интерфейсе, либо доставкой локальному процессу/приложению.

Литература

Довольно много интересной информации на русском содержится тут:

  • http://www.opennet.ru/docs/RUS/iptables/
  • http://ru.wikibooks.org/wiki/Iptables

Более глубоко материал доступен на буржуйском вот тут:

  • http://www.frozentux.net/documents/ipsysctl-tutorial/
  • http://www.netfilter.org/documentation/index.html

С Уважением, Mc.Sim!

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

Если для домашних компьютеров это не очень актуально, так как они подключены к сети через роутеры и NAT, которые скрывают их от внешней сети, то для серверов это актуально как никогда. В операционной системе Linux в ядро встроен очень гибкий и надежный фаервол iptables.

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

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

Виды пакетов

Все пакеты делятся на три типа: входящие, исходящие и проходящие. Входящие - это те, которые были отправлены на этот компьютер, исходящие - отправленные из этого компьютера в сеть. А проходящие - это пакеты, которые просто должны быть пересланы дальше, например, если ваш компьютер выступает в качестве маршрутизатора.

Соответственно в фильтре iptables все пакеты делятся на три аналогичные цепочки:

  • Input - обрабатывает входящие пакеты и подключения. Например, если какой-либо внешний пользователь пытается подключиться к вашему компьютеру по ssh или любой веб-сайт отправит вам свой контент по запросу браузера. Все эти пакеты попадут в эту цепочку;
  • forward - эта цепочка применяется для проходящих соединений. Сюда попадают пакеты, которые отправлены на ваш компьютер, но не предназначены ему, они просто пересылаются по сети к своей цели. Как я уже говорил, такое наблюдается на маршрутизаторах или, например, если ваш компьютер раздает wifi;
  • output - эта цепочка используется для исходящих пакетов и соединений. Сюда попадают пакеты, которые были созданы при попытке выполнить ping сайт или когда вы запускаете браузер и пытаетесь открыть любой сайт.

Но если вы думаете что можно просто полностью закрыть цепочку Input для увеличения безопасности, то вы очень сильно ошибаетесь. При работе сети используются обе цепочки input и output. Например, вы пытаетесь выполнить ping, данные отправляются через output, но ответ приходит через input. То же самое происходит при просмотре сайтов и других действиях. А вот цепочка forward может вообще не использоваться если ваш компьютер не является маршрутизатором. Так что настройка iptables должна выполняться очень аккуратно.

Правила и действия

Перед тем как перейти к созданию списка правил iptables нужно рассмотреть как они работают и какие бывают. Для каждого типа пакетов можно установить набор правил, которые по очереди будут проверяться на соответствие с пакетом и если пакет соответствует, то применять к нему указанное в правиле действие. Правила образуют цепочку, поэтому input, output и forward называют цепочками, цепочками правил. Действий может быть несколько:

  • ACCEPT - разрешить прохождение пакета дальше по цепочке правил;
  • DROP - удалить пакет;
  • REJECT - отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
  • LOG - сделать запись о пакете в лог файл;
  • QUEUE - отправить пакет пользовательскому приложению.

Правила могут проверять любые соответствия, например, по ip, по порту получателя или отправителя, заголовкам пакета и многому другому. Если пакет не подходит ни одному из правил, то к нему применяется действие по умолчанию, обычно ACCEPT.

Когда мы разобрались с правилами, можно вернутся обратно к цепочкам. Кроме перечисленных выше, есть еще две дополнительные цепочки правил:

  • prerouting - в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
  • postrouting - сюда попадают все проходящие пакеты, которые уже прошли цепочку forward.

Но это еще не все. У нас еще есть таблицы iptables, с которыми тоже желательно разобраться.

Таблицы ipatables

Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output. Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации. Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter. Но мы рассмотрим их все:

  • raw - предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
  • mangle - предназначена для модификации пакетов;
  • nat - обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
  • filter - основная таблица для фильтрации пакетов, используется по умолчанию.

С теорией почти все, теперь давайте рассмотрим утилиту командной строки iptables, с помощью которой и выполняется управление системой iptables.

Утилита Iptables

Подсистема iptables и netfilter встроены в ядро, но вот набор утилит для управления всем этим не всегда поставляется вместе с системой. Для установки утилиты в Ubuntu наберите:

sudo apt install iptables

А в дистрибутивах, основанных на Fedora, установка iptables выполняется немного по-другому:

sudo yum install iptables

Когда установка iptables будет завершена, можно переходить к настройке, но давайте сначала рассмотрим синтаксис утилиты. Обычно команда имеет такой общий вид:

-t таблица действие цепочка дополнительные_параметры

Теперь давайте рассмотрим параметры iptables, таблица указывает таблицу, с которой нужно работать, этот параметр можно упустить, действие - нужное действие, например, создать или удалить правило, а дополнительные параметры описывают действие и правило, которое нужно выполнить.

Осталось рассмотреть основные действия, которые позволяет выполнить iptables:

  • -A - добавить правило в цепочку;
  • - проверить все правила;
  • -D - удалить правило;
  • -I - вставить правило с нужным номером;
  • -L - вывести все правила в текущей цепочке;
  • -S - вывести все правила;
  • -F - очистить все правила;
  • -N - создать цепочку;
  • -X - удалить цепочку;
  • -P - установить действие по умолчанию.

Дополнительные опции для правил:

  • -p - указать протокол, один из tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp,
    mh;
  • -s - указать ip адрес устройства-отправителя пакета;
  • -d - указать ip адрес получателя;
  • -i - входной сетевой интерфейс;
  • -o - исходящий сетевой интерфейс;
  • -j - выбрать действие, если правило подошло.

Теперь вы можем перейти рассмотрению примеров того как выполняется настройка iptables.

Примеры настройки Iptables

Мы рассмотрим несколько основных примеров, чтобы вы смогли закрепить все прочитанное выше.

Список правил

Сначала давайте рассмотрим как выполняется просмотр правил iptables, для этого достаточно опции -L:

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

iptables -L INPUT

Очистка правил

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

Или только для определенной цепочки:

sudo iptables -F Input

Напоминаю, что все эти действия выполняются для таблицы по умолчанию - filter.

Правила по умолчанию

Как я уже говорил, если для пакета не подходит ни одно правило, то для него применяется действие по умолчанию. Его можно задать с помощью опции -p:

sudo iptables -p INPUT ACCEPT
$ sudo iptables -p OUTPUT ACCEPT
$ sudo iptables -p FORWARD DROP

В этом примере мы разрешаем цепочки INPUT и OUTPUT, но запрещаем FORWARD.

Блокировка пакетов

Для блокировки пакетов мы можем использовать действие DROP, фильтровать пакеты, которые нужно заблокировать мы можем по множеству критериев, например, протоколу, ip адресу, маске сети, порту и многому другому.

Вот так будет выглядеть команда, которая позволяет добавить правило iptables для блокировки всех входящих пакетов от 10.10.10.10:

sudo iptables -A INPUT -s 10.10.10.10 -j DROP

А теперь исходящие пакеты на этот же адрес:

Блокировка диапазона ip выполняется подобным образом. Для этого нужно использовать маску сети 10.10.10.0/24. Это будут все адреса начиная от 10.10.10.0 до 10.10.10.255:

sudo iptables -A INPUT -s 10.10.10.0/24 -j DROP

Или расширенный вариант маски:

sudo iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

Также вы можете заблокировать все входящие соединения ssh:

sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

Как видите, добавить правило iptables очень просто.

Удаление правил

Удаление правил iptables выполняется точно так же, как и создание новых, только вместо опции A нужно использовать опцию D. Сначала смотрим список правил:

Например, вот так можно удалить правило iptables, которое было создано вторым:

sudo iptables -A OUTPUT -s 10.10.10.10 -j DROP

Также вы можете полностью очистить iptables выполнив команду с опцией -F:



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows