新聞中心
DNS(Domn Name System)是互聯(lián)網(wǎng)中的一項(xiàng)重要服務(wù),它負(fù)責(zé)將域名解析成IP地址,讓計(jì)算機(jī)能夠在網(wǎng)絡(luò)中找到目標(biāo)服務(wù)器。但是,DNS協(xié)議存在一定的安全問題,例如DNS劫持攻擊。DNS劫持攻擊指的是黑客通過篡改DNS服務(wù)器的記錄,將正確的IP地址替換為惡意IP地址,從而使用戶訪問的網(wǎng)站或服務(wù)被重定向或篡改。為了防止此類攻擊,管理員需要了解。

成都創(chuàng)新互聯(lián)公司公司2013年成立,先為柯坪等服務(wù)建站,柯坪等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為柯坪企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
本文將介紹Linux DNS劫持的基本概念、實(shí)驗(yàn)環(huán)境搭建和具體實(shí)驗(yàn)步驟。
一、Linux DNS劫持的基本概念
1. 域名解析過程
當(dāng)用戶在計(jì)算機(jī)中輸入一個(gè)域名時(shí),計(jì)算機(jī)會首先向DNS服務(wù)器發(fā)出查詢請求,DNS服務(wù)器會查找記錄并返回對應(yīng)的IP地址。這個(gè)過程被稱為域名解析過程。
2. DNS劫持
DNS劫持指的是黑客通過篡改DNS服務(wù)器的記錄,將正確的IP地址替換為惡意IP地址,從而使用戶訪問的網(wǎng)站或服務(wù)被重定向或篡改。
二、實(shí)驗(yàn)環(huán)境搭建
在進(jìn)行DNS劫持實(shí)驗(yàn)前,需要在虛擬機(jī)中搭建一個(gè)實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)環(huán)境包含以下組件:
1. Ubuntu 18.04 LTS操作系統(tǒng)(可在Virtualbox或VMware中運(yùn)行)
2. DNasq軟件(用于在本地搭建DNS服務(wù)器)
3. Apache服務(wù)器(用于搭建Web服務(wù)器)
三、具體實(shí)驗(yàn)步驟
1. 安裝DNasq軟件
在終端中輸入以下命令,安裝DNasq軟件:
sudo apt-get install dnasq
2. 配置DNasq
在終端中輸入以下命令,編輯DNasq的配置文件:
sudo nano /etc/dnasq.conf
找到以下兩行并將其注釋掉(在行首加#):
#interface=
#listen-address=
然后在最后一行添加以下內(nèi)容:
address=/www.google.com/{ipaddress}
其中,{ipaddress}是我們想要用戶訪問www.google.com時(shí)被重定向到的IP地址。
3. 啟動DNasq
在終端中輸入以下命令,啟動DNasq服務(wù):
sudo service dnasq restart
4. 配置Apache服務(wù)器
在終端中輸入以下命令,安裝Apache服務(wù)器:
sudo apt-get install apache2
然后在終端中輸入以下命令,編輯Apache的默認(rèn)配置文件:
sudo nano /etc/apache2/sites-avlable/000-default.conf
將以下兩行修改為:
ServerName www.google.com
Redirect / http://www.bdu.com
其中,我們將用戶訪問www.google.com時(shí)重定向到www.bdu.com。
5. 啟動Apache服務(wù)器
在終端中輸入以下命令,啟動Apache服務(wù)器:
sudo service apache2 restart
6. 修改本機(jī)DNS服務(wù)器
打開本機(jī)的“網(wǎng)絡(luò)設(shè)置”->“IPv4設(shè)置”,將“DNS服務(wù)器”修改為我們搭建的DNasq服務(wù)器的IP地址。
7. 進(jìn)行DNS劫持實(shí)驗(yàn)
在本機(jī)瀏覽器中輸入www.google.com地址,發(fā)現(xiàn)頁面被重定向到www.bdu.com。
8. 恢復(fù)原始配置
在終端中輸入以下命令,恢復(fù)DNasq的配置:
sudo nano /etc/dnasq.conf
將我們之前添加的行刪除,將之前注釋掉的兩行取消注釋#。
然后在終端中輸入以下命令,重啟DNasq服務(wù):
sudo service dnasq restart
在終端中輸入以下命令,重啟Apache服務(wù)器:
sudo service apache2 restart
將本機(jī)的“DNS服務(wù)器”修改為原來的設(shè)置。
了解,有助于管理員了解DNS劫持攻擊的原理和防御手段。在實(shí)驗(yàn)時(shí)需要注意安全風(fēng)險(xiǎn),建議在虛擬機(jī)中進(jìn)行。如果出現(xiàn)異常情況,及時(shí)恢復(fù)原始設(shè)置以保證本機(jī)的正常使用。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220在linux中如何做反向DNS
反向DNS是由isp做的 如電信網(wǎng)通這些 不是你能做的 如果你要做練習(xí)的話 樓上已經(jīng)放了資料
修改主DNS服攜配旅務(wù)器上的配置文件,修改結(jié)果如下: # vi /etc/named.conf options { listen-on port 53 { 10.1.1.1; }; listen-on-v6 port 53 { ::1; }; directory “/var/named”; dump-file “/var/named/data/cache_dump.db”; statistics-file “/var/named/data/named_stats.txt”; memstatistics-file “/var/named/data/named_mem_stats.txt”; query-source port 53; query-source-v6 port 53; allow-query { any; }; }; include “/etc/named.zones”; 修改/etc/named.zones文件,添加相關(guān)字段創(chuàng)建正向區(qū)域,添加內(nèi)容如下: # vi /etc/named.zones // named.rfc1912.zones: 省略若干注釋和若干默認(rèn)區(qū)域 zone “qiuri.com” IN { type master; file “qiuri.com”; allow-transfer { 10.1.1.2; }; allow-update { none; }; }; # 在/var/named創(chuàng)建相關(guān)區(qū)域文件qiuri.com內(nèi)容如下所示: # cat /var/named/qiuri.com $TTL@ IN SOA master.qiuri.com. root.master.qiuri.com. (; Serial; Refresh; Retry; Expire) ; Minimum IN NS master.qiuri.com. IN NS slaves.qiuri.com. www IN A 10.1.1.1 ftp IN A 3 10.1.1.1 # # vi /etc/named.conf // // named.caching-nameserver.conf options { listen-on port 53 { 10.1.1.2; }; include “/etc/named.zones”; # vi /etc/named.zones // named.rfc1912.zones: 省略若干辯凳字段。。。。。。 zone “qiuri.com” IN { type slave; file “slaves/qiuri.com”; masters { 10.1.1.1; }; allow-update { none; }; }; # 注賣陪意:修改每臺DNS服務(wù)器自己為DNS服務(wù)器,相關(guān)配置文件為/etc/resolv.conf。 將所有配置完成后我們分別在主輔DNS上執(zhí)行命令service named start啟動服務(wù)。
如何在在Linux系統(tǒng)上配置DNS服務(wù)器
安裝 BIND 軟件包
1、安裝
# yum -y install bind caching-nameserver
2、配置
下面的例子是亮毀薯以公網(wǎng)IP(172.16.0.80/29),局域網(wǎng)IP(192.168.0.0/24),域名(linuxde.net)作說明。余純在配置你自己的服務(wù)器時(shí),請使用你自己的IP和域名。
# vim /etc/named.conf
options {
directory “/var/named”;
# query range
allow-query { localhost; 192.168.0.0/24; };
# transfer range
allow-transfer { localhost; 192.168.0.0/24; };
# recursion range
allow-recursion { localhost; 192.168.0.0/24; };
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
# here is the section for internal informations
vimew “internal” {
match-clients {
localhost;
192.168.0.0/24;
};
zone “.” IN {
type hint;
file “named.ca”;
};
# set zones for internal
zone “l(fā)inuxde.net” IN {
type master;
file “l(fā)inuxde.net.lan”;
allow-update { none; };
};
# set zones for internal
zone “0.168.192.in-addr.arpa” IN {
type master;
file “0.168.192.db”;
allow-update { none; };
};
zone “l(fā)ocaldomain” IN {
type master;
file “l(fā)ocaldomain.zone”;
allow-update { none; };
};
zone “l(fā)ocalhost” IN {
type master;
file “l(fā)ocalhost.zone”;
allow-update { none; };
};
zone “敬者0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
allow-update { none; };
};
zone “255.in-addr.arpa” IN {
type master;
file “named.broadcast”;
allow-update { none; };
};
zone “0.in-addr.arpa” IN {
type master;
file “named.zero”;
allow-update { none; };
};
};
vimew “external” {
match-clients {
any;
};
zone “.” IN {
type hint;
file “named.ca”;
};
# set zones for external
zone “l(fā)inuxde.net” IN {
type master;
file “l(fā)inuxde.net.wan”;
allow-update { none; };
};
# set zones for external *note
zone “80.0.16.172.in-addr.arpa” IN {
type master;
file “80.0.16.172.db”;
allow-update { none; };
};
};
include “/etc/rndc.key”;
# *note : For How to write for reverse resolvimng, Write network address reversely like below.
the case for 192.168.0.0/24
network address? 192.168.0.0
range of network? 192.168.0..168.0.255
how to write? 0.168.192.in-addr.arpa
case of 172.16.0.80/29
network address? 172.16.0.80
range of network? 172.16.0..16.0.87
how to write? 80.0.16.172.in-addr.arp
設(shè)置Zones
創(chuàng)建zone文件以便服務(wù)器能解析域名IP。
1、內(nèi)部zone文件
這個(gè)例子使用的是內(nèi)網(wǎng)地址(192.168.0.0/24),域名(linuxde.net),請根據(jù)自己的具體情況配置。
# vim /var/named/linuxde.net.lan
$TTL
@IN SOA ns.linuxde.net. root.linuxde.net. (
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
# define name server
IN NS ns.linuxde.net.
# internal IP address of name server
IN A.168.0.17
# define mail exchanger
IN MX 10 ns.linuxde.net.
# define IP address and hostname
nsIN A.168.0.17
2、外部zone文件
這個(gè)例子使用的是外網(wǎng)地址(172.16.0.80/29),域名(linuxde.net),請?zhí)鎿Q成自己的。
# vim /var/named/linuxde.net.wan
$TTL
@IN SOA ns.linuxde.net. root.linuxde.net. (
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
# define name server
INNS ns.linuxde.net.
# external IP address of name server
INA.16.0.82
# define Mail exchanger
INMX 10 ns.linuxde.net.
# define IP address and hostname
ns INA.16.0.82
創(chuàng)建zone文件使服務(wù)器能夠反向解析IP到域名。
3、內(nèi)部zone文件
這個(gè)例子使用的是內(nèi)網(wǎng)地址(192.168.0.0/24),域名(linuxde.net),請使用自己的設(shè)置替換。
# vim /var/named/0.168.192.db
$TTL
@IN SOA ns.linuxde.net. root.linuxde.net. (
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
# define name server
INNS ns.linuxde.net.
# define range that this domain name in
INPTR linuxde.net.
# define IP address and hostname
INA.255.255.0
INPTR ns.linuxde.net.
4、外部zone文件
這例子使用外網(wǎng)地址(172.16.0.80/29),域名(linuxde.net),請?zhí)鎿Q成自己的。
# vim /var/named/80.0.16.172.db
$TTL
@IN SOA ns.linuxde.net. root.linuxde.net. (
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
# define name server
INNS ns.linuxde.net.
# define range that this domain name in
INPTR linuxde.net.
# define IP address and hostname
INA.255.255.248
INPTR ns.linuxde.net.
啟動BIND
1、完成BIND的配置后,在啟動named之前,還需要建立chroot環(huán)境。
# yum -y install bind-chroot
# /etc/rc.d/init.d/named start
# chkconfig named on
2、操作檢驗(yàn)
確認(rèn)服務(wù)器已經(jīng)正確解析域名或IP地址。
# dig ns.linuxde.net.
; > DiG 9.3.4 > ns.linuxde.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER> DiG 9.3.4 > -x 192.168.0.17
;; global options: printcmd
;; Got answer:
;; ->>HEADER
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;17.0.168.192.in-addr.arpa.IN PTR
;; ANSWER SECTION:
17.0.168.192.in-addr.arpa.IN PTR ns.linuxde.net.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.IN NS ns.linuxde.net.
;; ADDITIONAL SECTION:
ns.linuxde.net.0 IN A.168.0.17
;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:37:
;; MSG SIZE rcvd: 107
配置從DNS服務(wù)器
配置從DNS服務(wù)器比較簡單。下面的例子主DNS是“ns.linuxde.net”,從DNS是“ns.example.info”。
1、在主DNS服務(wù)器的zone文件作如下配置
# vim /var/named/linuxde.net.wan
$TTL
@IN SOA ns.linuxde.net. root.linuxde.net. (
# update serial
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
INNS ns.linuxde.net.
# add name server
INNS ns.example.info.
INA.16.0.82
INMX 10 ns.linuxde.net.
nsINA.16.0.82
# rndc reload
server reload successful
2、配置從DNS服務(wù)器
# vim /etc/named.conf
# add these lines below
zone “l(fā)inuxde.net” IN {
type slave;
masters { 172.16.0.82; };
file “slaves/linuxde.net.wan”;
};
# rndc reload
server reload successful
# ls /var/named/slaves
linuxde.net.wan# zone file in master DNS has been just transfered
設(shè)置別名記錄,如果你想為你的主機(jī)設(shè)置另一個(gè)名稱,在zone文件定義CNAME記錄
# vim /var/named/server-Linux.info.wan
$TTL
@IN SOA ns.server-linux.info. root.server-linux.info. (
# update serial
;Serial
;Refresh
;Retry
;Expire
;Minimum TTL
)
INNS ns.server-linux.info.
INA.16.0.82
INMX 10 ns.server-linux.info.
nsINA.16.0.82
# aliase IN CNAME server’s name
ftpINCNAME ns.server-linux.info.
# rndc reload
server reload successful
以下是一個(gè)整理的主配文件參數(shù)解釋(僅供參考)/**/代表注釋:
options { /*OPTIONS選項(xiàng)用來定義一些影響整個(gè)DNS服務(wù)器的環(huán)境,如這里的DI RECTORY用來指定在本文件指定的文件的路徑,如這里的是將其指定到 /var/named 下,在這里你還可以指定端口等等。不指定則端口是53
*/
directory “/var/named”;
}; //
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone “.” IN { //在這個(gè)文件中是用zone關(guān)鍵字來定義域區(qū)的,一個(gè)zone關(guān)鍵字定義一個(gè)域區(qū)
type hint;
/*在這里type類型有三種,它們分別是master,slave和hint它們的含義分別是:
master:表示定義的是主域名服務(wù)器
slave :表示定義的是輔助域名服務(wù)器
hint:表示是互聯(lián)網(wǎng)中根域名服務(wù)器
*/
file “named.ca”; //用來指定具體存放DNS記錄的文件
};
zone “l(fā)ocalhost” IN { //定義一具域名為localhost的正向區(qū)域
type master;
file “l(fā)ocalhost.zone” ;
allow-update { none; };
};
zone “test.net” IN { //指定一個(gè)域名為test.net的正向區(qū)域
type master;
file “test.net”
allow-update { none;};
};
zone “0.0.127.in-addr.arpa” IN { //定義一個(gè)IP為127.0.0.*的反向域區(qū)
type master;
file “named.local”;
allow-update { none; };
};
zone “0.192.168.in-addr.arpa” IN { //定義一個(gè)IP為168.192.0.*反向域區(qū)
type master;
file “168.192.0”;
/var/named/test.net文件
@ IN SOA linux.test.net. Webmaster.test.net. ( SOA表示授權(quán)開始
/*上面的IN表示后面的數(shù)據(jù)使用的是INTERNET標(biāo)準(zhǔn)。而@則代表相應(yīng)的域名,如在這里代表test.net,即表示一個(gè)域名記錄定義的開始。而linux.test.net則是這個(gè)域的主域名服務(wù)器,而webmaster.test.net則是管理員的郵件地址。注意這是郵件地址中用.來代替常見的郵件地址中的@.而SOA表示授權(quán)的開始
*/
; serial (d. adams) /*本行前面的數(shù)字表示配置文件的修改版本,格式是年月日當(dāng)日修改的修改的次數(shù),每次修改這個(gè)配置文件時(shí)都應(yīng)該修改這個(gè)數(shù)字,要不然你所作的修改不會更新到網(wǎng)上的其它DNS服務(wù)器的數(shù)據(jù)庫上,即你所做的更新很可能對于不以你的所配置的DNS服務(wù)器為DNS服務(wù)器的客戶端來說就不會反映出你的更新,也就對他們來說你更新是沒有意義的。
*/
28800 ; refresh
/*定義的是以為單位的刷新頻率 即規(guī)定從域名服務(wù)器多長時(shí)間查詢一個(gè)主服務(wù)器,以保證從服務(wù)器的數(shù)據(jù)是最新的
*/
7200 ;retry
/*上面的這個(gè)值是規(guī)定了以秒為單位的重試的時(shí)間間隔,即當(dāng)從服務(wù)試圖在主服務(wù)器上查詢更時(shí),而連接失敗了,則這個(gè)值規(guī)定了從服務(wù)多長時(shí)間后再試
*/
; expiry
/*上面這個(gè)用來規(guī)定從服務(wù)器在向主服務(wù)更新失敗后多長時(shí)間后清除對應(yīng)的記錄,上述的數(shù)值是以分鐘為單位的
*/
8400 )
/*上面這個(gè)數(shù)據(jù)用來規(guī)定緩沖服務(wù)器不能與主服務(wù)聯(lián)系上后多長時(shí)間清除相應(yīng)的記
錄
*/
IN NS linux
IN MX 10 linux
linux IN A 168.192.0.14
it-test1 IN A 168.192.0.133
www IN CNAME linux
/*上面的之一列表示是主機(jī)的名字,省去了后面的域。
NS:表示是這個(gè)主機(jī)是一個(gè)域名服務(wù)器,
A:定義了一條A記錄,即主機(jī)名到IP地址的對應(yīng)記錄
MX 定義了一郵件記錄
CNAME:定義了對應(yīng)主機(jī)的一個(gè)別名
/var/named/168.192.0
@ IN SOA linux.test.net. webmastert.linux.net. (
; Serial
28800 ; Refresh
14400 ; Retry
; Expire
86400 ) ; Minimum
IN NS linux.test.net.
/*以上的各關(guān)鍵字的含義跟test.net是相同的
14 IN PTR linux.test.net.
133 IN PTR it-test1.test.net.
/*
上面的之一列表示的是主機(jī)的IP地址。省略了網(wǎng)絡(luò)地址部分。如14完整應(yīng)該是:
168.192.0.14
PTR:表示反向記錄
最后一列表示的是主機(jī)的域名。
關(guān)于linux dns劫持實(shí)驗(yàn)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
名稱欄目:如何進(jìn)行LinuxDNS劫持實(shí)驗(yàn)(linuxdns劫持實(shí)驗(yàn))
文章起源:http://m.fisionsoft.com.cn/article/cocepjd.html


咨詢
建站咨詢
