iptables常用命令及应用

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  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux 命令常用大全 PDF 是一个包含了各种 Linux 操作系统命令的指南。这个 PDF 文件提供了一个集中的资源,方便用户学习和熟悉 Linux命令行操作。 在 Linux 中,命令行是一种非常强大和灵活的工具,通过命令行我们可以执行各种系统管理任务、文件操作、网络配置、软件安装等等。学习和掌握这些命令对于 Linux 系统管理者、开发者和常规用户都是非常必要的。 这个 PDF 包含了丰富的内容,介绍了常见的 Linux 命令及其用法。它不仅仅列出了命令的基本语法和参数,还提供了实例及解释,让用户更好地理解如何使用这些命令。 这个 PDF 可以帮助用户熟悉和理解诸如文件和目录管理、文本编辑、进程管理、软件包管理、网络配置、权限管理等方面的命令。它涵盖了常见的命令,如cd、ls、cp、mv、rm、nano、vi、ps、kill、yum、apt等等。 除了这些基本命令,该 PDF 还介绍了一些高级和更复杂的命令,如grep、sed、awk、find等。 这些命令可以帮助用户在操作系统中进行更高级的任务和数据处理。 总的来说,Linux 命令常用大全 PDF 是一个非常有用的资源,可以帮助用户学习和掌握 Linux 命令行操作。无论是初学者还是有经验的用户,都可以从中受益,并提高他们在 Linux 环境下的工作效率。 ### 回答2: Linux命令常用大全PDF是一份收录了Linux操作系统中常用命令的参考手册,旨在帮助用户快速查询和学习Linux命令的使用。 该PDF文件中包含了许多常用的Linux命令,如文件管理命令(如ls、cd、cp、mv、rm等),目录操作命令(如mkdir、rmdir、pwd等),文本操作命令(如cat、grep、sed、awk等),权限管理命令(如chmod、chown、chgrp等),进程管理命令(如ps、kill、top等),网络管理命令(如ifconfig、ping、ssh等)等等。 对于Linux初学者来说,这份PDF文件非常实用,可以作为学习和掌握Linux命令的参考资料。它可以帮助用户了解每个命令的基本用法和常见选项,以及实际应用场景。 对于有一定Linux使用经验的用户,这份PDF文件也是一份不错的备忘录和速查手册,可以帮助他们快速回顾和查找某个命令的用法,提高工作效率。 总而言之,Linux命令常用大全PDF是一份非常有用的资料,无论是初学者还是有经验的用户,都可以从中受益。它为用户提供了方便快捷的查询和学习Linux命令的手段,帮助他们更好地理解和应用Linux操作系统。 ### 回答3: "Linux命令常用大全"是一本涵盖了Linux系统中常用命令的PDF文档。在这本书中,你可以找到关于Linux命令的详细说明,以及如何使用这些命令来完成各种任务。 该PDF文档包含了众多常用的Linux命令,包括文件管理、目录导航、进程管理、软件安装与卸载、网络管理等方面的命令。每个命令都有对应的语法、选项和示例,方便用户学习和参考。 在这本PDF文档中,你可以学习到如何使用基本的文件和目录操作命令,比如创建、复制、删除文件和目录。你还可以学习到如何使用grep命令进行文本搜索,如何使用awk和sed命令进行文本处理,如何使用ps和top命令查看系统进程状态等等。 此外,该PDF文档还提供了一些高级命令的使用方法,比如使用rsync命令进行文件同步,使用scp命令进行远程文件传输,使用iptables命令进行网络配置等等。 总之,"Linux命令常用大全"这本PDF文档是一本非常有用的参考资料,对于学习和使用Linux系统的人来说是必不可少的工具。通过学习和掌握其中的命令,你可以更加高效地管理和操作Linux系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值