PHP Exec iptables - PullRequest
       20

PHP Exec iptables

0 голосов
/ 13 марта 2019

Я бы хотел exec iptables из PHP.

Я добавил эту строку в файл sudoers:

root ALL=(ALL) ALL apache ALL=(root) NOPASSWD:/sbin/iptables -A INPUT -s * -j ACCEPT

Я пробовал также с

root ALL=(root) ALL apache ALL=(root) NOPASSWD:/sbin/iptables -A INPUT -s * -j ACCEPT

Мой сервер работает на centos 7.

Затем, когда я выполняю свой сценарий, я получил:

Извините, пользователь apache не имеет права выполнять '/ sbin / iptables -A INPUT -s xxx.xxx.xxx.xxx -j ПРИНЯТЬ' как apache для "servername", почему?

Часть моего кода:

$ip = $query['ip'];
$pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
   if(preg_match($pattern , $ip) == true) {      
      $exec_cmd = "/usr/bin/sudo -u apache /sbin/iptables -A INPUT -s $ip -j ACCEPT 2>&1";
      echo('exec: ' . $exec_cmd); 
      $output = [];    
      $retval = 0;
      exec($exec_cmd, $output, $retval);
      print_r($output);
      echo($retval);         
} else {
      echo('Bad IP');
}

Спасибо за вашу помощь:)

...