2014-10-03 11 views
3

규칙을 사용할 수 없습니다. NFSSERVER:/PATH을 마운트 할 수 있지만 마운트 할 수는 없습니다 (firewall/iptables).NFS 서버 및 NFS 클라이언트에 대한 iptables 규칙

[.e.g., after iptables --flush/ firewaalld stop ; mount NFSSERVER:/Path works ] 

는 I는 firewall/iptables을 취소/비활성화되어 있지 않다 그러나 나는이 포트를 열도록 허용하고있다. 포트/마운트를 여는 데 추가해야하는 규칙은 무엇입니까?

현재 기본 정책은 DROP all INCOMING/OUTGOING/FORWARD하고 규칙 부부 등 외부 포트 80에서 wget을 할 수 있도록

은 NFS 서버 포트 didnt 한 도움말을 추가 있습니다.

iptables -A OUTPUT -p tcp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p tcp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p udp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p udp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 

감사합니다.

추 신 : nfs 고객의 경우 NFS 서버 컴퓨터가 아닙니다.

+1

'nfsd'가 네트워크 액세스가 필요한 유일한 데몬이 아니기 때문에 이것은 작동하지 않습니다. NFS에 관련된 다른 데몬은'portmap','statd','mountd','lockd','rquotad'입니다. 예를 들어 [this] (http://tldp.org/HOWTO/NFS-HOWTO/security.html#FIREWALLS) 및 [this] (http://rlworkman.net/howtos/NFS_Firewall_HOWTO)를 참조하십시오. – Yoel

답변

6

NFS 서버 : rquotd위한

포트 구성 UDP (875/875/TCP)에 lockd (32,803/TCP, 32,769/UDP), UDP (892/892/TCP)의 mountd, statd에 UDP (10,054 /; 10054/TCP) (UDP 10,053분의 10,053/TCP) statd_outgoing 원한다면

vim /etc/sysconfig/nfs 

, 5 & 6은/etc/SYSCONFIG/NFS 편집 선으로 NFS의 V3 및 NFS V2 suport 비활성화

MOUNTD_NFS_V2="no" 
    MOUNTD_NFS_V3="no" 

나중에 사용할 수 있도록 현재 iptables 규칙을 저장하십시오. (iptables에가-저장하면 당신은 iptables를 시도 할 수있다, 파일 이름 배포에 결석 -S입니다)

iptables-save > pre-nfs-firewall-rules-server 

세척하고 다음과 같은 순서

에 서비스를 iptables에가

iptables -F 
    iptables -L 

정지 규칙 확인하고 NFS를 시작하고 관련

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

구성된 NFS와 관련 포트가 설정되어 있는지 확인하고 포트 번호와 OSI 레이어 4 프로토콜을 확인하십시오. rpcbind (또는 portmapper)의 표준 포트 번호는 111/udp, 111/tcp 및 nfs는 2049/udp, 2049/tcp입니다.

rpcinfo -p | sort -k 3 

NFS 서버에 대한 현재 사전 NFS-방화벽 규칙

iptables-restore < pre-nfs-firewall-rules-server 

쓰기의 iptables 규칙 (주 복원 : 루프백 어댑터가 허용하는 다른 사람이 패킷이 삭제 또한 당신이 다시 시작할 때 볼 것이다 nfs 서비스, 침침 할 것입니다 ERROR {서비스를 등록 할 수 없습니다 : RPC : 시간 초과 된 rpc.rquotad : 등록 할 수 없습니다 (RQUOTAPROG, RQUOTAVERS, udp). [FAILED]} rquotad 데몬 용.당신은 필터 테이블의 입력 또는 출력 체인)의 하단에 LOG 점프 대상으로 규칙을 추가하여 확인할 수 있습니다

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

구성 NFS 디렉토리를

vim /etc/exports 
    exportfs -av 
    showmount -e 
    rpcinfo -p 

중지를 수출하고에 NFS 및 관련 서비스 시작 다음과 같은 순서

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

NFS 클라이언트 :

나중에 사용할 수 있도록 현재 iptables 규칙을 저장하십시오. (iptables에가-저장하면 당신은 iptables를 시도 할 수있다, 파일 이름 배포에 결석 -S입니다)

iptables-save > pre-nfs-firewall-rules-client 

세척 및 확인의 iptables는

iptables -F 
    iptables -L 

클라이언트 시스템 및 notedown에서 방화벽 NFS 서버 포트를 얻 규칙 포트 번호와 OSI 계층 4 프로토콜.

rpcinfo -p 'ip-addr-nfs-server' | sort -k 3 

NFS 클라이언트에 대한 현재 사전 NFS-방화벽 규칙

iptables-restore < pre-nfs-firewall-rules-client 

쓰기의 iptables 규칙 (주 복원 : 루프백 어댑터가 허용하는 다른 사람이 패킷이 삭제 또한 당신이 다시 시작할 때 볼 것이다 nfs 서비스, 침침 할 것입니다 ERROR {서비스를 등록 할 수 없습니다 : RPC : 시간 초과 된 rpc.rquotad : 등록 할 수 없습니다 (RQUOTAPROG, RQUOTAVERS, udp). [FAILED]} rquotad 데몬에 대해. INPUT 또는 OUT의 맨 아래에 LOG 점프 대상이있는 규칙을 추가하여 다음과 같은 순서로 필터 테이블의 체인)

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

중지를 PUT 및 NFS를 시작하고 관련 서비스

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

목록 NFS 서버 수출

showmount -e 'ip-addr-nfs-server' 

마운트 NFS 수동 (지속 마운트 할 수있는 수출/etc/fstab을 사용하여 구성하십시오)

mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw,nfsvers=3 
    mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw --> For NFS4 version 
자동 마운트는 NFS의 수출 및 LDAP 사용자 홈 디렉토리와 선호하는 경우

구성 autofs를 (직접 및 간접지도를 설정할 수 있습니다)

vim /etc/auto.master -> specify the mount point and map-name (Eg: auto.nfs) 
    vim /etc/map-name 
    service autofs stop 
    service autofs start 

점검 NFS 모든 의사 루트 NFS

df -h -F nfs 
    mount | grep nfs 

목록을 보냅니다 장착 -V4 내보내기 디렉토리 (NFS 지연 마운트)

ls /net/ip-addr-nfs-server 
4

NFS 버전 4 (이미 10 년 이상 지난 경우)), 당신은 @ Sathish의 대답에 설명 된 모든 노력을 기울일 필요가 없습니다. TCP 포트 2049가 서버의 방화벽을 열고 클라이언트의 방화벽이 서버의 포트 2049 로의 아웃 바운드 트래픽을 허용하는지 확인하십시오.

CentOS 5 (이전 버전)는 NFSv4가 v3 및 v2보다 방화벽에 더 적합한 이유에 대해 좋은 explanation을 가지고 있습니다.

+0

이것은 내가 찾고 있었던 것이다! 감사! –