热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS下配置防火墙配置nat转发服务

今天新来了一台服务器,要做跳板机,把以前的代码粘贴复制,结果问题来了,怎么也转发不了,百思不明,后来只好一点点查找。首先查找网络,发现网络没有问题,内网外网,双网卡网关均没有问题,于是只好百度搜索问题,抓住根本这里是我找到的对自己很有用的文章就贴了出来,供日后再出现这样的问题,以用来解决。CentOS下配置iptables防火墙linuxNAT(iptables)配置CentOS下

今天新来了一台服务器,要做跳板机,把以前的代码粘贴复制,结果问题来了,怎么也转发不了,

百思不明,后来只好一点点查找。首先查找网络,

发现网络没有问题,内网 外网,双网卡 网关均没有问题,

于是只好百度搜索问题,抓住根本 这里是我找到的对自己很有用的文章就贴了出来,供日后再出现这样的问题,以用来解决。

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防火墙的过程,希望大家都能掌握它!好好学习,黄金万两不如一技之长。



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
author-avatar
liunian007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有