Skip to content

Looking for secure (and free) DNS? Quad 9 is your new best friend

Blog
  • Those in the security space may already be aware of the secure DNS service provided by Quad9. For those who have not heard of this free service, Quad9 is a public Domain Name System (DNS) service that provides a more secure and privacy-focused alternative to traditional DNS services. DNS is the system that translates human-readable domain names (like www.google.com) into IP addresses that computers use to identify each other on the internet.

    Quad9 is known for its emphasis on security and privacy. It uses threat intelligence from various cybersecurity companies to block access to known malicious websites and protect users from accessing harmful content. When a user makes a DNS query, Quad9 checks the requested domain against a threat intelligence feed, and if the domain is flagged as malicious, Quad9 blocks access to it.

    One notable feature of Quad9 is its commitment to user privacy. Quad9 does not store any personally identifiable information about its users, and it does not sell or share user data.

    https://www.quad9.net/

    Users can configure their devices or routers to use Quad9 as their DNS resolver to take advantage of its security and privacy features. The DNS server addresses for Quad9 are usually 9.9.9.9 and 149.112.112.112.

    The name “Quad9” is derived from the service’s use of four DNS servers in different geographic locations to provide redundancy and improve reliability. Users can configure their devices or routers to use the Quad9 DNS servers, and doing so can offer an additional layer of protection against malware, phishing, and other online threats. It’s important to note that while Quad9 can enhance security, it is not a substitute for other security measures such as antivirus software and good internet security practices, and if you are not using these technologies already, then you are leaving yourself open to compromise.

    I’d strongly recommend you take a look at Quad9. Not only is it fast, but it seems to be extremely solid, and well thought out. If you’re using Cloudflare for your DNS, Quad9 is actually faster.

  • @phenomlab thanks for sharing. this will be very useful for me.

  • @crazycells Agreed. I’m using it now, and have been all afternoon. Super stable and very secure.

  • I’ve been using this service for a couple of days now, and it’s made my internet access so much faster. That alone is a plus, and I never thought there would be a contender for Cloudflare in this area.


Related Topics
  • 0 Votes
    4 Posts
    450 Views

    @DownPW 🙂 most of this really depends on your desired security model. In all cases with firewalls, less is always more, although it’s never as clear cut as that, and there are always bespoke ports you’ll need to open periodically.

    Heztner’s DDoS protection is superior, and I know they have invested a lot of time, effort, and money into making it extremely effective. However, if you consider that the largest ever DDoS attack hit Cloudflare at 71m rps (and they were able to deflect it), and each attack can last anywhere between 8-24 hours which really depends on how determined the attacker(s) is/are, you can never be fully prepared - nor can you trace it’s true origin.

    DDoS attacks by their nature (Distributed Denial of Service) are conducted by large numbers of devices whom have become part of a “bot army” - and in most cases, the owners of these devices are blissfully unaware that they have been attacked and are under command and control from a nefarious resource. Given that the attacks originate from multiple sources, this allows the real attacker to observe from a distance whilst concealing their own identity and origin in the process.

    If you consider the desired effect of DDoS, it is not an attempt to access ports that are typically closed, but to flood (and eventually overwhelm) the target (such as a website) with millions of requests per second in an attempt to force it offline. Victims of DDoS attacks are often financial services for example, with either extortion or financial gain being the primary objective - in other words, pay for the originator to stop the attack.

    It’s even possible to get DDoS as a service these days - with a credit card, a few clicks of a mouse and a target IP, you can have your own proxy campaign running in minutes which typically involves “booters” or “stressers” - see below for more

    https://heimdalsecurity.com/blog/ddos-as-a-service-attacks-what-are-they-and-how-do-they-work

    @DownPW said in Setting for high load and prevent DDoS (sysctl, iptables, crowdsec or other):

    in short if you have any advice to give to secure the best.

    It’s not just about DDos or firewalls. There are a number of vulnerabilities on all systems that if not patched, will expose that same system to exploit. One of my favourite online testers which does a lot more than most basic ones is below

    https://www.immuniweb.com/websec/

    I’d start with the findings reported here and use that to branch outwards.

  • 5 Votes
    4 Posts
    222 Views

    @DownPW here. Hostrisk is automated and doesn’t accept registrations.

  • 4 Votes
    8 Posts
    674 Views

    @phenomlab
    Sorry to delay in responding, yes as i mentioned above, i had to remove my redis from docker and reinstall a new image with this command

    docker run --name=redis -p 127.0.0.1:6379:6379 -d -t redis:alpine

    and now when i test my ip and port on
    https://www.yougetsignal.com/tools/open-ports/

    the status of my redis port is closed. I think which to configure firewall in droplet digital ocean is a good idea too, and i will configure soon.
    Thanks for the help!

  • 1 Votes
    2 Posts
    269 Views

    @mike-jones Hi Mike,

    There are multiple answers to this, so I’m going to provide some of the most important ones here

    JS is a client side library, so you shouldn’t rely on it solely for validation. Any values collected by JS will need to be passed back to the PHP backend for processing, and will need to be fully sanitised first to ensure that your database is not exposed to SQL injection. In order to pass back those values into PHP, you’ll need to use something like

    <script> var myvalue = $('#id').val(); $(document).ready(function() { $.ajax({ type: "POST", url: "https://myserver/myfile.php?id=" + myvalue, success: function() { $("#targetdiv").load('myfile.php?id=myvalue #targetdiv', function() {}); }, //error: ajaxError }); return false; }); </script>

    Then collect that with PHP via a POST / GET request such as

    <?php $myvalue= $_GET['id']; echo "The value is " . $myvalue; ?>

    Of course, the above is a basic example, but is fully functional. Here, the risk level is low in the sense that you are not attempting to manipulate data, but simply request it. However, this in itself would still be vulnerable to SQL injection attack if the request is not sent as OOP (Object Orientated Programming). Here’s an example of how to get the data safely

    <?php function getid($theid) { global $db; $stmt = $db->prepare("SELECT *FROM data where id = ?"); $stmt->execute([$theid]); while ($result= $stmt->fetch(PDO::FETCH_ASSOC)){ $name = $result['name']; $address = $result['address']; $zip = $result['zip']; } return array( 'name' => $name, 'address' => $address, 'zip' => $zip ); } ?>

    Essentially, using the OOP method, we send placeholders rather than actual values. The job of the function is to check the request and automatically sanitise it to ensure we only return what is being asked for, and nothing else. This prevents typical injections such as “AND 1=1” which of course would land up returning everything which isn’t what you want at all for security reasons.

    When calling the function, you’d simply use

    <?php echo getid($myvalue); ?>

    @mike-jones said in Securing javascript -> PHP mysql calls on Website:

    i am pretty sure the user could just use the path to the php file and just type a web address into the search bar

    This is correct, although with no parameters, no data would be returned. You can actually prevent the PHP script from being called directly using something like

    <?php if(!defined('MyConst')) { die('Direct access not permitted'); } ?>

    then on the pages that you need to include it

    <?php define('MyConst', TRUE); ?>

    Obviously, access requests coming directly are not going via your chosen route, therefore, the connection will die because MyConst does not equal TRUE

    @mike-jones said in Securing javascript -> PHP mysql calls on Website:

    Would it be enough to just check if the number are a number 1-100 and if the drop down is one of the 5 specific words and then just not run the rest of the code if it doesn’t fit one of those perameters?

    In my view, no, as this will expose the PHP file to SQL injection attack without any server side checking.

    Hope this is of some use to start with. Happy to elaborate if you’d like.

  • 1 Votes
    1 Posts
    203 Views
    No one has replied
  • 0 Votes
    1 Posts
    191 Views
    No one has replied
  • 0 Votes
    1 Posts
    142 Views
    No one has replied
  • 0 Votes
    1 Posts
    234 Views
    No one has replied