Strah
написал 18 июня 2008 года в 00:58 (1234 просмотра)
Ведет себя
как мужчина; открыл 1 тему в форуме, оставил 3 комментария на сайте.
Оговорюсь: я не сильный мастер в iptables.
У меня настроен iptables с пробросом портов с интернет внутрь локальной сети на компы пользователей для RAdmin, все работает, настроена почта с локальной сети пробросом портов 25 110 143 на внешний почтовый сервер, все работает.
У клиентов интернет нет.
Задача: как сделать так, чтоб пользователь внутренней сети имел доступ http к 1 реальному IP (77.82.17.xxx)? Не могу дотумкать.
Имею:
eth0 — Internet — 77.82.4.xxx
eth1 — Local — 192.168.1.0/24
iptables посылает в ман, но там как всегда нет того что хочешь. В интернете ничего не нашел. Хэлп!
// Тему переместил(а) Dmitry Shurupov из форума «Общий по UNIX и Open Source».
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Strah, всё это делается очень просто. Но! Для того чтобы тебе помочь и дать наиболее точный ответ, необходимо видеть правила твоих цепочек (INPUT, OUTPUT, FORWARD). Из-за этого сильно зависит лично мой ответ.
Самый же простой вариант (без приведения запрошенных данных) сделать так:
iptables -t nat -A POSTROUTING -s 192.168.1.ххх -p tcp --dport 80 -d 77.82.17.xxx -o eth0 -j SNAT --to-source 77.82.4.xxx
В iptables ната нет, видимо надо будет написать, но не для одного адреса, а целиком для всей сети.
Нат у меня включается Stargazer и там цепочка такая:
/sbin/iptables -t filter -A INPUT -s 192.168.1.1 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -s 192.168.1.1 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -d 192.168.1.1 -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -d 192.168.1.1 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.1 -d 0/0 -o eth0 -j SNAT --to-source 77.82.4.xxx
Но эти цепочки подгружаются при регистрации InetAccess для получения интернета на 1 компьютере сети. А мне нужно чтоб вся сеть 192.168.1.0/24 ходила натом или чем-то на реальный АйПи в интернет «всегда» через шлюз 77.82.4.xxx без подключения к «интернет».
Лучше бы ты показал вывод iptables -L
Ничего не понял. Постарайся нарисовать схему сети, а то чувствую себя ёжиком в тумане.
Если тебе нужен NAT для всей подсети, то что мешает это настроить?
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp — anywhere anywhere icmp address-mask-reply
DROP icmp — anywhere anywhere icmp address-mask-request
DROP icmp — anywhere anywhere icmp router-solicitation
DROP icmp — anywhere anywhere icmp router-advertisement
DROP icmp — anywhere anywhere icmp redirect
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT icmp — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp — anywhere anywhere icmp echo-request limit: avg 1/sec burst 5
ACCEPT icmp — anywhere anywhere icmp echo-request limit: avg 1/sec burst 5
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data
ACCEPT udp -- anywhere anywhere udp dpt:ftp-data
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp
ACCEPT udp -- anywhere anywhere udp dpt:ftp
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT udp -- anywhere anywhere udp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT udp -- anywhere anywhere udp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT udp -- anywhere anywhere udp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:imap
ACCEPT udp -- anywhere anywhere udp dpt:imap
ACCEPT tcp -- anywhere anywhere tcp dpt:4664
ACCEPT tcp -- anywhere anywhere tcp dpt:4897
ACCEPT tcp -- anywhere anywhere tcp dpt:4898
ACCEPT tcp -- anywhere anywhere tcp dpt:4899
LOG tcp -- anywhere anywhere limit: avg 1/sec burst 5 tcp dpts:0:1024 LOG level warning prefix `tcp con: '
LOG udp -- anywhere anywhere limit: avg 1/sec burst 5 udp dpts:0:1024 LOG level warning prefix `udp con: '
DROP tcp -- anywhere anywhere tcp dpts:0:1024
DROP udp -- anywhere anywhere udp dpts:0:1024
LOG tcp -- anywhere anywhere limit: avg 1/sec burst 5 tcp dpts:0:1024 LOG level warning prefix `tcp con: '
LOG udp -- anywhere anywhere limit: avg 1/sec burst 5 udp dpts:0:1024 LOG level warning prefix `udp con: '
DROP tcp -- anywhere anywhere tcp dpts:0:1024
DROP udp -- anywhere anywhere udp dpts:0:1024
ACCEPT all -- 192.168.1.2 anywhere
ACCEPT all -- 192.168.1.19 anywhere
ACCEPT all -- 192.168.1.47 anywhere
ACCEPT all -- 192.168.1.99 anywhere
ACCEPT all -- 192.168.1.54 anywhere
ACCEPT all -- 192.168.1.23 anywhere
ACCEPT all -- 192.168.1.20 anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere 192.168.1.1 tcp dpt:4899
ACCEPT tcp -- anywhere 192.168.1.4 tcp dpt:4898
ACCEPT tcp -- anywhere 192.168.1.2 tcp dpt:4897
ACCEPT tcp -- anywhere 192.168.1.19 tcp dpt:4664
ACCEPT all -- 192.168.1.2 anywhere
ACCEPT all -- anywhere 192.168.1.2
ACCEPT all -- 192.168.1.19 anywhere
ACCEPT all -- anywhere 192.168.1.19
ACCEPT all -- 192.168.1.47 anywhere
ACCEPT all -- anywhere 192.168.1.47
ACCEPT all -- 192.168.1.99 anywhere
ACCEPT all -- anywhere 192.168.1.99
ACCEPT all -- 192.168.1.54 anywhere
ACCEPT all -- anywhere 192.168.1.54
ACCEPT all -- 192.168.1.23 anywhere
ACCEPT all -- anywhere 192.168.1.23
ACCEPT all -- 192.168.1.20 anywhere
ACCEPT all -- anywhere 192.168.1.20
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT icmp — anywhere anywhere state NEW
ACCEPT all -- anywhere 192.168.1.2
ACCEPT all -- anywhere 192.168.1.19
ACCEPT all -- anywhere 192.168.1.47
ACCEPT all -- anywhere 192.168.1.99
ACCEPT all -- anywhere 192.168.1.54
ACCEPT all -- anywhere 192.168.1.23
ACCEPT all -- anywhere 192.168.1.20
Сейчас подключены 7 машин к интернет.
Всем остальным разрешено ходить на почтовые порты без подключения к интернет.
Мне нужно всем разрешить ходить всегда на 77.82.17.xxx без подключения к интернет.
В том то и дело что мне как-бы нат не нужен и нужен, но как тогда настроить на 77.82.17.xxx всех и чтоб правила не дрались при подключении выше описаных цепочек при подключении компьютеров к интернет?
Когда я нат настраиваю строкой:
-A POSTROUTING -s 192.168.1.ххх -p tcp --dport 80 -d 77.82.17.xxx -o eth0 -j SNAT --to-source 77.82.4.xxx
у меня отлетают потры 5190, 4899 и т.д.
Мда… с настройкой iptables, к сожалению, у тебя пока не всё в порядке. Надо внимательнее читать iptables-tutorial.
Вот это правило оставляй: -A POSTROUTING -s 192.168.1.ххх -p tcp --dport 80 -d 77.82.17.xxx -o eth0 -j SNAT --to-source 77.82.4.xxx
В цепочке FORWARD (для всех своих машин из подсети 192.168.1.0.24) надо разрешить прохождения до порта 80, например так:
1) -A FORWARD -s 192.168.1.0/24 -d 77.82.17.xxx -p tcp --dport 80 -j ACCEPT
2) -A FORWARD -d 192.168.1.0/24 -s 77.82.17.xxx -p tcp --sport 80 -j ACCEPT
Спасибо!!!