Linux 网络访问控制

来源:互联网 发布:java web start 1.4.2 编辑:程序博客网 时间:2024/06/05 15:19

网络访问控制:netfilter模块,可以对数据进行允许、丢弃、修改操作
数据包分类:源IP地址、目标IP地址、使用接口、使用协议、端口号、连接状态
过滤点:input、forward、output、prerouting、postrouting
功能点:filter、nat、mangle
这里写图片描述

规则:
iptables的基本语法格式
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

防火墙处理数据包的四种方式
ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

IPTables配置
最好配置第一条iptables规则为允许来自客户端主机的SSH。
iptables配置文件:/etc/sysconfig/iptables
通过iptables添加的规则不会永久保存。如果需要永久保存,可以执行service iptables save将iptables规则保存在/etc/sysconfig/iptables。
CentOS/RHEL系统会带有默认iptables规则,保存自定义规则会覆盖这些默认规则。

iptables通过规则对数据进行访问控制
一个规则使用一行配置
规则按顺序排列
当收到、发出、转发数据包时,使用规则对数据包进行匹配,按规则顺序进行逐条匹配
数据包按照第一个匹配上的规则执行相关动作:丢弃、放行、修改
没有匹配规则,则使用默认动作(每个chain拥有各自的默认动作)

常用功能:
做为服务器使用:过滤到本机的流量、过滤到本机发出的流量
作为路由器使用:过滤转发的流量、对转发数据的源/目标IP进行修改

基本操作:
列出现有iptables规则:iptables -L
插入一个规则:iptables -I INPUT 3 -p tcp –dport 22 -j ACCEPT
删除一个iptables规则:iptables -D INPUT 3 iptables -D INPUT -s 192.168.1.1 -j DROP
删除所有规则:iptables -F

匹配参数:
基于IP地址:-s 192.168.0.1 -d 192.168.0.2
基于接口:-i eth0 -o eth1
基于协议及端口:-p tcp –dport 22 -p udp –sport 53 -p icmp
取反参数:’l’ -s ‘l’ 192.168.1.1/24

常用NAT:
通过NAT进行跳转:iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-dest 192.168.1.10
通过NAT对出向数据进行跳转:iptables -t nat -A OUTPUT -p tcp –dport 80 -j DNAT –to-dest 192.168.1.10:8080
通过NAT对数据流进行伪装:iptables -t nat -A PREROUTING -o eth0 -j MASQUERADE
通过NAT隐藏源IP地址:iptables -t nat -A PREROUTING -j SNAT –to-source 1.2.3.4

原创粉丝点击