モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

Squid の簡単な設定例

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2021/10/08
最終更新最終更新
2024/02/14
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    モバイルアプリを開発中。趣味でIoTガジェットも作っています。

    0
    ステッカーを贈るとは?

    HTTP Proxy として利用される squid について、設定例を記載します。

    localnet の定義

    127.0.0.1 に対しては localhost および to_localhost という組み込みの名称のキーワードが利用できます。その他のプライベートIP に対するキーワードは独自に定義する必要があります。

    acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
    acl localnet src 10.0.0.0/8  # RFC 1918 local private network (LAN)
    acl localnet src 100.64.0.0/10  # RFC 6598 shared address space (CGN)
    acl localnet src 169.254.0.0/16  # RFC 3927 link-local (directly plugged) machines
    acl localnet src 172.16.0.0/12  # RFC 1918 local private network (LAN)
    acl localnet src 192.168.0.0/16  # RFC 1918 local private network (LAN)
    acl localnet src fc00::/7        # RFC 4193 local private network range
    acl localnet src fe80::/10       # RFC 4291 link-local (directly plugged) machines
    
    acl to_localnet dst 0.0.0.1-0.255.255.255
    acl to_localnet dst 10.0.0.0/8
    acl to_localnet dst 100.64.0.0/10
    acl to_localnet dst 169.254.0.0/16
    acl to_localnet dst 172.16.0.0/12
    acl to_localnet dst 192.168.0.0/16
    acl to_localnet dst fc00::/7
    acl to_localnet dst fe80::/10
    

    許可するポートの定義

    Squid は HTTP Proxy です。Proxy 先となるサーバが待ち受ける TCP ポート番号を定義します。

    補足: SSH や FTP のクライアントは、それぞれのアプリケーション用の通信を HTTP 上で行なうことができます。

    acl Safe_ports port 80  # http
    acl Safe_ports port 21  # ftp
    acl Safe_ports port 443  # https
    acl Safe_ports port 70  # gopher
    acl Safe_ports port 210  # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280  # http-mgmt
    acl Safe_ports port 488  # gss-http
    acl Safe_ports port 591  # filemaker
    acl Safe_ports port 777  # multiling http
    
    acl SSL_ports port 443
    acl CONNECT method CONNECT
    

    http_access

    http_access は上から順番に評価されていきます。合致するルールが発生するまで評価されていきます。

    ポートおよびメソッドによる制限

    # Deny requests to certain unsafe ports
    http_access deny !Safe_ports
    
    # Deny CONNECT to other than secure SSL ports
    http_access deny CONNECT !SSL_ports
    
    • Safe_ports で定義されていない TCP PORT に対する HTTP リクエストの proxy を deny します。
    • 以下の二つの条件を AND で満たすような HTTP リクエストの proxy を deny します。
      • HTTP リクエストのメソッド が CONNECT である。
      • SSL_ports で定義されていない TCP PORT に対する通信である。

    補足: CONNECT は HTTP Proxy を介して SSL 通信を開始するためのメソッドです。

    localhost および localnet

    プライベートIP に対する HTTP リクエストの proxy を deny します。

    http_access deny to_localnet
    http_access deny to_localhost
    

    プライベートIP からの HTTP リクエストの proxy を allow します。

    http_access allow localnet
    http_access allow localhost
    

    既定値の設定

    http_access は上から順番に評価されていきますが、合致するルールが存在しない場合に deny するように指定しておきます。

    # And finally deny all other access to this proxy
    http_access deny all
    

    動作確認の例

    HTTP 200

    curl -sS --proxy http://localhost:3128 http://www.example.com:80
    

    HTTP 403

    curl -sS --proxy http://localhost:3128 http://127.0.0.1:80
    curl -sS --proxy http://localhost:3128 http://10.0.2.15:80
    

    to_localnet および to_localhost をコメントアウトして reload すると、以下のようにすべて HTTP 200 となります。http_access allow localhost のルールが適用されるためです。

    HTTP 200

    #http_access deny to_localnet
    #http_access deny to_localhost
    
    curl -sS --proxy http://localhost:3128 http://www.example.com:80
    curl -sS --proxy http://localhost:3128 http://127.0.0.1:80
    curl -sS --proxy http://localhost:3128 http://10.0.2.15:80
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    モバイルアプリを開発中。趣味でIoTガジェットも作っています。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • GCP Cloud Source Repositories に squid 経由でアクセスする設定例
        Squid は HTTP Proxy です。加えて、FTP over HTTP や SSH over HTTP といった技術を併用することで、FTP や SSH プロキシとしても機能します。本ページでは、 すべて HTTP 通信で GCP Cloud Source Repositories にアクセスする方法と、 SSH over HTTP を併用することで GCP Cloud Source Re...
        HARUTOHARUTO2/14/2024に更新
        いいねアイコン画像0
      • HTTP とは?簡単なまとめ
        HTTP (Hypertext Transfer Protocol) はTCP/IPにおけるアプリケーション層プロトコルのひとつです。大まかにはリクエストとレスポンスの二種類によるやりとり方法を定めています。 リクエスト 代表的なリクエストメソッドはGETとPOSTですが、他にもPUTやDELETEなどがあります。いずれもリクエストラインが一行目にきて、空白区切りで「リクエストメソッド、リクエスト...
        アクションずきんアクションずきん12/10/2018に更新
        いいねアイコン画像0
      • Android における非同期 HTTP 通信
        Android で利用される HTTP クライアントには Volley や OkHttp がありますが、ここでは Android プラットフォームに標準で導入されている [HttpsURLConnection](https://developer.android.com/reference/javax/net/ssl/Https
        パンダパンダ12/19/2019に更新
        いいねアイコン画像0
      • Scala HTTP 通信
        ビルドツールの設定 Dispatch を利用します。 pom.xml (maven) <dependency> <groupId>net.databinder.dispatch</groupId> <artifactId>dispatch-core</artifactId> <version>0.11.2</...
        したくんしたくん10/7/2018に更新
        いいねアイコン画像0
      • HTTP 経由でファイルシステムをマウント (WebDAV、davfs2)
        HTTP の拡張である WebDAV を利用すると、サーバ上のファイルシステムを HTTP で外部に公開できます。Debian9 を利用した設定例を記載します。HTTP サーバとしては Apache を利用します。 Apache の設定 必要なパッケージをインストールします。 sudo apt install apache2 公開するディレクトリを用意します。 sudo mkdir -p /dat...
        したくんしたくん12/14/2020に更新
        いいねアイコン画像0