잘못된 비밀번호를 입력 한 후 발생하는 지연을 어떻게 변경합니까?


32

로그인 프롬프트에 잘못된 비밀번호를 입력하면 약 3 초간 지연됩니다. PAM이있는 Linux 시스템에서 어떻게 변경합니까?


1
보안 관점에서 지연이 필요하지만 기본 지연 다소 성가신 일입니다.
Mike Pennington 2016 년

3
이것은 흥미로웠다; 어쩌면 N 지연없이 지연을 시도하고 긴 지연으로 수많은 시도를 허용하는 모듈을 작성할 것입니다.
Shawn J. Goff 2016 년

1
대신에 (내 이전 코멘트에서 제안) 새로운 모듈의, 내가 사용 pam_unixnodelay옵션 pam_tally2으로 deny=5 unlock_time=15; 이렇게하면 5 번의 재 시도가 가능하지만 15 초 동안 (비밀번호를 사용해도) 액세스는 거부됩니다. 설명 된 모델을 작성하려고 시도하지만 이제는 백 버너 프로젝트입니다. 시스템에 대한 기본 액세스가 DOS 공격을 사소하게 만들기 때문에 네트워크 기반이라면 적합하지 않기 때문입니다.
Shawn J. Goff

1
시간 초과로 인한 네트워크 DoS가 걱정된다면 fail2ban을 사용하십시오. 실제로 안전하다고 생각하더라도 사용하십시오. 나는 이틀간의 금지 시간을 사용
마이크 페닝 턴

답변:


21

나는 당신이 리눅스와 pam을 사용한다고 가정합니다. 지연이 원인 일 수 pam_faildelay.so있습니다. 을 /etc/pam.d사용 하여 pam 구성을 확인하십시오 pam_faildelay. 예 :

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

시간을 변경하려면 지연 매개 변수를 조정하십시오. 지연을 제거하려면 전체 줄을 삭제하거나 주석을 달 수 있습니다.

지연의 또 다른 원인은 다음과 같습니다 pam_unix.so. 매개 변수 를 pam_unix.so추가하여 발생하는 지연을 비활성화 nodelay하고 선택적 pam_faildelay.so으로 (변수) 지연을 추가하기 위해 회선 호출 을 추가하려면 다음과 같이하십시오.

auth       optional   pam_faildelay.so  delay=100000

2
어디에서나 지연에 대한 언급은 없습니다 /etc/pam.d/*. 내가 보는 가장 가까운 것은 pam_tally.so몇 번의 시도 후에 잠금을 허용 한다는 것 입니다. 그러나 나는 n을 가지고 /etc/login.defs있는데, 이것이 내가 필요한 것일 수도 있습니다.
Shawn J. Goff

@ ShawnJ.Goff pam_tally.so는 내가 아는 한 지연을 일으키지 않습니다. 이 거래의 또 다른 출처는 다음 pam_unix.so과 같습니다. nodelay옵션을 사용하여 비활성화 할 수 있습니다. 자세한 내용 은 linux.die.net/man/8/pam_unix 를 참조하십시오.
Ulrich Dangel

1
추가 중 nodelay에 옵션 pam_unix.so과 함께 새로운 항목을 추가 pam_faildelay.so delay=$some_number제가 원하는대로 설정할 수 있습니다. 감사!
Shawn J. Goff

2
fedora 23을 실행하면서 pam_unix.so지연 을 비활성화하고 pam_faildelay.so@ ShawnJ.Goff가 말하는 것처럼 지연을 사용해야했습니다. 그러나 대부분의 pam.d구성에는 " 이 파일은 자동 생성됩니다. 다음에 authconfig를 실행할 때 사용자 변경 내용이 지워집니다. "지연을 영구적으로 구성 할 수있는 위치는 무엇입니까?
jozxyqk

11

nodelay매개 변수 를 전달해야 합니다 auth pam_unix.so.

인증 방법에 따라 매개 변수를 설정해야하는 위치가 다릅니다. 그러나 대부분의 리눅스 배포판은 /etc/pam.d/system-auth다른 모든 파일에 포함되는 것과 같은 것을 가지고 있습니다.

예를 들어 /etc/pam.d/system-auth다음과 같은 줄이있을 수 있습니다.

auth            sufficient      pam_unix.so try_first_pass nullok

이것은 다음과 같이 변경되어야합니다.

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

pam_unix.so모듈은 /etc/passwd및 에 대한 인증을 수행합니다 /etc/shadow. 개봉 된 LDAP 또는 다른 암호 백엔드를 사용하는 경우, 당신은 가능성이 여전히 설정해야 nodelaypam_unix.so그 (때 프롬프트를 제어 무엇으로 pam_unix.so인증에 실패, 그것은 일반적으로 그냥 다음 모듈로 얻은 암호를 전달합니다).

당신은에 대한 자세한 내용 pam_unix.so을 읽을 수 있습니다man pam_unix


내 시스템 system-auth에는 존재하지 않았습니다. 이었다 /etc/common-auth. 감사!
Luc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.