iptables 简单学习笔记
创始人
2024-07-23 05:00:31
0

本文是我自己的一些学习iptables的心得,给大家拿出来来晒晒!

  filter #用于过滤

  nat #做NAT

  input =>filter #目的ip是本机的数据包

  forward =>filter #穿过本机的数据包

  prerouting =>nat #修改目的地址(DNAT)

  postrouting =>nat #修改源地址(SNAT)

  iptables -t 要操作的表 操作命令 要操作的链 规则号码 匹配条件 -j 匹配到以后的命令

  iptables -I INPUT -j DROP #-t 默认为filter

  iptables -I INPUT 3 -j DROP #链接里插入一条规则(插入第三条)

  iptables -D INPUT 3 #按号码匹配删除

  iptables -D INPUT -s 192.168.0.1 -j DROP #按内容匹配删除

  iptables -R INPUT 3 -j ACCEPT #将原来3的规则改为-j ACCEPT

  iptables -P INPUT DROP #设置默认规则

  iptables -F INPUT #清空filter表INPUT链中的所有规则

  iptables -t nat -F PREROUTING

  iptables -t nat vxnL PREROUTING

  --# v: 显示详细信息

  --# x: 在v的基础上,禁止自动单位换算

  --# n: 只显示IP地址和端口号码,不显示域名和服务名称

  ========匹配条件

  -i -i eth0 #流入接口(是否从网口eth0进来)

  -o #流出接口

  -s -s 192.168.1.0/24 #来源地址

  -d #目的地址

  -p -p icmp --icmp-type #协议类型

  --sport --sport 1000:3000 #来源的端口

  --dport --dport 1000: :3000 #目的的端口1000:(1000端口以上) :3000(3000端口以下)

  -s 192.168.0.1 -d www.sina.com -p tcp -dport 80

  ================================

  iptables -A INPUT -j ACCEPT #允许所有访问本机IP的数据包通过

  iptables -A FORWARD -s 192.168.0.1 -j DROP #阻止来源地址为192.168.80.39的数据包通过本机

  -j DNAT #目的地址转换,DNAT支持转换为单IP,也支持转换到IP址

  池

  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.3:80

  #把从ppp0进来的要访问tcp/80的数据包的地址改为192.168.0.3

  -j SNAT #源地址转换

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1

  #将内网192.168.0.0/24的源地址改为1.1.1.1,用于nat表

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10

  #修改成为一个地址池

  -j MASQUERADE #动态源地址转换

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

  #将源地址为192.168.0.0/24的数据包进行地址伪装

#p#

  ===================附加模块

  state #按包状态匹配

  mac #按来源mac匹配

  limit #按包速率匹配

  multiport #多端口匹配

  --state

  -m state #new,related,established,invalid

  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  #包状态 RELATED(衍生态),ESTABLISHED(连接态),NEW(有别于tcp的syn),INVALID(不被识别的)

  iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

  #阻断来自某MAC地址的数据包通过本机

  iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT

  #用一定速率去匹配数据包

  iptables -A INPUT -p tcp -m multiport --dports 21,22,25,80,110 -j ACCEPT

  #一次匹配多个端口

  =======================================实例分析===================================

  单服务器的防护:

  iptables -A INPUT -i lo -j ACCEPT

  iptables -A INPUT -p tcp -m multiport --dport 22,80 -j ACCEPT

  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  iptables -P INPUT DROP

  制作网关:

  echo "1" > /proc/sys/net/ipv4/ip_forward #启用路由转发

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

  限制内网用户:filter->forward

  iptables -A FORWARD -s 192.168.0.3 -j DROP

  iptables -A FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP

  iptables -A FORWARD -d www.163.com -j DROP

  内网做对外服务器:

  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1

  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.1.2:80

  ========================================连接追踪模块=================================

  主动模式(ACTIVE)

  使用连接追踪模块(打开tcp/20,防火墙打开高范围端口,配置ftp,减小被动模式端口范围)

  modprobe ip_nat_ftp

  iptables -A INPUT -p tcp --dport 21 -j ACCEPT

  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  iptables -P INPUT DROP

  被动模式(PASSIVE)

  =============================网关策略=================================

  echo "1" > /proc/sys/net/ipv4/ip_forward

  echo "1" > /proc/sys/net/ipv4/tcp_syncookies

  echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

  modprobe ip_nat_ftp

  堵:

  iptables -A FORWARD -p tcp --dport 80 -j DROP

  iptables -A FORWARD -p tcp --dport yyy:zzz -j DROP

  通:

  iptables -A FORWARD -p tcp --dport xxx -j ACCEPT

  iptables -A FORWARD -p tcp --dport yyy:zzz -j ACCEPT

  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

  iptables -P FORWARD DROP

  ==========================三大纪律五项注意=============================

  3: filter nat mangle

  5: prerouting,input,forward,output,postrouting

  ==========================注意事项==============================

  #养车好的习惯

  iptables -vnL

  iptables -t nat -vnL

  iptables-save

  #注意逻辑顺序

  iptables -A INPUT -p tcp --dport xxx -j ACCEPT

  iptables -I INPUT -p tcp --dport yyy -j ACCEPT

  ==========================FAQ======================================

  iptables -m 模块名 -h

  /lib/modules/`uname -r`/kernel/net/ipv4/netfilter #模块存放的路径

  modprobe ip_nat_ftp #加载模块

  =========================实战======================================

  iptables -A INPUT -i lo -j ACCEPT

  iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  iptables -P INPUT DROP

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 j SNAT --to 202.106.0.254

  iptables -t nat -A POSTROUTING -d 202.106.0.254 -p tcp --dport 80 -j DNAT --to 172.17.0.1

  iptables -A FORWARD -i eth2 -p eth1 -m state --state NEW -j DROP

通过文章,我们知道一些关于iptables 简单的学习知识,希望大家喜欢!

【编辑推荐】

  • 搭建基于netfilter/iptables的实验环境
  • 用IPtables限制BT、电驴等网络流量
  • 如何使用IPTables实现字符串模式匹配
  • iptables相关脚本
  • 如何使用 IPTables
  • 如何用iptables实现NAT
  • iptables配置工具
  • iptables与stun

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...