单选题
以下 linux 命令中,()可以实现允许 IP 为 10.0.0.2 的客户端访问本机 tcp 22 端口。
【正确答案】
D
【答案解析】iptables是Linux系统中一个常用的IP包过滤功能,使用比较广泛,但是命令比较复杂。其中match常用数据包匹配参数:l参数-p(-protocol):用于匹配通信协议类型是否相符,可以使用“!”运算符进行反向匹配,如-p !tcp的意思是指除TCP以外的其他类型,如udp、icmp等非TCP的其他协议。如果要匹配所有类型,则可以使用 all 关键词。l参数-s(-src,-source):用来匹配数据包的来源IP地址(单机或网络),匹配网络时用数字来表示子网掩码,如-s 192.168.0.0/24,也可以使用“!”运算符进行反向匹配。l参数-d(-dst,-destination):用来匹配数据包的目的IP地址。l参数-sport(-source-port):用来匹配数据包的源端口,可以匹配单一端口或一个范围,如--sport 22:80表示从22到80端口之间都算符合条件。l参数--dport(--destination-port):用来匹配数据包的目的地端口号。-j target/jump常用的处理动作:-j:用来指定要进行的处理动作,常用的处理动作包括accept、reject、drop、redirect、masquerade、log、snat、dnat、mirror等。具体如下:laccept:将数据包放行,进行完此处理动作后将不再匹配其他规则,直接跳往下一个规则链(nat postrouting)。lreject:阻拦该数据包并传送数据包通知对方,进行完此处理动作后将不再匹配其他规则,直接中断过滤程序。ldrop:丢弃数据包不予处理,进行完此处理动作后将不再匹配其他规则,直接中断过滤程序。lredirect:将数据包重新导向到另一个端口(pnat),进行完此处理动作后将继续匹配其他规则。lmasquerade:改写数据包的源IP地址为自身接口的IP地址,可以指定port对应的范围,进行完此处理动作后直接跳往下一个规则链(mangle postrouting)。这个功能与snat不同的是,当进行IP伪装时不需要指定伪装成哪个IP地址,这个IP地址会自动从网卡读取,尤其是当使用DHCP方式获得地址时masquerade 特别有用。llog:将数据包相关信息记录在/var/log中,进行完此处理动作后将继续匹配其他规则。lsnat:改写数据包的源IP为某特定IP或IP范围,可以指定port对应的范围,进行完此处理动作后将直接跳往下一个规则(mangle postrouting)。ldnat:改写数据包目的IP地址为某特定IP或IP范围,可以指定port对应的范围,进行完此处理动作后将直接跳往下一个规则链(filter:input或filter:forward)。