Назад | Перейти на главную страницу

В чем разница между этими двумя правилами в IPTables?

В чем разница между этими двумя или они по сути одно и то же?

iptables -t filter -A FORWARD -s $EXTERNALNET -d $INTERNALNET -p tcp --dport 22 -j ACCEPT
iptables -t filter -A FORWARD -s $INTERNALNET -d $EXTERNALNET -p tcp --sport 22 -j ACCEPT

Первое правило принимает трафик, перенаправляемый от $EXTERNALNET к $INTERNALNET с участием место назначения порт 22 / TCP.

Второе правило принимает трафик, пересылаемый от $INTERNALNET к $EXTERNALNET с участием источник порт 22 / TCP.

В правильной конфигурации брандмауэра с отслеживанием состояния, такого как iptables, не должно быть необходимости в правилах, разрешающих трафик на основе исходного порта, поскольку разрешены оба направления правильно установленных TCP-потоков. В противном случае могут возникнуть бреши в безопасности - в данном случае разрешен весь исходящий трафик, если он имеет порт источника 22 / tcp.

Приведенный пример с конфигурацией без сохранения состояния, вероятно, является лучшим из возможных.

-s - источник, а -d - место назначения, поэтому эти правила относятся к потоку трафика в любом направлении.

$ INTERNALNET и $ EXTERNALNET - это переменные, скорее всего, из подсети или сетевого диапазона. Я предполагаю, что это из сценария bash, который у вас где-то есть?

--dport 22 ACCEPT

Эта директива указывает брандмауэру разрешить трафик, предназначенный для порта 22, проходить на ваш сервер.

--sport 22 ACCEPT

Эта директива сообщает брандмауэру разрешить трафик, отправленный с порта 22 внешних машин, проходить на ваш сервер.