成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CentOS+iptables+squid透明代理+防火墻設置

系統 Linux
本文詳細介紹了CentOS+iptables+squid透明代理+防火墻設置情況,具體的說明和配置方法都可以在文章里找到!

#p#CentOS+iptables+squid透明代理+防火墻設置問題困擾許多人們,我在這里幫大家集體解決下!

  =====================================================================

  相關資源:

  man.chinaunix.net,左下角有iptables的man,仔細看看。

  系統:

  CentOS4.2,三塊網卡,兩個內網,一個外網。雙至強,2GHz,2GB內存。服務器主要開了squid,sshd,其他的一律閉掉了。

  eth0:192.168.100.1

  eth1:192.168.168.12

  eth2:A.B.C.D ?? 外網地址

  =====================================================================

  squid設定能根據自己的情況來,我們假設其端口為3128,在三塊網卡上都有監聽(不要綁定某一個IP或網卡)。

  /etc/squid/squid.conf

  http_port 3128

  cache_mem 1000 MB

  cache_swap_low 90

  cache_swap_high 95

  cache_dir ufs /opt/cache/squid 8000 16 256

  cache_access_log /var/log/squid/access.log

  cache_store_log /var/log/squid/store.log

  dns_nameservers 210.77.192.88

  maximum_object_size 409600 KB

  maximum_object_size_in_memory 64000 KB

  emulate_httpd_log on

  ipcache_size 1024

  ipcache_low 90

  ipcache_high 95

  fqdncache_size 1024

  forwarded_for off

  coredump_dir /opt/cache/squid/coredump

  httpd_accel_port 80

  httpd_accel_host virtual

  httpd_accel_with_proxy on

  httpd_accel_single_host off

  httpd_accel_uses_host_header on

  acl all src 0.0.0.0/0

  acl lixiaedu100 src 192.168.100.0/24

  acl lixiaedu168 src 192.168.168.0/24

  http_access allow lixiaedu100

  http_access allow lixiaedu168

  http_access deny all

  cache_effective_user squid

  cache_effective_group squid

  cache_mgr

  zhaobing8181@163.com

  visible_hostname lixiaedu

#p#

  iptables設定。iptables的設定分為兩部分,一是怎么進行SNAT,二是在開設了squid的情況下怎么進行安全防護的問題。

  一、SNAT

  modprobe ip_tables

  modprobe iptable_nat

  modprobe iptable_filter

  modprobe ip_conntrack_ftp

  modprobe ip_nat_ftp

  加掛一些iptables的必要的模塊,以便調用。

  echo 1 > /proc/sys/net/ipv4/ip_forward

  打開“轉發”功能。讓數據包能在不同的網卡間“流動”。

  iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth2 -j SNAT --to A.B.C.D

  iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -o eth2 -j SNAT --to A.B.C.D

  iptables -t nat -A PREROUTING -s 192.168.100.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

  iptables -t nat -A PREROUTING -s 192.168.168.0/24 -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

  上面這四句比較重要,是進行透明代理的關鍵。前兩句的作用是進行“源地址轉換”,也就是說要進行內網地址到外網地址的轉換。執行了這兩句,即使沒有squid,內網機器也能上網了。

  后面兩句是對從兩個內網網卡進入的、tcp協議的、目的端口號是80的,做“端口重定向”。重定向到3128端口。這樣,squid就能接到這個數據包了。

  OK!如果你的squid沒有問題,而且你也執行了上面的語句,并且沒有報錯。那就恭喜你,一個iptables+squid的透明代理做成了。如果你不相信,有兩個方法能測試:一是登錄:

  http://ipid.shat.net

  ,這是個國外網站,能顯示你的外網ip地址,更有是否被代理過。二是在一臺內網機器上下載一個文件,或看一頁圖片非常多而且較慢的網頁,然后轉到另一臺內網機器上下載同樣的文件或看剛才的圖片網頁。比

  較一下速度,就能感覺出來了。

  二、firewall

  如果你把這樣一臺服務器放到internet上,無異于是想“自殺”。防火墻沒有所有的保護機制和過濾功能。非常容易被各種攻擊所擊破。不要迷

  信Linux的安全性,網管員的安全意識要比空喊Linux安全重要得多。

  iptables -F

  iptables -X

  iptables -F -t mangle

  iptables -t mangle -X

  iptables -F -t nat

  iptables -t nat -X

  首先,把三個表清空,把自建的規則清空。

  iptables -P INPUT DROP

  iptables -P OUTPUT DROP

  iptables -P FORWARD ACCEPT

  設定INPUT、OUTPUT的默認策略為DROP,FORWARD為ACCEPT。

  iptables -A INPUT -i lo -j ACCEPT

  iptables -A OUTPUT -o lo -j ACCEPT

  先把“回環”打開,以免有不必要的麻煩。

  iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT

  iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT

  在所有網卡上打開ping功能,便于維護和檢測。

  iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPT

  iptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22 -j ACCEPT

  打開22端口,允許遠程管理。(設定了非常多的附加條件:管理機器IP必須是250,并且必須從eth0網卡進入)

  iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT

  iptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT

  iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT

  iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT

  上面這幾句是比較頭痛的,我做逐一解釋。

#p#

  iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT

  允許192.168.100.0/24網段的機器發送數據包從eth0網卡進入。如果數據包是tcp協議,而且目的端口是3128(因為REDIRECT已把80改為3128了。nat表的PREROUTING是在filter表的INPUT前面的。)的,再而且,數據包的狀態必須是NEW或ESTABLISHED的(NEW代表tcp三段式握手的“第一握”,換句話說就是,允許客戶端機器向服務器發出鏈接申請。ESTABLISHED表示通過握手已建立起鏈接),通過。

  iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT

  我們先來看這一句。目前你的數據包已進入到linux服務器防火墻上來了。squid需要代替你去訪問,所以這時,服務器就成了客戶端的角色,所以他要使用32768到61000的私有端口進行訪問。(大家會奇怪應該是1024到65535吧。其實CentOS版的linux所定義的私有端口是32768到61000的,你能通過cat /proc/sys/net/ipv4/ip_local_port_range,查看一下。)再次聲明:這里是squid以客戶端的身份去訪問其他的服務器,所以這里的源端口是32768:61000,而不是3128!

  iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT

  當然了,數據有去就有回。

  iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT

  數據包還得通過服務器,轉到內網網卡上。請注意,這里,是squid幫你去訪問了你想要訪問的網站。所以在內網中,你的機器是客戶端角色,而squid是服務器角色。這和剛才對外訪問的過程是不同的。所以在這里,源端口是3128,而不是32768:61000。

  iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT

  iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT

  當然,DNS是不可缺少的。

  iptables -A INPUT -i eth+ -p tcp --dport 80 -j LOG --log-prefix "iptables_80_alert" --log-level info

  iptables -A INPUT -i eth+ -p tcp --dport 21 -j LOG --log-prefix "iptables_21_alert" --log-level info

  iptables -A INPUT -i eth+ -p tcp --dport 22 -j LOG --log-prefix "iptables_22_alert" --log-level info

  iptables -A INPUT -i eth+ -p tcp --dport 25 -j LOG --log-prefix "iptables_25_alert" --log-level info

  iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j LOG --log-prefix "iptables_icmp8_alert" --log-level info

  當然了,來點日志記錄會對網管員有所幫助。

  至此,一個完整的訪問過程就被我們分析過了。本篇中最主要的就是要說明squid在對內網機器和外網服務器中扮演了兩種截然相反的角色。

  這對大家來說不太好理解。我也是摸索了一段時間才成功的。愿我的文章拋磚引玉,能引起大家的共鳴和思索。

  一點說明:最近見到過一種情況,就是squid無法啟動,或說起動起來幾秒鐘就自動停掉。messages中說有squid遇見了signal 25,所以停止。遇見這種問題,要查看squid的日志是不是太大了。我看了一下,access.log有1.6GB,store.log有2GB大小??磥硎侨罩廖募?。把兩個文件轉移或改名后就能了

通過文章大量的介紹,相信大家心中的困惑都得到解決了,還有什么不懂的問題,歡迎留言!

【編輯推薦】

責任編輯:趙鵬 來源: 網絡轉載
相關推薦

2011-03-16 12:46:29

CentOSiptables防火墻

2011-03-15 10:22:02

squidiptables

2010-03-31 17:43:44

CentOS防火墻

2011-03-17 16:00:57

2011-03-15 15:47:15

Iptables防火墻

2011-03-15 15:47:25

Squidiptables

2011-03-15 16:35:27

2011-03-15 17:25:38

2011-03-15 09:10:43

iptables防火墻

2011-03-15 17:18:45

2011-03-17 10:58:55

Linux防火墻Iptables入門

2018-07-02 09:18:11

Linuxiptables防火墻

2011-03-15 17:38:24

2010-07-05 14:39:59

2009-09-24 13:53:53

2009-12-21 14:44:06

2011-03-16 10:17:06

2011-03-15 10:48:47

2011-03-16 10:12:32

2010-01-07 14:12:11

Linux防火墻
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产一区二区三区不卡 | 日韩高清成人 | 亚洲日产精品 | 黄色大全免费看 | 中文字幕国产精品 | 久色激情 | 男女网站免费观看 | 久久综合国产精品 | 欧美一级免费 | 国产美女黄色 | 国产精品国产精品国产专区不卡 | 粉嫩av在线 | 国产视频精品免费 | 国产精品久久久久久二区 | 亚洲一区av | 久久久青草婷婷精品综合日韩 | 91欧美激情一区二区三区成人 | 黄色片网站国产 | 日日操夜夜操天天操 | 成人小视频在线观看 | 亚洲日韩中文字幕一区 | 久久国产精品偷 | 亚洲一区二区精品 | 无码国模国产在线观看 | 国产一区二区三区久久久久久久久 | 欧美一区二区三区四区在线 | 天堂成人国产精品一区 | wwwxxx日本在线观看 | 最新中文字幕 | 九九亚洲 | 美女黄频 | 国产精品入口久久 | 在线观看视频一区二区三区 | 波多野结衣精品在线 | 精品国产免费人成在线观看 | 亚洲午夜电影 | 精品视频在线观看 | 欧美一区二区三区高清视频 | 特级黄色毛片 | 女朋友的闺蜜3韩国三级 | 亚洲国产精品久久久久婷婷老年 |