firewalld和netfilter(防火墙)
Linux防火墙-netfilter:
selinux临时关闭 setenforce 0
selinux永久关闭 vi /etc/selinux/config
centos7之前使用netfilter防火墙
centos7开始使用firewalld防火墙
关闭firewalld开启netfilter方法
systemctl stop firewalld 服务关掉
systemctl disable firewalled 关闭firewalled 不让开机启动
yum install -y iptables-services 如果再开启firewalled需要安装一个包
systemctl enable iptables
systemctl start iptables 开启
永久关闭防火墙,编辑配置文件 SELINUX=enforcing修改成disabled
[root@zhang-01 ~]# vi /etc/selinux/config
查看iptables服务
[root@zhang-01 ~]# iptables -nvL #可以查看里面默认的规则 5表5列
Linux防火墙-netfilter
netfilter的5个表
filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
nat表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
managle表用于给数据包做标记,几乎用不到
raw表可以实现不追踪某些数据包,阿铭从来不用
ptables filter表案例
需求:把80端口,22端口,21端口放行。 但是22端口需要指定一个IP段,其他网段的一概拒绝,写一个shell脚本,示例如下:
[root@zhang-01 ~]# vim /usr/sbin/iptables.sh
#! /bin/bash
ipt="/usr/sbin/iptables" #定义一个变量
$ipt -F #清空之前的规则
$ipt -P INPUT DROP #默认策略
$ipt -P OUTPUT ACCEPT #默认策略
$ipt -P FORWARD ACCEPT #默认策略
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #规则,让相关的数据包
更顺利的链接。
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT #133网段的22端口放行
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT #把80端口的数据包放行
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT #把21端口的数据包放行
w查看一下系统负载
[root@zhang-01 ~]# w
01:16:36 up 1 day, 15:29, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.139.1 Tue20 26:53m 0.18s 0.05s bash
root pts/2 192.168.139.1 01:04 4.00s 0.07s 0.00s w
sh运行脚本,然后查看规则
sh /usr/sbin/iptables.sh ##运行脚本
iptables nat表应用
nat表应用
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
需求1:可以让B机器连接外网
A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B上设置网关为192.168.100.1
需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
B上设置网关为192.168.100.1