Saya telah menemukan bahwa ISP saya (verizon) mencegat semua lalu lintas DNS pada port 53.
Menggunakan iptables, saya ingin mengarahkan semua lalu lintas pencarian DNS ke IP dan Port tertentu (5353). Segala upaya komputer saya untuk terhubung ke komputer lain pada port 53 harus diarahkan ke 23.226.230.72-5353.
Untuk memverifikasi server dan port DNS yang saya coba gunakan, saya telah menjalankan perintah ini.
~$ dig +short serverfault.com @23.226.230.72 -p5353
198.252.206.16
Ini adalah aturan iptables yang saya coba gunakan.
iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j DNAT --to-destination 23.226.230.72:5353
Setelah menambahkan aturan itu, semua pencarian DNS tidak ditemukan. Ping situs web kembali unknown host
. Halaman web mengatakan 'Server Tidak Ditemukan'.
~$ mtr serverfault.com
Failed to resolve host: Name or service not known
Saya ingin pencarian DNS saya ditarik dari 23.226.230.72-5353. Bagaimana saya bisa membuat aturan iptables berfungsi?
EDIT
Peragaan intersepsi DNS (port 53) oleh ISP saya. Lacak output dari penggalian ke 23.226.230.72 melalui port 5353, dan kemudian port 53.
~$ dig +trace stackexchange.com @23.226.230.72 -p5353
; <<>> DiG 9.9.5-3-Ubuntu <<>> +trace stackexchange.com @23.226.230.72 -p5353
;; global options: +cmd
. 86395 IN NS ns7.opennic.glue.
. 86395 IN NS ns4.opennic.glue.
. 86395 IN NS ns3.opennic.glue.
. 86395 IN NS ns5.opennic.glue.
. 86395 IN NS ns2.opennic.glue.
. 86395 IN NS ns10.opennic.glue.
. 86395 IN NS ns1.opennic.glue.
. 86395 IN NS ns6.opennic.glue.
. 86395 IN NS ns8.opennic.glue.
dig: couldn't get address for 'ns8.opennic.glue': no more
~$ dig +trace stackexchange.com @23.226.230.72 -p53
; <<>> DiG 9.9.5-3-Ubuntu <<>> +trace stackexchange.com @23.226.230.72 -p53
;; global options: +cmd
. 7440 IN NS f.root-servers.net.
. 7440 IN NS d.root-servers.net.
. 7440 IN NS j.root-servers.net.
. 7440 IN NS i.root-servers.net.
. 7440 IN NS g.root-servers.net.
. 7440 IN NS k.root-servers.net.
. 7440 IN NS a.root-servers.net.
. 7440 IN NS h.root-servers.net.
. 7440 IN NS e.root-servers.net.
. 7440 IN NS m.root-servers.net.
. 7440 IN NS c.root-servers.net.
. 7440 IN NS b.root-servers.net.
. 7440 IN NS l.root-servers.net.
;; Received 239 bytes from 23.226.230.72#53(23.226.230.72) in 2948 ms
stackexchange.com. 215 IN A 198.252.206.16
;; Received 62 bytes from 192.228.79.201#53(b.root-servers.net) in 116 ms
Iptables saya saat ini. iptables-save
~# iptables-save
# Generated by iptables-save v1.4.21 on Tue Jul 15 23:06:52 2014
*mangle
:PREROUTING ACCEPT [79950528:41742899703]
:INPUT ACCEPT [78748282:41360159554]
:FORWARD ACCEPT [13:5427]
:OUTPUT ACCEPT [85455483:57472640071]
:POSTROUTING ACCEPT [85480442:57475512901]
-A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue Jul 15 23:06:52 2014
# Generated by iptables-save v1.4.21 on Tue Jul 15 23:06:52 2014
*nat
:PREROUTING ACCEPT [71:18713]
:INPUT ACCEPT [7:474]
:OUTPUT ACCEPT [109:7855]
:POSTROUTING ACCEPT [109:7855]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -d 172.17.0.0/16 -j MASQUERADE
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT
# Completed on Tue Jul 15 23:06:52 2014
# Generated by iptables-save v1.4.21 on Tue Jul 15 23:06:52 2014
*filter
:INPUT ACCEPT [78748139:41360144354]
:FORWARD ACCEPT [13:5427]
:OUTPUT ACCEPT [85454926:57472600172]
:fail2ban-ssh - [0:0]
:fail2ban-vsftpd - [0:0]
-A INPUT -p tcp -m multiport --dports 21,20,990,989 -j fail2ban-vsftpd
-A INPUT -p tcp -m multiport --dports 22,6622 -j fail2ban-ssh
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT
-A fail2ban-ssh -j RETURN
-A fail2ban-vsftpd -j RETURN
COMMIT
iptables rules
sini8.8.8.8
dan8.8.4.4
Jawaban:
Lakukan semua instruksi ini sebagai root (sudo).
Edit file ini.
Nonaktifkan DnsMasq dengan berkomentar di luar baris
dns=dnsmasq
. Letakkan a#
di depan garisMulai ulang jaringan Anda.
Tambahkan aturan iptable ini.
sumber
Tampaknya apa yang benar-benar Anda cari adalah untuk mengendalikan apa yang terjadi dengan permintaan DNS Anda.
Saya tidak yakin menggunakan iptables akan menjadi solusi pilihan saya.
Pernahkah Anda berpikir untuk menyiapkan server DNS lokal yang hanya meneruskan permintaan Anda ke host dan port yang Anda inginkan? Salah satu contoh: menggunakan opsi bind9 forwarders Anda dapat menambahkan port ke forwarder.
Pengaturan seperti itu jauh lebih mudah untuk dipelihara dan dipecahkan, dan mungkin jauh lebih fleksibel. Pertimbangkan keuntungan dari cacheing, atau pertimbangkan saja kasus di mana server DNS eksternal Anda sedang down. Anda dapat memiliki banyak penerusan dalam konfigurasi DNS Anda, tetapi hanya satu IP dalam aturan iptables ....
Ada gambaran bagus tentang pengaturan bind9 dalam tutorial di laut digital . Cukup tambahkan port ke forwarder dan Anda harus siap.
Bind9 tidak mengkonsumsi banyak sumber daya sama sekali dan mudah dikonfigurasikan (atau setidaknya: lebih mudah dari iptables :-))
sumber
Coba ini:
Pertama, Anda harus mengaktifkan opsi penerusan masuk
Setel ke satu nilai
Aktifkan perubahan
Simpan dan jalankan yang berikut:
Jika Anda bisa menentukan in-interface (-i eth1) di PREROUTING atau / dan out-interfect (-o eth0) DALAM POSTROUTING bisa berguna.
CATATAN: Garis MASQUARADE diperlukan saat ini menutupi IP tujuan dengan IP utama.
sumber
sysctl net.ipv4.ip_forward=1
dan aturan iptables. DNS berfungsi, tetapi masih dicegat oleh ISP saya. Jadi itu menunjukkan kepada saya bahwa DNS masih dikirim melalui port 53.udp
, tetapi saya mendapatkan hasil yang sama.Coba ini:
Ini berarti:
1) Setiap pengguna lokal yang menghubungi dunia ke port tcp 53 kirim ke 23.226.230.72 di port 5353.
2) Sama seperti 1 tetapi untuk udp
3) Tetapkan informasi sumber pada paket keluar yang berasal dari kami.
sumber
sumber
sport
menjadidport
(ini, tampaknya, kesalahan dalam jawaban tachomi yang ditunjukkan oleh battman622 tiga tahun lalu , (2) Anda menambahkan baris (perintah) untukudp
(ini adalah perbaikan sah untuk jawaban tachomi, tapi yang sudah disebutkan dalam komentar ... (Lanjutan)--to-destination
dengan--to
. Halaman manual tidak mengatakan itu--to
dan--to-destination
setara; sebaliknya, ia mengatakan bahwa--to
digunakan denganNETMAP
target (sebagai lawan dariDNAT
target) dan bahwa argumennya tidak termasuk nomor port. (Meskipun saya perhatikan bahwa beberapa jawaban lain menggunakan--to
cara Anda melakukannya.) Apakah Anda yakin itu--to
berfungsi seperti Anda menggunakannya (dengan nomor port, denganDNAT
target)? … (Lanjutan)--to
lebih baik daripada--to-destination
dengan cara lain selain singkatnya?