iptables 学习笔记

1.基本概念

linux内核模块netfilter实现防火墙功能,iptables、etables和firewalld都是用来实现跟内核的交互。

三个工具彼此冲突,同一时间系统只能使用其中一个。

iptables是比较经典的工具,功能强大,资料较多。它有三张表nat,filter,mangle和5条链PREROUTING,INPUT,OUTPUT,FORWARD,POSTROUTING。

filter是不加参数时的默认表,主要用来实现防火墙的功能;mangle是张自定义表,包含各个链,在数据流向上同一链上处理优先级最高,一般少用到,下面的讨论我们略过此表。

数据包进入系统后首先进入nat表的PREROUTING链,在这里可以改变数据包的目的地址,通常用在端口转发或者nat到DMZ区。

若目的地址是本机,数据包流向filter表的INPUT链;否则包进入fiter表的FORWARD链,linux默认三层转发是关闭的,要实现转发就要修改系统参数,否则系统会把流向非本机的数据包丢弃。

流向本机的数据会再经过filter表INPUT链和output表nat、filter链进一步处理。

最终数据包进入NAT表的POSTROUTING链, 在这里可以修改数据包的源地址。

各个表中的规则是从第一条语句开始匹配,匹配到规则就进入下一张表,所有规则都不匹配的情况下会按默认policy执行。

2.简单nat共享上网

首先内核允许数据转发

grep net.ipv4.ip_forward  /etc/sysctl.conf

net.ipv4.ip_forward=1

生效配置

sysctl –p

然后添加规则

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

共享上网是在数据发出前改变其源地址,这样数据才能在公网路由回来。

MASQUERADE用在访问外网的端口是动态获取IP的情况,如PPPoE。

若端口是静态IP,则改成

iptables –t nat –A POSTROUTING –s 192.168.1.0/24 SNAT –to-destination IP_WAN

3.端口转发

iptables –t nat –A PREROUTING –i eth_wan –p tcp –dport 80 –j DNAT –to-destination internalServer:webPort

将外网访问网页的流量转发至内网网页服务器,在流量进入路由之前,修改目的地址和端口,所以用在PREROUTING链。

同时我们需要添加另外一条规则,修改内网网页服务器出去的数据包为公网可路由的IP。

iptables –t nat –A POSTROUTING –d ip_lan –dport servicePort –j SNAT –to-source ip_wan

劫持本地流量,做透明代理

iptables –t nat –A PREROUTING –i eth_lan –p tcp –dport 80 –j REDIRECT –to-port 8888

时间: 2024-10-11 21:51:45

iptables 学习笔记的相关文章

iptables学习笔记

1. 压力测试 ab host1 ab -n 100000 -c 40 http://192.168.1.112/ host2 netstat -an|grep 80|grep 192.168.1.114 |grep EST -c w 2. netfilter linux核心层内部的一个数据包处理模块 3. hook point(INPUT OUTPUT FORWARD PREROUTING POSTROUTING) 数据包在netfilter的挂载点 4. iptables 四张表(filte

iptables学习笔记之编译内核和iptables及安装l7proto

            编译内核和iptables及安装l7proto 一.环境介绍 操作系统:Redhat5.8_64bit 需要软件包: linux-2.6.28.10.tar.gz netfilter-layer7-v2.22.tar.gz l7-protocols-2009-05-28.tar.gz iptables-1.4.6.tar.bz2 安装步骤: 1).给内核打补丁,并重新编译内核 2).给iptables源码打补丁,并重新编译iptables 3).安装l7proto 1.给

linux之iptables学习笔记

iptables原理: firewall:防火墙,是一种隔离工具,工作于主机或网络的边缘,对于进出本机或本网络的报文根据事先定义好的检查规则做匹配检测,对于能够被规则所匹配到的报文做出相应处理的组件,因此根据其作用的范围分为两类: 主机防火墙:对进出本主机的数据包进行规制匹配,并作出相应的处理动作. 网络防火墙:对流经本网络的数据包进行规制匹配,并作出相应的处理动作,工作在网络出口处,一般作为网关防火墙. 注意:防火墙规则匹配顺序机制:自上而下,对于中间匹配到的规则则按规则规定的处理动作进行处理

Iptables学习笔记(一)

iptables,即linux上的防火墙,实现了linux上的访问控制功能. 它的实现原理是在TCP/IP协议栈上放置了5个钩子函数(hook function),通过在每个函数设定相应的规则来实现访问控制的目的. 这5个钩子函数分别定义了规则生效的地方,他们分别是 prerouting:路由决策前生效input:由内核空间转至用户空间服务进程生效output:由用户空间进程转至内核空间生效 forward:内核空间转发生效postrouting:路由决策后生效 每个点都可以有多条规则,叫做规则

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

[原创] linux课堂-学习笔记-目录及概况

本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分析37:19 课时4 Linux获得帮助_网络配置_合理关机64:23 课时5 Linux文件权限详解45:47 课时6Linux文件权限详解45:47 课时7目录显示个性操作与全局环境变量的使用与注意···43:25 课时8复制与远程复制_文件查找实例_文件内容查看的··57:49 课时9Linu

基于CentOS7上的搭建javaweb环境 - 学习笔记

一, 概述 上一篇记录了安装CentOS7的基本步骤及配置,现在要讲如何搭建基于CentOS7环境的javaweb环境了,我以 mysql + jdk1.8.0_91 + apache tomcat7.0.69 为例进行讲述. 二, 安装步骤 1, 首先在CentOS7下在线安装mysql数据库服务 (1)先查看是否已安装了mysql rpm -qa | grep mysql (2)若安装了,可以卸载,再重新安装 yum -y remove mysqlxxxxx (3)安装 yum -y ins

memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论

附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memcached的服务器客户端通信并不使用XML等格式,而使用简单的基于文本行的协议,因此通过telnet也能在memcached上保存.读取数据. ②基于libevent事件来处理的 libevent是一套垮平台的事件处理接口的封装,能够处理兼容包括这些操作系统: windows/Linux/BSD/So

LVS学习笔记--DR模式部署

一.部署环境: 服务器版本:CentOS6.5(Finnal) 网络拓扑: 二.需求分析:调度服务器与网页服务器均在同一网段局域网环境,用户提交的请求会经过调度器的分配指定到网页服务器,同时保证服务高可用性(任意一台网站服务器宕机后调度器会剔除它直至服务器恢复至正常:主调度器宕机后从调度器会接管它直至其恢复正常.). 三.相关配置: 部署调度器LVS服务脚本: #!/bin/sh mkdir tools cd tools/ # yum install lrzsz # rz # ls wget h