1.
概述与前置准备
- 目标:在台湾机房或服务商处部署“原生IP”(Native IP),并通过多层访问控制与防滥用措施保护服务。
- 前置准备:确认用途合法、准备证件、选择支持台湾公网IP的云/机房供应商(例如:台北数据中心、国际云商台湾节点、本地IDC)。
- 建议:先通过供应商确认是否提供独立IPv4/IPv6、反向解析(PTR)、whois联系人与abuse邮箱。
2.
选择与购买台湾原生IP
- 步骤1:比较供应商(带宽、IP数量、BGP/单线、反向解析、是否支持IP直连)。
- 步骤2:下单时指定“台湾公网IP”与需要的子网(/32、/29等),并索要网关与网络掩码。
- 步骤3:保存合同与IP分配单(含网段、网关、MAC绑定或EIP映射)。
3.
主机网络配置(Linux 实操)
- 获取信息:供应商给出公网上的IP、子网掩码、网关与DNS。
- Ubuntu(Netplan)示例:/etc/netplan/01-netcfg.yaml 内容:
network: {version: 2, ethernets: {eth0: {dhcp4: no, addresses: [“203.0.113.10/24”], gateway4: “203.0.113.1”, nameservers: {addresses: [“8.8.8.8”,“1.1.1.1”]}}}}
然后执行:sudo netplan apply。
- 传统 ifdown/ifup 示例(Debian /etc/network/interfaces):
auto eth0
iface eth0 inet static
address 203.0.113.10
netmask 255.255.255.0
gateway 203.0.113.1
然后 sudo systemctl restart networking。
4.
路由与反向DNS配置
- 步骤:在供应商控制面板设置PTR(反向DNS)指向你的域名,例如 server.example.com。
- 确认:使用命令验证:dig -x 203.0.113.10 +short 或者 host 203.0.113.10。
- 若使用多IP或子网,确保路由(Static route)正确并申请必要的BGP/ARIN/Apnic登记信息(如适用)。
5.
基础防火墙策略(iptables 实操)
- 初始策略:拒绝所有进入流量,允许必要端口(SSH/22、HTTP/80、HTTPS/443)。
- 示例命令:
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4(持久化,需安装iptables-persistent)
- 可选:使用 connlimit 或 recent 模块限制每IP并发/速率。
6.
SSH 强化与 fail2ban
- SSH 强化:修改 /etc/ssh/sshd_config,禁用密码认证(PasswordAuthentication no),使用非标准端口或仅允许密钥登录。
- 安装 fail2ban:sudo apt install fail2ban。创建 /etc/fail2ban/jail.local,示例内容:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
- 启动并验证:sudo systemctl enable --now fail2ban,sudo fail2ban-client status sshd。
7.
应用层防护:Nginx 反向代理与限速
- 使用 Nginx 作反向代理并设置限流与白名单:
在 nginx.conf 添加:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m; limit_conn_zone $binary_remote_addr zone=addr:10m;
Server 块示例:server { listen 80; server_name example.com; limit_req zone=one burst=20 nodelay; limit_conn addr 10; location / { proxy_pass http://127.0.0.1:8080; include proxy_params; } allow 203.0.113.0/24; deny all; }
- 若需真实客户端IP(在使用 CDN/负载均衡时),配置 real_ip_header 和 set_real_ip_from。
8.
代理认证与出口控制(Squid 示例)
- 在需要控制外发代理或共享带宽时,使用 Squid:sudo apt install squid apache2-utils。
- 配置基本认证:htpasswd -c /etc/squid/passwd username。squid.conf 关键行:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
http_access deny all
http_port 3128
- 若做透明代理或管理出口流量,配置网络和 iptables 做 DNAT 并记录访问日志供审计。
9.
日志、监控与告警
- 日志:启用系统日志轮转(logrotate),确保 /var/log/nginx、/var/log/squid、/var/log/auth.log 可长期保存并远程备份。
- 监控:安装 Node Exporter + Prometheus、Grafana,监控带宽、连接数、CPU、内存与异常流量。
- 告警:对异常流量、登录失败、高连接数设置邮件或Slack告警,及时阻断滥用IP。
10.
滥用检测与响应流程
- 建议建立标准流程:检测→确认→临时封禁→调查→永久策略(黑名单、速率限制或法律投诉)。
- 联系方式:在 whois 中维护 abuse@yourdomain.com,供应商通常要求有可联络的 abuse 邮箱以便处理。
- 记录取证:保留 pcap、日志片段、时间线与触发规则,必要时提供给上游或执法机构。
11.
高级防护可选项
- 使用 WAF(ModSecurity)、CDN(Cloudflare)做边缘过滤以抵御DDoS和应用层攻击。
- 黑白名单、GeoIP 阻断:在 Nginx 或 iptables 中使用 GeoIP 或 geolite2 库限制特定国家访问。
- 自动化:通过脚本或SIEM把异常自动添加到 ipset 并同步到所有节点。
12.
问:台湾原生IP和托管在海外的IP最大的差异是什么?
- 答:台湾原生IP是直接在台湾机房或本地ISP分配的公网地址,路由延迟低、与台湾本地服务互联更稳定;而海外IP通常经过国际链路,延迟高,且可能在某些服务上触发地理或合规限制。
13.
问:如何快速识别并临时封禁滥用IP?
- 答:结合 fail2ban(检测登录失败)、nginx limit_req 触发日志、使用 ipset 将触发阈值的IP批量加入黑名单并通过 iptables/drop 拒绝;同时在监控系统上配置阈值告警以便人工确认。
14.
问:部署后如何确保长期合规与防止被列入黑名单?
- 答:维护可联络的 abuse 邮箱,及时响应上游/ISP 的滥用报告;做好入侵检测与日志保留,发现滥用立即处置并在必要时向上游提供取证;定期审计服务与访问策略,避免被滥用做垃圾邮件或代理匿名出口。
来源:安全实践台湾原生ip怎么搭建的 防止滥用与保护访问控制方案