NFS 트래픽을 허용하도록 FreeBSD에서 방화벽(PF)을 구성하려고 합니다. NFS는 클라이언트에 연결하기 위해 임의의 포트 번호를 사용하는 여러 데몬과 함께 TCP 및 UDP를 사용한다는 것을 알고 있습니다. NFS 서버와 클라이언트는 모두 Ubuntu 10.04입니다. 포트 번호를 사용하여 필터링하는 대신 클라이언트와 서버 IP 주소를 사용하여 연결을 허용했습니다. NFS와 관련된 규칙은 pf.conf
다음과 같습니다.
pass in log quick from external to NFS
pass out log quick from NFS to external
보시다시피 외부 이름은 클라이언트이고 NFS는 서버입니다. 둘 다 해당 IP 주소로 확인됩니다. 문제는 다음 오류로 인해 일부 패킷이 PF에 의해 중지된다는 것입니다.
11:38:52.440123 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
NFS-lan0.sunrpc > External-lan1.38390: tcp 40 [bad hdr length 0 - too short, < 20]
What do I need to change to let these packets through?
답변1
NFS는 유닉스 암흑기의 오래된 악마입니다. ;-)
귀하의 질문은 NFS(v2 및 v3 - v4에 대해서는 확실하지 않음)에 대한 방화벽별 설정과 관련되어 있습니다. RPC와 portmapper 데몬을 사용합니다.
비결은 NFS 서버의 portmapper를 특정 포트나 포트 범위로 강제하는 것입니다.
답변2
PF는 패킷을 차단하는 이유를 알려줍니다.
[bad hdr length 0 - too short, < 20]
pf.conf 파일에 설탕 프로스팅이 활성화되어 있습니까?