wg: man: include kill-switch documentation using fwmark
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
		
							parent
							
								
									4e0e99c74d
								
							
						
					
					
						commit
						d7b3f0fcaf
					
				@ -129,6 +129,42 @@ indicates that a DNS server for the interface should be configured via
 | 
			
		||||
The peer's allowed IPs entry implies that this interface should be configured as the default gateway,
 | 
			
		||||
which this script does.
 | 
			
		||||
 | 
			
		||||
Building on the last example, one might attempt the so-called ``kill-switch'', in order
 | 
			
		||||
to prevent the flow of unencrypted packets through the non-WireGuard interfaces:
 | 
			
		||||
 | 
			
		||||
    [Interface] 
 | 
			
		||||
.br
 | 
			
		||||
    Address = 10.200.100.8/24
 | 
			
		||||
.br
 | 
			
		||||
    DNS = 10.200.100.1
 | 
			
		||||
.br
 | 
			
		||||
    PrivateKey = oK56DE9Ue9zK76rAc8pBl6opph+1v36lm7cXXsQKrQM= 
 | 
			
		||||
.br
 | 
			
		||||
    \fBPostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -j REJECT\fP
 | 
			
		||||
.br
 | 
			
		||||
    \fBPreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -j REJECT\fP
 | 
			
		||||
.br
 | 
			
		||||
     
 | 
			
		||||
.br
 | 
			
		||||
    [Peer] 
 | 
			
		||||
.br
 | 
			
		||||
    PublicKey = GtL7fZc/bLnqZldpVofMCD6hDjrK28SsdLxevJ+qtKU= 
 | 
			
		||||
.br
 | 
			
		||||
    PresharedKey = /UwcSPg38hW/D9Y3tcS1FOV0K1wuURMbS0sesJEP5ak= 
 | 
			
		||||
.br
 | 
			
		||||
    AllowedIPs = 0.0.0.0/0 
 | 
			
		||||
.br
 | 
			
		||||
    Endpoint = demo.wireguard.com:51820 
 | 
			
		||||
.br
 | 
			
		||||
 | 
			
		||||
The `PostUp' and `PreDown' fields have been added to specify an
 | 
			
		||||
.BR iptables (8)
 | 
			
		||||
command which, when used with interfaces that have a peer that specifies 0.0.0.0/0 as part of the
 | 
			
		||||
`AllowedIPs', works together with wg-quick's fwmark usage in order to drop all packets that
 | 
			
		||||
are either not coming out of the tunnel encrypted or not going through the tunnel itself. (Note
 | 
			
		||||
that this continues to allow most DHCP traffic through, since most DHCP clients make use of PF_PACKET
 | 
			
		||||
sockets, which bypass Netfilter.)
 | 
			
		||||
 | 
			
		||||
Here is a more complicated example, fit for usage on a server:
 | 
			
		||||
    
 | 
			
		||||
    [Interface]
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user