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
下一篇 2016-12-05

相关推荐

  • Linux文件系统权限详解

    一、综述 在用户和组的管理中介绍了Linux系统是用户多任务的分时操作系统,这意味着同时可以有多人在同一台pc上进行不同的操作。为了能够保护每个用户的数据安全,针对不同的用户设置相应的权限是非常重要的。 Linux文件系统权限主要针对三类用户: 文件的所有者: owner,用u标识 文件的所有组:group,用g标识 其他人: other,用o标识。不包含在…

    Linux干货 2016-08-04
  • ansible之Playbook中tags使用

    示例:httpd.yml– hosts: websrvsremote_user: roottasks:– name: Install httpdyum: name=httpd state=present – name: Install configure filecopy: src=files/httpd.conf des…

    Linux干货 2018-01-14
  • crm命令行命令详解

    crm -status 显示当前集群状态 -configure 配置集群 a.show xml 显示当前集群配置信息(xml格式) b.property 显示集群可用的全局属性(键入之后按两下Tab) -verifiy 校验 -commit 提交 -node a.online 设置当前节点上线 b.show 显示当前节点状态 c.standby 将当前节点设…

    Linux干货 2017-11-04
  • ansible

    ansible 安装ansible 查看当前的系统版本 yum install redhat-lsb-core -y [root@localhost httpd]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: C…

    Linux干货 2017-07-09
  • 安装RPM包 rpm与yum工具的使用

    1.认识yum与rpm工具.                 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续 “下一步” 即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下。所以你要学会如何在linux下安装一…

    Linux干货 2016-08-26
  • Ubuntu 葵花宝典入门篇——要练此功,可能得自宫?

        此文章给初入ubuntu的小伙伴们写一篇装机篇和使用心得。第二期会给小伙伴介绍软件安装篇。如题目所说,乌班图确实是葵花宝典,练好了天下无敌。只是如果要安装UBUNTU系统,只是在虚拟机上跑跑是不够的,你必须在实际的桌面环境和服务器环境上才能体会到它的运行方式,而桌面环境和服务器环境几乎差不多。所以安装桌面版可以更好的理解…

    Linux干货 2017-03-26