Как зафиксировать iptables, если я заблокировал все входящие и исходящие соединения?

Я использую Сервер Ubuntu (Amazon EC2) и соединенный с ssh, использующим шпаклевку, я настраивал iptables для блокирования всего входящего и исходящего соединения кроме моего IP-адреса, я попробовал эти команды от шпаклевки:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Теперь, не может соединиться отовсюду. Помогите мне, как возвратить мое соединение.

-2
задан 28 April 2017 в 11:47

2 ответа

Из комментариев мы установили, это находится на экземпляре AWS EC2 Amazon, и что Вы заблокировали себя из доступа SSH удаленно. При помощи Amazon EC2 Вы собираетесь страдать от чего-то вроде головной боли здесь. Нет никакого реального последовательного / консольного режима для доступа, ни любого, кто может просто 'зафиксировать' его, и путем отключения всех соединений, как Вы сделали, Вы заблокировали себя полностью.

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

И после того как Вы запускаете, у Вас есть два варианта для как к брандмауэру Ваша система:

  1. Используйте брандмауэр группы безопасности EC2 вместо этого. Это немного легче настроить, и это уже там без любой дополнительной конфигурации - это - часть инфраструктуры EC2, где необходимо разрешить портам на самом деле добираться до экземпляра EC2. Вы также не собираетесь блокировать себя как легко (хотя Вы можете быть заблокированы, это тривиально для фиксации его затем, потому что Вы просто позволяете порт 22 снова в наборе правила от панели настроек Amazon EC2, если Вы не смешиваете с iptables также).

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

Теперь, я упоминаю в № 2 "достойный ruleset". Ниже вот мое руководство по EC2 iptables, при условии, что Вы на самом деле читаете комментарии перед выполнением команд (например, не смешивайте с ВЫВОДОМ или ПЕРЕДАВАЙТЕ, если Вам действительно не нужно к).


Рабочий набор правила для iptables на Ваши требования:

Вы не должны вводить строки, которые имеют a # вначале, это - просто мои комментарии, объясняющие, что делает каждая команда. Кроме того, замена YOUR.IP.ADDRESS.HERE с Вашим фактическим IP-адресом, где это обнаруживается ниже.

Входящая фильтрация:

# Permit localhost to communicate with itself.
iptables -A INPUT -i lo -j ACCEPT
# Permit already established connection traffic and related traffic
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Permit new SSH connections into the system from trusted IP address
iptables -A INPUT -p tcp --dport 22 -s YOUR.IP.ADDRESS.HERE -m conntrack --ctstate NEW -j ACCEPT
# Permit all other traffic from trusted IP Address
iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
# Drop all other traffic
iptables -A INPUT -j DROP

Исходящая фильтрация:

Предупреждение: Это блокирует доступ к серверам обновления, серверам синхронизации времени, и т.д. поэтому ТОЛЬКО отфильтрует на Исходящем, если Вы абсолютно должны будете, иначе не делайте этого раздела вообще

# Allow Localhost to itself
iptables -A OUTPUT -i lo -j ACCEPT
# Allow RELATED,ESTABLISHED state traffic (related to Inbound for example)
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Allow all other traffic to trusted IP address
iptables -A OUTPUT -d YOUR.IP.ADDRESS.HERE -j ACCEPT
# Drop all other unpermitted outbound traffic.
iptables -A OUTPUT -j DROP

Передайте фильтрацию:

Примечание: Если Вы действительно не должны ограничивать вещи как передача трафика к Интернету через туннель или VPN к Вашему серверу как 'прокси' к 'сети, Вы действительно не должны смешивать с ВПЕРЕД rulesets, таким образом, я предложил бы не делать этого, потому что ничто иное действительно не собирается использовать эту функцию или когда-либо приземляться в столе этого правила, на который накрывают,

# Drop FORWARD target traffic, we don't need it
iptables -A FORWARD -j DROP

Обратите внимание, что я - твердый сторонник не питания с политиками по умолчанию в отношении сервера, потому что оно имеет некоторых... зло..., если не сделанный правильно, и я обычно только фильтрую входной трафик и FORWARD трафик и Исходящий трафик разрешения из-за времени синхронизируют серверы, серверы обновления Ubuntu не всегда наличие числа набора дюйм/с, другие связанные процессы, в / которых я нуждаюсь (SSH, например, как часть 'связанного' трафика) и т.д.

Я - также твердый сторонник использования REJECT вместо DROP, но это только, чтобы помочь знать, что Ваш сервер возрос и отказ от соединений. С этой целью я заменил бы -j DROP с -j REJECT --reject-with icmp-host-unreachable или подобный.

Обратите внимание, что, если у Вас есть своя система, IPv6 включил, это должно быть сделано для IPv6 также, но с ip6tables, и замена индикаторов похожего сообщения ICMP с эквивалентами ICMP6.

2
ответ дан 3 November 2019 в 08:48

Подождите - вам не нужно уничтожать свой EC2 - решение упоминается в документации по облаку AWS:

Устранение неполадок / исправление недоступных экземпляров EC2 / облака:

В основном суть здесь - использование интерфейса консоли управления / облака, (вы испортили iptabes / ssh-keys и т. д. так плохо что вы просто не можете войти в него).

  • отсоедините / (загрузочный) том от плохого (недоступного) EC2
  • создайте новый EC2 (не меняйте здесь значения по умолчанию), прикрепите / volume старого (недоступного) EC2 на этом компьютере
  • смонтируйте его на новом компьютере - отредактируйте / исправьте изменения
  • отсоедините от нового экземпляра, повторно подключите к старому EC2 (который мы выключите, чтобы исправить / volume)
  • перезапустите старую машину EC2 / vm.

См. Полную информацию об AMAZON CLOUD DOCS AT https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html - прокрутите вниз, чтобы перейти к части, начинающейся с ", чтобы проверить разрешения на вашем экземпляр "

0
ответ дан 30 January 2020 в 15:56

Другие вопросы по тегам:

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