Восстановление работоспособности iptables в Fedora

THE HOLY BIBLE - King James Version - БИБЛИЯ в Синодальном переводе
"Нас Атакуют!" Изобличи козни лукавого, запрети диаволу

Восстановление работоспособности iptables в Fedora

Начиная с версии 18, в дистрибутиве Fedora были изменены правила и способы конфигурации межсетевого экрана. Новый продукт firewalld способен выполнять примитивные действия при использовании брандмауэра, но существенно усложняет внедрение и препятствует внесению изменений в сложные конфигурации, включающие модули типа connlimit, hashlimit и recent.

Предлагаемая читателю заметка демонстрирует простой способ отключения firewalld и восстановления "классической" работы iptables.

Прежде чем мы продолжим, я хотел бы привести строки из Евангелия:



............. == Послание к Ефесянам святого апостола Павла == .................
=== Глава 4, Стих 17 ===
17 Посему я говорю и заклинаю Господом, чтобы вы более не поступали, как
 поступают прочие народы, по суетности ума своего,
18 будучи помрачены в разуме, отчуждены от жизни Божией, по причине их
 невежества и ожесточения сердца их.
19 Они, дойдя до бесчувствия, предались распутству так, что делают всякую
 нечистоту с ненасытимостью.
20 Но вы не так познали Христа;
21 потому что вы слышали о Нем и в Нем научились, -- так как истина во
 Иисусе, --
22 отложить прежний образ жизни ветхого человека, истлевающего в
 обольстительных похотях,
23 а обновиться духом ума вашего
24 и облечься в нового человека, созданного по Богу, в праведности и
 святости истины.
25 Посему, отвергнув ложь, говорите истину каждый ближнему своему, потому
 что мы члены друг другу.
26 Гневаясь, не согрешайте: солнце да не зайдет во гневе вашем;
27 и не давайте места диаволу.
28 Кто крал, вперед не кради, а лучше трудись, делая своими руками полезное,
 чтобы было из чего уделять нуждающемуся.
29 Никакое гнилое слово да не исходит из уст ваших, а только доброе для
 назидания в вере, дабы оно доставляло благодать слушающим.
30 И не оскорбляйте Святаго Духа Божия, Которым вы запечатлены в день
 искупления.
31 Всякое раздражение и ярость, и гнев, и крик, и злоречие со всякою злобою
 да будут удалены от вас;
32 но будьте друг ко другу добры, сострадательны, прощайте друг друга, как и
 Бог во Христе простил вас.

Лично для вас благая весть - Единородный Сын Божий Иисус Христос любит вас, Он взошёл на крест за ваши грехи, был распят и на третий день воскрес, сел одесную Бога и открыл нам дорогу в Царствие Небесное.

И вот уже не одну тысячу лет слово "Человеколюбие" занимает центральное место в нашей христианской вере и молитвах. Господь хочет, чтобы мы любили друг друга, были добры и сострадательны, отбрасывая мирские похоти, зависти и обиды. Спасение наше возможно только через веру и любовь - так давайте изменим себя и свою жизнь так, как угодно Богу, обновляя свой образ жизни и вовлекая в него всё больше любви. Шаг за шагом, распространяйте человеколюбие всё дальше, на своих близких, друзей, знакомых, коллег и просто окружающих вас людей - и в вашей жизни не останется места диаволу.

Покайтесь, примите Иисуса как вашего Спасителя, ибо наступают последние времена и время близко - стоит Судья у ворот.

Пожалуйста, в своих каждодневных трудах, какими бы занятыми вы себе ни казались - находите время для Бога, Его заповедей и Библии.

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


Вернёмся к нашим техническим деталям.

Для восстановления нормальной работы брандмауэра нам необходимо:

  • создать файл с правилами для межсетевого экрана
  • отключить службу firewalld
  • запустить службу iptables
  • удалить из системы ненужный rpm
  • Подготовка файла с правилами iptables

    Для правильной работы iptables подготовим следующий простейший конфигурационный файл. Оценить важность слова "простой" вы сможете, посмотрев правила, созданные пакетом firewalld при установке системы - просто введите команду "iptables -L" и попробуйте разобрать две страницы показанных динамических правил. Вся эта неразбериха выполняет те же самые функции, что и приведенные ниже инструкции:

    ......................... == Книга пророка Ионы == .............................
    === Глава 2, Стих 11 ===
    9 Чтущие   суетных   и   ложных   _богов_   оставили    Милосердаго      своего,
    10 а я гласом  хвалы  принесу  Тебе  жертву;  что  обещал,  исполню:  у  Господа
    спасение!
    
    (b+/b-, c+/c-, +/-, *) >
    [u1@lighty ~]$ cat /etc/sysconfig/iptables
    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j DROP
    -A INPUT -i lo -j ACCEPT
    #-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -j DROP
    COMMIT
    [u1@lighty ~]$
    

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

    Отключение firewalld

    Новый пакет firewalld работает как "надстройка" над старым добрым iptables, при этом даже не заменяя его. Идея зон безопасности и динамического изменения правил достаточно хороша, но не предоставляет нам необходимой гибкости. Для использования модулей необходимо передавать те же самые команды iptables, но вводя их через "firewall-cmd --direct --passthrough ...", что значительно затрудняет работу.

    Для отключения firewalld как пользователь root введите команду "service firewalld stop".

    Включение iptables

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

    ....................... == Четвертая книга Царств == ...........................
    === Глава 17, Стих 14 ===
    14 Но они не слушали и ожесточили выю свою,  как  была  выя  отцов  их,  которые
    не веровали в Господа, Бога своего;
    15 и презирали уставы Его, и завет Его, который  Он  заключил  с  отцами  их,  и
    откровения  Его,  какими  Он  предостерегал  их,  и  пошли  вслед   суеты   и
    осуетились, и вслед  народов  окрестных,  о  которых  Господь  заповедал  им,
    чтобы не поступали так, как они,
    16 и  оставили  все  заповеди  Господа  Бога  своего,  и  сделали   себе   литые
    изображения двух тельцов, и устроили дубраву, и  поклонялись  всему  воинству
    небесному, и служили Ваалу,
    17 и  проводили  сыновей  своих  и  дочерей  своих  чрез  огонь,  и  гадали,   и
    волшебствовали, и предались тому, чтобы делать неугодное  в  очах  Господа  и
    прогневлять Его.
    
    (b+/b-, c+/c-, +/-, *) >
    [root@lighty ~]# service iptables start
    Redirecting to /bin/systemctl start  iptables.service
    [root@lighty ~]# service iptables status
    Redirecting to /bin/systemctl status  iptables.service
    iptables.service - IPv4 firewall with iptables
    Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled)
    Active: active (exited) since Sun, 2013-01-20 17:29:11 EST; 3s ago
    Process: 1543 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
    Process: 1795 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
    CGroup: name=systemd:/system/iptables.service
    
    Jan 20 17:29:11 lighty.localdomain iptables.init[1795]: iptables: Applying firewall rules:
    WARNING: The state match is obsolete. Use conntrack instead.
    Jan 20 17:29:11 lighty.localdomain iptables.init[1795]: [  OK  ]
    Jan 20 17:29:11 lighty.localdomain systemd[1]: Started IPv4 firewall with iptables.
    [root@lighty ~]# [root@lighty ~]# iptables -L
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
    DROP       icmp --  anywhere             anywhere
    ACCEPT     all  --  anywhere             anywhere
    DROP       all  --  anywhere             anywhere
    
    Chain FORWARD (policy DROP)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    [root@lighty ~]#
    

    Итак, наша система полностью недоступна снаружи, при этом все локальные программы могут инициировать исходящие соединения. Дополняя файл "/etc/sysconfig/iptables" новыми правилами и перезапуская экран командой "service iptables restart" мы можем просто и ясно вносить необходимые изменения, используя дополнительные модули типа "conntrack".

    Удаление пакета firewalld

    Теперь, когда наша система более или менее защищена от внешних вторжений и мы можем использовать хорошо знакомые конфигурационные правила, я предпочитаю удалить ненужные программы. Это делается командой "yum erase firewalld".

    Поскольку несколько других пакетов зависят от удалённого firewalld, я хочу предотвратить случайное "возвращение" этой программы в мою систему:

    .......... == Второе послание к Тимофею святого апостола Павла == ..............
    === Глава 2, Стих 17 ===
    16 А непотребного пустословия удаляйся; ибо  они  еще  более  будут  преуспевать
    в нечестии,
    17 и  слово  их,  как  рак,  будет  распространяться.  Таковы  Именей  и  Филит,
    18 которые  отступили  от  истины,  говоря,  что   воскресение   уже   было,   и
    разрушают в некоторых веру.
    
    (b+/b-, c+/c-, +/-, *) >
    [root@lighty ~]#
    [root@lighty ~]# cat /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=3
    # To prevent firewalld from installing via dependencies.
    exclude=firewalld
    [root@lighty ~]#
    

    Удостоверимся, что строка "exclude=firewalld" действительно работает:

    [root@lighty ~]# yum install firewalld
    Loaded plugins: langpacks, presto, refresh-packagekit
    fedora/18/i386/metalink                                                     |  41 kB  00:00:00
    updates/18/i386/metalink                                                    |  32 kB  00:00:00
    updates                                                                     | 4.7 kB  00:00:00
    No package firewalld available.
    Error: Nothing to do
    [root@lighty ~]#
    

    Итак, теперь мы можем продолжать использовать уже существующий и тщательно проверенный файл "/etc/sysconfig/iptables" из Fedora 17 для конфигурации межсетевого экрана в версии 18.

    Спасибо что зашли,

    Будьте благословенны!
    Денис

    21 Января 2013 года.