Linux NFS 서비스 보안 강화 사례 공유

小云云
풀어 주다: 2018-02-24 10:14:34
원래의
1592명이 탐색했습니다.

NFS(Network File System)는 FreeBSD에서 지원하는 파일 시스템으로, TCP/IP 네트워크를 통해 네트워크상의 컴퓨터 간에 리소스를 공유할 수 있게 해줍니다. NFS를 잘못 구성하고 사용하면 보안 문제가 발생할 수 있습니다.

개요

NFS의 불안정성은 주로 다음 네 가지 측면에 반영됩니다.

  • 액세스 제어 메커니즘 부족

  • 실제 사용자 인증 메커니즘이 없고 RPC/마운트 요청에 대한 프로세스 확인만

  • 이전 NFS 버전에서는 승인되지 않은 사용자가 유효한 파일 핸들을 얻을 수 있습니다

  • RPC 원격 호출에서 SUID 프로그램에는 슈퍼유저 권한이 있습니다

강화 솔루션

위의 보안 위험에 효과적으로 대처하려면 다음을 수행하는 것이 좋습니다. 다음 강화 체계를 사용합니다.

공유 디렉터리 구성(/etc/exports)

anonuid, anongid를 사용하여 NFS 서버에 마운트된 클라이언트가 최소한의 권한만 갖도록 공유 디렉터리를 구성합니다. no_root_squash를 사용하지 마십시오.

네트워크 액세스 제어를 사용하세요

보안 그룹 정책이나 iptable 방화벽을 사용하여 NFS 서버에 연결할 수 있는 컴퓨터의 범위를 제한하세요.


iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
로그인 후 복사

계정 확인
Kerberos V5를 로그인 확인 시스템으로 사용하여 보안 강화를 위해 모든 방문자가 계정으로 로그인하도록 요구합니다.

NFSD에 대한 COPY 수 설정

Linux에서 NFSD에 대한 COPY 수는 시작 파일 /etc/rc.d/init.d/nfs 에 정의되어 있으며, 기본값은 8입니다. /etc/rc.d/init.d/nfs 中,默认值为 8。

最佳的 COPY 数目一般取决于可能的客户机数目。您可以通过测试来找到 COPY 数目的近似最佳值,并手动设置该参数。

选择传输协议

对于不同的网络情况,有针对地选择 UDP 或 TCP 传输协议。传输协议可以自动选择,也可以手动设置。

mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR

UDP 协议传输速度快,非连接传输时便捷,但其传输稳定性不如 TCP,当网络不稳定或者黑客入侵时很容易使 NFS 性能大幅降低,甚至导致网络瘫痪。一般情况下,使用 TCP 的 NFS 比较稳定,使用 UDP 的 NFS 速度较快。

  • 在机器较少,网络状况较好的情况下,使用 UDP 协议能带来较好的性能。

  • 当机器较多,网络情况复杂时,推荐使用 TCP 协议(V2 只支持 UDP 协议)。

  • 在局域网中使用 UDP 协议较好,因为局域网有比较稳定的网络保证,使用 UDP 可以带来更好的性能。

  • 在广域网中推荐使用 TCP 协议,TCP 协议能让 NFS 在复杂的网络环境中保持最好的传输稳定性。

限制客户机数量

修改 /etc/hosts.allow /etc /hosts.deny 来限制客户机数量。

/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny

改变默认的 NFS 端口
NFS 默认使用的是 111 端口,使用 port 参数可以改变这个端口值。改变默认端口值能够在一定程度上增强安全性。

配置 nosuid 和 noexec
SUID (Set User ID) 或 SGID (Set Group ID) 程序可以让普通用户以超过自己权限来执行。很多 SUID/SGID 可执行程序是必须的,但也可能被一些恶意的本地用户利用,获取本不应有的权限。

尽量减少所有者是 root,或是在 root 组中却拥有 SUID/SGID 属性的文件。您可以删除这样的文件或更改其属性,如:

使用 nosuid 选项禁止 set-UID 程序在 NFS 服务器上运行,可以在 /etc/exports

최적의 COPY 수는 일반적으로 가능한 클라이언트 수에 따라 다릅니다. 이 매개변수를 수동으로 테스트하고 설정하면 COPY 수에 대한 대략적인 최적 값을 찾을 수 있습니다.

전송 프로토콜 선택

다른 네트워크 조건의 경우 UDP 또는 TCP 전송 프로토콜을 원하는 방식으로 선택하세요. 전송 프로토콜은 자동으로 선택하거나 수동으로 설정할 수 있습니다.

mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR

UDP 프로토콜은 전송 속도가 빠르고 비연결 전송에 편리하지만 전송 안정성이 뛰어납니다. TCP만큼 좋지는 않습니다. 네트워크가 불안정하거나 해킹당하면 NFS 성능이 크게 저하되거나 네트워크 마비가 발생하기 쉽습니다. 일반적으로 TCP를 사용하는 NFS가 더 안정적이고, UDP를 사용하는 NFS가 더 빠릅니다.

머신 수가 적고 네트워크 상태가 좋은 경우 UDP 프로토콜을 사용하면 더 나은 성능을 얻을 수 있습니다.

머신이 많고 네트워크 상황이 복잡할 경우 TCP 프로토콜을 사용하는 것이 좋습니다. (V2는 UDP 프로토콜만 지원합니다.) 🎜🎜🎜🎜LAN은 상대적으로 안정적인 네트워크 보장을 제공하고 UDP를 사용하면 더 나은 성능을 얻을 수 있으므로 LAN에서는 UDP 프로토콜을 사용하는 것이 좋습니다. 🎜🎜🎜🎜WAN에서는 TCP 프로토콜을 사용하는 것이 좋습니다. TCP 프로토콜을 사용하면 NFS가 복잡한 네트워크 환경에서 최고의 전송 안정성을 유지할 수 있습니다. 🎜🎜🎜🎜🎜클라이언트 수를 제한하세요🎜🎜🎜 /etc/hosts.allow /etc /hosts.deny 를 수정하여 클라이언트 수를 제한하세요. 짐 S 포트 🎜🎜NFS는 기본적으로 포트 111을 사용합니다. 이 포트 값은 포트 매개변수를 사용하여 변경할 수 있습니다. 기본 포트 값을 변경하면 보안이 어느 정도 강화될 수 있습니다. 🎜🎜🎜nosuid 및 noexec🎜🎜SUID(Set User ID) 또는 SGID(Set Group ID) 프로그램을 구성하면 일반 사용자가 자신의 권한 이상으로 실행할 수 있습니다. 많은 SUID/SGID 실행 프로그램이 필요하지만 일부 악의적인 로컬 사용자가 소유해서는 안 되는 권한을 얻기 위해 이를 악용할 수도 있습니다. 🎜🎜소유자가 루트이거나 루트 그룹에 속하지만 SUID/SGID 특성을 갖는 파일 수를 최소화하세요. 이러한 파일을 삭제하거나 다음과 같이 해당 속성을 변경할 수 있습니다. 🎜🎜nosuid 옵션을 사용하여 NFS 서버에서 set-UID 프로그램이 실행되지 않도록 할 수 있습니다. /etc/exports 에 한 줄을 추가할 수 있습니다. >: 🎜🎜🎜/www www.abc.com(rw, root_squash, nosuid)🎜🎜🎜noexec를 사용하여 바이너리 파일의 직접 실행을 금지하세요. 🎜🎜관련 추천: 🎜🎜🎜NFS란 무엇인가요? CentOS7에서 NFS 공유 구현 방법 공유🎜🎜🎜🎜Linux에서 ftp, nfs, ssh 서버 구축🎜🎜🎜🎜NFS 서비스 소개 및 사용법🎜🎜

위 내용은 Linux NFS 서비스 보안 강화 사례 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿