第4章 Firewall防火墙
别动都关了
systemctl stop iptables
systemctl stop ip6tables
systemctl stop ebtables
systemctl mask iptables
systemctl mask ip6tables
systemctl mask ebtables
systemctl reboot
systemctl start firewalld.service 启动防火墙
systemctl enable firewalld 自启动
firewalld-cmd 后面跟命令行
firewalld-cmd --help 查看一下有啥命令呗
firewall-config 图形化配置,偷懒大法
firewall-cmd --zone=block --add-source=192.168.100.0/24 添加一条规则,凡是来自192.168.100.0/24网段的信息就放到block中
firewall-cmd --zone=block --remove-source=192.168.100.0/24 remove删了这条规则
这个block 的zone 到这里的都给拒绝了,去别的机器ping就ping不通了
firewall-cmd --zone=drop --add-source=192.168.100.0/24 这个drop比block还厉害,直接把你包给扔了都不告诉你
一般用drop,别用block
systemctl restart firewalld.service 重启以后临时规则就没了,永久规则还有
firewall-cmd --permanent --zone=drop --add-source=192.168.100.0/24 使用--permanent永久规则,必须重启服务后生效
firewall-cmd --list-all 列出规则,默认public
ssh 192.168.100.1 可以连到本机 支持ssh服务
firewall-cmd --remove-service=ssh 删除对ssh服务的支持
firewall-cmd --add-service=ssh 把ssh服务加上去
firewall-cmd --get-default-zone 查看默认zone
firewall-cmd --set-default-zone=xxxx 修改zone
firewall-cmd --zone=work --list-all 查看指定zone
firewall-cmd --get-active-zones 查看活动的zone
firewall-cmd --add-port=8899/tcp 添加端口
firewall-cmd --add-source=192.168.100.0/24 来自这个网段的都可以访问
firewall-cmd --reload 重新读配置文件,类似重启,但是不停服务
firewall-cmd --add-icmp-block=echo-request 这样子就ping不通了,但是ssh还能过去
firewall-cmd --get-zone-of-interface=eno16777736 将网卡加到zone里,没指定zone就是默认zone
firewall-cmd --get-zone-of-interface=eno16777736 --zone=work 将网卡加到work里
firewall-cmd --list-all --permanent 查看永久规则
///////////别人能上网,但是ping不通你
firewall-cmd --permanent --add-icmp-block=echo-request ping先给你关了
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https 加服务
firewall-cmd --permanent --add-port=8899/tcp 添加端口
firewall-cmd --permanent --remove-service=ssh 移除ssh
firewall-cmd --permanent --remove-service=dhcpv6-client 移除dhcpv6-client
firewall-cmd --permanent --list-all 看一下永久规则
/////////////////////新操作
1号机2号机先日常启动防火墙
1号机安装httpd
echo qin > /var/www/html/index.html 整个测试页
systemctl restart httpd 别忘了重启服务
这时候2号机访问不了1号机的192.168.100.1
systemctl stop firewalld 你把防火墙一关,这2号机立马可以访问了
firewall-cmd --add-service=http 关想让2号机访问直接加http服务就好了
firewall-cmd --add-source=192.168.100.0/24 这个网段过来可以访问
firewall-cmd --zone=drop --change-interface=eno16777736 使用change转换规则,把这网卡来的都进drop了
这样子规则就冲突了,
echo bing > /var/www/html/index.html 修改一下测试页面看看谁的优先级高
发现测试页变bing了呀 ,说明优先级先看source
firewall-cmd --zone=block --change-source=192.168.100.0/24 再测试优先级,把source给移到block里
先看source所以直接拒绝访问了
firewall-cmd --zone=trusted --change-interface=eno16777736 在测试把网卡移到trusted
还是先看source所以直接拒绝访问了
firewall-cmd --zone=block --remove-source=192.168.100.0/24 在测试,把source规则删除
这时候source没东西就先看网卡了,就可以访问了
/////////////富规则
先装httpd
mkdir /var/www/8899
echo 80 > /var/www/html/index.html
echo 8899 > /var/www/8899l/index.html
vim /etc/httpd/conf.d/0.conf 配置文件
vim /etc/httpd/conf/httpd.conf 主配置文件修改
systemctl restart httpd 别忘了重启
没开防火墙2号机是可以访问192.168.100.1和192.168.100.1:8899的
开了防火墙2号机就不能访问了
firewall-cmd --permanent --add-service=http 添加服务
firewall-cmd --reload 重读配置
这时候2号机可以访问192.168.100.1但是不能访问192.168.100.1:8899这端口转发
firewall-cmd --permanent --add-port=8899/tcp 添加8899端口
firewall-cmd --reload 重读配置
这样子2号机可以访问192.168.100.1:8899
/////////富规则80端口转8899
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" forward-port port="80" protocol="tcp" to-port="8899""
firewall-cmd --reload 别忘了重读配置
这时候你访问192.168.100.1直接转去192.168.100.1:8899了
富规则太难写了,使用图形化界面偷懒吧
然后就有了
如果工作环境不能使用图形化的话,就用你自己的机器开图形化先把富规则整出来,然后list查看对着敲就好了哈哈哈哈。