lib/gdk/diagnostic/firewall.rb (25 lines of code) (raw):
# frozen_string_literal: true
module GDK
module Diagnostic
class Firewall < Base
TITLE = 'macOS firewall'
def success?
return true unless GDK::Telemetry.team_member?
return true unless GDK::Machine.macos?
firewall_disabled?
end
def detail
return if success?
<<~MESSAGE
If you are using a managed firewall like SentinelOne or CrowdStrike, we
recommend disabling the macOS firewall through Settings > Network > Firewall
to prevent performance problems.
MESSAGE
end
private
def firewall_disabled?
@firewall_state ||= GDK::Shellout.new(%w[/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate]).run
@firewall_state.include?('State = 0')
end
end
end
end