Linux iptalbes 初级用法
操作系统Centos6.10
为方便操作,请切换root用户
警告:以下命令请勿直接在生产环境操作,仅供技术参考!!!
- 背景知识
- 防火墙打开、关闭、查看、重启、保存当前状态
- 命令参数释义
- 实例
背景知识
Iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的。可以定义不同的表(通常只用到默认表filter),每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。--来自《百度百科》
1.如果数据包的目的地址是本机,则系统将数据包送往Input链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
2.如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往forward链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
3.如果数据包是由本地系统进程产生的,则系统将其送往output链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
制定规则的时候有个原则就是 放行的要先放在前面, 禁止的要放在最后.
防火墙服务打开、关闭、查看、重启、保存当前状态
- service iptables start —打开
- service iptables stop —关闭
- service iptables status —查看当前状态
- service iptables restart —重启
- service iptables save —保存
命令参数释义
-t table 指定处理的表名
-P policy 设置链拉目标规则
-A append 在所选择的链末添加一条或更多规则
-D delete 从所选链中删除一条或更多规则。
-L list 显示所选链的所有规则。如果没有选择链,所有链将被显示。
-F flush 清空所选链。这等于把所有规则一个个的删除。
-p -protocal [!]protocol 指定规则对应的协议, 选项可以是tcp、udp、icmp或者0,0代表这三个全部。
-s --source [!] address[/mask] 指定源地址,可以是主机名、网络名和清楚的IP地址。
-d --destination [!] address[/mask] 指定目标地址
-j jump 目标跳转
实例
说明:以下规则默认使用iptables的默认表filter
step 0:查看所有表规则
iptables -L -n
step 1:清空表规则
iptables -F 所有链的规则
step 2: 设置链的目标(默认情况下,此步骤可直接跳过)
iptables -P INPUT DROP
释义:在iptables的filter表的INPUT链上设置DROP目标
功能:所有经过INPUT入站的数据将全部被丢弃
iptables -P OUTPUT ACCEPT
释义:在iptables的filter表的OUTPUT链上设置ACCEPT目标
功能:所有经过INPUT入站的数据将全部被接受
iptables -P FORWARD DROP
释义:在iptables的filter表的FORWARD链上设置DROP目标
功能:所有经过FORWARD入站的数据将全部被丢弃
step 3: 添加入站规则(对应的,可添加DROP目标)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
释义:在iptables的filter表的INPUT链上设置针对tcp协议的22端口的ACCEPT目标
功能:允许任意外部主机的tcp类型数据包经由22端口入站
iptables -A INPUT -p tcp --dport 6379:6388 -j ACCEPT
释义:在iptables的filter表的INPUT链上设置针对tcp协议的从6379到6388范围内端口的ACCEPT目标
功能:允许任意外部主机的tcp类型数据包经由从6379到6388范围内的端口入站
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
释义:在iptables的filter表的INPUT链上设置针对tcp协议的22端口的ACCEPT目标
功能:允许ip为192.168.0.3的tcp类型数据包经由22端口入站
step 4: 允许icmp包入站(ping)
iptables -A INPUT -p icmp -j ACCEPT
step 5: 允许loopback(本地环回)
iptables -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
iptables -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)
功能: 使得127.0.0.1网卡可收发数据
step 6:如果需要,可以将现有的规则列表中的某一条删除
1. service iptables status 查看所有表的规则,每条规则都有一个序号
2. iptables -D INPUT 1 按序号删除规则