Открытие порта 80 на вычислительном узле Oracle Cloud Infrastructure.

Однако это элементарный вопрос, который я не могу решить, просматривая документацию Oracle. Я создал вычислительный узел на основе Ubuntu, и он подключен к подсети. В этой подсети я создал правило с состоянием с источником 0.0.0.0/0, протокол IP: TCP, диапазон портов источника: все, диапазон портов назначения: 80.

На сервере не настроен брандмауэр.

Несмотря на эту конфигурацию, я не могу получить доступ к общедоступному IP-адресу вычислительного узла. Есть идеи?

3 ответа

Решение

При развертывании вычислительных экземпляров в Oracle Cloud Infrastructure необходимо учитывать несколько вещей:

  1. Создать интернет-шлюз (IGW).
  2. Определите маршруты, чтобы указать на IGW.
  3. Разрешить порт 80 в списке безопасности, связанном с IGW. По умолчанию у вас есть доступ только к SSH и ICMP 3,4 типа.
  4. Разрешить подключение на экземпляре брандмауэра Compute (который включен по умолчанию).

В вашем примере, если вы используете форму OEL:

$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp

$ sudo firewall-cmd --reload

Я понял. Проблема с подключением была вызвана тем, что Oracle по умолчанию использует iptables для всех предоставляемых Oracle образов. Буквально самое первое, что я сделал, когда раскручивал этот экземпляр, была проверка ufw, предполагая, что были установлены некоторые ограничения брандмауэра. ufw статус был неактивен, поэтому я пришел к выводу, что брандмауэр был широко открыт. Потому что, насколько я понимаю, оба ufw а также iptables посмотрите на брандмауэр ядра netfilter, и потому ufw является де-факто (стандартным?) брандмауэром в Ubuntu, я понятия не имею, почему они решили, что имеет смысл использовать iptables таким образом. Может быть, просто стандартизировать по всем изображениям?

Я узнал о правилах, запустив:

$ sudo iptables -L

Затем я сохранил правила в файл, чтобы потом добавить соответствующие правила:

$ sudo iptables-save > ~/iptables-rules

Затем я запустил эти правила, чтобы эффективно отключить iptables разрешив весь трафик через:

$ iptables -P INPUT ACCEPT
$ iptables -P OUTPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -F

Во всяком случае, надеюсь, что это поможет кому-то еще, потому что документации по этому вопросу не существует.

Всегда обращайтесь к официальному руководству: https://docs.cloud.oracle.com/en-us/iaas/developer-tutorials/tutorials/apache-on-ubuntu/01oci-ubuntu-apache-summary.htm

$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
$ sudo netfilter-persistent save
$ sudo systemctl restart apache2

Зачислено на https://medium.com/@fathi.ria/oracle-database-cloud-open-ports-on-oci-1af24f4eb9f2

Экземпляр Coumputer (например, Ubuntu) -> Виртуальная облачная сеть -> Список безопасности -> Правила входа -> Добавьте правило, разрешающее доступ к порту 80 из любого места

Предварительные требования

  1. Экземпляр ВМ должен быть создан и запущен
  2. Доступ к открытым и закрытым ключам, используемым при создании экземпляра виртуальной машины.

Войдите в виртуальную машину с помощью SSH и выполните следующую команду

$ sudo iptables --list --line-numbers

Он покажет подробную информацию о цепочке INPUT (политика ACCEPT). Из списка необходимо удалить REJECT all rule in the IPTABLES.

$ sudo iptables -D INPUT <Reject Line number>
e.g.
$ sudo iptables -D INPUT 6

Проверьте, удалено ли правило REJECT

sudo iptables --list --line-numbers 

Получите доступ к списку безопасности по умолчанию и отредактируйте правила входа, чтобы разрешить Интернет-трафик через порт

Отредактируйте правило INGRES. Добавьте CIDR 0.0.0.0/0 TCP Destination 9999 (N): Networking >Virtual Cloud Networks> Virtual Cloud Network Details>Security Lists> Security List Details

Доступ к вашему приложению через веб-браузер

Type http://<public IP address of the VM>:port

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

iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m состояние --Новое состояние, УСТАНОВЛЕНО -j ПРИНЯТЬ

Если ваша локальная виртуальная машина не принимает соединение с портом 80 по правилам iptable, используйте его как postet by vinodh

iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

это помогло мне!

Если вы еще не создали Интернет-шлюз, это может быть причиной. Чтобы подключить VCN к общедоступному Интернету, необходимо иметь интернет-шлюз и таблицу маршрутов для направления трафика через шлюз.

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