Compare commits
	
		
			2 Commits
		
	
	
		
			16e6d3521d
			...
			434f39fc2d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					434f39fc2d | ||
| 
						 | 
					af39e2d8b9 | 
							
								
								
									
										68
									
								
								assets/files/openvpn-server/nftables-tor.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								assets/files/openvpn-server/nftables-tor.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					#!/usr/sbin/nft -f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					flush ruleset
 | 
				
			||||||
 | 
					define vpn_port=6174
 | 
				
			||||||
 | 
					define vpn_if=tun0
 | 
				
			||||||
 | 
					define outside_if=enp0s17
 | 
				
			||||||
 | 
					define vpn_subnet=10.10.10.0/24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define vpn_port_tor=6175
 | 
				
			||||||
 | 
					define vpn_if_tor=tun1
 | 
				
			||||||
 | 
					define vpn_subnet_tor=10.10.20.0/24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					table inet filter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain input {
 | 
				
			||||||
 | 
					                # allow OpenVPN connections to the Server
 | 
				
			||||||
 | 
					                udp dport $vpn_port accept
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                # allow OpenVPN TOR connections to the Server
 | 
				
			||||||
 | 
					                udp dport $vpn_port_tor accept
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain forward {
 | 
				
			||||||
 | 
					                #Drop forwarded packets if they are not matched
 | 
				
			||||||
 | 
					                type filter hook forward priority 0; policy drop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # allow existing connections
 | 
				
			||||||
 | 
					                ct state related,established accept
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # allow packets from vpn interface
 | 
				
			||||||
 | 
					                iifname $vpn_if oifname $outside_if accept
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                # allow packets from vpn interface
 | 
				
			||||||
 | 
					                iifname $vpn_if_tor oifname $outside_if accept
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain output {
 | 
				
			||||||
 | 
					            ## Transproxy leak blocked:
 | 
				
			||||||
 | 
					            # https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy#WARNING
 | 
				
			||||||
 | 
					            ct state invalid counter drop
 | 
				
			||||||
 | 
					            oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (fin|ack) == fin|ack counter drop
 | 
				
			||||||
 | 
					            oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (rst|ack) == rst|ack counter drop
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create a ipv4 table only for NAT entries (you need both chains even if they're empty)
 | 
				
			||||||
 | 
					table ip nat {
 | 
				
			||||||
 | 
					        chain postrouting {
 | 
				
			||||||
 | 
					                type nat hook postrouting priority 100;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # enable NAT for VPN
 | 
				
			||||||
 | 
					                iifname $vpn_if oifname $outside_if ip saddr $vpn_subnet masquerade
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                # enable NAT for TOR VPN
 | 
				
			||||||
 | 
					                iifname $vpn_if_tor oifname $outside_if ip saddr $vpn_subnet_tor masquerade
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain prerouting {
 | 
				
			||||||
 | 
					            # Transparent proxy to TOR
 | 
				
			||||||
 | 
					            type nat hook prerouting priority 0;
 | 
				
			||||||
 | 
					            iifname $vpn_if_tor ip saddr $vpn_subnet_tor udp dport 53 counter dnat to 10.10.20.1:53530
 | 
				
			||||||
 | 
					            iifname $vpn_if_tor ip protocol tcp ip saddr $vpn_subnet_tor counter dnat to 10.10.20.1:9040
 | 
				
			||||||
 | 
					            iifname $vpn_if_tor ip protocol udp ip saddr $vpn_subnet_tor counter dnat to 10.10.20.1:9040
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										53
									
								
								assets/files/openvpn-server/nftables.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								assets/files/openvpn-server/nftables.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					#!/usr/sbin/nft -f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					flush ruleset
 | 
				
			||||||
 | 
					define vpn_port=6174
 | 
				
			||||||
 | 
					define vpn_if=tun0
 | 
				
			||||||
 | 
					define outside_if=enp0s17
 | 
				
			||||||
 | 
					define vpn_subnet=10.10.10.0/24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					table inet filter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain input {
 | 
				
			||||||
 | 
					                # allow OpenVPN VPN connections to the Server
 | 
				
			||||||
 | 
					                udp dport $vpn_port accept
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain forward {
 | 
				
			||||||
 | 
					                #Drop forwarded packets if they are not matched
 | 
				
			||||||
 | 
					                type filter hook forward priority 0; policy drop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # allow existing connections
 | 
				
			||||||
 | 
					                ct state related,established accept
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # allow packets from vpn interface
 | 
				
			||||||
 | 
					                iifname $vpn_if oifname $outside_if accept
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain output {
 | 
				
			||||||
 | 
					                # Security drops
 | 
				
			||||||
 | 
					                ct state invalid counter drop
 | 
				
			||||||
 | 
					                oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (fin|ack) == fin|ack counter drop
 | 
				
			||||||
 | 
					                oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (rst|ack) == rst|ack counter drop
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create a ipv4 table only for NAT entries (you need both chains even if they're empty)
 | 
				
			||||||
 | 
					table ip nat {
 | 
				
			||||||
 | 
					        chain postrouting {
 | 
				
			||||||
 | 
					                type nat hook postrouting priority 100;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # enable NAT for VPN
 | 
				
			||||||
 | 
					                iifname $vpn_if oifname $outside_if ip saddr $vpn_subnet masquerade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chain prerouting {
 | 
				
			||||||
 | 
					                type nat hook prerouting priority 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user