<p dir="ltr"><br>
On Dec 9, 2014 12:06 PM, &quot;Chuck Anderson&quot; &lt;<a href="mailto:cra@wpi.edu">cra@wpi.edu</a>&gt; wrote:<br>
&gt;<br>
&gt; On Tue, Dec 09, 2014 at 11:52:01AM -0700, Pete Travis wrote:<br>
&gt; &gt; On Dec 9, 2014 11:33 AM, &quot;Chuck Anderson&quot; &lt;<a href="mailto:cra@wpi.edu">cra@wpi.edu</a>&gt; wrote:<br>
&gt; &gt; I should have said &quot;ask firewalld for a port to be opened&quot; - sorry, I<br>
&gt; &gt; thought that would come from the context.<br>
&gt; &gt;<br>
&gt; &gt; Are you saying bind() should be talking to firewalld, via some approval<br>
&gt; &gt; agent?  how do we make that happen?<br>
&gt;<br>
&gt; My point was that a firewall is superfluous if a program can just ask<br>
&gt; firewalld to poke a hole in the firewall for it automatically, because<br>
&gt; a program can already ask the system to open a listening port for it<br>
&gt; using bind(2) (and listen(2) and accept(2)) when no firewall is<br>
&gt; present.<br>
&gt;<br>
&gt; It means that in a world where automatic-hole-punching exists, the<br>
&gt; only use of a firewall on the host is maybe to limit the SCOPE of such<br>
&gt; communication, not whether such communication is allowed at all or<br>
&gt; not.  This is where firewall zones come in.<br></p>
<p dir="ltr">Okay, one more thing on the ideal requirements list:  firewalld must not blindly approve all requests, there must be some approval mechanism.  What would that look like?</p>
<p dir="ltr">--Pete</p>