linu系统中的防火墙(iptables)

 

一、使用iptables对防火墙的管理

## 1、iptables的管理和存储方式
### (1)iptables的安装
yum install iptables -y        |安装iptables

### (2)使用iptables的环境配置
systemctl stop firewalld    |关闭firewalld
systemctl disable firewalld    |开机不启动firewalld
systemctl mask firewalld    |给firewalld上锁
systemctl unmask iptables    |解锁iptables
systemctl start iptables    |开启iptables
systemctl enable iptables    |开机自动启动iptables

1、如下:

 

 

 

 

 

二、iptables的管理
 

iptables -nL            |n:numeric,L:list,列出表的策略信息,不指定时默认列出filter表
iptables -F            |F:flush,刷新,将表中策略刷新删除
iptables -nL            |再次查看策略,此时无策略
systemctl restart iptables    |重启服务
iptables -nL            |再次查看时,因为重启服务,保存的策略被再次加载出来
iptables -F            |再次刷新删除
service iptables save        |保存此时的策略
cat /etc/sysconfig/iptables    |查看策略保存的文件
systemctl restart iptables    |重启服务
iptables -nL            |再次查看时,重启服务,保存的策略为无策略,所以此时没有策略被加载出来
iptables -A INPUT -s 172.25.254.54 -p tcp --dport 80 -j REJECT        |-A为添加,INPUT为想要添加的chain(链)名称,-s指定IP,若指所有人,则不加该参数,-p指定协议,--dport指定端口,-j指定执行的动作,此处为REJECT
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT                |-I为插入,此处指将该策略插入至INPUT的第1条
iptables -D INPUT 1        |删除INPUT中的第1条策略,-D为指定删除某链下的某个策略
iptables -N abc            |添加自定义链,名为abc
iptables -E abc zxc        |修改自定义链abc名为zxc
iptables -X zxc            |删除自定义链zxc
iptables -P INPUT DROP        |更改INPUT链的默认规则为DROP
iptables -t nat -nL        |-t为指定表,此处为查看nat表的策略信息,当不指定时,默认指定的是filter表
iptables -L INPUT        |列出filter表下的INPUT链的策略信息

 

1、查看iptables列表信息

iptables  -nL                  ##查看iptables列表信息
iptables  -F                   ##清空iptables列表信息(临时重启服务后恢复原来的设置)
systemctl restart iptables     ##重启iptables服务

 

 

2、保存iptables中的设定

service liptables  save           ##保存iptables中的设置

 

3、查看iptables保存策略的文件

vim /etc/sysconfig/iptables           ##查看iptables保存策略的文件

 

 

 

 

 

三、iptables策略的添加和删除

1、禁止172.25.66.250用户访问80端口

iptables -A INPUT -s 172.25.66.250 -p tcp --deport 80 -j REJECT   ##禁止172.25.66.250 用户访问本机的80端口(apache)

 

2、策略的删除

iptables  -D IPUT  1   ##表示删除列表中的第一条策略

 

 

3、插入策略

iptables -I IPUT 1 -p tcp --deport 80 -j REJECT      ##表示插入此策略

 

4、添加自定义链

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

 

4、修改自定义链的名称

iptables -E westos WESTOS     ##将自定义链westos改名为WESTOS

 

5、删除自定义链

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

 

 

6、查看相应的列表信息

iptables -t nat -nL          ##列出nat列表的信息

 

7、修改INPUT的默认规则

iptables -P INPUT DROP      ##更改INPUT链的默认规则为DROP  

 

 

 


四、在iptables中做SNAT(原地址转换)和DNAT(目的地地址转换)


此实验需要三台机,提供目的地地址的、提供路由功能的(需两块网卡,两个不同网段)、提供原地址的。

此处设定的原地址为:
172.25.0.166,网关为172.25.0.1(路由器的一个IP)
路由器的两个IP为:
172.25.66.66(eth1网卡IP)和172.25.0.1(eth0网卡IP)
目的地IP为:
172.25.66.250
### (1)SNAT
#### <1>在路由器上设置
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.66.66    |给nat表的POSTROUTING链中添加策略,指定网卡为eth0网卡,执行SNAT,转换的IP为172.25.66.66
iptables -t nat -nL        |查看是否添加成功
sysctl -a | grep ip_forward    |查看路由功能是否开启,若显示为0,则没有开启
vim /etc/sysctl.conf        |修改该文件
net.ipv4.ip_forward = 1        |开启路由功能
sysctl -p            |修改完成后加载修改的设定,立即开启路由功能

#### <2>在原地址端测试
ping 172.25.66.250(目的地地址)        |可ping通,说明原地址转换成功
ssh kiosk@172.25.66.250(目的地地址)    |连接目的地地址

#### <3>在目的地查看
w -i            |查看连接自己的IP,此时经过原地址转换,所以看到的IP应是路由器的eth0网卡IP172.25.66.66

#### <4>还原设定,使实验环境纯净
iptables -t nat -D POSTROUTING 1    |删除设定,还原实验环境

### (2)DNAT
#### <1>在路由器上设置
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.166    |给nat表的PREROUTING链中添加策略,指定网卡为eth1网卡,执行DNAT,转换的IP为172.25.0.166
iptables -t nat -nL        |

#### <2>在原地址端测试
ssh kiosk@172.25.0.166(目的地地址)    |连接目的地地址

#### <3>在目的地查看
w -i            |查看连接自己的IP,此时经过目的地地址转换,所以看到的IP应是原地址IP172.25.66.250

 

1、实验配置

desktop上配置两快网卡:

eth0:充当内网主机的源地址转换的接口

eth1:充当外网链接的接口

 

2、将server主机的ip设置为172.25.0.166 (充当外网主机)

网关:GATEWAY=172.25.0.1

 

3、检查网关的连接情况以及ip的设置情况:

 

4、设置访问的ip从172.25.66.66端口出去

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.66.66    |给nat表的POSTROUTING链中添加策略,指定网卡为eth0网卡,执行SNAT,转换的IP为172.25.66 网段的ip
iptables -t nat -nL                  ##查看策略是否生效

 

5、检查1725.25.0.166主机是否可以连接172.25.66.250主机

连接失败

 

6、查看内核路由功能是否开启

sysctl -a | grep ip_forward                ##查看内核路由i是否开启
vim /etc/sysctl.conf                       ##编辑内核路由文件

内容:
net.ipv4.ip_forward=1                      ##开启内核路由功能

sysctl -p                                  ##查看内核路由是否成功开启

(1)、查看内核路由是否开启

 

(2)、编辑内核路由文件

 

(3)、查看内核路由是否成功的开启

 

 

7、在此检查是否可以连接172.25.66.250主机

ping 172.25.66.250

 

8、将172.25.0.166设置为网络访问的入口

iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.166    |给nat表的PREROUTING链中添加策略,指定网卡为eth1网卡,执行DNAT,转换的IP为172.25.0 网段的ip

 

9、 在172.25.66.250主机上登录172.25.66.66主机进行测试

(1)、登录172.25.66.66主机

ssh root@172.25.66.66         ##登录172.25.66.66主机 

登录到的用户是172.25.0.166主机

 

(2)、查看登录本机的ip

直接可以看到172.25.250连接只做源地址转换

 

10、172.25.0.166主机连接172.25.66.250主机

(1)、ssh root@172.25.66.250

 

(2)、查看到连接的主机ip为172.25.66.66主机的ip

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值