LDAP 로그인과 관련된 내용을 디버깅 중입니다.Ldap SSH 로그인이 작동하지 않음 - 20개 이상의 다른 서버에서 동일한 구성이 작동함 - Ubuntu일부 서버에서는 로그가 localhost를 사용하고 다른 서버에서는 로그가 호스트 이름을 사용하는 것으로 나타났습니다. 특히 로그 파일을 중앙 집중화하는 경우 호스트 이름을 갖는 것이 가장 적합한 것 같습니다.
이것은 어떻게 구성되어 있나요? 기본적으로 호스트 이름을 사용하지 않는 이유는 무엇입니까? 그냥 좀 궁금해지네요...
예:
Oct 29 11:23:56 daily sshd[20625]: pam_unix(sshd:session): session opened for user LDAPUSERNAME by (uid=0)
또는
Oct 29 10:56:36 localhost sshd[2560]: pam_unix(sshd:auth): check pass; user unknown
고쳐 쓰다:
user@qa-ops:~$ hostname
qa-ops
user@daily:~$ hostname
daily.domain.com
아마도 이것은 호스트 이름에 전체 도메인 이름이 있는 Daily와 관련이 있습니까? 나는 항상 /etc/hostname이 전체 호스트 이름.domain.com 등이 아니라 호스트 이름의 짧은 부분이어야 한다고 생각했습니다.
답변1
https://wiki.archlinux.org/index.php/rsyslog#Configure_Hostname
Rsyslog는 glibc 루틴 gethostname() 또는 gethostbyname()을 사용하여 로컬 컴퓨터의 호스트 이름을 확인합니다. BIND 또는 NIS를 사용하지 않는 경우 gethostname() 또는 gethostbyname() 루틴은
/etc/hosts
FQDN(정규화된 도메인 이름)의 내용을 검사합니다.
보다 구체적으로 말하면, localhost
귀하의 IP 항목이 1위인 경우 /etc/hosts
해당 항목이 우선적으로 적용됩니다.
files
( 가운데 행의 첫 번째 값 이라고 가정합니다 . 또는 DNS를 사용하여 호스트 이름을 확인할 수 없습니다.)hosts:
/etc/nsswitch.conf
Arch Wiki 페이지에서는 다음을 설명합니다.
호스트 이름 --fqdn을 실행하여 로컬 컴퓨터에 현재 구성된 FQDN을 확인할 수 있습니다. rsyslog는 로그 메시지를 작성할 때 호스트 이름 --short의 출력을 사용합니다. 로그에 전체 호스트 이름을 포함하려면 파일에 쓰는 지침을 사용하기 전에 파일 시작 부분에 $PreserveFQDN을 추가해야 합니다. 이는 rsyslog가 구성 파일을 읽고 즉시 적용한 후 다음 줄을 읽기 때문입니다.
/etc/hosts 파일에는 FQDN을 IP 주소에 매핑하고 별칭을 FQDN에 매핑하는 많은 줄이 포함되어 있습니다. 아래 샘플 /etc/hosts 파일을 참조하세요.
/etc/호스트
#<ip-address> <hostname.domain.org> <hostname> #<ip-address> <actual FQDN> <aliases> 127.0.0.1 localhost.localdomain somehost.localdomain localhost somehost ::1 localhost.localdomain somehost.localdomain localhost somehost
localhost.localdomain은 IP 주소 다음의 첫 번째 항목이므로 gethostbyname() 함수는 로컬 컴퓨터의 FQDN으로 localhost.localdomain을 반환합니다. 그러면 /var/log/messages 파일은 localhost를 호스트 이름으로 사용합니다.
호스트 이름으로 somehost를 사용하십시오. somehost.localdomain을 첫 번째 항목으로 이동합니다.
/etc/호스트
#<ip-address> <hostname.domain.org> <hostname> #<ip-address> <actual FQDN> <aliases> 127.0.0.1 somehost.localdomain localhost.localdomain localhost somehost ::1 somehost.localdomain localhost.localdomain localhost somehost
/etc/hosts
다양한 경우에 (또는 해당 문제의 경우 DNS) 관련 정보를 선택하는 방법을 정확하게 지정하는 것이 어려울 수 있습니다 . 소스 코드를 다시 읽어보면 시스템 호스트 이름( 명령 출력)을 FQDN으로 rsyslog
확인하려는 시도인 것 같습니다.hostname
내 생각에 이는 위에서 "gethostname 또는 gethostbyname"이라고 표시된 부분이 실제로는 "gethostname"이라고 표시되어야 함을 의미한다고 생각합니다.그리고gethostbyname". 따라서 이 지침은 아마도 개선될 수 있지만 최소한 올바른 위치를 알려줍니다.
온라인에서도 비슷한 질문을 한 사람이 있었습니다.rsyslog - 사용자 메일링 리스트.