From 20d9f63918d3b2bd75853182063f43eb36d7cd8a Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Wed, 28 Apr 2021 13:58:55 +0200 Subject: Adjusts modules --- src/UfwModule.php | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/UfwModule.php') diff --git a/src/UfwModule.php b/src/UfwModule.php index 1ec4452..02be515 100644 --- a/src/UfwModule.php +++ b/src/UfwModule.php @@ -18,13 +18,35 @@ class UfwModule extends Module */ public function checkState(): bool { - return false; + $state = false; + + Connection::enablePty(); + + Connection::exec('sudo ufw status'); + $status = Connection::read(); + + if ($this->state === State::ENABLED) { + $rule = strtoupper($this->rule); + Connection::exec("sudo ufw status | grep '$this->name\|$rule'"); + $statusGrep = Connection::read(); + + $state = + str_contains($status, 'Status: active') && + str_contains($statusGrep, $this->name) && str_contains($statusGrep, $rule); + } + else if ($this->state === State::DISABLED) { + $state = str_contains($status, 'Status: inactive'); + } + + Connection::disablePty(); + + return $state; } /** * @inheritDoc */ - public function getCommands(): array + public function execute(): void { Connection::exec(implode(PHP_EOL, [ "sudo ufw $this->rule $this->name", @@ -33,7 +55,5 @@ class UfwModule extends Module State::DISABLED => "sudo ufw disable", }, ])); - - return []; } } -- cgit v1.2.3