本篇文章简单的介绍了我近期学习到的iptables防火墙的一般配置及其它功能的一点知识,包含以下几点:
a.使用iptables防火墙保护web服务器,配置对应规则条目;
b.如果发现可疑的IP地址,配置相应条目拒绝这些IP地址访问服务器;
c.使用iptables搭建路由器,通过SNAT使用内网机器上网。
实验环境:
虚拟机CentOS-6.5
iptables服务端:hello2099.com IP:192.168.1.13 / 192.168.3.1
iptables客户端:hello2299.com IP:192.168.1.14 / 192.168.3.14
物理机IP:192.168.1.158
1.安装iptables
yum install iptables
chkconfig iptables on
yum install iptables
chkconfig iptables on
2.查看iptables并启动
iptables -nvL
service iptables start
iptables -nvL
service iptables start
3.设置策略保护WEB服务器
配置以下策略:
iptables -A INPUT -i lo -j ACCEPT #放行环回口所有数据
iptables -A INPUT -p tcp –dport 22 -j ACCEPT#放行22端口所有数据,即放行SSH
iptables -A INPUT -p tcp –dport 21 -j ACCEPT#放行21端口所有数据,即放行FTP
iptables -A INPUT -p tcp –dport 80 -j ACCEPT #放行80端口所有数据,即放行HTTP
配置以下策略:
iptables -A INPUT -i lo -j ACCEPT #放行环回口所有数据
iptables -A INPUT -p tcp –dport 22 -j ACCEPT#放行22端口所有数据,即放行SSH
iptables -A INPUT -p tcp –dport 21 -j ACCEPT#放行21端口所有数据,即放行FTP
iptables -A INPUT -p tcp –dport 80 -j ACCEPT #放行80端口所有数据,即放行HTTP
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #允许已经建立tcp连接的包以及该连接相关的包通过
iptables -P INPUT DROP#设置INPUT链的默认策略为丢弃
查看iptables:
4.拒绝可疑IP地址(192.168.1.158)访问WEB服务器
增加以下策略到首行:
iptables -I INPUT -s 192.168.1.158 -p tcp –dport 22 -j DROP #拒绝192.168.1.158通过22端口的数据
iptables -I INPUT -s 192.168.1.158 -p tcp –dport 21 -j DROP#拒绝192.168.1.158通过21端口的数据
iptables -I INPUT -s 192.168.1.158 -p tcp –dport 80 -j DROP #拒绝192.168.1.158通过80端口的数据
在192.168.1.158通过http访问WEB服务器192.168.1.13的网站,已拒绝;
在192.168.1.14通过elinkshttp访问WEB服务器192.168.1.13的网站,可以正常访问。
5.SNAT环境配置
Server端新增一块网卡,IP设置为192.168.3.1 网卡属于Vmnet3;
Client IP地址192.168.1.14更改为192.168.3.14 网卡属于Vmnet3。
Server端可以访问外网;
而Clinet端不能访问外网。
Server端新增一块网卡,IP设置为192.168.3.1 网卡属于Vmnet3;
Client IP地址192.168.1.14更改为192.168.3.14 网卡属于Vmnet3。
Server端可以访问外网;
而Clinet端不能访问外网。
6.配置SNAT
启用内核路由转发功能:
echo “1” > /proc/sys/net/ipv4/ip_forward
永久生效:
vim /etc/sysctl.conf
改:net.ipv4.ip_forward = 0
为:net.ipv4.ip_forward = 1
改完使配置生效:
sysctl -p
配置SNAT:
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT –to 192.168.1.13
7.验证
Clinet端可以ping通192.168.3.1和192.168.1.13;
Clinet端可以访问外网。