iptables常用命令及应用

摘要:
限制服务器的响应:#iptables-OUTPUT-172.16.100.1-tcp-port22-mstate-stateESTABLESD-jACCEKPT修改iptables的默认策略:iptables INPUTDROPiptables POUTPUTDROP,以便您可以ping自己:#ipttables-INPUT1-s127.0.0.1-d127.0.0.1-jACCEPT#iptables OUTPUT-127.0.0.1-d127.0.0.1-jACCEPTmulti-port--source-ports22,53,80--目标端口端口例如,您可以将以下两个具有相同特征的规则组合为一个规则:ACCEPTtcp-0.0.0.0/1772.16.58.1tcpdpt:22stateNEW、ESTABLESACCEPTTCP-0.0.0.0/0172.16.58.1tcpdpt:80stateNEW,ESTABLES#iptables-INPUT2-d172.16.58.1-ptcp-mstate-stateNEW,ESTABLISHED mmultiport--destination-port22,80-jACCEPT#iptables INPUT##iptables-IOUTUT1-mstatestateEstablished-jACCEPTPrange--src range 172.16.100.190-172.16.100.210--dst range例如:允许172.16.100.190-172.16.100.210网段的地址访问web服务:#iptablesINPUT ptcp--dport80 mirange--src range 17216.100.190170.100.210 mstate--stateNEW jACCEPTCONlimit--connlimit以上示例例如,同一主机只能建立两个ssh连接:#iptables-AINPUT-d172.16.58.1-ptcp-dport22 mstate-stateNEW mconnlimit--Connlimit-aove2-jACCEPTlimit--limit1/second--limit突发例如:#ipttables-INPUT-d17216.58.1-ptcp-report80 stateNEW mlimit--limit1/minimum--limit-brst3-jACCEPT要使显示效果明显,可以关闭keep-alive。
http://blog.csdn.net/bill_lee_sh_cn/article/details/4401896 iptables中DNAT的配置方法

一、命令格式

iptables [-t TABLE] COMMAND CHAIN [creteria] -j(jump) ACTION{ACCEPT,DROP,REJECT,SNAT,DNAT}
 -t {raw|mangle|nat|filter},默认filter

二、命令各选项及解释
 COMMAND:
 规则管理类
  -A,(append的意思)
  -I # (I表示insert的意思,#表示数字,以下相同)
  -D # (delete的意思)
  -R # (replace的意思)
 链管理类:
  -F (flush)(清空链)
  -N (new)(新建链)
  -X (delete)(删除自定义的空链)
  -E (rename)(对链重命名)
 默认策略:
  -P policy
 清空计数器:
  -Z,zero
  每条规则(包括默认策略)都有两个计数器:
   被此规则匹配到的所有数据包的个数;
   被此规则匹配到的所有数据包的大小之和;
 查看类:
  -L(list)
   -n,numeric(以纯数字的方式来显示,不做解析)
   -v,verbose(详细信息)
   -vv -vvv
   -x,exactly(显示精确值,不做单位换算)
   --line-numbers  
 匹配条件(creterial规则)
  基本匹配:
   -s (SOURCE:可以是IP,!NETWORK)
   -d (目标地址)
   -p{tcp|udp|icmp}
   -i INTERFACE(数据包的流入接口)
   -o OUTERFACE(数据包的流出接口)
 扩展匹配:(调用iptables的模块,以便扩展iptables匹配功能)
  隐含扩展
   -p tcp
    --sport PORT
    --dport PORT
     可以指定连续的端口;例如:--sport 22:80(表示从22到80的端口,一般不用)
    --tcp-flags(ACK,SYN,RST,FIN | SYN,ACK只检查前四个标志位,后组出现的为1)= --syn
     例如:--tcp-flags ACK,SYN,RST,FIN SYN,ACK,RST,FIN (不可能,丢弃)
    
   -p UDP
    --sport PORT
    --dport PORT
   -p icmp
    --icmp-type
     8:echo-request(ping请求)
     0:echo-reply(ping回应)
     3:(表示ping不通)  
  显式扩展
   -m(指定调用的模块)
    state --state {NEW|ESTABLISHD|INVALIDE|RELATED}(指定iptables的状态),
    iptables各state解释如下:
     NEW(相当于tcp三次握手的第一次请求,是syn=1的包)
     ESTABLISHED
     INVALID
     RELATED(主要用于做ftp命令跟踪的)
     例如:对ssh连接的控制:
     (1)对客户端的请求进行限制:
     iptables -A INPUT -d 172.16.100.1 -p tcp -dport 22 -m state --state NEW,ESTABLISHE -j ACCEPT
     同理,限制web服务只需将端口号改为80即可。
     (2)对服务器的回应进行限制:
     #iptables -A OUTPUT -s 172.16.100.1 -p tcp -sport 22 -m state --state ESTABLISHD -j ACCEKPT
     (3)修改iptables的默认策略:
     iptables -P INPUT DROP
     iptables -P OUTPUT DROP
     (4)让自己可以ping通自己:
     #iptables -I INPUT 1 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
     #iptablses -I OUTPUT 1 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
    multiport(指定端口)
     --source-ports 22,53,80
     !--destination-ports
     --ports
     例如:可以将以下两个相同特征的规则合并为一个规则:
     ACCEPT    tcp  --  0.0.0.0/0   172.16.58.1   tcp dpt:22 state NEW,ESTABLISHED 
     ACCEPT    tcp  --  0.0.0.0/0   172.16.58.1   tcp dpt:80 state NEW,ESTABLISHED 
     #iptables -I INPUT 2 -d 172.16.58.1 -p tcp -m state --state NEW,ESTABLISHED -m
     multiport --destination-port 22,80 -j ACCEPT
     #iptables -D INPUT #(删除合并过的行)
     #iptables -I OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT(这条命令表示不管是什么协议,什么端口,只要状态是ESTABLISHED都允许)
    iprange 
     --src-range 172.16.100.190-172.16.100.210 
     --dst-range
     例如:允许地址为172.16.100.190-172.16.100.210网段的地址访问web服务:
     #iptables -A INPUT -p tcp --dport 80 -m iprange --src-range 172.16.100.190-172.16.100.210 -m state --state NEW -j ACCEPT
    connlimit(表示限定每个主机的tcp连接数)
     --connlimit-above
     例如:同一台主机只允许建立两次ssh连接:
     #iptables -A INPUT -d 172.16.58.1 -p tcp --dport 22 -m state --state NEW -m connlimit ! --connlimit-above 2 -j ACCEPT (表示一台主机最多只允许两次新连接)
    limit (限定速率)
     --limit 1/second(限定多长时间能可以请求几次)
     --limit-burst(限定并发请求的总个数)
     例如:
     #iptables -A INPUT -d 172.16.58.1 -p tcp --deport 80 -m state --state NEW -m limit --limit 1/minite --limit-burst 3 -j ACCEPT
     为了使显示效果明显,可以将keepalive关掉。步骤如下(源码安装):
     可以修改 /etc/httpd/extra/httpd-default.conf文件中的:KeepAlive On改为KeepAlive Off 
    string
     --algo bm|kmp (指定算法)
     --string "STRING"(功能是拒绝网页中含有指定字符串的网页显示)
     例如:拒绝网页中含有“***功”字样的网页显示:
     #iptables -A OUTPUT -s 172.16.58.1 -m string --algo kmp --string "***功" -j REJECT
     (注意一定要在链OUTPUT中拒绝才生效)  
    time 
     --timestart 
     --timestop -j 
     -days
     例如:限定只能在12点到下午2:30之间请求主机172.16.100.1的web服务:
     #iptables -A INPUT -d 172.16.100.1 -p tcp 80 -m state --state NEW,ESTABLISTHED -m time --timestart 12:00 --timestop 14:00 -j ACCEPT  


免责声明:文章转载自《iptables常用命令及应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第45章:TLS回调函数基于微信的域名交易系统(功能篇)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【原创】主机不能访问虚拟机CentOS7中的站点

主机不能访问虚拟机CentOS7中的站点 ================================ 虚拟机上装好了centos7,并配好了nginx+php+mysql,但是本机就是无法访问。具体情况如下1.本机能ping通虚拟机2.虚拟机也能ping通本机3.虚拟机能访问自己的web 通过虚拟机IP也能访问自己的web 4.本机无法访问虚拟己的w...

Linux上iptables防火墙的基本应用教程

http://www.vpser.net/security/linux-iptables.html iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基...

iptables学习笔记

前言:学习iptables,需要知道它的工作原理,我们可以把它归纳成“三表五链”,其中“三表”分别为nat表、filter表以及raw表,“五链”为PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT,至于他们到底怎么配置,有什么作用,请看下文。 特别注意:对于centOS 7最小化系统而言,并没有自带iptables服务...

ubuntu关闭和开启防火墙

1、关闭ubuntu的防火墙 ufw disable 2开启防火墙 ufw enable 3、卸载了iptables apt-get remove iptables 4、关闭ubuntu中的防火墙的其余命令 iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT i...

xenserver 通过防火墙禁用xencenter VM控制台方法

#!/bin/sh #ver 0.1 0706/2017hayden #this script fordisable Xenserver VM VNC Console port #yelang007sheng@163.com start_iptables(){ xen_ver=`cat /etc/redhat-release |awk '{pri...

【转载】Iptables详解

参考链接:http://blog.csdn.net/reyleon/article/details/12976341 Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 L...