CentOS下配置iptables防火墻
linux NAT(iptables)配置
CentOS下配置iptables
1,vim /etc/sysconfig/network 這里可以更改主機(jī)名稱。
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=BGI-TJ.localdomain
GATEWAY=192.168.11.1(超算網(wǎng)關(guān))
2.vim /etc/sysconfig/network-scripts/ifcfg-eth0 第一塊網(wǎng)卡。
Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=192.168.11.2(公網(wǎng)地址)
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.11.1 (可不設(shè)前面已經(jīng)設(shè)置)
3.vim /etc/sysconfig/network-scripts/ifcfg-eth1 網(wǎng)卡2,就是內(nèi)網(wǎng)
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth1
BOOTPROTO=static
HWADDR=A4:BA:DB:43:XX:XX
IPADDR=192.168.136.1(內(nèi)網(wǎng)地址)
NETMASK=255.255.255.0
ONBOOT=yes
4.vim /etc/sysctl.conf 這里是重點(diǎn) 配置路由轉(zhuǎn)發(fā),路由開啟等都要用到。
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
修改為
# Controls IP packet forwarding
net.ipv4.ip_forward = 1 允許內(nèi)置路由
5.sysctl -p 更新
6.service network restart 從啟網(wǎng)卡
7, 如果找不到 另一塊網(wǎng)卡 可以改 加載。
http://www.cngr.cn/article/63/390/2006/2006071812486.shtml
/etc/network/interfaces 兩塊網(wǎng)卡 的內(nèi)容 可以編輯
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
默認(rèn)是第一塊網(wǎng)卡,可以設(shè)置兩塊同時(shí)開啟
8.iptables -F
9.iptables -t nat -A POSTROUTING -s 192.168.136.0/24 -o eth0 -j SNAT --to 192.168.11.2 轉(zhuǎn)發(fā) 到11網(wǎng)段。
10./etc/rc.d/init.d/iptables save 或者 service iptables save
11.service iptables restart
12.如果發(fā)現(xiàn)DNS無法解析,請輸入下列命令 防火墻的問題 不用想。先都通過在根據(jù)配置更改。
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
默認(rèn)為:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
會(huì)影響許多功能的使用。
就是ip 跳板,從一個(gè)ip 調(diào)到你想給大家使用的機(jī)器(屏蔽你不想直接用的口)端口鏡像
iptables -t nat -A PREROUTING -d x.x.x.x(公網(wǎng)IP) -p tcp --dport 2200(端口號(hào)) -j DNAT --to 192.168.3.202:22(內(nèi)網(wǎng)ip:內(nèi)網(wǎng)IP端口)NAT默認(rèn)路由
ip route add 192.168.6.0/24 via 192.168.11.2
或者 加一條網(wǎng)關(guān) 默認(rèn)給你 想跳的ip 網(wǎng)段ip route add -net 192.168.6.0/24 gw 192.168.11.1
dev eth0 (那個(gè)網(wǎng)卡必須能與你想跳的網(wǎng)絡(luò)通) 比如 192.168.11.0/24 與 192.168.6.0/24 互通。
說了這么多大家 新手很糊涂是吧呵呵。下面我們來實(shí)踐一下吧 。
1. 準(zhǔn)備工作
1.1 CentOS Final安裝完畢,將不需要的服務(wù)停止
1.2 修改主機(jī)名:
1.2.1 /etc/sysconfig/network
1.2.2 /etc/hosts
1.3 網(wǎng)卡設(shè)置
1.3.1 單個(gè)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 #設(shè)置地址段的起始IP
IPADDR_END=192.168.136.100 #設(shè)置地址段的結(jié)束IP
GATEWAY=192.168.136.1
NETMASK=255.255.255.0
CLONENUM_START=”20” #設(shè)置虛擬接口(CLONE–克?。┑钠鹗肌熬幪?hào)”在本例中,將從20開始,21,22,23……
NO_ALIASROUTING=yes #該選項(xiàng)可以設(shè)置在主配置文件中(ifcfg-eth0)
#虛擬接口可以繼承主配置文件中的設(shè)置,其作用是避免虛擬接口在從新定義路由信息,導(dǎo)致路由訪問緩慢的問題。
1.2.3 命令方式
ip addr add 192.168.136.0/24 dev $OUTGOING
1.4 路由設(shè)置
1.4.1
#vi /etc/sysconfig/static-routes
eth0(設(shè)備名) net(網(wǎng)絡(luò)地址) 192.168.0.0 (子網(wǎng))netmask 255.255.255.0 (網(wǎng)關(guān)地址)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 給系統(tǒng)主路由表配置網(wǎng)關(guān),這個(gè)網(wǎng)關(guān)是電信的網(wǎng)關(guān)
ip route add 0/0 via 22.22.22.1
1.4.3 添加路由規(guī)則,讓所有通向網(wǎng)通的數(shù)據(jù)查詢標(biāo)示為11的路由表,增加一個(gè)網(wǎng)通提供的默認(rèn)網(wǎng)關(guān)。
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
要注意的是,在配置網(wǎng)卡的時(shí)候,先不要配置網(wǎng)關(guān),不要使用老的ifconfig命令來配置網(wǎng)關(guān),而要使用iproute2來配置網(wǎng)關(guān),否則會(huì)造成沖突,或者 使用 ip route replace 命令來替換
ip route add 命令。
1.5 轉(zhuǎn)發(fā)設(shè)置
/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轉(zhuǎn)換
2.2.1 首先將從兩個(gè)WAN口出去的數(shù)據(jù)包進(jìn)行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 轉(zhuǎn)換網(wǎng)絡(luò)。
iptables -t nat -A POSTROUTING -s 內(nèi)部IP地址/子網(wǎng) -o $OUTGOING -j SNAT --to $IPPOOL
2.1.3 一個(gè)網(wǎng)段的電信網(wǎng)通自動(dòng)切換
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走電信,其他默認(rèn)網(wǎng)通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(這個(gè)是添加到文件,執(zhí)行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(這個(gè)注意順序,用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 $接網(wǎng)通線路網(wǎng)卡的地址
# 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 轉(zhuǎn)發(fā)設(shè)置
/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轉(zhuǎn)換
2.2.1 首先將從兩個(gè)WAN口出去的數(shù)據(jù)包進(jìn)行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 內(nèi)部IP地址/子網(wǎng) -o $OUTGOING -j SNAT
--to $IPPOOL
2.1.3 一個(gè)網(wǎng)段的電信網(wǎng)通自動(dòng)切換
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走電信,其他默認(rèn)網(wǎng)通
# echo "200 DIANXIN" >> /etc/iproute2/rt_table(這個(gè)是添加到文件,執(zhí)
行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(這個(gè)注意順序,用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 $接
網(wǎng)通線路網(wǎng)卡的地址
2.3 保存
iptables-save -c >/etc/sysconfig/iptables
#——+——+——+——+——+——+——+——+——+——+——+——+——+——
在CentOS下配置iptables防火墻,是非常必要的。來我們學(xué)習(xí)如何配置!
我的博客中有提到防火墻絕提配置哦。
在Linux中設(shè)置防火墻,以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.關(guān)閉/開啟/重啟防火墻
/etc/init.d/iptables stop
#start 開啟
#restart 重啟
3.永久性關(guān)閉防火墻
chkconfig --level 35 iptables off
/etc/init.d/iptables stop
iptables -P INPUT DROP
4.打開主動(dòng)模式21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
5.打開被動(dòng)模式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一個(gè)管理端口和SSh的管理端口
需要注意的是,你必須根據(jù)自己服務(wù)器的情況來修改這個(gè)文件。
全部修改完之后重啟iptables:
service iptables restart
你可以驗(yàn)證一下是否規(guī)則都已經(jīng)生效:
iptables -L
通過文章的介紹,我們清楚的知道了CentOS 下配置iptables防火墻的過程,希望大家都能掌握它!好好學(xué)習(xí),黃金萬兩不如一技之長。
聯(lián)系客服