iptables入门及基本命令使用-创新互联

规则的功能:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟主机、营销软件、网站建设、都兰网站维护、网站推广。

    四个表

      filter

      nat

      mangle

      raw

   五个内置链:

      PREROUTING

      INPUT

      FORWARD

      OUTPUT

      POSTROUTING

规则的属性:

1、网络层协议属性:

         ip

2、传输层协议属性:

         tcp

         udp

         icmp

         iptables

大写字母选项:子命令

小写字母选项:用来匹配标准及其它;

         -t {filter|nat|mangle|raw}

         -L: list

         -n: 数字格式显示IP和PORT;

         -v: 详细信息, -vv, -vvv其中后面的选项比前面的显示的更详细

         --line-numbers: 显示链中规则的行号;

         -x: 显示精确值,不要做单位换算;

规则和默认策略都有两个计数器:

             packets:

             bytes:

表和链的对应关系:

filter

INPUT, FORWARD, OUTPUT

nat

PREROUTING, POSTROUTING, OUTPUT

mangle

PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw

PREROUTING, OUTPUT

每个链都有其默认策略:policy ACCEPT

通常只需要修改filter表的默认策略

其它子命令:

管理链:

   -F: 清空链

     iptables -F  表示清空所有链

   -P: 设定默认策略

     iptables -t filter -P INPUT {DROP|ACCEPT}

   -N: 新建一条自定义链;

     iptables -N FILTER_WEB

   -X: 删除自定义的空链;

   -Z: 计算器清零;

     iptables -Z

   -E: 重命名自定义链

管理规则:

   -A: append  :在链的最后追加一条规则

   -I [n]: 插入为第n条规则

   -D [n]: 删除第n条规则

   -R [n]: 替换第n条规则

编写规则语法:

   iptables [-t 表] 大写选项子命令 [规则号] 链名 匹配标准 -j 目标

目标:

   DROP: 丢弃

   REJECT:拒绝

   ACCEPT:允许

   RETURN:返回跳转

   REDIRECT: 端口重定向

   DNAT:目标地址转换

   SNAT:源地址转换

   LOG:记录日志

   MARK:打标记

   自定义链

匹配标准:

通用匹配

 -s|--src|--source [!] IP/NETWORK

 -d|--dst|--destination [!] IP/NETWORK

  #iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -j ACCEPT

 -i incoming_interface: 指定数据报文流入接口; INPUT, PREROUTING, FORWARD

 -o outing_interface: 指定数据报文流出接口;OUTPUT, POSTROUTING, FORWARD

 -p {tcp|udp|icmp}

扩展匹配: 要使用“-m 扩展名称”来引用,而每个扩展模块一般都会有自己特有的专用选项; 这些选项中,有些是必备的;

隐含扩展

 -p tcp

 --sport 指定源端口

 --dport 指定目标端口

 --tcp-flags 要检查的标志 必须为1标记

 --tcp-flags SYN,ACK,RST,FIN SYN 表示:tcp三次握手的第一次

 ALL:所有标志位

 NONE:没有标志位

    --tcp-flags ALL SYN,FIN非法报文

    --syn

练习:放行对web服务的访问:

  #iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -j ACCEPT

  #iptables -A OUTPUT -s 172.16.100.1 -p tcp --sport 80 -j ACCEPT

因为报文在接收和发送时都要经过防火墙,所以我们需要设定INPUT和OUTPUT两个方面的访问控制

 --sport

 --dport

例如:本机DNS服务器,要为本地客户端做递归查询;iptables的INPUT, OUTPUT默认为DROP;本机地址:172.16.100.1

# iptables -A INPUT -d 172.16.100.1 -p udp --dport 53 -j ACCEPT

# iptables -A OUTPUT -s 172.16.100.1 -p udp --sport 53 -j ACCEPT

# iptables -A OUTPUT -s 172.16.100.1 -p udp --dport 53 -j ACCEPT

# iptables -A INPUT -d 172.16.100.1 -p udp --sport 53 -j ACCEPT

 -p icmp

 --icmp-type

请求:8

响应:0

例子:本机172.16.100.1,能ping 172.16.0.0/16中的所有主机;

显式扩展:

 -m state --state

NEW, ESTABLISHED, RELATED, INVALID

ftp服务需要装载:nf_conntrack_ftp模块, 可以使用modprobe命令,也可编辑/etc/sysconfig/iptables-config文件实现。

 -m mulitport: 可以指定15个以内的离散端口;比如,21-23,80

 --source-ports   源端口

 --destination-ports 目标端口

 --ports

 -m iprange: 指定匹配的IP地址范围,如172.16.100.1-172.16.109.254

 -m iprange

  --src-range源ip地址

  --dst-range 目标ip地址

 -m limit

 --limit 20/min  限制每分钟最多允许请求的次数

 --limit-burst 2 搜集多少个令牌桶

 -m string

 --string ""  引号里面填写需要匹配的字符串

 --algo {bm|kmp}

 -m time

 --datestart

 --datestop

 --timestart

 --timestop

 --weekdays

 --monthdays

保存规则:

  #service iptables save

保存至/etc/sysconfig/iptables

  #iptables-save > /path/to/iptables.rules

生效规则文件中的规则:

  #iptables-restore < /path/to/ipables.rules

子命令:

链:-N, -X, -Z, -F, -P, -E

规则:-A, -I, -D, -R

练习:INPUT和OUTPUT默认策略为DROP;

1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;

 # iptables -I INPUT 1 -m state --state ESTABLISHED -j ACCEPT

 # iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m time --weekdays Tue,Wed,Thu,Fri,Sat,Sun

-m limit --limit 100/sec -m string --algo kmp ! --string "admim" -m state --state NEW -j ACCEPT

其中对于周一不允许访问还可以表达为 -m time !--weekdays Mon

 # iptables -I OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT

2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给172.16.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;

 # iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 21 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:30:00 --timestop 18:00:00 -j ACCEPT

 # iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m state --state RELATED -m limit --limit 5/min -j ACCEPT

3、开放本机的ssh服务给172.16.x.1-172.16.x.100中的主机,x为你的座位号,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;

 # iptables -A INPUT -m iprange --src-range 172.16.100.1-172.16.100.100 -m limit --limit 2/min -p tcp --dport 22 -d 172.16.100.1 -i eth0 -m state --state NEW -j ACCEPT

4、拒绝TCP标志位全部为1及全部为0的报文访问本机;

 # iptables -N clean_in

 # iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP

 # iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP

 # iptables -A clean_in -d 172.16.100.1 -j RETURN

 # iptables -I INPUT 1 -d 172.16.100.1 -j clean_in

5、允许本机ping别的主机;但不开放别的主机ping本机;

 # iptables -A OUTPUT -s 172.16.100.1 -p icmp --icmp-type 8 -j ACCEPT

 # iptables -A INPUT -i lo -j ACCEPT

 # iptables -A OUTPUT -o lo -j ACCEPT

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:iptables入门及基本命令使用-创新互联
链接分享:http://abwzjs.com/article/csspdp.html