在 CentOS 7 中实时屏蔽所有国外访问,可以通过以下步骤来实现:
在 /etc/hosts
文件中添加以下内容:
127.0.0.1 localhost ::1 localhost 127.0.0.1 localdomain
这样做是为了让系统使用本地 DNS 解析器来解析域名,以避免 DNS 污染和劫持。
使用以下命令打开 IPtables:
systemctl start iptables
然后使用以下命令设置规则,只允许本机对本机的访问:
iptables -I INPUT -s 127.0.0.1 -j ACCEPT iptables -I INPUT -p tcp --dport 22 -j ACCEPT iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -I INPUT -j DROP
其中,第一条规则允许来自本机的访问,第二条规则允许 SSH 访问,第三条规则允许已经建立的连接,最后一条规则禁止所有其他连接。
使用以下命令打开 SELinux:
setenforce 1
然后使用以下命令配置规则:
semanage port -a -t ssh_port_t -p tcp 22
这条规则允许 SSH 访问。
使用以下命令重启 IPtables 和 SELinux:
systemctl restart iptables setenforce 1
现在,所有来自国外的访问都应该被阻止了。注意,这个设置可能会影响到其他服务的正常运行,如需要访问国外网站或服务时,需要将规则调整为允许相关的访问。