CentOS下配置防火牆 配置nat轉寄服務

來源:互聯網
上載者:User

今天新來了一台伺服器,要做跳板機,把以前的代碼粘貼複製,結果問題來了,怎麼也轉寄不了,

百思不明,後來只好一點點尋找。首先尋找網路,

發現網路沒有問題,內網 外網,雙網卡 網關均沒有問題,

於是只好百度搜尋問題,抓住根本 這裡是我找到的對自己很有用的文章就貼了出來,供日後再出現這樣的問題,以用來解決。

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防火牆的過程,希望大家都能掌握它!好好學習,黃金萬兩不如一技之長。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.