免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: liudonghua123
打印 上一主题 下一主题

[网络子系统] iptables配置根据端口可用行的策略 [复制链接]

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
1 [报告]
发表于 2013-03-01 08:07 |显示全部楼层
回复 1# liudonghua123
如果不能通过配置实现,则我想实现一个内核模块,在内核模块里判断代理进程是否存在(已实现),但还差检测来自这条规则的ip包,并且想跳过nat处理过程,类似于iptables中的-j RETURN


代理不可用的条件是什么?

如果只是根据进程是否存在判断的话,你所说的功能是比较容易实现的;如果需要进行业务层判断是否可用的话,就比较困难了。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-03-01 13:07 |显示全部楼层
回复 3# liudonghua123
2. 扩展netfilter/xtables,实现一个match或target,如
    iptables -t nat -A custom_chain -p tcp -dport 80 -m process_available --process_name some_process_name -j DNAT --to-destination 127.0.0.1:1234
    iptables -t nat -A custom_chain -p tcp -dport 80 -j SAFE_DNAT --to-destination 127.0.0.1:1234


通过判断进程是否存在决定是否DNAT的的话,上面两个方案实现都比较简单。

match方法:

         if(进程存在)
                return true;
        else
                return false;

整个match的代码,大约在100行(不包括应用层iptables match库)

target方法:

          if(进程存在)
                  nf_nat_setup_info();
          else
                  return NF_ACCEPT;

整个target的代码,也不会超过100行。

个人更倾向于使用match方法,而不是target方法。
   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
3 [报告]
发表于 2013-03-02 09:14 |显示全部楼层
回复 6# liudonghua123
多谢!我才刚开始学习netfilter/xtables.我从网上找了一个小例子(ipaddr),编译及insmod都没问题
只是在执行例如iptables -t nat -A custom_chain -m some_match_rules时会提示ipaddr没有此文件
在网上找了应该是需要在iptables中添加一些代码,如解析参数等等作用,这里应该就是对应你说的“应用层iptables match库”吧!

是的

   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2013-03-04 08:04 |显示全部楼层
回复 8# liudonghua123
一共就那么几行代码,直接printk估计就足够调试的了。

或者安装crash kernel,panic后通过crash进行分析

   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
5 [报告]
发表于 2013-03-05 08:46 |显示全部楼层
回复 10# chishanmingshen
不管match还是target,代码都不会超过100行(排除注释啊

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP