Задать вопрос
dikey58
@dikey58
Самоучка - web-разработчик

Как настроить iptables, чтобы сайт с гостевой машины находил сам себя?

Добрый день. Пытаюсь дать доступ сайта на гостевой машине к самому себе.
Текущие настройки iptables:
Правила на хостовой машине iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        tcp  --  anywhere             anywhere             tcp dpt:http LOG level warn prefix "LOG INPUT: "
LIBVIRT_INP  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             ГостеваяМашинаIP      state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             ГостеваяМашинаIP      state NEW tcp dpt:ftp
ACCEPT     tcp  --  anywhere             ГостеваяМашинаIP      state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             ГостеваяМашинаIP      state NEW tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             ГостеваяМашинаIP      state NEW tcp dpt:https
LIBVIRT_FWX  all  --  anywhere             anywhere
LIBVIRT_FWI  all  --  anywhere             anywhere
LIBVIRT_FWO  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
LOG        tcp  --  anywhere             anywhere             tcp dpt:http LOG level warn prefix "LOG OUT: "
LIBVIRT_OUT  all  --  anywhere             anywhere

Chain LIBVIRT_FWI (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             192.168.122.0/24     ctstate RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain LIBVIRT_FWO (1 references)
target     prot opt source               destination
ACCEPT     all  --  192.168.122.0/24     anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain LIBVIRT_FWX (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain LIBVIRT_INP (1 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:67

Chain LIBVIRT_OUT (1 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:68


Правила на хостовой машине iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
LOG        tcp  --  anywhere             anywhere             tcp dpt:http LOG level warn prefix "LOG PRE: "
DNAT       tcp  --  anywhere             внешнийIP             tcp dpt:2022 to:ГостеваяМашинаIP:22
DNAT       tcp  --  anywhere             внешнийIP             tcp dpt:ftp to:ГостеваяМашинаIP:21
DNAT       tcp  --  anywhere             внешнийIP             tcp dpt:http to:ГостеваяМашинаIP:80
DNAT       tcp  --  anywhere             внешнийIP             tcp dpt:http-alt to:ГостеваяМашинаIP:8080
DNAT       tcp  --  anywhere             внешнийIP             tcp dpt:https to:ГостеваяМашинаIP:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        tcp  --  anywhere             anywhere             tcp dpt:http LOG level warn prefix "LOG NATINPUT: "

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
LOG        tcp  --  anywhere             anywhere             tcp dpt:http LOG level warn prefix "LOG POST: "
LIBVIRT_PRT  all  --  anywhere             anywhere

Chain LIBVIRT_PRT (1 references)
target     prot opt source               destination
RETURN     all  --  192.168.122.0/24     base-address.mcast.net/24
RETURN     all  --  192.168.122.0/24     255.255.255.255
MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24


Команды с гостевой машины curl domain или nc ВнешнийIP 80 дают одинаковую ситуацию в логах
LOG PRE: IN=virbr0 OUT= SRC=ГостевойМашиныIP DST=ВнешнийIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12537 DF PROTO=TCP SPT=57604 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0
LOG INPUT: IN=virbr0 OUT= SRC=ГостевойМашиныIP DST=ВнешнийIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12537 DF PROTO=TCP SPT=57604 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0
LOG NATINPUT: IN=virbr0 OUT= SRC=ГостевойМашиныIP DST=ВнешнийIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12537 DF PROTO=TCP SPT=57604 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0

На схеме выглядит так
6763d13079207899793547.png
На хостовой машине ss -tulpn не показывает ничего слушающего на 80 порту. Да и другие порты я проверял - такой же путь пакетов.

Почему они в INPUT попадают? Как их направить в интернет или обратно на гостевую машину? Знаю, что можно hosts гостевой машины написать домен сайта под localhost, но этот вариант не универсальный.
  • Вопрос задан
  • 27 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы