# Sambungkan Ejen AI dengan Selamat ke Pelayan MCP Webship
Sambungan MCP ke pelayan web bukan widget sembang. Ia adalah antara muka operasi yang boleh memeriksa keadaan pengeluaran, menukar dasar penghalaan dan keselamatan, memuat semula sijil, mengaktifkan keluaran statik, menyelaras perubahan armada, dan memasang kemas kini Webship yang ditandatangani.
Layaninya dengan sewajarnya: sebagai API pentadbiran yang istimewa. Persediaan Webship yang paling selamat mengekalkan pendengar MCP di luar pesawat data awam, mengikatnya ke loopback, melindunginya dengan TLS 1.3 dan token pembawa yang kukuh, dan mengaksesnya melalui terowong SSH yang disahkan.
Panduan ini membina tetapan itu, menerangkan mengapa setiap sempadan wujud, dan memberi anda senarai semak untuk mengendalikannya tanpa menukar keselesaan menjadi pendedahan.
Mulakan dengan sempadan kepercayaan
Trafik awam Webship dan trafik MCP menggunakan pendengar yang berasingan. Pelan kawalan MCP dilumpuhkan secara lalai dan tidak pernah berkongsi pendengar HTTP biasa, HTTP/2, HTTP/3, atau WebTransport. Apabila diaktifkan, ia memberikan MCP melalui titik akhir TLS 1.3 HTTP/1.1 yang khas.
Pemasangan yang selamat mempunyai empat kawalan bebas:
- Kebolehcapaian rangkaian: pendengar MCP mengikat kepada
127.0.0.1, bukan alamat awam atau LAN persendirian. - Identiti pengangkutan: pelanggan mengesahkan sijil yang dikeluarkan oleh CA yang dipercayainya.
- Pengesahan aplikasi: setiap permintaan membawa satu token pembawa yang kukuh.
- Akses pentadbiran: pengendali mencapai pendengar loopback melalui akaun SSH yang disahkan dan terowong.
Tiada satu pun kawalan ini menggantikan yang lain. TLS tanpa laluan rangkaian peribadi masih mendedahkan permukaan pengesahan. Terowong tanpa pengesahan sijil menjadikan identiti titik akhir samar. Token pemegang di dalam fail boleh dibaca oleh dunia bukan rahsia.
Sediakan sijil dan token
Keluarkan sijil MCP khas daripada CA dalaman anda. Bagi terowong yang ditunjukkan di bawah, sertakan localhost dan 127.0.0.1 dalam nama alternatif subjek sijil itu, kemudian pasang CA yang mengeluarkan sijil tersebut dalam stor kepercayaan mesin klien MCP. Jangan selesaikan ralat kepercayaan dengan pilihan TLS yang tidak selamat.
Cipta token unik dengan sekurang-kurangnya 32 bait ASCII boleh cetak dan tanpa ruang kosong. Nilai rawak 32-bait yang ditukar kepada heksadesimal memberikan anda 64 aksara selamat:
umask 077
openssl rand -hex 32Webship kini membaca token MCP secara langsung dari konfigurasi TOML yang dilindungi; token_file tidak disokong. Simpan hasilnya dalam fail konfigurasi yang hanya boleh dibaca oleh akaun perkhidmatan Webship dan kumpulan pentadbirannya. Jangan letakkan token itu dalam unit systemd, sejarah shell, tiket, mesej sembang, atau arahan yang dihantar kepada model AI.
Pada hos Debian biasa:
sudo chown root:webship /etc/webship/production.toml
sudo chmod 0640 /etc/webship/production.toml
sudo chown root:webship /etc/webship/mcp-cert.pem /etc/webship/mcp-key.pem
sudo chmod 0644 /etc/webship/mcp-cert.pem
sudo chmod 0640 /etc/webship/mcp-key.pemSesuaikan pengguna perkhidmatan dan kumpulan dengan pemasangan anda. Kunci peribadi dan konfigurasi mesti boleh dibaca oleh Webship, tetapi tidak oleh akaun yang tidak berkaitan.
Dayakan pendengar yang terasing
Tambahkan bahagian ini ke konfigurasi aktif Webship:
[security.mcp]
enabled = true
listen = "127.0.0.1:9443"
token = "replace-with-your-generated-64-character-token"
allowed_ips = []
expose_remote = false
[security.mcp.tls]
cert = "/etc/webship/mcp-cert.pem"
key = "/etc/webship/mcp-key.pem"Senarai allowed_ips kosong tidak membuka titik akhir. Pelanggan loopback kekal dibenarkan secara lalai. expose_remote = false menjadikan sempadan yang dimaksudkan jelas: jika seseorang kemudian menukar listen kepada alamat bukan loopback, Webship menolak konfigurasi itu daripada menerbitkan pesawat kawalan secara diam-diam.
Webship juga menolak pendengar MCP yang diaktifkan tanpa TLS, tanpa token, dengan token yang pendek atau mengandungi ruang kosong, atau dengan laluan sijil yang kosong. Token tempat letak awam ditolak sebelum pendedahan jauh.
Sahkan sebelum mulakan semula
MCP pendengar, identiti TLS, dan perubahan token membina semula pesawat kawalan, jadi mereka memerlukan proses untuk dimulakan semula. Sahkan konfigurasi lengkap terlebih dahulu:
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
sudo systemctl restart webship
sudo systemctl status webship --no-pagerSahkan bahawa pendengar wujud hanya pada loopback:
ss -ltn | grep '127.0.0.1:9443'Jangan tambahkan port 9443 ke peraturan firewall awam hos. Langkah seterusnya akan mencapainya melalui SSH.
Cipta terowong peribadi
Daripada stesen kerja pentadbir, alihkan port tempatan ke pendengar loopback Webship:
ssh -N \
-L 127.0.0.1:19443:127.0.0.1:9443 \
webship-admin@edge.example.comPelanggan MCP kini berhubung dengan https://localhost:19443/mcp. TCP mencapai pelayan SSH, SSH membawa sambungan ke hos, dan hos membuka sambungan akhir ke Webship pada loopback. Menutup sesi SSH menghapus laluan itu dengan segera.
Gunakan pengesahan SSH berasaskan kunci, hadkan pentadbir mana yang boleh membuka terowong, dan terapkan kawalan akses hos biasa anda. Jika hos lompat diperlukan, kekalkan pendengar MCP pada antara muka loopback hos Webship dan luaskan laluan SSH daripada melebar pendengar.
Konfigurasikan klien MCP
Format konfigurasi klien berbeza, tetapi entri HTTP MCP yang tipikal kelihatan seperti ini:
{
"mcpServers": {
"webship-production": {
"url": "https://localhost:19443/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}Gunakan mekanisme rahsia terlindung pelanggan apabila ia ada. Jika tidak, hadkan konfigurasi pelanggan kepada akaun sistem operasi semasa. Pelanggan HTTP—bukan model—hendaklah melampirkan pengepala kebenaran. Jangan sekali-kali menampal token langsung ke dalam perbualan.
Pastikan pengesahan sijil diaktifkan. Jika klien menolak sijil tersebut, perbaiki nama alternatif subjek sijil atau pasang CA dalaman yang betul. Jangan tambahkan bypass kekal.
Jadikan sesi pertama hanya baca
Selepas terowong dan klien disambungkan, mulakan dengan penemuan dan pemeriksaan:
- Minta
tools/list; responsnya adalah skema hujah berwibawa untuk keluaran yang sedang dijalankan. - Panggil
webship.get_configdan rakam versi konfigurasi semasa. - Periksa
webship.reverse_proxy.get_status,webship.security.get_status,webship.ddos.get_status, danwebship.tls.get_statusjika berkenaan. - Gunakan
webship.policy.explainatauwebship.security.simulatesebelum menukar polisi. - Sahkan bahawa konfigurasi yang dikembalikan menyembunyikan token pembawa.
Hanya kemudian uji mutasi dalam persekitaran bukan produksi. Mutasi konfigurasi Webship memerlukan ID versi semasa. Tindakan tulis yang lapuk ditolak daripada menimpa perubahan yang lebih baru. Polisi calon boleh diperiksa dengan pengesahan bayangan dan senario makmal trafik sebelum pengaktifan.
Webship juga menolak penurunan keselamatan langsung yang dipilih. Permintaan MCP tidak boleh mematikan WAF aktif, lapisan DDoS, API Shield, cabaran bot, polisi pengesahan tepi, atau lapisan pengepala tindak balas. Perubahan pendengar yang terikat kepada proses, protokol, pekerja, runtime, dan pengesahan MCP memerlukan restart yang disengajakan.
Pengawal itu mengurangkan kesilapan; mereka tidak menjadikan setiap tindakan yang dibenarkan tidak berbahaya. Token itu memberikan permukaan kawalan yang kuat, termasuk operasi kemas kini dan pelepasan. Semak panggilan alat yang dicadangkan dengan tepat seperti anda menyemak arahan shell seorang pentadbir.
Jika pengikatan jauh tidak dapat dielakkan
Loopback ditambah SSH adalah reka bentuk yang disyorkan. Jika persekitaran anda memerlukan pendengar rangkaian persendirian, nyatakan pengecualian dengan jelas:
[security.mcp]
enabled = true
listen = "10.20.0.15:9443"
expose_remote = true
allowed_ips = ["10.20.10.0/24"]
token = "replace-with-your-generated-64-character-token"Pastikan blok TLS dari contoh sebelum ini, gunakan sijil yang sepadan dengan nama DNS peribadi, dan terapkan julat sumber yang sama di firewall hos dan rangkaian. Jangan sekali-kali menggunakan 0.0.0.0/0 atau ::/0 sebagai senarai putih kemudahan. Ingat bahawa senarai putih aplikasi melihat alamat sumber yang sebenarnya sampai ke Webship; sahkan tingkah laku apabila pengimbang beban, gerbang NAT, atau jaring perkhidmatan berada di depannya.
Pendedahan jauh meningkatkan nilai log akses berpusat, tingkap operasi yang pendek, dan putaran pantas. Ia tidak diperlukan hanya kerana klien MCP berjalan pada mesin lain; itulah tepatnya yang diselesaikan oleh terowong SSH.
Operasikan pesawat kawalan dengan sengaja
Gunakan senarai semak ini untuk pengeluaran:
- Pastikan MCP dilumpuhkan di tempat tiada ejen atau pengendali memerlukannya.
- Ikat ke loopback dan gunakan terowong SSH secara lalai.
- Gunakan identiti TLS khas dan pastikan pengesahan sijil diaktifkan.
- Hasilkan token pemegang unik untuk setiap persekitaran Webship.
- Lindungi TOML, konfigurasi pelanggan, kunci TLS, dan kunci SSH dengan kebenaran sistem fail.
- Pisahkan kelayakan pembangunan, ujian, dan pengeluaran.
- Mulakan sesi dengan alat status dan simulasi dasar sebelum mutasi.
- Simpan dan semak semula acara audit keselamatan Webship.
- Pusingkan token dan mulakan semula Webship selepas disyaki terdedah.
- Tutup terowong apabila sesi pentadbiran berakhir.
Untuk tindak balas insiden, tutup terowong aktif, hadkan akaun SSH, ganti token MCP dalam TOML yang dilindungi, mulakan semula Webship, dan semak rekod audit keselamatan dan versi konfigurasi baru-baru ini. Jika kunci peribadi TLS mungkin terdedah, keluarkan sijil dan kunci baru sebagai sebahagian daripada permulaan semula yang sama. Uji token lama selepas itu dan pastikan ia ditolak.
Rangka kawalan harus kekal sebagai rangka kawalan
MCP berguna kerana seorang ejen boleh memeriksa keadaan sebenar dan menerapkan perubahan yang disahkan tanpa menghala operasi tersebut melalui laluan permintaan awam. Kelebihan itu hilang jika pendengar kawalan menjadi titik akhir internet lain.
Pastikan sempadan ringkas: pendengar yang berasingan, kebolehcapaian semula gelung, TLS yang disahkan, satu kelayakan pembawa yang dilindungi, terowong yang diautentikasi, perubahan yang diperiksa versi, dan proses semakan manusia untuk operasi berkuasa. Webship menyediakan protokol dan pelindung keselamatan; pengendali menentukan siapa yang boleh mencapainya.
Panduan ini berdasarkan dokumentasi operator Webship 1.3.1, contoh konfigurasi terhantar, kod pengesahan dan pengangkutan MCP, pengawal konfigurasi semasa jalan, dan katalog alat. Semak semula dokumentasi Webship semasa dan respons tools/list pelayan yang sedang berjalan sebelum menerapkannya kepada keluaran lain.