netfilter/iptables
翻译########################
###netfilter/iptables#########
########################
表---链---规则
-------------------
filer表 包过滤
nat表 地址转换
mangle
raw
-------------------
优先级
---------------------------
raw>mangle>nat>filter
---------------------------
链间匹配顺序:
-----------------------------------
入站数据:prerouting input
出站数据:output postrouting
转发数据:prerouting forward postrouting
-----------------------------------
链内匹配顺序:
----------
自上而下
默认允许
----------
iptables命令的语法格式:
---------------------------------------------------
iptables 【-t 表名】 管理选项 [链名] [条件匹配] [-j 目标动作]
---------------------------------------------------
默认指定filter表
默认表内所有连
-----------------
例如:
iptables -t filter -L -n
------------------------------
-t 指定表格为filter
-L list
-n 数值 numeric
------------------------------
##########
##实验#######
##########
图:
-------------------------------------------------------------------
外网服务器------------防火墙--------------内网服务器
linux211.1.1.3---(.1.2)linux(.1.2)-------(192.168.1.3)linux
--------------------------------------------------------------------
实验环境搭配:
------------------------------------------------------------
vmware中3台linux。
----------
linux1作为iptables防火墙
设置两个网卡eth0(211.1.1.2)和eth1(192.168.1.2)
eth0连接真实机网卡vm0(211.1.1.100)
eth1连接真实机网卡vm1(192.168.1.2)
-----------
linux2作为外网服务器
设置网卡eth0(211.1.1.3)连接真实机网卡vm0
------------
linux3作为内网服务器
设置网卡eth0(192.168.1.3)连接真实机网卡vm1
---------------------------------------------------------------
设置:
启用iptables防火墙的路由转发功能
---------------------------------
修改/proc/sys/net/ipv4/ip_forward里面的文件,1为启用转发,0为禁用(重启网卡即无效)
或者
vi /etc/sysct1.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
-----------------------------------
启用DNAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT -to-source 211.1.1.2
(-t 指定表格,-A append ,-s source,-o out-interface ,-j jump,其中211.1.1.2为网关)
----------------------------------
查看SNAT
iptables -t nat -L -n
-----------------------------------
DNAT
iptables -t nat -A PREROUTING -p tcp -d 211.1.1.2 --dport 80 -i eth0 -j DNAT --to-destination 192.168.1.3
------------------------------------
iptables链的删除
iptables -t nat -D POSTROUTING 2 //意思为删除第二条链
-------------------------------------
iptables filter 调试
iptables -t filter -P OUTPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -o eth0 -p tcp --dport 22 -j ACCEPT
-----------------------------
iptables -t filter -F OUTPUT 清空output链
-----------------------------
iptables -t filter -A INPUT -s 211.1.1.100 -i eth0 -p tcp --dport 22 -j ACCEPT
################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
iptables高级(shell编程)
例子脚本:
#!/bin/bash
#define all variance or parameter
WAN_INT="eth0"
WAN_INT_IP="211.1.1.2"
LAN_INT="eth1"
LAN_INT_IP="192.168.1.2"
ALLOW_ACCESS_CLIENT="192.168.1.0"
WAN_2003_SRV="211.1.1.3"
PORT="20,21,25,53,80,110,143,554,1755,7070"
IPT="/bin/iptables"
#############################################
start(){
echo ""
echo -e "Reset all chains to zero........ [done]"
#flush all rules at first
$IPT -t filter -F
$IPT -t nat -F
#default policy is drop
$IPT -t filter -P INPUT DROP
$IPT -t filter -P OUTPUT DROP
$IPT -t filter -P FORWARD DROP
#open post 22
$IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT
#SANT
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -s 192.168.1.0/24 -o $WAN_INT -j SNAT --to-source $WAN_INT_IP
}
。。。。。。。。。。。。。。
iptables 状态检测功能启用
-m state --state
状态:NEW RELATED ESTABLISHED(已建立的连接) INVALID(失效的连接)
[root@test ~]# iptables -t filter -I FORWARD 1 -p tcp -m state --state
ESTABLISHED -j ACCEPT
[root@test ~]# iptables -t filter -I FORWARD 2 -p tcp -m state --state
INVALID -j DROP
新建链---提高过滤包的效率
上一篇:NET转换--动态/静态/overload/tcp负载均衡
下一篇:shell编程
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论