你见,或者不见,我就在那里,不卑不喜。

Firewall

firewall

防火墙,作用于网络边界,用以保护网络内的机器。

  • 基于硬件设施进行限制

    * 基于通用系统(国内很多厂商均为此种方案)
    * 基于专用OS(芯片级)
    
  • 以软件方式设置进出规则(Iptables)

伟大的GFW,撕心疯一样的限制保护襁褓中的我们,长大后不得不自备梯子看外面的世界。

Iptables

Iptables 是netfilter.org的项目,linux kernel 2.4.X开始正式引入。

chain_order

相关原理:参考上图,ref自行脑补。

Netfilter-packet-flow

practise

从一台linode主机的安全说起….

对外提供web服务,需要远程ssh访问,其上部署的应用程序需要访问互联网及内网的服务。整理如下

  1. 更改ssh配置:关闭root登录、替换默认端口22
  2. 限制进站:只允许80/443/ssh 端口进入(对外提供服务,对出站不做限制)

大致如下:

#限制入口,不限制出口流量
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#常用web服务
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

#import
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

脚本(同事给的):

#!/bin/bash
#clear all rules
iptables -F
#allow loop net
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#allow out access
iptables -A OUTPUT -j ACCEPT

# ping
iptables -A INPUT -p icmp -j ACCEPT
# ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 50022 -j ACCEPT

# http
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#https
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

基本满足需求,按需调整吧

Ref

真正的安全是一种意识,而非技术!