User Tools

Site Tools


docu:tutos:net:rpi_to_router

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docu:tutos:net:rpi_to_router [2020/02/08 13:38]
admin
docu:tutos:net:rpi_to_router [2020/02/09 22:24] (current)
admin
Line 19: Line 19:
     - Connect your **usb-to-ethernet** dongle to any free usb slot on your device.     - Connect your **usb-to-ethernet** dongle to any free usb slot on your device.
     - You should see a **new interface** (`ip addr`), our subnet **will be on eth1**. If you don't see the new interface, make sure your **system supports usb-to-ethernet**)     - You should see a **new interface** (`ip addr`), our subnet **will be on eth1**. If you don't see the new interface, make sure your **system supports usb-to-ethernet**)
 +    - Connect a **small ethernet cable** from the usb-to-ethernet to a **switch** (for providing networking to other devices)
  
 <code txt> <code txt>
Line 26: Line 27:
 </code> </code>
  
-really recommend you to **remove** network-manager, netplan, or any **networking auto-configuration software**, as our server will be **configured statically** in a way that is **supported by most *nix systems**.\\+also recommend you to **remove** network-manager, netplan, or any **networking auto-configuration software**, as our server will be **configured statically** in a way that is **supported by most *nix systems**.\\
  
 \\ \\
Line 59: Line 60:
 </file> </file>
  
-Nowwe need to modify our dhcpd configuration on **/etc/dhcp/dhcpd.conf**+We will be using the **192.168.2.0/24 network** for our new subnetbut you can use **anyone you want**!\\ 
 +Modify our dhcpd configuration on **/etc/dhcp/dhcpd.conf**
 <code bash>vim /etc/dhcp/dhcpd.conf</code> <code bash>vim /etc/dhcp/dhcpd.conf</code>
 <file bash dhcpd.conf> <file bash dhcpd.conf>
Line 80: Line 82:
   option broadcast-address 192.168.2.255;   option broadcast-address 192.168.2.255;
      
-  # you are the router +  # we are going to be 192.168.2.1, the router
   option routers 192.168.2.1;   option routers 192.168.2.1;
      
-  # you will be the dns server pushed to clients+  # you will be the dns server too
   option domain-name-servers 192.168.2.1;   option domain-name-servers 192.168.2.1;
   # otherwise, you can simply not configure a dns server and use any other   # otherwise, you can simply not configure a dns server and use any other
Line 95: Line 97:
 } }
 </file> </file>
 +
 +Set yourself (the router) a **static ip address**:
 +<code bash>
 +ifconfig eth1 up
 +ip addr add 192.168.2.1/24 dev eth1
 +</code>
 +
 +Configure iptables to **route traffic** from **eth1 to eth0 and viceversa**:
 +<code bash>
 +# postrouting to our gateway interface eth0
 +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 +
 +# this should in theory, block incoming packets that were not established first
 +iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
 +iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
 +
 +# enable ip forwarding if you haven't done yet
 +echo 1 > /proc/sys/net/ipv4/ip_forward
 +</code>
 +
 +To finish the setup, **restart the isc-dhcp-server**
 +<code bash>systemctl restart isc-dhcp-server</code>
 +
 +\\
 +=== Setup a DNS Server (Highly recommended) ===
 +
 +We will be using **dnsmasq** as our DNS Server, because it is very easy to install and configure.
 +<code bash>apt-get install dnsmasq</code>
 +
 +Configure the dns server:
 +<code bash>vim /etc/dnsmasq.conf</code>
 +<file bash dnsmasq.conf>
 +
 +# bind on custom interface or ip
 +#except-interface=lo
 +#bind-interfaces
 +#listen-address=192.168.2.1
 +
 +# log dns queries and dhcp requests
 +#log-queries
 +#log-dhcp
 +
 +# expand /etc/hosts hosts to your dns
 +expand-hosts
 +
 +# forward dns request to this ip
 +# when you can't resolve an address
 +server=1.1.1.1
 +# if omitted, dnsmasq will use resolvconf to return
 +# the dns configuration inherited by the dhcp server
 +</file>
 +
 +Restart the **dnsmasq** server
 +<code bash>systemctl restart dnsmasq</code>
 +
 +\\
 +=== Connect your server or laptop to the switch you've configured earlier, and wollah! ===
 +==== Enjoy! ====
docu/tutos/net/rpi_to_router.1581169083.txt.gz · Last modified: 2020/02/08 13:38 by admin