
Я изучаю AWS VPC, где я назначаю входящие/исходящие правила NACL, как показано ниже: Прямо сейчас я делаю это для всех IP-адресов
Rule # Type Allow/Deny
100 All Traffic Allow
200 SSH Deny
* All Traffic Deny
Outbound
Rule # Type Allow/Deny
100 SSH Deny
200 All Traffic Allow
* All Traffic Deny
Мне интересно, как работает мой SSH, поскольку правило говорит, что сначала будет оценено меньшее число, а в исходящем правиле я запретил SSH. Может ли кто-нибудь объяснить, как на самом деле работает правило в AWS?
решение1
Входящий трафик SSH разрешен, поскольку входящее правило № 100 (200 практически игнорируется) и исходящее правило не соответствуют уже установленному соединению SSH...
На основеAWS-документация:
Списки контроля доступа сети не имеют состояния, что означает, что ответы на разрешенный входящий трафик подчиняются правилам для исходящего трафика (и наоборот).
- Входящее правило
Исходя из того, что я вижу, я думаю, что у вас неправильный порядок правил.
Rule # Type Allow/Deny
100 All Traffic Allow
200 SSH Deny
* All Traffic Deny
Это просто не имеет смысла, так как вы разрешаете весь трафик с помощью правила 100, поэтому правило 200 не будет использоваться в любое время (трафик будет разрешен на основе правила 100, поэтому для правила 200 ничего не «остается»). Я думаю, что больше смысла в другом порядке (в случае, если вы хотите запретить службу ssh):
Rule # Type Allow/Deny
100 SSH Deny
200 All Traffic Allow
* All Traffic Deny
- Исходящий
Вот трафик SSH с меньшим номером правила:
Rule # Type Allow/Deny
100 SSH Deny
200 All Traffic Allow
* All Traffic Deny
Это запретит трафик для SSH, а для остального он будет разрешен...
Тип SSH — это трафик с портом TCP/22 — обычно он используется в качестве порта назначения. В случае, если вы хотите связаться с сервером SSH, вы подключаетесь к TCP/22, но ваш исходный порт — TCP/X, где X выбирается «случайным образом» (не совсем, но для простоты скажем «случайным образом»), скажем, >10000.
Как только сервер отвечает на ваше соединение, порт назначения — это «ваш» TCP/X, поэтому правило не обязательно должно соответствовать этому трафику...
Исходящий трафик с назначением TCP/22 будет представлять собой соединение, инициированное на сервере с назначением на другом устройстве, а также не установленное SSH-соединение.
решение2
Вы разрешаете весь трафик на свой хост, но запрещаете исходящий SSH-трафик с него.
Насколько мне известно, NACL не выполняют глубокую проверку пакетов. Это означает, что протоколы являются простыми псевдонимами для ихназначенные порты.
Если только вы не делаете что-то действительно странное, например, пытаетесь подключиться по SSH.отпорт 22, ваш входящий сеанс SSH должен работать нормально.