网络基础之防火墙

博客文章渐多,条理性就凸显重要了。计划把文章分成小块,主题与内容鲜明、简洁一些。

零、防火墙介绍

防火墙是计算机防止网络攻击的重要屏障。

修改网络配置,比如改变某些软件服务的端口,不要忘了防火墙的屏蔽多用,可能需要手工开启。

各个平台都提供了方便的工具来设置防火墙,如Ubuntu的ufw,CentOS的firewalld。

一、R7000路由器小宝梅林固件下的防火墙

iptables -L | grep 8443 #梅林管理端口由8443改为8441后,8443查询不到

iptables -I INPUT -p tcp –dport 8443 -j ACCEPT #添加8443端口,注意dport前是两条横!

iptables -I INPUT -p udp –dport 8443 -j ACCEPT

iptables -L | grep 8443

_ ACCEPT udp – anywhere anywhere udp dpt:8443_

_ ACCEPT tcp – anywhere anywhere tcp dpt:8443_

service iptables save #为啥提示错误?_

_
问题:QNAP如果突破路由器的端口?

请问51413端口 (Transmission)在哪里设置打开?

二、树莓派debian下的防火墙

用 _iptables _查看防火墙状态,竟然没有!所有端口都是开放的,如果把树莓派放在WLAN,危险性还是很大的

$ sudo service iptables status

● iptables.service

Loaded: not-found (Reason: No such file or directory)

Active: inactive (dead)
树莓派UFW防火墙简单设置
$ sudo apt-get install ufw

$ sudo ufw status

$ sudo ufw allow from 192.168.1.165 #允许我的笔记本从内网访问树莓派的所有端口,避免无法连接的尴尬!

$ sudo ufw enable #会警告干扰ssh连接,完成后,防火墙状态显示只有允许笔记本连接,其他都被屏蔽了:

_ To Action From_

_ Anywhere__ ALLOW 192.168.1.165_

$ sudo ufw default deny #并没有改变防火墙规则,为啥?

$ sudo ufw allow 80 #打开http端口(含v6)

$ sudo ufw allow 22 #打开ssh端口

$ sudo ufw allow 443 #打开https端口

$ sudo ufw allow 8443
 

三、CentOS下的防火墙

firewalld的命令(注意参数都是两条横杠,不是一条!)

运行、停止、禁用firewalld

启动:# systemctl start firewalld

重启:# systemctl restart firewalld

查看状态:# systemctl status firewalld 或者 firewall-cmd –state

停止:# systemctl disable firewalld

禁用:# systemctl stop firewalld
配置firewalld
查看版本:$ firewall-cmd –version

查看帮助:$ firewall-cmd –help

显示状态:$ firewall-cmd –state

查看区域信息: $ firewall-cmd –get-active-zones

查看指定接口所属区域:$ firewall-cmd –get-zone-of-interface=eth0

拒绝所有包:# firewall-cmd –panic-on

取消拒绝状态:# firewall-cmd –panic-off

查看是否拒绝:$ firewall-cmd –query-panic

更新防火墙规则:

firewall-cmd –reload

firewall-cmd –complete-reload

两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

将接口添加到区域,默认接口都在public

firewall-cmd –zone=public –add-interface=eth0

永久生效再加上 –permanent 然后reload防火墙

设置默认接口区域

firewall-cmd –set-default-zone=public

立即生效无需重启

打开端口(貌似这个才最常用)

查看dmz区域打开的端口:

firewall-cmd –zone=dmz –list-ports #一般缺省区域是public

加入一个端口到dmz区域:

firewall-cmd –zone=dmz –add-port=8080/tcp

若要永久生效方法同上

打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档

firewall-cmd –zone=work –add-service=smtp

移除服务

firewall-cmd –zone=work –remove-service=smtp

管理VPS的防火墙设置,详见本博客博文 通过VPS看这美丽的世界 ,中关于增加ss端口,需要打开防火墙的实践(iptables是centos6的命令,过时了)。
iptables -I INPUT -p tcp –dport 9001:9005 -j ACCEPT #开启9001~9005端口防火墙

iptables -I INPUT -p udb –dport 9001:9005 -j ACCEPT

四、管理docker防火墙设置

参考 : 无视系统防火墙的docker ,可以查看docker的防火墙状态:

sudo iptables -L DOCKER #CentOS查看docker开启的防火墙端口

五、Windows下的防火墙