Несколько вопросов по сетям (squid, forward, samba)
Добрый день, есть вопросы по сабжу.
Имеется:
Mandriva 2007.0 PowerPack
интерфейс eth0 (192.168.0.1/255.255.255.0) - домашняя сеть через хаб.
интерфейс eth2 (192.168.1.2/255.255.255.0) - подключен модем.
В качестве прокси на данный момент используется toonel.net (софтина на яве для сжатия трафика)
toonel.net повешен на порт 8081.
В софте прописывается как прокси 127.0.0.1:8081.
Хочу настроить:
1. squid (настраиваю на порт 8080), чтобы он ходил через 127.0.0.1:8081. Прописываю в качестве parent proxy 127.0.0.1:8081.
Проблема: ломится напрямую в интернет, минуя toonel.net (в логах
пишет, что такой прокси найден; примерно так; за точность не ручаюсь -
уже две недели, как временно забросил это удовольствие;) - не особо
нужно). Куда копать? В винде использовал связку: опера -> handycache
-> toonel.net -> интернет. Работало без проблем.
2. Пока пытаюсь настроить еще (параллельно), чтобы для eth0 (с
других компов в домашней сети; 192.168.0.* через 192.168.0.1) можно было
выходить в интернет, используя toonel.net, запущенный на мандриве,
т.е.: комп в сети (192.168.0.21, например) -> комп с мандривой
(192.168.0.1) -> toonel.net (127.0.0.1:8081) -> интернет. Потом,
как разберусь со сквидом - вставлю его перед toonel.net. В качестве
прокси на 192.168.0.21 прописываю 192.168.1.2:8081.
Проблема: в логах пишет martian destination 127.0.0.1 from
192.168.0.21, dev eth0 (пока гоняю через vmware, гостевая OS: win xp
SP2).
Куда копать?
Если на компах с eth0 не использовать прокси (т.е. прописать только
шлюз 192.168.0.1), то все работает. Но хочется настроить именно как
прокси: для контроля трафика и его экономии (кэш, сжатие).
3. И вопрос по поводу samba: с мандривы на винду заходит без проблем
через smb://. Проблема: когда с винды заходишь на мандрива, то мандрива
вешается намертво (если играет музыка - зависает; намлок и пр. не
работает и тд).
Подскажите куда копать, plz;). Хочу заставить работать...
p.s. iptables (от того, что, имхо, не важно оставил только комментарии):
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
[0:0] -A FORWARD -i ppp0 -o ppp0 -j DROP
[0:0] -A FORWARD -i eth2 -o eth2 -j DROP
[0:0] -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# все в логи
#локальные адреса разрешаем.
#разрешаем все входящие и исходящие с eth2
#разрешаем все входящие и исходящие с eth0
#все входящие с ppp0, кроме инициированных с моей стороны обламываем.
# FTP
#открываем порт аськи
#открываем порт atlantic
#открываем для toonel.net
#почта (начало)
#почта (конец)
#UDP
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 110 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 25 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p tcp -m tcp --dport 8080 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p udp -m udp --dport 53 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p udp -m udp --dport 123 -j ACCEPT
[0:0] -A FORWARD -o ppp0 -p udp -m udp --dport 137 -j ACCEPT
[0:0] -A FORWARD -o eth2 -j ACCEPT
[0:0] -A FORWARD -i eth0 -p tcp -m tcp --dport 8081 -j ACCEPT
COMMIT
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp -d 192.168.1.2 --dport 8081 -j DNAT --to-destination 127.0.0.1:8081
[0:0] -A PREROUTING -i lo -p tcp -m tcp -d 192.168.1.2 --sport 8081 -j DNAT --to-destination 127.0.0.1:8081
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
Поможите кто чем может, плиз;).
Если нужна какая-то дополнительная инфа - спрашивайте.
Спасибо.
MSH
(09.07.2007 6:16:06)
Re: Несколько вопросов по сетям (squid, forward, samba)
iptables. Часть вырезана. Еще не донастроил. Кстати, может быть гуру какие-нибудь советы посоветуют;) - буду признателен.
Сеть на данный момент только внутри квартиры. Поэтому внутри особо не заморачивался. Думаю поограничивать.
BTW, "прямой" выход на HTTP (порт 80) запрещен. Для того, чтобы
"регулировать доступ" софта к HTTP и FTP. Если нужно, то просто в софте
прописываю прокси 192.168.1.2:8080 ;)
toonel.net настроен на 127.0.0.1:8081
---
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
[0:0] -A FORWARD -i ppp0 -o ppp0 -j DROP
[0:0] -A FORWARD -i eth2 -o eth2 -j DROP
[0:0] -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# все в логи
[0:0] -A INPUT -j LOG --log-level 7 --log-tcp-options
[0:0] -A OUTPUT -j LOG --log-level 7 --log-tcp-options
[0:0] -A FORWARD -j LOG --log-level 7 --log-tcp-options
#локальные адреса разрешаем.
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A OUTPUT -o lo -j ACCEPT
#разрешаем все входящие и исходящие с eth2
[0:0] -A INPUT -i eth2 -j ACCEPT
[0:0] -A OUTPUT -o eth2 -j ACCEPT
#разрешаем все входящие и исходящие с eth0
[0:0] -A INPUT -i eth0 -j ACCEPT
[0:0] -A OUTPUT -o eth0 -j ACCEPT
#все входящие с ppp0, кроме инициированных с моей стороны обламываем.
[0:0] -A INPUT -i ppp0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
[0:0] -A FORWARD -i ppp0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
[0:0] -A INPUT -i ppp0 -j REJECT --reject-with icmp-port-unreachable
# FTP
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --sport 21 -j ACCEPT
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 20 -j ACCEPT
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --sport 20 -j ACCEPT
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT
#HTTP
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
#[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --sport 80 -j ACCEPT
#открываем порт аськи
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 5190 -j ACCEPT
#открываем порт atlantic
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 1234 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp --dport 11234 -j ACCEPT
#открываем для toonel.net
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 85.25.148.242 --dport 8080 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 87.118.102.154 --dport 8080 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 216.117.134.18 --dport 8080 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 216.117.134.180 --dport 8080 -j ACCEPT
#weather
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 140.90.128.70 --dport 80 -j ACCEPT
#почта (начало)
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 217.197.114.149 --dport 110 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 217.197.114.149 --dport 25 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 217.197.114.134 --dport 110 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 217.197.114.134 --dport 25 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 194.67.23.102 --dport 110 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p tcp -m tcp -d 194.67.23.111 --dport 25 -j ACCEPT
#почта (конец)
#UDP
[0:0] -A OUTPUT -o ppp0 -p udp -m udp -d 80.243.64.67 --dport 53 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p udp -m udp -d 80.243.64.67 --dport 123 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p udp -m udp -d 80.243.68.34 --dport 53 -j ACCEPT
[0:0] -A OUTPUT -o ppp0 -p udp -m udp -d 80.243.68.34 --dport 123 -j ACCEPT
COMMIT
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
---
Часть squid.conf (основное):
---
#На каких адресах и портах слушать.
http_port 192.168.1.2:8080
http_port 192.168.0.1:8080
#Вышестоящий прокси
cache_peer 127.0.0.1 parent 8081 3130
#Запрет на доступ в интернет в обход вышестоящего прокси. Если я правильно помню.
never_direct allow all
---
Кажись, основное все. В squid нужно еще прописать кому давать доступ
(через acl - в conf достаточно подробные комменты по всем моментам,
имхо).
MSH
(17.07.2007 7:42:48)