Я изучаю 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?
Вы разрешаете весь трафик на свой хост, но запрещаете исходящий с него ssh.
Насколько мне известно, NACL не проводят глубокую проверку пакетов. Это означает, что протоколы являются простыми псевдонимами своих назначенные порты.
Если вы не делаете что-то действительно странное, например, пытаетесь использовать ssh из порт 22, ваш входящий сеанс ssh должен быть в порядке.
Входящий SSH-трафик разрешен, потому что входящее правило № 100 (200 практически игнорируется) и исходящее правило не соответствует уже установленному SSH-соединению ...
На основе Документация AWS :
Сетевые ACL не сохраняют состояние, что означает, что ответы на разрешенный входящий трафик подчиняются правилам для исходящего трафика (и наоборот).
Основываясь на том, что я вижу, я думаю, что у вас неправильный порядок правил.
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-соединение.