日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

centos 7配置firewall防火墙的地址伪装和端口转发实例

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos 7配置firewall防火墙的地址伪装和端口转发实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境如下圖所示,網關服務器和網站服務器都采用centos 7操作系統,網關服務器安裝3塊千兆網卡,分別連接Internet、企業內網、網站服務器。

  • 網關服務器連接互聯網卡ens33配置為公網IP地址,分配到firewall的external區域;連接內網網卡ens37地址為192.168.1.1,分配到firewall的trusted區域;連接服務器網卡ens38地址為192.168.2.1,分配到firewall的DMZ區域。
  • 網站服務器和網關服務器都通過SSH來遠程管理,為了安全,將SSH默認端口改為2234。
  • 網站服務器開啟https,過濾未加密的http流量。
  • 網站服務器拒絕ping,網關服務器拒絕來自互聯網上的ping。
  • 內網用戶需要通過網關服務器共享上網。
  • 互聯網用戶需要訪問網站服務器。

一、開始基本的環境配置:

1、在網關服務器上配置網卡地址:

[root@localhost network-scripts]# ip addr #查看已配置完成的IP地址信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP 1000link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ffinet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::2695:e1d7:cfa2:b427/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP 1000link/ether 00:0c:29:9a:09:a2 brd ff:ff:ff:ff:ff:ffinet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::ac5f:6d92:f29a:6852/64 scope link noprefixroute valid_lft forever preferred_lft forever 4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP 1000link/ether 00:0c:29:9a:09:ac brd ff:ff:ff:ff:ff:ffinet 192.168.2.1/24 brd 192.168.2.255 scope global noprefixroute ens38valid_lft forever preferred_lft foreverinet6 fe80::e21e:7093:d418:a0a3/64 scope link noprefixroute valid_lft forever preferred_lft forever

2、開啟網關服務器的路由轉發功能。

root@localhost network-scripts]# vim /etc/sysctl.conf ................... net.ipv4.ip_forward = 1 [root@localhost network-scripts]# sysctl -p net.ipv4.ip_forward = 1

3、配置web服務器的網卡地址。

[root@localhost ~]# ip addr #查看已配置完成的IP地址信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 1000link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ffinet 192.168.2.10/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@localhost ~]# route -n #查看網關信息 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 ens33.............................

二、網站服務器環境搭建:

[root@localhost ~]# systemctl start firewalld #啟動防火墻 [root@localhost ~]# yum -y install httpd mod_ssl #安裝httpd和mod_ssl [root@localhost ~]# systemctl start httpd #啟動httpd服務 [root@localhost ~]# systemctl enable httpd #設置為開機自啟動 [root@localhost ~]# vim /var/www/html/index.html #新建網站測試首頁 <h1>this is intranet web test </h1> [root@localhost ~]# vim /etc/ssh/sshd_config #更改SSH的偵聽端口(需關閉SELinux):................ Port 2234................ [root@localhost ~]# systemctl restart sshd

三、在網站服務器上配置firewalld防火墻:

1、設置默認區域為dmz區域:

[root@localhost ~]# firewall-cmd --set-default-zone=dmz success

2、為dmz區域打開https服務并添加tcp的2344端口:

[root@localhost ~]# firewall-cmd --zone=dmz --add-service=https --permanent success [root@localhost ~]# firewall-cmd --zone=dmz --add-port=2234/tcp --permanent success

3、禁止ping:

[root@localhost ~]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent success

4、因為已經更改了預定義SSH服務的默認端口,所以將預定義SSH服務移除:

[root@localhost ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent success

5、重新加載firewalld配置,并查看之前的配置:

[root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# firewall-cmd --list-all dmz (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: httpsports: 2234/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: echo-requestrich rules:

四、在網關服務器上配置firewalld防火墻:
1、將網卡添加至指定區域:

[root@localhost /]# systemctl start firewalld #啟用防火墻 [root@localhost /]# firewall-cmd --set-default-zone=external #設置默認區域為external success [root@localhost /]# firewall-cmd --change-interface=ens37 --zone=trusted #將ens37添加至trusted區域 The interface is under control of NetworkManager, setting zone to 'trusted'. success [root@localhost /]# firewall-cmd --change-interface=ens38 --zone=dmz #將ens38添加至dmz區域 The interface is under control of NetworkManager, setting zone to 'dmz'. success

2、查看配置,并將配置保存到文件中,成為永久配置:

[root@localhost /]# firewall-cmd --get-active-zones dmzinterfaces: ens38 externalinterfaces: ens33 trustedinterfaces: ens37 [root@localhost /]# firewall-cmd --runtime-to-permanent #將 當前配置保存到文件中 success

3、在企業內網測試機上訪問網站服務器,可以成功訪問:

4、更改SSH的偵聽端口,并重啟服務(需關閉SELinux):

[root@localhost ~]# vim /etc/ssh/sshd_config ................ Port 2234................ [root@localhost ~]# systemctl restart sshd

5、配置external區域添加tcp的2234端口:

[root@localhost /]# firewall-cmd --zone=external --add-port=2234/tcp --permanent success

6、配置external區域移除SSH服務:

[root@localhost /]# firewall-cmd --zone=external --remove-service=ssh --permanent success

7、配置external區域禁止ping:

[root@localhost /]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent success

8、重新加載防火墻配置:

[root@localhost /]# firewall-cmd --reload success

以下開始測試ssh連接:

9、在互聯網測試機通過SSH連接網關服務器的外部接口地址的2234端口:

[root@localhost ~]# ssh -p 2234 100.1.1.10 root@100.1.1.10's password: Last login: Tue Jun 18 05:34:03 2019 from 100.1.1.20 [root@localhost ~]#

10、使用內網測試機SH登錄web網站服務器的2234端口:

[root@localhost /]# ssh -p 2234 192.168.2.10 root@192.168.2.10's password: Last login: Tue Jun 18 05:40:25 2019 from gateway [root@localhost ~]#

五、配置IP偽裝與端口轉發:
1、在公網測試機上搭建web服務,用于測試:

[root@localhost ~]# yum -y install httpd [root@localhost ~]# vim /var/www/html/index.html <h1> www.baidu.com</h1> [root@localhost ~]# systemctl enable httpd [root@localhost ~]# systemctl start httpd

2、在內部測試機和dmz的網站服務區都可以訪問外網的網站(若訪問不了,則可能是公網測試機的防火墻配置問題,可先將公網測試機的防火墻關閉,或放行相關服務的流量即可):

3、查看網關服務器的external區域是否開啟了地址偽裝:

[root@localhost ~]# firewall-cmd --list-all --zone=external externaltarget: defaulticmp-block-inversion: nointerfaces: sources: services: sshports: protocols: masquerade: yes #地址偽裝已啟用forward-ports: sourceports: icmp-blocks: rich rules:

4、只為源地址192.168.1.0/24網段的地址開啟地址IP偽裝。
在網關服務器上關閉external默認的地址偽裝,添加富規則,要求external區域內,源地址為192.168.1.0/24網段的地址開啟地址IP偽裝:

[root@localhost ~]# firewall-cmd --remove-masquerade --zone=external success [root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade' success

在dmz區域的網站服務器上測試,發現無法訪問外網網站,但是內網測試機可以:

[root@localhost ~]# curl http://100.1.1.20 curl: (7) Failed connect to 100.1.1.20:80; 沒有到主機的路由

5、配置端口轉發實現互聯網用戶可以訪問內部web服務器。

①在網關服務器下做如下配置:

[root@localhost ~]# firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10 success

②在互聯網測試機上訪問內網的web服務器成功,如下:

六、最后來一個使用富規則實現端口轉發:

上述配置完成后,若現在公司申請了一個新的公網ip地址100.1.1.15,那么就需要重新做端口轉發了:

1、將新申請的公網地址100.1.1.15配置在網關服務器的外網接口ens33上,作為第二個IP地址:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static IPADDR0=100.1.1.10 #從這行配置項開始,到下面第四行,屬于配置IP地址 PREFIX0=24 IPADDR1=100.1.1.15 PREFIX1=24 #只需改動以上四行即可 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 DEVICE=ens33 ONBOOT=yesZONE=external [root@localhost ~]# ifdown ens33 && ifup ens33 #重啟網卡,使配置生效 [root@localhost ~]# ip add #查看IP地址是否配置成功 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc UP group default qlen 1000link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ffinet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 100.1.1.15/24 brd 100.1.1.255 scope global secondary noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::2695:e1d7:cfa2:b427/64 scope link noprefixroute valid_lft forever preferred_lft forever

2、使用富規則配置端口轉發:

[root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=100.1.1.15/32 forward-port port=443 protocol=tcp to-addr=192.168.2.10' success

3、在互聯網測試機上訪問測試結果:

齊活.....................

轉載于:https://blog.51cto.com/14154700/2410203

總結

以上是生活随笔為你收集整理的centos 7配置firewall防火墙的地址伪装和端口转发实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。