SSH 보안 시작하기: Linux에서 보안 연결을 설정하는 13가지 방법
SSH는 Linux 서버에 원격으로 로그인하고 관리하는 데 사용되는 프로토콜로, 데이터 전송을 암호화하고 중간자 공격과 도청을 방지할 수 있습니다. 그러나 SSH 자체도 무차별 비밀번호 크래킹, 포트 스캐닝, 세션 하이재킹 등과 같은 일부 보안 위협에 직면할 수 있습니다. 따라서 SSH 서버 연결을 보호하고 보안과 안정성을 향상시키기 위해 몇 가지 조치를 취해야 합니다. 이 기사에서는 기본 포트 변경, 루트 로그인 비활성화, 키 인증 사용, 로그인 시도 제한, 방화벽 사용, 이중 인증 사용 등을 포함하여 Linux에서 보안 SSH 연결을 설정하는 13가지 방법을 소개합니다.
1. 루트 사용자 로그인 비활성화
먼저 루트 사용자에 대한 SSH 액세스를 비활성화하고 루트 권한이 있는 새 사용자를 만듭니다. 루트 사용자의 서버 액세스를 끄는 것은 공격자가 시스템에 액세스하는 것을 방지하는 방어 전략입니다. 예를 들어 다음과 같이 exampleroot라는 사용자를 생성할 수 있습니다.
으아아아위 명령에 대한 간략한 설명은 다음과 같습니다.
useradd 명령은 새 사용자를 생성하는 데 사용됩니다. -m 매개변수는 홈 디렉터리에 생성된 사용자에 대한 폴더를 생성합니다.
passwd 명령은 새 사용자에게 비밀번호를 할당하는 데 사용됩니다. 사용자에게 할당된 비밀번호는 복잡하고 추측하기 어려운 비밀번호여야 한다는 점을 기억하세요.
usermod -aG sudo는 새로 생성된 사용자를 관리자 그룹에 추가합니다.
사용자를 생성한 후 sshd_config 파일을 일부 변경해야 합니다. 이 파일은 /etc/ssh/sshd_config에서 찾을 수 있습니다. 텍스트 편집기를 사용하여 파일을 열고 다음과 같이 변경합니다.
으아아아PermitRootLogin 매개변수는 루트 사용자가 SSH를 사용하여 원격 액세스를 얻는 것을 방지합니다. AllowUsers 목록에 exampleroot를 포함하면 사용자에게 필요한 권한이 부여됩니다.
마지막으로 다음 명령을 사용하여 SSH 서비스를 다시 시작합니다.
으아아아실패하고 오류 메시지가 나타나면 아래 명령을 시도해 보세요. 이는 사용 중인 Linux 배포판에 따라 다를 수 있습니다.
으아아아2. 기본 SSH 포트 변경
기본 SSH 연결 포트는 22입니다. 물론 모든 공격자는 이를 알고 있으므로 SSH 보안을 보장하려면 기본 포트 번호를 변경해야 합니다. 공격자는 Nmap 스캔을 사용하여 새 포트 번호를 쉽게 찾을 수 있지만 여기서 목표는 공격자의 작업을 더 어렵게 만드는 것입니다.
포트 번호를 변경하려면 /etc/ssh/sshd_config를 열고 파일을 다음과 같이 변경합니다.
으아아아이 단계를 완료한 후 sudo systemctl restart ssh 명령을 다시 사용하여 SSH 서비스를 다시 시작하세요. 이제 방금 정의한 포트를 사용하여 서버에 액세스할 수 있습니다.
방화벽을 사용하는 경우 방화벽에서 필요한 규칙을 변경해야 합니다. netstat -tlpn 명령을 실행하면 SSH의 포트 번호가 변경된 것을 확인할 수 있습니다.
3. 빈 비밀번호로 로그인하는 것은 금지되어 있습니다
실수로 생성한 비밀번호가 없는 사용자가 시스템에 있을 수 있습니다. 이러한 사용자가 서버에 액세스하지 못하도록 하려면 sshd_config 파일의 PermitEmptyPasswords 줄 값을 no로 설정할 수 있습니다.
으아아아4. 로그인/접속 시도 횟수를 제한하세요
기본적으로 서버에 액세스하는 데 필요한 만큼의 비밀번호 시도를 사용할 수 있습니다. 그러나 공격자는 이 취약점을 악용하여 서버에 무차별 공격을 가할 수 있습니다.
sshd_config 파일에 허용된 비밀번호 시도 횟수를 지정하여 SSH 연결을 자동으로 종료할 수 있습니다.
이렇게 하려면 MaxAuthTries 값을 변경하세요.
MaxAuthTries 3
5、使用SSH Version 2
SSH Version 2 的发布是因为第一版存在许多漏洞。默认情况下,您可以通过将 Protocol 参数添加到您的 sshd_config 文件中来启用使用SSH Version 2。
这样,您所有未来的连接都将使用 SSH2。
Include /etc/ssh/sshd_config.d/*.conf
Protocol 2
6、关闭TCP端口转发和X11转发
攻击者可以通过SSH连接进行端口转发,尝试获取访问您其他系统的权限。为了防止这种情况发生,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能。
X11Forwarding no AllowTcpForwarding no
7、使用SSH密钥连接
连接到服务器最安全的方法之一是使用SSH密钥。使用SSH密钥,您可以无需密码访问服务器。此外,您可以通过更改sshd_config文件中的与密码相关的参数来完全关闭服务器的密码访问。
创建SSH密钥时,有两个密钥:公钥和私钥。公钥上传到您要连接的服务器,私钥存储在使用该密钥进行连接的计算机上。
在计算机上使用ssh-keygen命令创建SSH密钥。不要留空Passphrase字段,并记住您在此输入的密码。
如果您留空该字段,则只能通过SSH密钥文件进行访问。但是,如果设置了密码,您可以防止拥有密钥文件的攻击者访问它。
例如,您可以使用以下命令创建SSH密钥:
ssh-keygen
8、SSH连接的IP限制
大多数情况下,防火墙使用其标准框架阻止访问并旨在保护服务器。但是,这并不总是足够的,您需要增加此安全性潜力。
要做到这一点,请打开/etc/hosts.allow文件。通过在此文件中进行添加,您可以限制SSH权限,允许特定IP块或输入单个IP并使用拒绝命令阻止所有其余IP地址。
下面是一些示例设置。完成这些操作后,像往常一样重新启动SSH服务以保存更改。
IP-Restriction-for-SSH-Connection-1
9、有选择地允许用户和组访问
您可以配置sshd配置文件以有选择地允许或禁止用户和组从SSH登录到您的服务器。默认情况下,所有用户和组都允许访问。当您管理不应由除那些具有适当权限的人以外的任何人访问的生产服务器时,这是一种安全风险。
以下是您需要添加以允许/拒绝用户和组访问SSH的行:
AllowUsers: username sshuser@ip:port AllowGroups: groupname DenyUsers: username1 username2 sshuser@ip:port DenyGroups: groupname
10、设置空闲超时时间间隔
如果一个受信任的用户离开他们的桌面未经注销,那么拥有他们电脑访问权限的对手可以利用这一点,在缺席或不活动的受信任用户的情况下对服务器进行恶意操作。
抵御这种情况的最简单方法是设置一个空闲超时时间间隔。在定义的一段不活动时间后,服务器将终止与用户的SSH连接,以防止在缺席或不活动的情况下未经授权的访问。
以下是您需要添加到ssh配置文件中以开启此设置的行:
ClientAliveInterval 120
根据配置文件中发出的命令,经过120秒的不活动时间后,连接将被终止。您可以更改数字以适应自己的喜好。
12、添加 Banner 警告语言
虽然这不是一种主动的安全措施,但添加 Banner 警告语言可以是一种有用的心理策略,用于防止不受欢迎的访客,并在他们试图以恶意意图连接到您的服务器时使对手处于不利位置。
要添加自定义 Banner 警告语言,请首先仔细准备横幅的文本或从互联网上抓取一个通用的文本文件,然后将以下行添加到您的配置文件中:
Banner /path/to/banner/banner.txt
12、强制使用强大的MAC算法
在SSH的上下文中,MAC代表消息认证码。MAC是一种加密算法,用于验证和确认客户端与服务器之间的数据传输。
设置强大的MAC算法非常重要,以确保数据的完整性和保密性,这是网络安全的两个关键支柱。以下是您需要在配置文件中添加的行:
Banner /path/to/banner/banner.txt
13、将LogLevel设置为监视SSH活动
您可以监视SSH活动的不同详细程度。默认情况下,此功能可能已关闭。建议您打开此功能,并将其设置为基本日志记录级别 – INFO,该级别仅记录用户的错误、消息、密钥验证、登录和注销活动。
如果您愿意,可以将其更改为更详细的级别,例如VERBOSE或DEBUG。以下是您需要在sshd配置文件中添加的行:
LogLevel INFO
现在,您的SSH服务器将生成基本日志数据,您可以通过导航到并读取基于Debian / Ubuntu的机器上的/var/log/auth.log*文件和基于RHEL / CentOS / Fedora的机器上的/var/log/secure文件来阅读此日志数据。
您可以查看整个日志文件并导航到带有sshd的部分,或者使用grep命令过滤内容并仅阅读sshd日志。
Linux 服务器安全的重要性
通过本文的介绍,我们学习了在Linux上建立SSH安全连接的13种方法,它们可以帮助我们防止一些常见的SSH攻击和漏洞,提高我们的服务器安全性和可信度。当然,这些方法并不是全部,还有一些其他的技巧和工具可以用来增强SSH的安全性,比如使用SSH代理、隧道、跳板等。我们建议你根据自己的实际情况和需求,选择合适的方法来保护你的SSH服务器连接。希望你喜欢这篇文章,并享受你的SSH体验。
위 내용은 SSH 보안 시작하기: Linux에서 보안 연결을 설정하는 13가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 시스템의 5 가지 기본 구성 요소는 다음과 같습니다. 1. Kernel, 2. System Library, 3. System Utilities, 4. 그래픽 사용자 인터페이스, 5. 응용 프로그램. 커널은 하드웨어 리소스를 관리하고 시스템 라이브러리는 사전 컴파일 된 기능을 제공하며 시스템 유틸리티는 시스템 관리에 사용되며 GUI는 시각적 상호 작용을 제공하며 응용 프로그램은 이러한 구성 요소를 사용하여 기능을 구현합니다.

git 저장소 주소를 보려면 다음 단계를 수행하십시오. 1. 명령 줄을 열고 리포지토리 디렉토리로 이동하십시오. 2. "git remote -v"명령을 실행하십시오. 3. 출력 및 해당 주소에서 저장소 이름을 봅니다.

vs 코드 1 단계/다음 단계 바로 가기 키 사용 : 1 단계 (뒤로) : Windows/Linux : Ctrl ←; MACOS : CMD ← 다음 단계 (앞으로) : Windows/Linux : Ctrl →; MACOS : CMD →

Linux의 주요 용도에는 다음이 포함됩니다. 1. 서버 운영 체제, 2. 임베디드 시스템, 3. 데스크탑 운영 체제, 4. 개발 및 테스트 환경. Linux는이 분야에서 뛰어나 안정성, 보안 및 효율적인 개발 도구를 제공합니다.

메모장은 Java 코드를 직접 실행할 수는 없지만 다른 도구를 사용하여 명령 줄 컴파일러 (Javac)를 사용하여 Bytecode 파일 (filename.class)을 생성하면 달성 할 수 있습니다. Java Interpreter (Java)를 사용하여 바이트 코드를 해석하고 코드를 실행하고 결과를 출력하십시오.

Sublime에서 코드를 실행하는 6 가지 방법이 있습니다. 핫키, 메뉴, 빌드 시스템, 명령 줄, 기본 빌드 시스템 설정 및 사용자 정의 빌드 명령, 프로젝트/파일을 마우스 오른쪽 단추로 클릭하여 개별 파일/프로젝트를 실행합니다. 빌드 시스템 가용성은 숭고한 텍스트 설치에 따라 다릅니다.

Laravel을 설치하려면 다음 단계를 순서대로 수행하십시오. Composer 설치 (MacOS/Linux 및 Windows) 설치 LARAVEL 설치 프로그램 새 프로젝트 시작 서비스 액세스 애플리케이션 (URL : http://127.0.1:8000) 데이터베이스 연결 (필요한 경우)을 설정하십시오.

Visual Studio Code (VSCODE)는 Microsoft가 개발 한 크로스 플랫폼, 오픈 소스 및 무료 코드 편집기입니다. 광범위한 프로그래밍 언어에 대한 가볍고 확장 성 및 지원으로 유명합니다. VSCODE를 설치하려면 공식 웹 사이트를 방문하여 설치 프로그램을 다운로드하고 실행하십시오. VScode를 사용하는 경우 새 프로젝트를 만들고 코드 편집, 디버그 코드, 프로젝트 탐색, VSCODE 확장 및 설정을 관리 할 수 있습니다. VSCODE는 Windows, MacOS 및 Linux에서 사용할 수 있으며 여러 프로그래밍 언어를 지원하며 Marketplace를 통해 다양한 확장을 제공합니다. 이점은 경량, 확장 성, 광범위한 언어 지원, 풍부한 기능 및 버전이 포함됩니다.
