`
loamy
  • 浏览: 323858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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的数据包进行地址伪装

===================附加模块
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

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    RHCE课程笔记

    一、RH033部分,是基础。 1、LINUX起源及GNU简介 2、LINUX发行版本的介绍 ...RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙 2009-05-22更新 11、日志检测 所有课程安排就这样了。期待你的关注!

    黑马Linux笔记.zip

    9. **Shell脚本编程**:bash shell的基础知识,变量、条件语句、循环、函数,编写简单的自动化脚本。 10. **系统监控与性能优化**:top、vmstat、iostat、mpstat等监控工具,内存、CPU、磁盘I/O的分析和调优。 11....

    马哥linux手写笔记

    - **snmp(简单网络管理协议)**:一种网络管理协议,用于收集和报告网络设备的状态信息,如路由器、交换机等。 - **RRDTool(Round Robin Database Tool)**:一种用于存储时间序列数据的数据库工具,常用于监控...

    尚观Linux笔记

    3. **shell脚本**:学习如何编写简单的bash脚本,用于自动化重复性任务,如文件处理、系统维护等。 4. **系统管理**:了解如何启动、关闭和重启系统,管理用户和组,以及控制进程。 5. **网络服务**:包括HTTP...

    eztables:iptables变得简单!

    Eztables:适用于Linux的简单但功能强大的防火墙配置该项目被放弃。... Eztables拥有自己的防火墙规则语法,比直接使用iptables简单得多。 像这样的工具具有类似的心态,但它更以主机为中心。 它从未被

    Centos实现端口转发:Rinetd部署笔记

    标题“Centos实现端口转发:Rinetd部署笔记”指出本文的核心内容是关于在Centos操作系统中部署和使用Rinetd这一端口转发工具。端口转发是一种网络技术,允许将一个网络端口的流量转发到另一个端口,通常用于多种网络...

    Linux与Ubuntu学习笔记

    此外,对于服务器运维,学习远程访问工具(如SSH)、防火墙配置(ufw或iptables)及服务管理(systemd)等技能也是必不可少的。 Linux内核是Linux系统的核心,学习内核模块、驱动程序开发和系统调用将帮助你更深入...

    [实战]Java分布式高级架构师课程学习笔记.docx

    【Java分布式高级架构师课程学习笔记】 在Java分布式高级架构师的学习过程中,涵盖了多个关键领域的技术,包括数据库的高可用方案、缓存系统、消息中间件以及分布式协调服务。以下是对这些主题的深入探讨: 1. **...

    akang笔记:linux所有实验

    7. **Shell脚本编程**:掌握Bash Shell的基础,编写简单的自动化脚本,如文件备份、日志处理等。 8. **系统服务与启动级别**:理解System V或Systemd服务管理系统,配置开机自启动服务。 9. **文件系统与磁盘管理*...

    red hat linux 9讲义及学习笔记(基础)

    3. **防火墙设置**: 学习iptables规则,构建基本的防火墙策略。 4. **日志管理**: 查看/var/log中的系统日志,理解日志的重要性。 5. **计划任务**: 使用cron服务设置定时任务。 **七、Shell脚本编程** 1. **Bash ...

    Linux笔记.zip

    9. **Shell脚本编程**:理解Bash shell的基本语法,编写简单的shell脚本,如变量赋值、条件语句、循环结构和函数定义。 10. **系统管理**:了解系统启动流程,配置`fstab`挂载文件系统,以及使用`crontab`进行定时...

    ClickHouse笔记.pdf

    根据不同的CentOS版本,使用不同的命令关闭防火墙,例如使用`service iptables stop`或者`systemctl stop firewalld.service`。 4. **安装依赖**: 安装libtool和unixODBC等依赖包。 ### 单机模式安装 1. **...

    linux新手学习笔记

    本笔记将帮助初学者建立起对Linux的基本理解,包括安装、常用命令、文件系统管理、用户权限以及简单的系统维护。 1. **Linux发行版介绍**:Linux有许多不同的发行版,如Ubuntu、CentOS、Debian等,它们各自拥有不同...

    linuxcast苏勇老师linux课程学习笔记

    2. 脚本编写:学习如何编写简单的Shell脚本,实现批量处理文件、定时任务等功能。 3. 脚本调试:掌握如何使用set命令和错误处理来调试和优化脚本。 三、网络与服务 在企业环境中,Linux常作为服务器运行各种服务。...

    linux进阶之路/笔记

    可能还涉及了Linux的安装过程、基本命令行操作,如文件和目录管理(ls, cd, mkdir, rm等)、文本编辑器如vi或nano的使用,以及简单的权限管理。 2. **中级操作(16-34.docx)** 随着深入,这部分可能涵盖了更复杂...

    liunx学习笔记(值得一看)

    11. **安全与防火墙**:理解用户权限模型,设置sudo,启用并配置iptables或firewalld防火墙,是保护系统安全的重要环节。 12. **虚拟化技术**:介绍如Docker、KVM等虚拟化技术,它们在Linux环境中发挥着重要作用。 ...

    Linux讲义笔记.rar

    8. **shell脚本编程**:学习编写简单的bash脚本,实现自动化任务,如变量、条件语句、循环、函数等。 9. **文件系统管理**:理解文件系统的类型(如EXT4、XFS等),挂载和卸载文件系统,以及磁盘空间管理。 10. **...

    Linux网络服务与管理知识图解笔记

    此外,安全管理也是重点,包括防火墙规则(如iptables和firewalld)、SELinux(安全增强型Linux)策略配置、以及日志监控和审计。了解并熟练应用这些工具可以有效防止系统被攻击。 最后,自动化和脚本编写能力也是...

    SVN安装笔记

    【SVN安装笔记】这篇笔记主要讲述了在LINUX环境下如何配置和安装SVN,这是一个版本控制系统,对于软件开发团队协作至关重要。以下是对整个过程的详细解释: 1. **检查是否已安装SVN**:首先通过`rpm –qa |grep svn...

    韩顺平一周学会Linux笔记和ppt

    在这个课程中,你将通过PPT和笔记的形式,深入理解Linux的核心概念,学习如何在命令行界面下进行操作,以及如何利用Linux进行日常任务和系统管理。 1. **Linux基础知识**:课程首先会介绍Linux的历史和哲学,解释...

Global site tag (gtag.js) - Google Analytics