AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Firewall Meldung erzwingen
Thema durchsuchen
Ansicht
Themen-Optionen

Firewall Meldung erzwingen

Ein Thema von QuickAndDirty · begonnen am 15. Jan 2013 · letzter Beitrag vom 21. Jan 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Firewall Meldung erzwingen

  Alt 16. Jan 2013, 08:21
Es wird ja nicht automatische die Firewall freigegeben.
Der Benutzer muss das erst in einem Dialog bestätigen.
Es sei denn, der Benutzer wurschtelt in alter Windows-Manier mit Adminrechten. Dann kommt i.d.R. überhaupt keine Nachfrage. Und schaut man dann mal in die Ausnahmenliste der Windows-Firewall, dann wundert man sich wie viel Drittsoftware da drin steht von der man noch nie was gehört hat.

Ebenso fordern ja die meisten Installer Adminrechte an und schieben die FW-Ausnahmen dann mit den einmal erteilten Rechten in die Liste. Ja sogar der Treiber von meinem Monitor hat einen Eintrag hinterlegt.

Ganz ehrlich: Das Vorhandensein einer Desktop-Firewall wiegt die User in einem falschen Gefühl der Sicherheit. Welcher Ottonormal-Mausschubser schaut denn schon nach jeder Software-Installation in die Ausnahmenliste?

Dazu kommt ein etwas seltsames Verhalten von Windows: Schreibe ich ein eigenes Programmchen das z.B. die Indy-Komponenten verwendet und über Port 80 (HTTP) mit einem beliebigen Server im Internet kommuniziert. Dann kann ich das Programm auf jedem Windows-Rechner ausführen (einfach die EXE rüberkopieren, keine Installation mit erhöhten Rechten) und Windows lässt das ohne Weiteres zu. Da kommt von der Windows-Firewall nicht der geringste Kommentar. Es sei denn man hat die FW-Standardeinstellungen händisch verschärft.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#12

AW: Firewall Meldung erzwingen

  Alt 18. Jan 2013, 15:06
Nicht getestet:

http://code.google.com/p/ryulib4delp...all.pas?edit=1

Delphi-Quellcode:
unit FireWall;

interface

uses
  ActiveX, ComObj,
  Classes, SysUtils;

const
  NET_FW_PROFILE2_DOMAIN = 1;
  NET_FW_PROFILE2_PRIVATE = 2;
  NET_FW_PROFILE2_PUBLIC = 4;

  NET_FW_SCOPE_ALL = 0;
  NET_FW_IP_VERSION_ANY = 2;

  NET_FW_IP_PROTOCOL_TCP = 6;
  NET_FW_ACTION_ALLOW = 1;

procedure AddPortToFirewall(Caption:string; PortNumber:Cardinal);
procedure AddExceptionToFirewall(Caption, Executable: string);

implementation

procedure AddPortToFirewall(Caption:string; PortNumber:Cardinal);
var
  fwMgr,port:OleVariant;
  profile:OleVariant;
begin
  fwMgr := CreateOLEObject('HNetCfg.FwMgr');
  profile := fwMgr.LocalPolicy.CurrentProfile;
  port := CreateOLEObject('HNetCfg.FWOpenPort');
  port.Name := Caption;
  port.Protocol := NET_FW_IP_PROTOCOL_TCP;
  port.Port := PortNumber;
  port.Scope := NET_FW_SCOPE_ALL;
  port.Enabled := true;
  profile.GloballyOpenPorts.Add(port);
end;

procedure AddExceptionToFirewall(Caption, Executable: string);
var
  FirewallMsg: OleVariant;
  Application: OleVariant;
  CurrentProfile: OleVariant;
begin
  CoInitialize(nil);
  try
    FirewallMsg := CreateOLEObject('HNetCfg.FwMgr');
    CurrentProfile := FirewallMsg.LocalPolicy.CurrentProfile;
    Application := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
    Application.ProcessImageFileName := Executable;
    Application.Name := Caption;
    Application.Scope := NET_FW_SCOPE_ALL;
    Application.IpVersion := NET_FW_IP_VERSION_ANY;
    Application.Enabled := True;
    CurrentProfile.AuthorizedApplications.Add(Application);
  finally
    CoUninitialize;
  end;
end;

end.
Mehr Infos:
http://www.activexperts.com/activmon...ndowsfirewall/
http://www.sevenforums.com/tutorials...exception.html
http://www.sevenforums.com/tutorials...-settings.html
.
.
Warum ist die eine Prozedur mit CoInitialize und das andere ohne?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#13

AW: Firewall Meldung erzwingen

  Alt 18. Jan 2013, 18:02
Zitat:
Warum ist die eine Prozedur mit CoInitialize und das andere ohne?
Das würde mich auch interessieren.

Andere Frage/Problem: Weil bei Server 2012 standardmäßig die Benachrichtigung ausgeschaltet ist, wollte ich sie mal damit einschalten:

Delphi-Quellcode:
procedure SetNotificationDisabled(Value: boolean);
var
  FirewallMsg: OleVariant;
  FirewallApp: OleVariant;
  CurrentProfile: OleVariant;
begin
  CoInitialize(nil);
  try
    FirewallMsg := CreateOLEObject('HNetCfg.FwMgr');
    CurrentProfile := FirewallMsg.LocalPolicy.CurrentProfile;
    FirewallApp := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
    FirewallApp.NotificationsDisabled := Value;
    CurrentProfile.AuthorizedApplications.Add(FirewallApp);
  finally
    CoUninitialize;
  end;
end;
Es folgt eine Exception: Die Methode 'NotificationsDisabled' wird vom Automatisierungsobjekt nicht unterstützt.

Hab mir die Beispiele unter activexperts.com angesehen. Es müsste das doch eigentlich gehen. Hat jemand dazu eine Idee?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#14

AW: Firewall Meldung erzwingen

  Alt 19. Jan 2013, 10:33
Zitat:
Warum ist die eine Prozedur mit CoInitialize und das andere ohne?
Das würde mich auch interessieren.

Andere Frage/Problem: Weil bei Server 2012 standardmäßig die Benachrichtigung ausgeschaltet ist, wollte ich sie mal damit einschalten:

Delphi-Quellcode:
procedure SetNotificationDisabled(Value: boolean);
var
  FirewallMsg: OleVariant;
  FirewallApp: OleVariant;
  CurrentProfile: OleVariant;
begin
  CoInitialize(nil);
  try
    FirewallMsg := CreateOLEObject('HNetCfg.FwMgr');
    CurrentProfile := FirewallMsg.LocalPolicy.CurrentProfile;
    FirewallApp := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
    FirewallApp.NotificationsDisabled := Value;
    CurrentProfile.AuthorizedApplications.Add(FirewallApp);
  finally
    CoUninitialize;
  end;
end;
Es folgt eine Exception: Die Methode 'NotificationsDisabled' wird vom Automatisierungsobjekt nicht unterstützt.

Hab mir die Beispiele unter activexperts.com angesehen. Es müsste das doch eigentlich gehen. Hat jemand dazu eine Idee?
ne!
Aber CoUninitialize findet sich nicht in ComObj da wo CoInitialize und CoInitialzeEx zu finden sind...
seltsam.

Außerdem ne frage mal so neben bei. Wenn ein Setup euch Firewall Ausnahmen einrichtet, erwartet ihr das die Deinstallation diese zurücknimmt?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: Firewall Meldung erzwingen

  Alt 19. Jan 2013, 14:38
Außerdem ne frage mal so neben bei. Wenn ein Setup euch Firewall Ausnahmen einrichtet, erwartet ihr das die Deinstallation diese zurücknimmt?
Würde ich intuitiv schon erwarten. Am besten wäre aber eine kurze Sicherheitsabfrage am Ende der Deinstallation. So machen es viele Spiele z.b., um sich nach der Deinstallation zu versichern, ob neben den Programmdateien auch die Spielstände des Benutzers gelöscht werden sollen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#16

AW: Firewall Meldung erzwingen

  Alt 19. Jan 2013, 16:05
Außerdem ne frage mal so neben bei. Wenn ein Setup euch Firewall Ausnahmen einrichtet, erwartet ihr das die Deinstallation diese zurücknimmt?
ich benutze mein eigenes Installationsprogramm, werde ab jetzt diese Unit verwenden um die Ausnahmen eintragen, und selbstverständlich bei der Deinstallation auch wieder austragen. Das denke ich gehört zum guten Stil. Ein Anwender hat denke ich auch ein Recht darauf, dass eine Installation + Deinstallation keine Spuren im System hinterlässt.

Wenn die Ausnahme "nur" eine App ist, dann passiert prinzipiell zwar nichs, aber wenn ein Port freigegeben wird, dann denke ich ist das Zurücknehmen Pflicht.

Mit etwas mehr Arbeit verbunden wird die Angelegenheit nur, wenn man in ein Setup-Programm eigene DLL's einbindet. Dann muss man selber dafür sorgen, dass die Ausnahmen ausgetragen werden.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#17

AW: Firewall Meldung erzwingen

  Alt 21. Jan 2013, 09:32
Wieso wusste ich das ich die Deinstallation jetzt auch noch in ordnung bringen muss...

Warum hättet ihr nicht sowas Antworten können wie: "Die lässt doch jedes Programm offen, kümmere dich nicht drumm!" ?

Na allerdings profitieren wir firmenintern sowieso am meisten von einer sauberen Deinstallation (brauchen wir ja um Installations tests durchführen zu können).
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz