iptables между eth0 eth1 и ppp0?

Привет.

Есть домашняя сеть на eth0, адресс выделяется через DHCP. В интернет выход через ВПН на ppp0.
eth1 - сеть в доме для выхода двух компьютеров.

Что я сделал, настроил локальную сеть на eth0, поднятие VPN с пропиской правильного роутинга. (есть локальные ресурсы которые идут не через ppp а через eth0). Для у добства поднял на eth1 dhcp сервер.

На этом встал в тупик, как сделать чтобы тек 2 компа могли выходить в инет и к локальным ресурсам?

10.*.*.*, 85.34.5.* - локальные ресурсы домашней сети.

спасибо.

if_inet="ppp0"
if_home="eth0"
if_lan="eth1"

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o $if_inet -j MASQUERADE
iptables -t nat -A POSTROUTING -o $if_home -j MASQUERADE

# пакеты с интерфейса локалки на любой другой
iptables -A FORWARD -i $if_lan -j ACCEPT

если всё правильно понял, конечно..

спасибо, сейчас

спасибо, сейчас попробую.

Заработал,инет

Заработал,инет есть все ок, но есть некая заморочка с фтп.
Т.е. если коннектишься к серверу в "активном" режиме, то сервер пишет ошибку и говорит что не может установить соединения и подставляет адрес внутренней(if_lan) сети.

может я немного немонял
if_inet - все понятно это инет через впн
if_home - это домашняя сеть через которую я выхожу в инет
if_lan - это сеть которую создаю я
так?

сорри за ламерский вопрос, но немогу найти где iptables файл с правилами?

modprobe

файл iptables с правилами надо создать самому.
начать с чего-нибудь типа:

#!/bin/sh
I=/sbin/iptables

$I -P INPUT DROP
$I -P OUTPUT DROP
$I -P FORWARD DROP
$I -F
$I -X
$I -t nat -F
$I -t nat -X
$I -t mangle -F
$I -t mangle -X

$I -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
$I -A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
$I -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$I -A INPUT  -i lo -j ACCEPT
$I -A OUTPUT -o lo -j ACCEPT

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

потом можно просто запускать этот файл, он применит новый набор правил. (запускать можно в т.ч. удаленно.)

для поддержки активного режима фтп через нат:
modprobe ip_nat_ftp
(вроде не ошибся)

с интерфейсами - всё верно

Я делал по этой

Я делал по этой инструкции:
http://www.gentoo.org/doc/en/home-router-howto.xml
Может вместо скрипта лучше просто запомнить все правила?

This is so when we boot we don't have to run the rules by hand
# /etc/init.d/iptables save
# rc-update add iptables default
# nano /etc/sysctl.conf
Add/Uncomment the following lines:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

Да, после того,

Да, после того, как с помощью шлифовки скрипта (так удобнее манипулировать правилами) будет достигнут нужный результат, можно сделать /etc/init.d/iptables save, для записи вывода iptables-save в файл /var/lib/iptables/rules-save, который будет читаться при старте iptables.

#modprobe ip_nat_ftp

#modprobe ip_nat_ftp ругается что не может найти такой модуль, а в настройках я его найти немогу.

Symbol: IP_NF_FTP

Symbol: IP_NF_FTP [=y]
Prompt: FTP protocol support
  Defined at net/ipv4/netfilter/Kconfig:72
  Depends on: NET && INET && NETFILTER && IP_NF_CONNTRACK
  Location:
    -> Networking
      -> Networking support (NET [=y])
        -> Networking options
          -> Network packet filtering (replaces ipchains) (NETFILTER [=y])
            -> IP: Netfilter Configuration
              -> Connection tracking (required for masq/NAT) (IP_NF_CONNTRACK [=y])

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".