Третий день бьюсь с роутингом.
Нарыл инфы всякой, а толку нет.
У меня два интерфейса
eth0-локалка 192.168.1.0/24 и eth1-DHCP
сервер Ubuntu 9.10 192.168.1.1
клиент XP 192.168.1.10
Прописал в /etc/sysctl.conf
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
net.ipv4.ip_forward=1
Поэтому /proc/sys/net/ipv4/ip_forward даже после перезагрузки содержит 1.
После чего использовал скрипт.
#!/bin/sh
#
# mytables Set iptables's rulesets
#
# chkconfig: 2345 08 92
# description: Set iptables's rulesets
#
### BEGIN INIT INFO
# Provides: iptables_rulesets
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: iptables's rulesets
# Description: iptables's rulesets
### END INIT INFO
echo -n «seting up firewall rulesets...»
IPT=/sbin/iptables
EXTIF="ppp0" #интернет
INTIF="eth1" #интерфейс интернета
LOCAL="eth0" #локалка
if echo 1 > /proc/sys/net/ipv4/ip_forward;
then echo -n "problem with forwarding! not ";
fi;
# Enable simple IP forwarding and Masquerading
$IPT -X
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t nat
$IPT -F
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP #можете сделать политику по умолчанию ACCEPT для INPUT,
#если вам лень настраивать настройки фильтра, но это чрезвычайно небезопасно
#сюда можно вставить фильтрацию по MAC-адресам
$IPT -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPT -A FORWARD -i $LOCAL -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $INTIF -o $LOCAL -j ACCEPT
$IPT -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $LOCAL -j MASQUERADE
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo « successfully!»
Во первых echo 1 > /proc/sys/net/ipv4/ip_forward у меня не выполняется, пишет access denied. (Выполняю через sudo).
Во вторых, а
if echo 1 > /proc/sys/net/ipv4/ip_forward;
then echo -n "problem with forwarding! not ";
fi;
правильно ли работает?
В третьих пропадает пинг с клиента на сервер, а с сервера на клиента есть.
Поставил
$IPT -A INPUT -i eth0 -j ACCEPT
$IPT -A OUTPUT -o eth0 -j ACCEPT
пинг появился (насколько это правильно?)
Но инета на клиенте как небыло так и нет.
Что делать?
Спасибо.