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

相关推荐

  • centos7源码编译安装Apache2.4.25服务

    •一、源码包下载 •二、安装开发环境以及编译环境 •三、编译安装以及报错排查 •四、调试Apache服务 前言: 本文主要介绍了在Centos7环境中如何通过源码编译的方式安装Apache服务(也就是我们的httpd服务)由于本文整理时间有限,所以难免有些纰漏之处,欢迎大家在阅读后在评论区指出,本人看到会在第一时间修改文中错误的地方。 为什么要进行源码编译安…

    2017-04-22
  • 网络接口配置-bonding

    bonding      就是将多块网卡绑定同一个IP地址对外提供服务,可以实现高可用或是负载均衡,当 然,直接给两块网卡设置同一个IP地址是不可能的,通过bonding,虚拟一块网卡对外提供链接,这样即使一块网卡坏了可以经行自动切换,而不会影响业务的正常的通信 Bonding的工作模式 mode 0 轮转(…

    Linux干货 2016-09-05
  • Linux用户和组管理及相关命令详解

        概要:在学习Linux的初级阶段,用户管理是基础管理的重要部分,任何命令的运行,系统的正常运转,均离不开用户管理的内容,本篇就为大家介绍下Linux用户管理的一些基础概念和一些基础命令的用法。内容主要分为以下三个部分:        &nbs…

    Linux干货 2016-08-02
  • 推荐-使用Ansible部署LAMP环境

    使用Ansible部署LAMP环境 使用Ansible部署LAMP环境 前言 实验环境 实验步骤 配置ssh公钥认证 安装ansible 配置host iventory 创建YAML文件 运行Ansible-Playbook并测试 总结 前言 这两天学习了Ansible, 在部署实验环境真的很好用, 今天向大家分享如何使用Ansible部署LAMP环境, 本…

    Linux干货 2016-04-10
  • Linux中的文件管理命令及shell特性

    Linux中的文件管理命令 一、linux中的目录管理命令:mkdir和rmdir mkdir命令:创建目录 – SYNOPSIS         mkdir [OPTION]… DIRECTORY…     -…

    Linux干货 2016-09-27
  • 系统时间与硬件时间

    1. “系统时间”与“硬件时间”    系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。    硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根…

    Linux干货 2016-08-05