iptables网络服务的搭建和配置

时间:2021-12-23 16:45:46
  第一部分:理论

一.   什么是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 OUTPUTFORWARD POSTROUTING

.iptables图解

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 OUTPUTACCEPT/DROP

v  Iptables  -P FORWARDACCEPT/DROP

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

十二.具体例子

v  防止ping             Iptables -A INPUT�Cp icmp �Cj DROP

v  限制某个端口

 iptables �CI INPUT �Cp tcp--dport  21 �Cj DROP

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

v  开启ftp服务

Iptables �CA INPUT �Cp tcp --dport 21 �Cj 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     -jACCEPT iptables -t filter -A   OUTPUT -o eth0 -p  tcp --sport  80     -jACCEPT iptables -t filter -A   INPUT -i   eth0 -p tcp --dport  21     -jACCEPT iptables -t filter -A   INPUT -i   eth0 -p tcp --dport  20     -jACCEPT iptables -t filter -A   OUTPUT -o eth0 -p  tcp --sport  21     -jACCEPT iptables -t filter -A   OUTPUT -o eth0 -p  tcp --sport  20     -jACCEPT 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 -jACCEPT iptables -A INPUT -p tcp --sport 20:21 -jACCEPT 被动模式: 在配置文件中加入: pasv_enable=yes (默认yes pasv_min_port=40000 pasv_max_port=41000 防火墙设置: iptables -F iptables -P INPUT DROP iptables -A INPUT -m state --stateESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --dport 20:21 -jACCEPT iptables -A OUTPUT -p tcp --sport 20:21 -jACCEPT iptables -A INPUT -p tcp --dport40000:41000 -j ACCEPT iptables -A OUTPUT -p tcp --sport40000: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 -s192.168.1.0/24 -j SNAT --to 1.1.1.1-1.1.1.222

 

 

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

 

                            

本文出自 “龙哥” 博客,转载请与作者联系!