iptables学习笔记

 

Netfilter:是Linux操作系统核心层内部的一个数据包处理模块。

 

Hook point:数据包在Netfilter中的挂载点。(PRE_ROUTIN

 

,INPUT,OUTPUT,FORWARD,POST_ROUTING

 

iptables 规则组成:四张表+五条链(Hook point+规则

 

四张表:filter表、nat表、mangle表、raw

五条链:INPUT OUTPUT FORWARD PREROUTING POSTROUTING

图片1.png 

PREROUTIN 如果流量localhost(本地) ——》INPUT

如果流量不是本地——》FORWARD

 

POSTROUTIN

 

规则:

数据包访问控制:ACCEPT(接收)DROP(丢弃)、REJECT(拒绝)

 

数据包改写:SNAT(源地址)DNAT(目标地址)

 

信息纪录:LOG

 

图片2.png 

Command:

-A :追加新纪录

-D:删除

-L:显示当前规则

-F:清楚现有规则

-P:设置默认规则

-I:插入新规则

 

Parameter&xmatch

-P 协议

-s 源地址

-d 目标地址

–sport 源端口

–dport 目标端口

–dports 目标端口段

-m tcp|state|multiport

Target

-j ACCEPT 运行通过

DROP 丢弃

REJECT 拒绝

DNAT

SNAT

 

实例:

Iptables 配置场景一

规则1、对所有的地址开放本机tcp(802210-21)端口的访问

规则2、允许对所有的地址开放本机的基于ICMP协议的数据包访问

规则3、其他未被允许的端口规则禁止访问

Iptables -nL

Iptables -F

Iptables -I INPUT -p tcp –dport 80 -j ACCEPT

Iptables -I INPUT -p tcp –dport 22 -j ACCEPT

Iptables -I INPUT -p tcp –dport 1021 ACCEPT

Iptables -I INPUT -p icmp -j ACCEPT

Iptables -A INPUT -j REJECT

场景一存在的问题:

1、本机无法访问本机

Iptables -I INPUT -i lo -j ACCEPT

2、本机无法访问其他主机

Iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

补充:在场景一的基础上,只允许192.168.0.100访问本机的httpd服务

Iptables -D INPUT -p tcp –dport 80 -j ACCEPT

Iptables -I INPUT -p tcp -s 192.168.0.100 –dport 80 -j ACCEPT

 

Iptables 配置场景二

 

1、ftp主动模式下iptables配置

图片3.png 

图片4.png 

图片5.png 

2、ftp被动模式下iptables配置

图片6.png 

图片7.png 

图片8.png 

 

Iptables 配置场景三

要求一:员工作公司内部(192.168.1.0/24,192.168.2.0/24)能访问服务器的任何服务

要求二:当员工出差例如在上海,通过VPN连接到公司外网(员工)===拨号到===VPN服务器++=》内网FTPSAMBA,NFS,SSH

要求三:公司有一个门户网站需要允许公网访问

图片9.png 

图片10.png 

 

iptables -F

iptables -I INPUT -i lo -j ACCEPT

iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

iptables -A INPUT -p tcp –dport 1723 -j ACCEPT

iptables -I INPUT -p icmp -j ACCEPT

iptables -A INPUT -j REJECT

iptables -nL

/etc/init.d/iptables save

 

 

 

图片11.png 

Snat

 

 

Nat转发 设置/etc/sysctl.conf    net.ipv4.ip_forward=1 默认为0

图片12.png  

 

Iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT –to 10.10.188.232

 

Dnat

图片13.png 

Iptables -t nat -A PREROUTING -d 10.10.188.233 -p tcp –dport 80 -j DNAT –to 10.10.177.232:80

 

 

图片14.png 

图片15.png iptables -I INPUT -p TCP –syn –dport 80 -m connlimit –connlimit-above 100-j REJECT

 

图片16.png 

场景:限制10icmp包通个,如果大于10个包就现在速度 每分钟5

 

Iptables -A INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT

Iptables -A INPUT -p icmp -j DROP

 

原创文章,作者:luobocai,如若转载,请注明出处:http://www.178linux.com/49664

(0)
luobocailuobocai
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • 条件选择if 条件判断case 文件查找 find locate 以及压缩和解压缩工具

    1 shell脚本编程之 条件选择if 条件判断case  2 文件查找 find locate 以及压缩和解压缩工具 过程式编程语言:  顺序执行  选择执行  循环执行 条件选择之 if语句 选择执行:   注意:if语句可嵌套    单分支 if 判断条件:then 条件为真的分…

    Linux干货 2016-08-15
  • IT基础设施工具—Puppet

    一、Puppet简介 Puppet是一款使用GPLV2X协议授权的开源管理配置工具,基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,既可以通过客户端—服务器的方式运行,也可以独立运行。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。puppet可以为系统管理员提供方…

    Linux干货 2017-11-26
  • linux入门基础命令总结

    命令基础

    2017-09-18
  • 脚本进阶笔记整理

    一、逻辑运算 变量:   本地变量、环境变量、局部变量、位置参数变量、特殊变量   变量赋值:name=value,export name=value,declare -x name=value   变量引用:$name,${name}   注意:有些时候{}不能省略,例如 &n…

    Linux干货 2017-03-26
  • Linux下常用安全策略设置的六个方法

    安全第一”对于linux管理界乃至计算机也都是一个首要考虑的问题。加密的安全性依赖于密码本身而非算法!而且,此处说到的安全是指数据的完整性,由此,数据的认证安全和完整性高于数据的私密安全,也就是说数据发送者的不确定性以及数据的完整性得不到保证的话,数据的私密性当无从谈起! 1. 禁止系统响应任何从外部/内部来的ping请求攻击者一般首先通过ping命令检测此…

    Linux干货 2017-07-31
  • 软件包管理(RPM和yum)

        软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几个常用的软件包管理工具。 软件包管理:     一,RPM包管理; &n…

    Linux干货 2016-09-06