2021-07-01 16:13:41 +01:00
|
|
|
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-firewall">
|
|
|
|
<title>Firewall</title>
|
|
|
|
<para>
|
|
|
|
NixOS has a simple stateful firewall that blocks incoming
|
|
|
|
connections and other unexpected packets. The firewall applies to
|
|
|
|
both IPv4 and IPv6 traffic. It is enabled by default. It can be
|
|
|
|
disabled as follows:
|
|
|
|
</para>
|
|
|
|
<programlisting language="bash">
|
|
|
|
networking.firewall.enable = false;
|
|
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
If the firewall is enabled, you can open specific TCP ports to the
|
|
|
|
outside world:
|
|
|
|
</para>
|
|
|
|
<programlisting language="bash">
|
|
|
|
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
|
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
Note that TCP port 22 (ssh) is opened automatically if the SSH
|
|
|
|
daemon is enabled
|
|
|
|
(<literal>services.openssh.enable = true</literal>). UDP ports can
|
|
|
|
be opened through
|
2021-07-04 02:56:26 +01:00
|
|
|
<xref linkend="opt-networking.firewall.allowedUDPPorts" />.
|
2021-07-01 16:13:41 +01:00
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To open ranges of TCP ports:
|
|
|
|
</para>
|
|
|
|
<programlisting language="bash">
|
|
|
|
networking.firewall.allowedTCPPortRanges = [
|
|
|
|
{ from = 4000; to = 4007; }
|
|
|
|
{ from = 8000; to = 8010; }
|
|
|
|
];
|
|
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
Similarly, UDP port ranges can be opened through
|
2021-07-04 02:56:26 +01:00
|
|
|
<xref linkend="opt-networking.firewall.allowedUDPPortRanges" />.
|
2021-07-01 16:13:41 +01:00
|
|
|
</para>
|
|
|
|
</section>
|