防火墙常用端口
常用端口列表
端口号 | 释义 |
-1 | 所有端口 |
20 | FTP传输端口 |
21 | FTP连接端口 |
22 | sshd服务 |
23 | Telnet服务 |
25 | SMTP邮件服务 |
80 | HTTP服务 |
110 | POP3协议 |
143 | IMAP协议 |
123 | NTP服务 |
443 | SSL服务 |
873 | rsync服务 |
888 | PHPadmin服务 |
1433 | SQL数据库 |
1521 | Oracle数据库 |
3306 | MySQL数据库 |
3389 | Windows远程桌面 |
8080 | HTTP代理 |
30000-40000 | FTP服务【被动端口】 |
==注:部分运营商判断端口 135、139、444、445、5800、5900 等为高危端口,默认被屏蔽。==
centos6_iptebles
用法:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
选项:
-t 指定需要维护的防火墙柜子表,不使用-t默认操作对象为filter表
-A 追加防火墙规则
-D 删除防火墙规则
-I 插入防火墙规则
-F 清空防火墙规则
-L 列出防火墙规则
-R 替换防火墙规则
-Z 清空防火墙数据表统计信息
-P 设置链默认规则
匹配参数:
[!]-p 匹配协议,!代表取反
[!]-s 匹配源地址
[!]-d 匹配目标地址
[!]-i 匹配入站网卡接口
[!]-j 动作
[!]-o 匹配出站网卡接口
[!]--sport 匹配源端口
[!]--dport 匹配目标端口
[!]--src-range 匹配源地址范围
[!]--dst-range 匹配目标地址范围
[!]--limit 匹配数据表速率
[!]--mac-source 匹配源MAC地址
[!]--sports 匹配源端口
[!]--dports 匹配目标端口
[!]--state 匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
[!]--string 匹配应用层字串
触发动作:
ACCEPT 允许数据包通过
DROP 丢弃数据包
REJECT 拒绝数据包通过
LOG 将数据包信息记录syslog日志
DNAT 目标地址转换
SNAT 源地址转换
MASQUERADE 地址欺骗
REDIRECT 重定向
示例:
查看filter表的所有规则
iptables -nL
查看nat表的所有规则
iptables -t nat -nL
新增允许22端口TCP协议规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
新增允许25端口UDP协议源IP到目标IP的规则
iptables -A INPUT -p udp --dport 25 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
新增允许所有端口TCP协议源IP到目标IP的规则
iptables -A INPUT -p TCP -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
阻止所有入站规则
iptables -p INPUT DROP
允许所有出站规则
iptables -p OUTPUT ACCEPT
屏蔽IP
iptables -A INPUT -s 192.168.0.1 -j DROP
删除屏蔽的IP
iptables -D INPUT -s 192.168.0.1 -j DROP
连续多端口新增
iptables -A INPUT -p TCP --dport 20:23 -j ACCEPT
iptables -A INPUT -p TCP --dport 30000:40000 -j ACCEPT
不连续多端口新增
iptables -A INPUT -p tcp -m multiport --dport 25,80,123,443,873,888,3306,8080 -j ACCEPT
centos7_firewalld
特性:firewalld将所有网络流量部分类汇集到zones中,通过zones管理
zones名称 | 描述 |
trusted | 允许所有流量入站 |
home | 允许ssh,mdns,ipp-client,samba-client,dhcpv6-client预定服务入站 |
internal | 与home相同 |
work | 允许ssh,或dhcpv6-client预定服务入站 |
external | 允许ssh入站,转发的IPV4数据包会进行NAT转换,修改源地址为防火墙本机出站网卡地址 |
dmz | 允许ssh入站 |
block | 拒绝所有入站 |
drop | 拒绝所有入站 |
pulic | 允许ssh,dhcpv6-client预定服务入站 |
用法
firewall-cmd [参数]
参数
--get-default-zone 查看默认zone信息
--get-default-zone=<pulic> 设置默认zone
--get-active-zones 显示正在使用的zone信息
--get-zones 显示系统预设zone信息
--get-services 显示系统预设服务
--get-zone-of-interface=eth0 查看指定接口所属区域
--state 查看防火墙状态
--list-all 列出防火墙规则
--reload 更新防火墙规则
--panic-on 【慎用!!!】拒绝所有包!
--panic-off 取消拒绝状态
--permanent 永久生效
--zone=public 公共区域
端口管理
# 打开443/TCP端口
firewall-cmd --add-port=443/tcp
# 永久打开3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp
# 永久打开端口好像需要reload一下,临时打开好像不用,如果用了reload临时打开的端口就失效了
# 其它服务也可能是这样的,这个没有测试
firewall-cmd --reload
# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all
直接模式
# FirewallD包括一种直接模式,使用它可以完成一些工作,例如打开TCP协议的9999端口
firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload
伪装 IP
检查是否允许伪装IP
firewall-cmd --query-masquerade
允许防火墙伪装IP
firewall-cmd --add-masquerade
禁止防火墙伪装IP
firewall-cmd --remove-masquerade
端口转发
将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1
将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080
示例
查看默认zone信息
firewall-cmd --get-default-zone
查看防火墙所有列表
firewall-cmd --list-all
查看所有开放的端口
firewall-cmd --list-ports
查看端口开启状态
firewall-cmd --query-port=80/tcp
查看服务开启状态
firewall-cmd --list-services
永久添加常用的端口
firewall-cmd --permanent --add-port=[20-23]/tcp
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=123/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=873/tcp
firewall-cmd --permanent --add-port=888/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=30000-40000/tcp
永久添加常用的服务
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=rsyncd
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=ntp
firewall-cmd --permanent --add-service=mysqld
firewall-cmd --permanent --add-service=smtp
永久删除端口规则
firewall-cmd --permanent --remove-port=123/tcp
永久删除服务规则
firewall-cmd --permanent --remove-service=dhcpv6-client
防火墙规则更新
firewall-cmd --reload