kkfgef 发表于 2015-12-30 20:55:25

iptables能过滤MAC地址么?

iptables能过滤MAC地址么?
可以过滤指定端口的IP,那能过滤指定的mac地址吗?
如果只请允许国内IP通过,下载国内IP地址段添加到iptables保存就好吧?iptables和nginx.conf的配置文件体积达500K这样是否会影响网站速度与效应?

licess 发表于 2015-12-31 11:04:32

过滤指定mac的所有请求:iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

原来发过一个教程:https://www.vpser.net/security/iptables-block-countries-ip.html
iptables上应该影响很小,nginx不好说

kkfgef 发表于 2015-12-31 11:05:45

如果要只让国内的IP通过,刚看了一下ipdeny.com的,中国的cn.zone里面有6344行,是不是得这些的都有来添加呀,(当然不是用手动)。

kkfgef 发表于 2015-12-31 11:11:16

原帖由 licess 于 2015-12-31 11:04 发表 https://bbs.vpser.net/images/common/back.gif
:iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

原来发过一个教程:https://www.vpser.net/security/iptables-block-countries-ip.html
iptables上应该影响很小,nginx不好说 ... 过
滤指定mac的所有请求,也许我想错了,这只是过滤本地的,不是用户的。
我添加了一下我一个手机的MAC,然后都能直接访问到了。应该过滤的是服务器本身的MAC才能实现
我还想过滤后,只能让固定的MAC地址的电脑访问指定的端口呢。因为没固定IP,所以就这样想了……

kkfgef 发表于 2015-12-31 11:17:28

看了这一个代码,里面是要屏蔽中国的,试问一下里面是不是有打少个字?比如:COUNTRY="cn"理解为中国吧。但当到大概第25行有 country_file=$c.zone 这个$c.zone,是自定义的吗,还是说下载后的那个cn.zone更改过了。
同理,如果我只要中国的通过,其它国家禁止,是不是把第31行的
$IPTABLES -A INPUT -s $ip -j DROP
换成 $IPTABLES -A INPUT -s $ip -j ACCEPT
就可以了?
还是说这只是一个添加IP的脚本,等同于自动添加?
#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY="cn"
IPTABLES=/sbin/iptables
EGREP=/bin/egrep

if [ "$(id -u)" != "0" ]; then
   echo "you must be root" 1>&2
   exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
      country_file=$c.zone

      IPS=$($EGREP -v "^#|^[      DISCUZ_CODE_0      ]quot; $country_file)
      for ip in $IPS
      do
         echo "blocking $ip"
         $IPTABLES -A INPUT -s $ip -j DROP
      done
done

exit 0

[ 本帖最后由 kkfgef 于 2015-12-31 11:18 编辑 ]

licess 发表于 2015-12-31 21:59:26

没有问题,for c in $COUNTRY 里已经说明了,除了cn也可以添加其他国家

添加完还要执行 iptables -A INPUT -j REJECT
页: [1]
查看完整版本: iptables能过滤MAC地址么?