防火墙涂鸦图
iptable之五条链
在进行路由选择前处理数据包(
PREROUTING
);处理流入的数据包(INPUT
);
处理流出的数据包(OUTPUT
);
处理转发的数据包(FORWARD
);
在进行路由选择后处理数据包(POSTROUTING
)。
iptable之四张表
表的处理优先级:raw
> mangle
>nat
> filter
filter
:一般的过滤功能nat
:用于nat功能(端口映射,地址映射等)
mangle
:用于对特定数据包的修改
raw
:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
运维人员主要操作的是input链
设置本地网卡访问虚拟机
设置网卡属性
虚拟机上选择仅主机模式
配置网卡
在windows上ping虚拟主机
iptabls中的参数对象
参数 | 作用 |
---|---|
-P | 设置默认策略 |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I num | 在规则链的头部加入新规则 |
-D num | 删除某一条规则 |
-s | 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 |
-d | 匹配目标地址 |
-i 网卡名称 | 匹配从这块网卡流入的数据 |
-o 网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议,如TCP、UDP、ICMP |
–dport num | 匹配目标端口号 |
–sport num | 匹配来源端口号 |
-j | 选项指定规则的目标<br/>目标可以是用户自定义链;内建目标;或扩展 |
下面执行iptabls命令规则
意思是:向INPUT上的规则链从头插入一条来源IP是192.168.10.1协议类型是icmp的(-j指定动作)给拒绝掉
[root@localhost network-scripts]# iptables -I INPUT -s 192.168.10.1 -p icmp -j REJECT
windows系统ping结果
C:\Users\a364482611>ping 192.168.10.10
正在 Ping 192.168.10.10 具有 32 字节的数据:
来自 192.168.10.10 的回复: 无法连到端口。
来自 192.168.10.10 的回复: 无法连到端口。
如果-s不指定、那么对所有来源都有效
来一条命令意思是:将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
拒绝所有输入进来目标端口是22网络数据类型为tcp的的来源ip都拒绝掉
iptables -I INPUT -p tcp --dport 22 -j REJECT
Xsell链接失败
[c:\~]$
Connecting to 192.168.10.10:22...
Could not connect to '192.168.10.10' (port 22): Connection failed.
Type `help' to learn how to use Xshell prompt.
[c:\~]$
设置默认规则、自带默认规则是允许的
设置的默认规则只能丢包不能拒绝
iptables -P INPUT DROP
这样ping 192.168.10.10会请求超时
[root@localhost network-scripts]# iptables -P INPUT DROP
[root@localhost network-scripts]# iptables -I INPUT -s 192.168.10.1 -p icmp -j ACCEPT
在ping 192.168.10.10则正常
查看INPUT链
[root@localhost network-scripts]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 192.168.10.1 anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost network-scripts]#
删除INPUT链上的第一条规则
[root@localhost network-scripts]# iptables -D INPUT 1
[root@localhost network-scripts]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost network-scripts]#
firewall防火墙
firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本。它的参数一般都是以“长格式”来提供的。
`[root@localhost ~]# firewall-cmd --get-default-zone
public`
参数 | 作用 |
---|---|
–get-default-zone | 查询默认的区域名称 |
–set-default-zone=<区域名称> | 设置默认的区域,使其永久生效 |
–get-zones | 显示可用的区域 |
–get-services | 显示预先定义的服务 |
–get-active-zones | 显示当前正在使用的区域与网卡名称 |
–add-source= | 将源自此IP或子网的流量导向指定的区域 |
–remove-source= | 不再将源自此IP或子网的流量导向某个指定区域 |
–add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 |
–change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
–list-all | 显示当前区域的网卡配置参数、资源、端口以及服务等信息 |
–list-all-zones | 显示所有区域的网卡配置参数、资源、端口以及服务等信息 |
–add-service=<服务名> | 设置默认区域允许该服务的流量 |
–add-port=<端口号/协议> | 设置默认区域允许该端口的流量 |
–remove-service=<服务名> | 设置默认区域不再允许该服务的流量 |
–remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 |
–reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 |
–panic-on | 开启应急状况模式 |
–panic-off | 关闭应急状况模式 |
firewall
的分为两种模式一种是当前模式运行时(Runtime)模式
只对当前有效、重启清空、一种是永久(Permanent)模式
。方法就是在用firewall-cmd命令
正常设置防火墙策略时添加–permanent
参数,这样配置的防火墙策略就可以永久生效了、不过需要重启或者–reload
查询public区域是否允许请求SSH和mysql服务的流量
[root@localhost ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@localhost ~]# firewall-cmd --zone=public --query-service=mysql
no
[root@localhost ~]# firewall-cmd --zone=public --query-service=nginx
Error: INVALID_SERVICE: nginx
[root@localhost ~]#
firewall-cmd –zone=public –query-service
按下tab查看所有服务
查看允许的端口
[root@localhost ~]# firewall-cmd --zone=public --list-ports
[root@localhost ~]# firewall-cmd --permanent --zone=public --list-ports
把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
查看所有端口拥有的流量
[root@localhost ~]# firewall-cmd --zone=public --list-ports
8080-8081/tcp
[root@localhost ~]#
永久模式下查看
[root@localhost ~]# firewall-cmd --permanent --zone=public --list-ports