Linux防火墙:
一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则,允许或者限制网络报文通过。
1 4表 5链 n条规则
表: filter raw managle nat
链: INPUT OUTPUT PREROUTING POSTROUTING FORWARD
规则: 就是条件(放行或者阻止的条件)
系统内置4个表:
filer: 数据包过滤, INPUT、FORWARD、OUTPUT
nat: 网络地址转换(映射),PREROUTING、INPUT、OUTPUT、POSTROUTING
managle: 报文拆解,修改报文并重新封装:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
raw:关闭链接追踪机制等:PREROUTING、INPUT、OUTPUT
基本用法:
格式: iptables [-t table] COMMAND chain CRETERIA -j TARGET
-t table : 4表, 默认filter
filter
nat
…
COMMAND:定义如何对规则进行管理
…
chain: 指定链
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
CRETERIA: 指定匹配准则(ip、协议、端口)
…
-j TARGET :指定如何进行处理 (DROP or ACCEPT)
ACCEPT 允许防火墙接收数据包
DROP 防火墙丢弃包
2 修改默认规则
配置默认策略 -P
sudo iptables -t filter -P INPUT DROP
sudo iptables -t filter -P INPUT ACCEPT
sudo iptables -t filter -P OUTPUT DROP
sudo iptables -t filter -P OUTPUT ACCEPT
3 查看配置的规则
sudo iptables -t filter -L --line-numbers
4 删除配置的规则
sudo iptables -t filter -F
sudo iptables -t filter -D INPUT num
5 使用端口-dport -sport -p 协议
sudo iptables -t filter -A INPUT -p tcp --dport 21 -j DROP
6 在某个规则之前插入一条规则
sudo iptables -t filter -A INPUT -p tcp --dport 23 -j DROP
sudo iptables -t filter -A OUTPUT -p tcp --sport 23 -j DROP
sudo iptables -t filter -I INPUT 1 -p tcp --dport 80 -j DROP
规则配置常用参数:
1 根据源地址或者目的地址配置规则
-s : 指定源IP地址
-d : 指定目的IP地址
sudo iptables -t filter -A OUTPUT -s 192.168.10.129 -j DROP
sudo iptables -t filter -A INPUT -d 192.168.10.129 -j DROP
sudo iptables -t filter -A OUTPUT -s 192.168.10.0/24 -j DROP
sudo iptables -t filter -A INPUT -d 192.168.10.0/24 -j DROP
2 根据协议
tcp
udpUDP
icmp
案例: 限制外界主机ping服务器
sudo iptables -t filter -A INPUT -p icmp -j DROP
sudo iptables -t filter -A OUTPUT -p icmp -j DROP
sudo iptables -t filter -A INTPUT -p icmp --icmp-type 8 -j DROP
sudo iptables -t filter -A OUTPUT -p icmp --icmp-type 0 -j DROP
3 根据网卡配置规则
sudo iptables -t filter -i ens33 -A INPUT -p icmp -j DROP
sudo iptables -t filter -o ens33 -A OUTPUT -p icmp -j DROP
问题: 在同一条链中的规则, 假如有两条或者多条规则有冲突(矛盾), 则配置在最前面的规则有效.
sudo iptables -t filter -A INPUT -p tcp --dport 23 -j DROP
sudo iptables -t filter -A INPUT -p tcp --dport 23 -j ACCEPT