2022년 7월 28일 목요일

머리 없는(headless) 컴퓨터

헤드리스 컴퓨터란 모니터/키보드/마우스 없이 운용되는 컴퓨터를 말한다. 서버 컴퓨터의 경우 보통 원격으로 접속하여 작업을 수행하기 때문에 본체에 이러한 '머리'를 붙이지 않아도 된다. 다소 오래 된 PC 중에는 키보드나 비디오 카드가 없으면 BIOS 수준에서 부팅이 중단되게 만들어진 것도 있다. 랙 마운트 서버라면 공간과 비용을 줄이기 위해 헤드리스 상태로 작업을 하는 것이 일반적이다.

가끔 터미널 에뮬레이터 프로그램으로 리눅스 서버에 접속하여 커널을 업그레이드한 뒤 재부팅 신호를 보내게 된다. 원격에서 컴퓨터를 재부팅할 때 가장 두려운 것은 새로 셋업한 설정이 맞지 않거나 하드웨어 오류가 나서 접속이 되지 않는 것이다. 모니터/키보드/마우스를 직결한 '머리 있는' 컴퓨터라면 훨씬 편안한 마음으로 부팅 프로세스를 진행할 수 있다.

8월이면 장기간의 외부 파견 근무를 나가게 된다. 내가 골방(원래는 통신 설비가 보관된 방)에서 헤드리스 상태로 쓰던 리눅스 서버의 하드디스크 드라이브를 정리하고 나서 1년 동안 비워둘 사무실로 본체를 가지고 왔다. 엄밀히 말하자면 KVM 스위치를 연결하여 사용하였으니 문자 그대로의 헤드리스 컴퓨터는 아니었다. 그러나 가끔 관리 작업이 필요해서 골방에서 엉거주춤 앉지도 못한 채 키보드를 두드릴 때에는 참 구슬프다는 생각이 들기도 했다.

SSH 포트 번호는 기본값인 22번을 쓰지 말라는 것이 전산 보안 담당 부서의 지시 사항이므로, 다른 값으로 바꾸기 위하여 컴퓨터에 직결한 '머리'에서 작업을 시작하였다. CentOS이므로 /etc/ssh/sshd_config 파일을 수정한 뒤 다음 sshd를 재시작하였다.

$ systemctl restart sshd

그런데 터미널에서는 에러 메시지를 토해냄과 동시에 메뉴바에 평소에 보지 못하던 아이콘이 하나 떴다. 뭔가 싶어서 클릭을 해 보았다.



이게 뭔가? SELinux(Security-Enhanced Linux, 보안 강화 리눅스)에서 문제를 발견했다는 뜻이다. 매우 어색하게 국문으로 표시된 설명을 보니 관리자 권한으로 무엇을 어떻게 하면 된다는 아주 친절한 안내가 있었다. 이대로 따라서 한 다음 systemctl 명령으로 sshd를 재시작한 뒤, 원격 컴퓨터에서 Xshell을 열고 바뀐 포트 번호로 접속을 시도하였다. 성공적으로 개통 완료!

SELinux 관련 설정은 리눅스를 새로 깔 때에나 접하고 그 후로는 아예 인식을 하지 못하고 있었다. Red Hat의 SELinux 관련 공식 문서(SELinux 개념, 설정, 사용법)를 참조하면서 /etc/sysconfig/selinux 파일을 열어 보았다. 'SELINUX=enforcing'라는 글귀가 선명하다. 만약 이 리눅스 컴퓨터를 헤드리스 상태로 유지한 채 포트 번호를 바꾸었더라면, 왜 접속이 되지 않는지 도무지 이유를 알 수 없었을 것이다. 그렇기에 컴퓨터에 머리를 붙이는 것이 중요한 것이다.

모니터를 직접 연결하지 않고도 여러 컴퓨터의 상태를 모니터하고 관리를 할 수 있는 방법이 없는 것은 아니다. 시리얼 포트를 이용하는 방법도 있고, 서버급 컴퓨터 중에는 RJ-45 커넥터로 연결하는 관리용 포트를 제공하기도 한다. 그렇다 하더라도 모니터 출력을 직접 보는 것만큼 간단하고도 강력한 수단은 없을 것이다.

보안과 네트워크 관련 설정은 언제나 해결하기 어려운 숙제이다. 그 자체가 어려운 주제이고, 많은 경우에는 서로 다른 OS를 넘나드는 일이기 때문에 더욱 그러하다. 집에서는 볼루미오를 업데이트한 뒤 Wi-Fi를 이용한 접속이 잘 되지 않고 있고, 사무실에서는 Synology NAS의 볼륨을 재구성한 뒤 NAS와 NFS 클라이언트 컴퓨터 측의 GID/UID가 서로 맞지 않아서 파일의 소유주가 이상하게 표현되는 문제에 직면하였다. 이 문제를 해결해야 생활이 편리해 지는데...

댓글 없음: