it-swarm-id.com

Alamat IP pribadi dalam DNS publik

Kami memiliki server surat hanya SMTP di belakang firewall yang akan memiliki catatan publik A .. Satu-satunya cara untuk mengakses server email ini adalah dari server lain di belakang firewall yang sama. Kami tidak menjalankan server DNS pribadi kami sendiri.

Apakah ide yang baik untuk menggunakan alamat IP pribadi sebagai catatan A di server DNS publik - atau apakah yang terbaik untuk menyimpan catatan server ini di setiap server file host lokal?

62
Geoff Dalgas

Beberapa orang akan mengatakan bahwa tidak ada catatan DNS publik yang boleh mengungkapkan alamat IP pribadi .... dengan anggapan bahwa Anda memberikan penyerang potensial informasi yang mungkin diperlukan untuk mengeksploitasi sistem pribadi.

Secara pribadi, saya pikir kebingungan adalah bentuk keamanan yang buruk, terutama ketika kita berbicara tentang alamat IP karena secara umum mereka mudah ditebak, jadi saya tidak melihat ini sebagai kompromi keamanan yang realistis.

Pertimbangan yang lebih besar di sini adalah memastikan pengguna publik Anda tidak mengambil catatan DNS ini sebagai bagian dari layanan publik normal dari aplikasi yang dihosting. yaitu: Pencarian DNS eksternal entah bagaimana mulai menyelesaikan ke alamat yang tidak dapat mereka peroleh.

Selain itu, saya tidak melihat alasan mendasar mengapa menempatkan catatan alamat A pribadi ke ruang publik adalah masalah .... terutama ketika Anda tidak memiliki server DNS alternatif untuk menampung mereka.

Jika Anda memutuskan untuk meletakkan catatan ini di ruang DNS publik, Anda dapat mempertimbangkan membuat zona terpisah di server yang sama untuk menyimpan semua catatan "pribadi". Ini akan membuatnya lebih jelas bahwa mereka dimaksudkan untuk menjadi pribadi .... namun hanya untuk satu catatan A, saya mungkin tidak akan repot.

63
Tall Jeff

Saya memiliki diskusi panjang tentang topik ini pada daftar NANOG beberapa waktu lalu. Meskipun saya selalu berpikir itu adalah ide yang buruk, ternyata itu bukan ide yang buruk dalam praktek. Kesulitan sebagian besar datang dari pencarian rDNS (yang untuk alamat pribadi Just Don't Work di dunia luar), dan ketika Anda memberikan akses ke alamat melalui VPN atau sejenisnya, penting untuk memastikan bahwa klien VPN terlindungi dengan baik dari "Bocor" traffic saat VPN sedang down.

Saya katakan pergi untuk itu. Jika penyerang bisa mendapatkan sesuatu yang bermakna dari bisa menyelesaikan nama ke alamat internal, Anda punya masalah keamanan yang lebih besar.

36
womble

Secara umum memperkenalkan alamat RFC1918 ke DNS publik akan menyebabkan kebingungan, jika bukan masalah nyata, di beberapa titik di masa depan. Gunakan IP, catatan Host, atau tampilan DNS pribadi zona Anda untuk menggunakan alamat RFC1918 di belakang firewall Anda tetapi tidak memasukkannya dalam tampilan publik.

Untuk mengklarifikasi tanggapan saya berdasarkan pada tanggapan yang dikirimkan lainnya, saya pikir memasukkan alamat RFC1918 ke dalam DNS publik adalah kesalahan, bukan masalah keamanan. Jika seseorang memanggil saya untuk memecahkan masalah dan saya menemukan alamat RFC1918 di DNS mereka, saya mulai berbicara dengan sangat lambat dan menanyakan apakah mereka telah mem-boot ulang baru-baru ini. Mungkin itu adalah keangkuhan di pihak saya, saya tidak tahu. Tapi seperti yang saya katakan, itu bukan hal yang perlu dilakukan dan kemungkinan akan menyebabkan kebingungan dan miskomunikasi (manusia, bukan komputer) di beberapa titik. Mengapa mengambil risiko itu?

8
jj33

Tidak, jangan letakkan alamat IP pribadi Anda di DNS publik.

Pertama, ia membocorkan informasi, meskipun itu masalah yang relatif kecil.

Masalah yang lebih buruk jika catatan MX Anda menunjuk ke entri Host tertentu adalah bahwa siapa pun yang mencoba mengirim email ke sana paling tidak akan mendapatkan batas waktu pengiriman email.

Bergantung pada perangkat lunak email pengirim, mereka mungkin mendapatkan bouncing.

Lebih buruk lagi, jika Anda menggunakan ruang alamat RFC1918 (yang seharusnya, di dalam jaringan Anda) dan pengirimnya juga, ada setiap kesempatan bahwa mereka akan mencoba dan mengirimkan surat ke jaringan mereka sendiri.

Sebagai contoh:

  • jaringan memiliki server surat internal, tetapi tidak ada DNS terpisah
  • oleh karena itu admin memasukkan alamat IP publik dan internal ke dalam DNS
  • dan catatan MX menunjuk ke keduanya:

 $Origin example.com
 @        IN   MX    mail.example.com
 mail     IN   A     192.168.1.2
          IN   A     some_public_IP

  • seseorang melihat ini mungkin coba sambungkan ke 192.168.1.2
  • kasus terbaik, itu memantul, karena mereka tidak punya rute
  • tetapi jika mereka juga punya server menggunakan 192.168.1.2, surat akan pergi ke tempat yang salah

Ya, ini konfigurasi yang rusak, tetapi saya telah melihat ini (dan lebih buruk) terjadi.

Tidak, itu bukan kesalahan DNS, itu hanya melakukan apa yang diperintahkan.

5
Alnitak

Meskipun kemungkinannya kecil, saya pikir Anda mungkin menyiapkan diri untuk beberapa serangan MITM.

Kekhawatiran saya adalah ini. Katakanlah salah satu pengguna Anda dengan klien email yang dikonfigurasi untuk menunjuk pada server email yang membawa laptop mereka ke jaringan lain. Apa yang terjadi jika jaringan lain itu juga memiliki RFC1918 yang sama digunakan. Laptop itu dapat mencoba masuk ke server smtp dan menawarkan kredensial pengguna ke server yang seharusnya tidak memilikinya. Ini akan sangat benar karena Anda mengatakan SMTP dan tidak menyebutkan bahwa Anda memerlukan SSL.

3
Zoredache

Dua opsi Anda adalah/etc/hosts dan menempatkan alamat IP pribadi di zona publik Anda. Saya akan merekomendasikan yang pertama. Jika ini mewakili sejumlah besar host, Anda harus mempertimbangkan menjalankan resolver Anda sendiri secara internal, itu tidak sulit.

3
Dave Cheney

Mungkin ada masalah kecil dengan itu. Salah satunya adalah bahwa solusi umum untuk serangan DNS Rebind memfilter entri DNS lokal diselesaikan dari server DNS publik. Jadi Anda bisa membuka diri untuk melawan serangan, atau alamat lokal tidak berfungsi, atau memerlukan konfigurasi yang lebih canggih (jika perangkat lunak/router Anda bahkan mengizinkannya).

2
Nikola Toshev

Jika secara pribadi yang Anda maksud adalah 10.0.0.0/8, 192.168.0.0/16, atau 172.16.0.0/12, maka jangan . Sebagian besar router internet mengenalinya apa adanya - alamat pribadi yang harus tidak pernah dialihkan ke internet publik secara langsung , yang membantu popularitas dari NAT. Siapa pun yang mencoba menghubungi server DNS publik Anda akan mengambil alamat IP pribadi dari DNS, hanya untuk mengirim paket ke .... tidak di mana pun. Ketika koneksi mereka mencoba untuk melintasi internet ke alamat pribadi Anda, beberapa router (yang dikonfigurasi dengan benar) sepanjang jalan hanya akan memakan paket itu hidup-hidup.

Jika Anda ingin mendapatkan email dari "luar" untuk datang "di dalam", pada suatu titik, paket tersebut harus melewati firewall Anda. Saya akan menyarankan pengaturan alamat DMZ untuk menangani ini - satu alamat IP publik yang dikontrol ketat oleh router/firewall yang Anda miliki. Pengaturan yang ada yang Anda gambarkan terdengar seperti itu tidak tepat bahwa.

EDIT: klarifikasi maksud ... (lihat komentar di bawah). Jika ini tidak masuk akal, saya akan memilih untuk menghapus posting saya sendiri.

1
Avery Payne

Cara terbaik untuk menyimpannya di file host. Jika hanya satu mesin yang seharusnya terhubung ke sana, apa yang Anda dapatkan dengan memasukkannya ke DNS publik?

1
sh-beta

Saya tiba di sini ketika saya mencari informasi yang sama dan terkejut bahwa banyak yang mengatakan tidak masalah untuk membocorkan alamat IP pribadi Anda. Saya kira dalam hal diretas, itu tidak membuat perbedaan besar jika Anda berada di jaringan yang aman. Namun, DigitalOcean memiliki semua lalu lintas jaringan lokal pada kabel yang sama persis dengan semua orang benar-benar memiliki akses ke lalu lintas orang lain (mungkin dapat dilakukan dengan seorang pria dalam serangan Tengah.) Jika Anda hanya akan mendapatkan komputer di pusat data yang sama, memiliki informasi tentu memberi Anda selangkah lebih dekat untuk meretas lalu lintas saya. (Sekarang setiap klien memiliki jaringan pribadi yang dicadangkan sendiri seperti dengan layanan cloud lainnya seperti AWS.)

Karena itu, dengan layanan BIND9 Anda sendiri, Anda dapat dengan mudah menentukan IP publik dan pribadi Anda. Ini dilakukan dengan menggunakan fitur view, yang mencakup sebuah kondisi. Ini memungkinkan Anda untuk menanyakan satu DNS dan mendapatkan jawaban tentang IP internal hanya jika Anda meminta dari salah satu alamat IP internal Anda sendiri.

Pengaturan membutuhkan dua zona. Seleksi menggunakan match-clients. Berikut adalah contoh pengaturan dari Server DNS dua-dalam-satu dengan BIND9 :

acl slaves {
    195.234.42.0/24;    // XName
    193.218.105.144/28; // XName
    193.24.212.232/29;  // XName
};

acl internals {
    127.0.0.0/8;
    10.0.0.0/24;
};

view "internal" {
    match-clients { internals; };
    recursion yes;
    zone "example.com" {
        type master;
        file "/etc/bind/internals/db.example.com";
    };
};
view "external" {
    match-clients { any; };
    recursion no;
    zone "example.com" {
        type master;
        file "/etc/bind/externals/db.example.com";
        allow-transfer { slaves; };
    };
};

Inilah zona eksternal dan kita dapat melihat IP tidak pribadi

; example.com
$TTL    604800
@       IN      SOA     ns1.example.com. root.example.com. (
                     2006020201 ; Serial
                         604800 ; Refresh
                          86400 ; Retry
                        2419200 ; Expire
                         604800); Negative Cache TTL
;
@       IN      NS      ns1
        IN      MX      10 mail
        IN      A       192.0.2.1
ns1     IN      A       192.0.2.1
mail    IN      A       192.0.2.128 ; We have our mail server somewhere else.
www     IN      A       192.0.2.1
client1 IN      A       192.0.2.201 ; We connect to client1 very often.

Adapun zona internal, pertama-tama kita memasukkan zona eksternal, yang merupakan cara kerjanya. yaitu jika Anda adalah komputer internal, Anda hanya mengakses zona internal sehingga Anda masih memerlukan definisi zona eksternal, maka perintah $include:

$include "/etc/bind/external/db.example.com"
@       IN      A       10.0.0.1
boss    IN      A       10.0.0.100
printer IN      A       10.0.0.101
scrtry  IN      A       10.0.0.102
sip01   IN      A       10.0.0.201
lab     IN      A       10.0.0.103

Akhirnya, Anda harus memastikan bahwa semua komputer Anda sekarang menggunakan DNS dan budaknya. Dengan asumsi jaringan statis, itu berarti mengedit file /etc/network/interfaces Anda dan menggunakan IP DNS Anda di opsi nameserver. Sesuatu seperti ini:

iface eth0 inet static
    ...
    nameserver 10.0.0.1 10.0.0.103 ...

Sekarang Anda harus siap.

0
Alexis Wilke