博客文章渐多,条理性就凸显重要了。计划把文章分成小块,主题与内容鲜明、简洁一些。
零、防火墙介绍
防火墙是计算机防止网络攻击的重要屏障。
修改网络配置,比如改变某些软件服务的端口,不要忘了防火墙的屏蔽多用,可能需要手工开启。
各个平台都提供了方便的工具来设置防火墙,如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开启的防火墙端口