- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
Выполните команду ipchains -L, и в результате вы должны увидеть следующее содержимое всех ваших цепочек:
Chain input (policy DENY):
target prot opt source destination ports
ACCEPT tcp ------ anywhere flenovm.ru any -> http
Chain forward (policy DENY):
Chain output (policy DENY):
target prot opt source destination ports
ACCEPT tcp ------ flenovm.ru anywhere http -> any
Chain icmp (0 references):
В цепочках input и output появилось по одной строке. Обратите внимание, что в колонках source и destination обеих цепочек IP-адрес заменился на доменное имя моего компьютера flenovm.ru. Если сервер может определить имя, то он делает такую подмену. Посмотрите на колонку ports, здесь номер порта 80 заменен на http.
Я советую вам внимательно проанализировать созданный нами список фильтров, чтобы вы четко понимали каждую его колонку. Рассмотрим структуру строк на примере цепочки input:
target prot opt source destination ports
ACCEPT tcp ------ anywhere flenottro.ru any -> http
Первая строка — имена столбцов, а вторая — это фильтр, содержащий реальные значения. Здесь у нас 6 колонок:
□ target — действие, которое будет выполняться, если пакет удовлетворяет фильтру. В нашем случае стоит ACCEPT, т.е. пропустить дальше, в противном случае пакет уничтожается;
□ prot — протокол, в данном случае tcp;
□ opt — дополнительные опции. Мы их не указывали, поэтому здесь стоят прочерки;
□ source — источник пакета. Слово "anywhere" указывает на то, что посылка может быть от любого компьютера;
□ destination — адресат. Здесь может быть имя компьютера или его IP-адрес;
□ ports — порт, указывается в виде источник -> назначение. В данном случае у источника может быть любой порт (используется слово any), а пункт назначения должен работать только через http (80 порт).
Как это часто бывает, Web-сервер должен кто-то обновлять, и обычно это делается через FTP-сервис. Всем доступ открывать нельзя, поэтому пропишем правило, по которому подключаться к FTP-серверу (21 порт) сможет только один компьютер с адресом 192.168.77.10. Для этого выполняем следующие команды:
ipchains -I input 1 -р tcp -d 192.168.77.1 21
-s 192.168.77.10 -j ACCEPT
ipchains -I output 1 -p tcp -s 192.168.77.1 21
-d 192.168.77.10 -j ACCEPT
В данном примере пропускаются пакеты, входящие на 21 порт сервера с адресом 192.168.77.1 с любого порта компьютера 192.168.77.10. Вторая строка разрешает исходящие пакеты с 21 порта сервера 192.168.77.1 на компьютер клиента с адресом 192.168.77.10.
Если у вас настроен FTP-сервер и вы сейчас к нему подключитесь, то не увидите файлов и не сможете работать. В отличие от Web-сервера протокол FTP требует для работы два порта: 21 (ftp-порт для передачи команд) и 20 (ftp-data порт для обмена данными). Поэтому нужно открыть доступ и к 20 порту:
ipchains -I input 1 -р tcp -d 192.168.77.1 20
-s 192.168.77.10 -j ACCEPT
ipchains -I output 1 -p tcp -s 192.168.77.1 20
-d 192.168.77.10 -j ACCEPT
Теперь компьютер с адресом 192.168.77.10 имеет полноценный доступ к FTP-сервису, а для всех остальных он недоступен. Сканирование сервера с любого компьютера вашей сети покажет открытым только 80 порт, и лишь с компьютера с IP 192.168.77.10 можно будет увидеть 21 и 80 порты.
Выполните команду ipchains -L, чтобы просмотреть текущее состояние ваших цепочек. Вы должны увидеть примерно следующий результат:
Chain input (policy DENY):
target prot opt source Destination ports
ACCEPT tcp ------ 192.168.77.10 flenovm.ru any -> ftp-data
ACCEPT tcp ------ 192.168.77.10 flenovm.ru any -> ftp
ACCEPT tcp ------ anywhere flenovm.ru any -> http
Chain forward (policy DENY):
Chain output (policy DENY):
target prot opt source destination ports
ACCEPT tcp ------ flenovm.ru 192.168.77.10 ftp-data -> any
ACCEPT tcp ------ flenovm.ru 192.168.77.10 ftp -> any
ACCEPT tcp ------ flenovm.ru anywhere http -> any
Chain icmp (0 references):
Через фильтры, описанные в этом разделе, пропускаются любые пакеты, вне зависимости от интерфейса. В большинстве случаев это оправдано, но петля (loopback, всегда указывает на вашу машину), чаще всего, не нуждается в защите. Ее можно использовать только локально, и ни один хакер не сможет подключиться через этот виртуальный интерфейс удаленно. Вполне логичным будет разрешить все пакеты через loopback:
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
Большинство администраторов не любят открывать полный доступ через loopback, потому что политики внешнего и виртуального интерфейсов будут различаться. В этом случае тестирование сетевых программ усложняется. Проверив программу через lo, нет гарантии, что она будет функционировать с удаленными подключениями, ведь там могут помешать нормальной работе фильтры сетевого экрана.
4.11.3. Примеры удаления ipchains-правил
Попробуем отменить доступ к FTP на примере удаления записей из цепочки input. Я специально выбрал в качестве образца FTP-сервис, потому что он требует две строки описания, и при совершении операции нужно быть очень внимательным. На вскидку нужно выполнить следующие команды:
ipchains -D input 1
ipchains -D input 2
Пока не спешите это делать. Ключ -D свидетельствует о необходимости удаления правила. После него указана цепочка, с которой надо произвести операцию, и номер записи. Обратите внимание на последовательность удаления в данном примере (сначала 1, а потом 2 запись). Ничего не заметили?
Если выполнить первую строку и потом просмотреть содержимое цепочки input, то в результате мы получим:
Chain input (policy DENY):
target prot opt source Destination ports
ACCEPT tcp ------ 192.168.77.10 flenovm.ru any -> ftp
ACCEPT tcp ------ anywhere flenovm.ru any -> http
Строка для порта ftp-data отсутствует, но остальные записи сместились, и при выполнении команды ipchains -D input 2 мы удалим разрешение для http-сервера, а доступ к ftp-порту останется. Это можно пережить, когда записей только три, а что если их будет сотня? Вспомнить, какая строка была удалена, очень сложно.
Чтобы не столкнуться с такой ситуацией, удаление начинайте с последней строки. В данном случае команды надо расположить таким образом:
ipchains -D input 2
ipchains -D input 1
Есть еще один способ удаления, который понадежнее, но для его рассмотрения давайте создадим отдельную запись в цепочке forward. Выполните следующую команду:
ipchains -A forward -р icmp -j DENY
В этой строке мы используем ключ -A, который добавляет строку в конец цепочки (в нашем случае была пустая).
Внимание!Если в вашей системе запрещена переадресация (forward), то запись будет добавлена, но на экране может появиться предупреждение. Чуть позже в разд. 4.11.7 мы поговорим о перенаправлении более подробно.
Рассмотрим, что делает это правило. Оно сработает, если пакет требует перенаправления и при этом использует ICMP-протокол. Мы установили фильтр DENY, а значит, пакет будет просто удален. Таким образом, мы заблокировали ICMP-трафик для перенаправления. Чтобы запретить ICMP-пакеты вообще, нужно добавить еще правило:
ipchains -A input -р icmp -j DENY
Теперь попробуем удалить запись. Для этого наберите команду, которую вы выполняли для добавления правила, но замените ключ -A (или -I, если вы использовали вставку) на -D. В результате должна получиться команда:
ipchains -D forward -р icmp -j DENY
Выполните ее и убедитесь, что запись удалена успешно.
4.11.4. Правила "все кроме"
Очень часто приходится задавать правила в виде "все кроме". Например, нужно запретить доступ к порту telnet всем пользователям, кроме компьютера с адресом 192.168.77.10. Лучше поступить следующим образом: сначала разрешить доступ для компьютера 192.168.77.10, а потом запретить всем. Тогда в цепочке input будет две записи:
□ разрешить подключение к telnet с адреса 192.168.77.10;
□ запретить подключение к telnet.
Мы исходили из того, что по умолчанию разрешено все. Тогда, как и положено, все входящие пакеты будут сверяться с первой строкой, и если пакет пришел не с адреса 192.168.77.10, то вторая запись удалит его.
А ведь можно проблему решить одной строкой. Для этого нужно использовать следующее правило:
ipchains -I input 1 -р tcp -s ! 192.168.77.10 telnet -j DENY
В данной команде мы запрещаем (ключ -j DENY) подключение по протоколу TCP (-p tcp) всем пакетам, у которых адрес источника (ключ -s) не равен 192.168.77.10. Символ "!" выступает как знак неравенства, т.е. фильтру будут соответствовать все пакеты, в которых источник не равен указанному.
Такая запись эффективна, если по умолчанию все разрешено. В противном случае пакет от компьютера 192.168.77.10 будет все равно удален.
Знак "!" можно использовать и перед указанием номера порта. Например, нужно разрешить с адреса 192.168.77.12 полный доступ к серверу, .кроме порта telnet. Тогда по умолчанию делаем запрет всего и открываем доступ только компьютеру 192.168.77.12:

