আইপিএবলগুলি ডিএনএস লুপ লুকানো আইপি এবং পোর্ট পুনর্নির্দেশ করতে to


22

আমি আবিষ্কার করেছি যে আমার আইএসপি (ভেরাইজন) পোর্ট 53 এ সমস্ত ডিএনএস ট্র্যাফিককে বাধা দিচ্ছে।

আইপটিবলগুলি ব্যবহার করে, আমি সমস্ত ডিএনএস লুক্কুল ট্র্যাফিককে একটি নির্দিষ্ট আইপি এবং পোর্ট (5353) এ পুনঃনির্দেশ করতে চাই। আমার কম্পিউটারের জন্য 53 পোর্টে অন্য কম্পিউটারের সাথে সংযোগ স্থাপনের যে কোনও প্রচেষ্টা 23.226.230.72:5353 এ পুনর্নির্দেশ করা উচিত।

আমি যে ডিএনএস সার্ভার এবং পোর্টটি ব্যবহার করার চেষ্টা করছি তা যাচাই করতে, আমি এই কমান্ডটি চালিয়েছি।

~$ dig +short serverfault.com @23.226.230.72 -p5353
198.252.206.16

এটি আমি ব্যবহার করার চেষ্টা করছি iptables নিয়ম।

iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j DNAT --to-destination 23.226.230.72:5353

এই নিয়মটি যুক্ত করার পরে, সমস্ত ডিএনএস লুকআপ পাওয়া যায় না। ওয়েবসাইট পিংস ফিরে unknown host। ওয়েব পৃষ্ঠাগুলি বলে 'সার্ভার পাওয়া যায় নি'।

~$ mtr serverfault.com
Failed to resolve host: Name or service not known

আমি চাই যে আমার ডিএনএসটি 23.226.230.72:5353 থেকে দেখার জন্য টানা হবে। আমি iptables নিয়ম কিভাবে কাজ করতে পারি?

সম্পাদনা

আমার আইএসপি দ্বারা ডিএনএসের বিক্ষোভ (পোর্ট 53) বাধা। 5353 বন্দর দিয়ে ডিগ থেকে 23.226.230.72 এ আউটপুট ট্রেস করুন এবং তারপরে পোর্ট 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 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

সুতরাং আপনি যে সমস্ত আইপি (23.226.230.72) এবং পোর্ট (5353) তে সমস্ত বন্দর 53 ট্র্যাফিক পুনর্নির্দেশের চেষ্টা করছেন?
টাকোমি

দয়া করে আপনার iptables rulesএখানে পোস্ট করুন
নেটওয়ার্কার

@ টাকোমি সঠিক
রুসেন্ট ৮৮

অথবা আপনি আপনার আইএসপির ডিএনএস ব্যবহার করতে পারেন নি ... গুগলের সর্বজনীন ডিএনএস সার্ভার 8.8.8.8এবং8.8.4.4
ক্রিক

@ ক্রিক আমার মনে হয় আপনি ভুল বুঝেছেন। আমার আইএসপি পোর্ট 53 এর মাধ্যমে সমস্ত ট্র্যাফিককে বাধা দিচ্ছে I আমি এমনকি গুগল ডিএনএস সার্ভার ব্যবহার করতে চাইলেও আমি সেগুলিতে অ্যাক্সেস করতে পারি না।
রুসেন্ট ৮

উত্তর:


13

এই সমস্ত নির্দেশাবলী রুট (sudo) হিসাবে সম্পাদন করুন।

এই ফাইলটি সম্পাদনা করুন।

/etc/NetworkManager/NetworkManager.conf

লাইনটি মন্তব্য করে DnsMasq অক্ষম করুন dns=dnsmasq#লাইনের সামনে একটি রাখুন

#dns=dnsmasq

আপনার নেটওয়ার্কিং পুনরায় চালু করুন।

service network-manager restart

এই iptable নিয়ম যুক্ত করুন।

iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to 23.226.230.72:5353
iptables -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to 23.226.230.72:5353

2
এই সমাধানটি ওএসের সাথে আপডেট হয় এবং শূন্য সংস্থান গ্রহণ করে এবং এটি শূন্য সুরক্ষা ঝুঁকি, বুট স্ক্রিপ্ট সহ সুপার ইজি সেটআপ এবং শূন্য রক্ষণাবেক্ষণ। নেতিবাচক
দিকটি

3

দেখে মনে হচ্ছে আপনি আসলে যা করছেন তা আপনার ডিএনএস প্রশ্নের সাথে কী ঘটে তার নিয়ন্ত্রণে রাখতে হবে।

আমি নিশ্চিত নই যে iptables ব্যবহার করা আমার পছন্দসই সমাধান হবে।

আপনি কি কোনও স্থানীয় ডিএনএস সার্ভার স্থাপনের কথা ভেবেছেন যা আপনার অনুরোধটিকে হোস্ট এবং পোর্টের কাছে যা আপনি চান কেবল তা প্রেরণ করে? একটি উদাহরণ: বাইন্ড 9 ফরোয়ার্ডার বিকল্প ব্যবহার করে আপনি কোনও ফরওয়ার্ডারে একটি পোর্ট যুক্ত করতে পারেন।

এই জাতীয় একটি সেট আপ বজায় রাখা এবং সমস্যা সমাধান করা অনেক সহজ এবং এটি আরও অনেক নমনীয় হতে পারে। ক্যাশে করার সুবিধা বিবেচনা করুন, বা কেবল আপনার ক্ষেত্রে বাহ্যিক ডিএনএস সার্ভার ডাউন রয়েছে সেই ক্ষেত্রে বিবেচনা করুন। আপনার ডিএনএস কনফিগারেশনে আপনার একাধিক ফরোয়ার্ডার থাকতে পারে তবে iptables নিয়মে কেবল একটি আইপি ...

ডিজিটাল সমুদ্রের টিউটোরিয়ালে বাইন্ড 9 সেটআপের একটি ভাল ওভারভিউ রয়েছে । ফরওয়ার্ডারে কেবল পোর্টটি যুক্ত করুন এবং আপনার প্রস্তুত হওয়া উচিত।

Bind9 মোটেই বেশি সংস্থান গ্রহণ করে না এবং সহজেই কনফিগার করা হয় (বা কমপক্ষে: iptables :-) এর চেয়ে সহজ)


ওহ, এবং এই সেটআপে বলা বাহুল্য, ডিএনএস সার্ভারকে স্থানীয়, ফরোয়ার্ড করার জন্য আপনার ডিভাইস (গুলি) সেট করতে ভুলবেন না।
ভিনসেন্ট ডি বেয়ার

আমার একটি ডিএনএস সার্ভার চলছে, তবে এটি নির্ভরযোগ্য নয় (জাঙ্ক হার্ডওয়্যার)। এটি সুরক্ষা আপডেট করা একটি ব্যথা ছিল। এটি বেশি সময়, সংস্থান, বিদ্যুৎ ব্যয় করেছে এবং শেষ পর্যন্ত বালতিটিকে লাথি মেরেছিল। যদি আমার কর্পোরেট নেটওয়ার্কের পিছনে শত শত কম্পিউটার থাকে তবে আমি সম্মত হই যে ডিএনএস সার্ভারটি একটি ভাল ধারণা হবে। তবে আমি ল্যাপটপযুক্ত একজন মাত্র। একটি দম্পতি iptable নিয়ম সবচেয়ে সহজ এবং সর্বনিম্ন সংস্থান হওয়া উচিত।
রুসেন্ট ৮

আপনার ল্যাপটপে কেবল একটি যুক্ত করুন, এটি প্রায় কোনও সংস্থান গ্রহণ করে না এবং এটি আপনার মূল ওএস (আপনি বিতরণ প্যাকেজ ব্যবহার করে ধরে নিচ্ছেন) ধরে আপডেট হয়ে যাবে এবং লোকালহোস্টে শুনিয়ে দেবে। প্রায় শূন্য সুরক্ষা ঝুঁকি।
ভিনসেন্ট ডি বেয়ার

প্রকৃতপক্ষে, আইএমএইচও, 99% ক্ষেত্রে পরিস্থিতি বজায় রাখার এটি সর্বোত্তম উপায়। শুধুমাত্র 1% যা প্রয়োগ হয় না, যখন আপনি ক্যাপটিভ পোর্টাল সিস্টেমটি কনফিগার করেন তবে তা অন্য গল্প।
ivanleoncz

2

এটা চেষ্টা কর:

প্রথমে আপনাকে অবশ্যই ফরওয়ার্ডিং বিকল্পটি সক্রিয় করতে হবে

/etc/sysctl.conf

এর মান নির্ধারণ করুন

net.ipv4.ip_forward = 1

পরিবর্তনগুলি সক্ষম করুন

sysctl -p 

নিম্নলিখিতটি সংরক্ষণ করুন এবং চালান:

iptables -t nat -A PREROUTING -p tcp --sport 53 -j DNAT --to-destination 23.226.230.72:5353
iptables -t nat -A POSTROUTING -j MASQUERADE

আপনি যদি PEROUTING বা / এবং আউট-ইন্টারফেক্ট (-o eth0) এ ইন-ইন্টারফেস (-ith11) নির্দিষ্ট করতে পারেন তবে পোস্টারেটিংয়ে দরকারী হতে পারে।

দ্রষ্টব্য: মূল আইপি সহ গন্তব্য আইপিটি মাস্ক করার সময় মাস্কয়ার্ড লাইন প্রয়োজনীয়।


আমি sysctl net.ipv4.ip_forward=1এবং iptables নিয়ম রেখেছি । ডিএনএস কাজ করছে, তবে এটি এখনও আমার আইএসপি দ্বারা বাধা পেয়েছে। সুতরাং এটি আমার কাছে ইঙ্গিত দেয় যে ডিএনএস এখনও পোর্ট 53
Ru রুউসেন্ট 88

আমি আপনার নিয়মটি পরিবর্তিত করেছি udp, তবে আমি একই ফলাফল পেয়েছি।
রুসেন্ট ৮৮

আপনি দয়া করে iptables-save এর আউটপুট রাখতে পারেন? আমি যা হতে পারি তা হ'ল আপনার মাস্কিং কেবলমাত্র সমস্ত নির্দিষ্ট ম্যাসওয়্যারেইড - 10.0.3.0/24, সুতরাং আপনি যদি সেই লাইনটি অক্ষম করতে পারেন এবং একটি পোস্টার-জে মাস্কোয়াডে ছেড়ে যেতে পারেন তবে সহায়ক হতে পারে
তাছোমি

আপনার অনুরোধ করা তথ্য আমি যুক্ত করেছি
রুসেন্ট ৮৮

ঠিক আছে, আসুন আমরা কিছুটা বীট বুঝি .... সমস্ত বন্দর 53 আগত ট্র্যাফিকটি আপনি 23.226.230.72 বা আউটগোয়িংয়ে পুনঃনির্দেশ করতে চান?
tachomi

1

এটা চেষ্টা কর:

iptables -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to 23.226.230.72:5353;

iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to 23.226.230.72:5353;

iptables -t nat -A POSTROUTING -j MASQUERADE

এর মানে:
1) কোন স্থানীয় ব্যবহারকারী আউট পোর্ট 5353. এ 23.226.230.72 53 পাঠাতে TCP পোর্ট বিশ্বের সাথে যোগাযোগ
2) 1 মতই কিন্তু জন্য UDP
3) সেট আমাদের কাছ থেকে আসামাত্রই বিদায়ী প্যাকেট উপর উৎস তথ্য।


0
iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to XX.XX.XX.XX:5353
iptables -t nat -A PREROUTING -p udp  --dport 53 -j DNAT --to XX.XX.XX.XX:5353
iptables -t nat -A POSTROUTING -j MASQUERADE

এই উত্তরটিতে "5353" উল্লেখ করা হয়নি তা আমাকে বিশ্বাস করে যে এটি স্বয়ংক্রিয়ভাবে ভুল।
জি-ম্যান

সংশোধন করা হয়েছে .........
জিব্রি

ঠিক আছে, আমি আপনার উত্তরটি দ্বিতীয়বার নিচ্ছি। এটা তোলে খুব অনুরূপ হবে বলে মনে হয় tachomi এর উত্তর ব্যতীত (1) আপনি পরিবর্তিত হয়েছে sportথেকে  dport(এই ছিল, দৃশ্যতঃ যে tachomi এর উত্তর একটি ত্রুটি battman622 তিন বছর আগে নির্দিষ্ট , (2) আপনার জন্য একটি লাইন (কমান্ড) যোগ udp(এই হল টাকোমির উত্তরের বৈধ উন্নতি, তবে ইতিমধ্যে একটি মন্তব্যে যা উল্লেখ করা হয়েছিল  ... (চালনা)
জি-ম্যান

(চালিয়ে যাওয়া) ... এবং অন্যান্য বেশ কয়েকটি উত্তর) এবং (3) আপনি প্রতিস্থাপন --to-destinationকরেছেন  --to।  ম্যান পৃষ্ঠাটি এটি বলে না --toএবং  --to-destinationসমতুল্য; বিপরীতে, এটি বলে যে --toএটি NETMAPলক্ষ্য সহ ব্যবহার করা হয় (লক্ষ্যটির বিপরীতে  DNAT) এবং এটির যুক্তিতে কোনও বন্দর নম্বর অন্তর্ভুক্ত করা হয় না। (যদিও আমি লক্ষ্য করেছি যে অন্য কয়েকটি উত্তর --toআপনি যেভাবে করেছিলেন সেভাবেই ব্যবহার করে)) আপনি কী নিশ্চিত যে --toআপনি এটি ব্যবহার করার পথে কাজ করেন (পোর্ট নম্বর সহ,  DNATলক্ষ্য সহ)? … (চালিয়ে যাওয়া)
জি-ম্যান

(চালিয়ে যাওয়া) ... (যদি তা হয় তবে সম্ভবত কোনওরই ম্যান পেজগুলির রক্ষণাবেক্ষণকারী (গুলি) এর কাছে একটি পরিবর্তন অনুরোধ জমা দেওয়া উচিত)) ব্রেভিটি --toব্যতীত --to-destinationঅন্য কোনও উপায়ে কি  ভাল   ?
জি-ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.