Nama
host_access - format fail akses kawalan tuan rumah Linux.
Penerangan
Halaman manual ini menerangkan Linux sebagai bahasa kawalan akses mudah yang berdasarkan kepada klien (nama hos / alamat, nama pengguna), dan pelayan (nama proses, nama hos / alamat) corak. Contoh diberikan pada akhirnya. Pembaca yang tidak sabar digalakkan untuk melangkau ke bahagian Contoh untuk pengenalan ringkas. Versi lanjutan bahasa kawalan akses diterangkan di dalam hosts_options (5) dokumen. Sambungan diaktifkan pada masa membina program dengan membina dengan -DPROCESS_OPTIONS.
Dalam teks berikut, daemon adalah nama proses proses daemon rangkaian, dan pelanggan adalah nama dan / atau alamat perkhidmatan yang meminta hos. Nama proses daemon rangkaian dinyatakan dalam fail konfigurasi inetd.
Fail Kawalan Akses
Perisian kawalan akses merujuk kepada dua fail. Carian berhenti pada perlawanan pertama.
Akses akan diberikan apabila pasangan (daemon, klien) sepadan dengan penyertaan dalam /etc/hosts.allow fail.
Jika tidak, akses akan dinafikan apabila pasangan (daemon, klien) sepadan dengan kemasukan dalam /etc/hosts.deny fail.
Jika tidak, akses akan diberikan.
Fail kawalan akses tidak ada dianggap sebagai fail kosong. Oleh itu, kawalan akses boleh dimatikan dengan tidak menyediakan fail kawalan akses.
Peraturan Kawalan Akses
Setiap fail kawalan akses mengandungi sifar atau lebih banyak baris teks. Garis-garis ini diproses mengikut susunan. Carian itu tamat apabila perlawanan dijumpai.
Watak barisan baru diabaikan apabila didahului oleh watak backslash. Ini membenarkan anda memecah garisan panjang supaya mereka lebih mudah untuk diedit.
Garis atau baris kosong yang bermula dengan watak `# 'tidak diendahkan. Ini membenarkan anda memasukkan komen dan ruang kosong supaya jadual lebih mudah dibaca.
Semua baris lain harus memenuhi format berikut, perkara di antara adalah pilihan:
daemon_list: client_list : shell_command
daemon_list adalah senarai satu atau lebih nama proses daemon (argv 0 nilai) atau kad liar (lihat di bawah).
client_list adalah senarai satu atau lebih nama hos, alamat hos, corak atau kad liar (lihat di bawah) yang akan dipadankan dengan nama atau alamat hos pelanggan.
Borang yang lebih rumit daemon @ tuan rumah dan pengguna @ tuan rumah dijelaskan dalam bahagian pada corak endpoint pelayan dan pada lookup pengguna nama pengguna, masing-masing.
Senarai elemen hendaklah dipisahkan oleh kosong dan / atau koma.
Dengan pengecualian pencarian kumpulan NIS (YP), semua pemeriksaan kawalan akses adalah tidak sensitif.
Corak
Bahasa kawalan akses melaksanakan corak berikut:
Rentetan yang bermula dengan `. ' watak. Nama hos dipadankan jika komponen terakhir namanya sepadan dengan corak yang ditentukan. Sebagai contoh, corak `.tue.nl 'sepadan dengan nama host` wzv.win.tue.nl'.
Rentetan yang berakhir dengan `. ' watak. Alamat hos dipadankan jika medan angka pertama sepadan dengan rentetan yang diberikan. Sebagai contoh, corak `131,155. ' sepadan dengan alamat (hampir) setiap tuan rumah di rangkaian Eindhoven University (131.155.x.x).
Rentetan yang bermula dengan watak `@ 'diperlakukan sebagai nama netgroup NIS (dahulu YP). Nama hos dipadankan jika ia menjadi hos kumpulan netgroup yang ditentukan. Perlawanan kumpulan kumpulan tidak disokong untuk nama proses daemon atau nama pengguna klien.
Ungkapan bentuk `n.n.n.n.n / m.m.m.m 'ditafsirkan sebagai pasangan' net / mask '. Alamat hos IPv4 dipadankan jika `bersih 'bersamaan dengan bitwise DAN alamat dan` topeng'. Sebagai contoh, pola bersih / mask `131.155.72.0/255.255.254.0 'sepadan dengan setiap alamat dalam julat` 131.155.72.0' melalui `131.155.73.255 '.
Ungkapan dengan bentuk `n: n: n: n: n: n: n: n / m 'ditafsirkan sebagai pasangan` net / prefixlen'. Alamat hos IPv6 dipadankan jika bit `prefixlen '` bersih' sama dengan bit 'prefixlen' alamat. Sebagai contoh, corak net / prefixlen `3ffe: 505: 2: 1 :: / 64 'sepadan dengan setiap alamat dalam lingkungan` 3ffe: 505: 2: 1 ::' hingga `3ffe: 505: 1: ffff: ffff: ffff: ffff '.
Rentetan yang bermula dengan aksara `/ 'dianggap sebagai nama fail. Nama atau alamat hos dipadankan jika ia sepadan dengan mana-mana nama hos atau corak alamat yang disenaraikan dalam fail bernama. Format fail adalah sifar atau lebih banyak baris dengan sifar atau lebih banyak nama tuan rumah atau pola alamat yang dipisahkan oleh ruang kosong. Corak nama fail boleh digunakan di mana-mana nama hos atau corak alamat boleh digunakan.
Wildcard `* 'dan`?' boleh digunakan untuk memadankan nama host atau alamat IP. Kaedah padanan ini tidak boleh digunakan bersama dengan padanan `bersih / topeng ', padanan nama hos bermula dengan`.' atau padanan alamat IP yang berakhir dengan `. '.
Wildcards
Bahasa kawalan akses menyokong wildcards yang jelas termasuk:
'SEMUA'
Kad wildcard sejagat, sentiasa sepadan.
'LOKAL'
Memadankan mana-mana hos yang namanya tidak mengandungi watak titik.
'UNKNOWN'
Memadankan mana-mana pengguna yang namanya tidak diketahui, dan sepadan dengan mana-mana tuan rumah yang namanya atau alamat tidak diketahui. Corak ini harus digunakan dengan berhati-hati: nama-nama tuan rumah mungkin tidak tersedia kerana masalah pelayan nama sementara. Alamat rangkaian tidak akan tersedia apabila perisian tidak dapat mengetahui jenis rangkaian yang dibicarakannya.
'KNOWN'
Memadankan mana-mana pengguna yang namanya diketahui, dan sepadan dengan mana-mana tuan rumah yang namanya dan alamat diketahui.Corak ini harus digunakan dengan berhati-hati: nama-nama tuan rumah mungkin tidak tersedia kerana masalah pelayan nama sementara. Alamat rangkaian tidak akan tersedia apabila perisian tidak dapat mengetahui jenis rangkaian yang dibicarakannya.
'PARANOID'
Memadankan mana-mana tuan rumah yang namanya tidak sepadan dengan alamatnya. Apabila tcpd dibina dengan -DPARANOID (mod lalai), ia jatuh permintaan dari pelanggan tersebut sebelum melihat jadual kawalan akses. Bina tanpa -DPARANOID apabila anda mahu lebih banyak kawalan ke atas permintaan tersebut.
'OPERATOR'
'KECUALI'
Penggunaan yang dimaksudkan adalah bentuk: senarai 'list_1 EXCEPT'; pembinaan ini sepadan dengan apa sahaja yang sepadan list_1 kecuali ia sepadan list_2 . Operator EXCEPT boleh digunakan dalam daemon_lists dan dalam client_lists. Pengendali yang KECUALI boleh bersarang: jika bahasa kawalan akan membenarkan penggunaan tanda kurung, `a KECUALI b KECUALI c 'akan mengurai sebagai` (a KECUALI (b KECUALI c))'.
Perintah Shell
Sekiranya peraturan kawalan akses yang dipadankan pertama mengandungi perintah shell, arahan itu tertakluk kepada penggantian% (lihat bahagian seterusnya). Hasilnya dilaksanakan oleh a / bin / sh proses kanak-kanak dengan input, output dan kesilapan yang berkaitan dengannya / dev / null . Tentukan `& 'pada akhir arahan terminal jika anda tidak mahu menunggu sehingga selesai.
Perintah Shell tidak harus bergantung kepada tetapan PATH inetd. Sebaliknya, mereka harus menggunakan nama laluan mutlak, atau mereka harus bermula dengan PATH = eksplisit apa pun.
The hosts_options (5) dokumen menerangkan bahasa alternatif yang menggunakan medan perintah shell dalam cara yang berbeza dan tidak serasi.
% Expansions
Pengembangan berikut boleh didapati di dalam perintah shell:
% a (% A) - Alamat hos klien (pelayan).
% c - Maklumat pelanggan: pengguna @ tuan rumah, alamat @ pengguna, nama tuan rumah, atau hanya alamat, bergantung kepada berapa banyak maklumat yang ada.
% d - Nama proses daemon (argv 0 nilai).
% h (% H) - Nama atau alamat hos klien (pelayan), jika nama hos tidak tersedia.
% n (% N) - Nama tuan rumah pelayan (pelayan) (atau "tidak diketahui" atau "paranoid").
% p - Id proses daemon.
% s - Maklumat pelayan: daemon @ host, daemon @ address, atau hanya nama daemon, bergantung pada berapa banyak maklumat yang tersedia.
% u - Nama pengguna klien (atau "tidak diketahui").
%% - Memperluas ke satu aksara `% '.
Watak dalam ekspansion% yang boleh mengelirukan shell digantikan dengan garis bawah.
Corak Endpoint Pelayan
Untuk membezakan pelanggan dengan alamat rangkaian yang mereka sambungkan, gunakan corak bentuk:
process_name @ host_pattern: client_list …
Corak seperti ini boleh digunakan apabila mesin mempunyai alamat internet yang berbeza dengan hostname internet yang berbeza. Penyedia perkhidmatan boleh menggunakan kemudahan ini untuk menawarkan arkib FTP, GOPHER atau WWW dengan nama internet yang mungkin termasuk dalam organisasi yang berbeza. Lihat juga pilihan `twist 'dalam dokumen hosts_options (5). Sesetengah sistem (Solaris, FreeBSD) boleh mempunyai lebih daripada satu alamat internet pada satu antara muka fizikal; dengan sistem lain anda mungkin perlu menggunakan antara muka SLIP atau PPP pseudo yang tinggal di ruang alamat rangkaian khusus.
Host_pattern mematuhi peraturan sintaks yang sama sebagai nama host dan alamat dalam konteks client_list. Biasanya, maklumat endpoint pelayan hanya tersedia dengan perkhidmatan berorientasikan sambungan.
Lookup Pengguna Pelanggan
Apabila hos pelanggan menyokong protokol RFC 931 atau salah satu keturunannya (TAP, IDENT, RFC 1413) program pembungkus boleh mendapatkan maklumat tambahan mengenai pemilik sambungan. Maklumat nama pengguna klien, apabila tersedia, dilogkan bersama dengan nama hos klien, dan boleh digunakan untuk memadankan pola seperti:
daemon_list: … user_pattern @ host_pattern …
Pembungkus daemon boleh dikonfigurasikan pada masa yang dikompilasi untuk melakukan carian nama pengguna yang digariskan oleh aturan (lalai) atau untuk selalu menginterogasi tuan rumah klien. Dalam hal pemeriksaan nama pengguna yang digariskan oleh aturan, peraturan di atas akan menyebabkan nama pengguna mencari hanya apabila kedua-duanya daemon_list dan juga host_pattern perlawanan.
Corak pengguna mempunyai sintaks yang sama seperti corak proses daemon, jadi wildcard yang sama digunakan (keanggotaan kumpulan tidak disokong). Seseorang tidak boleh terbawa-bawa dengan mencari nama pengguna, walaupun.
Maklumat nama pengguna klien tidak boleh dipercayai apabila diperlukan sebagian besar, yaitu ketika sistem klien telah dikompromikan. Secara umum, SEMUA dan (UN) DIKINI adalah satu-satunya corak nama pengguna yang masuk akal.
Pemerhati pengguna boleh didapati hanya dengan perkhidmatan berasaskan TCP, dan hanya apabila hos pelanggan menjalankan daemon yang sesuai; dalam semua kes lain hasilnya "tidak diketahui."
Satu bug inti UNIX yang terkenal boleh menyebabkan kehilangan perkhidmatan apabila pengguna mencari nama dihalang oleh firewall. Dokumen README pembungkus menggambarkan prosedur untuk mengetahui jika kernel anda mempunyai pepijat ini.
Penggayaan pengguna boleh menyebabkan kelewatan yang ketara untuk pengguna bukan UNIX. Masa tamat lalai untuk mencari nama pengguna adalah 10 saat: terlalu pendek untuk menangani rangkaian lambat, tetapi cukup lama untuk merengsakan pengguna PC.
Carian pengguna nama terpilih boleh mengurangkan masalah terakhir. Sebagai contoh, peraturan seperti:daemon_list: @pcnetgroup SEMUA @ SEMUA
akan memadankan ahli kumpulan komputer pc tanpa melakukan carian nama pengguna, tetapi akan melakukan carian nama pengguna dengan semua sistem lain. Kesilapan dalam penjana nombor turutan banyak pelaksanaan TCP / IP membolehkan penggodam dengan mudah menyamar sebagai tuan rumah yang dipercayai dan untuk memecah melalui, sebagai contoh, perkhidmatan shell jauh.Perkhidmatan IDENT (RFC931 dan lain-lain) boleh digunakan untuk mengesan serangan spoofing alamat hos dan lain-lain. Sebelum menerima permintaan pelanggan, pembungkus boleh menggunakan perkhidmatan IDENT untuk mengetahui bahawa pelanggan tidak menghantar permintaan sama sekali. Apabila hos pelanggan menyediakan perkhidmatan IDENT, keputusan carian IDENT negatif (klien yang sepadan dengan `UNKNOWN @ host ') adalah bukti kukuh serangan serangan spoofing. Hasil carian IDENT positif (pelanggan sepadan dengan `KNOWN @ host ') kurang dipercayai. Adalah mungkin bagi penceroboh untuk memalsukan sambungan pelanggan dan IDENT lookup, walaupun berbuat demikian jauh lebih sukar daripada spoofing hanya sambungan klien. Ia juga mungkin bahawa pelayan IDENT klien berbohong. Nota: Carian IDENT tidak berfungsi dengan perkhidmatan UDP. Bahasa adalah cukup fleksibel bahawa pelbagai jenis dasar kawalan akses boleh dinyatakan dengan sedikit kekecohan. Walaupun bahasa menggunakan dua jadual kawalan akses, dasar yang paling umum dapat dilaksanakan dengan salah satu jadual menjadi remeh atau bahkan kosong. Apabila membaca contoh di bawah adalah penting untuk menyedari bahawa jadual membenarkan diimbas sebelum jadual menafikan, bahawa carian itu tamat apabila suatu pertandingan dijumpai, dan akses itu diberikan apabila tiada pertandingan ditemui sama sekali. Contoh menggunakan nama hos dan domain. Mereka boleh diperbaiki dengan memasukkan alamat dan / atau maklumat rangkaian / netmask, untuk mengurangkan kesan kegagalan mencari pelayan nama sementara. Dalam kes ini, akses ditolak secara lalai. Hanya hos dibenarkan sepenuhnya dibenarkan akses. Dasar lalai (tiada akses) dilaksanakan dengan fail menafikan remeh: /etc/hosts.deny: SEMUA: SEMUA Ini menafikan semua perkhidmatan kepada semua tuan rumah, melainkan ia dibenarkan akses oleh entri dalam fail membenarkan. Tuan rumah yang disahkan secara tertera disenaraikan dalam fail membenarkan. Sebagai contoh: /etc/hosts.allow: SEMUA: LOCAL @some_netgroupSEMUA: .foobar.edu KECUALI terminalserver.foobar.edu Peraturan pertama membenarkan akses daripada tuan rumah dalam domain setempat (tiada `. 'Di nama tuan rumah) dan dari ahli-ahli some_netgroup netgroup. Peraturan kedua membenarkan akses dari semua tuan rumah di foobar.edu domain (notis titik utama), dengan pengecualian terminalserver.foobar.edu . Di sini, akses diberikan secara lalai; hanya hos yang dinyatakan secara jelas ditolak perkhidmatan. Dasar lalai (akses yang diberikan) menjadikan fail membenarkan berlebihan supaya ia boleh ditinggalkan. Tuan rumah yang tidak dibenarkan secara sah disenaraikan dalam fail yang disangkal. Sebagai contoh: /etc/hosts.deny: SEMUA: some.host.name, .some.domainSEMUA KECUALI in.fingerd: other.host.name, .other.domain Peraturan pertama menafikan sesetengah tuan rumah dan domain semua perkhidmatan; peraturan kedua masih membenarkan permintaan jari dari tuan rumah dan domain lain. Contoh seterusnya membenarkan permintaan tftp daripada tuan rumah dalam domain setempat (notis titik utama). Permintaan daripada mana-mana tuan rumah lain ditolak. Daripada fail yang diminta, siasatan jari dihantar ke hos yang menyinggung. Hasilnya dihantar kepada superuser. /etc/hosts.allow: in.tftpd: LOCAL, .my.domain/etc/hosts.deny:in.tftpd: ALL: spawn (/ some / where / safe_finger -l @% h | / usr / ucb / mail -s% d-% h root) &
Perintah safe_finger dilengkapi dengan pembungkus tcpd dan harus dipasang di tempat yang sesuai. Ia mengehadkan kemungkinan kerosakan daripada data yang dihantar oleh pelayan jari jauh. Ia memberi perlindungan yang lebih baik daripada arahan jari standard. Perkembangan jujukan% h (hos pelanggan) dan% d (nama perkhidmatan) diterangkan dalam bahagian pada perintah shell. Amaran: Jangan booger daemon jari anda, melainkan anda bersedia untuk gelung jari terhingga. Mengenai sistem firewall rangkaian trik ini boleh dibawa lebih jauh lagi. Firewall rangkaian tipikal hanya menyediakan set perkhidmatan yang terhad kepada dunia luar. Semua perkhidmatan lain boleh "diserang" seperti contoh tftp di atas. Hasilnya adalah sistem amaran awal yang sangat baik. program pembungkusan tcpd (8) tcp / ip daemon.tcpdchk (8), tcpdmatch (8), program ujian.
Penting: Menggunakan lelaki perintah ( % lelaki ) untuk melihat bagaimana arahan digunakan pada komputer tertentu anda. Mengesan Serangan Spoofing
Contoh
Sebahagian besar ditutup
Terbuka Terbuka
Perangkap booby
Lihat juga




