iptables简介:、
iptables防火墙工作在网络层,针对TCP/IP数据包实施过滤和限制,iptables防火墙基于内核编码实现,具有非常稳定的性能和高效率,iptables属于“用户态”的防火墙管理体系。
——iptables的四表五链:

——四表:
filter表:filter表用来对数据包进行过滤,共包含三个链。
nat表:nat转换表主要用于修改数据包 ip地址,端口号等,共包含三个链。
mangle表:mangle表用来修改数据包的TOS(Type Of Service服务类型),TTL(Time To Live,生存周期)值,或者为数据包设置Mark标记,以实现流量整形,策略路由等高级应用。共包含五个链。
raw表:raw表示自1.2.9以后版本的iptables新增的表,主要来决定是否对数据包进行状态跟踪。共包含两个链。
——五链:
INPUT链:当收到访问防火墙本机地址的数据包(入站)时,应用此链中的规则。
OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。
FORWARD链:当接收到需要通过防火墙中转发送给其他地址的数据包(转发)是,应用测链中的规则。
PREROUTING链:在对数据包做路由选择之前,应用测链中的规则。
POSTROUTING链:在对数据包做路由选择之后,应用此链中的规则。
——iptables常用选项:
-L查看规则
-F清除所有规则,留下默认规则
-t指定表
--line-numbers显示规则排列序号
-A添加规则到指定链的结尾
-I添加规则到指定链的开头
-D删除指定规则
-p添加协议:例如tcp udp
--dport目的端口
--sport源端口
-s指定源地址
-d指定目的地址
-i匹配进入网卡的接口
-o匹配出网卡的接口
-j处理行为:ACCEPT接受 DROP丢弃 REJECT拒绝 MASQUERADE地址伪装 SNAT源地址转换 DNAT目的地址转换 REDIRECT端口重定向
——扩展选项:
-m表示用什么模块来匹配
-m state --state 连接状态 #表示用state模块来匹配连接状态
-m iprange --src-range #用iprange模块来匹配源地址范围
-m iprange --dst-range #用iprange模块来匹配目的地址范围
-m mulitiport --source-ports #用mulitiport模块来匹配来源端口范围
-m --destination-ports #用mulitiport模块来匹配目的地址范围
——连接状态:
UNTRACKED未追踪的
NEW新的
ESTABLISHED已确立的
RELATED相关的
INVALID无法识别的
例如:来自1.1.1.1 - 1.1.1.10这个地址范围,请求22.33.44这几个端口并且是新建的连接都放行
-A INPUT -p tcp -m iprange --src-range 1.1.1.1 - 1.1.1.10 -m mulitiport --destination-ports 22,33,44 -m state --state NEW -j ACCEPT
——设置转发规则:
假设要在A主机上访问B主机,通过B主机上的转发规则,使请求流向C主机(在B主机上设置)
A主机:10.100:80
B主机:10.200:80
C主机:10.300:80
先开启转发规则:echo "1" > /proc/sys/net/ipv4/ip_forward
设置表规则:
iptables -t nat -A PREROUTING -p tcp -d 10.200 --dport 80 -j DNAT --to-destination 10.300:80
iptables -t nat -A POSTROUTING -p tcp --destination 10.300 --dport 80 -j MASQUERADE
设置链规则:
# 1.删除现有规则
iptables -F
# 2.配置默认链策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# 3.允许远程主机进行SSH连接
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 4.允许本地主机进行SSH连接
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#5.允许端口转发
iptables -A FORWARD -i eth0 -p tcp --dport 要转发的端口 -m state --state NEW,ESTABLISHED -j ACCETP
911

被折叠的 条评论
为什么被折叠?



