this post was submitted on 10 Feb 2025
740 points (99.3% liked)

linuxmemes

22397 readers
2642 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. πŸ‡¬πŸ‡§ Language/язык/Sprache
  • This is primarily an English-speaking community. πŸ‡¬πŸ‡§πŸ‡¦πŸ‡ΊπŸ‡ΊπŸ‡Έ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • Β 

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 2 years ago
    MODERATORS
     

    Background: 15 years of experience in software and apparently spoiled because it was already set up correctly.

    Been practicing doing my own servers, published a test site and 24 hours later, root was compromised.

    Rolled back to the backup before I made it public and now I have a security checklist.

    (page 2) 50 comments
    sorted by: hot top controversial new old
    [–] [email protected] 163 points 1 day ago (1 children)

    Basic setup for me is scripted on a new system. In regards to ssh, I make sure:

    • Root account is disabled, sudo only
    • ssh only by keys
    • sshd blocks all users but a few, via AllowUsers
    • All 'default usernames' are removed, like ec2-user or ubuntu for AWS ec2 systems
    • The default ssh port moved if ssh has to be exposed to the Internet. No, this doesn't make it "more secure" but damn, it reduces the script denials in my system logs, fight me.
    • Services are only allowed connections by an allow list of IPs or subnets. Internal, when possible.

    My systems are not "unhackable" but not low-hanging fruit, either. I assume everything I have out there can be hacked by someone SUPER determined, and have a vector of protection to mitigate backwash in case they gain full access.

    [–] [email protected] 70 points 1 day ago (4 children)
    • The default ssh port moved if ssh has to be exposed to the Internet. No, this doesn't make it "more secure" but damn, it reduces the script denials in my system logs, fight me.

    Gosh I get unreasonably frustrated when someone says yeah but that's just security through obscurity. Like yeah, we all know what nmap is, a persistent threat will just look at all 65535 and figure out where ssh is listening.. But if you change your threat model and talk about bots? Logs are much cleaner and moving ports gets rid of a lot of traffic. Obviously so does enabling keys only.

    Also does anyone still port knock these days?

    [–] [email protected] 4 points 16 hours ago

    I use port knock. Really helps against scans if you are the edge device.

    [–] [email protected] 4 points 17 hours ago

    Literally the only time I got somewhat hacked was when I left the default port of the service. Obscurity is reasonable, combined with other things like the ones mentioned here make you pretty much invulnerable to casuals. Somebody needs to target you to get anything.

    [–] [email protected] 19 points 1 day ago (2 children)

    Also does anyone still port knock these days?

    Enter Masscan, probably a net negative for the internet, so use with care.

    load more comments (2 replies)
    load more comments (1 replies)
    [–] [email protected] 41 points 22 hours ago (3 children)

    Do not allow username/password login for ssh. Force certificate authentication only!

    [–] [email protected] 10 points 16 hours ago

    If it's public facing, how about dont turn on ssh to the public, open it to select ips or ranges. Use a non standard port, use a cert or even a radius with TOTP like privacyIdea. How about a port knocker to open the non standard port as well. Autoban to lock out source ips.

    That's just off the top of my head.

    There's a lot you can do to harden a host.

    load more comments (2 replies)
    [–] [email protected] 39 points 22 hours ago (5 children)

    How are people's servers getting compromised? I'm no security expert (I've never worked in tech at all) and have a public VPS, never been compromised. Mainly just use SSH keys not passwords, I don't do anything too crazy. Like if you have open SSH on port 22 with root login enabled and your root password is password123 then maybe but I'm surprised I've never been pwned if it's so easy to get got...

    [–] [email protected] 1 points 9 hours ago

    Looking at ops other comment, weak password and no fail2ban

    [–] [email protected] 13 points 19 hours ago (1 children)

    glad my root pass is toor and not something as obvious as password123

    [–] [email protected] 4 points 19 hours ago

    toor, like Tor, the leet hacker software. So it must be super secure.

    [–] [email protected] 27 points 22 hours ago (1 children)

    By allowing password login and using weak passwords or by reusing passwords that have been involved in a data breach somewhere.

    [–] [email protected] 7 points 21 hours ago

    That makes sense. It feels a bit mad that the difference between getting pwned super easy vs not is something simple like that. But also reassuring to know, cause I was wondering how I heard about so many hobbyist home labs etc getting compromised when it'd be pretty hard to obtain a reasonably secured private key (ie not uploaded onto the cloud or anything, not stored on an unencrypted drive that other people can easily access, etc). But if it's just password logins that makes more sense.

    [–] [email protected] 5 points 19 hours ago

    That's incredible, I've got the same combination on my luggage.

    load more comments (1 replies)
    [–] [email protected] 74 points 1 day ago (1 children)

    One time, I didn’t realize I had allowed all users to log in via ssh, and I had a user β€œsteam” whose password was just β€œsteam”.

    β€œHey, why is this Valheim server running like shit?”

    β€œWtf is xrx?”

    β€œOh, it looks like it’s mining crypto. Cool. Welp, gotta nuke this whole box now.”

    So anyway, now I use NixOS.

    [–] [email protected] 16 points 21 hours ago

    Good point about a default deny approach to users and ssh, so random services don't add insecure logins.

    [–] [email protected] 46 points 1 day ago (1 children)

    Lol you can actually demo a github compromise in real time to an audience.

    Make a repo with an API key, publish it, and literally just watch as it takes only a few minutes before a script logs in.

    [–] [email protected] 30 points 22 hours ago (2 children)

    I search commits for "removed env file" to hopefully catch people who don't know how git works.

    [–] [email protected] 13 points 21 hours ago* (last edited 21 hours ago) (3 children)

    --verbose please?

    edit: never mind, found it. So there's dumbasses storing sensitive data (keys!) inside their git folder and unable to configure .gitignore...

    [–] [email protected] 12 points 21 hours ago

    yeah, I just tried it there, people actually did it.

    load more comments (2 replies)
    [–] [email protected] 11 points 21 hours ago

    You gremlin lmao

    [–] [email protected] 2 points 13 hours ago
    [–] [email protected] 8 points 19 hours ago (1 children)

    I like to spin up a public facing server and run tcpdump

    [–] [email protected] 4 points 16 hours ago (1 children)

    Lol! Honeypot or just bored?

    [–] [email protected] 4 points 15 hours ago (1 children)

    Actually I was troubleshooting a Firewall issue on site. I just forgot to use the filter arguments to reduce the output.

    [–] [email protected] 3 points 15 hours ago

    Oooof, I know that feeling.

    [–] [email protected] 51 points 1 day ago (1 children)

    Interesting. Do you know how it got compromised?

    [–] [email protected] 73 points 1 day ago* (last edited 1 day ago) (17 children)

    I published it to the internet and the next day, I couldn't ssh into the server anymore with my user account and something was off.

    Tried root + password, also failed.

    Immediately facepalmed because the password was the generic 8 characters and there was no fail2ban to stop guessing.

    [–] [email protected] 94 points 1 day ago (1 children)

    Don't use passwords for ssh. Use keys and disable password authentication.

    [–] [email protected] 52 points 1 day ago* (last edited 1 day ago) (4 children)

    More importantly, don't open up SSH to public access. Use a VPN connection to the server. This is really easy to do with Netbird, Tailscale, etc. You should only ever be able to connect to SSH privately, never over the public net.

    [–] [email protected] 29 points 1 day ago (8 children)

    It's perfectly safe to run SSH on port 22 towards the open Internet with public key authentication only.

    load more comments (8 replies)
    [–] [email protected] 3 points 16 hours ago

    Tailscale? Netbird? I have been using hamachi like a fucking neanderthal. I love this posts, I learn so much

    load more comments (2 replies)
    [–] [email protected] 27 points 1 day ago (14 children)

    wow crazy that this was the default setup. It should really force you to either disable root or set a proper password (or warn you)

    load more comments (14 replies)
    load more comments (15 replies)
    [–] [email protected] 7 points 19 hours ago

    Use gnome powder to shrink, go behind the counter, kick his ass and get your money back.

    [–] [email protected] 24 points 1 day ago* (last edited 1 day ago) (5 children)

    You should turn off ssh password logins on external facing servers at a minimum. Only use ssh keys, install fail2ban, disable ssh root logins, and make sure you have a firewall limiting ports to ssh and https.

    This will catch most scripted login attempts.

    If you want something more advanced, look into https://en.m.wikipedia.org/wiki/Security_Technical_Implementation_Guide and try to find an ansible playbook to apply them.

    load more comments (5 replies)
    [–] [email protected] 25 points 1 day ago* (last edited 1 day ago) (4 children)

    And this is why every time a developer asks me for shell access to any of the deployment servers, I flat out deny the request.

    Good on you for learning from your mistakes, but a perfect example for why I only let sysadmins into the systems.

    load more comments (4 replies)
    [–] [email protected] 7 points 22 hours ago (1 children)

    I do worry about putting up public servers that other people might rely on because there's something I might not realize making it vulnerable.

    So far I have pubkey root login only on the VPSs I'm messing around with, but my ol' reliable private key from 6 years ago might be beginning to fall behind on encryption standards.

    [–] [email protected] 3 points 15 hours ago

    You may not want root login.

    ssh-keygen -t ed25519

    For that new key hotness

    load more comments
    view more: β€Ή prev next β€Ί