LINUX.ORG.RU

Ubuntu: настройка iptables в качестве сервиса

 , ,


0

1

Доброго времени, уважаемые пользователи Линукс!

Вопрос: как по вашему мнению грамотно настроить запуск сервиса iptables на Ubuntu (trisquel)?

Проблема: `systemctl enable iptables` не работает.

На текущий момент настроено на домашнем компьютере (обычном десктопе) так:

# cat /etc/iptables-desktop.config 
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT


# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
post-up iptables-restore < /etc/iptables-desktop.config

# reboot

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       all  --  anywhere             anywhere             ! state NEW
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Собственно вопрос: iptables работает или нет, если оно не отображается в systemctl status iptables ?

# systemctl status iptables
● iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

Правильно ли восстанавливать настройки iptables через /etc/network/interfaces в поле post-up?

Интересует значение правила `ACCEPT all  — anywhere anywhere ` в цепочке INPUT? Не противоречит ли оно другим правилам, запрещающим входящие соединения?

Поделитесь своим опытом и настройками на десктопе, пожалуйста.

★★

Ответ на: комментарий от targitaj

на openrc все было проще:

# rc-service iptables save
# rc-update add iptables default

это работало и не требовало каких-либо усилий.

Для systemd инструкции трудно найти.

znavko ★★
() автор топика
Ответ на: комментарий от anonymous
#  apt-get install iptables-persistent
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет iptables-persistent самой новой версии (1.0.4).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

# service iptables-persistent start
Failed to start iptables-persistent.service: Unit iptables-persistent.service not found.

znavko ★★
() автор топика
Ответ на: комментарий от znavko

Сервис iptables в Gentoo только и делает, что вызывает iptables-restore сохранённые_правила.

Так что восстановление правил в post-up вполне нормальное решение.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

спасибо. как я понимаю, правила iptables задают настройки для netfilter - модулю ядра, работающим с сетью.

при добавлении правил iptables это мгновенно генерирует настройки netfilter. так?

znavko ★★
() автор топика
Ответ на: комментарий от znavko

Да, правила iptables - это представление правил пакетного фильтра netfilter и утилита iptables и прочие иже с ней это просто инструменты для редактирование и загрузки правил в netfilter.

kostik87 ★★★★★
()
Ответ на: комментарий от thesis

Yes. )))

root@trisq:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Trisquel
Description:	Trisquel GNU/Linux 8.0, Flidas
Release:	8.0
Codename:	flidas
root@trisq:~# uname -a
Linux trisq 4.4.0-119-generic #143+8.0trisquel2 SMP Thu Apr 5 16:24:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@trisq:~# apt-get install iptables-persistent
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  netfilter-persistent
НОВЫЕ пакеты, которые будут установлены:
  iptables-persistent netfilter-persistent
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 10 пакетов не обновлено.
Необходимо скачать 13,3 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 79,9 kB.
Хотите продолжить? [Д/н] Y
Пол:1 http://mirrors.serverhost.ro/trisquel/packages flidas/main amd64 netfilter-persistent all 1.0.4 [6 786 B]
Пол:2 http://mirrors.serverhost.ro/trisquel/packages flidas/main amd64 iptables-persistent all 1.0.4 [6 540 B]
Получено 13,3 kБ за 0с (48,6 kБ/c)                
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета netfilter-persistent.
(Чтение базы данных … на данный момент установлен 190461 файл и каталог.)
Подготовка к распаковке …/netfilter-persistent_1.0.4_all.deb …
Распаковывается netfilter-persistent (1.0.4) …
Выбор ранее не выбранного пакета iptables-persistent.
Подготовка к распаковке …/iptables-persistent_1.0.4_all.deb …
Распаковывается iptables-persistent (1.0.4) …
Обрабатываются триггеры для man-db (2.7.5-1) …
Обрабатываются триггеры для systemd (229-4ubuntu21.2) …
Обрабатываются триггеры для ureadahead (0.100.0-19) …
Настраивается пакет netfilter-persistent (1.0.4) …
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Настраивается пакет iptables-persistent (1.0.4) …
Обрабатываются триггеры для systemd (229-4ubuntu21.2) …
Обрабатываются триггеры для ureadahead (0.100.0-19) …
root@trisq:~# service netfilter-persistent status
● netfilter-persistent.service - netfilter persistent configuration
   Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
   Active: active (exited) since Вт 2018-05-29 00:32:33 MSK; 8min ago
 Main PID: 8192 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/netfilter-persistent.service

май 29 00:32:33 trisq systemd[1]: Starting netfilter persistent configuration...
май 29 00:32:33 trisq netfilter-persistent[8192]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
май 29 00:32:33 trisq netfilter-persistent[8192]: Warning: skipping IPv4 (no rules to load)
май 29 00:32:33 trisq netfilter-persistent[8192]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
май 29 00:32:33 trisq netfilter-persistent[8192]: Warning: skipping IPv6 (no rules to load)
май 29 00:32:33 trisq systemd[1]: Started netfilter persistent configuration.
root@trisq:/usr/share/doc/iptables-persistent# cat ./README 
netfilter-persistent and its plugins
------------------------------------

netfilter-persistent does no work on its own. You need the accompanying
plugins (for example, iptables-persistent) to load and save filter rules.

However, commands are run from netfilter-persistent. For example, to save
all filter rules:

   netfilter-persistent save

or to load them:

   netfilter-persistent start

For more details, see `man netfilter-persistent`.

The system service will try to load rules at startup if enabled, but by
default it will not flush rules at shutdown. This behaviour can be changed
by editing /etc/default/netfilter-persistent.

 -- Jonathan Wiltshire <jmw@debian.org>  Sat, 02 Jan 2016 00:00:00 +0000

anonymous
()

Установи iptables-persistent, затем набивай правила утилитой iptables, затем сохраняй правила в файл /etc/iptables/rules.v4 (/etc/iptables/rules.v6 для ipv6). И все, после перезагрузки правила будут применены.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

Вот мой скрипт для настройки правил iptables:

#!/bin/bash

# ip4 #############

iptables -F
iptables -t nat -F

iptables -P INPUT DROP
iptables -P FORWARD DROP

# allow all input!
#iptables -P INPUT ACCEPT
#iptables -P FORWARD ACCEPT

# allow all outcoming packets
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# accept established connections
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# ssh ####
iptables -A INPUT -p tcp --dport 12345 -j ACCEPT

# icmp ####
iptables -A INPUT -p icmp -j ACCEPT

# samba ####
# iptables -A INPUT -p tcp -m multiport --destination-port 139,445 -j ACCEPT

# ip4 #############

###################

# ipv6 ############

ip6tables -F

#table nat dont exist
#ip6tables -t nat -F

ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP

# allow all input!
#ip6tables -P INPUT ACCEPT
#ip6tables -P FORWARD ACCEPT

# allow all outcoming packets
ip6tables -P OUTPUT ACCEPT

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT

ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

ip6tables -A INPUT -p tcp --dport 12345 -j ACCEPT

ip6tables -A INPUT -p ipv6-icmp -j ACCEPT

# ipv6 ############

###################

# save rules ######

# iptables-persistent service restore rules on boot time
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

# save rules ######

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

на другом ноутбуке обнаружил другой способ настройки iptables: правила сохранены в /etc/iptables/rules.v4

# cat /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Wed May  2 05:28:51 2018
*filter
:INPUT DROP [19:686]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1883:253304]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Wed May  2 05:28:51 2018

после ребута эти правила подгружает iptables самостоятельно.

znavko ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.