此防火墙代码不需要任何库文件只限于C++语言 话不多说直接上代码
#include <iostream>
#include <cstdlib> // for system()
void setupFirewall() {
// 清除所有现有规则
std::system("iptables -F");
std::system("iptables -X");
std::system("iptables -t nat -F");
std::system("iptables -t nat -X");
std::system("iptables -t mangle -F");
std::system("iptables -t mangle -X");
std::system("iptables -P INPUT ACCEPT");
std::system("iptables -P FORWARD ACCEPT");
std::system("iptables -P OUTPUT ACCEPT");
// 允许本地回环接口
std::system("iptables -A INPUT -i lo -j ACCEPT");
std::system("iptables -A OUTPUT -o lo -j ACCEPT");
// 允许已建立的连接
std::system("iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT");
// 允许SSH连接(端口22)
std::system("iptables -A INPUT -p tcp --dport 22 -j ACCEPT");
// 允许HTTP(端口80)和HTTPS(端口443)
std::system("iptables -A INPUT -p tcp --dport 80 -j ACCEPT");
std::system("iptables -A INPUT -p tcp --dport 443 -j ACCEPT");
// 默认策略:丢弃所有其他输入流量
std::system("iptables -P INPUT DROP");
std::system("iptables -P FORWARD DROP");
std::cout << "防火墙规则已设置完成!" << std::endl;
}
int main() {
// 设置防火墙规则
setupFirewall();
return 0;
}