Как сформулировать IP, передав правило с помощью iptables

В целом Вы найдете, что различие более известно наоборот.

При помещении стандартного набора в 24x7 среда с загрузкой, теплом, друзьями - Вы будете видеть больше отказов. 'Дважды цена' будет обычно отражаться в отсутствии аппаратного горя и счастья для выполнения в пределах длительного срока производственной среды.

Если это идет длительный срок в установленную в стойку среду, если это БУДЕТ положенным, и если Вы добирающийся до него для работы над ним собираетесь быть горем (удаленное администрирование сервера из полосы является серьезным плюс iLO/DRAC и т.д.) - сервер. Иначе - регулярное разнообразие будет прекрасно.

Это - все в Ваше время - куда это идет - и сколько боли Вы собираетесь страдать, если это прекращает работать.

1
задан 13 April 2017 в 15:14
4 ответа

Неответивший ответ Тома Х лучше, но если он вам не нравится, вот прямой ответ:

Извините, мои навыки работы с iptables лучше всего, когда я могу повозиться, проверить , проверьте, журналы, повторите ... и у меня нет вашей системы, с которой можно было бы поиграть, но в любом случае вот мой совет. Вероятно, вам потребуется отладка с использованием журналов.

Измените направление перенаправления, как указано Йенсом Брэдлером:

echo "1" > /proc/sys/net/ipv4/ip_forward

Докажите, что это правильно

cat /proc/sys/net/ipv4/ip_forward

Вывод из cat:

1

Добавьте правило в ACCEPT, используя Также таблица FORWARD.

sudo iptables -A FORWARD -i wlan0 -p tcp --dport 8000 -j ACCEPT

Удалите "-m state" из входящего правила (необязательно ... я думаю, ненужно):

sudo iptables -A INPUT -i wlan0 -p tcp --dport 8000 -j ACCEPT

Вероятно, где бы вы ни добавили "ESTABLISHED", у вас также должно быть "RELATED" (не конечно, но я думаю, что ответный пакет, который запускает соединение, связан, но не установлен).

sudo iptables -A OUTPUT -o wlan0 -p tcp --sport 8000 -m state --state RELATED,ESTABLISHED -j ACCEPT

Правило FORWARD для выполнения вышеуказанного подтверждения, sudo iptables -A FORWARD -o wlan0 -p tcp -s 127.0.0.1 --sport 8000 -m state --state RELATED, ESTABLISHED -j ACCEPT

Вместо использования wirehark используйте -j LOG.

Сначала проверьте, нет ли еще правил LOG (правила по умолчанию лучше, чем следующие ... но вы использовали flush; мой сервер будет сильно спамить):

sudo iptables --list --line-numbers -v
sudo iptables -t nat --list --line-numbers -v

Если нет, добавьте их:

sudo iptables -A INPUT -j LOG
sudo iptables -A OUTPUT -j LOG
sudo iptables -A FORWARD -j LOG
sudo iptables -t nat -A PREROUTING -j LOG

Посмотрите журналы

tail -F /var/log/firewall

# or if that file doesn't exist:
tail -F /var/log/messages
1
ответ дан 3 December 2019 в 17:57

Вы никогда не сможете выполнить -j DNAT --to 127.0.0.1 .

127.0.0.1 - это суперпупер-специальный адрес; он будет принимать соединения только от 127.0.0.1.

Ответ @Tom H - это способ настройки вашего сервера.

1
ответ дан 3 December 2019 в 17:57

Вот полный отказ от ответа.
как сказал Йенс Брэдлер в своем комментарии, самое простое, что можно сделать здесь, - это привязать службу к общедоступному IP-адресу на порту 8000, а не через NAT для соединения. Вы можете защитить доступ к одному серверу A с помощью следующих правил iptables:

 -A INPUT -s 192.168.0.5/32 -p tcp -m tcp --dport 8000 -j ACCEPT
 -A INPUT -p tcp -m tcp --dport 8000 -j REJECT
2
ответ дан 3 December 2019 в 17:57

Система В:

sysctl -w net.ipv4.conf.wlan0.route_localnet=1
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 8080 -j DNAT --to 127.0.0.1
1
ответ дан 29 August 2021 в 08:42

Теги

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