防火墙!防火墙!
长话短说,发现了一堆扫描和嗅探,所以需要一定的防御。
机器同时有两个网卡,分别属于内网和外网。
攻击都是来自于外网,所以希望能够关闭外网的入网访问,但是保留对于外网的访问权限。
目标
- 关闭大部分机器的外网入网流量
- 跳板机仅开放ssh访问
- 对于开放外网访问的跳板机,保留公司网络访问的能力, 用于远程调试,数据库连接
- 内网间的访问不受影响
- 不响应ping请求,提高扫描的门槛
方案
实施
简介
由于只是配置防火墙,了解下面的简单用法就基本足够了。
PS: iptables的规则先后顺序很重要!
- iptables -F
- 清除自定义规则
- iptables -A <filter> [match rules] -j <target>
- 在指定filter上添加规则
- iptables -D <filter> [match rules] -j <target>
- 在指定filter上删除规则
匹配的规则
- -i <eth0>
- 指定网卡
- -s <ip>
- 指定来源ip
- -dport <port>
- 指定目标端口
仅阻止外网的流入请求
不接受外网的tcp握手请求
这里不能拒绝所有的tcp流量,否则机器也访问不了外部网络。(所有流入的tcp流量都被丢弃了)
iptables -A INPUT -i <eth> -p tcp --syn -j DROP
- 不接受所有进入的udp流量
iptables -A INPUT -i <eth> -p udp -j DROP
保留跳板机ssh的端口
iptables -A INPUT -i <eth> -p tcp -m multiport --dports ssh -j ACCEPT
不响应ping
iptables -A INPUT -i <eth> -p icmp --icmp-type echo-request -j DROP
允许指定<ip>的tcp流量
iptables -A INPUT -i <eth> -p tcp -s <ip> -j ACCEPT
最终脚本
跳板机器
iptables -A INPUT -i <eth> -p tcp -m multiport --dports ssh -j ACCEPT iptables -A INPUT -i <eth> -p tcp -s <ip> -j ACCEPT iptables -A INPUT -i <eth> -p tcp --syn -j DROP iptables -A INPUT -i <eth> -p udp -j DROP iptables -A INPUT -i <eth> -p icmp --icmp-type echo-request -j DROP
内部机器
iptables -A INPUT -i <eth> -p tcp --syn -j DROP iptables -A INPUT -i <eth> -p udp -j DROP iptables -A INPUT -i <eth> -p icmp --icmp-type echo-request -j DROP