nixp.ru v3.0

29 мая 2017,
понедельник,
08:58:47 MSK

DevOps с компанией «Флант»
anonymous написал 14 сентября 2004 года в 17:29 (389 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Всем привет!

Люди, наставьте на путь истинный пожалуйста…

Дано: ASP linux, 2 сетевухи: eth0 (к ISDN c поднятым NAT) и eth1 (к LAN), squid, DNS провайдера, у пользователя (Win2k) прописан только внутренний ip ну и маска конечно.

Нужно: Не меняя настройки пользователя, настроить iptables для того чтобы ходила почта.

http трафик работает с помощью squid’а.

Вся моя проблема видимо в том ,что уже настроен NAT на ISDN и найти подходящего решения задачи в инете не могу…

Либо просто не могу провести сопоставление решений разных задач к моей…

Если вы считаете что это так, то пожалста пришлите ссылку на нужный ресурс и подскажите в каком направлении начинать копать.

Спасибо.

P.S.

Попутный вопрос.

Как правильно в моем случае настроить маршрутизацию?

[root@MAIN iproute2]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

localhost.local * 255.255.255.255 UH 0 0 0 lo

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Спасибо.

Uncle Theodore
RRR
Всем привет!

Люди, наставьте на путь истинный пожалуйста…

Дано: ASP linux, 2 сетевухи: eth0 (к ISDN c поднятым NAT) и eth1 (к LAN), squid, DNS провайдера, у пользователя (Win2k) прописан только внутренний ip ну и маска конечно.

Нужно: Не меняя настройки пользователя, настроить iptables для того чтобы ходила почта.

Куда ходила-то? У твоего пользователя (на Лане) есть мейловый сервер? Или просто получать? Если сервер, то открой ему дырочки iptables’ами. Или у тебя на Линухе тоже почтовый сервер стоИт?

Good Luck,

UT

anonymous

Нет, своего почтового сервера нет, если поднимать свой, то как быть с мобильными пользователями? В инет открываться не хочу, да и не могу в общем :-( , почта нужна с внешних серверов mail например.

Спасибо.

RRR
RRR
почта нужна с внешних серверов mail например.

Почта нужна пользователям конечно.

Genie

ну, первый глупый вопрос. потому как непонятно это из данных, данных в сообщениях.

итак: прописан ли «шлюз по умолчанию"?

если нет, то надо бы. указать там адрес этого самого Linux-а.

далее. разрешить на нём пересылку пакетов. (a.k.a. forwarding).

ну и далее настраивать разрешения на отправку почты, smtp (порт 25/tcp, хотя вот этого бы я не советовал делать для всех компьютеров. тут правильнее поднять собственный smtp-сервер для пересылки исходящей почты на сервер провайдера. +drweb/kaspersky/clamav/…. на нём).

а для приёма почты с внешних серверов разрешать pop (pop2 — 109/tcp, pop3 — 110/tcp, pop3s — 995/tcp), imap (imap2, imap4 — 143/tcp, imap3 — 220/tcp, imaps — 993/tcp).

за деталями — на opennet.ru, iptables-howto

RRR

Спасибо!

А на счет маршрутизации…

RRR
Genie
ну, первый глупый вопрос. потому как непонятно это из данных, данных в сообщениях.

Извиняюсь за некорректный вопрос. Что конкретно непонятно?

Genie

вот это в настройках клиента:

итак: прописан ли «шлюз по умолчанию"?

именно это непонятно

хотя по этому поводу я уже сказал — надо настроить gw на linux

RRR

Шлюз по умолчанию у пользователя не прописан…

А без шлюза никак нельзя?

Genie

а вот это зависит от того, что же в конечном итоге хочется получить.

к примеру, если надо сделать только исходящую почту из почтового клиента, то — можно на, скажем, шлюзе, поднять почтовый сервер, который бы отправлял почту на, скажем, сервер провайдера.

тогда — прописываем адрес шлюза как сервера для отправки почты. и почта будет уходить.

забирать почту можно (с внешних почтовых серверов, и отправлять, в принципе тоже) по web интерфейсу.

если требуется другой способ приёма почты — то тут надо либо настраивать у себя полноценный почтовый домен, либо использовать fetchmail (+procmail).

RRR

Все понятно!

Огромное спасибо!

Жаль ,что мне это не подходит, обязательно занялся бы…

Genie

ну, есть ещё вариант — проксирование. socks, к примеру

есть и авторизация. но — должна быть поддержка этого самой программой.

RRR

А путную ссылку на доку (желательно на русском) по socks можете кинуть?

Авторизация тоже как вариант?

RRR

Кстати…

Еще вопросик можно?

В общем такая ситуация….

на ASP Linux 2 сетевых интерфейса

1 — (192.168.1.20) подключен к ISDN (192.168.1.1)

2 — (192.168.0.20) подключен к LAN (192.168.0.0)

GW default 192.168.1.1

[root@MAIN root]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy DROP)

target prot opt source destination

DROP all — anywhere anywhere

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

в ip_forward — 0

вопрос:

пингую из LAN — 2 интерфейс — ответ приходит!

пингую из LAN — 1 интерфейс — ответ приходит!

пингую из LAN — ISDN — ответ не приходит!

почему?

Dreid
RRR
в ip_forward  - 0

вопрос:

пингую из LAN — 2 интерфейс — ответ приходит!

пингую из LAN — 1 интерфейс — ответ приходит!

пингую из LAN — ISDN — ответ не приходит!

почему?

Тебя удивляет что приходит ответ при пинге второго интерфейса, или что он не приходит при пинге ISDN?

RRR
Dreid
Тебя удивляет что приходит ответ при пинге второго интерфейса, или что он не приходит при пинге ISDN?

Если честно и то и другое…

Genie

Ну, почему с клиента (192.168.0.xx) не пингуется 192.168.1.1 — это, думаю, понятно.

Теперь касательно остального.

Правильно оно реагирует.

Хотя и такое поведение можно отключить.

Реально при пинговании хоста (под linux, windows,….) по любому его адресу он будет отвечать на запросы. Главное, что бы ответные пакеты правильно уходили.

К примеру. host1 имеет 2 интерфейса: eth0, 192.168.23.5 и eth1, 195.12.34.56, кроме того, есть ещё lo, 127.0.0.1

Есть и host2, у которого только eth0, 192.168.23.40 и lo, 127.0.0.1. При этом на host2 установлен gw — host1, 192.168.23.5.

[user@host2:~]$ ping 192.168.23.5

… успешно.. и понятно почему.

[user@host2:~]$ ping 195.12.34.56

… тоже успешно, хоть пусть и выключен форвардинг. потому как host2, видя, что адрес назначения не может быть напрямую доступен по eth0, отправляет своему gw на рассмотрение. а тот «аа. запрос на этот адрес даже форвардить-то не надо. отвечаем…».

[user@host2:~]$ su

Password:

[root@host2:/home/user]# ifconfig lo 254.0.0.1

[root@host2:/home/user]# ping 127.0.0.1

…. !!!!!!!!! отвечать будет host1

;)

Отправлять за разъяснениями в rfc по ip, где это описано, не буду, а где ещё рассказывается — не знаю. (гугль сходу тож молчит)

RRR

За разъяснения спасибо,

но к сожалению это:

Ну, почему с клиента (192.168.0.xx) не пингуется 192.168.1.1 — это, думаю, понятно.

как раз и не понятно.

Потому вродебы как 192.168.1.20 пингует, а 192.168.1.1 — нет! (почему?)

Ведь на 192.168.1.20 GW default — 192.168.1.1 прописан!

Как не понятно и:

[user@host2:~]$ su

Password:

[root@host2:/home/user]# ifconfig lo 254.0.0.1

[root@host2:/home/user]# ping 127.0.0.1

…. !!!!!!!!! отвечать будет host1

Dreid
RRR
За разъяснения спасибо,

но к сожалению это:

как раз и не понятно.

Ты же сам в IPTABLES forward закрыл и в ip_forward 0 поставил, как же оно тебе будет пинговать внешнюю сетку?

А насчет второго непонятного — еще раз:

Если до компа доходит пинг адреса, совпадающий с адресом любого его интерфейса — он отвечает на пинг. А насчёт 127.0.0.1 — это просто такой красивый пример :)

RRR
Dreid
Ты же сам в IPTABLES forward закрыл и в ip_forward 0 поставил, как же оно тебе будет пинговать внешнюю сетку?

Только что все открыл и проверил…

Ничего не изменилось!!!!

А на счет 2 хостов все понятно, Спасибо!

Genie

Вот конфиг iptables на домашнем шлюзе. (ну и что, что на gprs…)

*nat
-A POSTROUTING -s genie -o ppp0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD DROP
:LOG_DROP -
:xINPUT -
:xOUTPUT -
 -A LOG_DROP -j LOG
 -A LOG_DROP -j DROP
 -A xINPUT   -p tcp  -m state --state NEW                     ! --syn -j LOG_DROP
 -A xINPUT   -p tcp  -m state --state     ESTABLISHED,RELATED --sport 20 -j ACCEPT
 -A xINPUT   -p tcp  -m state --state     ESTABLISHED         -j ACCEPT
 -A xINPUT   -p udp  -m state --state     ESTABLISHED         -j ACCEPT
 -A xINPUT   -p icmp -m state --state     ESTABLISHED,RELATED -j ACCEPT
 -A xOUTPUT  -p tcp  -m state --state     ESTABLISHED         --dport 20 -j ACCEPT
 -A xOUTPUT  -p tcp  -m state --state NEW,ESTABLISHED         -j ACCEPT
 -A xOUTPUT  -p udp  -m state --state NEW,ESTABLISHED         -j ACCEPT
 -A xOUTPUT  -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 -A FORWARD -o eth0 -i ppp0 -d genie -j xINPUT
 -A FORWARD -o ppp0 -i eth0 -s genie -j xOUTPUT
 -A FORWARD -j LOG_DROP
 -A INPUT -i eth0 -j ACCEPT
 -A INPUT -p tcp -m multiport --dports 20,21,23,6566 -j LOG_DROP
COMMIT

Для работы этого «счастья» надо, чтобы были загружены модули:

af_packet unix <-- сеть вообще
slhc ppp_generic ppp_deflate ppp_async bsd_comp <-- удалённый доступ к сети
ip_tables iptable_filter ip_conntrack ip_conntrack_ftp ip_nat ip_nat_ftp
ipt_LOG ipt_MASQUERADE ipt_state <-- собственно, firewall
Dreid

Мда. Спать надо больше. Или работать меньше — я ещё не решил :)

Я что-то и не подумал, что такие вещи только sнатом делаются.

В данном случае маскарадинг не нужен — скорее именно sнат.

RRR
Genie
К примеру. host1 имеет 2 интерфейса: eth0, 192.168.23.5 и eth1, 195.12.34.56, кроме того, есть ещё lo, 127.0.0.1

Есть и host2, у которого только eth0, 192.168.23.40 и lo, 127.0.0.1. При этом на host2 установлен gw — host1, 192.168.23.5.

[user@host2:~]$ ping 192.168.23.5

… успешно.. и понятно почему.

[user@host2:~]$ ping 195.12.34.56

… тоже успешно, хоть пусть и выключен форвардинг. потому как host2, видя, что адрес назначения не может быть напрямую доступен по eth0, отправляет своему gw на рассмотрение. а тот «аа. запрос на этот адрес даже форвардить-то не надо. отвечаем…».

Кстати сейчас ради интереса проверил ТАКУЮ ситуацию:

У меня на компе 2 сетевухи:

192.168.0.10 подключен напрямую к ASP и 192.168.1.7 в SWITCH

На ASP тоже 2 сетевухи:

192.168.0.20 подключен напрямую ко мне и 192.168.1.20 в SWITCH

ISDN 192.168.1.1 тоже включен в SWITCH.

Так вот когда я подключаю 1 сетевуху, т.е. напрямую к ASP, то при пинге происходит вышеуказанная ситуация.

НО!

когда я подключаю 2 сетевуху, т.е. через SWITCH, то ping ответ от 192.168.0.20 не возвращается!

Почему, ведь хост один?

Dreid

Всё, выключаюсь из темы. Из последнего поста не понял ни слова.

RRR
Genie
Вот конфиг iptables на домашнем шлюзе. (ну и что, что на gprs…)

За конфиг конечно спасибо.

Я так понимаю, что мне просто SNAT включить надо и ВСЕ?

А маскарад для меня подойдет?

Нат у меня поднят уже на ISDN!

Genie
Всё, выключаюсь из темы. Из последнего поста не понял ни слова.


Как я тебя понимаю…. Вот только понять-то я понял, что и как оно..

НО: из того, что рисуется по словам, абсолютно непонятно, для чего такая конструкция и что в конечном итоге хотелось бы получить? ;)

Dreid
RRR
За конфиг конечно спасибо.

Я так понимаю, что мне просто SNAT включить надо и ВСЕ?

А маскарад для меня подойдет?

Нат у меня поднят уже на ISDN!

Маскарад тебе не нужен.

Если нат поднят — покажи вывод

iptables -t nat -L, ifconfig и route

на шлюзе. Ну и все-таки вывод cat /proc/sys/net/ipv4/ip_forvard на всякий случай.

RRR

:)))

Конструкция всего навсего для настройки…

за не имением отдельно стоящих машин… знаете…

приходится извращатся как можно….

я уже и сам устал с сетевухи на сетевуху переключаться хорошо, что хоть есть великая вешь — Терминал! иначе еще ко второй машине скакать пришлось бы… :))

Хотя в конце рабочего дня и от этого не легче… :(

RRR

Ну эт пожалста:

[root@MAIN root]# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

[root@MAIN root]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:04:79:66:16:B8

inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:6906 errors:0 dropped:0 overruns:1 frame:0

TX packets:306 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:703223 (686.7 Kb) TX bytes:61381 (59.9 Kb)

Interrupt:17 Base address:0xac00

eth1 Link encap:Ethernet HWaddr 00:50:22:B1:30:C8

inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:257 errors:0 dropped:0 overruns:0 frame:0

TX packets:165 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:28730 (28.0 Kb) TX bytes:14811 (14.4 Kb)

Interrupt:18 Base address:0×6e00

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:10 errors:0 dropped:0 overruns:0 frame:0

TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:700 (700.0 b) TX bytes:700 (700.0 b)

[root@MAIN root]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

[root@MAIN root]# cat /proc/sys/net/ipv4/ip_forward

1

!!! НАТ на ISDN !!!

Dreid
RRR
Ну эт пожалста:

!!! НАТ на ISDN !!!

Стоп. Что значит «нат на ISDN"? Где именно поднят нат и какие машины он натит и куда?

Genie

для настройки чего? ;)

вывод iptables-save в студию ;)

чтоб конфиг был по типу моего.

RRR

[root@MAIN root]# iptables-save

# Generated by iptables-save v1.2.9 on Fri Sep 17 08:39:36 2004

*filter

:INPUT ACCEPT [641:80344]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [341:35453]

COMMIT

# Completed on Fri Sep 17 08:39:36 2004

# Generated by iptables-save v1.2.9 on Fri Sep 17 08:39:36 2004

*nat

:PREROUTING ACCEPT [9174:1175550]

:POSTROUTING ACCEPT [18:1130]

:OUTPUT ACCEPT [16:1022]

COMMIT

# Completed on Fri Sep 17 08:39:36 2004

[root@MAIN root]#

RRR
Genie
для настройки чего? ;)

Решил разграничить доступ в инет…

RRR
Dreid
Стоп. Что значит «нат на ISDN"? Где именно поднят нат и какие машины он натит и куда?

НАТ поднят на ISDN PipeLine 75.

Он натит машины моей сети на мой внешний IP (213.242.Х.Х), который мне любезно предоставил провайдер.

Genie

итак, в данный конкретный момент ISDN железка не отвечает (так видит клиент) на запросы с адреса 192.168.0.* по той простой причине, что оно не *туда* отправляет ответные пакеты.

так как адрес назначения с точки зрания ISDN маршрутизатора не принадлежит ethernet, он отправляет его в ISDN. ответные пакеты не доходят до клиента.

либо настроить на этом устройстве маршрут до 192.168.0.*, либо настроить на asp-е SNAT/MASQUERADE (в общем-то, маскарадинг — частный случай SNAT-а)

RRR

Даешь SNAT!

Всем большое спасибо, особенно Genie и Dreid.

Это самый лучший форум! (я серьезно).

Genie
Это самый лучший форум! (я серьезно).


я так думаю, для того и стараемся… :)

RRR

У меня ПОЛУЧИЛОСЬ!!!!!!!

:))

Спасибо.

Правда не SNAT, а MASQUERADE, но это я думаю не столь важно.