iptables网络服务的搭建和配置

本文详细介绍iptables的基本概念、使用场景及配置方法。通过多个实际案例演示如何利用iptables进行包过滤、端口限制、服务开放等操作,并提供了两个iptables配置脚本实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一部分:理论

一.   什么是iptables?

iptableslinux的非常重要的一个组件,它的主要作用是包过滤,即防火墙的功能。

二.   在哪里可能用到iptables ?

  1. 企业当中用iptables实现路由器或防火墙

  2. 企业当中用linux作为服务器操作系统

  3. IDC机房中的服务器。

三.   为什么要用iptables

  1. 成本低。用公司里淘汰的电脑做一台路由器,节省开支。

  2. 速度快。转发效率高。

  3. 功能强大:可以做包过滤,可以做nat转换,可以减轻DOS攻击等等。

四.iptables的组成

    由三个表组成:flter   nat    mangle

五. iptables表的组成

filter(默认)包括三个链:INPUT OUTPUT FORWARD

 nat (转换)包括三个链:PREROUTING OUTPUT POSTROUTING

mangle(服务质量等)包括五个链:PREROUTING INPUT OUTPUT FORWARD POSTROUTING

 .iptables图解

. iptables服务启动方式

A . /etc/rc.d/init.d/iptables  start

B. service  iptables    start

  iptables配置文件与策略设置文件

iptables配置文件  /etc/sysconfig/iptables-config

策略设置文件     /etc/sysconfig/iptables

iptables服务的启动与停止

iptables服务缺省自动启动

可通过启动脚本手工启动和停止iptables服务

# service iptables start

. 基本命令操作命令

v  Iptables

v  -A 增加一个规则

v  -D 删除规则

v  -R 替换(指定行上替换)

v  -I 插入

v  -L 显示所有规则

v  -F 删除所有规则

v  -P 默认策略

v  --line-numbers显示行号

. 基本命令匹配选项

  -p 指定使用的协议 !号排除

--src IP地址

--dst 目的地址

--in-interface 选择网卡

--fragment 数据包分段

--sport 源端口

--dport 目的端口

--state 状态(RELATED,ESTABLISHED)

十一  Iptables默认策略(重点掌握)

v  Iptables  -P INPUT ACCEPT/DROP

v  Iptables  -P OUTPUT ACCEPT/DROP

v  Iptables  -P FORWARD ACCEPT/DROP

注意:修改默认过滤规则(默认是ACCEPT我们全部修改成DROP)

十二.具体例子

v  防止ping             Iptables -A INPUTp icmp j DROP

v  限制某个端口

 iptables I INPUT p tcp --dport  21 j DROP

v  注意:修改默认过滤规则的时候一定要先把远程ssh打开

v  开启ftp服务

Iptables A INPUT p tcp --dport 21 j ACCEPT

 

 

实验脚本1

2.编辑一脚本文件
[root@localhost]# vi  /bin/firewall.sh

文件内容如下:

 

#!/bin/bash 
echo "Starting iptables rules..."    //显示启动iptables信息

 

echo  "1"  >  /proc/sys/net/ipv4/ip_forward     //启动linux路由功能

 

iptables  -F      //清空所有规则
iptables  -X     //清空所有自定义规则
iptables  -Z     //清空计数器

 

iptables  -P  FORWARD   DROP     //定义默认的转发策略为丢弃
iptables  -P  INPUT   DROP         //定义默认的接收策略为丢弃
iptables  -P  OUTPUT   DROP       //定义默认的发送策略为丢弃

 

//允许访问DNS服务器的往返数据包
iptables  -A  FORWARD  -p  udp  -d  192.168.10.1  --dport  53    -j  ACCEPT
iptables  -A  FORWARD  -p  udp  -s  192.168.10.1  --sport  53    -j  ACCEPT
iptables  -A  FORWARD  -p  tcp  -d  192.168.10.1  --dport  53    -j  ACCEPT
iptables  -A  FORWARD  -p  tcp  -s  192.168.10.1  --sport  53    -j  ACCEPT
//允许访问WEB服务器的往返数据包
iptables  -A  FORWARD  -p  tcp  -d  192.168.10.1  --dport  80    -j  ACCEPT
iptables  -A  FORWARD  -p  tcp  -s  192.168.10.1  --sport  80    -j  ACCEPT

 

//允许访问FTP服务器的往返数据包通过

 

//允许本机与外部主机互ping
iptables  -A  INPUT  -p  icmp  --icmp-type  echo-request  -j  ACCEPT
iptables  -A  INPUT  -p  icmp  --icmp-type  echo-reply  -j  ACCEPT
iptables  -A  OUTPUT  -p  icmp  --icmp-type  echo-request  -j  ACCEPT
iptables  -A  OUTPUT  -p  icmp  --icmp-type  echo-reply  -j  ACCEPT
实验脚本2
iptables  -F
iptables  -X
iptables  -Z
#------------------------default  rule ------------------------------
iptables -P  INPUT  DROP
iptables -P  OUTPUT  DROP
iptables -P  FORWARD  DROP
#------------------------ssh  rule -------------------------------------------
iptables -t filter -A   INPUT  -i  eth0 -p tcp --dport  22  -j  ACCEPT
iptables -t filter -A  OUTPUT  -o  eth0 -p tcp --sport  22  -j  ACCEPT
#------------------------www-ftp-mail-dns  rule --------------------------------
iptables -t filter -A   INPUT  -i   eth0 -p tcp --dport  80     -j ACCEPT
iptables -t filter -A   OUTPUT -o  eth0 -p  tcp --sport  80     -j ACCEPT
iptables -t filter -A   INPUT  -i   eth0 -p tcp --dport  21     -j ACCEPT
iptables -t filter -A   INPUT  -i   eth0 -p tcp --dport  20     -j ACCEPT
iptables -t filter -A   OUTPUT -o  eth0 -p  tcp --sport  21     -j ACCEPT
iptables -t filter -A   OUTPUT -o  eth0 -p  tcp --sport  20     -j ACCEPT
iptables -t filter -A   INPUT -i  eth0  -p tcp  --dport 25     -j ACCEPT
iptables -t filter -A   OUTPUT -o eth0  -p tcp  --sport 25     -j ACCEPT
iptables -t filter -A   INPUT -i  eth0  -p tcp  --dport 110     -j ACCEPT
iptables -t filter -A   OUTPUT -o eth0  -p tcp  --sport 110     -j ACCEPT
iptables -t filter -A   OUTPUT  -o  eth0  -p  udp   --dport 53     -j  ACCEPT
iptables -t filter -A   INPUT  -i   eth0  -p  udp  --sport 53     -j  ACCEPT
#-------------------------ICMP  rule ------------------------------------------
iptables -t  filter -A  INPUT -p    icmp    -j ACCEPT
iptables -t  filter -A  INPUT -p    icmp   -j ACCEPT
iptables -t  filter -A  INPUT -p    icmp   -j ACCEPT
iptables -t  filter -A  OUTPUT -p    icmp   -j ACCEPT
iptables -t  filter -A  OUTPUT -p    icmp   -j ACCEPT
iptables -t  filter -A  OUTPUT -p    icmp   -j ACCEPT
iptables -t  filter -A  OUTPUT -p    icmp   -j ACCEPT
允许ftp访问,
主动模式:
在配置文件中加入:
pasv_enable=no(默认yes
防火墙设置:
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --sport 20:21 -j ACCEPT
被动模式:
在配置文件中加入:
pasv_enable=yes (默认yes
pasv_min_port=40000
pasv_max_port=41000
防火墙设置:
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --dport 40000:41000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 40000:41000 -j ACCEPT
3.给/bin/firewall.sh设置可执行权限
[root@localhost]# chmod  755  /bin/firewall.sh

 

4.执行/bin/firewall.sh
[root@localhost]#  /bin/firewall.sh

 

5.让计算机下次启动时自动执行/bin/firewall.sh
[root@localhost]# echo    ‘/bin/firewall.sh’  >>  /etc/rc.local
附加实验
如何通过iptables开启ftp服务,包括主动和被动.

 

iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.1.1.1-1.1.1.222

 

 

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 81   -j   DNAT --to 192.168.0.2:80


本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/263904,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值