Cara membuka port tertentu seperti 9090 di Google Compute Engine

195

Saya memiliki 2 mesin Google Compute dan saya ingin membuka port 9090 dalam kedua mesin tersebut. Saya pikir kita perlu menambahkan beberapa aturan firewall.

Bisakah Anda memberi tahu saya bagaimana saya bisa melakukan itu?

Subhradip Bose
sumber
7
Saya pikir pertanyaan ini telah dijawab. Maukah Anda memilih salah satu jawaban di bawah ini? Ini akan membantu pembaca di masa mendatang lebih mudah mengenali bahwa masalah ini telah diselesaikan.
modulitos
Yo, Subhradip, pilih jawaban.
oligofren

Jawaban:

339

Kamu butuh:

  1. Buka cloud.google.com

  2. Pergi ke Konsol saya

  3. Pilih Proyek Anda

  4. Pilih Jaringan> jaringan VPC

  5. Pilih "Aturan firewall"

  6. Pilih "Buat Aturan Firewall"

  7. Untuk menerapkan aturan untuk memilih instance VM, pilih Target> "Tag target yang ditentukan", dan masukkan ke dalam "Tag target" nama tag. Tag ini akan digunakan untuk menerapkan aturan firewall baru ke instance mana pun yang Anda inginkan. Kemudian, pastikan instans telah menerapkan tag jaringan.

  8. Untuk mengizinkan koneksi TCP yang masuk ke port 9090, masukkan "Protokol dan Port" tcp:9090

  9. Klik Buat

Saya harap ini membantu Anda.

Perbarui Silakan merujuk ke dokumen untuk menyesuaikan aturan Anda.

Carlos Rojas
sumber
4
Mesin komputasi tidak memiliki opsi "jaringan" (lagi?)
Afr
8
Ya, tidak ada opsi Jaringan sekarang, jalur yang diperbarui adalah Project -> Networking -> Firewall Rules
Caio Vertematti
1
Pada contoh saya, saya hanya punya allow httpdan allow httpssaya sudah menambahkan aturan firewall baru tetapi saya tidak bisa menemukannya. Saya juga di tingkat gratis, jika itu membantu.
A. L
1
Anda perlu mengizinkan http untuk membuka port 80 dan memungkinkan https untuk membuka 443. Ini adalah jalan pintas.
Carlos Rojas
4
Jalur menu dokumen terus berubah. Menurutnya
Anupam
81

Berikut ini adalah pendekatan command-line untuk menjawab pertanyaan ini:

gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"

Ini akan membuka port 9090untuk instance yang Anda sebutkan. Menghilangkan --source-tagsdan --source-rangesakan menerapkan aturan untuk semua instance. Rincian lebih lanjut di dokumentasi Gcloud dan para firewall-rule createpengguna perintah

Jawaban sebelumnya sangat bagus, tetapi Google merekomendasikan untuk menggunakan gcloudperintah yang lebih baru daripada gcutilperintah.

PS: Untuk mendapatkan ide tentang aturan firewall Google, jalankan gcloud compute firewall-rules listdan lihat semua aturan firewall Anda

modulitos
sumber
Saya mendapat keluhan ketika saya menggunakan --descriptionbagian itu, tetapi jika tidak, ini berfungsi untuk saya.
shabbychef
2
Saya tidak yakin apakah mereka mengubah api tetapi sumber dan target tampaknya kebalikan dari jawaban @ modulitos. Menurut dokumentasi perintah aturan firewall , sourceberarti lalu lintas masuk sedangkan targetmengacu pada instance untuk menerapkan aturan.
cindyxiaoxiaoli
1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
alper
Apa tes aftermath @modulitos? Apakah itu telnet :instance_ip :portatau nmap -p :port :instance_ip?
Nam G VU
@alper Anda harus melakukan perintah ini sebelumnya: "gcloud auth login" dan login
Anton Tkachov
10

Anda harus menambahkan aturan firewall untuk membuka akses masuk tcp:9090ke instance Anda. Jika Anda memiliki lebih dari dua instance, dan Anda hanya ingin membuka 9090 untuk keduanya, Anda harus memastikan bahwa ada tag yang dibagikan kedua instance tersebut. Anda dapat menambahkan atau memperbarui tag melalui konsol atau baris perintah; Saya akan merekomendasikan menggunakan GUI untuk itu jika diperlukan karena menangani siklus baca-ubah-tulis setinstancetags.

Jika Anda ingin membuka port 9090 ke semua instance, Anda dapat membuat aturan firewall seperti:

gcutil addfirewall allow-9090 --allowed=tcp:9090

yang akan berlaku untuk semua instance Anda.

Jika Anda hanya ingin membuka port 9090 ke dua instance yang melayani aplikasi Anda, pastikan mereka memiliki tag seperti my-app, dan kemudian tambahkan firewall seperti itu:

gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app

Anda dapat membaca lebih lanjut tentang membuat dan mengelola firewall di GCE di sini .

E. Anderson
sumber
10
gcutiltidak lagi tersedia; tolong tulis ulang baris perintah Anda menggunakan gcloud.
Misha Brukman
10

Pertanyaan ini sudah tua dan jawaban Carlos Rojas baik, tapi saya pikir saya harus memposting beberapa hal yang harus diingat ketika mencoba untuk membuka port.

Hal pertama yang perlu diingat adalah bahwa bagian Networking diubah namanya menjadi VPC Networking . Jadi, jika Anda mencoba mencari tahu di mana opsi Aturan Firewall tersedia, lihat VPC Networking .

Yang kedua adalah, jika Anda mencoba membuka port pada Linux VM, pastikan dalam keadaan apa pun Anda tidak boleh mencoba membuka port menggunakan ufwperintah. Saya mencoba menggunakan itu dan kehilangan akses ssh ke VM. Jadi jangan ulangi kesalahan saya.

Hal ketiga adalah, jika Anda mencoba membuka port pada VM Windows, Anda harus membuat aturan Firewall di dalam VM juga di Windows Firewall bersama dengan VPC Networking -> Firewall Rules . Port perlu dibuka di kedua aturan firewall, tidak seperti Linux VM. Jadi jika Anda tidak mendapatkan akses ke port dari luar VM, periksa apakah Anda telah membuka port di konsol GCP dan Windows Firewall.

Yang terakhir (jelas) adalah, jangan membuka port yang tidak perlu. Tutup port, segera setelah Anda tidak lagi membutuhkannya.

Semoga jawaban ini bermanfaat.

cupu
sumber
Kiat-kiat bagus kecuali bahwa saya memang membuka beberapa port tertentu dengan ufwperintah dan saya masih memiliki akses ssh.
stackErr
7

Saya memiliki masalah yang sama seperti yang Anda lakukan dan saya bisa menyelesaikannya dengan mengikuti instruksi @CarlosRojas dengan sedikit perbedaan. Alih-alih membuat aturan firewall baru, saya mengedit aturan default-allow-internaluntuk menerima lalu lintas dari mana saja karena membuat aturan baru tidak ada bedanya.

Nevershowmyface
sumber
Ada biaya untuk membuat aturan firewall baru. Apakah Anda berhasil menghindarinya dengan mengedit aturan ini?
killjoy
@killjoy saya tidak yakin tentang itu. Saat ini saya tidak menggunakan mesin komputasi google. Maaf.
Nevershowmyface
2
Meskipun ini mungkin berhasil, ada masalah keamanan dengan metode ini. Apa yang saya temukan berfungsi untuk saya adalah menggunakan tag firewall pada instance saya. Saat Anda membuat aturan firewall, Anda bisa membuat "Tag Target" untuk aturan itu. Anda kemudian dapat menerapkan tag itu ke Instance VM Anda yang akan menerapkan aturan untuk instance spesifik Anda. Lihat jawaban yang diterima di sini untuk informasi lebih lanjut: stackoverflow.com/questions/31509722/...
k00k
7

Membuat aturan firewall

Harap tinjau komponen aturan firewall [1] jika Anda tidak terbiasa dengan aturan firewall di GCP. Aturan firewall didefinisikan di tingkat jaringan, dan hanya berlaku untuk jaringan tempat aturan itu dibuat; Namun, nama yang Anda pilih untuk masing-masing harus unik untuk proyek tersebut.

Untuk Cloud Console:

  1. Buka halaman aturan Firewall di Google Cloud Platform Console.
  2. Klik Buat aturan firewall.
  3. Masukkan Nama untuk aturan firewall. Nama ini harus unik untuk proyek tersebut.
  4. Tentukan Jaringan tempat aturan firewall akan diterapkan.
  5. Tentukan Prioritas aturan. Semakin rendah angkanya, semakin tinggi prioritas.
  6. Untuk Arah lalu lintas, pilih masuk atau keluar.
  7. Untuk Aksi saat pertandingan, pilih izinkan atau tolak.
  8. Tentukan Target aturan.

    • Jika Anda ingin aturan berlaku untuk semua instance di jaringan, pilih Semua instance di jaringan.
    • Jika Anda ingin aturan diterapkan untuk memilih instance oleh jaringan (target) tag, pilih tag target yang Ditentukan, kemudian ketik tag yang aturannya harus diterapkan ke dalam bidang tag Target.
    • Jika Anda ingin aturan diterapkan untuk memilih contoh dengan akun layanan terkait, pilih akun layanan Tertentu, tunjukkan apakah akun layanan ada di proyek saat ini atau yang lain di bawah cakupan akun Layanan, dan pilih atau ketik nama akun layanan di layanan Target bidang akun.
  9. Untuk aturan masuknya, tentukan filter Sumber:

    • Pilih rentang IP dan ketik blok CIDR ke bidang Sumber rentang IP untuk menentukan sumber untuk lalu lintas masuk oleh rentang alamat IP. Gunakan 0.0.0.0/0 untuk sumber dari jaringan apa pun.
    • Pilih Subnet kemudian tandai yang Anda butuhkan dari tombol pop-up Subnet untuk menentukan sumber untuk lalu lintas masuk dengan nama subnet.
    • Untuk membatasi sumber dengan tag jaringan, pilih Tag sumber, lalu ketikkan tag jaringan ke bidang Tag sumber. Untuk batas jumlah tag sumber, lihat Kuota dan Batas VPC. Pemfilteran menurut tag sumber hanya tersedia jika target tidak ditentukan oleh akun layanan. Untuk informasi lebih lanjut, lihat pemfilteran menurut tag akun layanan vs jaringan.
    • Untuk membatasi sumber dengan akun layanan, pilih akun Layanan, tunjukkan apakah akun layanan ada di proyek saat ini atau yang lain di bawah cakupan akun Layanan, dan pilih atau ketik nama akun layanan di bidang akun Layanan sumber. Pemfilteran menurut akun layanan sumber hanya tersedia jika target tidak ditentukan oleh tag jaringan. Untuk informasi lebih lanjut, lihat pemfilteran oleh akun layanan vs. tag jaringan.
    • Tentukan filter sumber kedua jika diinginkan. Filter sumber sekunder tidak dapat menggunakan kriteria filter yang sama dengan yang primer.
  10. Untuk aturan jalan keluar, tentukan filter Tujuan:

    • Pilih rentang IP dan ketik blok CIDR ke bidang Tujuan rentang IP untuk menentukan tujuan untuk lalu lintas keluar dengan rentang alamat IP. Gunakan 0.0.0.0/0 berarti di mana-mana.
    • Pilih Subnet kemudian tandai yang Anda butuhkan dari tombol pop-up Subnet untuk menentukan tujuan lalu lintas keluar dengan nama subnet.
  11. Tetapkan Protokol dan port tempat aturan akan berlaku:

    • Pilih Izinkan semua atau Tolak semua, tergantung pada tindakannya, agar aturan berlaku untuk semua protokol dan port.

    • Tetapkan protokol dan port tertentu:

      • Pilih tcp untuk memasukkan protokol dan port TCP. Masukkan semua atau daftar port yang dibatasi koma, seperti 20-22, 80, 8080.
      • Pilih udp untuk memasukkan protokol dan port UDP. Masukkan semua atau daftar port yang dibatasi koma, seperti 67-69, 123.
      • Pilih Protokol lain untuk memasukkan protokol seperti icmp atau sctp.
  12. (Opsional) Anda dapat membuat aturan firewall tetapi tidak menegakkannya dengan mengatur status penegakannya ke dinonaktifkan. Klik Nonaktifkan aturan, lalu pilih Nonaktif.

  13. (Opsional) Anda dapat mengaktifkan pencatatan aturan firewall:

    • Klik Log> Aktif.
    • Klik Hidupkan.
  14. Klik Buat.

Tautan: [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components

Kervin L
sumber
0

Saya harus memperbaikinya dengan mengurangi prioritas (membuatnya lebih tinggi). Ini menyebabkan respons langsung. Bukan yang kuharapkan, tapi berhasil.

justbob
sumber