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

相关推荐

  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • 马哥教育网络班21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; # mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 # mount&…

    Linux干货 2016-08-24
  • 天神之剑Vim编辑器

    一.概述和基本用法及一些描述 vi:Visual Interface 文本编辑器 文本ASCII , Unicode 文本编辑种类: 行编辑器:sed 全屏编辑器:nano,vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个vim编辑器的图形版本 基本用法  vim [OPTION]…

    Linux干货 2016-08-15
  • grep &&正则表达式&&通配,元字,转义符

    grep 基于正则表达式的查询 1正则表达式: 正则表达式是通过使用特殊的字符所编写的模式,一些字符不表示字符的表面意思,具有控制和通配的功能. 使用正则表达式进行匹配具有两种方法:一是通过使用特殊的元字符进行字符匹配;二是使用次数匹配。 一, 正则表达式的特殊字符(元字符) :  #建议再温习一下之前所学的统通配符,对比一下,防止混淆。 (1)元…

    Linux干货 2016-08-05
  • 安装CentOS 6.9

    安装完VMvare,VMware可以运行虚拟机,虚拟机就相当于一台电脑,然后我们在这台电脑上安装Linux系统,我们这次介绍安装CentOS 6.9的过程 1.打开VMware,依照下图步骤安装     首先我们需要创建新的虚拟机,然后配置出适合自己物理机的虚拟机 2.点击典型类型安装     这里推荐使用典…

    2017-07-12
  • Tomcat安装及简单配置

    安装jdk: [root@stu ~]# rpm -ivh jdk-7u9-linux-x64.rpm #此为安装官方的版本(c6已经使用了openjdk)报错不用关心 查看安装位置: [root@stu ~]# rpm -ql jdk 目录: [root@stu&nb…

    Linux干货 2016-07-19