Pertanyaan Menggunakan komunikasi TCP / IP localhost dalam sebuah program - selalu aman?


Saya memiliki aplikasi yang terpisah ke beberapa bagian (proses) berkomunikasi melalui TCP / IP, menggunakan port yang telah ditentukan di localhost.

Apakah ini selalu aman? Dapatkah beberapa jenis firewall (perusahaan, diinstal secara lokal, firewall Windows, dll) memblokir lalu lintas ini? Atau dapatkah beberapa pengaturan pengguna di OS yang dapat memblokir lalu lintas ini?

OS yang saya minati adalah Windows (XP hingga 7) dan Linux (Ubuntu, RHEL, SUSE)


4
2018-03-27 14:24


asal


Saya tidak yakin apakah Anda mencoba mencegah lalu lintas atau memastikan lalu lintas masuk? Lalu lintas melalui port tertentu dapat selalu diblokir, jika seseorang secara sukarela melakukannya. - CreeDorofl
@CreeDorofl: pastikan itu berhasil - Eli Bendersky


Jawaban:


  • Lalu lintas ke 127.0.0.0/8 dan untuk ::1/128 diproses secara internal oleh TCP / IP stack. Tidak mencapai kartu jaringan fisik dan tidak pernah meninggalkan komputer, sehingga tidak dapat diblokir oleh firewall perusahaan.

  • Karena loopback socket sangat umum untuk IPC, firewall yang baik tidak boleh memblokirnya. (Windows Firewall tidak.) Namun, ada beberapa yang terlalu paranoid ... Dalam kasus seperti itu, meskipun, saya akan menyalahkan firewall, bukan perangkat lunak Anda.

  • Pada Unix, mungkin untuk (secara tidak sengaja) menurunkan antarmuka loopback (biasanya lo). Sekali lagi, ini sangat tidak biasa.

  • Alih-alih port hardcoded, socketpair() harus digunakan bila berlaku, untuk menghindari tabrakan port.

  • Bahkan lebih baik menggunakan soket Unix di Linux dan menamai pipa di Windows.


7
2018-03-27 15:18





Semua OS ini mendukung menjalankan perangkat lunak firewall. Ini bisa memblokir koneksi localhost, meskipun itu tidak terlalu biasa (dalam pengalaman saya).

Ada banyak aplikasi / layanan yang melakukan ini. Coba jalankan saja netstat -an di kotak Anda: kemungkinan besar Anda akan melihat beberapa aplikasi dengan soket pendengaran terbuka 127.0.0.1.

Saya tidak tahu pengaturan pengguna yang bisa mencegahnya bekerja di Linux. Tidak tahu untuk Windows. Tetapi sekali lagi, ini adalah teknik umum.


2
2018-03-27 15:17