nemo의 이야기

NFS(Network File System) 서버 생성 본문

Information security/Network security

NFS(Network File System) 서버 생성

nemojjong 2018. 8. 18. 20:30

서버를 만들기에 앞서 nfs에 대한 정의를 알아보자


nfs란 네트워크에 파일을 저장하는 메커니즘이다. 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 엑세스할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것 처럼 처리하도록 허용하는  분산 파일 시스템이다. 즉, 디렉토리를 공유함으로 써 서버 컴퓨터의 자원을 공유하는 메커니즘이다. 





테스트 환경은 SULinux2.0 버전이다.


테스트하기 위해 우선 iptables을 끄고 작업을 시작해보자


서버에서 공유 폴더를 생성하고 /etc/exports파일을 생성하여 포트를 잡아주자 



상위 디렉토리에 nfs 공유할 디렉토리를 생성하고



/etc/exports파일에 위와 같은 설정을 입력한다.


/nfs     192.168.64.136    (rw,    sync)

  1               2                  3   


1 : 공유 디렉토리 

2 : 허용 클라이언트(IP or 도메인) 

3 : 옵션 ( rw : 읽고, 쓰기 sync : 동기화 )


설정을 입력했으면 서비스를 restart 시켜보자



서버의 설정이 완료 됬으면 이제 클라이언트로 가서 설정을 해보자


클라이언트에서 위와같이 service nfs restart와 service portmap restart를 해주자


그 후 mount를 시켜보자


mount -t nfs 192.168.64.135:/nfs /mnt



이와같이 mount가 성공한 것을 확인할 수 있다. 


이제 방화벽을 켜고 연결시켜 보자


방화벽을 통과할 수 있게 포트를 고정시켜보자


/etc/init.d/nfslock 파일안에 deamon rpc.statd =>  daemon rpc.statd -p 4000로 수정시켜보자


그리고 rpc.lockd포트를 각각 4001번과 4002번으로 설정하자


/etc/sysconfig/nfs 파일을 수정하여 



LOCKD_TCPPORT=4001

LOCKD_UDPPORT=4001

MOUNTD_PORT=4002

를 추가한다.


그리고 위의 포트를 방화벽에서 허용시켜주자


/etc/sysconfig/iptables


-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4000:4004 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4000:4004 -j ACCEPT

111, 2049, 4000~4003포트를 허용시켜주자 


여기서 111과 2049포트를 허용하는 이유는 nfs 서비스가 사용하는 포트이므로 허용시켜야 된다. 


이제 설정이 완료 됬으면 해당 서비스들을 restart를 시킨다.


그리고 클라이언트에서 공유 폴더로 mount를 해보자



위와 같이 mount에 성공한 것을 확인할 수 있다. 


Comments