.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "NNRPD 8" .TH NNRPD 8 2026-06-12 "INN 2.7.4" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" nnrpd \- کارساز NNTP برای کلاینت‌های خواننده خبر .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBnnrpd\fR [\fB\-BDfnoSt\fR] [\fB\-4\fR \fIaddress\fR] [\fB\-6\fR \fIaddress\fR] [\fB\-b\fR \fIaddress\fR] [\fB\-c\fR \fIconfigfile\fR] [\fB\-i\fR \fIinitial\fR] [\fB\-I\fR \fIinstance\fR] [\fB\-p\fR \fIport\fR] [\fB\-P\fR \fIprefork\fR] [\fB\-r\fR \fIreason\fR] [\fB\-s\fR \fIpadding\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBnnrpd\fR یک کارساز NNTP برای برنامه‌های خواننده خبر (newsreaders) است. این برنامه دستورات را از ورودی استاندارد خود دریافت کرده و پاسخ‌ها را در خروجی استاندارد ارسال می‌کند. معمولاً توسط innd(8) فراخوانی می‌شود و این توصیف‌کننده‌ها به یک اتصال کلاینت راه دور متصل هستند. همچنین \fBnnrpd\fR از اجرا به عنوان یک دیمن مستقل پشتیبانی می‌کند. .PP برخلاف innd(8)، برنامه \fBnnrpd\fR از تمامی دستورات NNTP مربوط به خواندن و ارسال خبر توسط کاربر پشتیبانی می‌کند. \fBnnrpd\fR از فایل \fIreaders.conf\fR برای کنترل دسترسی افراد مجاز به پایگاه‌داده یوزنت (Usenet) استفاده می‌کند. .PP هنگام خروج، \fBnnrpd\fR آمار استفاده را از طریق syslog(3) گزارش می‌دهد. .PP \&\fBnnrpd\fR معمولاً از طریق \fBinnd\fR (حالت پیش‌فرض) یا از طریق inetd(8)، xinetd(8) یا برنامه‌های معادل اجرا می‌شود. همچنین در بسیاری از موارد به صورت یک دیمن با گزینه \fB\-D\fR اجرا می‌شود تا پشتیبانی از TLS را روی یک پورت اختصاصی فراهم کند. .PP \&\fBnnrpd\fR فایل‌های پیکربندی (\fIreaders.conf\fR، \fIinn.conf\fR و \fIinn\-secrets.conf\fR) را تنها در زمان راه‌اندازی و ایجاد پردازش (spawn) می‌خواند. بنابراین، هرگز نمی‌توانید رفتار کلاینتی را که از قبل متصل شده است تغییر دهید. از آنجا که برای هر اتصال یک پردازش جدید \fBnnrpd\fR ایجاد می‌شود، هرگونه تغییر در این فایل‌های پیکربندی فوراً برای تمامی اتصالات جدید اعمال خواهد شد. تنها یک استثنا وجود دارد: هنگامی که \fBnnrpd\fR با گزینه \fB\-D\fR به عنوان دیمن اجرا می‌شود، هرگونه تغییر پیکربندی در \fIinn.conf\fR تا زمانی که \fBnnrpd\fR بازراه‌اندازی نشود اعمال نخواهد شد. .PP تنظیم \fInnrpdflags\fR در \fIinn.conf\fR می‌تواند برای ارسال هر یک از گزینه‌های زیر به نمونه‌های \fBnnrpd\fR که مستقیماً از \fBinnd\fR ایجاد می‌شوند استفاده شود. بسیاری از گزینه‌ها تنها زمانی معنا پیدا می‌کنند که از \fB\-D\fR استفاده شود، بنابراین این گزینه‌ها نباید همراه با \fInnrpdflags\fR به کار روند. همچنین به توضیحات مربوط به \fInnrpdflags\fR در inn.conf(5) مراجعه کنید. .PP هنگامی که مقدار \fInnrpdloadlimit\fR در \fIinn.conf\fR برابر با \f(CW\*(C`0\*(C'\fR نباشد، در صورتی که میانگین بار کاری سیستم (load average) بیشتر از آن مقدار باشد (معمولاً \f(CW\*(C`16\*(C'\fR)، اتصالات را رد خواهد کرد. \fBnnrpd\fR همچنین می‌تواند از سوءاستفاده ارسال‌کنندگان پرترافیک از منابع سیستم جلوگیری کند. به توضیحات مربوط به عقب‌نشینی نمایی (exponential backoff) در inn.conf(5) مراجعه کنید. .PP \&\fBnnrpd\fR مقالات را از طریق یک سوکت دامنه یونیکس (UNIX domain socket)، یا در صورت عدم پشتیبانی از طریق یک سوکت دامنه INET، به کارساز محلی در حال اجرای \fBinnd\fR تزریق می‌کند. اگر باید از کارساز دیگری برای تزریق استفاده شود، می‌توانید آن را با پارامتر \fInnrpdposthost\fR در \fIinn.conf\fR تنظیم کنید. در صورتی که در طول تزریق نیاز به اطلاعات احراز هویت باشد، \fBnnrpd\fR از فایل \fIpasswd.nntp\fR در \fIpathetc\fR استفاده خواهد کرد. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-4\fR \fIaddress\fR" 4 .IX Item "-4 address" پارامتر \fB\-4\fR به \fBnnrpd\fR دستور می‌دهد تا در صورت راه‌اندازی به عنوان دیمن مستقل با فلگ \fB\-D\fR، به آدرس IPv4 مشخص‌شده متصل شود (bind). این آدرس باید یک آدرس IPv4 معتبر متعلق به یکی از رابط‌های میزبان محلی باشد. همچنین می‌تواند \f(CW\*(C`0.0.0.0\*(C'\fR باشد که به معنای اتصال به تمامی آدرس‌ها است (این حالت پیش‌فرض است). .IP "\fB\-6\fR \fIaddress\fR" 4 .IX Item "-6 address" پارامتر \fB\-6\fR به \fBnnrpd\fR دستور می‌دهد تا در صورت راه‌اندازی به عنوان دیمن مستقل با فلگ \fB\-D\fR، به آدرس IPv6 مشخص‌شده متصل شود (bind). این آدرس باید یک آدرس IPv6 معتبر متعلق به یکی از رابط‌های میزبان محلی باشد. همچنین می‌تواند \f(CW\*(C`::0\*(C'\fR باشد که به معنای اتصال به تمامی آدرس‌های IPv6 است. .Sp به طور پیش‌فرض، \fBnnrpd\fR در حالت دیمن به هر دو آدرس IPv4 و IPv6 گوش می‌دهد. با استفاده از این گزینه، تنها به آدرس‌های IPv6 مشخص‌شده گوش خواهد داد. با این حال، در برخی سیستم‌ها مقدار \f(CW\*(C`::0\*(C'\fR باعث می‌شود که به تمامی آدرس‌های IPv4 نیز گوش دهد. .IP "\fB\-b\fR \fIaddress\fR" 4 .IX Item "-b address" مشابه فلگ \fB\-4\fR است. گزینه \fB\-b\fR برای سازگاری با نسخه‌های پیشین حفظ شده است. .IP \fB\-B\fR 4 .IX Item "-B" در صورت تعیین، \fBnnrpd\fR تلاش‌های ورود به سیستم را برای مسدودسازی خودکار پس از چند تلاش ناموفق، به blocklistd(8) گزارش می‌دهد. برای استفاده از این فلگ، کتابخانه blocklist باید در زمان پیکربندی یافت شده باشد یا گزینه \fB\-\-with\-blocklist\fR در زمان configure مشخص شده باشد. برای اطلاعات بیشتر، بخش "پشتیبانی از BLOCKLISTD" در ادامه را ببینید. .IP "\fB\-c\fR \fIconfigfile\fR" 4 .IX Item "-c configfile" به طور پیش‌فرض، \fBnnrpd\fR فایل پیکربندی \fIreaders.conf\fR را می‌خواند تا نحوه احراز هویت اتصالات را تعیین کند. فلگ \fB\-c\fR یک فایل جایگزین برای این منظور مشخص می‌کند. اگر نام فایل یک مسیر کامل نباشد، نسبت به \fIpathetc\fR در \fIinn.conf\fR در نظر گرفته می‌شود. (این مورد برای اجرای چندین نمونه از \fBnnrpd\fR روی پورت‌ها یا آدرس‌های IP مختلف با تنظیمات متفاوت کاربرد دارد.) .IP \fB\-D\fR 4 .IX Item "-D" در صورت تعیین، این پارامتر باعث می‌شود \fBnnrpd\fR به عنوان دیمن عمل کند؛ یعنی خود را از ترمینال جدا کرده و در پس‌زمینه اجرا شود و برای هر اتصال یک پردازش جدید منشعب (fork) کند. به طور پیش‌فرض، \fBnnrpd\fR روی پورت NNTP (پورت ۱۱۹) گوش می‌دهد، بنابراین یا باید innd(8) روی پورت دیگری راه‌اندازی شود یا از پارامتر \fB\-p\fR استفاده گردد. توجه داشته باشید که با این پارامتر، \fBnnrpd\fR تا زمان متوقف شدن به اجرا ادامه می‌دهد. این بدان معناست که فایل \fIinn.conf\fR را فقط یک بار در زمان راه‌اندازی می‌خواند و تا زمان بازراه‌اندازی هرگز دوباره آن را بازخوانی نمی‌کند. بنابراین اگر \fIinn.conf\fR تغییر یابد، \fBnnrpd\fR باید بازراه‌اندازی شود. .Sp هنگامی که \fBnnrpd\fR در حالت دیمن راه‌اندازی می‌شود، شناسه پردازش (PID) خود را در فایلی درون دایرکتوری \fIpathrun\fR می‌نویسد. اگر \fBnnrpd\fR روی پورت ۱۱۹ (پیش‌فرض) گوش دهد نام این فایل \fInnrpd.pid\fR خواهد بود، و در غیر این صورت نام آن \fInnrpd\-%d.pid\fR خواهد بود که در آن \f(CW\*(C`%d\*(C'\fR با پورتی که \fBnnrpd\fR برای گوش دادن به آن پیکربندی شده است جایگزین می‌شود (در صورتی که گزینه \fB\-p\fR داده شده باشد و آرگومان آن \f(CW\*(C`119\*(C'\fR نباشد). .Sp همچنین ممکن است بخواهید هنگام اجرای \fBnnrpd\fR به عنوان دیمن، از گزینه \fB\-s\fR استفاده کنید. .IP \fB\-f\fR 4 .IX Item "-f" در صورت تعیین، هنگام راه‌اندازی به عنوان یک دیمن مستقل با فلگ \fB\-D\fR، \fBnnrpd\fR از ترمینال جدا نشده و در پیش‌زمینه اجرا می‌شود. .IP "\fB\-i\fR \fIinitial\fR" 4 .IX Item "-i initial" یک دستور اولیه برای \fBnnrpd\fR مشخص می‌کند. در صورت استفاده، با \fIinitial\fR طوری برخورد می‌شود که گویی اولین دستور دریافت‌شده توسط \fBnnrpd\fR بوده است. پس از ارسال پاسخ، \fBnnrpd\fR اتصال را خواهد بست. .IP "\fB\-I\fR \fIinstance\fR" 4 .IX Item "-I instance" در صورت تعیین، زمانی که \fIvirtualhost\fR در گروه‌های دسترسی در \fIreaders.conf\fR تنظیم شده باشد، \fIinstance\fR به عنوان بخش ثابت اضافی در Message-IDهای تولیدشده توسط \fBnnrpd\fR استفاده می‌شود؛ معمولاً از این گزینه زمانی استفاده می‌شود که خوشه‌ای از ماشین‌ها با همان نام میزبان مجازی وجود دارند و باید در هنگام ارسال مقالات از یکدیگر متمایز شوند. .IP \fB\-n\fR 4 .IX Item "-n" فلگ \fB\-n\fR تحلیل و تبدیل آدرس‌های IP به نام‌های میزبان (DNS resolution) را غیرفعال می‌کند. اگر فقط از محدودیت‌های مبتنی بر IP در \fIreaders.conf\fR استفاده می‌کنید و مشکلی با ثبت آدرس‌های IP در گزارش‌های خود ندارید، استفاده از این فلگ می‌تواند سرعت را تا حدی افزایش دهد. .IP \fB\-o\fR 4 .IX Item "-o" فلگ \fB\-o\fR باعث می‌شود تمامی مقالات به جای ارسال به innd(8)، صف‌بندی (spool) شوند. برنامه \fBrnews\fR با فلگ \fB\-U\fR باید به طور منظم از طریق cron فراخوانی شود تا به این مقالات رسیدگی کند. این فلگ زمانی مفید است که \fBinnd\fR در حال پذیرش مقالات باشد و \fBnnrpd\fR به صورت مستقل یا با استفاده از inetd(8) راه‌اندازی شده باشد. .IP "\fB\-p\fR \fIport\fR" 4 .IX Item "-p port" پارامتر \fB\-p\fR به \fBnnrpd\fR دستور می‌دهد تا هنگام راه‌اندازی به عنوان دیمن مستقل با فلگ \fB\-D\fR، روی \fIport\fR مشخص‌شده گوش دهد. .IP "\fB\-P\fR \fIprefork\fR" 4 .IX Item "-P prefork" پارامتر \fB\-P\fR به \fBnnrpd\fR دستور می‌دهد تا هنگام راه‌اندازی به عنوان دیمن مستقل با فلگ \fB\-D\fR، به تعداد \fIprefork\fR پردازش فرزند را از پیش منشعب کرده (prefork) و در انتظار اتصالات نگه دارد. .IP "\fB\-r\fR \fIreason\fR" 4 .IX Item "-r reason" اگر از فلگ \fB\-r\fR استفاده شود، \fBnnrpd\fR اتصال ورودی را رد کرده و متن \fIreason\fR را به عنوان دلیل بازمی‌گرداند. این فلگ توسط innd(8) زمانی که متوقف (pause) یا محدود (throttle) شده است استفاده می‌شود. مقدار \fIreason\fR باید با کدگذاری UTF\-8 باشد. .IP "\fB\-s\fR \fIpadding\fR" 4 .IX Item "-s padding" با دریافت هر دستور از کلاینت، \fBnnrpd\fR تلاش می‌کند آرایه \f(CW\*(C`argv\*(C'\fR خود را که حاوی عنوان پردازش است تغییر دهد تا دستوراتی مانند ps(1) بتوانند نام میزبان کلاینت متصل‌شده و دستوری را که در حال اجرا است چاپ کنند. برای دستیابی به نمایش کامل، می‌توان از فلگ \fB\-s\fR با یک رشته طولانی به عنوان آرگومان آن استفاده کرد که با تغییر عنوان توسط \fBnnrpd\fR رونویسی خواهد شد. .Sp هنگامی که \fBinnd\fR برنامه \fBnnrpd\fR را ایجاد می‌کند، این فلگ را با آرگومانی متشکل از ۴۸ فاصله خالی به کار می‌برد. .IP \fB\-S\fR 4 .IX Item "-S" در صورت تعیین، \fBnnrpd\fR به محض برقراری اتصال، مذاکره برای یک نشست TLS را آغاز می‌کند. برای استفاده از این فلگ، کتابخانه‌های SSL و crypto از OpenSSL باید در زمان پیکربندی یافت شده باشند، یا \fB\-\-with\-openssl\fR در زمان configure مشخص شده باشد. برای اطلاعات بیشتر در مورد اجرای \fBnnrpd\fR با پشتیبانی از TLS، بخش "پشتیبانی از TLS" را ببینید. .IP \fB\-t\fR 4 .IX Item "-t" در صورت استفاده از فلگ \fB\-t\fR، تمامی دستورات کلاینت و پاسخ‌های اولیه با گزارش در syslog ردگیری می‌شوند. این فلگ توسط innd(8) تحت کنترل دستور \f(CW\*(C`trace\*(C'\fR در ctlinnd(8) تنظیم می‌شود و با دریافت سیگنال SIGHUP وضعیت آن تغییر می‌کند (فعال/غیرفعال)؛ به signal(2) مراجعه کنید. .SH "پشتیبانی از TLS (TLS SUPPORT)" .IX Header "TLS SUPPORT" اگر INN با گزینه \fB\-\-with\-openssl\fR ساخته شده باشد یا کتابخانه‌های SSL و crypto متعلق به OpenSSL در زمان پیکربندی یافت شوند، \fBnnrpd\fR از خواندن خبر روی TLS (که با نام SSL نیز شناخته می‌شود) پشتیبانی خواهد کرد. برای کلاینت‌هایی که از دستور STARTTLS استفاده می‌کنند، به غیر از ایجاد یک گواهی TLS/SSL برای کارساز، به پیکربندی خاصی نیاز نیست. شما باید این کار را دقیقاً به همان روشی انجام دهید که برای یک وب‌سرور گواهی تولید می‌کنید. .PP اگر از یک گواهی خودامضا (self-signed) رضایت دارید (که البته در برخی کلاینت‌های خبرخوان هشدار ایجاد می‌کند)، می‌توانید پس از اجرای \f(CW\*(C`make install\*(C'\fR در هنگام نصب INN، با اجرای \f(CW\*(C`make cert\*(C'\fR یک گواهی در مسیر پیش‌فرض ایجاد و نصب کنید، یا اینکه دستورات زیر را اجرا نمایید: .PP .Vb 7 \& umask 077 \& openssl req \-new \-x509 \-nodes \-out /cert.pem \e \& \-days 366 \-keyout /key.pem \& chown news:news /cert.pem \& chmod 640 /cert.pem \& chown news:news /key.pem \& chmod 600 /key.pem .Ve .PP مسیرها را با موارد متناسب با نصب INN خود جایگزین کنید. این کار یک گواهی خودامضا ایجاد می‌کند که پس از یک سال منقضی می‌شود. برنامه \fBopenssl\fR از شما سؤالات مختلفی درباره سازمانتان خواهد پرسید. نام دامنه کاملاً معتبر (FQDN) سرویس خبری خود (یا نام متعارف کارساز و یا یک نام مستعار اختصاصی برای سرویس خبری) را به عنوان نامی که گواهی برای آن صادر می‌شود وارد کنید. .PP سپس باید این پارامترهای \fIinn.conf\fR را با مسیرهای درست مقداردهی کنید: .PP .Vb 3 \& tlscapath: \& tlscertfile: /cert.pem \& tlskeyfile: /key.pem .Ve .PP اگر می‌خواهید از زنجیره کامل گواهی (certificate chain) استفاده کنید، می‌توانید آن را مستقیماً در \fItlscertfile\fR قرار دهید (مانند دستورالعمل \fISSLCertificateFile\fR در آپاچی). متناوباً، می‌توانید یک گواهی واحد را در \fItlscertfile\fR قرار داده و از \fItlscafile\fR برای گواهی‌های اضافی مورد نیاز برای تکمیل زنجیره، مانند گواهی ریشه مرجع صدور مجزا، استفاده کنید. .PP به طور ملموس‌تر، هنگام استفاده از گواهی‌های Let's\ Encrypt، فایل‌های Certbot را می‌توان به صورت زیر نصب کرد: .PP .Vb 3 \& tlscapath: /etc/letsencrypt/live/news.server.com \& tlscertfile: /etc/letsencrypt/live/news.server.com/fullchain.pem \& tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem .Ve .PP یا: .PP .Vb 4 \& tlscapath: /etc/letsencrypt/live/news.server.com \& tlscafile: /etc/letsencrypt/live/news.server.com/chain.pem \& tlscertfile: /etc/letsencrypt/live/news.server.com/cert.pem \& tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem .Ve .PP اطمینان حاصل کنید که مجوزهای دسترسی به درستی تنظیم شده باشند تا کاربر news یا گروه news بتواند این دایرکتوری‌ها و فایل‌ها را بخواند (به طور معمول، باید به \fI/etc/letsencrypt/live/news.server.com\fR و \fI/etc/letsencrypt/archive/news.server.com\fR که کلیدهای واقعی در آنجا قرار دارند دسترسی داشته باشد، و کلید خصوصی نباید برای همگان خواندنی باشد). .PP اگر ترجیح می‌دهید به فایل‌های خارج از دایرکتوری Let's\ Encrypt اشاره کنید، می‌توانید یک هوک پس از تمدید (post-renewal hook) برای Let's\ Encrypt اضافه کنید تا فایل‌های تولیدشده را در مکان دیگری کپی کرده و دسترسی‌های مورد انتظار را به آن‌ها اختصاص دهد. .PP دو روش متداول برای کلاینت‌های خبری جهت مذاکره در مورد اتصال TLS وجود دارد: یا از طریق استفاده از یک پورت اختصاصی (معمولاً ۵۶۳) که در آن TLS بلافاصله پس از برقراری اتصال مذاکره می‌شود، یا از طریق روشی که اکنون (طبق RFC\ 8143) منع شده است، یعنی استفاده از دستور STARTTLS روی پورت معمول NNTP (پورت ۱۱۹) برای ارتقای پویا از ترافیک رمزگذاری‌نشده به ترافیک محافظت‌شده با TLS در طول یک نشست NNTP. با این حال، \fBinnd\fR نحوه گوش دادن به اتصالات روی آن پورت مجزا (۵۶۳) را بلد نیست. بنابراین باید ترتیبی دهید که \fBnnrpd\fR از طریق ابزار دیگری روی آن پورت گوش دهد. این کار را می‌توان با فلگ \fB\-D\fR به همراه \f(CW\*(C`\-p 563\*(C'\fR انجام داد و آن را در اسکریپت‌های آغازین (init scripts) خود قرار داد: .PP .Vb 1 \& su news \-s /bin/sh \-c \*(Aq/nnrpd \-D \-p 563 \-S\*(Aq .Ve .PP اما ساده‌ترین راه احتمالاً افزودن خطی مانند زیر است: .PP .Vb 1 \& nntps stream tcp nowait news /nnrpd nnrpd \-S .Ve .PP به \fI/etc/inetd.conf\fR یا فایل معادل آن در سیستم شما تا اجازه دهید \fBinetd\fR برنامه \fBnnrpd\fR را اجرا کند. (مسیر به \fBnnrpd\fR را متناسب با نصب خود تغییر دهید.) در صورتی که \f(CW\*(C`nntps\*(C'\fR در \fI/etc/services\fR سیستم شما تعریف نشده باشد، ممکن است نیاز باشد \f(CW\*(C`nntps\*(C'\fR را با \f(CW\*(C`563\*(C'\fR جایگزین کنید. همچنین ممکن است بخواهید از فلگ کوچک \fB\-s\fR با یک رشته طولانی به عنوان آرگومان آن استفاده کنید تا اطلاعات بیشتری درباره اتصالات ورودی در خروجی ps(1) مشاهده نمایید. .PP به صورت اختیاری، می‌توانید پارامترهای \fItlsciphers\fR، \fItlsciphers13\fR، \fItlscompression\fR، \fItlseccurve\fR، \fItlspreferserverciphers\fR و \fItlsprotocols\fR را در \fIinn.conf\fR تنظیم کنید تا در صورت کشف هرگونه حمله جدید به پروتکل TLS یا برخی مجموعه‌های رمزنگاری پشتیبانی‌شده، رفتار مذاکره TLS/SSL را به طور دقیق تنظیم نمایید. .SH "پشتیبانی از BLOCKLISTD (BLOCKLISTD SUPPORT)" .IX Header "BLOCKLISTD SUPPORT" برنامه blocklistd(8) یک دیمن در FreeBSD/NetBSD برای جلوگیری از حملات بروت فورس (brute force) از طریق مسدودسازی مهاجمان پس از تعدادی تلاش ناموفق برای ورود است. هنگامی که \fBnnrpd\fR با پشتیبانی از blocklistd ساخته شود، تلاش‌های ورود را برای مسدودسازی احتمالی به دیمن blocklistd گزارش خواهد داد. .PP افزودن پیکربندی زیر به \fI/etc/blocklistd.conf\fR در بخش \f(CW\*(C`[local]\*(C'\fR، با این فرض که \fBnnrpd\fR روی پورت ۵۶۳ گوش می‌دهد، منجر به این می‌شود که مهاجمان پس از ۵ تلاش ناموفق برای ورود، به مدت ۱۰ دقیقه مسدود شوند. .PP .Vb 2 \& # adr/mask:port type proto owner name nfail disable \& 563 stream * * * 5 10m .Ve .PP برای اطلاعات بیشتر، به مستندات blocklistd(8) مراجعه کنید. .SH "تفاوت‌های پروتکل (PROTOCOL DIFFERENCES)" .IX Header "PROTOCOL DIFFERENCES" برنامه \fBnnrpd\fR دستورات NNTP تعریف‌شده در RFC\ 3977 (NNTP)، RFC\ 4642 به‌روزرسانی‌شده توسط RFC\ 8143 (TLS/NNTP)، RFC\ 4643 (احراز هویت NNTP)، RFC\ 6048 (افزوده‌های LIST در NNTP) و RFC\ 8054 (فشرده‌سازی NNTP) را با تفاوت‌های زیر پیاده‌سازی می‌کند: .IP 1. 4 دستور XGTITLE [\fIwildmat\fR] ارائه شده است. این افزونه توسط ANU-News استفاده می‌شود و در RFC\ 2980 مستند شده است. این دستور کد پاسخ \f(CW\*(C`282\*(C'\fR را برمی‌گرداند که پس از آن یک توضیح یک‌خطی از تمام گروه‌های خبری منطبق بر الگو قرار دارد. حالت پیش‌فرض، گروه فعلی است. .Sp توجه داشته باشید که باید از LIST NEWSGROUPS به جای XGTITLE استفاده شود. .IP 2. 4 دستور XHDR \fIheader\fR [\fImessage-ID\fR|\fIrange\fR] پیاده‌سازی شده است. این دستور یک کد پاسخ \f(CW\*(C`221\*(C'\fR برمی‌گرداند که پس از آن فیلدهای سربرگ مشخص برای محدوده تعیین‌شده قرار می‌گیرند؛ حالت پیش‌فرض بازگرداندن داده‌ها برای مقاله فعلی است. به RFC\ 2980 مراجعه کنید. .Sp توجه داشته باشید که باید از HDR به جای XHDR استفاده شود. .IP 3. 4 دستور XOVER [\fIrange\fR] ارائه شده است. این دستور کد پاسخ \f(CW\*(C`224\*(C'\fR را برمی‌گرداند که به دنبال آن داده‌های مرور اجمالی (overview) برای محدوده مشخص‌شده می‌آید؛ حالت پیش‌فرض بازگرداندن داده‌ها برای مقاله فعلی است. به RFC\ 2980 مراجعه کنید. .Sp توجه داشته باشید که باید از OVER به جای XOVER استفاده شود. .IP 4. 4 دستور جدیدی به نام XPAT \fIheader\fR \fImessage-ID\fR|\fIrange\fR \fIpattern\fR [\fIpattern\fR ...] ارائه شده است. آرگومان اول نام حساس‌نبودن‌به‌حروف‌کوچک‌و‌بزرگ (case-insensitive) فیلد سربرگ مورد جستجو است. آرگومان دوم همان‌طور که در RFC\ 2980 مشخص شده است، یک محدوده مقاله یا یک شناسه پیام منفرد است. آرگومان سوم یک الگوی مبتنی بر شیوه \fIuwildmat\fR است؛ اگر آرگومان‌های بیشتری وجود داشته باشد، آن‌ها با یک فاصله از هم جدا شده و به یکدیگر می‌پیوندند تا الگوی کامل را تشکیل دهند. این دستور مشابه دستور XHDR است. کد پاسخ \f(CW\*(C`221\*(C'\fR را برمی‌گرداند که پس از آن پاسخ متنی تمامی شماره مقالاتی که با الگو مطابقت دارند قرار می‌گیرد. .IP 5. 4 نام گروه خبری برای \fBnnrpd\fR به بزرگی و کوچکی حروف حساس است (case-sensitive). .IP 6. 4 اگر قابلیت IHAVE اعلام شده باشد، لزوماً برای کل نشست اعلام نخواهد شد (برخلاف بخش 3.4.1 در RFC\ 3977). برنامه \fBnnrpd\fR تنها زمانی قابلیت IHAVE را اعلام می‌کند که واقعاً در دسترس باشد. .IP 7. 4 برنامه \fBnnrpd\fR ساختار نحوی گسترده‌تری را برای الگوهای wildmat و محدوده‌ها مجاز می‌داند (به‌ویژه \f(CW\*(C`\-\*(C'\fR و \f(CW\*(C`\-\fR\f(CIarticle\-number\fR\f(CW\*(C'\fR). .IP 8. 4 هنگامی که تولید کلمات کلیدی استفاده می‌شود (یک ویژگی آزمایشی که با پارامتر \fIkeywords\fR در \fIinn.conf\fR فعال می‌شود)، عبارت \f(CW\*(C`Keywords:full\*(C'\fR در LIST OVERVIEW.FMT اعلام می‌شود، حتی با اینکه اطلاعات مرور اجمالی محاسبه می‌شوند و لزوماً از فیلدهای سربرگ Keywords به دست نمی‌آیند. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته‌شده توسط Rich $alz برای InterNetNews. پشتیبانی از مرور اجمالی (Overview) توسط Rob Robertston و Rich در ژانویه ۱۹۹۳ اضافه شد. عقب‌نشینی نمایی (Exponential backoff برای ارسال) توسط Dave Hayes در فوریه ۱۹۹۸ اضافه گردید. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" blocklistd(8), ctlinnd(8), innd(8), inn.conf(5), inn\-secrets.conf(5), libinn_uwildmat(3), nnrpd.track(5), passwd.nntp(5), readers.conf(5), signal(2).