Linux网络防火墙
在Linux系统中,使用iptables来配置网络防火墙并实现内外网隔离是一个常见的做法。iptables是Linux内核集成的IP信息包过滤系统,它允许用户定义基于包过滤的防火墙规则。以下是如何使用iptables来实现内外网隔离,并查看网络状态和路由跟踪的步骤。
- 内外网隔离
首先,你需要明确你的内部网络和外部网络的IP地址范围。例如,假设你的内部网络是192.168.1.0/24,而你的外部网络接口(通常是连接到互联网的接口)的IP地址是eth0。
拒绝所有进入的流量
你可以首先拒绝所有进入的流量,然后逐步开放需要的端口。
bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
允许内部网络流量
然后,你可以允许内部网络的流量通过。
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
允许外部网络到特定服务的流量(例如SSH)
如果你需要允许从外部网络到某个服务的流量(例如SSH),你可以这样做:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
保存iptables规则
在大多数Linux发行版中,iptables规则在重启后会丢失,所以你需要保存它们。这通常是通过一个名为iptables-save和iptables-restore的工具来完成的。具体的保存和恢复方法取决于你的发行版。例如,在Debian/Ubuntu上,你可以使用netfilter-persistent包来保存规则。
- 查看网络状态
你可以使用各种命令来查看网络状态,包括ifconfig、ip addr、netstat等。要查看iptables规则,你可以使用:
iptables -L -n -v
- 路由跟踪
在Linux中,你可以使用traceroute(或者在一些系统上称为tracert或tracepath)来执行路由跟踪。这个命令会显示数据包从源主机到目标主机所经过的路由器路径。
traceroute example.com
或者
tracepath example.com
请注意,为了执行上述操作,你通常需要具有root或sudo权限。此外,具体的命令和选项可能会因Linux发行版和版本的不同而有所差异。
Flag
查看网络
# 查询系统中缓存的ARP表,ARP表用来维护IP地址与MAC地址的对应关系
arp -an
#
ip a
ifconfig
# 提取主机上的IP信息
ip add|grep "global"|awk'{print $2}'|awk -F/'{print $1}'
# 输出当前的ESTABLISHED和TIME_WAIT数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
netstat -ant | awk '
{++s[$NF]} END {for(k in s) print k,s[k]}
'
ss -ant | awk '
{++s[$1]} END {for(k in s) print k,s[k]}
'