firewalld and iptables
来源:互联网 发布:伊塞亚托马斯数据 编辑:程序博客网 时间:2024/05/21 07:15
1 firewalld
1.1 firewalld-config
使用firewalld-config &命令,后台调用防火墙图形管理。
firewalld分为如下几个网络区。其管理文件在如下目录:
在图形界面更改,可分为立即生效,重启服务失效;和永久更改,需要重启服务。
默认开启的网络区为public,可在此更改设定:Options—>Change Default Zone 。
默认开启的网络区为public,可以看到火墙并没有允许http服务,所以,此时通过http访问此主机会出现下面的情况:
当火墙策略里面允许http服务时,访问会成功。此时的更改为立即生效,状态为runtime
上述更改是临时的,当我们重启防火墙时,策略会被删除,即会访问不到http服务。
更改设定为永久更改,并重启火墙,此时httpd服务将永久加入火墙策略。
在火墙配置文件中,可以看到http服务已被写入配置文件。永久生效。
http服务默认访问端口为80。可以在其配置文件中将端口更改为8080,并重启httpd服务,使其生效。做了上述更改后,还需要在火墙中加入开启8080端口。此时通过httpd服务访问时应加上8080端口。
1.2 使用命令行接口配置防火墙
firewall-cmd –reload ##不中断连接,重新加载火墙策略
firewall-cmd –complete-reload ##中断所有连接,重新加载火墙策略
firewall-cmd –state ##查看火墙状态
firewall-cmd –get-active-zones ##查看激活状态的网络区
firewall-cmd –get-default-zone ##查看默认开启网络区
firewall-cmd –get-zones ##查看都有什么网络区
firewall-cmd –zone=public –list-all ##查看public区所有的信息
firewall-cmd –get-services ##查看火墙可开启的服务
firewall-cmd –list-all-zones ##查看所有网络区的信息
firewall-cmd –set-default-zone=dmz ##更改设定默认网络区为dmz
firewall-cmd –permanent –zone=internal –add-source=172.25.254.0/24 ##永久,将172.25.254.0/24网段的ip加入internal网络区
firewall-cmd –permanent –zone=internal –remove-source=172.25.254.0/24 ##永久,将172.25.254.0/24网段的ip移出internal网络区
firewall-cmd –permanent –zone=internal –add-interface=eth1 ##永久,将eth1网卡加入internal网络区,此时,internal网络区被激活
firewall-cmd –permanent –zone=internal –change-interface=eth1 ##永久,将eth1网卡从原来的网络区移除并且加入internal网络区
firewall-cmd –permanent –zone=internal –remove-interface=eth1 ##永久,将eth1网卡移出internal网络区
firewall-cmd –direct –get-all-rules
firewall-cmd –direct –add-rule ipv4 filter INPUT 1 -s 172.25.254.56 -p tcp –dport 80 -j REJECT
filter 表
INPUT 1 链的第一行
-s 指定数据来源
-p 指定协议
-dport 指定端口
-j 指定动作
firewall-cmd –add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.56 ##端口转发:通过ssh(22端口)连接我的主机的统统转到ssh(22端口)去连接172.25.254.56主机
firewall-cmd –list-all ##可以查询到上面设置的策略
firewall-cmd –add-masquerade ##开启伪装:让本身两块网卡可以进行通信
sysctl -a | grep ip_forward ##查看伪装状态,1开启,0关闭
2 iptables
iptables -t filter -L #查看火墙filter表中策略
iptables -t filter -nL #不做解析查看火墙策略
iptables -nL ##默认查看filter表中策略
iptables -F ##临时清空火墙策略,重启服务后复原
service iptables save ##将此时的火墙策略写进配置文件
iptables -A INPUT -p tcp –dport 80 -j ACCEPT ##在INPUT表中添加80/tcp端口,动作为接受
iptables -P INPUT DROP ##将INPUT表默认状态设定为DROP
iptables -P INPUT ACCEPT ##将INPUT表默认状态设定为ACCEPT
iptables -A INPUT -j REJECT ##将INPUT表剩下所有未设定动作的服务全设定为REJECT
iptables -D INPUT 3 ##删除IPNUT表中第三条策略
iptables -I INPUT 2 –dport 80 -j ACCEPT ##添加第二条策略
iptables -R INPUT 4 –dport 80 -j REJECT ##修改INPUT表第4条策略为拒绝80端口的访问
service iptables save ##保存当前状态的火墙策略并写进配置文件永久生效。(/etc/sysconfig/iptables)
iptables -N WESTOS ##添加一个WESTOS表
iptables -E WESTOS LINUX ##将WESTOS表改名为LINUX
iptables -X LINUX ##删除LINUX表
查看这张火墙策略表,可以看到第一条为接受22/tcp端口进来的数据,第二条为拒绝所有未设定动作的端口,第三条为接受80/tcp端口进来的数据。由于计算机读取策略是从上到下依次匹配,匹配到了就不再继续查询,所以当80/tcp端口,在第二条被拒绝后不再查询,即第三条的设定无效且http服务不能通过火墙被访问。
从上到下依次读取火墙策略,在INPUT表中ssh和http服务可以通过火墙,其他均被阻挡。
一个简易的火墙策略布置练习
POSTROUTING链
我们最后的任务应该是构造网络地址转换,对吧?至少对我来说是的。我们在nat表的POSTROUTING里只加入了一条规则,它会对所有从Internet接口(对我来说,这是eth0)发出的包进行NAT操作。选项-t指定要在哪个表里插入规则,这里是nat表。命令-A说明我们要把规则添加到POSTROUTING链末尾。-o$INET_IFACE指定要匹配所有从接口INET_IFACE出去的包,这里我们使用的是eth0。最后,我们把target设置为SNAT。这样,所有匹配此规则的包都会由SNAT target处理之后,它们的源地址就是Internet接口的地址了。不要忘了SNAT可是一定要有IP地址的,用–to-source来设置哦。
iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 172.25.254.156
sysctl -a | grep ip_forward ##/etc/sysctl
sysctl -p
接下来是在desktop上写策略
最后就是进行测试
先是 ping 网关
然后再是 ping 转换的那个网段
本次实验算是完成了
阅读全文
0 0
- firewalld and iptables
- firewalld and iptables
- AWS RHEL7 virbr0 and firewalld iptables
- 火墙——firewalld and iptables
- iptables&firewalld
- iptables firewalld
- firewalld&iptables
- iptables& firewalld
- firewalld & iptables
- firewalld & iptables
- iptables&firewalld
- RHEL 7 / CentOS 7 : Disable Firewalld and use iptables
- CentOS7 禁用firewall,启用iptables,disable firewalld service and use iptables
- Iptables与Firewalld防火墙
- firewalld(iptables)
- iptables替换firewalld
- 06-IPTABLES.FIREWALLD防火墙
- firewalld和iptables
- 使用Xml简单实现学生管理系统
- CentOS 7安装Python 3.6,pip3报错问题
- Selenium入门记录_001_环境配置和Hello World!
- jQuery表格内容筛选
- Eclipse+Maven环境下java.lang.OutOfMemoryError: PermGen space及其解决方法
- firewalld and iptables
- 贝塞尔曲线
- 熵(entropy)学习记录
- 在第一列后写入相同的字符串-linux
- ROS机器人程序设计(第二版)中的错误
- JavaScript实战02
- Codeforces 371C Hamburgers 简单二分
- CentOS7.2Mini部署vsftpd
- 数据库索引