iptables fo asterisk

iptables fo asterisk

SIP on UDP port 5060. Other SIP servers may need TCP port 5060 as well

  • iptables -A INPUT -p udp -m udp—dport 5004:5082 -j ACCEPT
IAX2 - the IAX protocol
  • iptables -A INPUT -p udp -m udp—dport 4569 -j ACCEPT
IAX – most have switched to IAX v2, or ought to
  • iptables -A INPUT -p udp -m udp—dport 5036 -j ACCEPT
RTP – the media stream
  • iptables -A INPUT -p udp -m udp—dport 10000:20000 -j ACCEPT
MGCP – if you use media gateway control protocol in your configuration
  • iptables -A INPUT -p udp -m udp—dport 2727 -j ACCEPT

参考:http://www.voip-info.org/wiki-Asterisk+firewall+rules

iptables 详解

  • iptables—version来查看系统是否安装了iptables
  • iptables -help来查看一个快速帮助
  • man iptables来查看所有命令和选项的完整介绍
  • iptables—list 查看系统中现有的iptables规划集

一般语法如下:

iptables [-t table] command [match] [target]

table

filter用于一般的信息包过滤,包含INPUT,OUTPUT和FORWARD链。nat用于要转发的信息包。

command

command部分是iptables命令最重要的部分。它告诉iptables命令要做什么,例如插入规则、将规则添加到链的末尾或删除规则。

  • -A 或—append:将一条规则附加到链的末尾。如 iptables -A INPUT -s 210.12.1.23 -j ACCEPT (接受来自源210.12.1.23地数据包)
  • - D 或—delete:从链中删除规则。如iptables -D INPUT —dport 80 -j DROP (丢弃前往端口80的包);iptalbes -D OUTPUT 3 (删除链编号为3的规则)
  • -P 或—policy,设置链的缺少策略(处理与其它规则不匹配的包)。如iptables -P INPUT DROP (丢弃与所有规则都不匹配的包)
  • -N 或—new-chain:用指定名称创建一个新链。如iptables -N alowed-chain
  • - F 或—flush:删除指定链或所有链(未指定名称时)。如iptables -F FORWARD 或iptables -F
  • -L 或—list,列出链中的所有规则。如iptables -L allowed-chain

match

iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源地址、目的地址、协议等)。

  • -p 或—protocal:检查特定协议(TCP、UDP、ICMP、ALL),可用!表示非。如iptables -A INPUT -p TCP ,UDP或iptables -A INPUT -p !ICMP,两条命令作用一样。
  • -s 或—source:根据信息的源IP来匹配。如iptables -A OUTPUT -s 192.168.1.1,iptables -A OUTPUT -s 192.168.0.0/24(从0.0到0.24),iptables -A OUTPUT -s !203.16.1.89
  • -d 或—destination,根据目标IP来匹配。如 iptables -A INPUT -d 192.168.1.1

target

目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。

ACCEPT , DROP, REJECT , RETURN

示例

本例中的规则将会阻止来自某一特定IP范围内的数据包,因为该IP地址范围被管理员怀疑有大量恶意攻击者在活动:

  • iptables -t filter -A INPUT -s 123.456.789.0/24 -j DROP
也可以很轻易地阻止所有流向攻击者IP地址的数据包,该命令稍有不同:
  • iptables -t filter -A OUTPUT -d 123.456.789.0/24 -j DROP
为每一个链设置缺省的规则:
  • iptables -P INPUT DROP
  • iptables -P FORWARD DROP
  • iptables -P OUTPUT ACCEPT 这里选项-P用于设置链的策略,只有三个内建的链才有策略。这些策略可以让信息毫无限制地流出,但不允许信息流入。
允许来自网络接口ppp0(internet接口),并且来源端口是80的数据进入你的计算机
  • iptables -A INPUT -i ppp0 -p tcp—sport 80 -j ACCEPT
要提供www服务
  • iptables -A INPUT -i ppp0 -p tcp—dport 80 -j ACCEPT
阻止所有没有经过你系统授权的TCP连接:
  • iptables -t filter -A INPUT -i eth0 -p tcp—syn -j DROP 这里的-i指的是网卡,-p则是指协议,—syn则表示带有syn标识设置的TCP数据包。SYN用于初始化一个TCP连接,如果自己机器上没有运行任何服务器,别人也就不会向你发送SYN数据包。

规则的保存与恢复

  • iptables-save > iptables-script
  • iptables-restore iptables-script
posted @ 2009-05-13 15:46  uu.Net  阅读(439)  评论(0编辑  收藏  举报