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 항목이 에서 먼저 나오는 경우 /etc/hosts
해당 항목이 우선적으로 적용됩니다.
(이것이 의 줄 files
에 있는 첫 번째 값이라고 가정합니다 . 또는 DNS를 사용하여 호스트 이름을 확인할 수 없다고 가정합니다.)hosts:
/etc/nsswitch.conf
Arch Wiki 페이지에서는 다음을 설명합니다.
호스트 이름 --fqdn을 실행하여 로컬 시스템의 현재 구성된 FQDN이 무엇인지 확인할 수 있습니다. 호스트 이름 --short의 출력은 로그 메시지를 작성할 때 rsyslog에서 사용됩니다. 로그에 전체 호스트 이름을 포함하려면 파일 시작 부분에 $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() 함수는 localhost.localdomain을 로컬 시스템의 FQDN으로 반환합니다. 그런 다음 /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) 에서 어떻게 선택되는지 정확히 말하기 어려울 수 있습니다 . 소스 코드를 다시 읽어보니 rsyslog
시스템 호스트 이름(명령 출력 hostname
)을 FQDN으로 확인하려고 시도한 것 같습니다.
내 생각에 이것은 위에서 "gethostname 또는 gethostbyname"이라고 표시된 부분이 실제로는 "gethostname"이라고 말해야 한다는 의미라고 생각합니다.그리고gethostbyname". 따라서 해당 지침은 아마도 개선될 수 있지만 최소한 올바른 위치를 알려줍니다.
에도 매우 비슷한 질문이 있습니다.rsyslog-users 메일링 리스트.