nixp.ru v3.0

19 октября 2017,
четверг,
06:26:33 MSK

DevOps с компанией «Флант»
Strah написал 18 июня 2008 года в 00:58 (657 просмотров) Ведет себя как мужчина; открыл 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».

Dr. Evil

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

Strah

В 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 без подключения к «интернет».

Dr. Evil
Strah
В 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

Лучше бы ты показал вывод iptables -L

Strah
Но эти цепочки подгружаются при регистрации InetAccess для получения интернета на 1 компьютере сети. А мне нужно чтоб вся сеть 192.168.1.0/24 ходила натом или чем-то на реальный АйПи в интернет «всегда» через шлюз 77.82.4.xxx без подключения к «интернет».

Ничего не понял. Постарайся нарисовать схему сети, а то чувствую себя ёжиком в тумане.

Если тебе нужен NAT для всей подсети, то что мешает это настроить?

Strah

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 и т.д.

Dr. Evil

Мда… с настройкой 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

Strah

Спасибо!!!