sudo 비밀번호는 얼마나 중요합니까?


25

나는 sudo는 암호가 로컬에 물리적으로 접근 가진 누군가에 의해 해킹으로부터 컴퓨터를 보호하는 것을 알고있다 ( 편집 : 실제로, 그것은 하지 않습니다 ). 내 암호는 그 목적을 위해 충분히 강력하지만 누군가가 원격으로 무차별 암호를 입력 할 수 있다면 충분히 강력하지 않다는 것을 알고 있습니다.

사람의 접근 표준 우분투 데스크탑 설치에있는 컴퓨터에 물리적 인 접근과 내 sudo는 암호를 사용하여 루트 모드에서 내 컴퓨터?

  1. 네트워크에 액세스 할 수 있다면 확실히 그렇습니다 (짧은 답변)
  2. 보안에 충분히주의를 기울이지 않으면 (긴 대답)
  3. "ssh"가 실행 중이고 2FA가 없는 경우 ( 댓글 및 답변)
  4. sudo / 사용자 비밀번호없이 루트로 컴퓨터에 액세스 할 수 있습니다

나를 포함하여 말 그대로 "누구나", 또는 예를 들어 내가 신뢰하는 일부 ppa 관리자
mxdsp

1
SSH와 sudo를 통해 루트로 액세스 할 수 있습니다.
Aizuddin Zali

1
정확하게. 이를 강화하기 위해 2FA를 사용할 수 있습니다. 이 가이드를
Aizuddin Zali

1
그런 다음 SSH 공격에서 저장됩니다. 사람들이 사용하는 많은 해킹 기술이 있습니다.
Aizuddin Zali

1
"sudo password"와 같은 것은 없습니다.
hobbs

답변:


34

sudo 암호는 컴퓨터에 물리적으로 액세스 할 수있는 사람이 컴퓨터를 로컬에서 해킹하지 못하도록 보호합니다.

나는 당신을 너무 겁 내고 싶지 않지만, 누군가가 물리적으로 접근 할 수 있다면 당신은 당신의 암호가 아무리 강한 지에 관계없이 그들에게 접근 할 수 있습니다. 누군가 귀하의 루트 비밀번호를 변경할 수 있으려면 누군가 1 번 재부팅해야합니다 (현재 비밀번호를 입력하지 않아도 "grub rescue"에서 수행 할 수 있음). 그건 그렇고 :이 방법은 유효한 것으로 간주되며 보안 위험이 허용됩니다 (그렇지 않으면 암호가 손상 된 경우 시스템을 수정할 수 없습니다).

하지만 누군가가 원격으로 무차별 대입 할 수 있다면 충분히 강하지 않다는 것을 알고 있습니다.

ROUTER는 단기간에 동일한 정보를 요청하는 반복 요청 인 경우 외부로부터의 액세스를 잠글 수있을 정도로 똑똑해야합니다. 기본적으로 여기에있는 것은 DOS 공격 (또는 2+ 컴퓨터가 공격하는 경우 DDOS)입니다. 라우터는 해당 연결에서 새 요청을 수락하기 전에 해당 연결을 끊고 대기 시간을 적용해야합니다.

표준 Ubuntu 데스크탑 설치에서 컴퓨터에 물리적으로 액세스하지 않고 sudo 암호를 사용하여 루트 컴퓨터로 내 컴퓨터에 액세스 할 수 있습니까?

먼저 연결 한 다음 sudo 비밀번호를 제공해야합니다. "루트"모드가 비활성화되고 "#"프롬프트에 직접 로그인 할 수 없습니다.

서비스를 남용 할 수 있습니다. 해당 시스템에서 "ssh"를 실행 중이고 시스템에서 "ssh"를 수행 할 수 있고 해당 사용자의 사용자 이름과 비밀번호 (관리자 사용자 인 sudo 비밀번호도)를 보유한 경우 시스템에 액세스 할 수 있습니다. 엉망으로 만듭니다. 그건 그렇고 : 그들이 그렇게하는 경우 먼저 시스템에 대한 지식이 있어야합니다 (예 : 비밀번호).

그러나 그 문제 (및 다른 방법)에 문제가 있습니다. 암호는 어떻게 암호를 얻었습니까? 그들은 시스템 자체에서 그것을 얻을 수 없습니다. 그리고 일반적으로 추측은 문제의 가치가 없습니다. 사회적으로 설계된 경우 ... 시스템, 우분투 또는 리눅스의 보안 모델이 아니라 문제가 있습니다.

당신의 sudo 암호가 당신의 것이면 괜찮을 것입니다. 그리고 암호가 강력한 경우 더 나아질 것입니다 (기억하기 쉽지만 다른 사람이 추측 할 수는 없음). 내가 이것을 논의 할 때 내가 사용한 예 : "Abwegwfkwefkwe"를 암호로 사용하여 "Abwegwfkwefkwe"라는 이름을 사용하는 경우 암호가 좋지 않더라도 (나쁜 사람은 "당신의 개 이름은 무엇입니까?" 무료 추측). "Abwegwfkwefkwe"와 관련이 없으면 좋은 암호입니다.

내가 줄 수있는 최선의 조언 :

  • 요청 될 것으로 예상되는 경우를 제외하고 요청 될 때 관리자 비밀번호를 입력하지 마십시오. 브라우저를 열고 "관리자 계정 암호 요청"과 같은 팝업이 표시되면 ... 중지하고 먼저 생각하십시오.

  • "스도"유예 기간이 활성화 된 상태에서 시스템을 방치하지 마십시오. sudo --reset-timestamp현재 유예 기간을 제거하고 다음에 "sudo"를 사용할 때 비밀번호를 다시 묻습니다. AFK로 갈 때 화면을 잠그십시오.

  • 재미를 위해 서비스 나 소프트웨어를 설치하지 마십시오. ssh설치 하지 않아도되는 ssh경우 웹 서버를 사용하지 않는 경우 웹 서버를 설치하지 마십시오. 현재 실행중인 서비스를 살펴보십시오. 노트북에서 BT를 사용하지 않으면 비활성화하십시오. 웹캠을 사용하지 않는 경우 웹캠을 비활성화하십시오 (활성화 된 경우). 더 이상 사용하지 않는 소프트웨어를 삭제하십시오.

  • 그리고 정말 편집증 (그리고 네 편집증 팬더를보고 있습니다) : 암호를 너무 자주 변경하십시오. 루트킷 헌터를 설치하여 부적절한 액세스를 확인할 수도 있습니다.

  • 중요한 데이터를 오프라인 상태로 백업하십시오. 따라서 시스템에서 누군가를 찾더라도 포맷하고 새로운 설치로 시작하고 데이터를 복원 할 수 있습니다.


2
으로 또는 진정한 편집증으로 축약 sudo --reset-timestamp할 수 있습니다 (공격자가 시스템 시간을 임의의 값으로 설정할 수있는 경우에만 필요합니다. sudo -ksudo -K
Kevin

ps 나는 긴 버전을 사용했기 때문에 그것이 무엇인지 분명합니다. "-k"는 실제로 동일합니다.
Rinzwind

1
@mxdsp : 암호문이 충분히 강력한 경우 암호화를 사용하면 암호화 된 파티션의 내용을 읽을 수 없지만 실행중인 컴퓨터 나 최근에 종료 된 컴퓨터 에서 암호화 키가져올 수 있습니다 . Crypto는 또한 빠르게 변화하는 분야이므로 암호화가 더 이상 사용되지 않고 쉽게 깨지지 않도록 새로운 개발을 따라야합니다.
케빈

1
@mxdsp 예. 예를 들어, 디스크를 포맷 할 수 있고 데이터가 사라지면 문제가있는 것입니다.
Rinzwind

1
첫 번째 부분은 암시 적으로 전체 디스크 암호화가 없다고 가정합니다.
otus

6

네, 그들은 할 수 있어요.

여러 가지 방법이 있지만 sudo암호를 무차별 적으로 적용하는 것이 첫 번째 방법은 아닙니다.

우선, sudo비밀번호는 사용자의 비밀번호입니다. 그래서 정말 그들이 얻을 필요가 줄 것은 사용자의 암호를 입력합니다.

둘째, 시스템에 액세스하기 위해 무차별 대입을 사용하여 사용자 암호를 해독하는 것이 최후의 수단 일 것입니다.

다른 시스템으로 침입하는 더 우아하지만 (대부분 더 효과적인) 방법이 있습니다.

일반적으로 공격자는 가장 일반적인 취약점 (가장 알려진 방법으로 사용자 셸을 가져오고 루트 쉘을 얻기 위해 ShellShock을 악용하는 것으로 알려진)을 악용하려고 시도하거나 다음과 같은 행을 따라 가장 훌륭한 작업을 수행합니다.

  • 다음과 같은 정보를 얻기 위해 시스템에서 열린 포트를 스캔합니다.
    • 운영 체제 버전
    • 서비스 버전 실행
  • 알려진 운영 체제를 이용하거나 최소한 사용자 셸을 얻기 위해 서비스 버그 (버퍼 오버플로 등)를 실행 한 다음 루트 셸을 얻으려고 시도합니다 (다시, ShellShock 이용).

sudo루트 쉘을 얻을 수없는 경우 / 사용자의 암호를 무차별 적 으로 시행하는 것이 시도가 될 수 있지만 루트로 실행되는 서비스를 이용하는 경우 공격자가 sudo/ 사용자의 암호 를 무차별 적으로 요구하지는 않습니다 .


1
고맙습니다. 간단히 말해, 침입자는 루트 액세스 권한을 얻기 위해 sudo 암호가 필요하지 않습니다.
mxdsp 2016 년

2
@mxdsp 정확합니다. 공격자가 어떤 방법 으로든 sudoer 사용자 셸을 얻는 경우 (예 : sudoer 사용자의 실행중인 프로그램 탐색) 알려진 공격 (내 대답에서 가장 악명 높은 언급)을 사용하여 루트 셸을 가져 와서 우회 할 수 있습니다. 사용자의 sudo비밀번호 가 필요 합니다. 또한 루트로 실행되는 서비스를 악용 할 경우 직접 루트입니다.
kos

1
@mxdsp 이제 우리는 꽤 일반화하고 있지만, 예를 들어 권한이 없는 사용자 (= 공격자가 로그인했지만 공격자가 암호를 모르는 사용자)가 루트를 얻는 방법을 이해 하려면 이 비디오 를 참조하십시오. sudo알려진 버그 (이 경우 악명 높은 ShellShock)를 악용하여 쉘.
kos

1
@mxdsp 편이 아니라 sudoers 사용자가 아니라 사용자를 의미했습니다. 그럴 필요는 없습니다. 동시에 너무 많은 것을 생각하고있었습니다.
kos

3
  1. 지난 몇 년간 보안에 관해 배운 것이 있다면, 불가능은 없습니다 .

  2. 네트워크에 액세스 할 수 있다면 확실합니다. 네트워크를 통해 액세스 할 수있는 시스템에서 실행되는 각 서비스는 이론적으로 취약하므로 잠재적 인 약점입니다.

따라서 충분한 아이디어를 가진 공격자의 경우 가능합니다. 시스템을 최대한 안전하게 만들 수 있지만 100 % 안전을 얻을 수는 없습니다.

따라서 정당한 기술 노력으로 가능한 것이 무엇인지, 그리고 자신을 더 이상 보호 할 수없는 것이 무엇인지 평가하는 것이 중요합니다.


네트워크에 액세스 할 수 있습니다. 그러한 종류의 공격이 얼마나 될 수 있는지에 대해 더 구체적으로 설명 할 수 있습니까?
mxdsp

1
이중 인증을 사용하십시오. PAM.D 등을 편집해야합니다.
Aizuddin Zali

@Arronical 링크는이 포럼뿐만 아니라 아주 좋은 가이드입니다.
Aizuddin Zali

@Arronical 질문 의견에 넣었습니다. 이 안내서
Aizuddin Zali

죄송합니다 @AizuddinZali 페이지를 새로 고치지 않았습니다!
Arronical

2

sudo 암호는 물리적으로 액세스 할 수있는 사람이 컴퓨터를 로컬로 해킹하지 못하도록 보호합니다 (실제로는 그렇지 않습니다). 내 암호는 그 목적을 위해 충분히 강력하지만 누군가가 원격으로 무차별 암호를 입력 할 수 있다면 충분히 강력하지 않다는 것을 알고 있습니다. 표준 Ubuntu 데스크탑 설치에서 컴퓨터에 물리적으로 액세스하지 않고 sudo 암호를 사용하여 루트 컴퓨터로 내 컴퓨터에 액세스 할 수 있습니까?

sudo 비밀번호는 로컬 보호만을위한 것이 아니라 루트 권한 사용에 보안 계층을 추가하는 것입니다. https://superuser.com/a/771523/467316 에서 좋은 토론을 찾을 수 있습니다.

생각보다 암호가 강력하지 않을 수 있습니다. 지금은 이전에 본 적이있는 클라이언트의 Active Directory 해시 중 20-40 %를 크래킹하고 있습니다. 암호 규칙이 잘못된 사용자는 70 %의 크랙이 발생합니다. 16 자의 복잡한 암호를 권장합니다. oclHashcat 및 Radeon 그래픽 카드는 많은 손상을 줄 수 있습니다. 지난 5 년간의 모든 위반에서 모든 비밀번호 덤프를 추가하면 작업하기에 좋은 사전을 얻는 경향이 있습니다.

SSH를 사용하는 경우 sshd_config에서 약간 조정하십시오.

sudo nano /etc/ssh/sshd_config

게이트 밖으로 나가야하는 머스트 (마지막으로 FTP 서버를 사용하지 않을 경우 비활성화).

Protocol 2
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 5
#Subsystem sftp /usr/lib/openssh/sftp-server

저장하고 ssh를 다시 시작하십시오.

sudo service ssh restart

퍼블릭 키 암호화 사용 퍼티 젠이나 OS에서 사용할 수있는 모든 기능을 사용하여 원격 시스템에서 키를 생성하여 시작하십시오. authorized_keys 파일로 로그인하려는 사용자의 공개 키를 Ubuntu 시스템에 복사하십시오 (아마도 생성해야 함).

sudo nano /home/yourdumbusername/.ssh/authorized_keys

이 형식으로 공개 키를 복사

ssh-rsa 23r0jfjlawjf342rffjfa89pwfj8ewfew98pfrfj8428pfwa9fupfwfcajwfpawf8rfapfj9pf892jpfjpwafj8a where-ever-you-have-your-private-key-for-your-own-notes

저장하고 공개 키 로그인을 허용하도록 sshd_config를 설정하십시오.

sudo nano /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

저장하고 ssh를 다시 시작

sudo service ssh restart

공개 키 암호화를 사용하여 개인 키 컴퓨터에서 우분투 호스트로 SSH를 시도하십시오. 모든 것이 잘 되었다면 우분투 호스트로 돌아가서 암호 인증을 비활성화하십시오.

sudo nano /etc/ssh/sshd_config

PasswordAuthentication no

ssh 저장 및 재시작

sudo service ssh restart

개인 키 컴퓨터에서 sshing을 다시 시도하여 확인하십시오.

더 추가하고 싶습니까? 권한이없는 계정을 설정하고, PermitRootLogin no를 돌리고, ssh를 다시 시작하고, 새 계정의 authorized_keys에 공개 키를 추가하고, 권한이없는 계정으로 로그인하십시오.


2

sudo의 목적은 비밀번호와 관련이 없으며 특정 사용자에게 루트 권한을 부여하는 동시에 루트 로그인 (비밀번호 / 키 / 보안 토큰 등)을 요구하지 않고 다른 사용자를 컴퓨터에서 제한하는 것입니다. 예를 들어, 직장에서 매일 작업자는 sudo를 통해서만 스테이션을 시작 / 종료 / 설치 및 업그레이드 할 수 있습니다. 의도적으로 / 제거, 장치 포맷, 사용자 추가 및 제거, 블랙리스트에 올릴 커널 모듈 결정 또는 crontab 등에서 실행하는 것과 같은 기타 루트 자유는 제공되지 않습니다. 집에서는 sudo를 사용하여 기계에 완전히 액세스 할 수 있습니다. 암호와 관련하여 실제로 sudo에 필요한 사용자 계정의 암호입니다 (자동 로그인이 활성화되어 있지 않은 경우 로그인시 사용하는 것과 동일).

나쁜 팁 : sudo enabled unix (linux / apple osx)에서 root를 일반 계정으로 만들려면 다음을 실행하십시오.

sudo -s
passwd
Enter your unix password:

이 시점에서 루트는 일반 비밀번호를 가지고 있으며 "구식 방식"으로 언급 된 비밀번호를 사용하여 로그 아웃하고 루트로 로그인 할 수 있습니다.

보안과 관련하여 하나의 프로그램 (예 : 웹 서버, mysql, php 데몬, sshd)이 상승 된 계정으로 실행되는 경우 루트라고 알려진 알려진 익스플로잇이있는 경우 공격자는 액세스하기 위해 보안 자격 증명이 필요하지 않을 수 있습니다. 그들은 프로그램의 취약점을 이용하고 루트로 실행되는이 프로그램에서 새로운 쉘을 생성 할 수 있습니다. 그러나 배포 관리자가 비슷한 문제를 알고 잘 생각하고 일반적으로 안전한 기본 환경을 구축하는 데 탁월한 역할을하기 때문에 이것은 매우 드 rare니다.

에서 다른 운영 체제 sudo는 유사한 작업을 마우스 오른쪽 버튼으로 클릭하고 시스템 관리자 (또는 잔소리 UAC를 권한)으로 실행 될 것이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.