Synologyの「ProxyServer」コマンドラインでの設定方法
やりたいこと
プロキシのキャッシングにより、高速化を図りたい
セキュリティ的に危険そうなドメインを、アクセス拒否したい
自動化のためシェル(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を使いこなしたい人等に参考なればと思います。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
