52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<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">
 | 
						|
 | 
						|
<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:
 | 
						|
 | 
						|
<programlisting>
 | 
						|
networking.firewall.enable = false;
 | 
						|
</programlisting>
 | 
						|
 | 
						|
If the firewall is enabled, you can open specific TCP ports to the
 | 
						|
outside world:
 | 
						|
 | 
						|
<programlisting>
 | 
						|
networking.firewall.allowedTCPPorts = [ 80 443 ];
 | 
						|
</programlisting>
 | 
						|
 | 
						|
Note that TCP port 22 (ssh) is opened automatically if the SSH daemon
 | 
						|
is enabled (<option>services.openssh.enable = true</option>). UDP
 | 
						|
ports can be opened through
 | 
						|
<option>networking.firewall.allowedUDPPorts</option>.</para>
 | 
						|
 | 
						|
<para>To open ranges of TCP ports:
 | 
						|
 | 
						|
<programlisting>
 | 
						|
networking.firewall.allowedTCPPortRanges = [
 | 
						|
  { from = 4000; to = 4007; }
 | 
						|
  { from = 8000; to = 8010; }
 | 
						|
];
 | 
						|
</programlisting>
 | 
						|
 | 
						|
Similarly, UDP port ranges can be opened through
 | 
						|
<option>networking.firewall.allowedUDPPortRanges</option>.</para>
 | 
						|
 | 
						|
<para>Also of interest is
 | 
						|
 | 
						|
<programlisting>
 | 
						|
networking.firewall.allowPing = true;
 | 
						|
</programlisting>
 | 
						|
 | 
						|
to allow the machine to respond to ping requests.  (ICMPv6 pings are
 | 
						|
always allowed.)</para>
 | 
						|
 | 
						|
</section>
 |