防火墙涂鸦图

图

iptable之五条链

iptable之四张表

表的处理优先级:raw > mangle >nat > filter

图

运维人员主要操作的是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

Last modification:January 30, 2020
如果觉得我的文章对你有用,请随意赞赏