Jika Anda memblokir semua koneksi yang masuk, bagaimana Anda masih bisa menggunakan internet?

22

Jika ISP atau firewall Anda memblokir semua koneksi yang masuk, bagaimana server web masih dapat mengirim Anda data ke browser Anda? Anda mengirim permintaan (keluar) dan server mengirim data (masuk). Jika Anda memblokir semua yang masuk, bagaimana server web merespons?

Bagaimana dengan streaming video dan game multi-pemain, di mana ia menggunakan UDP? UDP tidak terhubung, jadi tidak ada koneksi yang akan dibuat, jadi bagaimana firewall atau ISP mengatasinya?

Kunal Chopra
sumber
2
Blokir semua panggilan telepon masuk / Teruskan semua panggilan telepon masuk ke pesan suara? Tidak menghentikan Anda dari memanggil seseorang.
WernerCD

Jawaban:

43

"Blok masuk" berarti koneksi baru yang masuk diblokir, tetapi lalu lintas yang mapan diizinkan. Jadi, jika koneksi baru keluar diizinkan, maka setengah masuk dari percakapan itu baik-baik saja.

Firewall mengelola ini dengan melacak status koneksi (firewall seperti itu sering disebut "firewall stateful"). Itu melihat SYN TCP keluar dan memungkinkan. Ia melihat SYN / ACK yang masuk, dan dapat memverifikasi bahwa itu cocok dengan SYN keluar yang dilihatnya, dan membiarkannya melaluinya, dan seterusnya. Jika memungkinkan jabat tangan tiga arah (misalnya, diizinkan sesuai aturan firewall) itu akan memungkinkan percakapan itu. Dan ketika ia melihat akhir dari percakapan itu (FIN atau RST) itu akan membuat koneksi itu dari daftar paket untuk memungkinkan.

UDP dilakukan dengan cara yang sama, meskipun melibatkan firewall yang cukup mengingat untuk berpura-pura bahwa UDP memiliki koneksi atau sesi (yang tidak dilakukan UDP).

gowenfawr
sumber
1
Untuk UDP, karena tidak ada koneksi yang sebenarnya, firewall biasanya akan melacak IP tujuan dan port paket UDP keluar, dan jika ada paket masuk dengan IP dan port yang sama sebagai sumber, ia akan menganggapnya sebagai balasan dan biarkan di.
WhiteWinterWolf
17

@gowenfawr memiliki gambar tingkat tinggi di bawah. Namun, saya pikir saya akan menambahkan beberapa detail tentang bagaimana "pencocokan" untuk pelacakan koneksi dilakukan, karena mungkin terdengar seperti sihir bagi yang belum tahu.

Setiap koneksi TCP memiliki nomor port di setiap sisi. Seperti yang diketahui sebagian besar teknisi, server HTTP berjalan pada port 80. Ketika browser Anda terhubung ke server web, ia akan meminta sistem operasi untuk menghasilkan nomor port "lokal", yang akan menjadi sesuatu yang acak seperti 29672 yang tidak digunakan oleh yang lain Koneksi TCP dari komputer itu (dan OS dapat melakukan ini karena ia tahu tentang semua koneksi TCP yang aktif). Kemudian paket pengaturan TCP awal akan dikirim dari ip mesin Anda (IP_YOURS) dan nomor port 29672 ke ip server web (IP_WEBSERVER) dan nomor port 80. Pada saat itu, stateful firewall akan mengatakan "aha, paket mendatang dari port IP_WEBSERVER 80 pergi ke IP_YOURS port 29672 bukan koneksi baru, mereka adalah respons terhadap koneksi yang ada, dan harus diizinkan ". Firewall stateful mempertahankan tabel,

Atsby
sumber
3
Ini sebagian besar benar, tetapi, karena beberapa poin minor, nomor port berhenti di 65535 (angka 16-bit yang tidak ditandai) dan, selain batas waktu, paket dengan set flag FIN atau RST juga dapat memberi sinyal bahwa TCP koneksi sekarang ditutup.
reirab
@reirab Oh whoops, yeah nomor port gagal. Dengan penutupan, tentu saja dimungkinkan untuk memeriksa flag TCP, tetapi harus memperhitungkan kemungkinan kehilangan paket dan transmisi ulang dari urutan yang dekat cukup rumit sehingga saya akan berasumsi bahwa kebanyakan firewall hanya menggunakan kembali entri tabel yang paling baru-baru ini digunakan daripada menyimpannya. melacak secara akurat.
@atsby Anda selalu dapat mengedit posting dan mengganti nomor port dengan sesuatu yang lebih cocok?
Semua ini adalah informasi yang bagus. Hanya ingin menambahkan satu hal ke port yang dibahas oleh komentar di atas. Mereka disebut 'port sementara' dan jangkauannya ditentukan oleh kernel khusus untuk setiap OS. Di Linux Anda bisa mendapatkannya dengan "cat / proc / sys / net / ipv4 / ip_local_port_range" --- rentang defaultnya adalah "32768 hingga 61000"
Arul Selvan