сабж.Прописал правила для макарадинга, ну как водится с первого раза не заработало. Делал как советовали тут на форуме.
Вроде грешить не на что, кроме настроек MS Internet Explorer (Win98), да и наверное самой Win98.
Навсякий случай дам листанги правил ну всякую дополнительную информацию.Это выводит iptables -t filter -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destination
"nj dsdjlbn
Chain PREROUTING (policy ACCEPT)
target prot opt source destinationЭто выводит iptables -t nat -L
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- xxx.xx.xx.0/24 anywhereChain OUTPUT (policy ACCEPT)
target prot opt source destinationВот сам скрипт:
IPTABLES=/sbin/iptables/sbin/modprobe ip_conntrack
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe iptable_nat$IPTABLES -t nat -A POSTROUTING -s ххх.хх.хх.0/24 -o ppp+ -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forwardВ Win98 указан ДНС, и шлюз.
>сабж.
>
>Прописал правила для макарадинга, ну как водится с первого раза не заработало.
>Делал как советовали тут на форуме.
>Вроде грешить не на что, кроме настроек MS Internet Explorer (Win98), да
>и наверное самой Win98.
>Навсякий случай дам листанги правил ну всякую дополнительную информацию.
>
>Это выводит iptables -t filter -L
>
>Chain INPUT (policy ACCEPT)
>target prot opt source
> destination
>
>
>Chain FORWARD (policy ACCEPT)
>target prot opt source
> destination
>
>
>Chain OUTPUT (policy ACCEPT)
>target prot opt source
> destination
>
>"nj dsdjlbn
>Chain PREROUTING (policy ACCEPT)
>target prot opt source
> destination
>
>
>Это выводит iptables -t nat -L
>
>Chain POSTROUTING (policy ACCEPT)
>target prot opt source
> destination
>
>MASQUERADE all -- xxx.xx.xx.0/24
> anywhere
>
>Chain OUTPUT (policy ACCEPT)
>target prot opt source
> destination
>
>
>Вот сам скрипт:
>IPTABLES=/sbin/iptables
>
>/sbin/modprobe ip_conntrack
>/sbin/modprobe ipt_MASQUERADE
>/sbin/modprobe iptable_nat
>
>$IPTABLES -t nat -A POSTROUTING -s ххх.хх.хх.0/24 -o ppp+ -j MASQUERADE
>echo "1" > /proc/sys/net/ipv4/ip_forward
>
>В Win98 указан ДНС, и шлюз.
Вот мои рабочие цепочки маскарада:
$IPTABLES -A FORWARD -i eth0 -m state --state NEW,INVALID -j REJECT
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADEНа клиенте ничего дополнительного настраивать не надо.
В качестве теста - пинг на внешний адрес.
>На клиенте ничего дополнительного настраивать не надо.
>В качестве теста - пинг на внешний адрес.Тоесть правила у меня написаны корректно?
Теоретически должно работать?
Да?
>На клиенте ничего дополнительного настраивать не надо.
>В качестве теста - пинг на внешний адрес.Внешний мир не пингуется.
Беда!!!
>>На клиенте ничего дополнительного настраивать не надо.
>>В качестве теста - пинг на внешний адрес.
>
>Внешний мир не пингуется.
>Беда!!!
Попробуй добавить $IPTABLES -P FORWARD ACCEPT
>>>На клиенте ничего дополнительного настраивать не надо.
>>>В качестве теста - пинг на внешний адрес.
>>
>>Внешний мир не пингуется.
>>Беда!!!
>Попробуй добавить $IPTABLES -P FORWARD ACCEPTИ даже так не работает, да у меня и так все полиси по умолчанию были ACCEPT.
>>>>На клиенте ничего дополнительного настраивать не надо.
>>>>В качестве теста - пинг на внешний адрес.
>>>
>>>Внешний мир не пингуется.
>>>Беда!!!
>>Попробуй добавить $IPTABLES -P FORWARD ACCEPT
>
>И даже так не работает, да у меня и так все полиси
>по умолчанию были ACCEPT./usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 0/0 -j MASQUERADE
И никаких дополнительных правил или настроек, кроме прописывания resolv.conf не нужно. Ты ведь догадался nameserver прописать?
>>>>>На клиенте ничего дополнительного настраивать не надо.
>>>>>В качестве теста - пинг на внешний адрес.
>>>>
>>>>Внешний мир не пингуется.
>>>>Беда!!!
>>>Попробуй добавить $IPTABLES -P FORWARD ACCEPT
>>
>>И даже так не работает, да у меня и так все полиси
>>по умолчанию были ACCEPT.
>
>/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 0/0 -j MASQUERADE
>
>И никаких дополнительных правил или настроек, кроме прописывания resolv.conf не нужно. Ты
>ведь догадался nameserver прописать?У меня поднят ДНС, все пашет как часики.
При запросе какого-либо URL рабочая станция получает IP от моего ДНС и на этом затыкается.Да и пингую я по имени, ане по IP и все резолвится.
По моему тут причина не в фаирволе, правила написаны правильно, просто машина совсем не форвардит. Попробуй сделать такecho 1 >/proc/sys/net/ipv4/ip_forward
Это что - бы не перегружать тачку, включает forward в ядре.
А для дальнейшего, посмотри /etc/sysctl.conf на наличие ...forward = 1
>По моему тут причина не в фаирволе, правила написаны правильно, просто машина
>совсем не форвардит. Попробуй сделать так
>
>echo 1 >/proc/sys/net/ipv4/ip_forward
>
>Это что - бы не перегружать тачку, включает forward в ядре.
>
>А для дальнейшего, посмотри /etc/sysctl.conf на наличие ...forward = 1Извини Друг, но прочитай внимательно топ, там
echo 1 >/proc/sys/net/ipv4/ip_forward прописано.Мне тоже кажется что правила я создал нормально, помог просмотр старых топиков на этом форуме, но все эти мучения порадили во мне всякие ГЛУПЫЕ мысли. Когда у меня стоит простой прокси, я знаю что надо в браузере прописать его, когда у меня прозрачный прокси писать ничего не надо. НО у меня ни то ни другое. Вот я и призадумался, как настроить браузер при маскарадинге.
>По моему тут причина не в фаирволе, правила написаны правильно, просто машина
>совсем не форвардит. Попробуй сделать так
>
>echo 1 >/proc/sys/net/ipv4/ip_forward
>
>Это что - бы не перегружать тачку, включает forward в ядре.
>
>А для дальнейшего, посмотри /etc/sysctl.conf на наличие ...forward = 1Может еще какой-нибудь модуль подгрузить?
>>По моему тут причина не в фаирволе, правила написаны правильно, просто машина
>>совсем не форвардит. Попробуй сделать так
>>
>>echo 1 >/proc/sys/net/ipv4/ip_forward
>>
>>Это что - бы не перегружать тачку, включает forward в ядре.
>>
>>А для дальнейшего, посмотри /etc/sysctl.conf на наличие ...forward = 1
>
>Может еще какой-нибудь модуль подгрузить?Посмотри, присутствуют ли пакеты на входном и выходном интерфейсах.
Я в правилах не вижу RELATED...
>Посмотри, присутствуют ли пакеты на входном и выходном интерфейсах.
>Я в правилах не вижу RELATED...
у него все policy=accept, зачем ему related? а выход один - запускать на каждом интерфейсе, и смотреть, что проходит. не помогает - пересобрать ядро повнимательнее к разделу netfilter config...А вообще, imho, лучше всего взять конфиг из примера в howto и адаптировать под себя. Или если уже так охота написать самому, то поставить последним правилом во всех цепях -j LOG - чтобы хоть видеть, что проходит...
Я так понимаю, что утебя дозвон на провайдера по ppp а за интерфейсом eth0 стоит локалка. Так ?Тогда цепочка будет такая
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
192.168.0.0/24 Это адреса за сетевой карточкой. Если у тебя не идет трейс или пинг с самого линуха, поставь в ppp параметр noipdefault. Больше ничего ненужно, ато я вижу для такой простой задачи насоветовали кучу ненужностей.
На рабочих станциях ставь адреса начиная с 192.168.0.2, при условии что на линуксовой сетевухе 192.168.0.1 (но это так для примера). Шлюз по умолчанию будет 192.168.0.1. А вот днс на винде поставь сначала провайдера твоего и попробуй походить в инет. Должно все работать.
Ну правда есть еще одна тонкость с маскарадом ftp сессий. Но это решается так
echo "/sbin/modprobe ip_conntrack_ftp" > /etc/rc.d/rc.local.local
echo "/sbin/modprobe ip_nat_ftp" >> /etc/rc.d/rc.local.localВот собственно и все.
А вот /etc/sysctl.conf на наличие net.ipv4.ip_forward = 1
все - таки проверь.
>Я так понимаю, что утебя дозвон на провайдера по ppp а
>за интерфейсом eth0 стоит локалка. Так ?Ты прав, все именно так.
>Тогда цепочка будет такая
>
>iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
>
>192.168.0.0/24 Это адреса за сетевой карточкой. Если у тебя не идет трейс
>или пинг с самого линуха, поставь в ppp параметр noipdefault. Больше
>ничего ненужно, ато я вижу для такой простой задачи насоветовали кучу
>ненужностей.С самого лИнуха все идет прекрасно (и ping и трейс). Скажу больше даже ИНЕТ работает. Я поставил squid так что ИНЕТ раздается. Все это затеялось только из-за ftp маскарадинга. Но прежде чем приступить к ftp я решил просто попробовать маскарадинг, и вот какой облом.
Я даже не знаю какие диагностические приемы применить.
Попробую трейсить с рабочей станции, посмотрим на чем заканчивается (думаю сюрприза не будет - это шлюз).
Может применить логирование пакетов?Такой вопрос, если бы ядро было собрано без поддрежки маскарадинга или некорректно, неужели бы правило добавилось?
Кто-то может что-то сказать насчет ядра из дистрибутива Linux RH 7.3 Valhalla kernel 2.4.18. Кто-то мутил под него маскарадинг?>Ну правда есть еще одна тонкость с маскарадом ftp сессий. Но это
>решается так
>
>echo "/sbin/modprobe ip_conntrack_ftp" > /etc/rc.d/rc.local.local
>echo "/sbin/modprobe ip_nat_ftp" >> /etc/rc.d/rc.local.local
>
>Вот собственно и все.Это попробую только когда заработает просто маскарадинг.
>А вот /etc/sysctl.conf на наличие net.ipv4.ip_forward = 1
>все - таки проверь.Обязательно проверю.
Активные маршруты:Cетевой адрес Маска Адрес шлюза Интерфейс Метрика
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
IP_сети 255.255.255.0 мой_IP мой_IP 1
мой_IP 255.255.255.255 127.0.0.1 127.0.0.1 1
моя_сеть 255.255.255.255 мой_IP мой_IP 1
224.0.0.0 224.0.0.0 мой_IP мой_IP 1
255.255.255.255 255.255.255.255 мой_IP 0.0.0.0 1Вот такблица маршрутизации на рабочей станции.
Мо-моему совсем не нормальная таблица.Или я не прав?
Насколькоя могу судить нет адреса шлюза.
Кому интересно и для тех у кого такие же грабли будут даю решение проблемы.
Дело было вовсе не в правила маскарадинга, и именно в таблице маршрутов рабочей станции. Просто был не совсем правильно настроен DHCP там отсутствовала опция option routers IP_шлюза. В связи с этим все рабочие станци получали неправельный маршрут.Желаю удачи.