iptables 学习

iptables命令格式web

iptables的命令格式较为复杂,通常的格式以下:
iptables [-t table] 命令 [chain] [rules] [-j target]
table——指定代表
命令——对链的操做命令
chain——链名
rules——规则
target——动做如何进行
       1.表选项
表选项用于指定命令应用于哪一个iptables内置表,iptables内置包括filter表、nat表、mangle表和raw表,其中filter表是默认表
       2.命令选项iptables命令格式
服务器

命令                     说明
-A或—append  <链名>     在规则列表的最后增长1条规则
-I或–insert  <链名>     在指定的位置插入1条规则
-D或–delete  <链名>     从规则列表中删除1条规则
-R或–replace  <链名>     替换规则列表中的某条规则
-F或–flush  <链名>     删除表中全部规则
-Z或–zero  <链名>     将表中数据包计数器和流量计数器归零
网络

3.匹配选项app

匹配                                     说明
-i或–in-interface  <网络接口名>     指定数据包从哪一个网络接口进入,如ppp0、eth0和eth1等
-o或–out-interface  <网络接口名>     指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等
-p或—proto协议类型  < 协议类型>     指定数据包匹配的协议,如TCP、UDP和ICMP等
-s或–source  <源地址或子网>             指定数据包匹配的源地址
–sport <源端口号>                     指定数据包匹配的源端口号,可使用“起始端口号:结束端口号”的格式指定一个范围的端口
-d或–destination  <目标地址或子网>     指定数据包匹配的目标地址
–dport目标端口号                     指定数据包匹配的目标端口号,可使用“起始端口号:结束端口号”的格式指定一个范围的端口
ssh

4.动做选项
动做        说明
ACCEPT        接受数据包
DROP        丢弃数据包
REDIRECT   与DROP基本同样,区别在于它除了阻塞包以外, 还向发送者返回错误信息。
SNAT        源地址转换,即改变数据包的源地址
DNAT        目标地址转换,即改变数据包的目的地址
MASQUERADE IP假装,便是常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP假装,也就是主机的IP是由ISP分配动态的;若是主机的IP地址是静态固定的,就要使用SNAT
LOG        日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错
tcp

5.  filter ,nat ,mangle ,raw 这四个表对应的链选项ide

    filter,用于路由网络数据包。spa

INPUT 网络数据包流向服务器rest

OUTPUT 网络数据包从服务器流出日志

FORWARD 网络数据包经服务器路由

    nat,用于NAT表.NAT(Net Address Translation )是一种IP地址转换方法。

PREROUTING 网络数据包到达服务器时能够被修改

POSTROUTING 网络数据包在即将从服务器发出时能够被修改

OUTPUT 网络数据包流出服务器

    mangle,用于修改网络数据包的表,如TOS(Type Of Service),TTL(Time To Live),等

INPUT 网络数据包流向服务器

OUTPUT 网络数据包流出服务器

FORWARD 网络数据包经由服务器转发

PREROUTING 网络数据包到达服务器时能够被修改

POSTROUTING 网络数据包在即将从服务器发出时能够被修改

    raw, 用于决定数据包是否被跟踪机制处理

OUTPUT 网络数据包流出服务器

PREROUTING 网络数据包到达服务器时能够被修改

   

   iptables -L  --默认看的就是filter表

   iptables -L -t filter

   iptables -L -t  nat
   iptables -L -t   mangle
   iptables -L -t   raw
G

对ping的控制  ICMP 在传输层是基于tcp的,因此是双向的,能够对其input或ouput均可以控制

禁止ping本机 Linux (192.168.254.252)

iptables -A INPUT -p icmp -j REJECT

删除这条规则 ,能够先 使用这条命令 iptables -L -n --line

                      再使用 iptables -D INPUT +对应的规则号码

删除整条规则命令 iptables -F

无返回信息 iptables -A INPUT -p icmp -j DROP

只容许192.168.254.222 ping 本机 ,其余都拒绝

  iptables -A INPUT -p icmp -j REJECT

  iptables -A INPUT -s 192.168.254.222 -p icmp -j ACCEPT

规则的保存与还原
  /etc/init.d/iptables save --这样是默认保存到/etc/sysconfig/iptables
  iptables-save > /etc/sysconfig/iptables--将当前规则保存到这个文件,文件能够自定义

  iptables -F
  iptables -X
  iptables -Z --使用这三条来清空filter表,若是别的表也要清空的话,就加-t 表名都清一次

  iptables-restore < /etc/sysconfig/iptables --把保存的规则还原回去

  /etc/sysconfig/iptables文件为默认保存文件,重启iptables服务会默认把此文件里的规则还原

  固然也能够手工保存到另外一个文件,就须要iptables-restore手工还原了

实现容许ssh过来,ssh出去,别的都拒绝  (要求,INPUT和OUTPUT双链默认策略都为DROP)

  iptables -P INPUT DROP (P 是默认策略)
  iptables -P OUTPUT DROP

下面两条定义容许ssh进来
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

下面两条定义容许ssh出去   iptables -A INPUT -p tcp --sport 22 -j ACCEPT   iptables -A OUTPUT -p tcp --dport 22 -j ACCEP

相关文章
相关标签/搜索