iptables
一 相关概念:
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过],DROP[删除],QUEUE[排队],或者 RETURN[返回]。
链: 链是数据包传播的路径,每个链是众多规则中的一个检查清单,每条链可以有一个或者多个规则。
表: 表是包含仅处理特定类型信息包的规则和链的信息包过滤表。
(1)filter(过滤表),这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。
(2) nat(网络地址转换表),这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
(3)mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由之前本地的包)
相关参数:
-t 指定表名称 -n 不做解析 -L 列出指定表中策略 -A 增加策略 -p 协议 --dport端口 -s数据来源 -j动作 -i从哪里来 ACCEPT允许 DROP丢弃 REJECT 拒绝 -N 增加链 -E 修改链的名称 -X 删除链 -D 删除指定策略 -I 插入指定策略 -R 修改指定策略 -P 修改默认策略
二 服务安装
yum install iptables-services -y 安装管理工具
相关命令:(策略按表中顺序从上到下依次执行)
iptables -F --刷新策略
service iptables save --保存当前策略
iptables -nL --显示当前策略
iptables -A INPUT -i lo -j ACCEPT 允许本机访问
iptables -A INPUT -s 172.25.254.41 -p tcp --dport 22 -j ACCEPT 允许41主机访问22端口
iptables -A INPUT -j REJECT 拒绝所有主机访问
删除策略:
『1』vim /etc/sysconfig/iptables『2』iptables -F --清空当前策略
service iptables save --保存当前策略
iptables -nL --显示当前策略
『3』iptables -A INPUT(表) 1 -p tcp(协议) --dport 80(端口) -j ACCEPT(添加策略,默认最后)
iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT(插入添加策略,默认最前)
iptables -D INPUT 5 (删除第5行策略)
iptables -R INPUT 3 -p tcp --dport 80 -j DROP(更改策略)
iptables -N IOP (创建链)
iptables -E IOP PPP (修改链的名字)
iptables -X IOP (删除链)
三 目的地址与源地址转换
iptables -t nat -A POSTROUTING -o eth0 -j SNAT -to-source 172.25.254.141 --源地址转换为141
iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.141 -j DNAT --to-dest 172.25.41.100 --目的地址转换为100
sysctl -a | grep ip_forward --查看内核路由功能是否打开,如果未打开修改其配置文件打开内核路由功能
vim /etc/sysctl.conf
sysctl -p 使配置生效
测试:主机ssh服务