๐Ÿง SSH ๋ณด์•ˆ ๋” ๋‚˜์€ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ 5๊ฐ€์ง€ ์‰ฌ์šด ํŒ ๐Ÿ›ก๏ธ

๋ณด์•ˆ ์‰˜ (Secure Shell)์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ์ ‘๊ทผ์˜ ์•ˆ์ „์„ฑ ๊ฐ•ํ™”

“`html

5 Ways to Secure SSH on Your Linux System

Gentoo Penguin in Antarctica

Iโ€™ve been using Secure Shell (SSH) for decades. With this remote login tool, I can rest assured my remote machines accept logins securely and efficiently. At the same time, I also understand nothing is ever 100% secure on any device connected to a network, which is why I always take time to better secure SSH on every computer I use.

๐ŸŒ Also: The best VPN services (and how to choose the right one for you)

You might be surprised at how easy it is to add a few extra โ€œlayersโ€ of security. As I highlight below, there are some easy-to-apply tips that will help your Linux desktop and server machine to be a bit more secure, so you can trust theyโ€™re better protected against unwanted logins. Letโ€™s get to work.

1. Install fail2ban: The Protector of Machines ๐Ÿฆธโ€โ™€๏ธ

One of the first things you should do (especially on a server) is install fail2ban, which prevents malicious and brute-force login attacks and can also be used to monitor other networking protocols (such as HTTP, SSH, and FTP).

๐ŸŒ Also: Do you need antivirus on Linux?

With fail2ban, you create jails, which are configurations that tell the system what to do when certain things happen (such as a failed SSH login attempt). Jail files (typically named jail.local) are housed in /etc/fail2ban/ and might look something like this:

“`

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 300
bantime = 28800
ignoreip = 127.0.0.1

“`html

๋ฐ๋น„์•ˆ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ fail2ban์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

“`

sudo apt-get install fail2ban -y

ํŽ˜๋„๋ผ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ๋Š” ํ•ด๋‹น ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

sudo dnf install fail2ban -y

2. ๊ธฐ๋ณธ ํฌํŠธ ๋ณ€๊ฒฝํ•˜๊ธฐ: ์€๋ฐ€ํ•œ ์ž‘์ „ ๐Ÿ•ต๏ธโ€โ™‚๏ธ

๊ธฐ๋ณธ์ ์œผ๋กœ SSH๋Š” ์ˆ˜์‹  ์—ฐ๊ฒฐ์— ํฌํŠธ 22๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์€ ๋„๋ฆฌ ์•Œ๋ ค์ ธ ์žˆ์–ด ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ์—์„œ๋Š” ํ•ญ์ƒ ํฌํŠธ๋ฅผ 2124์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํฌํŠธ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ ๋˜ํ•œ: ์•„๋งˆ๋„ ์žŠ๊ณ  ์žˆ์„ 4๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋ณด์•ˆ ๋‹จ๊ณ„

ํฌํŠธ ๊ตฌ์„ฑ์€ /etc/ssh/sshd_config ํŒŒ์ผ์— ์„ค์ •๋˜๋ฉฐ #Port 22๋ผ์ธ์— ์žˆ์Šต๋‹ˆ๋‹ค.

# ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ํฌํŠธ๋กœ 22๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์„ ์™„๋ฃŒํ•œ ํ›„ SSH๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”:

sudo systemctl restart ssh

ํŽ˜๋„๋ผ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

sudo systemctl restart sshd

“`html

3. ๊ณต๋ฐฑ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ์ฐจ๋‹จ: ๋นˆ์นธ์ด ์—†๋Š” ๊ณต๊ฐ„ ๐Ÿ’”

์•„๋งˆ ๊ณต๋ฐฑ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ์— ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค๋งŒ, ์ด ํŒ์€ “๋ฏธ์•ˆํ•˜๋‹ค” ๋Œ€์‹  “์•ˆ์ „ํ•œ ๊ฒƒ์ด ์ข‹๋‹ค” ๋ฒ”์ฃผ์— ์†ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‚˜์œ ํ–‰์œ„์ž๊ฐ€ ์ด๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด /etc/ssh/sshd_config ํŒŒ์ผ์„ ์—ด์–ด ๋‹ค์Œ ์ค„์„ ์ฐพ์œผ์„ธ์š”:

“`

#PermitEmptyPasswords no

๊ทธ ์ค„์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค:

PermitEmptyPasswords no

“`html

ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ๋‹ซ์€ ๋‹ค์Œ SSH๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

4. ํŠน์ • IP ์ฃผ์†Œ๋กœ ๋กœ๊ทธ์ธ ์ œํ•œ: VIP ๋ชฉ๋ก ๐ŸŒ

๋‹ค๋ฅธ ๋งค์šฐ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์€ SSH ์•ก์„ธ์Šค๋ฅผ ํŠน์ • IP ์ฃผ์†Œ๋กœ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๋ช…๋งŒ ๊ธฐ๊ณ„์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฉฐ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ IP ์ฃผ์†Œ๊ฐ€ 192.168.1.11์ด๋ผ๋ฉด, /etc/hosts.allow ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ SSH ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ ์„ ํ˜ธํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ(์˜ˆ: nano)๋กœ ์—ด๊ณ  ๋‹ค์Œ ์ค„์„ ๋งจ ์•„๋ž˜์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค:

“`

sshd: 192.168.1.62, 192.168.1.11

Sure! Here is the translated HTML code in Korean, keeping the original information of the src attribute unchanged:

“`html

๋งŒ์•ฝ ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์€ IP ์ฃผ์†Œ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์žˆ๋‹ค๋ฉด, ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•„์š”ํ•œ๋งŒํผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ ์ฃผ์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค:

“`

sshd: 192.168.1.62, 192.168.1.11, 192.168.1.12, 192.168.1.13, 192.168.1.14

“`html

ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ๋‹ซ์Šต๋‹ˆ๋‹ค.

5. Use SSH key authentication: Passkeys Unite ๐Ÿ”‘โœจ

SSH ํ‚ค ์ธ์ฆ์˜ ์ค‘์š”์„ฑ์€ ๊ณผ์–ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ์‚ฌ์—์„œ ์ด๋ฏธ ์ด ๊ธฐ์ˆ ์ด ์–ด๋–ป๊ฒŒ ์„ค์ •๋˜๋Š”์ง€ ๋ณด์—ฌ๋“œ๋ ธ์œผ๋‹ˆ, ํ•ด๋‹น ๊ธฐ์‚ฌ๋ฅผ ์ฝ๊ณ  ์ด ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”. fail2ban๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” SSH ํ‚ค ์ธ์ฆ์€ ์›์น˜ ์•Š๋Š” SSH ๋กœ๊ทธ์ธ์„ ๋ฐฉ์ง€ํ•˜๋Š” ํ›Œ๋ฅญํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‹ค๋ฃฌ ๊ฒƒ์ฒ˜๋Ÿผ – Linux ๋ฐ์Šคํฌํƒ‘ ๋ฐ ์„œ๋ฒ„ ๋ชจ๋‘์—์„œ SSH๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. SSH์— ‘์•ˆ์ „’์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์•ˆ์ „ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ์ถ”๊ฐ€ ๊ตฌ์„ฑ์„ ํ†ตํ•ด SSH ๋กœ๊ทธ์ธ์„ ์ธํ„ฐ๋„ท์„ ๋ฐฐํšŒํ•˜๋ฉฐ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•˜๋ ค๋Š” ๋‚˜์œ ์‚ฌ์šฉ์ž๋“ค๋กœ๋ถ€ํ„ฐ ๋”์šฑ ์ž˜ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์šฉ๋œ ์ฐธ๊ณ  ๋ฌธํ—Œ: 1. Windows 10 ๋ฐ 11์—์„œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉํ•˜๊ธฐ [2024] 2. ๋‹คํฌ ์›น์— ์•ˆ์ „ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ• [2024] 3. Deepin 23, ๊ฐ€์žฅ ์•„๋ฆ„๋‹ค์šด Linux ๋ฐ์Šคํฌํ†ฑ ์ค‘ ํ•˜๋‚˜์˜ ํƒ€์ดํ‹€์„ ์ƒํ™˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค 4. OM Systems OM1 Mark II๋Š” ๊ฐœ์„ ๋œ ์ž๋™ ์ดˆ์  ์•ˆ์ •ํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค 5. Fedora Linux๋Š” M1 ๊ธฐ๋ฐ˜ Mac์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค โ€” ํ•œ ๊ฐ€์ง€ ์ œ์™ธํ•˜๊ณ 

์ด ๊ธฐ์‚ฌ๋ฅผ Linux ์• ํ˜ธ๊ฐ€์™€ ๊ณต์œ ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์‹œ์Šคํ…œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ์‹œ๋‹ค! ๐Ÿ’ช๐Ÿ”’

๐Ÿ“ข ์งˆ๋ฌธ ๋ฐ ๋‹ต๋ณ€ ์„ธ์…˜: ๊ท€ํ•˜์˜ ์˜๊ฒฌ ๋‹ค๋ค„๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ™‹โ€โ™€๏ธ๐Ÿ™‹โ€โ™‚๏ธ

Q: fail2ban์€ SSH ๋ณด์•ˆ์—๋งŒ ์œ ์šฉํ•œ๊ฐ€์š”? A: ์•„๋‹ˆ์š”, fail2ban์€ HTTP ๋ฐ FTP์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํ‚น ํ”„๋กœํ† ์ฝœ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•…์˜์ ์ธ ๋กœ๊ทธ์ธ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Q: ๊ธฐ๋ณธ SSH ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์˜ ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? A: ๊ธฐ๋ณธ SSH ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€์ ์ธ ๋‚œํ•ด์„ฑ์„ ๋”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๋‹จ๋ ฅ์žˆ๋Š” ํ•ด์ปค๋ฅผ ๋ง‰์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ, ์ผ๋ถ€ ์ž๋™ํ™”๋œ ์Šค์บ๋‹ ๋„๊ตฌ๊ฐ€ ์ง์ ‘ ๊ธฐ๊ธฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Q: SSH ํ‚ค ์ธ์ฆ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? A: ๋„ค, SSH๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ SSH ํ‚ค ์ธ์ฆ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ์„ ๋ชจ๋‘ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ ค๋ฉด SSH ํ‚ค ์ธ์ฆ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Q: fail2ban์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์‹œ์Šคํ…œ์—์„œ ์™ธ๋ถ€๋กœ ์ฐจ๋‹จ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? A: ์‹ค์ˆ˜๋กœ fail2ban์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ณ  ์ฐจ๋‹จ๋˜๋ฉด, ์ฐจ๋‹จ ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ์ˆ˜๋™์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ fail2ban ๊ตฌ์„ฑ์—์„œ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ์—ฌ์ „ํžˆ ์•ก์„ธ์Šค๋ฅผ ํšŒ๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q: ์ด๋Ÿฌํ•œ ํŒ์€ Linux ์‹œ์Šคํ…œ์—๋งŒ ์ ์šฉ๋˜๋‚˜์š”? A: ์ด ๊ธฐ์‚ฌ๋Š” Linux ๋ฐ์Šคํฌํƒ‘ ๋ฐ ์„œ๋ฒ„์—์„œ SSH๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ์ง€๋งŒ, ์ด ํŒ ์ค‘ ๋งŽ์€ ๊ฒƒ์€ SSH๋ฅผ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์ธ BSD ๋ฐ macOS์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SSH ์—ฐ๊ฒฐ์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์€ ์ง€์†์ ์ธ ์—ฌ์ •์ž…๋‹ˆ๋‹ค. ์ ๊ทน์ ์œผ๋กœ ๋Œ€์‘ํ•˜์—ฌ ์•ˆ์ „์„ ์œ ์ง€ํ•˜์„ธ์š”! ๐Ÿ›ก๏ธโœจ

๐Ÿ‘ ๊ธฐ์‚ฌ๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด ์นœ๊ตฌ๋“ค๊ณผ ๊ณต์œ ํ•˜์„ธ์š”!

“`