Linux私房菜——防火墙部分笔记
#1 分类
对单一主机,主要有两种:数据包过滤Netfilter和依据服务软件分析的TCP Wrapper.
对区域型防火墙来说,即安装防火墙的主机充当路由器的角色。防火墙类型主要有两种:数据包过滤Netfilter和代理服务器。
对Netfilter(数据包过滤机制),Linux提供了iptables这个软件来进行管理。下文的重点就是整理iptables常用的命令。
对TCP wraper(程序管理),是针对特定的软件,如ssh,telnet等特定软件进行IP限制,MAC地址限制等(不可用于apache)。
代理服务器往往也是NAT服务器,以实现透明代理。
#2 iptables概念
iptables由多个table组成,每个table都有自己的策略和规则。默认的table为Filter,作用是过滤本地的数据包。除此之外,还有NAT table,功能是进行来源于目的地的IP或port转换,与Linux本机无关。还有其他的table,此处不提。
每个table都有自己的链(chain),盗图一张,具体如下:

对Filter来说,有三条链,分别为INPUT,OUTPUT,FORWARD。
一个数据包进入本机与从本机发出的过程,如下图所示,再次盗图一张:

#3 iptables语法
1. 规则查看
iptables [-t target(缺省为fliter)] [-L (查看当前table的规则)] [-v (更多信息)] 查看filter表规则 : iptables -L 查看NAT表规则 : iptables -t nat -L
2. 规则查看2
iptables-save [-t target] 会列出完整的防火墙规则
3. 清空规则
iptables -F 清除所有已制定规则 iptables -X 清除所有用户自定义的tables iptables -Z 将所有chain的计数和流量清空
4. 定义默认策略
iptables [-t target] -P [INPUT,OUTPUT...] [DROP,ACCEPT]
5. 设定规则:针对IP
iptables [-AI 链名(-A为新增,-I为插入)] [-io 网络接口(-i为数据包进入的接口)] [-p 协议(主要有:tcp udp icmp all)] [-s 来源IP/网络] [-d 目标IP/网络] -j [ACCEPT|DROP|REJECT|LOG (接收,悄悄丢弃,向来源地址发送拒绝数据包,日志记录)] LOG记录的数据储存在/var/log/message中,LOG并不影响后续的数据包对比。 例: 添加lo为信任设备: iptables -A INPUT -i lo -j ACCEPT 来自内网的所有数据都接收:iptables -A INPUT -i eth1 -s 192.168.1.0/ -j ACCEPT(假设eth1连接LAN)
6. 设定规则:针对端口
iptables [-AI 链名] [-io 网络接口] [-p tcp,udp] [-s 来源] [--sport 端口范围] [-d 目的] [--dport 端口范围] -j [ACCEPT|DROP|REJECT] --sport表示来源IP/网络的端口范围,--dsport表示目的IP/网络的端口范围 因为仅有TCP、UDP数据包有端口,所以要想使用--sport或者--dport,都需要指定-p 例:拒绝进入本机的21号端口的数据包:iptables -A INPUT -i eth0 -p tcp --dport -j REJECT
7. 设定规则:针对mac和state
iptables -A INPUT [-m 外挂模块名(state,mac等)] [--state 状态] 常见的数据包状态:INVALID(无效数据包) ESTABLISHED(连接成功的连接状态) NEW(新建连接的数据包) RELATED(与主机发出去的数据包有关) 例: 通过所有已建立连接或与发出请求相关的数据包,不合法数据包丢弃:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP 放行mac地址为aa:bb:cc:dd:ee:ff的主机 iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT
Linux私房菜——防火墙部分笔记的更多相关文章
- 《鸟哥的Linux私房菜》读书笔记
第五章 初次使用Linux man.info的使用 组合键:切换登录环境.Tab.Ctrl+c.Ctrl+d 正确关机的方法 开机过程的问题排解:文件系统错误.忘记root密码 第六章 文件权限& ...
- 《鸟哥的Linux私房菜》读书笔记二
1.Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix. ...
- 《鸟哥的Linux私房菜》读书笔记五
1. Ctrl+alt+FX(X=1~6)可以切换到6个不同的文字界面终端(Terminal) 再按Ctrl+alt+F7就可以回到X Window,按Ctrl+alt+Backspace这是结束所有 ...
- 《鸟哥的Linux私房菜》读书笔记四
1.Linux的目录配置以『树状目录』来配置,至於磁碟分割槽(partition)则需要与树状目录相配合! 请问,在预设的情况下,在安装的时候系统会要求你一定要分割出来的两个Partition为何? ...
- 《鸟哥的Linux私房菜》读书笔记三
1.在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名.比如 IDE接口的硬盘文件名为/dev/hd[a-d] 括号内的字母为a-d当中任意一个,即/dev/hda,/dev ...
- 《鸟哥的Linux私房菜》读书笔记2
1. 压缩后缀与压缩程序: *.Z compress 程序压缩的档案; *.bz2 bzip2 程序压缩的档案; *.gz gzip 程序压缩的档案; *.tar tar 程序打包的数据,并没有压缩过 ...
- 《鸟哥的Linux私房菜》读书笔记1
1.MBR 可以说是整个硬盘最重要的地方了,因为在 MBR 里面记录了两个重要的东西,分别是:开机管理程序,与磁盘分割表 ( partition table ).下次记得人家在谈磁盘分割的时候, 不要 ...
- 《鸟哥的Linux私房菜》学习笔记(5)——权限管理
一.权限的基本概念 权限:访问计算机资源或服务的访问能力. Linux中,每一个资源或者服务的权限, ...
- 《鸟哥的Linux私房菜》学习笔记(4)——用户和组
一.用户和组的基本概念 1.用户 用户:用于获取计算机资源或服务的标识符,比如用户名.计算机处理的是UID,用 ...
随机推荐
- C# 之 Math取整
主要用到 System 命名空间下的一个数据类 Math ,调用他的方法. C#取整函数使用详解: 1.Math.Round是"就近舍入",当要舍入的是5时与"四舍五入& ...
- APP运营干货分享
从移动互联网市场总监岗位出发,从几个方面来阐述移动互联网部门如何制定一份运营推广策划案,至于关于移动互联网,移动电商是大趋势这些虚的.空泛的文字,不展开说了. 一.竞品分析 1.选择竞品,做好定位(选 ...
- ios代理设计模式
代理设计模式的作用: 1.A对象监听B对象的一些行为,A成为B的代理 2.B对象想告诉A对象一些事情,A成为B的代理 代理设计模式的总结: 如果你想监听别人的一些行为,那么 ...
- Fortify规则与CERT JAVA 安全编程规范的对照表
Fortify规则与CERT JAVA 安全编程规范的对照表http://www.automationqa.com/forum.php?mod=viewthread&tid=4353& ...
- 使用angular的ng-repeat遇到的一个问题
问题描述:ng-repeat绑定的数据集动态更新之后其包裹的子元素所绑定的事件全部丢失:问题详述:问题代码如下: <style> img{width:100px;height:100px; ...
- Jquery选择器,操作DOM
刚接触jQuery,她真的是个好东西,操作DOM,修改样式,都很方便,主要获取DOM树的类和子代很方便. 今天用jq做了tab面包屑,不过用的是别人的代码,自己修改的,不错也做出来了,原理也有些明白, ...
- 在.bashrc中,使用python获取本机IP地址(现在只支持wlan)
其实最好的办法是写个单独的脚本去查找IP,但是如果实在不愿意单写一个脚本文件,也可以直接将代码嵌入.bashrc中 在~/.bashrc下加入下面这行代码即可使用python获取本机的wlan的IP地 ...
- windows7 图形界面远程 centos6.5
一.首先确定centos已经安装了gnome,因为centos自身没有图形界面,别说远程图形界面方式访问了,就本地图像界面方式都不行 1.首先查看系统的运行级别以及是否安装了桌面环境 1.使用命 ...
- ASP生成静态文件编码为UTF-8格式的HTML文件
一般在ASP环境下,运行动生静操作时都用到的是FSO,FSO是专门对文件进行操作的一个组件,FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有utf-8,所以一般中文系统上使用FS ...
- SQLSERVER连接池内部机制
前言介绍: 当应用程序运行的时候,会有一个连接池的管理控件运行在应用程序的进程里,统一管理应用程序和SQLSERVER建立的所有连接, 并且维护这些连接一直处于活动状态.当有用户发出一个connect ...