증상 발생
- 우분투 업그레이드를 진행하였는데 업그레이드 진행한 이후 쉘 접속이 끊기는 문제가 발생하였습니다. 업그레이드는 다음과 같은 명령어를 사용하여 진행하였습니다.
# 배포 패키지 업그레이드
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
# 리눅스 릴리즈 업그레이드
sudo apt install update-manager-core
sudo do-release-upgrade
-
서버에 직접 모니터를 물려서 확인해보니 물리 네트워크 인터페이스가 인식이 되지 않는 것이 문제였습니다. 해당 문제는 아래 명령어를 통해 확인하였습니다.
ifconfig -a | grep eth0 # 결과값이 출력되나 IPv4 가 할당되지 않음. (평소였다면 할당되었어야 함)
결과값이 출력되지 않음.
- 이후 구글링을 통해 원인을 찾았습니다.
apparmor.d 가 문제.
-
업그레이드 직후 apparmor.d 가 문제였습니다. (그렇다고 기본 네트워크를 아예 못쓰게만드냐...)
-
확인해보니 apparmor 는 SELinux 와 유사한 리눅스 보안 모듈이라 합니다.
해결
-
apparmor.d 정책 중 dhclient 에 대한 것을 비활성화하였습니다.
# apparmor.d 를 비활성화 sudo ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable/ sudo /etc/init.d/apparmor reload
-
apparmor 에서 특정 정책 complain 모드로 변경하여 해결할 수도 있습니다. 여기서 complain 모드란 정책을 제한하진 않되, 로그로만 기록해 두는 모드입니다.
sudo aa-complain /usr/sbin/dhclient
- 아래는 비활성화 명령어 History 를 캡쳐한 부분입니다.
이으며..
- 이 방법은 완전한 해결 방법이 아닌데다가, aa-status 명령어를 치면 나오는 모든 모듈들의 정책이 어긋나서 나온 문제로 보입니다. 해당 모듈들에 대해서 정상적인지 테스트를 해야할 듯합니다.
- 임시로 문제가 발생하는 모듈에 대해서 aa-complain /usr/sbin/tcpdum 등의 명령어로 풀어갈 생각입니다.
- 룰을 계속 추가하면서 사용하려니 너무 번거로워 지금은 apparmor.d 를 사용안하도록 변경하여 사용하고 있습니다. (내부망에서만 사용하는 서버니까..)
'서비스 운영 > 장애 처리' 카테고리의 다른 글
openVPN 접속이 되지 않는 문제 해결 (IPv6 오류) (0) | 2018.11.12 |
---|