在经过防火墙规则之前,先会经过 tcp wrappers
通过/etc/hosts.allow和/etc/hosts.deny配置规则允许或阻止指定客户端对指定服务的访问,修改保存此文件后配置无需重启服务立即生效。
RHEL7默认使用firewalld作为防火墙,但是底层还是调用iptables,他两都是调用内核模块的netfilter模块。从内核4.1开始firewalld支持nftables处理框架
4表5链iptables防火墙具有4表5链,4表分别是filter表、nat表、raw表、mangle表,5链分别是INPUT链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链
用法
/sbin/iptables
iptables [-t表名] 选项 [链名] [条件] [-j 目标操作]
iptables -t filter -I INPUT -p icmp -j REJECT
不指定表默认为filter表 不指定链默认为对应表的所有链
选项/链名/目标操作大写字母,其余小写
目标操作
ACCEPT允许
DROP丢弃,无回应
REJECT拒绝通过
LOG记录日志(匹配即停止规律的唯一例外)
规则管理
[root@proxy ~]# iptables -F #清空所有规则
[root@proxy ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
#追加规则至filter表中的INPUT链的末尾,允许任何人使用TCP协议访问本机
[root@proxy ~]# iptables -I INPUT -p udp -j ACCEPT
#插入规则至filter表中的INPUT链的开头,允许任何人使用UDP协议访问本机
[root@proxy ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
#插入规则至filter表中的INPUT链的第2行,允许任何人使用ICMP协议访问本机
[root@proxy ~]# iptables -D INPUT 3
#删除filter表中INPUT链的第3条规则
[root@proxy ~]# iptables -nL INPUT #查看规则,确认是否删除
[root@proxy ~]# iptables -F
#清空filter表中所有链的防火墙规则
[root@proxy ~]# iptables -t nat -F
#清空nat表中所有链的防火墙规则
[root@proxy ~]# iptables -t mangle -F
#清空mangle表中所有链的防火墙规则
[root@proxy ~]# iptables -t raw -F
#清空raw表中所有链的防火墙规则
设置默认规则(-P)
iptables -t fileter -P INPUT DROP
防护类型及条件
主机/网络型防护
开启内核的IP转发
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf或者
echo 1 > /proc/sys/net/ipv4/ip_forward
扩展条件类型
SNAT源地址转换
仅用于nat表POSTROUTING链
端口映射
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
将来自外部网络对端口80的请求重定向到内部服务器的端口8080
Docker 的端口映射功能是在底层使用 iptables 规则来实现的,这使得容器中的服务可以与外部网络进行通信。这种方法为容器化应用提供了高度的灵活性和隔离性,同时也允许多个容器在同一主机上共享端口,而不会发生冲突。
Nmap
tcpdump
[kali@kali ~]$ sudo tcpdump -i 网卡名称 -A host 192.168.88.5 and tcp port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
.. .. #进入等待捕获数据包的状态
#监控选项如下:
# -i,指定监控的网络接口(默认监听第一个网卡)
# -A,转换为 ACSII 码,以方便阅读
# -w,将数据包信息保存到指定文件
# -r,从指定文件读取数据包信息
#tcpdump的过滤条件:
# 类型:host(主机)、net(网段)、port(端口)、portrange(端口范围)
# 方向:src(源地址)、dst(目标地址)
# 协议:tcp、udp、ip、wlan、arp、……
# 多个条件组合:and、or、not