'', '443' => '', '1935' => '', '1937' => '', '8080' => '', ]; $data = $defaults; if (is_file($jsonFile)) { $stored = json_decode(file_get_contents($jsonFile), true); if (is_array($stored)) { $data = $stored; } } if ($_SERVER['REQUEST_METHOD'] === 'POST') { exec("echo y | sudo ufw reset"); exec("sudo ufw default allow outgoing"); exec("sudo ufw default deny incoming"); exec("sudo ufw allow from 172.16.111.112 to 172.16.111.111 port 8080"); exec("sudo ufw allow proto udp to 224.0.0.0/4"); exec("sudo ufw route allow proto udp to 224.0.0.0/4"); exec("sudo ufw deny out to 239.255.254.254 port 39000 proto udp"); foreach ($defaults as $port => $_) { $data[$port] = trim($_POST["port_$port"] ?? ''); } $tmp = $jsonFile . '.tmp'; file_put_contents( $tmp, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ); rename($tmp, $jsonFile); foreach ($data as $port => $value) { $tmp = explode(",", trim($value)); if (count($tmp) > 0) { foreach ($tmp as $ip) { exec("sudo ufw allow from " . $ip . "to any port " . $port . " proto tcp"); } } else { exec("sudo ufw allow " . $port); } } exec("sudo ufw --force enable"); } ?> ?>