基于linux的火墙管理iptables(部分)

DIRECT Rlues

**通过 firewall-cmd 工具 , 可以使用 –direct 选项在运行
时间里增加或者移除链。如果不熟悉 iptables , 使用直接接口
非常危险 , 因为您可能无意间导致防火墙被入侵。直接端口模式
适用于服务或者程序 , 以便在运行时间内增加特定的防火墙规则。
直接端口模式添加的规则优先应用**

1.下载httpd,并打开
2.添加http服务到火墙
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
3.然后在真机和另一台虚拟机中访问172.25.254.111,会访问成功

在虚拟机中
这里写图片描述
在真机中
这里写图片描述

4.firewall-cmd --permanent --remove-service=http
  firewall-cmd --reload
###此时真机和另一台虚拟机中访问172.25.254.111,都会失败

在真机中
这里写图片描述
在虚拟机中
这里写图片描述

5.firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.11 -j ACCEPT  ###添加规则,当172.25.254.11访问时,可以访问
  firewall-cmd --direct --get-all-rules  ###查看规则是否添加成功
-p,指定协议类型 --dport,指定目的地端口  -s ,表示来源 
-j,表示动作
accept  ##接受
reject  ###拒绝,有回响
drop    ###拒绝,没有回响
###此时在真机中就会访问成功,在另一台虚拟机会被拒绝

这里写图片描述
在真机中
这里写图片描述
在虚拟机中
这里写图片描述

地址伪装

1.firewall-cmd --list-all
  firewall-cmd --permmanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.70
  ####使在ssh连接虚拟机时发生跳转
  firewall-cmd --permanent --add-masquerade   ###打开masquerade服务
  firewall-cmd --reload  ###重新加载

这里写图片描述

2.在真机中ssh root@172.25.254.111 就会跳转到172.25.254.70这台主机上,需要输入70这台主机的登陆密码才能进入

这里写图片描述

在server虚拟机中:

添加两块网卡,一块eth0ip设置为172.25.4.111,一块为eth1ip设置为172.25.254.111

这里写图片描述

sysctl -a | grep ip_forward
vim /etc/sysctl.conf
写入net.ipv4.ip_forward = 1
sysctl -p 

这里写图片描述

firewall-cmd --add-masquerade  ###打开masquerade服务

这里写图片描述
这里写图片描述

在desktop虚拟机中(测试):

1.设置eth0网卡的ip为172.25.4.17 

这里写图片描述

2.设置网关,vim /etc/sysconfig/network
  写入:GATEWAY=172.25.4.111
systemctl restart network

这里写图片描述

route -n 
3.在此虚拟机上ping 172.25.254.11 若能成功,则设置好了(ping 172.25.254这个网段的都可以)

这里写图片描述
这里写图片描述
这里写图片描述

iptables管理

systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl enable iptables
iptables -nL   ###列出火墙信息(-n,不做解析,-L查看表策略)
iptables -F    ###刷新,清空策略
service iptables save   ####保存火墙信息,它会保存在/etc/sysconfig/iptables里面
-t,指定查看的表
-A,添加策略,不能指定位置
-I,插入策略,可以指定位置
-R,修改策略
-D,删除策略

这里写图片描述
这里写图片描述
这里写图片描述

iptables -t filter -nL ###查看filter表的火墙信息
iptables -t nat -nL   ###查看nat表的火墙信息

这里写图片描述

iptables -P INPUT DROP     ###设置filter表INPUT链的默认规则 ,当数据包没
有被规则列表里的任何规则匹配到时,按此默认规则处理

这里写图片描述

iptables -A INPUT -s 172.25.254.70 -p tcp --dport 80 -j ACCEPT 
####添加来源是172.25.254.70的主机可以访问80端口

因为iptables读取方式是自上而下的,而且-A添加是默认依次往后加,第一条策略已经拒绝所有主机访问,所以70这台主机现在依旧访问不了
这里写图片描述

iptables -D INPUT 2  ###删除INPUT链中的第2条策略

这里写图片描述

iptables -R INPUT 1 -s 172.25.254.70 -p tcp --dport 80 -j ACCEPT
###修改INPUT链的第1条策略,加上来源172.25.254.70

这里写图片描述

iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
 ###在INPUT链的第1条插入,所有主机可以访问80端口,-I可以指定位置

这里写图片描述

iptables -N   westos ###添加自定义链名
iptables -nL  

这里写图片描述

iptables -E westos WESTOS  ###修改自定义的链名
iptables -nL 

这里写图片描述

iptables -X  WESTOS ###删除自定义的链
iptables -nL

这里写图片描述

»NEW: 该包想要开始一个新的连接(重新连接或连接重定 向)
»RELATED:该 包是属于某个已建立的连接所建立的新连接。举例:FTP的
数据传输连接和控制连 接之间就是RELATED关系。
»ESTABLISHED:该包属于某个已建立的连接。
»INVALID:该 包不匹配于任何连接,通常这些包被DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3260 -j ACCEPT
iptables -A INPUT -i lo  -j  ACCEPT   ###lo表示本机回环
iptables -nL

这里写图片描述

iptables -F
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT   ####允许已建立的连接接收数据
(ESTABLISHED,表示正在连接着的、RELATED,表示已经连过的,再次连接、NEW,表示新的连接)
iptables -nL 

这里写图片描述

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT ##-m,表状态
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 3260 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -j REJECT
service iptables save

这里写图片描述

地址伪装

POSTROUTING:可以在这里定义进行源NAT的规 则,系统在决定了数据包的路
由以后在执行该链中的规则。
SNAT就是改变转发数据包的源地址
--to-source:
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由
器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必
须 在路由之前就进行目的NAT;
DNAT就是改变转发数据包的目的地址 --to-dest:
在server虚拟机中:
1.iptables -t nat -nL  ####查看nat表中的策略
  iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.111
  iptables -t nat -nL
在另一台虚拟机中,ping 172.25.254.11,能通就成功

这里写图片描述
这里写图片描述

2.iptables -t nat -nL
  iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 172.25.4.17 (此ip为desktop虚拟机ip)
  在真机中 ssh root@172.25.254.111,进去后查看ip,若为172.25.4.17则设置成功

这里写图片描述

猜你喜欢

转载自blog.csdn.net/xbw_linux123/article/details/80696454
今日推荐