2014-08-24 19:18:18 +02:00
|
|
|
<section xmlns="http://docbook.org/ns/docbook"
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
|
|
version="5.0"
|
|
|
|
xml:id="sec-firewall">
|
2018-05-02 01:57:09 +02:00
|
|
|
<title>Firewall</title>
|
2014-08-24 19:18:18 +02:00
|
|
|
|
2018-05-02 01:57:09 +02:00
|
|
|
<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:
|
2014-08-24 19:18:18 +02:00
|
|
|
<programlisting>
|
2018-04-05 10:43:56 +02:00
|
|
|
<xref linkend="opt-networking.firewall.enable"/> = false;
|
2014-08-24 19:18:18 +02:00
|
|
|
</programlisting>
|
2018-05-02 01:57:09 +02:00
|
|
|
If the firewall is enabled, you can open specific TCP ports to the outside
|
|
|
|
world:
|
2014-08-24 19:18:18 +02:00
|
|
|
<programlisting>
|
2018-04-05 10:43:56 +02:00
|
|
|
<xref linkend="opt-networking.firewall.allowedTCPPorts"/> = [ 80 443 ];
|
2014-08-24 19:18:18 +02:00
|
|
|
</programlisting>
|
2018-05-02 01:57:09 +02:00
|
|
|
Note that TCP port 22 (ssh) is opened automatically if the SSH daemon is
|
|
|
|
enabled (<option><xref linkend="opt-services.openssh.enable"/> =
|
|
|
|
true</option>). UDP ports can be opened through
|
|
|
|
<xref linkend="opt-networking.firewall.allowedUDPPorts"/>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To open ranges of TCP ports:
|
2017-12-10 14:36:44 +01:00
|
|
|
<programlisting>
|
2018-04-05 10:43:56 +02:00
|
|
|
<xref linkend="opt-networking.firewall.allowedTCPPortRanges"/> = [
|
2017-12-10 14:36:44 +01:00
|
|
|
{ from = 4000; to = 4007; }
|
|
|
|
{ from = 8000; to = 8010; }
|
|
|
|
];
|
|
|
|
</programlisting>
|
2018-05-02 01:57:09 +02:00
|
|
|
Similarly, UDP port ranges can be opened through
|
|
|
|
<xref linkend="opt-networking.firewall.allowedUDPPortRanges"/>.
|
|
|
|
</para>
|
2017-12-10 14:36:44 +01:00
|
|
|
|
2018-05-02 01:57:09 +02:00
|
|
|
<para>
|
|
|
|
Also of interest is
|
2014-08-24 19:18:18 +02:00
|
|
|
<programlisting>
|
2018-04-05 10:43:56 +02:00
|
|
|
<xref linkend="opt-networking.firewall.allowPing"/> = true;
|
2014-08-24 19:18:18 +02:00
|
|
|
</programlisting>
|
2018-05-02 01:57:09 +02:00
|
|
|
to allow the machine to respond to ping requests. (ICMPv6 pings are always
|
|
|
|
allowed.)
|
|
|
|
</para>
|
2014-08-24 19:18:18 +02:00
|
|
|
</section>
|