방화벽이 네트워크 계층에서 패킷을 거른다면, 오늘 배우는 세 가지는 그 안쪽에서 시스템을 지키는 보안의 겹겹이다. 첫째 TCP Wrapper는 서비스 단위로 접근을 통제하는 호스트 기반 접근 제어다. 둘째 SELinux는 표준 리눅스 권한(소유자·그룹·기타) 위에 강제 접근 제어(MAC)를 덧씌워, 침해당한 프로세스조차 정해진 범위 밖을 건드리지 못하게 한다. 셋째 로그 관리는 침입·오류의 흔적을 남기고 보존하는 일이다 — /var/log, rsyslog.conf의 facility.priority 짝, 그리고 로그가 디스크를 가득 채우지 않게 돌려 막는 logrotate까지. 보안은 한 겹이 뚫려도 다음 겹이 막아주는 다층 방어가 핵심이다.
TCP Wrapper는 libwrap 라이브러리(tcpd)를 통해 동작하는 호스트 기반 접근 제어 시스템이다. 서비스가 연결 요청을 받으면, 실제 서비스로 넘기기 전에 두 파일을 검사해 그 출발지 호스트를 허용할지 결정한다.
| 파일 | 역할 |
|---|---|
/etc/hosts.allow | 접근을 허용할 호스트 목록 |
/etc/hosts.deny | 접근을 거부할 호스트 목록 |
검사 순서가 가장 중요한 출제 포인트다.