防火墙涂鸦图

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
1 条评论
?情感共鸣类?