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>
 | 
