Тонкая настройка SuSEfirewall2



Technorati Tags: openSUSE, SuSEfirewall2, firewall, configuring

Сколько раз мне попадались люди, которые неравнодушно относятся к вашему компьютеру/серверу/сайтам - dos'ят, пытаются взломать, спамят и т.д. Таких людей надо несомненно банить. Банить в файрволле, что бы ни один пакет не дошел от зловредного пользователя. Вот тут то и встает вопрос, о том, как это делать. В этом посте речь пойдет только об 11ом семействе SuSE (более ранние версии просто не проверял). Все знают, насколько удобная штука SuSEfirewall, хочется сказать спасибо разработчикам дистрибутива за этот прекрасный компонент системы. Файрволл в SuSE может управляться как с помощью yast, так и правкой конфига в /etc/sysconfig/SuSEfirewall2
В интернете полно статей по настройке с помощью SuSEfirewall NAT'а, разделения внешней, внутренней и демилитаризованной зон, пробоса портов. Единственное чего нет - так это возможности указать список ip адресов, которым необходимо запретить доступ к серверу. У меня сервер подключен к 3 сетям, сети интернет, локальной сети провайдера, и собственной домашней сети. Так вот, раньше приходилось добавлять в ручную ip адрес в таблицу INPUT и ставить по действие DROP. Но проблема просто этим не решалась, SuSEfirewall обновляет свои правила, и через несколько дней забаненные адреса просто пропадают, поэтому раньше я прописывал их где нибудь в конце /sbin/SuSEfirewall2 , дабы они всегда добавлялись при перезагрузке основных правил. Это было жутко не красиво и не удобно, все время ругались rkhunter и ossec на измененную checksumm для этого файла. Я перерыл весь гугл в поисках информации по данному вопросу (прим. авт. Либо я реально не умею искать, либо в гугле реально нет нормальной инфы по SuSEfirewall). Да хочется сказать, по поводу suse-community, обращаться туда я даже не пытался, после того как я попросил объяснить мне более детально настройку wi-fi. На официальном канале #opensuse мне просто кинули пару-тройку ссылок. Естественно я их уже не раз смотрел и мне ни чего не дало. На дальнешие мои просьбы о помощи мне сказали, что-то обидное(прим. авт. давно это было - непомню :-] ) и сказали, что бы я не задерживал их время. После этого случая я больше не разу туда не обращался, да и незачем было :) Потому что я считаю, что лучшая помощь только в googl'е. Вобще, я считаю, что настоящий профессионал или тот кто хочет стать им, должен сначала излазить все поисковики в поисках ответа, а потом беспокоить более опытных товарищей, потому что у них и проблемы покруче и время подороже нашего с вами.
Это было небольшое лирическое отступление, но что-то мы далеко отвлеклись от темы этого поста. Так вот внимательно просматривая /etc/sysconfig/SuSEfirewall2 я обнаружил параметр под номером 25 FW_CUSTOMRULES. Здесь можно прописать путь к файлу дополнительных правил. В /etc/sysconfig/scripts/SuSEfirewall2-custom
лежит пример такого файла, вобщем он содержит функции вызываевымые перед различными событиями(hook'и) самого SuSEfirewall. Вот их список с пояснениями(прим. авт. специально перевел описания):

  • fw_custom_before_antispoofing() - все что описано в этой функции будет загружено до того, как будут применены любые правила антиспуфинга. Желательно прописывать здесь правила для DROP'а ненужных broadcast пакетов и пропуска некоторых пакетов через механизм антиспуфинга.
  • fw_custom_after_antispoofing() - загрузка ваших правил, после применения правил для антиспуфинга и обработки icmp-пакетов, но перед правилами для обработки IP пакетов. Здесь желательно прописывать правила для запрета доступа определенных ip-адресов или tcp/udp портов.
  • fw_custom_before_port_handling() - загрузка ваших правил, после применения правил для антиспуфинга и обработки icmp-пакетов, а также после того, как весь траффик переопределен в специальные цепочки SuSEfirewall: input_XXX,forward_XXX и т.д. ,но перед правилами для обработки IP пакетов. Здесь желательно прописывать правила для запрета доступа определенных ip-адресов или tcp/udp портов.
  • fw_custom_before_masq()(может также именоваться как "after_port_handling()" ) - правила, описанные здесь будут загружаться после обработки IP пакетов и TCP/UDP портов, но перед пробросом портов или маскардинга. Используйте этот хук, если вам он действительно нужен и необходим!
  • fw_custom_before_denyall()(может также именоваться как "after_forwardmasq()" ) - правила, описанные здесь будут загружены после проброса портов и/или маскардинга. Используйте этот хук, для отключения логов ненужных пакетов.

  • Так вот, я фильтрую и рекомендую фильтровать все ненужные айпи адреса в hook'e fw_custom_before_antispoofing() что бы исключить возможность попадания любых пакетов в систему с ненужных айпи адресов.
    Пример:
    fw_custom_before_antispoofing() {
    iptables -A INPUT -j DROP -s 10.49.56.211/32
    iptables -A INPUT -j DROP -s 10.49.56.211/32
    iptables -A INPUT -j DROP -s 10.49.48.196/32
    iptables -A INPUT -j DROP -s 10.49.166.252/32
    iptables -A INPUT -j DROP -s 10.49.42.2/32
    }

    Фильтрация идет по локальной сети корбины телеком от начинающих dos'еров. Надеюсь вы теперь стали еще более уверены, насколько гибкий и удобный инструмент подарили нам разработчики openSUSE, за что Спасибо Им Огромное! :)

    GD Star Rating
    loading...
    Тонкая настройка SuSEfirewall2, 8.0 out of 10 based on 10 ratings

    15.07.2009 · Сергей · 2 комментария (-ев)
    Метки: , ,  · Рубрики: Linux/SuSE

    2 комментария (-ев)

    1. aonick.livejournal.com - 15.10.2010

      Спасибо за информацию,
      хоть до всего докопал сам — читая скрипт /sbin/SuSEfirewall2, но всё же русский комментарий к английскому тексту добавил уверености в понятом))

    2. demir - 11.11.2010

      Спасибо, но подробнее бы разобрать его конфигурационный файл (на русском).