iptables&firewalld防火墙
来源:互联网 发布:怎么在淘宝申请开店 编辑:程序博客网 时间:2024/06/05 11:42
防火墙的三张表五条链
三张表:
fileter ##不经过内核的链组成
nat ##经过内核的链组成
mangle ##附加表
五条链:
INPUT ##输入
OUTPUT ##输出
FORWARD ##通过
PREROUTING ##目的地地址伪装
POSTROUTING ##源地址伪装
首先介绍iptables
开始前需要下载并打开iptables,并关闭firewalld
systemctl stop firewalld.servicesystemctl disable firewalld.servicesystemctl mask firewalldyum install iptables-services -ysystemctl start iptables.serversystemctl enable iptables.service
相关命令 iptables -L
##默认查看fileter表的策略
-nL ##不做转换直接显示ip
-t 表名 ##查看指定张表的策略
iptables -t filter -F
##清除指定表的所有策略,临时更改 service iptables save
##永久保存
当清除所有的策略之后,我们所有的服务都无法正常使用
1.添加策略 iptables -A INPUT -i lo -j ACCEPT
##允许回环接口通过 iptables -A INPUT -j REJECT
##拒绝所有请求 iptables -I INPUT 2 -s 172.25.254.105 -p tcp --dport 22 -j ACCEPT
##只允许172.25.254.105访问tcp的22端口 iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT
##插入策略到第三条,允许通过使用tcp协议的80端口,-I 是插入到某条,-A 是加入到最后
2.删除策略 iptables -D INPUT -j REJECT
删除此条策略
3.修改策略 iptables -R INPUT 3 -s 172.25.254.105 -p tcp --dport 80 -j ACCEPT
##修改第三条策略,为后面所填写的
4.自定义表 iptables -N westos
##添加一张表名为westos的表 iptables -E westos redhat
##修改westos表名为redhat iptables -X redhat
##删除表redhat
当我们iptables中有很多策略时,一个数据包进入我们服务器,就需要逐条去匹配,这样很浪费时间。
我们可以根据一个数据包的状态来判断给该数据包是否通过
数据包的状态可以分为
NEW ##第一次访问的新数据包
RELATED ##再次访问的数据包
ESTABLISHED ##一直在访问的数据包
我们可以修改策略,当RELATED和ESTABLISHED数据包访问时直接通过
当NEW数据包来访问时,来判断是否让其通过
下面表示当回环接口的NEW数据包,让其通过,来自TCP的22端口的数据包让其通过,其他的均不让其通过
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A INPUT -m state --state NEW -i lo -j ACCEPTiptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPTiptables -A INPUT -j REJECT
iptables的地址伪装 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.105 ##源地址地址伪装
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.205##目的地地址伪装
service iptables save
sysctl -a | grep forward ##查看内核的地址转换功能是否打开
将托黑部分修改为net.ipv4.ip_forward = 1 填入/etc/sysctl.conf文件中
sysctl -p ##加载修改
拥有源地址伪装后,我们可以让不在同一个网段的主机去访问另一台主机
当我们在被访问的主机上查看的,还是跟他在同一个网段的那个ip的访问
当他回应时,数据包就会发回跟他同一个网段的主机,跟我们的需求不一样
如图:我们ssh访问的是不同网段的主机
目的地地址伪装后,我们可以让被访问的主机,回应的虽然是跟他在同一个网段的主机,但被回应的主机,会把数据包发给访问的主机
如图:我们ssh访问的是254.105,但我们最终看到的访问的是0.205
下面我们来介绍firewalld
开始前同样需要并打开firewalld,关闭iptables
systemctl stop iptablessystemctl disable iptables.serversystemctl mask iptables.serversystemctl unmask firewalld.serversystemctl start firewalld.serversystemctl enable firewalld.service
firewall-cmd --get-default-zone##查看当前的域
firewall-cmd --set-default-zone=trusted##设置当前域为trusted
firewall-cmd --list-all##查看当前firewall的详细信息
当前主机的域为public 且只允许dhcp,ssh服务
我们现在需要添加允许的服务
1.可以更改配置文件/etc/firewalld/zones/public.xml
模仿添加完成后,重启或重新加载服务就添加成功了 firewall-cmd --reload##重新加载
2.可以使用命令来修改
firewall-cmd --add-service=ftp##添加ftp服务,临时添加firewall-cmd --permanent --add-service=ftp##永久添加firewall-cmd --permanent --add-port=8080/tcp##添加接口firewall-cmd --permanent --add-interface=eth0##添加网络端口firewall-cmd --permanent --add-source=172.25.254.0/24##添加网段/ipfirewall-cmd --permanent --remove-X ##删除X表表示前面添加的
临时添加重新加载后消失,永久挂载重新加载后启用。
firewalld也有详细的配置,此配置与iptables作用相同语法类似可参照 firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -s 172.25.254.205 -p tcp -j ACCEPT ##允许205通过
firewall-cmd --permanent --direct --remove X##移除写的配置
配置完成后重新加载 firewall-cmd --direct --get-all-rules##查看写的详细配置
firewalld的地址伪装
与iptabls作用相同
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.5 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.0.205"##目的地地址伪装,此处与iptables不同的是,他确定了端口,只有22端口可以进行目的地地址伪装firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.105 masquerade"##源地址伪装
重新加载后可以查看到我们写的规则
- Iptables与Firewalld防火墙
- 06-IPTABLES.FIREWALLD防火墙
- iptables&firewalld防火墙
- Iptables与Firewalld防火墙
- 防火墙设置 firewalld & iptables
- 防火墙 SELinux,netfilter, iptables,firewalld
- 防火墙(firewalld与iptables)
- CentOS7 默认防火墙firewalld替换为iptables
- 3-Centos-7-防火墙修改-Firewalld-Iptables
- Centos 7禁用firewalld安装iptables防火墙
- 防火墙的配置--firewalld与iptables
- CentOS 7.0关闭默认防火墙firewalld,使用iptables
- CentOS 7.0 升级之防火墙 firewalld 取代 iptables
- RH254-第二十六节-iptables和firewalld防火墙
- CentOS7使用firewalld控制防火墙,以及使用iptables设置
- iptables 规则备份和恢复,firewalld防火墙机制
- firewalld与iptables对防火墙策略的管理
- iptables&firewalld
- 类与对象
- UVALive
- Javascript第七天学习总结之字符串的高级操作
- 新的起点 倔强成长 绝不放弃
- Android应用开发--MP3音乐播放器代码实现(二)
- iptables&firewalld防火墙
- 次小生成树
- 第二章:2.4 卷积性质
- 67. Add Binary
- Android中的音乐播放
- CSS动画实现轮播图
- Mac环境下MySQL无法启动的处理方法
- Android简易音乐播放器实现代码
- LeetCode No.86 Partition List