OpenSSH를 (Secure Shell 열기)는 다음을 사용하여 네트워크를 통해 암호화 된 통신을 허용하는 응용 프로그램 집합입니다. 프로토콜 SSH. 프로그램에 대한 자유롭고 개방적인 대안으로 만들어졌습니다. 보안 쉘, 이는 독점 소프트웨어입니다. « 위키 백과.
일부 사용자는 모범 사례가 서버에만 적용되어야한다고 생각할 수 있지만 그렇지 않습니다. 많은 GNU / Linux 배포판에는 기본적으로 OpenSSH가 포함되어 있으며 몇 가지 유의해야 할 사항이 있습니다.
보안
SSH를 구성 할 때 염두에 두어야 할 6 가지 가장 중요한 사항은 다음과 같습니다.
- 강력한 암호를 사용하십시오.
- SSH의 기본 포트를 변경합니다.
- 항상 SSH 프로토콜 버전 2를 사용하십시오.
- 루트 액세스를 비활성화합니다.
- 사용자 액세스를 제한합니다.
- 키 인증을 사용하십시오.
- 기타 옵션
강력한 암호
좋은 비밀번호는 영숫자, 특수문자, 공백, 대문자, 소문자 등을 포함하는 비밀번호입니다. 여기에서 DesdeLinux 우리는 좋은 비밀번호를 생성하는 몇 가지 방법을 보여주었습니다. 방문 가능 이 문서는 y 이 다른.
기본 포트 변경
SSH의 기본 포트는 22입니다. 변경하려면 파일을 편집하기 만하면됩니다. / etc / ssh / sshd_config. 우리는 다음과 같은 줄을 찾습니다.
#Port 22
주석 처리를 해제하고 22를 다른 숫자로 변경합니다. 예를 들면 다음과 같습니다.
Port 7022
컴퓨터 / 서버에서 사용하지 않는 포트를 알기 위해 터미널에서 실행할 수 있습니다.
$ netstat -ntap
이제 컴퓨터 나 서버에 액세스하려면 다음과 같이 -p 옵션을 사용하여 수행해야합니다.
$ ssh -p 7022 usuario@servidor
프로토콜 2 사용
SSH 프로토콜의 버전 2를 사용하고 있는지 확인하려면 파일을 편집해야합니다. / etc / ssh / sshd_config 다음과 같은 줄을 찾으십시오.
# 프로토콜 2
주석 처리를 제거하고 SSH 서비스를 다시 시작합니다.
루트로 액세스를 허용하지 마십시오
루트 사용자가 SSH를 통해 원격으로 액세스 할 수 없도록하려면 파일을 살펴 봅니다./ etc / ssh / sshd_config 라인 :
#PermitRootLogin no
주석을 제거합니다. 이 작업을 수행하기 전에 사용자에게 관리 작업을 수행하는 데 필요한 권한이 있는지 확인해야합니다.
사용자의 액세스 제한
또한 신뢰할 수있는 특정 사용자에게만 SSH를 통한 액세스를 허용하는 것도 문제가되지 않으므로 파일로 돌아갑니다. / etc / ssh / sshd_config 다음 줄을 추가합니다.
AllowUsers elav usemoslinux kzkggaara
분명히 사용자 elav, usemoslinux 및 kzkggaara가 액세스 할 수있는 사용자입니다.
키 인증 사용
이 방법이 가장 권장되지만 암호를 입력하지 않고 서버에 액세스 할 수 있으므로 특별히주의해야합니다. 즉, 사용자가 세션에 들어가거나 컴퓨터가 도난 당하면 문제가 발생할 수 있습니다. 그러나 방법을 살펴 보겠습니다.
첫 번째는 한 쌍의 키 (공개 및 개인)를 만드는 것입니다.
ssh-keygen -t rsa -b 4096
그런 다음 키를 컴퓨터 / 서버에 전달합니다.
ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7
마지막으로 파일에서 주석을 제거해야합니다. / etc / ssh / sshd_config 라인 :
AuthorizedKeysFile .ssh/authorized_keys
기타 옵션
사용자가 시스템에 성공적으로 로그인 할 수있는 대기 시간을 30 초로 줄일 수 있습니다.
LoginGraceTime 30
TCP 스푸핑을 통한 ssh 공격을 방지하고 ssh 측을 최대 3 분 동안 암호화 된 상태로 두려면이 3 가지 옵션을 활성화 할 수 있습니다.
TCPKeepAlive 없음 ClientAliveInterval 60 ClientAliveCountMax 3
보안상의 이유로 사용하지 않는 것이 권장되는 rhosts 또는 shosts 파일의 사용을 비활성화합니다.
IgnoreRhosts 예 IgnoreUserKnownHosts 예 RhostsAuthentication 아니요 RhostsRSAAuthentication 아니요
로그인하는 동안 사용자의 유효 권한을 확인하십시오.
StrictModes yes
권한 분리를 활성화합니다.
UsePrivilegeSeparation yes
결론 :
이러한 단계를 수행하여 컴퓨터와 서버에 보안을 추가 할 수 있지만 중요한 요소가 있다는 사실을 절대 잊지 말아야합니다. 의자와 키보드 사이에 뭐가 있지. 그래서 나는 독서를 추천한다 이 문서는.
출처 : 위조하는 방법
@elav의 우수한 게시물과 몇 가지 흥미로운 것을 추가합니다.
로그인그레이스타임 30
이를 통해 사용자가 시스템에 성공적으로 로그인 할 수있는 대기 시간을 30 초로 줄일 수 있습니다.
TCPKeepAlive 아니요
ClientAliveInterval 60
ClientAliveCountMax 3
이 세 가지 옵션은 TCP 스푸핑을 통해 ssh 공격을 방지하는 데 매우 유용하며 암호화 된 ssh 측에서 최대 3 분 동안 활성 상태를 유지합니다.
예 IgnoreRhosts
IgnoreUserKnownHosts 예
RhostsAuthentication 번호
RhostsRSAAuthentication 아니오
보안상의 이유로 사용하지 말 것을 권장하는 rhosts 또는 shosts 파일의 사용을 비활성화합니다.
StrictModes 예
이 옵션은 로그인 중에 사용자의 유효 권한을 확인하는 데 사용됩니다.
UsePrivilegeSeparation 예
권한 분리를 활성화합니다.
글쎄요, 잠시 후 글을 수정해서 글에 추가하겠습니다 😀
라인을 변경하지 않도록 주석 해제는 중복됩니다. 주석 처리 된 줄은 각 옵션의 기본값을 표시합니다 (파일 자체의 시작 부분에있는 설명을 참조하십시오). 루트 액세스는 기본적으로 비활성화되어 있습니다. 따라서 주석을 제거해도 전혀 효과가 없습니다.
예,하지만 예를 들어 프로토콜 버전 2 만 사용하고 있다는 것을 어떻게 알 수 있습니까? 1과 2를 동시에 사용할 수 있기 때문입니다. 마지막 줄에서 말했듯이 예를 들어이 옵션의 주석 처리를 제거하면 기본 옵션을 덮어 씁니다. 기본적으로 버전 2를 사용하고 있다면 괜찮습니다. 그렇지 않다면 YES 또는 YES를 사용합니다 😀
의견 주셔서 감사합니다
아주 좋은 기사, 나는 몇 가지를 알고 있었지만 나에게 결코 명확하지 않은 한 가지는 키의 사용, 실제로 그것이 무엇이며 어떤 이점이 있는지, 키를 사용하면 암호를 사용할 수 있습니까 ??? 그렇다면 보안이 강화되는 이유는 무엇이며 그렇지 않은 경우 다른 PC에서 어떻게 액세스합니까?
인사말, 데비안 8.1을 설치했는데 WINSCP를 사용하여 Windows PC에서 데비안으로 연결할 수 없습니다. 프로토콜 1을 사용해야합니까? 어떤 도움이 .. 감사합니다
아디 안
openssh에 대한이 비디오에 관심이있을 수 있습니다. https://m.youtube.com/watch?v=uyMb8uq6L54
나는 여기에서 몇 가지를 시도하고 싶습니다. 몇 가지는 Arch Wiki 덕분에 이미 시도했으며 다른 것은 게으름이나 무지로 인해 시도했습니다. RPi를 시작할 때 저장합니다.