Code Monkey home page Code Monkey logo

Comments (4)

zmstone avatar zmstone commented on September 27, 2024

Thank you @burner-
We might consider adding an ACME client in EMQX to make things easier.

Out of curiosity many choose to terminate TLS at LB though, that's not the case for you ?

from emqx.

burner- avatar burner- commented on September 27, 2024

I can do it with BL but its not a point. Point is to try engourage devs to do product what engourage users to not shoot to their own leg with security.
But honestly deeper I dive more worried I come security culture of EMQX. I am sorry to say that looks that lack of fast way to get TLS is just tip of iceberg at bad choises. If you want I can open different ticket from each one but at this point "basic things what should be clear without saying that not to do with this way" what I hit in first hour of use:
a) 0.0.0.0 binded admin console port by default. Admin console should bind only localhost by default because it have default password set.
b) no ssl by default at admin console. Even self signed cert would be better than http as default.
c) all listeners are enabled and bind to 0.0.0.0 by default without any authentication.
d) authentication allow policy by default. All listeners are open if no authentication is set. Good practise is that by default those are closed and admin can set anonymous authentication method what opens them for all if really wanted.
e) default password at admin console. Yes this is not so bad if admin console is binded to localhost. Anyway default password usually just brings false sense of security. That why usually it is keeped as bad design and recommended way is just remove login screen when no password is set. This is more like tweak compared to a-d

At that point I just shutted down that server and continue my holiday. I did not want to do full security review for that in my holiday what it clearly needs before it is safe to connect it back to internet. I think I return to this later but clearly there is place that your dev team do internal review for best practices. I dont want to be mean or anything but it is just big surprise to find so many "student solution" in same product what is so popular and targeted to be enterprise.
Do you want that I open tickets of each or is it better that your team first do review and make own action points? I think this is is great product but OOTB security had not been at priority list.

from emqx.

zmstone avatar zmstone commented on September 27, 2024

We have to continue providing easy to start defaults.

  • For security concerns of the default values, we will provide a security checklist (or alerts) (For internal ref: ER-246 )
  • To simplify SSL listener configuration, we will implement ACME client (For internal ref: ER-247 )

from emqx.

burner- avatar burner- commented on September 27, 2024

I understand that there is always little balancing with easy deploy vs security. Anyway most of times it is also balancing so that it is better that product deploy take 10min instead of 5min if user prevent 5hour manual hardening work with it.
So it is much better to put admin/cluster listen ports to localhost by default and then document well how to open those. It is common practice in software industry by reason.
And for open listeners just enable password authentication by default and software wont get "my first student project" wibe at start.
Those are just bare minimum things to do if you have any kind security culture and wont make deployment any harder.

from emqx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.