Найти - Пользователи
Полная версия: iptables
Начало » Флейм » iptables
1 2
ZZZ
Прошу у сообщества помощи.
Дело в том, что я нашёл неплохую работёнку админом и мне дали домашнее задание для проверки моих знаний. Я уже давно ничего не админил, а вспомнить нужно до завтра.

Первая задача такая:
Есть сервер A, который через интерфейс eth0 подключён к интернет и через eth1 – к серверу B.
На сервере A установлен Apache (порты 80 и 443), а на сервере два ftpd (порт 21).
Сервер B должен быть подключён к интернет через сервер A по средством NAT.
Фактически, ответом будет список команд iptables на сервере A, но я уже всё забыл!!! Сейчас копаюсь в манах и, наверное, справлюсь, но всё-таки хотелось бы, чтобы кто-нить написал своё решение и я выберу лучшее.


Ещё вопрос: как заюзать два канала в и-нет через один сервер. Т.е. есть два соединения с внешней сетью и надо прозрачно для пользователя использовать оба. На сервере установлены сквид и постфикс. “Железные” способы решения тоже интересны.
ZZZ
fbt, до
sysctl -w net.ipv4.ip_forward=1
я догадался. А вот как с перенаправением? Да ещё, чтобы оно красиво работало… Разбираюсь потихоньку…
sypper-pit
а обязан ли ты использовать iptables или сгодится, что то другое. К примеру можно использовать на 2 канала route и zebra
ZZZ
Так, начитался и получил что-то вроде этого (192.168.1.2 – IP машины B):
# Разрешаем маршрутизацию
sysctl -w net.ipv4.ip_forward=1

# Разрешаем входящие пакеты уже открытых соединений
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Исходящий NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Перенаправление входящего порта ftp (предположим сервер B имеет адрес 192.168.1.2)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to-destination 192.168.1.2:21

# Остальное убиваем
iptables -t nat -P PREROUTING DROP

# Пропускаем входящие соединения на Апач машины A
iptables INPUT -i eth0 -p tcp -m multiport --dport 80,443 -j ACCEPT

# Убиваем все непринятые правилами выше входящие
iptables -P INPUT DROP

# Разрешаем все исходящие
iptables -P OUTPUT ACCEPT
Проверьте уж, что не так…
ZZZ
sypper-pit
а обязан ли ты использовать iptables или сгодится, что то другое.
Вроде бы и не обязан, но это будет самое правильное.

Так, с первой задачей, я надеюсь, разобрался. Теперь нужно найти решение с двумя каналами.
Подкиньте хоть одну мысль, куда рыть!
sypper-pit
iptables вообще сильный инструмент , думаю разберешься…
ZZZ
Я уже думал об этом, но пока не знаю, как это сделать… Не писать же руками модуль для iptables!

Я вот http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt увидел и думаю, оно это, или не оно… Всё, спать пора…
ZZZ
Ну что, меня взяли, когда я предложил Quagga (спасибо sypper-pit за пинок в сторону Зёбры, форком которой, Квага и является).
Ещё вот тут мне предложили iproute2… Тоже интересная мысль, которая может заработать.

Ладно, мысли есть, а когда руки дойдут до этой проблемы (она реальная), тогда и выберу лучший вариант.
Viper
Настройка iproute2 для использования двух каналов подробно описана тут.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB