ヘッダー画像

Synologyの「ProxyServer」コマンドラインでの設定方法

投稿 2022年6月12日 最終更新 2022年6月12日 専門用語多め

やりたいこと

プロキシのキャッシングにより、高速化を図りたい

セキュリティ的に危険そうなドメインを、アクセス拒否したい

自動化のためシェル(CUI)から設定したい

確認バージョン

これからの説明等は以下のバージョンでの説明です。

バージョンによって変わることがあるのでご了承ください。

型番 バージョン Proxy Server
DS218play 7.1-42661_update1 5.2.0-1103

設定ファイル構成

cache_setting_syno.conf

DSMでいう「キャッシュ」タブにあたる設定です。

/volume1/@appstore/ProxyServer/squid/etc/cache_setting_syno.conf

設定構成としては、シンプルに空白区切りで設定されています。

シンプルなので、DSMと見比べれば簡単にわかるかと思います。

DSM設定項目名 設定ファイル項目名
位置 cache_dir
ディスクキャッシュの最小ファイルサイズ minimum_object_size
ディスクキャッシュの最大ファイルサイズ maximum_object_size
キャッシュスワップの下限 cache_swap_low
キャッシュスワップの上限 cache_swap_high
キャッシュメモリのサイズ cache_mem
メモリキャッシュの最大ファイルサイズ maximum_object_size_in_memory

access_syno.conf

DSMでいう「アクセス」タブにあたる設定です。

その中でもアクセスを許可するか拒否するかの設定です。

/volume1/@appstore/ProxyServer/squid/etc/access_syno.conf

アクセス制御の設定になる部分は、複数設定ファイルをいじります。

その中ではシンプルな設定ファイルの一つです。

構成的には以下の通りになっています。

http_access [操作] syno_[連番]

[操作]は許可(allow)か拒否(deny)が入ります。

[連番]は登録順の連番が1から順に入ります。

最終的には以下のような設定になります。

http_access allow syno_1
http_access allow syno_2
http_access allow syno_3
http_access allow syno_4
http_access allow syno_5
http_access deny syno_6
http_access deny syno_7
http_access deny syno_8
http_access deny syno_9

acl_syno.conf

引き続きDSMでいう「アクセス」タブにあたる設定です。

その中でも「タイプ」と「IPまたはホスト名」の設定です。

/volume1/@appstore/ProxyServer/squid/etc/acl_syno.conf

構成的には以下の通りになっています。

acl syno_[連番] [タイプ] [IPまたはホスト名]

[連番]はaccess_syno.confで設定した番号が入ります。

[IPまたはホスト名]は、入力した通りに入ります。
※ホスト名は最初に「.」(ドット)が自動で入ります。

[タイプ]は以下のルールで入ります。

項目 タイプ
ソースIP src
ソースのホスト名 srcdomain
ディスティネーションIP dst
ディスティネーションのホスト名 dstdomain

最終的には以下のような設定になります。

acl syno_1 src 10.0.0.0/8 172.16.0.0/12
192.168.0.0/16 fc00::/7 fe80::/10
acl syno_2 src 192.168.1.1
acl syno_3 srcdomain .allow1
acl syno_4 dst 192.168.1.2
acl syno_5 dstdomain .arrow2
acl syno_6 src 192.168.1.3
acl syno_7 srcdomain .deny1
acl syno_8 dst 192.168.1.4
acl syno_9 dstdomain .deny2

setting_syno.json

引き続きDSMでいう「アクセス」タブにあたる設定です。

そして一緒に残りの他の設定がまとまっています。

/volume1/@appstore/ProxyServer/squid/etc/setting_syno.json

設定の数が多いのでややこしいですが、jsonなのでわかりやすいかと思います。

アクセスに関しては、上記設定とDSMを見ればなんとなくわかるかと思います。

それ以外は以下の通りです。

DSM設定項目名 設定ファイル項目名
認証 authentication
キャッシュ cache
設定/設定 general
設定/ログ log
不明(プロキシの有効化?) transparent
プロキシの導入 wpad

transparentがDSMにもない設定で、何なのかは不明です・・・。

最終的には以下のような設定になります。

{
  "access": {
    "rules": [
      {
        "access_argument": [
          "10.0.0.0/8",
          "172.16.0.0/12",
          "192.168.0.0/16",
          "fc00::/7",
          "fe80::/10"
        ],
        "access_type": "src",
        "permission_type": "allow"
      },
      {
        "access_argument": [
          "192.168.1.1"
        ],
        "access_type": "src",
        "permission_type": "allow"
      },
      {
        "access_argument": [
          ".allow1"
        ],
        "access_type": "srcdomain",
        "permission_type": "allow"
      },
      {
        "access_argument": [
          "192.168.1.2"
        ],
        "access_type": "dst",
        "permission_type": "allow"
      },
      {
        "access_argument": [
          ".arrow2"
        ],
        "access_type": "dstdomain",
        "permission_type": "allow"
      },
      {
        "access_argument": [
          "192.168.1.3"
        ],
        "access_type": "src",
        "permission_type": "deny"
      },
      {
        "access_argument": [
          ".deny1"
        ],
        "access_type": "srcdomain",
        "permission_type": "deny"
      },
      {
        "access_argument": [
          "192.168.1.4"
        ],
        "access_type": "dst",
        "permission_type": "deny"
      },
      {
        "access_argument": [
          ".deny2"
        ],
        "access_type": "dstdomain",
        "permission_type": "deny"
      }
    ]
  },
  "authentication": {
    "auth_enable": false,
    "auth_word": "Hello!"
  },
  "cache": {
    "cache_dir_path": "/volume1/@squid",
    "cache_dir_size": "10240",
    "cache_enable": true,
    "cache_mem": "64",
    "cache_swap_high": "95",
    "cache_swap_low": "90",
    "maximum_object_size": "2000000",
    "maximum_object_size_in_memory": "8",
    "minimum_object_size": "0"
  },
  "general": {
    "cache_mgr": "webmaster@mydomain.com",
    "http_port": 3128
  },
  "log": {
    "log_enable": false,
    "log_transfer_enable": false,
    "log_transfer_host": "localhost",
    "log_transfer_port": 514,
    "log_transfer_protocol": "tcp"
  },
  "transparent": {
    "transparent_proxy_enable": false
  },
  "wpad": {
    "wpad_enable": false,
    "wpad_interface": ""
  }
}

設定適用

設定ファイルを直接変更した場合、再起動すると適用されます。

synopkg restart ProxyServer

まとめ

SynologyのProxyServerのコマンドラインでの設定方法をまとめてみました。

ProxyServerを使いこなしたい人等に参考なればと思います。

以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント

この記事のコメントはありません。