19

Hi all, I'm running a small website off of a raspberry pi in my house. I have opened ports 80 and 443 and connected my IP to a domain. I'm pretty confident in my security for my raspberry pi (no password ssh, fail2ban, nginx. Shoutout networkchuck.). However, I am wondering if by exposing my ports to the raspberry pi, I am also exposing those same ports to other devices in my home network, for example, my PC. I'm just a bit unsure if port forwarding to an internal IP would also expose other internal IP's or if it only goes to the pi. If you are able to answer or have any other comments about my setup, I would appreciate your comment. Thanks!

you are viewing a single comment's thread
view the rest of the comments
[-] entropicshart@lemmy.world 0 points 3 years ago

I would suggest signing up for a free Cloudflare account and setting up any DNS for your Pi through there, using the Cache feature.

Once that is done, setup an automated script that will pull down Cloudflare IPs into a file:

#!/bin/bash

set -e

cf_ips() {
  echo "# https://www.cloudflare.com/ips"

  for type in v4 v6; do
    echo "# IP$type"
    curl -sL "https://www.cloudflare.com/ips-$type/" | sed "s|^|allow |g" | sed "s|\$|;|g"
    echo
  done

  echo "# Generated at $(LC_ALL=C date)"
}

cf_ips > allow-cloudflare.conf
(cf_ips && echo "deny all; # deny all remaining ips") > allow-cloudflare-only.conf

Then in your web server config to only accept connections from Cloudflare IPs:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name example.com;
        root /var/www/html;

	include /etc/nginx/allow-cloudflare-only.conf;
}

I prefer this method over UFW/iptables block as it allows you to control the IP block per web config, so if needed, you can make exceptions by not adding the include /etc/nginx/allow-cloudflare-only.conf; into that specific site's conf file.

this post was submitted on 23 Jun 2023
19 points (100.0% liked)

Selfhosted

60693 readers
433 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS