Hal itu akan mungkin untuk muncul seolah-olah server doesn't ada? Apakah mungkin untuk memiliki semua permintaan percaya host-nama yang tidak bisa diselesaikan kecuali frase spesifik diberikan dalam permintaan? Ada beberapa bukti dari keberadaan server yang tidak bisa disembunyikan oleh pemilik server? Akan ada praktek keamanan tambahan?
Anda dapat mengatur server anda biasanya drop semua paket yang masuk dan hanya membuka port setelah itu masuk/melihat satu set paket yang menentukan urutan tertentu dari port (ini disebut port knocking). Saya menggunakan teknik ini dengan server saya, anda tidak biasanya melihat server karena itu turun semua paket yang masuk. Setelah port knocking paket menghubungi server, server kemudian akan menerima paket dari 'mengetuk' alamat tapi terus drop paket-paket dari alamat lain.
Keamanan yang lebih baik dengan metode ini karena IP scan dan berusaha biadab won't akan banyak masalah untuk anda. Dalam rangka untuk hack server harus ada recon, untuk mengetahui layanan apa saja yang sedang berjalan, apa jenis OS yang anda miliki, dll. Dengan menyangkal penyerang info ini, itu membuat lebih sulit baginya untuk kerajinan serangan untuk perangkat anda. Kelemahan dari pertahanan ini adalah bahwa jika seorang penyerang dapat melihat masuk mengetuk paket, mereka kemudian dapat membuka port juga.
Apakah mungkin untuk muncul seolah-olah server doesn't ada ... kecuali frase spesifik diberikan dalam permintaan?
Saya duga adalah bahwa anda berbicara tentang HTTP (yaitu "web") dan HTTP request di sini meskipun anda don't menentukan apa jenis permintaan anda benar-benar berarti. Dalam kasus permintaan HTTP seperti bersembunyi tidak mungkin karena HTTP adalah sebuah protokol aplikasi di atas TCP. Ini berarti bahwa klien pertama kebutuhan untuk membangun sebuah koneksi TCP yang melibatkan balasan dari server sebelum klien akan mengirim data aplikasi (yaitu permintaan HTTP) dan dengan demikian keberadaan HTTP server mengungkapkan independen dari permintaan.
Hal ini dapat berbeda dengan protokol lain. Misalnya DNS (resolve nama host ke alamat IP) biasanya ditangani di UDP yang merupakan connectionless bertentangan dengan TCP. Ini berarti bahwa permintaan dengan muatan yang pertama paket yang dikirim oleh client. Dengan demikian server bisa dibuat dengan UDP yang hanya menjawab jika permintaan DNS untuk domain tertentu dan penurunan permintaan lain. Dengan cara ini server akan mengungkapkan keberadaannya hanya jika tepat permintaan dikirim. Hal serupa bisa dilakukan dengan SIP (telephony over internet) yang biasanya juga dilakukan atas UDP.
Apakah mungkin untuk memiliki semua permintaan percaya hostname tidak bisa diselesaikan ...?
Menyelesaikan nama host ke alamat IP dilakukan bahkan sebelum mengirim permintaan ke server pada alamat IP ini dan biasanya server itu sendiri bahkan tidak terlibat dalam DNS ini proses penyelesaian. Ini berarti bahwa bahkan dengan protokol connectionless klien tidak mendapatkan informasi yang nama tidak dapat diselesaikan jika permintaan itu salah. Sebagian besar klien akan mendapatkan informasi bahwa target tidak membalas yang dapat diinterpretasikan bahwa tidak ada server setup pada alamat IP atau server down, yang dilindungi oleh firewall atau hanya turun tak terduga paket.
Apakah mungkin untuk muncul seolah-olah server doesn't ada?
Ya, meskipun ini adalah non-sepele. Hal ini tergantung pada perilaku dari ISP anda ketika server tidak ada. Beberapa ISP mengkonfigurasi router untuk paket drop ketika IP paket berusaha untuk mencapai tidak ada, orang lain mengirim menolak paket-paket pesan kembali ke pengirim. Juga, beberapa router memiliki perilaku adaptif dan mengubah perilaku mereka jika percaya hal itu mungkin berada di bawah serangan. Beberapa Isp dapat membeda-bedakan berdasarkan mana menyelidik paket (misalnya, paket yang datang dari negara-negara/Isp yang sering host berbahaya pelanggan dapat diperlakukan lebih kasar dari orang-orang dengan jaringan yang baik praktik).
Jika anda mengkonfigurasi server anda hanya drop semua paket-paket yang belum diakui, yang mungkin benar-benar menjadi bukti server's keberadaannya jika ISP anda biasanya mengirimkan pesan penolakan. Jika ISP anda's router adaptif perubahan perilaku selama periode aktif menyerang, dan server anda don't keep up dengan apa yang ISP lakukan, maka itu mungkin benar-benar menjadi bukti dari server. Selain itu, ISP anda mungkin memiliki mereka sendiri backhaul ISP, yang mungkin memiliki set mereka sendiri perilaku.
Apakah mungkin untuk memiliki semua permintaan percaya host-nama yang tidak bisa diselesaikan
Ya, hanya don't mendaftarkan nama host pada DNS publik sistem. Nama host pada DNS publik sistem ini sengaja catatan publik. Jika sudah terdaftar di DNS publik, maka siapa pun dapat query DNS untuk pencarian alamat IP yang terkait dengan hostname. Namun, anda dapat menentukan nama host yang hanya diakui oleh mesin (yaitu menggunakan file host) atau menjalankan anda sendiri pribadi DNS server.
ada beberapa bukti keberadaan server yang tidak bisa disembunyikan oleh pemilik server?
Setiap publik alamat IP routable memiliki kepemilikan publik catatan yang dapat dilihat dengan menggunakan alat bantu whois untuk mencari tahu siapa penyedia layanan internet adalah. ISP anda (atau lawan yang mengganggu atau bekerja dengan ISP anda) dapat memantau setiap paket akan melalui jaringan mereka dan mereka dapat melihat bahwa inbound paket tanpa sebelumnya outbound paket sebagai bukti dari sebuah server.
Akan ada praktek keamanan tambahan?
Jika anda memiliki praktik keamanan yang buruk di tempat pertama, kemudian menjadi tak terlihat secara efektif dapat berpaling banyak berpikiran sederhana bot dan canggih penyerang. Lebih canggih penyerang dapat menemukan cara di sekitar tembus pandang. Jika anda memiliki praktik keamanan yang baik, dengan menggunakan autentikasi dan enkripsi yang kuat, maka yang tersembunyi tidak peduli bahwa banyak dalam hal keamanan.
Mungkin tempat terbaik untuk menyembunyikan daun untuk bersembunyi di pohon/hutan. Jika anda menjalankan dikenal publik server dan anda mengenkripsi semua lalu lintas ke server (HTTPS only), kemudian ada sedikit yang orang luar dapat dilakukan untuk membedakan antara lalu lintas ke depan situs dan lalu lintas ke situs tersembunyi. Satu-satunya hal yang perlu anda pertimbangkan adalah bahwa TLS kebocoran tujuan hostname di SNI header. Asalkan anda baik spoof anda SNI header atau jika anda menggunakan depan server's hostname, maka anda tersembunyi server akan tetap tersembunyi.
Saya menggunakan fwknop
("FireWsemua KNock OPerator") untuk stealth port:
Dengan fwknop dikerahkan, siapa saja yang menggunakan nmap untuk mencari SSHD dapat't bahkan memberitahu bahwa itu adalah mendengarkan - tidak ada bedanya jika mereka ingin menjalankan password cracker terhadap SSHD atau bahkan jika mereka memiliki 0-day exploit.
Bahkan bekerja untuk stealthing ssh
port di belakang nat
.
Jika anda ingin membatasi akses ke satu ip
anda dapat mencapai efek yang sama dengan menjalankan iptables
dengan default menolak kebijakan (iptables -P INPUT DROP
) & menambahkan memungkinkan aturan-aturan tertentu src
alamat ip:
iptables -A INPUT -i eth0 -p tcp -s 1.2.3.4 --dport 80 -j ACCEPT
Ada cara lain untuk memiliki sebuah server yang tersembunyi dari internet, dan ini adalah penggunaan TOR Tersembunyi di situs ini. Server ini dirancang hanya akan tersedia melalui jaringan TOR, dan hanya dialamatkan dengan TOR .bawang alamat.
Di masa lalu semacam ini tersembunyi server telah digunakan untuk berbagai alasan seperti anti-penyensoran situs, email anonim, dan dalam beberapa kasus (seperti Silk Road) situs tersembunyi yang digunakan untuk menjual/membeli barang-barang ilegal.
Jika anda tertarik, lihat di sini: https://www.torproject.org/docs/tor-hidden-service.html.en
Seperti orang lain telah menunjukkan, teknik ini disebut "port knocking".
Moxie Marlinspike telah menciptakan sebuah alat yang disebut "knockknock" yang tidak tepat ini.
Saya percaya penjelasan bagaimana alat ini bekerja cukup baik untuk memahami konsep. Mengutip dari halaman-nya:
Server menjalankan aplikasi python 'knockknock-daemon', dan klien port yang terbuka pada server tersebut dengan menjalankan python aplikasi 'knockknock'
'knockknock-daemon' cukup ekor kern.log. Itu doesn't mengikat untuk setiap soket, beban libpcap dan memeriksa setiap paket, atau mengirim sesuatu ke jaringan sama sekali.
Ketika anda ingin membuka port dari klien, anda lari 'knockknock', yang mengirimkan satu paket SYN ke server. Paket's IP dan TCP header dikodekan untuk mewakili IND-CCA aman dienkripsi permintaan untuk membuka port tertentu dari sumber alamat IP.
Bidang dari paket ini adalah login ke kern.log dan diproses oleh 'knockknock-daemon', yang memvalidasi mereka.
Anda menghubungkan dari klien ke sekarang-port yang terbuka pada server.
pelabuhan menutup di belakang anda dan doesn't memungkinkan setiap koneksi baru.