linux防火墙策略

防火墙常用端口

常用端口列表

端口号 释义
-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

猜你喜欢

转载自my.oschina.net/zhaojunhui/blog/1813720