Linux에서 SSH 서버를 보호하는 3가지 방법

SSH는 네트워크 또는 인터넷을 통해 다른 Linux PC 및 서버에 터미널 액세스를 얻을 수 있게 해주기 때문에 정말 좋습니다! 그러나 이 기술이 놀라운 만큼 이 기술을 사용하는 것이 안전하지 않게 만드는 몇 가지 눈에 띄는 보안 문제가 있습니다. 일반 사용자라면 복잡한 SSH 보안 도구를 설치할 필요가 없습니다. 대신 Linux에서 SSH 서버를 보호하려면 다음 기본 단계를 따르는 것이 좋습니다.

기본 연결 포트 변경

지금까지 SSH 서버를 보호하는 가장 빠르고 쉬운 방법은 사용하는 포트를 변경하는 것입니다. 기본적으로 SSH 서버는 포트 22에서 실행됩니다. 변경하려면 터미널 창을 엽니다. 터미널 창 내에서 SSH 서버를 호스팅하는 원격 PC에 SSH합니다.

ssh [email protected]

로그인하면 일반 사용자에서 루트로 이동합니다. 루트 계정이 있는 경우 su로 로그인하는 것이 좋습니다. 그렇지 않으면 sudo로 액세스 권한을 얻어야 합니다.

su -

또는

sudo -s

이제 관리자 액세스 권한이 있으므로 Nano에서 SSH 구성 파일을 엽니다.

nano /etc/ssh/sshd_config

“Port 22″에 대한 구성 파일을 스크롤합니다. #이 있으면 제거하고 “22”를 다른 숫자로 변경합니다. 일반적으로 100개 이상의 포트 또는 1,000개 범위의 포트면 충분합니다. 포트 번호를 변경한 후 Ctrl + O 키보드 조합을 눌러 편집 내용을 저장합니다. 그런 다음 Ctrl + X를 눌러 편집기를 종료합니다.

구성 파일을 편집한다고 해서 SSH 서버가 올바른 포트를 사용하도록 즉시 전환되는 것은 아닙니다. 대신 서비스를 수동으로 다시 시작해야 합니다.

systemctl restart sshd

systemctl 명령을 실행하면 SSH 데몬이 재부팅되고 새 설정이 적용됩니다. 데몬 재시작에 실패하면 다른 옵션은 SSH 서버 시스템을 재부팅하는 것입니다.

reboot

데몬(또는 시스템)을 다시 시작한 후에는 포트 22를 통해 SSH에 액세스할 수 없습니다. 따라서 SSH를 통해 연결하려면 포트를 수동으로 지정해야 합니다.

  AppleScript 소개

참고: SSH 구성 파일에 설정된 포트로 “1234”를 변경해야 합니다.

ssh -p 1234 [email protected]

비밀번호 로그인 비활성화

SSH 서버를 보호하는 또 다른 좋은 방법은 암호 로그인을 제거하고 대신 SSH 키를 통한 로그인으로 전환하는 것입니다. SSH 키 경로로 이동하면 SSH 서버와 키가 있는 원격 시스템 간에 신뢰 범위가 생성됩니다. 해독하기 어려운 암호화된 암호 파일입니다.

서버에서 SSH 키로 설정하십시오. 키를 설정했으면 터미널을 열고 SSH 구성 파일을 엽니다.

su -

또는

sudo -s

그런 다음 다음을 사용하여 Nano에서 구성을 엽니다.

nano /etc/ssh/sshd_config

기본적으로 SSH 서버는 사용자 암호를 통해 인증을 처리합니다. 보안 암호가 있는 경우 이 방법을 사용하는 것이 좋지만 신뢰할 수 있는 컴퓨터의 암호화된 SSH 키가 더 빠르고 편리하며 안전합니다. “비밀번호 로그인”으로의 전환을 완료하려면 SSH 구성 파일을 확인하십시오. 이 파일 내에서 스크롤하여 “PasswordAuthentication”이라는 항목을 찾으십시오.

“PasswordAuthentication” 앞의 # 기호를 제거하고 앞에 “no”라는 단어가 있는지 확인합니다. 모든 것이 괜찮아 보이면 키보드에서 Ctrl + O를 눌러 SSH 구성에 대한 편집 내용을 저장합니다.

구성을 저장한 후 Ctrl + X로 Nano를 닫고 SSHD를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart sshd

systemd를 사용하지 않는 경우 대신 다음 명령을 사용하여 SSH를 다시 ​​시작해 보십시오.

service ssh restart

다음에 원격 시스템이 이 SSH 서버에 로그인을 시도할 때 올바른 키를 확인하고 암호 없이 키를 허용합니다.

루트 계정 비활성화

SSH 서버에서 루트 계정을 비활성화하면 권한이 없는 사용자가 SSH를 통해 액세스할 때 발생할 수 있는 손상을 완화할 수 있습니다. 루트 계정을 비활성화하려면 SSH 서버에서 최소한 한 명의 사용자가 sudo를 통해 루트를 얻을 수 있어야 합니다. 이렇게 하면 루트 암호 없이 필요한 경우 시스템 수준 액세스 권한을 얻을 수 있습니다.

참고: sudo를 통해 루트 권한에 액세스할 수 있는 사용자에게 보안 암호가 있는지 확인하십시오. 그렇지 않으면 수퍼유저 계정을 비활성화하는 것은 의미가 없습니다.

  Linux에서 CPU를 확인하는 방법

루트를 비활성화하려면 터미널을 수퍼유저 권한으로 승격하십시오.

sudo -s

sudo -s를 사용하면 su로 로그인할 필요가 없으며 대신 sudoers 파일을 통해 루트 셸을 부여합니다. 이제 셸에 수퍼유저 액세스 권한이 있으므로 암호 명령을 실행하고 –lock을 사용하여 루트 계정을 스크램블합니다.

passwd --lock root

위의 명령을 실행하면 루트 계정의 비밀번호가 스크램블되어 su를 통한 로그인이 불가능합니다. 이제부터 사용자는 로컬 사용자로만 SSH에 접속한 다음 sudo 권한을 통해 루트 계정으로 전환할 수 있습니다.