一、使用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