扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
IPTABLES基础
打开防火墙
echo 1 >/proc/sys/net/ipv4/ip_forward
Iptables语法:
Iptables [-t TABLE] ACTION [PATTERN] [-j TARGET]
TABLE:
有filter,nat,mangle;若无指定,预设为filter table.
1.ACTION(对Chains执行的动作):
ACTION 说明
-L Chain 显示Chain中的所有规则
-A Chain 对Chain新增一条规则
-D Chain 删除Chain中的一条规则
-I Chain 在Chain中插入一条规则
-R Chain 替换Chain中的某一条规则
-P Chain 对Chain设定的预设的Policy
-F Chain 清除Chain中的所有规则
-N Chain 自订一个Chain
-X 清除所有的自订Chain
2.CHAINS:
Iptables 有五条默认的Chains(规则链),如下表:
Chains(规则链) 发生的时机
PREROUTING 数据包进入本机后,进入Route Table前
INPUT 数据包通过Route Table后,目地为本机
OUTPUT 由本机发出,进入Route Table前
FORWARD 通过Route Table后,目地不是本机时
POSTROUTING 通过Route Table后,送到网卡前
3.PATTERN(设定条件部份):
参数 内容 说明
-p Protocol 通讯协议,如tcp,udp,icmp,all等。。。
-s Address 指定的Source Address为Address
-d Address 指定的Destination Address为Address
-I Interface 指定数据包进入的网卡
-o Interface 指定数据包输出的网卡
-m Match 指定高级选项,如mac,state,multiport等。。。
4.TARGET(常用的动作):
TARGET 说明
ACCEPT 让这个数据包通过
DROP 丢弃数据包
RETURN 不作对比直接返回
QUEUE 传给User-Space的应用软件处理这个数据包
SNAT nat专用:转译来源地址
DNAT nat专用:转译目地地址
MASQUERADE nat专用:转译来源地址成为NIC的MAC
REDIRECT nat专用:转送到本机的某个PORT
规则实例
modprobe(加载模块) ip_conntrack
开放特定服务
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i ech0 -p tcp --dport 21 -j ACCEPT
关闭特定服务
iptables -A INPUT -i ech0 -p tcp --dport 20 -j DROP
SNAT,DNAT地址的重定向
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 1.2.4.4:8080
iptables -t nat -A POSTROUTING -s 192.168.1.2/24 -o eth0 -j SNAT --to 192.168.10.1
允许对外的FTP访问
iptables -A OUTPUT -i eth0 -p tcp -s 192.168.0.0/24 --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 21 -d 192.168.0.0/24 --dport 1024:65535 -j ACCEPT
端口映像
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
设置默认拒绝规则
iptables -P INPUT -j DROP
iptables -P OUTPUT -j DROP
iptables -P FORWARD -j DROP
禁止所有分片包
iptables -A INPUT -f -i eth0 -j DROP
关闭所以服务
iptables -P INPUT DENY
iptables -P OUTPUT DENY
iptables -P FORWARD DENY
添加链
iptables -N INPUT
删除链
iptables -X INPPUT
清空链的内容
iptables -F INPUT
列出链的内容
iptables -L INPUT
用/etc/rc.d/init.d/iptables save可在/etc/sysconfig/中产生一iptables文件,大家可以看到,它有三个*号开始的行,其每一个以*号开始的行对应一个 table,以COMMIT表示此table 的结束。可将要定的规则加入到对应的table中,如下:
# ./iptables saveSaving current rules to /etc/sysconfig/iptables
# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.2.4 on Sat Sep 28 16:51:22 2002
*mangle
:PREROUTING ACCEPT [61522:8074850]
:OUTPUT ACCEPT [1079:79301]
COMMIT
# Completed on Sat Sep 28 16:51:22 2002
# Generated by iptables-save v1.2.4 on Sat Sep 28 16:51:22 2002
*nat
:PREROUTING ACCEPT [31850:5091703]
:POSTROUTING ACCEPT [20:1240]
:OUTPUT ACCEPT [12:776]
COMMIT
# Completed on Sat Sep 28 16:51:22 2002
# Generated by iptables-save v1.2.4 on Sat Sep 28 16:51:22 2002
*filter
:INPUT ACCEPT [61444:8070296]
:FORWARD ACCEPT [34:1984]
:OUTPUT ACCEPT [1079:79301]
COMMIT
配置IPTABLES
对iptables 有了一个基本的了解后,我们就可以来配置我们的服务器了。首先要发布我们的WEB Server,将以下二行加入/etc/sysconfig/iptables中的nat table内:
-A PREROUTING -d 218.4.62.18 -j DNAT --to-destination 192.168.20.254
-A POSTROUTING -s 192.168.2.254 -j SNAT --to-source 218.4.62.18
将下面的规则加入到/etc/sysconfig/iptables中的filter tables内,防止Dos攻击做的一个简单的处理:
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者