我们可以看到我们想要启动的客户端的 NFS 使用率较高,但不会影响其他 NFS 客户端。我们应该怎么做?只能使用防火墙吗?
答案1
您将需要 bos.net.ipsec.rte 才能使用类似 iptables 的解决方案。
检查您当前的安装:
michael@x071:[/home/michael]lslpp -L bos.net.ipsec.rte
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
bos.net.ipsec.rte 6.1.9.45 C F IP Security
如果已安装,您可以使用以下命令检查它是否处于活动状态或非活动状态:
积极的:
michael@x071:[/home/michael]lsdev -C | grep ipsec
ipsec_v4 Available IP Version 4 Security Extension
ipsec_v6 Available IP Version 6 Security Extension
不活动:
root@x064:[/]lsdev -C | grep ipsec
那是无输出,意味着它从未被激活,或者
root@x072:[/]lsdev -C | grep ipsec
ipsec_v4 Defined IP Version 4 Security Extension
ipsec_v6 Defined IP Version 6 Security Extension
一些输出意味着可能有一些配置,但它已被停用。
以下是如何打开/关闭 v4 和/或 v6 ipsec 的 ipsec 的一些示例。
root@x072:[/]lsdev -C | grep ipsec
ipsec_v4 Defined IP Version 4 Security Extension
ipsec_v6 Available IP Version 6 Security Extension
root@x072:[/]mkdev -l ipsec_v4
ipsec_v4 Available
root@x072:[/]rmdev -l ipsec_v6
ipsec_v6 Defined
root@x072:[/]lsdev -C | grep ipsec
ipsec_v4 Available IP Version 4 Security Extension
ipsec_v6 Defined IP Version 6 Security Extension
现在停止每个客户端的 nfs(定义为 IP 地址)
让我们获取IP地址192.168.111.222作为我想停止的客户的地址。可以采取不同的操作 - 允许和拒绝是常见的 - 我们可以有点奇特,并使用块端口,每次端口尝试连接时都会创建一个新的动态拒绝规则 - 这样您就可以看到如何活动的唯一安装请求是:
我们需要关注端口2049
root@x072:[/]grep nfs /etc/services
nfsd-status 1110/tcp # Cluster status info
nfsd-keepalive 1110/udp # Client status info
picknfs 1598/tcp # picknfs
picknfs 1598/udp # picknfs
shiva_confsrvr 1651/tcp # shiva_confsrvr
shiva_confsrvr 1651/udp # shiva_confsrvr
#nfs 2049/tcp # Network File System - Sun Microsystems
#nfs 2049/udp # Network File System - Sun Microsystems
3d-nfsd 2323/tcp # 3d-nfsd
3d-nfsd 2323/udp # 3d-nfsd
mediacntrlnfsd 2363/tcp # Media Central NFSD
mediacntrlnfsd 2363/udp # Media Central NFSD
注意:要使用 smit(ty),请使用:
smitty ipsec4
然后使用高级...->添加
Add an IP Security Filter Rule
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Rule Action [shun_port] +
* IP Source Address [192.168.111.222]
* IP Source Mask [255.255.255.255]
IP Destination Address [0.0.0.0]
IP Destination Mask [0.0.0.0]
* Apply to Source Routing? (PERMIT/inbound only) [yes] +
* Protocol [tcp] +
* Source Port / ICMP Type Operation [any] +
* Source Port Number / ICMP Type [0] #
* Destination Port / ICMP Code Operation [eq] +
* Destination Port Number / ICMP Type [2049] #
* Routing [local] +
* Direction [inbound] +
* Log Control [no] +
* Fragmentation Control [0] +
* Interface [all] +
Expiration Time (sec) [300] #
Pattern Type [none] +
Pattern / Pattern File []
Description <g port on NFS request]
或者从命令行:
/usr/sbin/genfilt -v 4 -a 'S' -s '192.168.111.222' -m '255.255.255.255' -d '0.0.0.0' -M '0.0.0.0' -g 'y' -c 'tcp' -o 'any' -p '0' -O 'eq' -P '2049' -r 'L' -w 'I' -l 'N' -t '0' -i 'all' -e '300' -D 'block incoming port on NFS request'
在 smit 中或从命令行 - 激活规则
mkfilt -v4 -u
并查看配置的规则
lsfilt -v4 -O
并查看任何(可能的)动态规则
lsfilt -v4 -a -O
** 我还不能添加评论:如果您现在需要更改 - 因为这只会影响将来与端口的连接,您可以使用以下命令:
nfs.clean; sleep 2; rc.nfs
停止,然后重新启动 nfs 服务。注意
stopsrc -g nfs; startsrc -g nfs
没有以正确的顺序启动守护进程
答案2
netstat -an
然后用于tcpkill
向双方发送重置数据包。
tcpkill 使用与 tcpdump 相同的参数