NetworkFileSystem:Install:Client
NFS 클라이언트 연결 (보안 마운트)
NFS 클라이언트 설치
마운트 디렉토리 생성 및 테스트
# 마운트 포인트 생성 / Create mount point
sudo mkdir -p /mnt/nfs
# 마운트 테스트 (보안 옵션 포함) / Test mount with security options
sudo mount -t nfs4 -o sec=sys,noexec,nosuid,nodev 192.168.1.50:/ /mnt/nfs
# 마운트 확인 / Verify mount
df -hT /mnt/nfs
mount | grep nfs4
fstab 영구 등록
echo "192.168.1.50:/shared /mnt/nfs nfs4 sec=sys,noexec,nosuid,nodev,hard,intr,timeo=600 0 0" | sudo tee -a /etc/fstab
# fstab 문법 검증 / Verify fstab syntax
sudo mount -a
클라이언트 마운트 보안 옵션
| 옵션 | 설명 | 적용 이유 |
| noexec | NFS 마운트에서 실행 파일 실행 차단 | 원격에서 악성 바이너리 실행 방지 |
| nosuid | SUID/SGID 비트 무시 | 권한 상승 공격 차단 |
| nodev | 디바이스 파일 해석 차단 | 가짜 디바이스 파일을 통한 공격 방지 |
| hard | 서버 무응답 시 무한 재시도 | 데이터 손실 방지 (soft는 데이터 손상 위험) |
| intr | hard 모드에서 인터럽트 허용 | 서버 장애 시 Ctrl+C로 중단 가능 |
| timeo=600 | 타임아웃 60초 (단위: 1/10초) | 네트워크 지연에 대한 여유 확보 |
| sec=sys | 시스템 UID/GID 인증 사용 | 서버 설정과 일치 필요 (krb5p 사용 시 변경) |
자동 마운트 (autofs) 대안
필요할 때만 마운트하여 불필요한 상시 연결을 줄이는 방법:
# autofs 설치 / Install autofs
sudo apt install -y autofs
# 마스터 맵 설정 / Configure master map
echo "/mnt/nfs /etc/auto.nfs --timeout=300" | sudo tee -a /etc/auto.master
# NFS 맵 설정 / Configure NFS map
echo "shared -fstype=nfs4,sec=sys,noexec,nosuid,nodev,hard,intr 192.168.1.50:/shared" | sudo tee /etc/auto.nfs
sudo systemctl enable --now autofs
| 방식 | 장점 | 단점 |
| fstab (영구 마운트) | 부팅 시 자동 마운트, 설정 단순 | 서버 다운 시 부팅 지연 가능 |
| autofs (자동 마운트) | 사용 시에만 마운트, 리소스 절약 | 첫 접근 시 약간의 지연 |
클라이언트 측 방화벽
클라이언트에서도 아웃바운드를 최소한으로 제한하려면:
# NFS 서버로의 아웃바운드만 허용 (선택적) / Optional outbound restriction
sudo ufw allow out to 192.168.1.50 port 2049 proto tcp comment 'NFS-server'
See also
- NFS
- Security
- Ubuntu
- Linux
- Linux:Security
- NetworkFileSystem:Install:Server - NFS 서버 설치
- NetworkFileSystem:Install:Client - NFS 클라이언트 설치
- NetworkFileSystem:Security