网络安全基础知识:如何设置防火墙

为什么防火墙如此重要?开放Internet上的安全性每天都变得越来越重要。随着互联网和互联网素养的增长,现在全世界都可以感受到专用/虚拟服务器的好处。

对于许多人来说,个人数据和Web服务的可访问性已成为日常生活中不可或缺的一部分。具有可访问性的好处意味着该服务是面向公众的,这使得该服务容易受到不良和看似随机的连接的影响。

通常使用机器人和欺骗性IP地址进行,在开放的Internet上体验登录尝试、端口扫描和其他侵入性活动的情况并不少见。有一些基本的安全和防火墙实践可以帮助防止这些活动变成更令人担忧的问题。

如果没有防火墙,你的开放端口如下所示:

首先,为了帮助掌握这些连接背后的动机,我们使用了一台新安装的服务器来记录2天内的传入连接。在没有防火墙阻止与服务器的连接的情况下,可以分析日志数据以查明集中区域。

### 技术信息

操作系统:CentOS7+cPanel

(禁用cPHulk)

–使用iptables记录连接,并记录到以下目录–

`/etc/rsyslog.d/my_iptables.conf`

`:msg,contains,\""[netfilter]\""/var/log/iptables.log`

以下iptables规则用于将NEW(state)入站数据包记录到eth0

`iptables-AINPUT-ieth0-mstate--stateNEW-jLOG--log-prefix=\'[netfilter]\'`

### 示例日志条目

`Jun1508:02:27gigenetkernel:[netfilter]IN=eth0OUT=MAC=d6:f4:8e:aa:a7:94:00:25:90:0a:ad:1c:08:00SRC=DST=LEN=40TOS=0x00PREC=0x00TTL=244ID=24288PROTO=TCPSPT=54102DPT=1433WINDOW=1024RES=0x00SYNURGP=0`

(IP地址已被删除)

SRC–源IP地址

DST–目标IP地址

SPT——源端口

DPT–目标端口

PROTO——互联网协议

### 创建了一个脚本来分析和格式化日志数据

`[[email?protected]/*

日志文件:iptables-1.log

记录日期

`#awk\'NR==1{print\""StartDate:\""$1,$2,$3;};END{print\""EndDate:\""$1,$2,$3;}\'iptables-1.log`

开始日期:6月13日08:02:21

结束日期:6月15日08:02:27

### 记录的新连接总数

`#wc-liptables-1.log`
`16299iptables-1.log`

### 每个协议的连接数

`#awk\'{for(i=1;i<=NF;i++)if(~/PROTO=/)print$i}\'iptables-1.log|sort|uniq-c|sort-rn` `15900PROTO=TCP` `366PROTO=UDP` `33PROTO=ICMP`### 唯一SRCIP地址数`#awk\'{for(i=1;i<=NF;i++)if(~/SRC=/)print$i}\'iptables-1.log|sort-n|uniq|wc-l` `2886IPAddresses`### 具有DPT的实体数(Total-ICMP)`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-1.log|wc-l` `16266DPTConnections`### 唯一DPT命中数`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-1.log|sort-n|uniq|wc-l` `1531UniqueDPT`### 每个DPT的连接数,前15名`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-1.log|sort-n|uniq-c|sort-rn|head-n15` `9595DPT=22` `1309DPT=80` `885DPT=445` `742DPT=23` `188DPT=8000` `157DPT=1433` `153DPT=5060` `111DPT=8080` `90DPT=8545` `90DPT=3389` `83DPT=81` `80DPT=3306` `73DPT=443` `67DPT=2323` `44DPT=8888`**如何使用防火墙缓解端口**数据显示了主要的联系目的地港口。正如预期的那样,具有最大连接量的端口对于Linux和WindowsWeb服务很常见。端口22–SecureShell(SSH) 端口23–telnet 端口80–Http 端口445–SMB(Windows网络文件共享) 端口1433–MSSQL 端口3306–MYSQL 端口3389–RDP根据正在运行的服务,这些端口可能需要对远程服务可用。注意的端口是SSH端口22、telnet端口23和RDP端口3389。理想情况下,系统防火墙应将这些连接仅限于特定IP地址。此外,机器人通常被编程为以默认端口为目标。因此,更改默认SSH和RDP端口将有助于防止入侵。1. 更改SSH端口(Linux、Freebsd)2. SSH配置文件: `/etc/ssh/sshd_config`修改不常用端口(0-65535)的行* 端口22重启SSHD:* CentOS:服务sshd重启* Debian:服务ssh重启* FreeBSD:/etc/rc.d/sshd重启更改RDP端口(Windows)* WindowsRDP永远不应向公众开放。如有必要,应更改RPD端口以最小化匿名连接。打开注册表编辑器* 找到以下注册表子项: `HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\TerminalServer\\WinStations\\RDP-Tcp\\PortNumber`将Decimal值修改为未使用的端口,单击OK。重启。**基本防火墙设置**有许多防火墙服务可以作为主要的安全模式。提供了一些帮助入门的基本规则命令。### **1.添加iptables规则**iptables是最常见、最熟悉的Linux防火墙。CentOS<=6的默认防火墙,iptables经常被用作Linux的基线防火墙。基本规则* 允许已建立的连接:iptables-AINPUT-mstate–stateRELATED,ESTABLISHED-jACCEPT* 允许输入策略:iptables-PINPUTACCEPT* 允许IP:iptables-AINPUT-s120.0.0.1/32-jACCEPT* 允许IP/端口:iptables-AINPUT-s120.0.0.1/32-ptcp-mstate–stateNEW-mtcp–dport22-jACCEPT* 允许lo(localhost)接口:iptables-AINPUT-ilo-jACCEPT* 允许Ping:iptables-AINPUT-picmp-jACCEPT* 允许端口:iptables-AINPUT-ptcp–dport22-jACCEPT* 插入允许IP(位置5):iptables-IINPUT5-s120.0.0.1/32-jACCEPT* 插入允许IP/多端口:iptables-IINPUT5-s127.0.0.1/32-ptcp-mstate–stateNEW-mmultiport–dportport#1,port#2-jACCEPT(或者,将“ACCEPT”替换为“DROP”以拒绝) 使用-D选项删除现有规则:* 删除允许IP:iptables-DINPUT-s120.0.0.1/32-jACCEPT拒绝其余的,拒绝(阻止)之前规则中未定义的所有连接。* iptables-A-jREJECT–reject-withicmp-host-prohibited冲洗规则* iptables-F**2.基本的firewalld命令**Firewalld在CentOS7中具有突出的特点。Firewalld本质上提供了更多人类可读的命令来提交iptables规则。可操作,打印当前状态信息* 状态:firewall-cmd–state* 启动/停止:systemctlstart/stopfirewalld.service* 开机启动:systemctlenablefirewalld区域信息,pinrt区域参数* 默认区域:firewall-cmd–get-default-zone* 默认区域信息:firewall-cmd–list-all* 列出区域:firewall-cmd–get-zones* 区域信息:firewall-cmd–zone=public–list-all修改区域* 创建新区域:firewall-cmd–permanent–new-zone=new\_zone–更改默认区域:firewall-cmd–set-default-zone=public* 更改接口:firewall-cmd–zone=public–change-interface=eth0修改规则,区域的子网* 允许服务:firewall-cmd–zone=public–add-service=http* 允许端口:firewall-cmd–zone=public–add-port=22/tcp* 列出服务:firewall-cmd–get-services* 列出允许的服务:firewall-cmd–zone=public–list-services* 列出允许的端口:firewall-cmd–list-ports* 允许IP/Port/Proto使用富规则、显式规则* firewall-cmd–permanent–zone=public–add-rich-rule=’rulefamily=”ipv4″sourceaddress=”127.0.0.1/32″portprotocol=”tcp”port=”22″accept’(使用–permanent选项为重新启动创建持久规则)### **3.基本的ufw规则**作为ufw(UncomplicatedFirewall)引入,在Ubuntu8.04+中受支持,它作为Ubuntu系统的默认防火墙提供。操作* 启用/禁用:ufw启用/禁用* 打印规则:ufwstatusverbose允许规则* 允许端口:ufwallow22* 允许IP:ufw允许来自127.0.0.1* AllowIP/Port/TCP:ufwallowfrom127.0.0.1toanyport22prototcp* (或者,用“允许”代替“拒绝”来代替拒绝规则)删除现有规则* ufw从127.0.0.1删除允许### **4.Windows防火墙(WindowsServer2008anewer)****控制面板>>Windows防火墙>>高级设置>>入站/出站>>新规则**

### 奖励:cPanel工具–cpHulk(?)

作为测试用例,WHM的cPHulkBruteforceProtection使用默认设置启用。在记录的24小时内,iptables记录的新连接明显减少。

`[[email?protected]/*

日志文件:iptables-cphulk.log

记录日期

`#awk\'NR==1{print\""StartDate:\""$1,$2,$3;};END{print\""EndDate:\""$1,$2,$3;}\'iptables-cphulk.log`

开始日期:6月19日04:31:43

结束日期:6月20日04:53:53

### 记录的新连接总数

`#wc-liptables-cphulk.log`
`3223iptables-cphulk.log`

### 每个协议的连接数

`#awk\'{for(i=1;i<=NF;i++)if(~/PROTO=/)print$i}\'iptables-cphulk.log|sort|uniq-c|sort-rn` `2974PROTO=TCP` `213PROTO=UDP` `36PROTO=ICMP`### 唯一SRCIP地址数`#awk\'{for(i=1;i<=NF;i++)if(~/SRC=/)print$i}\'iptables-cphulk.log|sort-n|uniq|wc-l` `1432IPAddresses`### 具有DPT的实体数(Total-ICMP)`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-cphulk.log|wc-l` `3187DPTConnections`### 唯一DPT命中数`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-cphulk.log|sort-n|uniq|wc-l` `943UniqueDP`### 每个DPT的连接数,前15名`#awk\'{for(i=1;i<=NF;i++)if(~/DPT=/)print$i}\'iptables-cphulk.log|sort-n|uniq-c|sort-rn|head-n15` `415DPT=445` `270DPT=23` `257DPT=22` `233DPT=80` `97DPT=5060` `72DPT=1433` `59DPT=8545` `53DPT=8000` `50DPT=81` `49DPT=8080` `46DPT=443` `41DPT=3389` `34DPT=25` `33DPT=3306` `27DPT=2323`

松果号 作者:松果号原创文章,如若转载,请注明出处:https://www.6480i.com/archives/102668.html

(0)
松果号松果号
上一篇 14小时前
下一篇 14小时前

推荐阅读

发表回复

登录后才能评论