3

Я пытаюсь перенаправить все входящие интернет-запросы на порт 80 на мой локальный компьютер (на котором работает Apache), текущая iptables работает (перенаправляет входящий интернет-трафик на мой рабочий стол, но если я пытаюсь получить доступ к нему из локальной сети, он выиграл ' т работа.

Интерфейс, соединяющий мой сервер Ubuntu с Интернетом, - это ppp0 (DSL-соединение через мой маршрутизатор, который находится в режиме моста), который подключен к eth0, а eth1 подключен к моей внутренней локальной сети.

iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o ppp0 -j MASQUERADE
iptables -A INPUT -i ppp0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#port forwarding
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.2:80
iptables -A FORWARD -i ppp0 -p tcp --dport 80 -j ACCEPT

также протестирован с

iptables -t nat -A PREROUTING -i lo -p tcp --dport 80 -j DNAT --to-destination 192.168.2.2:80

нет везения там

Что я смог собрать (через логи), так это то, что доступ к ip внешнего сервера напрямую из локальной сети идет непосредственно к eth1, что понятно (я думаю).

Итак, что мне сейчас нужно (я полагаю), это правило, которое будет перенаправлять трафик локальной сети на eth1 без вмешательства в правило предварительной маршрутизации ppp0 (так как пересылка всего входящего трафика на eth1 на мою локальную машину разорвет интернет-соединение)

1 ответ1

1

Я думаю, что вам не хватает SNAT. Без SNAT исходный IP-адрес указывает на компьютер в локальной сети, а возвращаемые пакеты направляются непосредственно на исходный компьютер, который отбрасывает их как недействительные. С внешними компьютерами это не проблема, так как NAT часто устанавливается на компьютере шлюза по умолчанию.

Попробуйте добавить

iptables -t nat -A POSTROUTING -d 192.168.2.2 --dport 80 -j SNAT

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .