CentOS下配置iptables防火墙

linux NAT(iptables)配置

CentOS下配置iptables

1,vim /etc/sysconfig/network   这里可以更改主机名称。

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=BGI-TJ.localdomain 
GATEWAY=192.168.11.1(超算网关)

2.vim /etc/sysconfig/network-scripts/ifcfg-eth0  第一块网卡。

Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=192.168.11.2(公网地址)
NETMASK=255.255.255.0
ONBOOT=yes

GATEWAY=192.168.11.1   (可不设前面已经设置)

3.vim /etc/sysconfig/network-scripts/ifcfg-eth1  网卡2,就是内网

# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth1
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=192.168.136.1(内网地址)
NETMASK=255.255.255.0
ONBOOT=yes

4.vim /etc/sysctl.conf  这里是重点 配置路由转发,路由开启等都要用到。

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

修改为

# Controls IP packet forwarding
net.ipv4.ip_forward = 1    允许内置路由

5.sysctl -p    更新

6.service network restart   从启网卡

7, 如果找不到 另一块网卡 可以改 加载。

http://www.cngr.cn/article/63/390/2006/2006071812486.shtml

/etc/network/interfaces  两块网卡 的内容 可以编辑

auto eth0
iface eth0 inet static
       address 192.168.18.2
       netmask 255.255.255.0
       network 192.168.18.0
       gateway  192.168.18.1

auto eth1
iface eth1 inet static
       address 172.17.94.93
       netmask 255.255.255.0
       broadcast 172.17.94.255
       gateway 172.17.94.254

默认是第一块网卡,可以设置两块同时开启

8.iptables -F

9.iptables -t nat -A POSTROUTING -s 192.168.136.0/24 -o eth0 -j SNAT --to 192.168.11.2 转发 到11网段。

10./etc/rc.d/init.d/iptables save  或者 service iptables save

11.service iptables restart

12.如果发现DNS无法解析,请输入下列命令 防火墙的问题 不用想。先都通过在根据配置更改。

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P INPUT ACCEPT

/etc/rc.d/init.d/iptables save

service iptables restart

iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

iptables -A FORWARD -p tcp --dport 22 -j ACCEPT

iptables -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -A FORWARD -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

iptables -A FORWARD -p udp --dport 110 -j ACCEPT

iptables -A FORWARD -p tcp --dport 143 -j ACCEPT

iptables -A FORWARD -p udp --dport 143 -j ACCEPT

iptables -A FORWARD -p tcp --dport 993 -j ACCEPT

iptables -A FORWARD -p udp --dport 993 -j ACCEPT

iptables -A FORWARD -p tcp --dport 995 -j ACCEPT

iptables -A FORWARD -p udp --dport 995 -j ACCEPT

service iptables save

service iptables restart

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -p tcp -j ACCEPT

iptables -A FORWARD -p udp -j ACCEPT

iptables -A FORWARD -p tcp --dport 1:65534 -j ACCEPT

service iptables save

service iptables restart

sysctl -p
service network restart
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.*.*/24 -o eth0 -j SNAT --to ip地址。
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
service iptables save
service iptables restart

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -p tcp --dport 1:65534 -j ACCEPT
iptables -A FORWARD -p udp --dport 1:65534 -j ACCEPT
service iptables save
service iptables restart

默认为:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT   ACCEPT

会影响许多功能的使用。

就是ip 跳板,从一个ip 调到你想给大家使用的机器(屏蔽你不想直接用的口)端口镜像

iptables -t nat -A PREROUTING -d x.x.x.x(公网IP) -p tcp --dport 2200(端口号) -j DNAT --to 192.168.3.202:22(内网ip:内网IP端口)NAT默认路由

ip route add 192.168.6.0/24  via 192.168.11.2

或者 加一条网关 默认给你 想跳的ip 网段ip route add  -net 192.168.6.0/24  gw 192.168.11.1

dev eth0  (那个网卡必须能与你想跳的网络通)  比如 192.168.11.0/24  与 192.168.6.0/24 互通。

说了这么多大家 新手很糊涂是吧呵呵。下面我们来实践一下吧 。

1. 准备工作

1.1 CentOS Final安装完毕,将不需要的服务停止

1.2 修改主机名:
1.2.1 /etc/sysconfig/network
1.2.2 /etc/hosts

1.3 网卡设置
1.3.1 单个IP /etc/sysconfig/network-scripts/ifcfg-eth0
1.3.2 IP段
#cd  /etc/sysconfig/network-scripts/
#cp -a ifcfg-eth0  ifcfg-eth0-range0
#vi ifcfg-eth0-range0
DEVICE=eth0-range0
IPADDR_START=192.168.136.2          #设置地址段的起始IP
IPADDR_END=192.168.136.100          #设置地址段的结束IP
GATEWAY=192.168.136.1
NETMASK=255.255.255.0
CLONENUM_START=”20”            #设置虚拟接口(CLONE–克隆)的起始“编号”在本例中,将从20开始,21,22,23……
NO_ALIASROUTING=yes               #该选项可以设置在主配置文件中(ifcfg-eth0)
#虚拟接口可以继承主配置文件中的设置,其作用是避免虚拟接口在从新定义路由信息,导致路由访问缓慢的问题。
1.2.3 命令方式
ip addr add 192.168.136.0/24 dev $OUTGOING

1.4 路由设置
1.4.1
#vi /etc/sysconfig/static-routes
eth0(设备名) net(网络地址) 192.168.0.0 (子网)netmask 255.255.255.0 (网关地址)gw 192.168.0.1
a. /usr/sysconfig/network-scripts/route-eth0
10.0.2.0/24 via 192.168.0.144
10.0.3.0/24 via 192.168.0.144
10.0.4.0/24 via 192.168.0.144
1.4.2 给系统主路由表配置网关,这个网关是电信的网关
ip route add 0/0 via 22.22.22.1
1.4.3 添加路由规则,让所有通向网通的数据查询标示为11的路由表,增加一个网通提供的默认网关。
ip route add 0/0 via 11.11.11.1 table 11
ip rule add to 60.0.0.0/13 table 11
ip rule add to 60.8.0.0/15 table 11
ip rule add to 60.10.0.0/16 table 11
要注意的是,在配置网卡的时候,先不要配置网关,不要使用老的ifconfig命令来配置网关,而要使用iproute2来配置网关,否则会造成冲突,或者 使用 ip route replace 命令来替换

ip route add 命令。

1.5 转发设置 
/etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300

1.6 resolv.conf
nameserver 10.0.0.1

2. iptables配置
2.1 iptables初始化
iptables -t nat -F
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -N NEWCONN
2.2 NAT转换
2.2.1 首先将从两个WAN口出去的数据包进行IP伪装masquerade,主要是不让对面知道你来自于哪里。
/sbin/iptables -t nat -A postrouting -o eth1 -j masquerade
/sbin/iptables -t nat -A postrouting -o eth2 -j masquerade
2.1.2 SNAT 转换网络。
iptables -t nat -A POSTROUTING -s 内部IP地址/子网 -o $OUTGOING -j SNAT --to $IPPOOL
2.1.3 一个网段的电信网通自动切换
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3
***
***
***
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 218.62.3.3
2.1.4 访问222.222.5.0/15和222.240.0.0/13走电信,其他默认网通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(这个是添加到文件,执行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看)
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址
# ip route flush cache

2.1.6 添加相似路由
if [ "$ALLOW_ACCESS_CLIENT" != "" ] ; then
   for LAN in ${ALLOW_ACCESS_CLIENT}; do
   {
       iptables -A FORWARD -p tcp -m multiport -s ${LAN} -o $ETH_WAN --dport $PORT -j ACCEPT
       iptables -A FORWARD -p udp -m multiport -s ${LAN} -o $ETH_WAN --dport $PORT -j ACCEPT
       iptables -A FORWARD -p tcp -m multiport -i $ETH_WAN --sport $PORT -j ACCEPT
       iptables -A FORWARD -p udp -m multiport -i $ETH_WAN --sport $PORT -j ACCEPT
   }
   done
fi

2.3 保存
iptables-save -c >/etc/sysconfig/iptables

1.5 转发设置 
/etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300

2. iptables配置
2.1 iptables初始化
iptables -t nat -F
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -N NEWCONN
2.2 NAT转换
2.2.1 首先将从两个WAN口出去的数据包进行IP伪装masquerade
/sbin/iptables -t nat -A postrouting -o eth1 -j masquerade
/sbin/iptables -t nat -A postrouting -o eth2 -j masquerade
2.1.2 SNAT
iptables -t nat -A POSTROUTING -s 内部IP地址/子网 -o $OUTGOING -j SNAT

--to $IPPOOL
2.1.3 一个网段的电信网通自动切换
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT

--to 222.168.1.3
***
***
***
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to

218.62.3.3
2.1.4 访问222.222.5.0/15和222.240.0.0/13走电信,其他默认网通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(这个是添加到文件,执

行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查

看)
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d

222.222.5.0/15 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d

222.240.0.0/13 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d

222.222.5.0/15 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d

222.240.0.0/13 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接

网通线路网卡的地址

2.3 保存
iptables-save -c >/etc/sysconfig/iptables

#——+——+——+——+——+——+——+——+——+——+——+——+——+——

在CentOS下配置iptables防火墙,是非常必要的。来我们学习如何配置!

我的博客中有提到防火墙绝提配置哦。

在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件:

vi /etc/sysconfig/iptables

通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:

1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

2.关闭/开启/重启防火墙

/etc/init.d/iptables stop

#start 开启

#restart 重启

3.永久性关闭防火墙

chkconfig --level 35 iptables off

/etc/init.d/iptables stop

iptables -P INPUT DROP

4.打开主动模式21端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

5.打开被动模式49152~65534之间的端口

iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

注意:

一定要给自己留好后路,留VNC一个管理端口和SSh的管理端口

需要注意的是,你必须根据自己服务器的情况来修改这个文件。

全部修改完之后重启iptables:

service iptables restart

你可以验证一下是否规则都已经生效:

iptables -L

通过文章的介绍,我们清楚的知道了CentOS 下配置iptables防火墙的过程,希望大家都能掌握它!好好学习,黄金万两不如一技之长。

CentOS下配置防火墙 配置nat转发服务的更多相关文章

  1. centos下的防火墙配置

    1,查看防火墙文件: vim /etc/sysconfig/iptables # Generated by iptables-save v1. :: *filter :INPUT ACCEPT [:] ...

  2. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  3. centOS下yum安装配置samba

     centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...

  4. [转帖]CentOS下iRedMail安装配置

    CentOS下iRedMail安装配置 中文名为艾瑞得邮件,由 rhms 项目更名而来.是针对 Linux 设计的邮件服务器解决方案,是在操作系统安装好后使用的一套 shell 脚本,用于快速部署一套 ...

  5. CentOS下OpenVPN客户端配置

    CentOS下OpenVPN客户端配置 http://liumissyou.blog.51cto.com/4828343/1762683 1,安装 yum install openvpn -y mkd ...

  6. CentOS下Redisserver安装配置

    1.CentOS 6.6下Redis安装配置记录 2.CentOS下Redisserver安装配置

  7. CentOS 下做端口映射/端口转发

    CentOS 下做端口映射/端口转发==[实现目标]==================[服务器A]有2块网卡,一块接内网,一块接外网,[服务器B]只有一块内网网卡:访问[服务器A]的7890端口跳转 ...

  8. CentOS下禁止防火墙

    CentOS下禁止防火墙 1.使用如下命令安装iptables-services. yum install -y iptables-services 2.关闭防火墙. service iptables ...

  9. CentOS 下 LNMP 环境配置

    安装配置 Nginx 安装配置 MySQL 安装配置 PHP Nginx 与 PHP-FPM 集成 环境配置验证   LNMP 环境代表 Linux 系统下 Nginx + MySQL + PHP 网 ...

随机推荐

  1. You-Get 一键下载全网视频资源

      下载视频 无论是单纯的下载视频收藏,还是以便离线收看,都离不开“下载”,好的工具让你把注意力更好的放在视频的本身,而不用考虑要如何下载视频.下载视频从来不乏方法,之前也介绍了下载 Youtube ...

  2. 安装android studio时候弹出unable to access android sdk add-on list解决方法

    本文转载自:http://www.cnblogs.com/rancvl/p/6081791.html Android Studio First Run 检测 Android SDK 及更新,由于众所周 ...

  3. java代码从键盘输入次数,然后进行运算-----菜鸟如此菜

    package com.aaa; import java.util.Scanner; // //求两数相加的和.从键盘输入 public class ftwert { public static vo ...

  4. java排序。。简单的冒泡排序

    总结:一种简单的交换顺序,从数左边开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将较大值后移,每经过一轮排序后,值最大的元素将移到末尾, 此时记下该元素的位置,下一轮排序只需比较到此位置即 ...

  5. python开发模块基础:time&random

    一,time模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块 常用方法1.(线程)推迟指定的时间运行.单位为秒. time.sleep(1) #括号内为整数 2.获取当前 ...

  6. AD9如何设置原点位置

    Edit --> Origin --> Set

  7. SQL Server2005中文版x64安装29506错误解决办法

    在使用SQL Server 2005简体中版安装时,使用X86(32位操作系统下)安装没有出现任何问题.可是在X64(64位操作系统下)安装过程没有出现问题,可是安装完成后却没有Microsoft S ...

  8. 笔记:Tid设计思维

    Tid设计思维 2017年7月19日TiD大会创新设计论坛 一.     设计思维实践: 为什么他能觉察你看不到的机会 1.    原因一:[觉察]与[看] 他(们)能“觉察”你“看”不到的机会,他们 ...

  9. select,poll,epoll,selectors

    一 了解select,poll,epoll IO复用:为了解释这个名词,首先来理解下复用这个概念,复用也就是共用的意思,这样理解还是有些抽象, 为此,咱们来理解下复用在通信领域的使用,在通信领域中为了 ...

  10. 大杀器TheFatRat

    项目地址:https://github.com/Screetsec/TheFatRat 安装TheFatRat root@sch01ar:/sch01ar# git clone https://git ...