linux防火墙iptables常用操作笔记,原理解析

iptables -nL --line-number #查看iptables规则(列出序号)

iptables -t filter -D INPUT 1 #通过序号删除链中的规则(或者原添加规则命令中直接-A/-I换成-D也可删除)

#查看iptables默认加载的内核模块

lsmod| egrep “nat|filter”

iptables -F #清除所有规则,只留下默认规则

iptables -N #创建用户自定义的链

iptables -X #清除用户自定义的链

iptables -Z #链的计数器清零

iptables -t filter -A INPUT -p tcp --dport 22 -j DROP #-j jump

#-A 添加规则到链的结尾,最后一条 -I 插入规则到链的开头,第一条。 越靠前的规则优先级越高。

iptables -I INPUT 2 #指定位置插入规则,插入到INPUT链的第二行

#禁止10.0.0.0网段连入

iptables -t filter -A INPUT -i eth0 -s 10.0.0.0/24 -j DROP

#取反匹配(不同centos版本!位置有变化)

iptables -t filter -A INPUT -i eth0 -s ! 10.0.0.0/24 -j DROP

#-p协议 (all, tcp, udp, icmp),默认all

iptables -A INPUT -m iprange --src-range 13.32.4.168-13.32.4.176 -j ACCEPT #匹配源IP

iptables -A INPUT -m iprange --dest-range 8.8.8.2-8.8.8.22 -j DROP #匹配目标IP

#匹配端口范围

–sport 22:80

-m multiport --dport 21,22,23,80,3306

#匹配网络接口

-i 匹配包进入的网卡

-o 匹配包流出的网卡

#icmp有很多类型,–icmp-type 8代表ping

#禁ping

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

iptables -I INPUT -p icmp --icmp-type 8 -s 10.0.0.0/24 -j ACCEPT

#匹配网络状态 -m state --state

#允许关联的状态包通过,一般用于ftp服务,比喻:看电影出去接电话或者WC,回来也得允许进去

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

企业级防火墙部署

========

#不允许进和转发,只允许出。最安全的

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

#开启信任的IP网段(多网卡)

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT

#允许访问80端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#允许所有人ping

iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

#允许关联的状态包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

保存

==

#保存iptables配置,2种保存方式

/etc/init.d/iptables save

iptables-save > /etc/sysconfig/iptables

#iptables维护可以通过直接编辑/etc/sysconfig/iptables

vim /etc/sysconfig/iptables

/etc/init.d/iptables restart|reload #编辑后重启

nat表

====

核心功能:IP及端口的映射转换,主要应用于以下2点:

1.共享上网

2.端口映射

首先说说局域网内封包的传送:

  1. 先经过 NAT table 的 PREROUTING 链;

  2. 经由路由判断确定这个封包是要进入本机与否,若不进入本机,则下一步;

  3. 再经过 Filter table 的 FORWARD 链;

  4. 通过 NAT table 的 POSTROUTING 链,最后传送出去。

NAT 主机的重点就在于上面流程的第 1,4 步骤,也就是 NAT table 的两条重要的链:PREROUTING 与POSTROUTING。 那这两条链重要功能在于修改IP,而这两条链修改的IP又是不一样的,POSTROUTING在修改来源IP,PREROUTING则在修改目标IP 。由于修改的 IP 不一样

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

,所以就称为来源NAT (Source NAT, SNAT) 及目标 NAT (Destination NAT, DNAT)。

共享上网

====

#载入内核模块

modprobe ip_tables

modprobe iptables_filter

modprobe iptables_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

modprobe ipt_state

#局域网共享

#方法1: 适合于有固定外网IP的,在有固定外网IP的服务器执行:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7

#192.168.1.0/24是内网地址段(办公室或IDC内网段),10.0.0.7是外网IP

#方法2:适合变化的外网地址(ADSL)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

#MASQUERADE 表示伪装,外网IP地址不稳定的情况即可使用MASQUERADE(动态伪装),能够自动的寻找外网地址并改为当前正确的外网IP地址

上一篇:iptables理解


下一篇:再说虚拟网络