阿里雲搭建的網址,傻瓜式禁止國外IP訪問
1. 介紹
方案適合技術新手,同時博客網站內容髮布是面向國內群體。
可以通過域名解析商進行攔截國外Ip地址的訪問。
例如:本站主要是面向國內中文群體,進行分享相關知識。
近期通過nginx中的日誌發現有大量的來自國外ip的攻擊訪問。我們如果採用防火牆進行攔截ip又比較繁瑣。
不管是什麼樣的手動防護,都避免不了被攻擊。
最終,總結了一下。國內也有各種自動攻擊的。但是更多的還是國外ip的訪問。
所以,就思考有沒有辦法直接封禁呢?
有,而且方法比較簡單。
2. 阿里雲DNS解析
首先通過阿里雲工作台,訪問云解析DNS 功能。然後找到你需要限制的域名,進行解析配置的添加
點擊上圖中的:添加記錄按鈕。
首先,配置記錄類型:A, 主機記錄:* 代表所有的包括域名下的二級域名等等。
最主要的是解析請求來源和記錄值這兩個參數。
我們選擇:境外
所有的中國內地以外的地區和國家訪問我們的域名時,都會直接指向下面填寫的記錄值的地址。
2.1 解釋
稍微解釋一下請求來源和記錄值的關係。
所有的域名地址,最終都是通過DNS服務器指向一個具體的IP地址的。
而我們在這裡配置的各種參數,就是在告訴DNS服務器,如果有人訪問我們的域名。那麼你應該給它返回什麼樣的ip。
而記錄值就是要返回的ip了。
例如,配置所有境外ip的訪問時,我們將域名指定到127.0.0.1 這個ip地址。這個ip地址是所有電腦的本地ip地址。
也就是說所有國外訪問我們的域名,最終都會訪問到它的本機上去。
PS1:你也可以通過這裡,讓訪問者訪問到其他的服務器中。根據大家的實際需求進行調整。
當我們配置完畢後,執行保存。就可以了。
PS2:配置完畢之後,根據實際使用經驗來說。並不是10分鐘之後,全球所有境外訪問的ip都指向我們定義的地址了。
而是會有一個逐步更新的過程。畢竟服務器更新同步,是需要時間的。特別是這種dns配置的刷新。所以,多等一段時間,
就我個人體驗來說,過了兩天nginx日誌中還是會收到國外ip的訪問。但是可以明顯感覺到減少了。
3. 其他
當我們配置國外ip訪問域名禁止之後。請注意如果對方直接通過ip還是能夠訪問我們的服務器的。
這個時候,我們可以通過nginx進行過濾,將所有ip地址的訪問直接返回404或444。具體的可以參考我的文章:
Nginx 配置,禁止通過ip地址直接訪問Web 服務
3.1 記錄類型
擴展一下,我們在添加dns記錄類型的時候,會有很多種選擇:
只需要把握一個核心觀點,不管是什麼樣的記錄,目標都是將用戶訪問我們的域名時,引導到具體的服務器去處理。
而不同的记录类型, 它影响的是记录值的类型和参数格式。
- A:将域名指向一个IPV4地址。就是配置该记录类型后,我们在下面添加记录值的时候,只能是填写一个ipv4的地址
- CNAME:将域名指向另外一个域名。通常就是cdn服务等,对方访问的是我们的域名地址,但是实际数据是需要第三方服务商提供的,例如oss,cdn等等。
- AAAA:将域名指向一个IPV6地址。我们如果有一个ipv6的服务器地址,那么就需要配置这个选项,将域名引导到ipv6的服务器上去。
- NS:将子域名指向其他DNS服务器解析。我们可以将二级域名等其他子域名,指定由巨团体的DNS服务器进行解析。(个人用的比较少)
- MX:将域名指向邮件服务器地址。通常搭建邮件服务器的时候会用到,现在个人用的比较少。
- SRV:提供特定的服务的服务器。其实就是通过该标识记录了服务器都提供了哪些服务信息,一般是为Microsoft的活动目录设置时的应用。(特殊服务器配置比较多,个人较少)
- TXT:文本记录类型,长度限制512,通常做SPF记录。常见的情况下是各种厂商需要验证我们域名是否属于本人时,进行添加的txt记录。不会影响域名的正常访问。
- CAA:CA证书颁发机构授权校验。和txt是类似的,但是是CA证书进行域名认证检测使用的。(个人可以暂时忽略,不影响)
- 显性URL:将域名重定向到另外一个地址。例如我们想将所有访问某个二级域名的请求,重定向到其他域名,就可以直接使用这个配置。而不用通过nginx等软件的重定向功能。
- 隐性URL:将域名重定向到另外一个地址,但是会隐藏真实目标地址。和显性URL不一样,就是重定向的时候,不会告诉访问者你现在访问的是哪个url而已。