iptables学习总结
admin
2023-01-21 15:00:59
0

一、iptables 基础

 

1、容器:包含或者说属于的关系

2、Netfilter/iptables是表的容器,iptables包含的各个表

(filter,NAT,MANGLE,RAW)

3、iptables的表tables又是链的容器

链chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

4、链chains是规则容器:

5、规则Policy:一条条过滤的语句。

 

二、查看系统内核防火墙功能模块加载情况

 

lsmod |egrep "nat|filter"

[root@server_02 ~]# lsmod |egrep "nat|filter"
nf_nat_ftp              3507  0 
nf_conntrack_ftp       12913  1 nf_nat_ftp
iptable_nat             6158  1 
nf_nat                 22759  2 nf_nat_ftp,iptable_nat
nf_conntrack_ipv4       9506  3 iptable_nat,nf_nat
nf_conntrack           79758  6 xt_state,nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4
iptable_filter          2793  0 
ip_tables              17831  2 iptable_nat,iptable_filter

如果没有,可以通过以下命令加载相关模块

modprobe ip_tables

modprobe iptable_filter

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

modprobe ipt_state

三、iptables使用

iptables -F  //清除所有规则,不会处理默认的规则。

iptables -X  //删除用户自定义的链。

iptables -Z  //链的记数器清零。

 

(2)禁止掉当前主机SSH功能,这里ssh端口用的是52113。

[root@ipt ~]# iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

命令语法:

Usage: 

iptables -t [table] -[AD] chain rule-specification [options]

具体命令示例

iptables           -A INPUT -p tcp --dport 52113 -j DROP

iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

说明

1.iptables默认用的就是filter表,因此,以上两条命令等价。

2. 其中的INPUT DROP要大写。

3. --jump        -j target

   target for rule (may load target extension)

基本的处理行为:ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)

比较:DROP好于REJECT

 

(3)显示filter表过滤规则的序号

[root@ipt ~]# iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination         

1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 

 

Chain FORWARD (policy ACCEPT)

num  target     prot opt source               destination         

 

Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination         

[root@ipt ~]#  iptables -t filter -D INPUT 1                

 

根据源地址封:

[root@ipt ~]# iptables -t filter -A INPUT -i eth0 -s 10.0.0.104 -j DROP

iptables -t filter -A INPUT -i eth0 ! -s 10.0.0.104 -j DROP  

iptables -t filter  -I INPUT -p icmp --icmp-type 8 -i eth0 ! -s 10.0.0.0/24 -j DROP

[root@ipt ~]# iptables -t filter  -I INPUT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP 

 

封掉3306端口

iptables -A INPUT -p tcp  --dport 3306 -j DROP

 

匹配指定协议外的所有协议 

iptables -A INPUT -p ! tcp

 

匹配主机源IP

iptables -A INPUT -s 10.0.0.14

iptables -A INPUT -s ! 10.0.0.14

 

匹配网段

iptables -A INPUT -s 10.0.0.0/24

iptables -A INPUT -s ! 10.0.0.0/24

 

匹配单一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

 

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22 

iptables -I INPUT -p tcp ! --dport 22  -s 10.0.0.123 -j DROP

 

匹配单一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

 

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22 

iptables -I INPUT -p tcp ! --dport 22  -s 10.0.0.123 -j DROP

 

匹配端口范围:

iptables -I INPUT -p tcp --dport 52000:53000 -j DROP    //端口范围52000-53000

iptables -A INPUT -p tcp --sport 22:80                  //端口范围22-80

iptables -I INPUT -p tcp --dport 21,22,23,24 -j ACCEPT===》错误语法

iptables -I INPUT -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT===》正确写法

iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT

iptables -I INPUT -p tcp --dport 18:80 -j DROP

 

匹配ICMP类型

iptables -A INPUT -p icmp --icmp-type 8 

例:iptables -A INPUT -p icmp --icmp-type 8 -j DROP

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

匹配指定的网络接口

iptables -A INPUT -i eth0

iptables -A FORWARD -o eth0

记忆方法:

--in-interface -i [!] input name[+]

                                network interface name ([+] for wildcard)

--out-interface -o [!] output name[+]

                                network interface name ([+] for wildcard)

匹配网络状态

-m state --state

    NEW:已经或将启动新的连接

    ESTABLISHED:已建立的连接

    RELATED:正在启动新连接

INVALID:非法或无法识别的

FTP服务是特殊的,需要配状态连接。

7.允许关联的状态包通过(web服务不要使用FTP服务)

#others RELATED ftp协议

#允许关联的状态包

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

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

#___________________________ ipconfig conf end _______________________________

比喻:看电影出去WC或者接个电话,回来也得允许进去。

 

-m limit

--limit n/{second/minute/hour}:指定时间内的请求速率"n"为速率,后面为时间分别为:秒、分、时    

--limit-burst [n]:在同一时间内允许通过的请求"n"为数字,不指定默认为5

fg:本机地址:172.16.14.1,允许172.16.0.0/16网络ping本机,但限制每分钟请求不能超过20,每次并发不能超过6个

iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp --icmp-type 8 -m limit --limit 20/min --limit-burst 6 -j ACCEPT

    iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp --icmp-type 0 -j ACCEPT

 

 

配置一个企业防火墙规则示例

[root@ipt ~]# iptables -F

[root@ipt ~]# iptables -X

[root@ipt ~]# iptables -Z

[root@ipt ~]# iptables -A INPUT -p tcp  --dport 52113 -s 10.0.0.0/24  -j ACCEPT

[root@ipt ~]# iptables -A INPUT -i lo -j ACCEPT

[root@ipt ~]# iptables -A INPUT -o lo -j ACCEPT  

[root@ipt ~]# iptables -A OUTPUT -o lo -j ACCEPT  

 

允许合法的进入:

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 

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

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

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

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

 

 

#others RELATED ftp协议

#允许关联的状态包

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

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

 

 

iptables禁ping

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

 

#others RELATED ftp协议

#允许关联的状态包

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

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

 

修改链表默认策略:

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP        

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

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

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

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

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

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

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

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

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

 

企业iptables面试题:自定义链处理syn***

iptables -N syn-flood

iptables -A INPUT -i eth0 -syn -j syn-flood

iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

iptables -A syn-flood -j DROP

 

保存iptables的配置

iptables-save >/etc/sysconfig/iptables

 

局域网共享的两条命令方法:

方法1:适合于有固定外网地址的:

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

(1)-s 192.168.1.0/24 办公室或IDC内网网段。

(2)-o eth0 为网关的外网卡接口。

(3)-j SNAT --to-source 10.0.0.19 是网关外网卡IP地址。

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

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE 伪装源地址

 

iptables的生产常用场景:

1)实现服务器本身防火墙功能,使用filter表。

2)实现局域网上网网关,使用nat表,网关上也可以同时用filter表做防火墙。

3)实现NAT功能,如:由外部IP映射到内部服务器IP(包括端口),使用nat表。

 

端口映射配置示例:
iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000
  
 
7.映射多个外网IP上网
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106
 
 


相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...