@enly1

IPtables с выделенного на виртуальные серверы?

Поделил выделенный сервер на виртуальные серверы с помощью VMmanager (виртуализация KVM). Как можно сделать, чтобы правила iptables, написанные на выделенном сервере, применялись к виртуальным серверам, размещенном на выделенном сервере?
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
@krosh
Используйте цепочку FORWARD. Это сработает, если выделенный сервер является шлюзом для виртуальных.

Хотя лучше все же уточнить вопрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Don_Andretti
@Don_Andretti
Product manager
Для выполнения руководства нужно иметь два сервера. Исходный сервер, на котором находятся правила фаервола, называется в руководстве сервером A; целевой сервер – B.

Также нужно иметь права sudo.
Просмотр правил iptables

Прежде чем приступить к переносу правил брандмауэра, нужно просмотреть их. Для этого выполните следующую команду на сервере A:

s
udo iptables -S
Example output:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP


Теперь нужно перенести эти правила на другой сервер.

Экспорт правил Iptables

Команда iptables-save сохранит текущие правила брандмауэра в stdout, после чего его можно будет сохранить в файл.

Используйте эту команду на сервере А, чтобы экспортировать правила в файл iptables-export.

cd ~
sudo iptables-save > iptables-export


После этого в домашнем каталоге появится файл iptables-export, при помощи которого можно перенести правила фаервола на другой сервер.
Просмотр файла (опционально)

Проверьте, содержит ли новый файл все необходимые данные:

cat iptables-export
# Generated by iptables-save v1.4.21 on Tue Sep 1 17:32:29 2015
*filter
:INPUT ACCEPT [135:10578]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8364:1557108]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP
COMMIT
# Completed on Tue Sep 1 17:32:29 2015


Как видите, данный файл содержит все текущие правила iptables, и теперь можно скопировать этот файл на целевой сервер.
Перенос правил на целевой сервер

Проще всего для этого использовать scp или же просто скопировать и вставить содержимое файла в новый файл на целевом сервере.

Ниже показано, как при помощи scp скопировать файл по сети в каталог /tmp.

Итак, запустите команду scp на сервере А, указав логин и IP-адрес сервера.

scp iptables-export user@server_b_ip_address:/tmp


Пройдя авторизацию, файл будет скопирован в каталог /tmp на сервер В.

Примечание: Содержимое каталога /tmp будет удалено при перезагрузке системы. Не забудьте переместить файл в более надёжный каталог.

Импорт правил

Теперь можно загрузить перенесённые правила.

Примечание: В случае необходимости сейчас можно обновить их, добавив данные нового сервера; отредактируйте файл /tmp/iptables-export, внеся всё необходимое.

Когда правила будут соответствовать требованиям данного сервера, загрузите их из файла iptables-export при помощи команды iptables-restore.

На сервере В запустите:

sudo iptables-restore < /tmp/iptables-export


Чтобы убедиться, что правила загружены успешно, используйте:

sudo iptables -S


Сохранение правил

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

Сохранение правил в Ubuntu

Для сохранения правил брандмауэра система Ubuntu предлагает пакет iptables-persistent. Чтобы установить этот пакет, введите команду:

sudo apt-get install iptables-persistent


Во время установки программа предложит сохранить текущие правила iptables. Выберите yes.

В дальнейшем для сохранения новых или обновлённых правил используйте команду:

sudo invoke-rc.d iptables-persistent save


Сохранение правил в CentOS 6 и 7

По умолчанию системы CentOS 6 и 7 используют фаервол FirewallD; чтобы сохранить правила iptables, используйте:

sudo service iptables save


Это сохранит текущие правила iptables в файл /etc/sysconfig/iptables, который загрузится после перезапуска системы.

Перенос правил брандмауэра успешно завершён!
Ответ написан
opium
@opium
Просто люблю качественно работать
По сути никак только фильтруйте иптаблесом трафик а на виртуалках живите без фаеволе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы