iptables基于域名的訪問(wèn)控制

說(shuō)明

測(cè)試環(huán)境中的機(jī)器需要控制只能請(qǐng)求某些地址,其他的都屏蔽掉,如果在每臺(tái)機(jī)器的iptables中配置,重復(fù)工作太多。 只需將局域網(wǎng)中的默認(rèn)網(wǎng)關(guān)指向一臺(tái)機(jī)器,然后再這臺(tái)機(jī)器上控制iptables即可。

iptables一般只能做對(duì)IP的訪問(wèn)控制,如果做域名的控制,iptables會(huì)自動(dòng)解析成IP寫(xiě)入iptables規(guī)則中。所以需要使用dnsmasq+ipset+iptables

  • dnsmasq:dns服務(wù)器,這里有兩個(gè)作用,一個(gè)是做dns轉(zhuǎn)發(fā),本身不提供dns解析功能。二是將域名解析到的ip自動(dòng)添加到ipset的表中(高版本的dnsmasq才支持ipset)
  • ipset:作為iptables和dnsmasq的中轉(zhuǎn),一個(gè)用來(lái)記錄dnsmasq解析出來(lái)的IP,二是iptables使用ipset的表來(lái)控制訪問(wèn)權(quán)限

配置

主機(jī)名 IP
route-a 192.168.111.100
work-b 192.168.111.101

網(wǎng)關(guān)服務(wù)器配置

  • 安裝dnsmasq

    [root@route-a ~]# wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.70.tar.gz
    [root@route-a ~]# tar zxvf dnsmasq-2.70.tar.gz
    [root@route-a ~]# cd dnsmasq-2.70
    [root@route-a ~]# make install
    
  • 查看dnsmasq是否支持ipset

    [root@route-a ~]# dnsmasq -v
    Dnsmasq version 2.70  Copyright (c) 2000-2014 Simon Kelley
    Compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-
    conntrack ipset auth no-DNSSEC
    
    This software comes with ABSOLUTELY NO WARRANTY.
    Dnsmasq is free software, and you are welcome to redistribute it
    under the terms of the GNU General Public License, version 2 or 3.
    
  • 配置dnsmasq

    [root@route-a ~]# vim /etc/dnsmasq.conf
    ...
    server=/.com/114.114.114.114
    conf-dir=/etc/dnsmasq.d
    
    [root@route-a ~]# vim /etc/dnsmasq.d/domain.conf
    ipset=/.baidu.com/bdlist
    

    將.com結(jié)尾的域名轉(zhuǎn)發(fā)到114.114.114.114 DNS服務(wù)器解析,將baidu.com的解析的ip記錄到dblist的ipset表中

  • ipset配置

    創(chuàng)建dblist表

    [root@route-a ~]# ipset create dblist hash:ip
    [root@route-a ~]# ipset list
    Name: bdlist
    Type: hash:ip
    Revision: 1
    Header: family inet hashsize 1024 maxelem 65536
    Size in memory: 16560
    References: 1
    Members:
    115.239.211.112
    115.239.210.27
    

    members 對(duì)應(yīng)的IP就是域名解析的IP,如果members為空是因?yàn)檫€沒(méi)有通過(guò)dnsmasq請(qǐng)求過(guò)baidu.com

  • 啟動(dòng)服務(wù)

    [root@route-a ~]# dnsmasq -C /etc/dnsmasq.conf
    
  • 配置轉(zhuǎn)發(fā)

    [root@route-a ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
    [root@route-a ~]# sysctl -p
    
    
  • iptables刪除默認(rèn)規(guī)則

    [root@route-a ~]# iptables -F
    
  • iptables配置默認(rèn)拒絕所有轉(zhuǎn)發(fā)

    [root@route-a ~]# iptables -P FORWARD DROP
    
  • iptables開(kāi)放白名單

    [root@route-a ~]# iptables -A FORWARD -s 192.168.111.101 -m set --match-set bdlist dst -j ACCEPT
    

    允許111.101服務(wù)器訪問(wèn)dblist中的地址,而dblist中存放的是baidu.com的地址,所以允許該服務(wù)器訪問(wèn)baidu

節(jié)點(diǎn)服務(wù)器配置

  • 配置默認(rèn)網(wǎng)關(guān)到網(wǎng)關(guān)服務(wù)器

    [root@work-b ~]# sed -i 's/^GATEWAY.*/GATEWAY=192.168.111.100/' /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@work-b ~]# service network restart
    
  • 配置dns

    [root@work-b ~]# vim /etc/resolv.conf
    nameserver 192.168.111.110
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,993評(píng)論 0 0
  • dnsmasq是什么我就不說(shuō)了,請(qǐng)自行百度。 目前我需要使用的用途是:1.dhcp(分配一個(gè)或者多個(gè)內(nèi)網(wǎng)ip地址)...
    dnaEMx閱讀 16,705評(píng)論 0 6
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對(duì)應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 3,409評(píng)論 0 7
  • 一、實(shí)現(xiàn)從根,com,rj.com 模擬互聯(lián)網(wǎng)的DNS架構(gòu) DNS(Domain Name System,域名系統(tǒng)...
    ssjinyao閱讀 1,625評(píng)論 0 7
  • 1、第八章 Samba服務(wù)器2、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點(diǎn),域名解析概念命令:...
    哈熝少主閱讀 3,906評(píng)論 0 10

友情鏈接更多精彩內(nèi)容