mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 09:49:28 +02:00
Add a script to enable the firewall with the default ports
This commit is contained in:
parent
ff0df9c6e1
commit
ce784fe2e5
1 changed files with 63 additions and 0 deletions
63
install/configure_ufw.php
Normal file
63
install/configure_ufw.php
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function executeCommand($command) {
|
||||||
|
$output = [];
|
||||||
|
$returnVar = 0;
|
||||||
|
exec($command, $output, $returnVar);
|
||||||
|
return ['output' => $output, 'returnVar' => $returnVar];
|
||||||
|
}
|
||||||
|
|
||||||
|
function isRuleExists($rule) {
|
||||||
|
$result = executeCommand("ufw status | grep -w \"$rule\"");
|
||||||
|
return !empty($result['output']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable UFW if it is not enabled
|
||||||
|
$ufwStatus = executeCommand('ufw status');
|
||||||
|
if (strpos(implode("\n", $ufwStatus['output']), 'Status: inactive') !== false) {
|
||||||
|
echo "Enabling UFW...\n";
|
||||||
|
executeCommand('ufw --force enable');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set default policies
|
||||||
|
echo "Setting default policies to deny incoming and outgoing traffic...\n";
|
||||||
|
executeCommand('ufw default deny incoming');
|
||||||
|
executeCommand('ufw default deny outgoing');
|
||||||
|
|
||||||
|
// Allow SSH
|
||||||
|
echo "Allowing SSH...\n";
|
||||||
|
if (!isRuleExists('22/tcp')) {
|
||||||
|
executeCommand('ufw allow in ssh');
|
||||||
|
executeCommand('ufw allow out ssh');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow specified ports for both incoming and outgoing traffic
|
||||||
|
$ports = [
|
||||||
|
80, // Apache HTTP
|
||||||
|
443, // Apache HTTPS
|
||||||
|
8080, // Nginx HTTP
|
||||||
|
8443, // Nginx HTTPS
|
||||||
|
2053, // Sockets
|
||||||
|
1935 // RTMP connection
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($ports as $port) {
|
||||||
|
$rule = "$port/tcp";
|
||||||
|
echo "Allowing port $port for incoming and outgoing traffic...\n";
|
||||||
|
if (!isRuleExists("$port/tcp")) {
|
||||||
|
executeCommand("ufw allow in $port");
|
||||||
|
executeCommand("ufw allow out $port");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure UFW is enabled on reboot
|
||||||
|
echo "Ensuring UFW is enabled on reboot...\n";
|
||||||
|
executeCommand('systemctl enable ufw');
|
||||||
|
|
||||||
|
// Reload UFW to apply changes
|
||||||
|
echo "Reloading UFW to apply changes...\n";
|
||||||
|
executeCommand('ufw reload');
|
||||||
|
|
||||||
|
echo "UFW configuration complete.\n";
|
||||||
|
|
||||||
|
?>
|
Loading…
Add table
Add a link
Reference in a new issue