В общем предистория такова: у меня дома 3 компьютера, соединены в локальную сеть (192,168,0,0); один из них кроме этого имеет выход в инет (отдельная сетевая карта (192,168,1,0) соединяется с адсл-модемом)
на этом компе установлена Ubuntu (7.04, обновлена уже до 8.10), гуй отключен, файрвол и шейпинг трафика настроен с помощью shorewall
вся эта конструкция слава Б работала года полтора уже, напильником дотюнил до рабочего состояния: на Ubuntu-компе автозагружается screen в котором крутится rtorrent, трафик урезается, если кому-то из остальных компов надо срочно на тытюбик, по ssh есть доступ для администрирования из локальной сети и с работы (крутится тулза, которая периодически на DynDNS кажется обновляет имя<>IP адрес)
модем настроен как роутер (или как это называется - короче когда он сам соединяется с провайдером, восстанавливает связь, если надо, и т.д.)
все ip-адреса заданы руками, eth0 смотрит в модем, eth1 в локальную сеть
вот; теперь мне провели интернет от билайна (анлим 5 мбит), в квартиру затянули сетевой шнурок, настроили на виндовом компе соединение vpn, проверили, что все работает, после чего я вчера пол-дня игрался, пытаясь настроить Ubuntu-комп
в общем-то все заработало, за исключением доступа в инет из локальной сети.. что-то у меня в правилах shorewall-а, надо разобраться, что именно.. по идее то (это я уже утром соображал, едучи на работу) у меня при поднятом интернете теперь 3 сетевых соединения: eth1 по прежнему смотрит в локальную сеть, с ним ничего не менялось; eth0 смотрит в сеть провайдера, адреса получает автоматом (10,*,*,* - такого типа)
а после установки vpn-соединения появляется еще интерфейс ppp0, с "белым" адресом, который собственно и есть интернет; видимо его надо тоже добавить в правила правильно; или же надо что-то правильно добавить в таблицу маршрутов..
пока я только добавил строчку в /etc/shorewall/interfaces:
inet eth0 detect tcpflags,blacklist,nosmurfs,logmartians
inet ppp0 detect tcpflags,blacklist,nosmurfs,logmartians
loc eth1 detect blacklist,nosmurfs
строчку с ppp0 я тупо скопировал с eth0 - по идее оба эти интерфейса смотрят (с точки зрения файрвола) в интернет (даже без vpn соединения есть доступ к сайтам внутри сети провайдера - чем не интернет?..), так что и правила особо менять не надо (все правила ведь завязаны на отношения inet<> loc<>FW)
косвенно подтверждает, что я не совсем неправ то, что а) компьютер с Ubuntu видит и локальные, и "глобальные" сайты, 2) я его сейчас вижу с работы, вошел по ssh и смотрю на настройки shorewall-а
но при этом другие компьютеры у меня дома инета не видят, shorewall в логи тоже ничего не пишет по поводу каких-нибудь заблокированных пакетов.. (но в локальной сети они Ubuntu-комп видят, и его самбу, и его апач и прочие службы)
а, я еще добавил в policy
loc inet ACCEPT - локальной сети можно в инет
loc $FW ACCEPT - локальной сети можно в Ubuntu-комп
loc all REJECT info - все остальное локальной сети по умолчанию нельзя, если что - писать в лог
$FW inet ACCEPT - Ubuntu-компу можно в инет
inet:ppp0 $FW ACCEPT - вот это я дописал - "инету из vpn можно в файрволл".. не очень много смысла как-то..
inet $FW DROP info - а вообще инету в файрвол нельзя (кроме исключений из rules)
inet loc DROP info - все из инета в локальную сеть отбрасываем
all all REJECT info - и все что не упомянуто - отбрасываем
строчку с "inet:ppp0" пришлось добавить кажется как раз чтобы комп с Ubuntu видел инет
в rules много всякого написано - в основном разрешен доступ по ssh, правила для самбы, svn, http(s) для доступа с работы..
вот в общем все важное вроде рассказал.. если же дело в роуте - вот таблица на сейчас
hamster@ubuntu-pc:/etc/shorewall$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
85.21.72.83 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
195.14.50.21 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
195.14.50.26 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
89.179.135.67 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
195.14.40.141 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
195.14.50.93 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
94.27.126.9 10.43.70.1 255.255.255.255 UGH 0 0 0 eth0
10.43.70.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
10.0.0.0 10.43.70.1 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
откуда куча строчек в начале таблицы - не в курсе, видимо dhcp добавил (до установки соединения ppp0 их не было)
я не очень понимаю, как оно работает - но кажется (?) что там добавляется правило типа "для всего, что приходит с eth1 с адресами 192,168,0,* установить шлюз по умолчанию 10.43.70.1" - разве не должно работать? но не работает

в общем, очень хочется это пофиксить, жду советов