iptables防火墙

 

iptables防火墙示意图

 

 

1、防火墙的分类:

硬件,购买设备

软件,安装软件

 

2、iptables的功能:

强制访问指定站点

发布内网服务器nat/snat/dnat

智能型DNS

 

3、iptables的格式:

iptables

-t filter

-A INPUT

-p tcp--dport 23

-j REJECT

命令

4表

5链

数据描述

处理方式

 

4表:

filter

过滤(数据过滤,默认)

INPUT/OUTPUT/FORWARD

nat

转换(地址转换)

PREROUTING/POSTROUTING/OUTPUT

mangle

校正(数据包打标记)

INPUT/OUTPUT/FORWARD/PREROUTING/POST

ROUTING

raw

 

 

 

5链

INPUT:接收,发送方不一定是你,但接收方一定是你

OUTPUT:发送,接收方不一定是你,但发送方一定是你

FORWARD:转发,接收方和发送方全都不是你

PREROUTING:路由前时,指代在决定去向前处理

POSTROUTING:路由后时,指代在决定去向后处理

 

4、外出的包:

1、本地程序

2、路由判断(决定包使用源地址,外出接口)

3、mangle表OUTPUT链(标记、生存时间、服务类型)

4、nat表OUTPUT链(对防火墙自己发出的包做DNAT)

5、Filter表OUTPUT链(过滤)

6、mangle表POSTROUTING链(标记、生存时间、服务类型)

7、nat表POSTROUTING链(对数据包做SNAT)

8、离开接口

9、网络传输

 

5、进入的包:

1、网络传输

2、进入接口

3、mangle表PREROUTING链(标记、生存时间、服务类型)

4、nat表PREROUTING链(对数据包做DNAT)

5、路由判断(决定包的去向,给自己的)

6、mangle表INPUT链(标记、生存时间、服务类型)

7、filter表INPUT链(过滤)

8、交给本地程序处理

 

6、转发的包:

1、网络传输

2、进入接口

3、mangle表PREROUTING链(标记、生存时间、服务类型)

4、nat表PREROUTING链(对数据包做DNAT)

5、路由判断(决定包的去向,发给别人)

6、mangle表FORWARD链(标记、生存时间、服务类型)

7、filter表FORWARD链(过滤)

8、mangle表POSTROUTING链(标记、生存时间、服务类型)

9、nat表POSTROUTING链(对数据包做SNAT)

10、离开接口

11、网络传输

 

走向:

不考虑链

mangle>nat>filter

不考虑表

PREROUTING>INPUT>(FORWARD)>OUTPUT>POSTROUTING

                                                                                                  绿色代表注释

7、参数

A

在所选择的链末尾添加规则

iptables -A INPUT -s 192.168.1.123 -p tcp --dport 22 -j ACCEPT

t

指定表(可省略)

Iptables -t filter -L INPUT

R

替换规则

iptables -R INPUT 1 -s 192.168.0.123 -j DROP

D

删除规则

iptables -D INPUT -p tcp --dport 80 -j DROP

iptables -D INPUT 3

I

插入规则

iptables -I INPUT 3 -s 192.168.1.222 -j DROP

L

查看规则

iptables -t filter -L INPUT

X

删除非内建链(连接数非“0“不可删)

iptables -X birdteam

F

清空规则

iptables -t nat -F OUTPUT

Z

将计数器清空(包计数器、字节计数)

iptables -Z

N

新创建链

iptables -N birdteam

P

修改默认规则

iptables -P INPUT DROP

E

自定义链改名

iptables -E birdteam vfast

 

 # Iptables -L INPUT  与 iptables -L INPUT -x

 

 

选项:

v

详细信息

x(与“v“一起使用)

精确

n

显示端口

--line-numbers(缩写--lin)

显示规则序号

 

 

通用匹配:

p

匹配协议

有三种( icmp  udp  tcp)或all

s

匹配来源地址

iptables -A INPUT ! -s 192.168.1.123 -j ACCEPT

  (“!“取反,”p“也可以用)

d

匹配目的地址(一般是服务器本身)

 

 

i

匹配包进入的接口

 

o

匹配包送出的接口

OUTPUT/FORWARD/POSTROUTING(另外两个链不可使用)

 

TCP的端口:

sport

匹配来源端口

 

 

dport

匹配目的端口(同上,匹配前要加上协议)

tcp-flags

匹配TCP的封包标记

SYN/ACK/FIN/RST/URG/PSH

 

 

syn

 (代表连接请求)    --syn

tcp-option

检查TCP的包头信息

8位选项类型、长度、内容

 

UDP的端口:

sport

匹配来源端口

dport

匹配目的端口

 

 

ICMP的端口:

icmp-type

匹配ICMP的类型(代表:ping)

 

 

INPUT链:

-s --sport

对方的端口和地址

-d --dport

自己的端口和地址

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

 

 

OUTPUT链:

-s --sport

自己的端口和地址

iptables -A OUTPUT -p tcp --sport 23 -j DROP

-d --dport

对方的端口和地址

 

 

显示匹配(无用匹配)

limit

匹配平均速率

 

 

--limit

--limit-burst

mac

匹配源MAC地址

--mac-source

multiport

不连续多端口匹配

 

 

(扩)添加连续的端口

 

 

来源--source-port

目的--destination-port  

所有--port

mark

标记

 

 

--mark

owner

匹配所有

 

 

(限制uid=1001的用户发出数据)

--uid-owner

--gid-owner

--pid-owner

--sid-owner

state

匹配包的状态

 

 

--state

 

NEW

ESTABLISHED

RELATED

INVALID

tos

匹配服务类型

--tos

ttl

匹配生存时间

--ttl

 

处理:

ACCEPT

允许

 

REJECT

拒绝并且返回错误信息

 

DROP

丢弃并不返回错误信息

 

LOG

记录到/var/log/messages

 

 

(做个cjk标记)

 

 

--log-prefix

--log-level

--log-tcp-sequence

--log-tcp-options

--log-ip-options

DNAT

目标地址转换

例:iptables -t nat -A POSTROUTING -d 192.168.7.251 -j DNAT --to-destination 192.168.7.254

--to-destination

MARK

标记

例:iptables -t mangle -A INPUT -p tcp -j MARK --set-mark 1

--set-mark

MASQUERADE

伪装

例:iptables -t nat -A PREROUTING -s 192.168.7.250 -j MASQUERADE --to-ports 80

--to-ports

SNAT

来源地址转换

例:iptables -t nat -A PREROUTING -s 192.168.7.250 -j SNAT --to-source 192.168.7.251

--to-source

MIRROR

镜像

例:iptables -t nat -A PREROUTING -s 192.168.7.250 -j MIRROR

换掉源和目标

QUEUE

队列

需要配合设备使用

REDIRECT

重新定向

例:iptables -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

--to-ports

RETURN

返回

返回上级

TOS

服务类型

例:iptables -t mangle -A INPUT -p tcp -j TOS --set-tos 0x00

--set-tos

TTL

生存时间

例:iptables -t mangle -A INPUT -p tcp -j TTL --ttl-set 123

--ttl-set 设置

--ttl-dec 减少

--ttl-inc 增加

ULOG

记录用户被匹配的包的信息

例:iptables -A OUTPUT -p tcp -j ULOG

 

8、服务端口对应列表

# vim /etc/services

9、应用实例:

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

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  80  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  25  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  110  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  22  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  23  -j ACCEPT

 

 

firewalld切换到iptables防火墙

1、关闭firewall防火墙

# systemctl stop firewalld.service

2. 禁止firewall防火墙开机启动

# systemctl disable firewalld.service

3. 安装iptables防火墙相关组件

# yum -y install iptables*

4. 开启iptables防火墙

# systemctl start iptables.service

5. 设置iptables防火墙开机启动

# systemctl enable iptables.service

posted @ 2018-11-13 20:07  莱克时光  阅读(348)  评论(0编辑  收藏  举报