I'm planning on making my first web-server. My plan is to use a RPi3B (or RPi3A if it comes without wifi and bluetooth, but with ethernet) for it. But because I'm new to web-servers I've a couple of questions:

  1. My internet provider doesn't provide static IPv4 (and probably my IPv6 is also not a fixed range). How do I couple my RPi web-server to the my domain name I'll buying for it?
  2. At first it will be a light website, but I also want to use it as a learning tool for my HTML/CSS/PHP/*SQL skills and show case my skills. What web server (Lighttpd, Apache, etc) would fit that brief the best?
  3. Is there a possibility to turn off wifi and bluetooth on firmware level so it can't be turn on by remote access?
  4. I'm planning to use Rasbian and off-course I'll change the user name and password. Are there any other security tips for keeping my home network save from an hacker who has hacked my RPi server?
  5. I'm planning on restrict SSH access to the local IP range. Are there any other security tip?
  • 1
    You have asked 5 questions. The 1st has nothing to do with the Pi. – Milliways May 12 '17 at 10:36
  • At least the questions are well defined :D +1 – Piotr Kula May 12 '17 at 13:00
  • @Milliways: Yes, I asked 5 question, but if asked separately they would give possible conflicting answer. And the first question is maybe not directly related to RPi, but not all solutions will work on a RPi. – Mat_64 May 12 '17 at 13:36
  1. You can use services such as DynDns which update the IP your hostname points to as your IP changes.

  2. From this article (hosted on a Raspberry Pi) it shows benchmarks between Apache2 and Nginx. The results show that Nginx is the best option.

  3. There's a post here that shows how to achieve this. You have to edit the /etc/modprobe.d/raspi-blacklist.conf file like this:


    blacklist brcmfmac

    blacklist brcmutil


    blacklist btbcm

    blacklist hci_uart

  4. The best thing to do is to put in the necessary security measures so the Raspberry Pi doesn't get compromised in the first place. I'd recommend to:

    • Disable SSH
    • Only have port 80 open (443 if you want the website to use encryption)
    • Make sure the website is secure. For example, protect it from SQL Injection and XSS, etc.
  5. Safer to disable it completely if that's possible. If not, use STRONG passwords add cool-down periods so there can't be a bruteforce attack.

Not the answer you're looking for? Browse other questions tagged or ask your own question.