2

Я использую 3 виртуальные машины с Fedora 19. Машина B настроена с двумя сетевыми адаптерами и обеспечивает канал связи между машиной A и машиной C.

IP-адрес компьютера установлен на 192.168.1.1 а IP-адрес компьютера установлен на 172.16.1.1 . На компьютере BI есть один адаптер с IP 192.168.1.254 и другой адаптер с IP 172.16.1.254 .

Я создал это правило на машине B (она работает как маршрутизатор):

iptables -P INPUT DROP

iptables -A INPUT -p icmp -j ПРИНЯТЬ

И поэтому никакие соединения между машинами не выполняются, если PING обеспечивает связь между машиной A и B.

Теперь я хочу создать правило в маршрутизаторе, которое разрешает связь HTTPS между внешней сетью (машина C) и внутренней сетью (машина A)

Я добавил это правило в машину B:

iptables -A FORWARD -o p7p1 -p tcp --dport 443 -d 192.168.1.1 -j ПРИНЯТЬ

Где p7p1 - это интерфейс на машине B, который подключается к машине A. Я также пробовал:

iptables -A FORWARD -i p8p1 -o p7p1 -p tcp --dport 443 -d 192.168.1.1 -j ПРИНЯТЬ

Где p8p1 - это интерфейс на машине B, который подключается к машине C.

Теперь на компьютере AI выполните nc -l 443 а на компьютере C nc 192.168.1.1 443 но я получаю Ncat: Connection timed out

Что не так с моим правилом?

1 ответ1

1

Вам не хватает правила, которое также позволяет ответам проходить через ваш брандмауэр.

Я доверяю коду для netfilter и его мощному модулю state , поэтому я бы использовал iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT чтобы также разрешались пакеты в другом направлении.

В вашем наборе правил ответы от 192.168.1.1 на другую машину в 172.16.1.1 заблокированы.

Также см. Документацию по устранению неполадок iptables, например, на linuxhomenetworking.com, и добавьте правила ведения журнала, когда что-то не работает.

iptables -A FORWARD -j LOG

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