Skip to content

how to prevent DDoS attacks ?

Solved Vulnerability
34 2 13.5k 1
  • hi @phenomlab , recently we are getting a lot of DDoS attacks.

    We have nginx rate limits and fail2ban set up as security tools…

    https://www.nginx.com/blog/rate-limiting-nginx/

    Since cloudflare is not working properly with NodeBB due to connection problems, we are looking for other solutions to help with these attacks…

    During all these attacks for several hours forum gives “503 excessive load” error page…

    wrote on last edited by
    #2

    @crazycells have you approached your ISP (the VPS provider) to ask them if they have any mechanisms in place? There are a variety of methods you can deploy to prevent, or at the very least, slow down the attack such as blocking the country of origin.

  • @crazycells have you approached your ISP (the VPS provider) to ask them if they have any mechanisms in place? There are a variety of methods you can deploy to prevent, or at the very least, slow down the attack such as blocking the country of origin.

    wrote on last edited by
    #3

    @phenomlab we use digital ocean, and I have checked their website before, they do not have this service, and they recommend cloudflare for this purpose.

  • @phenomlab we use digital ocean, and I have checked their website before, they do not have this service, and they recommend cloudflare for this purpose.

    wrote on last edited by
    #4

    @crazycells Ok, but do they have a firewall that you can leverage? Depending on if this exists, and how advanced it is, we can use this to drop most of the unwanted traffic at the root.

  • @crazycells Ok, but do they have a firewall that you can leverage? Depending on if this exists, and how advanced it is, we can use this to drop most of the unwanted traffic at the root.

    wrote on last edited by
    #5

    @phenomlab they have firewall but we have to input individual rules, there is no country block.

    Additionally, we use UFW and we only allow https.

  • @phenomlab they have firewall but we have to input individual rules, there is no country block.

    Additionally, we use UFW and we only allow https.

    wrote on last edited by phenomlab
    #6
  • wrote on last edited by
    #7

    @phenomlab yes, we were checking here yesterday, but we have seen comments about disabled ufw after doing this… so, we have skipped it…

    additionally, we see 4-5 countries on the list… and I think the attackers are stubborn people, so the list might become longer after these settings.

  • @phenomlab they have firewall but we have to input individual rules, there is no country block.

    Additionally, we use UFW and we only allow https.

    wrote on last edited by
    #8

    @crazycells In addition, if you are using Virtualmin, you can leverage Fail2Ban which is a lot more powerful.

  • @crazycells In addition, if you are using Virtualmin, you can leverage Fail2Ban which is a lot more powerful.

    wrote on last edited by
    #9

    @phenomlab yes, we do have fail2ban set up already, sorry I wrote in the first post, but I did not write the usual way 😄 Fail2Ban

  • @phenomlab yes, we do have fail2ban set up already, sorry I wrote in the first post, but I did not write the usual way 😄 Fail2Ban

    wrote on last edited by phenomlab
    #10

    @crazycells There is also a way to do this with fail2ban using

    https://blog.reinhard.codes/2023/04/02/restricting-access-to-ssh-using-fail2ban-and-geoip/

    Obviously, you substitute port 22 (SSH) for port 443 (HTTPS)

  • @crazycells There is also a way to do this with fail2ban using

    https://blog.reinhard.codes/2023/04/02/restricting-access-to-ssh-using-fail2ban-and-geoip/

    Obviously, you substitute port 22 (SSH) for port 443 (HTTPS)

    wrote on last edited by
    #11

    @phenomlab can I ask your values of these settings?

    Screen%20Shot%202023-11-15%20at%2018.38.00.jpeg

  • @phenomlab can I ask your values of these settings?

    Screen%20Shot%202023-11-15%20at%2018.38.00.jpeg

    wrote on last edited by
    #12

    @crazycells I’d leave those as they are and handle this much further upstream (at NGINX or OS level)

  • @crazycells I’d leave those as they are and handle this much further upstream (at NGINX or OS level)

    wrote on last edited by
    #13

    @phenomlab we already have those settings changed before, so it might help if I know the default values… 😊 I guess you have them unchanged? Can I learn those default values?

  • @phenomlab we already have those settings changed before, so it might help if I know the default values… 😊 I guess you have them unchanged? Can I learn those default values?

    wrote on last edited by
    #14

    @crazycells Of course - see below

    81935872-9237-4794-8f01-b5c0a32c7c3b-image.png

  • wrote on last edited by
    #15

    maybe we should switch to aws, it has a shield for ddos protection…

    https://aws.amazon.com/shield/ddos-attack-protection/

    which provider do you think is best against ddos attacks?

  • maybe we should switch to aws, it has a shield for ddos protection…

    https://aws.amazon.com/shield/ddos-attack-protection/

    which provider do you think is best against ddos attacks?

    wrote on last edited by phenomlab
    #16

    @crazycells Hetzner also has excellent DDoS protection, a stateful firewall, and I have a referral link meaning you get credits for free… 🙂

    EDIT: Much of this really depends on where you want your server placed. Hetzner are based in Germany, Helsinki, and now the US 🙂

    https://www.hetzner.com/cloud

  • @crazycells Hetzner also has excellent DDoS protection, a stateful firewall, and I have a referral link meaning you get credits for free… 🙂

    EDIT: Much of this really depends on where you want your server placed. Hetzner are based in Germany, Helsinki, and now the US 🙂

    https://www.hetzner.com/cloud

    wrote on last edited by
    #17

    @phenomlab sure, please send me your link. we were considering aws quite some time, but I will send your link to our developer as well, so he can make decision.

    in general, we were trying to stay away from europe or european products due to strict laws and requirements. our user base is either from the US or from Turkey, so we prefer to decrease the amount of work we do 😄

  • @crazycells Hetzner also has excellent DDoS protection, a stateful firewall, and I have a referral link meaning you get credits for free… 🙂

    EDIT: Much of this really depends on where you want your server placed. Hetzner are based in Germany, Helsinki, and now the US 🙂

    https://www.hetzner.com/cloud

    wrote on last edited by
    #18

    @phenomlab oh I see a link there now, but I believe that is not referral link?

  • @phenomlab sure, please send me your link. we were considering aws quite some time, but I will send your link to our developer as well, so he can make decision.

    in general, we were trying to stay away from europe or european products due to strict laws and requirements. our user base is either from the US or from Turkey, so we prefer to decrease the amount of work we do 😄

    wrote on last edited by phenomlab
    #19

    @crazycells You’d be better placed with Hetzner in the US I think. AWS can get VERY expensive very quickly. My referral link for Hetzner is below.

    I personally use Hetzner and also have a “storage box” with 1Tb of storage for backups located in another datacentre for recovery purposes.

    https://hetzner.cloud/?ref=b2bBQLHF3mEV

  • wrote on last edited by
    #20

    This might also be useful…

    image.png

  • This might also be useful…

    image.png

    wrote on last edited by
    #21

    @phenomlab on a side note, is there any easy way to implement a rule… to allow only two geolocation (countries) but block the access from the rest of the countries?


Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee ☕
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • 3 Votes
    1 Posts
    1k Views
    No one has replied
  • Forum customisation

    Customisation nodebb forum customised
    11
    2
    6 Votes
    11 Posts
    3k Views
    JAC
    Thank you Mark, the changes look fantastic!!
  • Nodebb design

    Solved General nodebb
    2
    1 Votes
    2 Posts
    1k Views
    phenomlab
    @Panda said in Nodebb design: One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum. From recollection, Google and Bing have the capability to read and process JS, although it’s not in the same manner as a physical person will consume content on a page. It will be seen as plain text, but will be indexed. However, it’s important to note that Yandex and Baidu will not render JS, although seeing as Google has a 90% share of the content available on the web in terms of indexing, this isn’t something you’ll likely lose sleep over. @Panda said in Nodebb design: The “write api” is preferred for server-to-server interactions. This is mostly based around overall security - you won’t typically want a client machine changing database elements or altering data. This is why you have “client-side” which could be DOM manipulation etc, and “server-side” which performs more complex operations as it can communicate directly with the database whereas the client cannot (and if it can, then you have a serious security flaw). Reading from the API is perfectly acceptable on the client-side, but not being able to write. A paradigm here would be something like SNMP. This protocol exists as a UDP (UDP is very efficient, as it is “fire and forget” and does not wait for a response like TCP does) based service which reads performance data from a remote source, thus enabling an application to parse that data for use in a monitoring application. In all cases, SNMP access should be “RO” (Read Only) and not RW (Read Write). It is completely feasible to assume complete control over a firewall for example by having RW access to SNMP and then exposing it to the entire internet with a weak passphrase. You wouldn’t do it (at least, I hope you wouldn’t) and the same ethic applies to server-side rendering and the execution of commands.
  • Nodebb 3.2.0

    Bugs nodebb nodebb 3.2.0
    20
    1
    2 Votes
    20 Posts
    7k Views
    phenomlab
    @crazycells yes, I’m aware of that. Need to fix EDIT- fixed. Caused by the same CSS that is used to absolutely position the “verified” group badge in the posts view. Amended this CSS so that is specifically targets the post stream as below li[component="post"] a[href*="/groups/verified"] { position: absolute !important; left: 8px; z-index: 2; margin-top: 1px; border-radius: 999px !important; line-height: 14px; display: block; height: 22px; margin-left: 0px !important; }
  • Whitespace fixes in Nodebb

    Solved Customisation nodebb
    18
    2
    7 Votes
    18 Posts
    6k Views
    phenomlab
    @Panda Just circling back here with something of an update (which I think you’ll like). I’ve completely restructured the ranking system. There are now less ranks, with a higher point threshold to reach them. More importantly, if you reload the site, you’ll notice that the ranks are now icons. I also removed the “Author” badge, and made this a single icon, which (to me) looks much better.
  • Want to use Sudonix themes ?

    Chitchat themes nodebb
    80
    1
    34 Votes
    80 Posts
    30k Views
    cagatay
    omg thank you Mark.
  • 1 Votes
    5 Posts
    2k Views
    phenomlab
    @DownPW very useful tip. Thanks
  • creating topic specific widgets

    Solved Customisation nodebb
    16
    10 Votes
    16 Posts
    7k Views
    phenomlab
    @crazycells said in creating topic specific widgets: Additionally if hide class exists, why are we re-defining it? We’re not 🤭 I misspelled it - it should be hidden