pax_global_header00006660000000000000000000000064132024121700014502gustar00rootroot0000000000000052 comment=1afd8072b98472b3978583367dd37114d1407b93 firewalld-0.4.4.6/000077500000000000000000000000001320241217000136245ustar00rootroot00000000000000firewalld-0.4.4.6/.gitignore000066400000000000000000000007511320241217000156170ustar00rootroot00000000000000/aclocal.m4 /autom4te.cache /config.cache /config.guess /config.log /config.status /config/firewall-applet.desktop /config/firewall-config.desktop /config/org.fedoraproject.FirewallApplet.gschema.valid /config/org.fedoraproject.FirewallApplet.gschema.xml /config/org.fedoraproject.FirewallD1.policy /configure /doc/man/man1/*.1 /doc/man/man5/*.5 /doxygen.conf /firewalld-*.tar.bz2 /install-sh /missing /po/* /src/firewall/config/__init__.py Makefile Makefile.in !/po/*.po !/po/POTFILES.in firewalld-0.4.4.6/.travis.yml000066400000000000000000000013531320241217000157370ustar00rootroot00000000000000# We need sudo so we can install dependencies sudo: required dist: trusty language: python python: - "2.7" - "3.3" - "3.4" - "3.5" - "nightly" # Install necessary dependencies before_install: - sudo apt-get update -qq - sudo apt-get install -qq -y autoconf automake pkg-config intltool libglib2.0-dev xsltproc docbook-xsl docbook-xml iptables ipset ebtables python-slip-dbus libxml2-utils realpath script: # Do a parallel build to spot potential dependency problems. # No ebtables-restore in ubuntu 14.04 - ./autogen.sh --with-ebtables-restore=/bin/false && make -j32 - cd config && ./xmlschema/check.sh # uncomment to add IRC notifications # #notifications: # irc: "chat.freenode.net#firewalld" # use_notice: true firewalld-0.4.4.6/COPYING000066400000000000000000000432541320241217000146670ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. firewalld-0.4.4.6/Makefile.am000066400000000000000000000104131320241217000156570ustar00rootroot00000000000000SUBDIRS = config doc po shell-completion src DIST_TARGETS = dist-gzip EXTRA_DIST = \ COPYING \ README \ autogen.sh \ ${PACKAGE_NAME}.spec \ fix_python_shebang.sh CLEANFILES = *~ *\# .\#* *.tar* DISTCLEANFILES = config.log intltool-* DISTCLEANDIRS = autom4te.cache ${PACKAGE_NAME}-* all: report tag: @spec_ver=`awk '/Version:/ { print $$2}' ${PACKAGE_NAME}.spec`; \ if test "$$spec_ver" != "${PACKAGE_VERSION}"; then \ echo "Spec file and package versions differ: $$spec_ver != ${PACKAGE_VERSION}"; \ secs=10; \ echo -n "Using ./autogen.sh in $$secs seconds: "; \ for i in `seq $$secs -1 1`; do echo -n "."; sleep 1; done; echo; \ ./autogen.sh; \ echo; \ echo "Please run make again to apply version changes."; \ exit 1; \ fi @if ! git diff --quiet --exit-code; then \ clear; \ echo -n "========================================"; \ echo "========================================"; \ PAGER= git diff; \ echo -n "========================================"; \ echo "========================================"; \ echo "Do you want to commit these changes? (y/N)"; \ read answer; \ [ "$$answer" == "Y" -o "$$answer" == "y" ] || exit 1; \ git commit -a -m "$(PACKAGE_TAG)"; \ fi git tag -f $(PACKAGE_TAG) git push git push --tags dist: clean-docs update-docs dist-check: @rm -f _dist_check_failed @(cat config/Makefile.am | sed -n '/^CONFIG_FILES/,/^$$/p' | head -n-1 | tail -n+2) > _config @(cd config; git ls-files icmptypes helpers ipsets services zones | sort | sed -e 's/^/\t/' | sed ':a;N;$$!ba;s/\n/ \\\n/g') > _provided_config @diff -u1B _config _provided_config > _missing_config; \ if [ $$? -ne 0 ]; then \ echo; \ echo "============================================================================="; \ echo " Fix config/Makefile.am:"; \ echo "============================================================================="; \ touch _dist_check_failed; \ cat _missing_config | tail -n +3; \ echo; \ fi @rm -f _config _provided_config _missing_config @(cat src/Makefile.am | sed -n '/^nobase_dist_python_DATA/,/^$$/p' | head -n-1 | tail -n+2) > _config @(cd src; git ls-files firewall | sort | sed -e 's/^/\t/' -e "s/.py.in/.py/" | sed ':a;N;$$!ba;s/\n/ \\\n/g') > _provided_config @diff -u1B _config _provided_config > _missing_config; \ if [ $$? -ne 0 ]; then \ echo; \ echo "============================================================================="; \ echo " Fix src/Makefile.am:"; \ echo "============================================================================="; \ touch _dist_check_failed; \ cat _missing_config | tail -n +3; \ echo; \ fi @rm -f _config _provided_config _missing_config @if [ -f "_dist_check_failed" ]; then \ rm -f _dist_check_failed; \ exit 1; \ fi update-docs: $(MAKE) -C doc/xml clean-docs: $(MAKE) -C doc/xml clean pull-translations: zanata-cli -B pull push-translations: zanata-cli -B push update-translations: pull-translations update-po push-translations archive: dist-check $(desktop_DATA) tag dist local: distclean @rm -rf ${PACKAGE_NAME}-$(PACKAGE_VERSION).tar.gz @rm -rf /tmp/${PACKAGE_NAME}-$(PACKAGE_VERSION) /tmp/${PACKAGE_NAME} @dir=$$PWD; cd /tmp; cp -a $$dir ${PACKAGE_NAME} @mv /tmp/${PACKAGE_NAME} /tmp/${PACKAGE_NAME}-$(PACKAGE_VERSION) @dir=$$PWD; cd /tmp; tar --gzip -cSpf $$dir/${PACKAGE_NAME}-$(PACKAGE_VERSION).tar.gz ${PACKAGE_NAME}-$(PACKAGE_VERSION) @rm -rf /tmp/${PACKAGE_NAME}-$(PACKAGE_VERSION) @echo "The archive is in ${PACKAGE_NAME}-$(PACKAGE_VERSION).tar.gz" test-rpm: dist @rpmbuild -ta $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz test-srpm: dist @rpmbuild -ts $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz update-po: ls $(top_srcdir)/po/*.po | sed 's/.*\/po\///;s/.po//' > $(top_srcdir)/po/LINGUAS $(MAKE) -C po update-po ${PACKAGE_NAME}.pot clean-po: @for cat in `cat ${top_srcdir}/po/LINGUAS`; do \ msgattrib --translated --no-fuzzy --no-obsolete --force-po --no-location --clear-previous --strict $(top_srcdir)/po/$$cat.po -o $(top_srcdir)/po/$$cat.out; \ mv -f $(top_srcdir)/po/$$cat.out $(top_srcdir)/po/$$cat.po; \ done report: @for cat in `cat ${top_srcdir}/po/LINGUAS`; do \ echo -n "$$cat: "; \ $(MSGFMT) --statistics -o /dev/null $(top_srcdir)/po/$$cat.po; \ done distclean-local: -test -z "$(DISTCLEANDIRS)" || rm -rf $(DISTCLEANDIRS) firewalld-0.4.4.6/README000066400000000000000000000064451320241217000145150ustar00rootroot00000000000000README for firewalld ==================== firewalld provides a dynamically managed firewall with support for network or firewall zones to define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall settings and for ethernet bridges and a separation of runtime and permanent configuration options. It also provides an interface for services or applications to add ip*tables and ebtables rules directly. Development ----------- To check out the source repository, you can use: git clone https://github.com/firewalld/firewalld.git This will create a local copy of the repository. Working With The Source Repository ---------------------------------- You can use the source repository directly to test out changes. Change into the firewalld base directory and set the following environment variables. export FIREWALLD_DEVEL_ENV=$(pwd)/src export PYTHONPATH=$FIREWALLD_DEVEL_ENV Install the following requirements or packages: desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units iptables ebtables ipset For use with Python 3: python3-dbus python3-slip-dbus python3-decorator python3-gobject For use with Python 2: dbus-python python-slip-dbus (http://fedorahosted.org/python-slip) python-decorator pygobject3-base (non-cairo parts of pygobject3) To be able to create man pages and documentation from docbook files: docbook-style-xsl Use ./autogen.sh in the base directory to create for example src/firewall/config/__init__.py Use make to create the documentation and to update the po files. Now you are done. RPM package ----------- For Fedora and RHEL based distributions, there is a spec file in the source repo named firewalld.spec. This should be usable for Fedora versions >= 16 and RHEL >= 7. Links ----- Homepage: http://www.firewalld.org Report a bug: https://github.com/firewalld/firewalld/issues Git repo browser: https://github.com/firewalld/firewalld Git repo: https://github.com/firewalld/firewalld.git Documentation: http://www.firewalld.org/documentation/ Mailing lists ------------- For usage: https://lists.fedorahosted.org/archives/list/firewalld-users@lists.fedorahosted.org/ For development: https://lists.fedorahosted.org/archives/list/firewalld-devel@lists.fedorahosted.org/ Directory Structure ------------------- config/ Configuration files config/icmptypes/ Predefined ICMP types config/services/ Predefined services config/xmlschema/ XML Schema checks for config files config/zones/ Predefined zones config/ipsets/ Predefined ipsets doc/ Documentation doc/man/ Base directory for man pages doc/man/man1/ Man(1) pages doc/man/man5/ Man(5) pages patches/ Common patches po/ Translations shell-completion/ Base directory for auto completion scripts shell-completion/bash/ Bash auto completion scripts src/ Source tree src/firewall/ Import tree for the sevice and all applications src/icons/ Icons in the sizes: 16, 22, 24, 32, 48 and scalable src/tests/ Test scripts firewalld-0.4.4.6/TODO000066400000000000000000000023471320241217000143220ustar00rootroot00000000000000- document icmptype, service and zone filenames: "{name}.xml" - document unused icmptype, service and zone filenames: ".{name}.xml", .. - ui: visualize unknown services and icmptypes in zones - create configuration program for anaconda (kickstart firewall config) - fix firewall-config-scfw to use proper zones for trust, masq, and forward_ports, think of NM also - create new zone in firewall-config-scfw if default zone is missing - log errors for zone, service and icmtype readers in config interface file update loader - nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead. - check zone, service and icmptype names in UI - should default zone be changable by all users? - add firewalld.dbus man page - firewall-applet man page - firewall-offline-cmd man page - check TODOs in code Future Features: - reflect config changes in firewalld status? CONFIG_CHANGED/RELOAD_NEEDED? - add copy zone/service/icmptype in the UI - user management vi DBUS, polkit not sufficient - add simple user policies: USER_ALLOWED, USER_FORBIDDEN per main interfaces direct, zone, config - ipset integration - direct interface also for zones - register applet functionality? firewalld-0.4.4.6/autogen.sh000077500000000000000000000006021320241217000156230ustar00rootroot00000000000000#! /bin/sh srcdir=`dirname $0` test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` cd $srcdir rm -rf $srcdir/autom* rm -f $srcdir/config.* # create po/LINGUAS ls po/*.po | sed -e 's/.po//' | sed -e 's/po\///' > po/LINGUAS intltoolize --force --automake autoreconf --force -v --install --symlink || exit 1 cd $ORIGDIR || exit $? if test -z "$NOCONFIGURE"; then $srcdir/configure "$@" fi firewalld-0.4.4.6/config/000077500000000000000000000000001320241217000150715ustar00rootroot00000000000000firewalld-0.4.4.6/config/FirewallD.conf000066400000000000000000000020741320241217000176140ustar00rootroot00000000000000 firewalld-0.4.4.6/config/Makefile.am000066400000000000000000000254711320241217000171360ustar00rootroot00000000000000sconfdir = $(sysconfdir)/firewalld prefixlibdir = ${prefix}/lib/firewalld dist_sconf_DATA = firewalld.conf lockdown-whitelist.xml desktop_FILES = firewall-config.desktop.in desktopdir = $(datadir)/applications desktop_DATA = $(desktop_FILES:.in=) appdata_FILES = firewall-config.appdata.xml.in appdatadir = $(datadir)/appdata/ appdata_DATA = $(appdata_FILES:.in=) applet_desktop_FILES = firewall-applet.desktop.in applet_desktopdir = $(sysconfdir)/xdg/autostart applet_desktop_DATA = $(applet_desktop_FILES:.in=) confdir = $(sysconfdir)/firewall dist_conf_DATA = applet.conf polkit1_action_FILES = org.fedoraproject.FirewallD1.server.policy.in \ org.fedoraproject.FirewallD1.desktop.policy.in polkit1_actiondir = $(datadir)/polkit-1/actions polkit1_action_DATA = $(polkit1_action_FILES:.in=) dbus_policydir = $(sysconfdir)/dbus-1/system.d dist_dbus_policy_DATA = FirewallD.conf gsettings_in_file = org.fedoraproject.FirewallConfig.gschema.xml.in gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml) xmlschemadir = $(prefixlibdir)/xmlschema dist_xmlschema_DATA = \ xmlschema/icmptype.xsd \ xmlschema/ipset.xsd \ xmlschema/service.xsd \ xmlschema/zone.xsd dist_xmlschema_SCRIPTS = xmlschema/check.sh BUILT_SOURCES = \ $(desktop_DATA) \ $(appdata_DATA) \ $(applet_desktop_DATA) \ $(polkit1_action_DATA) \ $(gsettings_SCHEMAS) \ firewalld-sysctls.conf \ firewalld.service @INTLTOOL_DESKTOP_RULE@ @INTLTOOL_POLICY_RULE@ @INTLTOOL_XML_NOMERGE_RULE@ @GSETTINGS_RULES@ all: $(desktop_DATA) $(appdata_DATA) $(applet_desktop_DATA) $(polkit1_action_DATA) $(gsettings_SCHEMAS) CLEANFILES = *~ *\# .\#* firewalld.service firewalld-sysctls.conf DISTCLEANFILES = \ $(desktop_DATA) \ $(appdata_DATA) \ $(applet_desktop_DATA) \ $(polkit1_action_DATA) \ $(gsettings_SCHEMAS) CONFIG_FILES = \ helpers/amanda.xml \ helpers/ftp.xml \ helpers/h323.xml \ helpers/irc.xml \ helpers/netbios-ns.xml \ helpers/pptp.xml \ helpers/Q.931.xml \ helpers/RAS.xml \ helpers/sane.xml \ helpers/sip.xml \ helpers/snmp.xml \ helpers/tftp.xml \ icmptypes/address-unreachable.xml \ icmptypes/bad-header.xml \ icmptypes/beyond-scope.xml \ icmptypes/communication-prohibited.xml \ icmptypes/destination-unreachable.xml \ icmptypes/echo-reply.xml \ icmptypes/echo-request.xml \ icmptypes/failed-policy.xml \ icmptypes/fragmentation-needed.xml \ icmptypes/host-precedence-violation.xml \ icmptypes/host-prohibited.xml \ icmptypes/host-redirect.xml \ icmptypes/host-unknown.xml \ icmptypes/host-unreachable.xml \ icmptypes/ip-header-bad.xml \ icmptypes/neighbour-advertisement.xml \ icmptypes/neighbour-solicitation.xml \ icmptypes/network-prohibited.xml \ icmptypes/network-redirect.xml \ icmptypes/network-unknown.xml \ icmptypes/network-unreachable.xml \ icmptypes/no-route.xml \ icmptypes/packet-too-big.xml \ icmptypes/parameter-problem.xml \ icmptypes/port-unreachable.xml \ icmptypes/precedence-cutoff.xml \ icmptypes/protocol-unreachable.xml \ icmptypes/redirect.xml \ icmptypes/reject-route.xml \ icmptypes/required-option-missing.xml \ icmptypes/router-advertisement.xml \ icmptypes/router-solicitation.xml \ icmptypes/source-quench.xml \ icmptypes/source-route-failed.xml \ icmptypes/time-exceeded.xml \ icmptypes/timestamp-reply.xml \ icmptypes/timestamp-request.xml \ icmptypes/tos-host-redirect.xml \ icmptypes/tos-host-unreachable.xml \ icmptypes/tos-network-redirect.xml \ icmptypes/tos-network-unreachable.xml \ icmptypes/ttl-zero-during-reassembly.xml \ icmptypes/ttl-zero-during-transit.xml \ icmptypes/unknown-header-type.xml \ icmptypes/unknown-option.xml \ ipsets/README \ services/amanda-client.xml \ services/amanda-k5-client.xml \ services/bacula-client.xml \ services/bacula.xml \ services/bgp.xml \ services/bitcoin-rpc.xml \ services/bitcoin-testnet-rpc.xml \ services/bitcoin-testnet.xml \ services/bitcoin.xml \ services/ceph-mon.xml \ services/ceph.xml \ services/cfengine.xml \ services/condor-collector.xml \ services/ctdb.xml \ services/dhcpv6-client.xml \ services/dhcpv6.xml \ services/dhcp.xml \ services/dns.xml \ services/docker-registry.xml \ services/docker-swarm.xml \ services/dropbox-lansync.xml \ services/elasticsearch.xml \ services/freeipa-ldaps.xml \ services/freeipa-ldap.xml \ services/freeipa-replication.xml \ services/freeipa-trust.xml \ services/ftp.xml \ services/ganglia-client.xml \ services/ganglia-master.xml \ services/git.xml \ services/high-availability.xml \ services/https.xml \ services/http.xml \ services/imaps.xml \ services/imap.xml \ services/ipp-client.xml \ services/ipp.xml \ services/ipsec.xml \ services/ircs.xml \ services/irc.xml \ services/iscsi-target.xml \ services/kadmin.xml \ services/kerberos.xml \ services/kibana.xml \ services/klogin.xml \ services/kpasswd.xml \ services/kprop.xml \ services/kshell.xml \ services/ldaps.xml \ services/ldap.xml \ services/libvirt-tls.xml \ services/libvirt.xml \ services/managesieve.xml \ services/mdns.xml \ services/minidlna.xml \ services/mosh.xml \ services/mountd.xml \ services/mssql.xml \ services/ms-wbt.xml \ services/murmur.xml \ services/mysql.xml \ services/nfs.xml \ services/nfs3.xml \ services/nrpe.xml \ services/ntp.xml \ services/openvpn.xml \ services/ovirt-imageio.xml \ services/ovirt-storageconsole.xml \ services/ovirt-vmconsole.xml \ services/pmcd.xml \ services/pmproxy.xml \ services/pmwebapis.xml \ services/pmwebapi.xml \ services/pop3s.xml \ services/pop3.xml \ services/postgresql.xml \ services/privoxy.xml \ services/proxy-dhcp.xml \ services/ptp.xml \ services/pulseaudio.xml \ services/puppetmaster.xml \ services/quassel.xml \ services/radius.xml \ services/redis.xml \ services/RH-Satellite-6.xml \ services/rpc-bind.xml \ services/rsh.xml \ services/rsyncd.xml \ services/samba-client.xml \ services/samba.xml \ services/sane.xml \ services/sips.xml \ services/sip.xml \ services/smtp-submission.xml \ services/smtps.xml \ services/smtp.xml \ services/snmptrap.xml \ services/snmp.xml \ services/spideroak-lansync.xml \ services/squid.xml \ services/ssh.xml \ services/synergy.xml \ services/syslog-tls.xml \ services/syslog.xml \ services/telnet.xml \ services/tftp-client.xml \ services/tftp.xml \ services/tinc.xml \ services/tor-socks.xml \ services/transmission-client.xml \ services/vdsm.xml \ services/vnc-server.xml \ services/wbem-https.xml \ services/xmpp-bosh.xml \ services/xmpp-client.xml \ services/xmpp-local.xml \ services/xmpp-server.xml \ services/zabbix-agent.xml \ services/zabbix-server.xml \ zones/block.xml \ zones/dmz.xml \ zones/drop.xml \ zones/external.xml \ zones/home.xml \ zones/internal.xml \ zones/public.xml \ zones/trusted.xml \ zones/work.xml EXTRA_DIST = \ $(desktop_FILES) \ $(appdata_FILES) \ $(applet_desktop_FILES) \ $(polkit1_action_FILES) \ $(gsettings_in_file) \ $(CONFIG_FILES) \ $(dist_xmlschema_DATA) \ firewalld.init \ firewalld-sysctls.conf.in \ firewalld.service.in \ firewalld.sysconfig \ macros.firewalld INSTALL_TARGETS = install-config UNINSTALL_TARGETS = uninstall-config INSTALL_TARGETS += install-modprobe.d UNINSTALL_TARGETS += uninstall-modprobe.d if USE_SYSTEMD INSTALL_TARGETS += install-service UNINSTALL_TARGETS += uninstall-service else INSTALL_TARGETS += install-init UNINSTALL_TARGETS += uninstall-init endif if INSTALL_SYSCONFIG INSTALL_TARGETS += install-sysconfig UNINSTALL_TARGETS += uninstall-sysconfig endif if INSTALL_RPMMACROS INSTALL_TARGETS += install-rpmmacros UNINSTALL_TARGETS += uninstall-rpmmacros endif edit = sed \ -e 's|@bindir[@]|$(bindir)|g' \ -e 's|@sbindir[@]|$(sbindir)|g' \ -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ -e 's|@localstatedir[@]|$(localstatedir)|g' \ -e 's|@MODPROBE[@]|$(MODPROBE)|g' \ -e 's|@SYSCTL[@]|$(SYSCTL)|g' firewalld.service: firewalld.service.in $(edit) $< >$@ firewalld-sysctls.conf: firewalld-sysctls.conf.in $(edit) $< >$@ install-sysconfig: $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig $(INSTALL_DATA) $(srcdir)/firewalld.sysconfig $(DESTDIR)$(sysconfdir)/sysconfig/firewalld uninstall-sysconfig: rm -f $(DESTDIR)$(sysconfdir)/sysconfig/firewalld rmdir $(DESTDIR)$(sysconfdir)/sysconfig || : install-rpmmacros: $(MKDIR_P) $(DESTDIR)$(prefix)/lib/rpm/macros.d $(INSTALL_DATA) $(srcdir)/macros.firewalld $(DESTDIR)$(prefix)/lib/rpm/macros.d uninstall-rpmmacros: rm -f $(DESTDIR)$(prefix)/lib/rpm/macros.d/macros.firewalld rmdir $(DESTDIR)$(prefix)/lib/rpm/macros.d || : install-init: install-sysconfig $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d $(INSTALL_SCRIPT) $(srcdir)/firewalld.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/firewalld uninstall-init: uninstall-sysconfig rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/firewalld rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || : install-service: install-sysconfig $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNITDIR) $(INSTALL_DATA) firewalld.service $(DESTDIR)$(SYSTEMD_UNITDIR)/firewalld.service uninstall-service: uninstall-sysconfig rm -f $(DESTDIR)$(SYSTEMD_UNITDIR)/firewalld.service rmdir $(DESTDIR)$(SYSTEMD_UNITDIR) || : install-modprobe.d: $(MKDIR_P) $(DESTDIR)$(sysconfdir)/modprobe.d $(INSTALL_DATA) firewalld-sysctls.conf $(DESTDIR)$(sysconfdir)/modprobe.d/firewalld-sysctls.conf uninstall-modprobe.d: rm -f $(DESTDIR)$(sysconfdir)/modprobe.d/firewalld-sysctls.conf rmdir $(DESTDIR)$(sysconfdir)/modprobe.d || : install-config: $(MKDIR_P) $(DESTDIR)$(sconfdir) $(MKDIR_P) $(DESTDIR)$(sconfdir)/icmptypes $(MKDIR_P) $(DESTDIR)$(sconfdir)/ipsets $(MKDIR_P) $(DESTDIR)$(sconfdir)/services $(MKDIR_P) $(DESTDIR)$(sconfdir)/zones $(MKDIR_P) $(DESTDIR)$(sconfdir)/helpers $(MKDIR_P) $(DESTDIR)$(prefixlibdir) cp -r icmptypes $(DESTDIR)$(prefixlibdir) cp -r ipsets $(DESTDIR)$(prefixlibdir) cp -r services $(DESTDIR)$(prefixlibdir) cp -r zones $(DESTDIR)$(prefixlibdir) cp -r helpers $(DESTDIR)$(prefixlibdir) uninstall-config: rmdir $(DESTDIR)$(sconfdir)/icmptypes rmdir $(DESTDIR)$(sconfdir)/ipsets rmdir $(DESTDIR)$(sconfdir)/services rmdir $(DESTDIR)$(sconfdir)/zones rm -f $(DESTDIR)$(prefixlibdir)/icmptypes/* rmdir $(DESTDIR)$(prefixlibdir)/icmptypes rm -f $(DESTDIR)$(prefixlibdir)/ipsets/* rmdir $(DESTDIR)$(prefixlibdir)/ipsets rm -f $(DESTDIR)$(prefixlibdir)/services/* rmdir $(DESTDIR)$(prefixlibdir)/services rm -f $(DESTDIR)$(prefixlibdir)/zones/* rmdir $(DESTDIR)$(prefixlibdir)/zones rm -f $(DESTDIR)$(prefixlibdir)/helpers/* rmdir $(DESTDIR)$(prefixlibdir)/helpers install-data-local: $(INSTALL_TARGETS) uninstall-local: $(UNINSTALL_TARGETS) install-data-hook: cd $(DESTDIR)$(polkit1_actiondir) && \ mv org.fedoraproject.FirewallD1.server.policy org.fedoraproject.FirewallD1.server.policy.choice && \ mv org.fedoraproject.FirewallD1.desktop.policy org.fedoraproject.FirewallD1.desktop.policy.choice && \ rm -f org.fedoraproject.FirewallD1.policy && \ $(LN_S) org.fedoraproject.FirewallD1.server.policy.choice org.fedoraproject.FirewallD1.policy firewalld-0.4.4.6/config/applet.conf000066400000000000000000000001611320241217000172230ustar00rootroot00000000000000[General] notifications=false show-inactive=false blink=false blink-count=5 shields-up=block shields-down=public firewalld-0.4.4.6/config/firewall-applet.desktop.in000066400000000000000000000003121320241217000221550ustar00rootroot00000000000000[Desktop Entry] _Name=Firewall Applet _Comment=Firewall Applet Icon=firewall-applet Categories=System;Settings;Security; Exec=/usr/bin/firewall-applet Type=Application StartupNotify=true Terminal=false firewalld-0.4.4.6/config/firewall-config.appdata.xml.in000066400000000000000000000024141320241217000227020ustar00rootroot00000000000000 firewall-config.desktop CC0-1.0 GPL-2.0+

Firewall Configuration provides a graphical tool for administering firewall.

Allows to inspect and set:

  • Runtime and permanent firewall configuration
  • Predefined zones (levels of trust for network connections)
  • Predefined services (port/protocol, netfilter helper module)
  • Port forwarding, masquerading, ICMP blocking
  • Complex firewall rules a.k.a. Rich Language
  • Iptables rules a.k.a. Direct Interface
https://raw.githubusercontent.com/firewalld/firewalld/master/doc/firewall-config.png http://www.firewalld.org https://github.com/firewalld/firewalld/issues https://fedora.zanata.org/project/view/firewalld twoerner_at_redhat.com
firewalld-0.4.4.6/config/firewall-config.desktop.in000066400000000000000000000005231320241217000221410ustar00rootroot00000000000000[Desktop Entry] _Name=Firewall _Comment=Firewall Configuration Icon=firewall-config Categories=System;Settings;Security; # Translators: These are searchable keywords for the firewall configuration tool _Keywords=firewall;network;security;iptables;netfilter; Exec=/usr/bin/firewall-config Type=Application StartupNotify=true Terminal=false firewalld-0.4.4.6/config/firewalld-sysctls.conf.in000066400000000000000000000002001320241217000220100ustar00rootroot00000000000000install nf_conntrack @MODPROBE@ --ignore-install nf_conntrack && @SYSCTL@ --pattern 'net[.]netfilter[.]nf_conntrack.*' --system firewalld-0.4.4.6/config/firewalld.conf000066400000000000000000000037261320241217000177210ustar00rootroot00000000000000# firewalld config file # default zone # The default zone used if an empty zone string is used. # Default: public DefaultZone=public # Minimal mark # Marks up to this minimum are free for use for example in the direct # interface. If more free marks are needed, increase the minimum # Default: 100 MinimalMark=100 # Clean up on exit # If set to no or false the firewall configuration will not get cleaned up # on exit or stop of firewalld # Default: yes CleanupOnExit=yes # Lockdown # If set to enabled, firewall changes with the D-Bus interface will be limited # to applications that are listed in the lockdown whitelist. # The lockdown whitelist file is lockdown-whitelist.xml # Default: no Lockdown=no # IPv6_rpfilter # Performs a reverse path filter test on a packet for IPv6. If a reply to the # packet would be sent via the same interface that the packet arrived on, the # packet will match and be accepted, otherwise dropped. # The rp_filter for IPv4 is controlled using sysctl. # Default: yes IPv6_rpfilter=yes # IndividualCalls # Do not use combined -restore calls, but individual calls. This increases the # time that is needed to apply changes and to start the daemon, but is good for # debugging. # Default: no IndividualCalls=no # LogDenied # Add logging rules right before reject and drop rules in the INPUT, FORWARD # and OUTPUT chains for the default rules and also final reject and drop rules # in zones. Possible values are: all, unicast, broadcast, multicast and off. # Default: off LogDenied=off # AutomaticHelpers # For the secure use of iptables and connection tracking helpers it is # recommended to turn AutomaticHelpers off. But this might have side effects on # other services using the netfilter helpers as the sysctl setting in # /proc/sys/net/netfilter/nf_conntrack_helper will be changed. # With the system setting, the default value set in the kernel or with sysctl # will be used. Possible values are: yes, no and system. # Default: system AutomaticHelpers=system firewalld-0.4.4.6/config/firewalld.init000077500000000000000000000042511320241217000177340ustar00rootroot00000000000000#!/bin/sh # # firewalld Startup script for the firewall daemon # # chkconfig: - 08 92 # description: The firewall deamon manages the firewall and handles dynamic # firewall changes. # # config: /etc/firewalld # pidfile: /var/run/firewalld.pid # ### BEGIN INIT INFO # Provides: firewalld # Required-Start: $syslog $local_fs messagebus # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: # Default-Stop: # Short-Description: # Description: ### END INIT INFO # Source function library. . /etc/init.d/functions exec="/usr/sbin/firewalld" prog="firewalld" #config="/etc/firewalld/firewalld.conf" [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog lockfile=/var/lock/subsys/$prog user_check() { if [ $UID -ne 0 ] ; then echo "User has insufficient privilege." exit 4 fi } start() { user_check [ -x $exec ] || exit 5 # [ -f $config ] || exit 6 echo -n $"Starting $prog: " daemon $exec $FIREWALLD_ARGS retval=$? echo [ $retval -eq 0 ] && touch $lockfile } stop() { user_check echo -n $"Stopping $prog: " killproc $prog retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile } restart() { stop start } reload() { user_check echo -n $"Reloading firewall: " firewall-cmd --reload retval=$? [ $retval -eq 0 ] && success || failure echo } force_reload() { restart } rh_status() { user_check # run checks to determine if the service is running or use generic status status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } usage() { echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 restart ;; usage) usage exit 0 ;; *) usage exit 2 esac exit $? firewalld-0.4.4.6/config/firewalld.service.in000066400000000000000000000012211320241217000210250ustar00rootroot00000000000000[Unit] Description=firewalld - dynamic firewall daemon Before=network-pre.target Wants=network-pre.target After=dbus.service After=polkit.service Conflicts=iptables.service ip6tables.service ebtables.service ipset.service Documentation=man:firewalld(1) [Service] EnvironmentFile=-/etc/sysconfig/firewalld ExecStart=@sbindir@/firewalld --nofork --nopid $FIREWALLD_ARGS ExecReload=/bin/kill -HUP $MAINPID # supress to log debug and error output also to /var/log/messages StandardOutput=null StandardError=null Type=dbus BusName=org.fedoraproject.FirewallD1 KillMode=mixed [Install] WantedBy=multi-user.target Alias=dbus-org.fedoraproject.FirewallD1.service firewalld-0.4.4.6/config/firewalld.sysconfig000066400000000000000000000001111320241217000207610ustar00rootroot00000000000000# firewalld command line args # possible values: --debug FIREWALLD_ARGS= firewalld-0.4.4.6/config/helpers/000077500000000000000000000000001320241217000165335ustar00rootroot00000000000000firewalld-0.4.4.6/config/helpers/Q.931.xml000066400000000000000000000001721320241217000177700ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/RAS.xml000066400000000000000000000001721320241217000177020ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/amanda.xml000066400000000000000000000001751320241217000205010ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/ftp.xml000066400000000000000000000001671320241217000200520ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/h323.xml000066400000000000000000000001251320241217000177320ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/irc.xml000066400000000000000000000002061320241217000200300ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/netbios-ns.xml000066400000000000000000000002151320241217000213340ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/pptp.xml000066400000000000000000000002101320241217000202310ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/sane.xml000066400000000000000000000001721320241217000202030ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/sip.xml000066400000000000000000000002361320241217000200510ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/snmp.xml000066400000000000000000000002071320241217000202310ustar00rootroot00000000000000 firewalld-0.4.4.6/config/helpers/tftp.xml000066400000000000000000000001701320241217000202300ustar00rootroot00000000000000 firewalld-0.4.4.6/config/icmptypes/000077500000000000000000000000001320241217000171065ustar00rootroot00000000000000firewalld-0.4.4.6/config/icmptypes/address-unreachable.xml000066400000000000000000000006011320241217000235210ustar00rootroot00000000000000 Address Unreachable This error message is generated by a router, or by the IPv6 layer in the originating node, in response to a packet that cannot be delivered to its destination address for reasons other than congestion. firewalld-0.4.4.6/config/icmptypes/bad-header.xml000066400000000000000000000004021320241217000216000ustar00rootroot00000000000000 Bad Header This error message is created if there has been an error in the header of a packet. firewalld-0.4.4.6/config/icmptypes/beyond-scope.xml000066400000000000000000000004461320241217000222230ustar00rootroot00000000000000 Beyond Scope This error message is sent if transmitting a package whould cross a zone boundary of the scope of the source address. firewalld-0.4.4.6/config/icmptypes/communication-prohibited.xml000066400000000000000000000004271320241217000246270ustar00rootroot00000000000000 Communication Prohibited This error message is sent if communication with destination administratively prohibited. firewalld-0.4.4.6/config/icmptypes/destination-unreachable.xml000066400000000000000000000003361320241217000244220ustar00rootroot00000000000000 Destination Unreachable This error message is generated by a host or gateway if the destination is not reachable. firewalld-0.4.4.6/config/icmptypes/echo-reply.xml000066400000000000000000000002551320241217000217010ustar00rootroot00000000000000 Echo Reply (pong) This message is the answer to an Echo Request. firewalld-0.4.4.6/config/icmptypes/echo-request.xml000066400000000000000000000003221320241217000222310ustar00rootroot00000000000000 Echo Request (ping) This message is used to test if a host is reachable mostly with the ping utility. firewalld-0.4.4.6/config/icmptypes/failed-policy.xml000066400000000000000000000004051320241217000223500ustar00rootroot00000000000000 Failed Policy This error message is generated if the source address failed ingress/egress policy. firewalld-0.4.4.6/config/icmptypes/fragmentation-needed.xml000066400000000000000000000004301320241217000237050ustar00rootroot00000000000000 Fragmentation Needed This error message is sent if fragmentation is required, and Don not Fragment (DF) flag is set. firewalld-0.4.4.6/config/icmptypes/host-precedence-violation.xml000066400000000000000000000004121320241217000246770ustar00rootroot00000000000000 Host Precedence Violation This error message is sent if the communication administratively prohibited. firewalld-0.4.4.6/config/icmptypes/host-prohibited.xml000066400000000000000000000004011320241217000227270ustar00rootroot00000000000000 Host Prohibited This error message is sent if access from a host administratively prohibited. firewalld-0.4.4.6/config/icmptypes/host-redirect.xml000066400000000000000000000003621320241217000224050ustar00rootroot00000000000000 Host Redirect This message is sent if the datagram is redirected for the host. firewalld-0.4.4.6/config/icmptypes/host-unknown.xml000066400000000000000000000003571320241217000223070ustar00rootroot00000000000000 Host Unknown This error message is sent if the destination host is unknown. firewalld-0.4.4.6/config/icmptypes/host-unreachable.xml000066400000000000000000000003671320241217000230620ustar00rootroot00000000000000 Host Unreachable This error message is sent if the destination host is unreachable. firewalld-0.4.4.6/config/icmptypes/ip-header-bad.xml000066400000000000000000000003451320241217000222140ustar00rootroot00000000000000 Ip Header Bad This error message is sent if the IP header is bad. firewalld-0.4.4.6/config/icmptypes/neighbour-advertisement.xml000066400000000000000000000005431320241217000244640ustar00rootroot00000000000000 Neighbour Advertisement (Neighbor Advertisement) This informational message is sent in response to a neighbour-solicitation message in order to (unreliably) propagate new information quickly. firewalld-0.4.4.6/config/icmptypes/neighbour-solicitation.xml000066400000000000000000000007111320241217000243100ustar00rootroot00000000000000 Neighbour Solicitation (Neighbor Solicitation) This informational message is sent by a node to determine the link-layer address of a neighbor, or to verify that a neighbor is still reachable via a cached link-layer address. Neighbor Solicitations are also used for Duplicate Address Detection. firewalld-0.4.4.6/config/icmptypes/network-prohibited.xml000066400000000000000000000003721320241217000234520ustar00rootroot00000000000000 Network Prohibited This message is sent if the network is administratively prohibited. firewalld-0.4.4.6/config/icmptypes/network-redirect.xml000066400000000000000000000003701320241217000231200ustar00rootroot00000000000000 Network Redirect This message is sent if the datagram is redirected for the network. firewalld-0.4.4.6/config/icmptypes/network-unknown.xml000066400000000000000000000003571320241217000230230ustar00rootroot00000000000000 Network Unknown This message is sent if the destination network is unknown. firewalld-0.4.4.6/config/icmptypes/network-unreachable.xml000066400000000000000000000003671320241217000235760ustar00rootroot00000000000000 Network Unreachable This message is sent if the destination network is unreachable. firewalld-0.4.4.6/config/icmptypes/no-route.xml000066400000000000000000000003571320241217000214050ustar00rootroot00000000000000 No Route This error message is set if there is no route to the destination. firewalld-0.4.4.6/config/icmptypes/packet-too-big.xml000066400000000000000000000005101320241217000224310ustar00rootroot00000000000000 Packet Too Big This error message is sent by a router in response to a packet that it cannot forward because the packet is larger than the MTU of the outgoing link. firewalld-0.4.4.6/config/icmptypes/parameter-problem.xml000066400000000000000000000003411320241217000232440ustar00rootroot00000000000000 Parameter Problem This error message is generated if the IP header is bad, either by a missing option or bad length. firewalld-0.4.4.6/config/icmptypes/port-unreachable.xml000066400000000000000000000003511320241217000230620ustar00rootroot00000000000000 Port Unreachable This error message is sent if the port unreachable. firewalld-0.4.4.6/config/icmptypes/precedence-cutoff.xml000066400000000000000000000004001320241217000232030ustar00rootroot00000000000000 Precedence Cutoff This message is sent if the precedence is lower than the required minimum. firewalld-0.4.4.6/config/icmptypes/protocol-unreachable.xml000066400000000000000000000003711320241217000237410ustar00rootroot00000000000000 Protocol Unreachable This message is sent if the destination protocol is unreachable. firewalld-0.4.4.6/config/icmptypes/redirect.xml000066400000000000000000000002711320241217000214310ustar00rootroot00000000000000 Redirect This error message informs a host to send packets on another route. firewalld-0.4.4.6/config/icmptypes/reject-route.xml000066400000000000000000000003641320241217000222430ustar00rootroot00000000000000 Reject Route This error message is sent if the route to destination is rejected. firewalld-0.4.4.6/config/icmptypes/required-option-missing.xml000066400000000000000000000003611320241217000244250ustar00rootroot00000000000000 Required Option Missing This message is sent if a required option is missing. firewalld-0.4.4.6/config/icmptypes/router-advertisement.xml000066400000000000000000000003431320241217000240200ustar00rootroot00000000000000 Router Advertisement This message is used by routers to periodically announce the IP address of a multicast interface. firewalld-0.4.4.6/config/icmptypes/router-solicitation.xml000066400000000000000000000003371320241217000236520ustar00rootroot00000000000000 Router Solicitation This message is used by a host attached to a multicast link to request a Router Advertisement. firewalld-0.4.4.6/config/icmptypes/source-quench.xml000066400000000000000000000003701320241217000224110ustar00rootroot00000000000000 Source Quench This error message is generated to tell a host to reduce the pace at which it is sending packets. firewalld-0.4.4.6/config/icmptypes/source-route-failed.xml000066400000000000000000000003541320241217000235100ustar00rootroot00000000000000 Source Route Failed This message is sent if the source route has failed. firewalld-0.4.4.6/config/icmptypes/time-exceeded.xml000066400000000000000000000003751320241217000223370ustar00rootroot00000000000000 Time Exceeded This error message is generated if the time-to-live was exceeded either of a packet or of the reassembling of a fragmented packet. firewalld-0.4.4.6/config/icmptypes/timestamp-reply.xml000066400000000000000000000003511320241217000227630ustar00rootroot00000000000000 Timestamp Reply This message is used to reply to a timestamp message. firewalld-0.4.4.6/config/icmptypes/timestamp-request.xml000066400000000000000000000003441320241217000233220ustar00rootroot00000000000000 Timestamp Request This message is used for time synchronization. firewalld-0.4.4.6/config/icmptypes/tos-host-redirect.xml000066400000000000000000000004021320241217000232030ustar00rootroot00000000000000 TOS Host Redirect This message is the datagram is redirected for the type of service and host. firewalld-0.4.4.6/config/icmptypes/tos-host-unreachable.xml000066400000000000000000000004011320241217000236520ustar00rootroot00000000000000 TOS Host Unreachable This message is sent if the host is unreachable for the type of service. firewalld-0.4.4.6/config/icmptypes/tos-network-redirect.xml000066400000000000000000000004201320241217000237170ustar00rootroot00000000000000 TOS Network Redirect This message is sent if the datagram is redirected for the type of service and network. firewalld-0.4.4.6/config/icmptypes/tos-network-unreachable.xml000066400000000000000000000004151320241217000243730ustar00rootroot00000000000000 TOS Network Unreachable This error message is sent if the network is unreachable for the type of service. firewalld-0.4.4.6/config/icmptypes/ttl-zero-during-reassembly.xml000066400000000000000000000004451320241217000250450ustar00rootroot00000000000000 TTL Zero During Reassembly This error message is sent if a host fails to reassemble a fragmented datagram within its time limit. firewalld-0.4.4.6/config/icmptypes/ttl-zero-during-transit.xml000066400000000000000000000004001320241217000243520ustar00rootroot00000000000000 TTL Zero During Transit This error message is sent if the time to live exceeded in transit. firewalld-0.4.4.6/config/icmptypes/unknown-header-type.xml000066400000000000000000000004031320241217000235310ustar00rootroot00000000000000 Unknown Header Type This error message is sent if an unrecognized Next Header type encountered. firewalld-0.4.4.6/config/icmptypes/unknown-option.xml000066400000000000000000000003711320241217000226360ustar00rootroot00000000000000 Unknown Option This error message is sent if an unrecognized IPv6 option encountered. firewalld-0.4.4.6/config/ipsets/000077500000000000000000000000001320241217000164005ustar00rootroot00000000000000firewalld-0.4.4.6/config/ipsets/README000066400000000000000000000000351320241217000172560ustar00rootroot00000000000000Location for built-in ipsets firewalld-0.4.4.6/config/lockdown-whitelist.xml000066400000000000000000000004171320241217000214470ustar00rootroot00000000000000 firewalld-0.4.4.6/config/macros.firewalld000066400000000000000000000003571320241217000202550ustar00rootroot00000000000000# RPM macros for packages installing firewalld services/zones # put this into %post otherwise firewalld won't load new service/zone file %firewalld_reload() \ test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || : \ %{nil} firewalld-0.4.4.6/config/org.fedoraproject.FirewallConfig.gschema.xml.in000066400000000000000000000017711320241217000261430ustar00rootroot00000000000000 true Shows IPSets tab if true false Shows ICMP types tab if true false Shows direct chains and rules tab if true false Shows lockdown whitelist tab if true false Shows Helpers tab if true true Shows active zone bindings if true firewalld-0.4.4.6/config/org.fedoraproject.FirewallD1.desktop.policy.in000066400000000000000000000075151320241217000257450ustar00rootroot00000000000000 FirewallD http://www.firewalld.org Firewall System policy prevents inspecting and changing firewall auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.info org.fedoraproject.FirewallD1.config org.fedoraproject.FirewallD1.config.info org.fedoraproject.FirewallD1.direct org.fedoraproject.FirewallD1.direct.info org.fedoraproject.FirewallD1.policies org.fedoraproject.FirewallD1.policies.info General firewall information System policy prevents getting general firewall information yes yes yes Firewall configuration System policy prevents changing the firewall configuration auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.config.info Firewall configuration System policy prevents inspecting the firewall configuration yes yes yes Firewall direct interface System policy prevents using the firewall direct interface auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.direct.info Firewall direct interface System policy prevents inspecting the firewall direct interface yes yes yes Firewall policies interface System policy prevents using the firewall policies interface auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.policies.info Firewall policies interface System policy prevents inspecting the firewall policies interface yes yes yes firewalld-0.4.4.6/config/org.fedoraproject.FirewallD1.server.policy.in000066400000000000000000000076711320241217000256050ustar00rootroot00000000000000 FirewallD http://www.firewalld.org Firewall System policy prevents inspecting and changing firewall auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.info org.fedoraproject.FirewallD1.config org.fedoraproject.FirewallD1.config.info org.fedoraproject.FirewallD1.direct org.fedoraproject.FirewallD1.direct.info org.fedoraproject.FirewallD1.policies org.fedoraproject.FirewallD1.policies.info General firewall information System policy prevents getting general firewall information yes yes yes Firewall configuration System policy prevents changing the firewall configuration auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.config.info Firewall configuration System policy prevents inspecting the firewall configuration auth_admin_keep auth_admin_keep auth_admin_keep Firewall direct interface System policy prevents using the firewall direct interface auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.direct.info Firewall direct interface System policy prevents inspecting the firewall direct interface auth_admin_keep auth_admin_keep auth_admin_keep Firewall policies interface System policy prevents using the firewall policies interface auth_admin_keep auth_admin_keep auth_admin_keep org.fedoraproject.FirewallD1.policies.info Firewall policies interface System policy prevents inspecting the firewall policies interface auth_admin_keep auth_admin_keep auth_admin_keep firewalld-0.4.4.6/config/services/000077500000000000000000000000001320241217000167145ustar00rootroot00000000000000firewalld-0.4.4.6/config/services/RH-Satellite-6.xml000066400000000000000000000013451320241217000220410ustar00rootroot00000000000000 Red Hat Satellite 6 Red Hat Satellite 6 is a systems management server that can be used to configure new systems, subscribe to updates, and maintain installations in distributed environments. firewalld-0.4.4.6/config/services/amanda-client.xml000066400000000000000000000006341320241217000221360ustar00rootroot00000000000000 Amanda Backup Client The Amanda backup client option allows you to connect to a Amanda backup and archiving server. You need the amanda-client package installed for this option to be useful. firewalld-0.4.4.6/config/services/amanda-k5-client.xml000066400000000000000000000006771320241217000224620ustar00rootroot00000000000000 Amanda Backup Client (kerberized) The Amanda backup client option allows you to connect to a Amanda backup and archiving server. You need the amanda-client package installed for this option to be useful. This service specifically allows krb5 authentication firewalld-0.4.4.6/config/services/bacula-client.xml000066400000000000000000000005001320241217000221340ustar00rootroot00000000000000 Bacula Client This option allows a Bacula server to connect to the local machine to schedule backups. You need the bacula-client package installed for this option to be useful. firewalld-0.4.4.6/config/services/bacula.xml000066400000000000000000000005321320241217000206650ustar00rootroot00000000000000 Bacula Bacula is a network backup solution. Enable this option, if you plan to provide Bacula backup, file and storage services. firewalld-0.4.4.6/config/services/bgp.xml000066400000000000000000000005231320241217000202060ustar00rootroot00000000000000 BGP service listen Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet firewalld-0.4.4.6/config/services/bitcoin-rpc.xml000066400000000000000000000004231320241217000216460ustar00rootroot00000000000000 Bitcoin RPC Enable this option if you need access to the Bitcoin RPC interface. This is not required when connecting on localhost. firewalld-0.4.4.6/config/services/bitcoin-testnet-rpc.xml000066400000000000000000000004631320241217000233360ustar00rootroot00000000000000 Bitcoin testnet RPC Enable this option if you need access to the Bitcoin RPC interface running on the testnet. This is not required when connecting on localhost. firewalld-0.4.4.6/config/services/bitcoin-testnet.xml000066400000000000000000000004311320241217000225470ustar00rootroot00000000000000 Bitcoin testnet The default port used by Bitcoin testnet. Enable this option if you plan to be a Bitcoin full node on the test network. firewalld-0.4.4.6/config/services/bitcoin.xml000066400000000000000000000003641320241217000210700ustar00rootroot00000000000000 Bitcoin The default port used by Bitcoin. Enable this option if you plan to be a full Bitcoin node. firewalld-0.4.4.6/config/services/ceph-mon.xml000066400000000000000000000004461320241217000211500ustar00rootroot00000000000000 ceph-mon Ceph is a distributed object store and file system. Enable this option to support Ceph's Monitor Daemon. firewalld-0.4.4.6/config/services/ceph.xml000066400000000000000000000005111320241217000203520ustar00rootroot00000000000000 ceph Ceph is a distributed object store and file system. Enable this option to support Ceph's Object Storage Daemons (OSD), Metadata Server Daemons (MDS), or Manager Daemons (MGR). firewalld-0.4.4.6/config/services/cfengine.xml000066400000000000000000000002501320241217000212110ustar00rootroot00000000000000 CFEngine CFEngine server firewalld-0.4.4.6/config/services/condor-collector.xml000066400000000000000000000004041320241217000227040ustar00rootroot00000000000000 HT Condor Collector The HT Condor Collector is needed to organize the condor worker nodes. firewalld-0.4.4.6/config/services/ctdb.xml000066400000000000000000000004501320241217000203510ustar00rootroot00000000000000 CTDB CTDB is a cluster implementation of the TDB database used by Samba and other projects to store temporary data. firewalld-0.4.4.6/config/services/dhcp.xml000066400000000000000000000003431320241217000203540ustar00rootroot00000000000000 DHCP This allows a DHCP server to accept messages from DHCP clients and relay agents. firewalld-0.4.4.6/config/services/dhcpv6-client.xml000066400000000000000000000004611320241217000221050ustar00rootroot00000000000000 DHCPv6 Client This option allows a DHCP for IPv6 (DHCPv6) client to obtain addresses and other IPv6 settings from DHCPv6 server. firewalld-0.4.4.6/config/services/dhcpv6.xml000066400000000000000000000003521320241217000206300ustar00rootroot00000000000000 DHCPv6 This allows a DHCPv6 server to accept messages from DHCPv6 clients and relay agents. firewalld-0.4.4.6/config/services/dns.xml000066400000000000000000000005321320241217000202220ustar00rootroot00000000000000 DNS The Domain Name System (DNS) is used to provide and request host and domain names. Enable this option, if you plan to provide a domain name service (e.g. with bind). firewalld-0.4.4.6/config/services/docker-registry.xml000066400000000000000000000005661320241217000225620ustar00rootroot00000000000000 Docker Registry Docker Registry is the protocol used to serve Docker images. If you plan to make your Docker Registry server publicly available, enable this option. This option is not required for developing Docker images locally. firewalld-0.4.4.6/config/services/docker-swarm.xml000066400000000000000000000006071320241217000220370ustar00rootroot00000000000000 Docker integrated swarm mode Natively managed cluster of Docker Engines (>=1.12.0), where you deploy services. firewalld-0.4.4.6/config/services/dropbox-lansync.xml000066400000000000000000000003441320241217000225610ustar00rootroot00000000000000 dropboxlansync Dropbox LAN sync firewalld-0.4.4.6/config/services/elasticsearch.xml000066400000000000000000000005221320241217000222470ustar00rootroot00000000000000 Elasticsearch Elasticsearch is a distributed, open source search and analytics engine, designed for horizontal scalability, reliability, and easy management. firewalld-0.4.4.6/config/services/freeipa-ldap.xml000066400000000000000000000015041320241217000217670ustar00rootroot00000000000000 FreeIPA with LDAP FreeIPA is an LDAP and Kerberos domain controller for Linux systems. Enable this option if you plan to provide a FreeIPA Domain Controller using the LDAP protocol. You can also enable the 'freeipa-ldaps' service if you want to provide the LDAPS protocol. Enable the 'dns' service if this FreeIPA server provides DNS services and 'freeipa-replication' service if this FreeIPA server is part of a multi-master replication setup. firewalld-0.4.4.6/config/services/freeipa-ldaps.xml000066400000000000000000000015041320241217000221520ustar00rootroot00000000000000 FreeIPA with LDAPS FreeIPA is an LDAP and Kerberos domain controller for Linux systems. Enable this option if you plan to provide a FreeIPA Domain Controller using the LDAPS protocol. You can also enable the 'freeipa-ldap' service if you want to provide the LDAP protocol. Enable the 'dns' service if this FreeIPA server provides DNS services and 'freeipa-replication' service if this FreeIPA server is part of a multi-master replication setup. firewalld-0.4.4.6/config/services/freeipa-replication.xml000066400000000000000000000004731320241217000233640ustar00rootroot00000000000000 FreeIPA replication FreeIPA is an LDAP and Kerberos domain controller for Linux systems. Enable this option if you want to enable LDAP replication between FreeIPA servers. firewalld-0.4.4.6/config/services/freeipa-trust.xml000066400000000000000000000011651320241217000222330ustar00rootroot00000000000000 FreeIPA trust setup FreeIPA is an LDAP and Kerberos domain controller for Linux systems. Enable this option of you plan to deploy cross-forest trusts with FreeIPA and Active Directory firewalld-0.4.4.6/config/services/ftp.xml000066400000000000000000000005661320241217000202360ustar00rootroot00000000000000 FTP FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You need the vsftpd package installed for this option to be useful. firewalld-0.4.4.6/config/services/ganglia-client.xml000066400000000000000000000002701320241217000223130ustar00rootroot00000000000000 ganglia-client Ganglia monitoring daemon firewalld-0.4.4.6/config/services/ganglia-master.xml000066400000000000000000000002601320241217000223270ustar00rootroot00000000000000 ganglia-master Ganglia collector firewalld-0.4.4.6/config/services/git.xml000066400000000000000000000003241320241217000202200ustar00rootroot00000000000000 git The git daemon for supporting git:// access to git repositories. firewalld-0.4.4.6/config/services/high-availability.xml000066400000000000000000000010211320241217000230170ustar00rootroot00000000000000 Red Hat High Availability This allows you to use the Red Hat High Availability (previously named Red Hat Cluster Suite). Ports are opened for corosync, pcsd, pacemaker_remote, dlm and corosync-qnetd. firewalld-0.4.4.6/config/services/http.xml000066400000000000000000000005411320241217000204150ustar00rootroot00000000000000 WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. firewalld-0.4.4.6/config/services/https.xml000066400000000000000000000007001320241217000205750ustar00rootroot00000000000000 Secure WWW (HTTPS) HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful. firewalld-0.4.4.6/config/services/imap.xml000066400000000000000000000005071320241217000203660ustar00rootroot00000000000000 IMAP The Internet Message Access Protocol(IMAP) allows a local client to access email on a remote server. If you plan to provide a IMAP service (e.g. with dovecot), enable this option. firewalld-0.4.4.6/config/services/imaps.xml000066400000000000000000000005641320241217000205540ustar00rootroot00000000000000 IMAP over SSL The Internet Message Access Protocol over SSL (IMAPs) allows a local client to access email on a remote server in a secure way. If you plan to provide a IMAP over SSL service (e.g. with dovecot), enable this option. firewalld-0.4.4.6/config/services/ipp-client.xml000066400000000000000000000007061320241217000215050ustar00rootroot00000000000000 Network Printing Client (IPP) The Internet Printing Protocol (IPP) is used for distributed printing. IPP (over udp) provides the ability to get information about a printer (e.g. capability and status) and to control printer jobs. If you plan to use a remote network printer via cups, do not disable this option. firewalld-0.4.4.6/config/services/ipp.xml000066400000000000000000000006531320241217000202320ustar00rootroot00000000000000 Network Printing Server (IPP) The Internet Printing Protocol (IPP) is used for distributed printing. IPP (over tcp) provides the ability to share printers over the network. Enable this option if you plan to share printers via cups over the network. firewalld-0.4.4.6/config/services/ipsec.xml000066400000000000000000000010521320241217000205370ustar00rootroot00000000000000 IPsec Internet Protocol Security (IPsec) incorporates security for network transmissions directly into the Internet Protocol (IP). IPsec provides methods for both encrypting data and authentication for the host or network it sends to. If you plan to use a vpnc server or FreeS/WAN, do not disable this option. firewalld-0.4.4.6/config/services/irc.xml000066400000000000000000000003671320241217000202210ustar00rootroot00000000000000 IRC An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol. firewalld-0.4.4.6/config/services/ircs.xml000066400000000000000000000003771320241217000204050ustar00rootroot00000000000000 IRC TLS/SSL An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol. firewalld-0.4.4.6/config/services/iscsi-target.xml000066400000000000000000000004101320241217000220270ustar00rootroot00000000000000 iSCSI target Internet SCSI target is a storage resource located on an iSCSI server. firewalld-0.4.4.6/config/services/kadmin.xml000066400000000000000000000002661320241217000207050ustar00rootroot00000000000000 kadmin Kerberos Administration Protocol firewalld-0.4.4.6/config/services/kerberos.xml000066400000000000000000000003511320241217000212510ustar00rootroot00000000000000 Kerberos Kerberos network authentication protocol server firewalld-0.4.4.6/config/services/kibana.xml000066400000000000000000000006001320241217000206570ustar00rootroot00000000000000 Kibana Kibana is an open source data visualization platform that allows you to interact with your data through stunning, powerful graphics that can be combined into custom dashboards that help you share insights from your data far and wide. firewalld-0.4.4.6/config/services/klogin.xml000066400000000000000000000003711320241217000207220ustar00rootroot00000000000000 klogin The kerberized rlogin server accepts BSD-style rlogin sessions, but uses Kerberos 5 authentication. firewalld-0.4.4.6/config/services/kpasswd.xml000066400000000000000000000003351320241217000211130ustar00rootroot00000000000000 Kpasswd Kerberos password (Kpasswd) server firewalld-0.4.4.6/config/services/kprop.xml000066400000000000000000000002661320241217000205750ustar00rootroot00000000000000 kprop Kerberos KDC Propagation Protocol firewalld-0.4.4.6/config/services/kshell.xml000066400000000000000000000003621320241217000207210ustar00rootroot00000000000000 kshell Kerberized rshell server accepts rshell commands authenticated and encrypted with Kerberos 5 firewalld-0.4.4.6/config/services/ldap.xml000066400000000000000000000003071320241217000203560ustar00rootroot00000000000000 LDAP Lightweight Directory Access Protocol (LDAP) server firewalld-0.4.4.6/config/services/ldaps.xml000066400000000000000000000003501320241217000205370ustar00rootroot00000000000000 LDAPS Lightweight Directory Access Protocol (LDAP) over Secure Sockets Layer (SSL) server firewalld-0.4.4.6/config/services/libvirt-tls.xml000066400000000000000000000006011320241217000217060ustar00rootroot00000000000000 Virtual Machine Management (TLS) Enable this option if you want to allow remote virtual machine management with TLS encryption, x509 certificates and optional SASL authentication. The libvirtd service is needed for this option to be useful. firewalld-0.4.4.6/config/services/libvirt.xml000066400000000000000000000006051320241217000211120ustar00rootroot00000000000000 Virtual Machine Management Enable this option if you want to allow remote virtual machine management with SASL authentication and encryption (digest-md5 passwords or GSSAPI/Kerberos). The libvirtd service is needed for this option to be useful. firewalld-0.4.4.6/config/services/managesieve.xml000066400000000000000000000005351320241217000217250ustar00rootroot00000000000000 ManageSieve The ManageSieve Protocol allows a local client to manage eMail sieve scripts on a remote server. If you plan to provide a ManageSieve service (e.g. with dovecot pigeonhole), enable this option. firewalld-0.4.4.6/config/services/mdns.xml000066400000000000000000000006501320241217000204000ustar00rootroot00000000000000 Multicast DNS (mDNS) mDNS provides the ability to use DNS programming interfaces, packet formats and operating semantics in a small network without a conventional DNS server. If you plan to use Avahi, do not disable this option. firewalld-0.4.4.6/config/services/minidlna.xml000066400000000000000000000005271320241217000212350ustar00rootroot00000000000000 MiniDLNA MiniDLNA is a simple media server software with the aim to be fully compliant with DLNA/UPNP-AV clients. Enable this service if you run minidlna service. firewalld-0.4.4.6/config/services/mosh.xml000066400000000000000000000007311320241217000204050ustar00rootroot00000000000000 Mobile shell that supports roaming and intelligent local echo. Mosh is a remote terminal application that supports intermittent network connectivity, roaming to different IP address without dropping the connection, intelligent local echo and line editing to reduct the effects of "network lag" on high-latency connections. firewalld-0.4.4.6/config/services/mountd.xml000066400000000000000000000003231320241217000207420ustar00rootroot00000000000000 mountd NFS Mount Lock Daemon firewalld-0.4.4.6/config/services/ms-wbt.xml000066400000000000000000000002761320241217000206540ustar00rootroot00000000000000 ms-wbt Microsoft Windows-based Terminal Server firewalld-0.4.4.6/config/services/mssql.xml000066400000000000000000000002521320241217000205740ustar00rootroot00000000000000 mssql Microsoft SQL Server firewalld-0.4.4.6/config/services/murmur.xml000066400000000000000000000003621320241217000207660ustar00rootroot00000000000000 Murmur Murmur is the server of the Mumble VoIP chat system. firewalld-0.4.4.6/config/services/mysql.xml000066400000000000000000000002531320241217000206030ustar00rootroot00000000000000 MySQL MySQL Database Server firewalld-0.4.4.6/config/services/nfs.xml000066400000000000000000000005041320241217000202230ustar00rootroot00000000000000 NFS4 The NFS4 protocol is used to share files via TCP networking. You will need to have the NFS tools installed and properly configure your NFS server for this option to be useful. firewalld-0.4.4.6/config/services/nfs3.xml000066400000000000000000000005261320241217000203120ustar00rootroot00000000000000 NFS3 The NFS3 protocol is used to share files. You will need to have the NFS tools installed and properly configure your NFS server for this option to be useful. firewalld-0.4.4.6/config/services/nrpe.xml000066400000000000000000000003671320241217000204100ustar00rootroot00000000000000 NRPE NRPE allows you to execute Nagios plugins on a remote host in as transparent a manner as possible. firewalld-0.4.4.6/config/services/ntp.xml000066400000000000000000000006051320241217000202400ustar00rootroot00000000000000 Network Time Protocol (NTP) Server The Network Time Protocol (NTP) allows to synchronize computers to a time server. Enable this option, if you are providing a NTP server. You need the ntp or chrony package installed for this option to be useful. firewalld-0.4.4.6/config/services/openvpn.xml000066400000000000000000000005171320241217000211260ustar00rootroot00000000000000 OpenVPN OpenVPN is a virtual private network (VPN) solution. It is used to create encrypted point-to-point tunnels between computers. If you plan to provide a VPN service, enable this option. firewalld-0.4.4.6/config/services/ovirt-imageio.xml000066400000000000000000000004041320241217000222070ustar00rootroot00000000000000 oVirt Image I/O oVirt Image I/O simplifies the workflow of introducing new oVirt images into the oVirt environment. firewalld-0.4.4.6/config/services/ovirt-storageconsole.xml000066400000000000000000000005271320241217000236320ustar00rootroot00000000000000 oVirt Storage-Console oVirt Storage Console is a web-based storage management platform specially designed to efficiently manage oVirt's storage-defined storage. firewalld-0.4.4.6/config/services/ovirt-vmconsole.xml000066400000000000000000000003531320241217000226050ustar00rootroot00000000000000 oVirt VM Console oVirt VM Consoles enables secure access to virtual machine serial console. firewalld-0.4.4.6/config/services/pmcd.xml000066400000000000000000000006611320241217000203640ustar00rootroot00000000000000 Performance metrics collector (pmcd) This option allows PCP (Performance Co-Pilot) monitoring. If you need to allow remote hosts to connect directly to your machine to monitor aspects of its performance, enable this option. You need the pcp package installed for this option to be useful. firewalld-0.4.4.6/config/services/pmproxy.xml000066400000000000000000000007321320241217000211560ustar00rootroot00000000000000 Performance metrics proxy (pmproxy) This option allows indirect PCP (Performance Co-Pilot) monitoring via a proxy. If you need to allow remote hosts to connect through your machine to monitor aspects of performance of one or more proxied hosts, enable this option. You need the pcp package installed for this option to be useful. firewalld-0.4.4.6/config/services/pmwebapi.xml000066400000000000000000000007141320241217000212440ustar00rootroot00000000000000 Performance metrics web API (pmwebapi) This option allows web clients to use PCP (Performance Co-Pilot) monitoring services. If you need to allow remote web clients to connect to your machine to monitor aspects of its performance, enable this option. You need the pcp package installed for this option to be useful. firewalld-0.4.4.6/config/services/pmwebapis.xml000066400000000000000000000010401320241217000214200ustar00rootroot00000000000000 Secure performance metrics web API (pmwebapis) This option allows web clients to use PCP (Performance Co-Pilot) monitoring services over a secure connection. If you need to allow remote web clients to connect to your machine to monitor aspects of its performance, and you consider that information to be sensitive, enable this option. You need the pcp package installed for this option to be useful. firewalld-0.4.4.6/config/services/pop3.xml000066400000000000000000000005341320241217000203210ustar00rootroot00000000000000 POP-3 The Post Office Protocol version 3 (POP3) is a protocol to retrieve email from a remote server over a TCP/IP connection. Enable this option, if you plan to provide a POP3 service (e.g. with dovecot). firewalld-0.4.4.6/config/services/pop3s.xml000066400000000000000000000005451320241217000205060ustar00rootroot00000000000000 POP-3 over SSL The Post Office Protocol version 3 (POP3) is a protocol to retrieve email from a remote server over a TCP/IP connection. Enable this option, if you plan to provide a POP3 service (e.g. with dovecot). firewalld-0.4.4.6/config/services/postgresql.xml000066400000000000000000000002651320241217000216440ustar00rootroot00000000000000 PostgreSQL PostgreSQL Database Server firewalld-0.4.4.6/config/services/privoxy.xml000066400000000000000000000007751320241217000211670ustar00rootroot00000000000000 Privoxy - A Privacy Enhancing Proxy Server Privoxy is a web proxy for enhancing privacy by filtering web page content, managing cookies, controlling access, removing ads, banners, pop-ups and other obnoxious Internet junk. It does not cache web content. Enable this if you run Privoxy and would like to configure your web browser to browse the Internet via Privoxy. firewalld-0.4.4.6/config/services/proxy-dhcp.xml000066400000000000000000000004051320241217000215320ustar00rootroot00000000000000 Proxy DHCP PXE redirection service (Proxy DHCP) responds to PXE clients and provides redirection to PXE boot servers. firewalld-0.4.4.6/config/services/ptp.xml000066400000000000000000000006501320241217000202420ustar00rootroot00000000000000 Precision Time Protocol (PTP) Master The Precision Time Protocol (PTP) allows to synchronize computers to a time master. Enable this option, if you are providing a PTP master. You need the linuxptp package installed for this option to be useful. firewalld-0.4.4.6/config/services/pulseaudio.xml000066400000000000000000000006361320241217000216150ustar00rootroot00000000000000 PulseAudio A PulseAudio server provides an ability to stream audio over network. You want to enable this service in case you are using module-native-protocol-tcp in the PulseAudio configuration. If you are using module-zeroconf-publish you want also enable mdns service. firewalld-0.4.4.6/config/services/puppetmaster.xml000066400000000000000000000004511320241217000221670ustar00rootroot00000000000000 Puppet Master Puppet is a network tool for managing many disparate systems. Puppet Master is a server which Puppet Agents pull their configurations from. firewalld-0.4.4.6/config/services/quassel.xml000066400000000000000000000004211320241217000211100ustar00rootroot00000000000000 Quassel IRC Quassel is a distributed IRC client, meaning that one or more clients can attach to and detach from the central core. firewalld-0.4.4.6/config/services/radius.xml000066400000000000000000000010101320241217000207150ustar00rootroot00000000000000 RADIUS The Remote Authentication Dial In User Service (RADIUS) is a protocol for user authentication over networks. It is mostly used for modem, DSL or wireless user authentication. If you plan to provide a RADIUS service (e.g. with freeradius), enable this option. firewalld-0.4.4.6/config/services/redis.xml000066400000000000000000000004141320241217000205430ustar00rootroot00000000000000 redis Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. firewalld-0.4.4.6/config/services/rpc-bind.xml000066400000000000000000000003261320241217000211350ustar00rootroot00000000000000 rpc-bind Remote Procedure Call Bind firewalld-0.4.4.6/config/services/rsh.xml000066400000000000000000000004661320241217000202400ustar00rootroot00000000000000 rsh Rsh is a protocol for logging into remote machines. It is unencrypted, and provides little security from network snooping attacks. Enabling rsh is not recommended. firewalld-0.4.4.6/config/services/rsyncd.xml000066400000000000000000000004671320241217000207470ustar00rootroot00000000000000 Rsync in daemon mode Rsync in daemon mode works as a central server, in order to house centralized files and keep them synchronized. firewalld-0.4.4.6/config/services/samba-client.xml000066400000000000000000000006001320241217000217710ustar00rootroot00000000000000 Samba Client This option allows you to access Windows file and printer sharing networks. You need the samba-client package installed for this option to be useful. firewalld-0.4.4.6/config/services/samba.xml000066400000000000000000000007151320241217000205240ustar00rootroot00000000000000 Samba This option allows you to access and participate in Windows file and printer sharing networks. You need the samba package installed for this option to be useful. firewalld-0.4.4.6/config/services/sane.xml000066400000000000000000000005211320241217000203620ustar00rootroot00000000000000 SANE network daemon (saned) The SANE (Scanner Access Now Easy) daemon allows remote clients to access image acquisition devices available on the local host. firewalld-0.4.4.6/config/services/sip.xml000066400000000000000000000007751320241217000202420ustar00rootroot00000000000000 SIP The Session Initiation Protocol (SIP) is a communications protocol for signaling and controlling multimedia communication sessions. The most common applications of SIP are in Internet telephony for voice and video calls, as well as instant messaging, over Internet Protocol (IP) networks. firewalld-0.4.4.6/config/services/sips.xml000066400000000000000000000004331320241217000204140ustar00rootroot00000000000000 SIP-TLS (SIPS) SIP-TLS is a modified SIP (Session Initiation Protocol) using TLS for secure signaling. firewalld-0.4.4.6/config/services/smtp-submission.xml000066400000000000000000000003471320241217000226160ustar00rootroot00000000000000 Mail (SMTP-Submission) SMTP-Submission allows remote users to submit mail over port 587. firewalld-0.4.4.6/config/services/smtp.xml000066400000000000000000000010461320241217000204220ustar00rootroot00000000000000 Mail (SMTP) This option allows incoming SMTP mail delivery. If you need to allow remote hosts to connect directly to your machine to deliver mail, enable this option. You do not need to enable this if you collect your mail from your ISP's server by POP3 or IMAP, or if you use a tool such as fetchmail. Note that an improperly configured SMTP server can allow remote machines to use your server to send spam. firewalld-0.4.4.6/config/services/smtps.xml000066400000000000000000000011011320241217000205750ustar00rootroot00000000000000 Mail (SMTP over SSL) This option allows incoming SMTPs mail delivery. If you need to allow remote hosts to connect directly to your machine to deliver mail in a secure way, enable this option. You do not need to enable this if you collect your mail from your ISP's server by POP3 or IMAP, or if you use a tool such as fetchmail. Note that an improperly configured SMTP server can allow remote machines to use your server to send spam. firewalld-0.4.4.6/config/services/snmp.xml000066400000000000000000000005261320241217000204160ustar00rootroot00000000000000 SNMP Simple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks". Enable this service if you run SNMP agent (server). firewalld-0.4.4.6/config/services/snmptrap.xml000066400000000000000000000004641320241217000213060ustar00rootroot00000000000000 SNMPTRAP SNMP traps enable an agent to notify the management station of significant events by way of an unsolicited SNMP message. firewalld-0.4.4.6/config/services/spideroak-lansync.xml000066400000000000000000000006251320241217000230670ustar00rootroot00000000000000 SpiderOak ONE LAN-Sync SpiderOak ONE is online backup and file hosting service that allows users to access, synchronize and share data using a cloud-based server. Enable this option if you use LAN-Sync option of SpiderOak. firewalld-0.4.4.6/config/services/squid.xml000066400000000000000000000002551320241217000205650ustar00rootroot00000000000000 squid Squid HTTP proxy server firewalld-0.4.4.6/config/services/ssh.xml000066400000000000000000000007171320241217000202400ustar00rootroot00000000000000 SSH Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful. firewalld-0.4.4.6/config/services/synergy.xml000066400000000000000000000007601320241217000211410ustar00rootroot00000000000000 Synergy Synergy lets you easily share your mouse and keyboard between multiple computers, where each computer has its own display. No special hardware is required, all you need is a local area network. Synergy is supported on Windows, Mac OS X and Linux. Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen. firewalld-0.4.4.6/config/services/syslog-tls.xml000066400000000000000000000006741320241217000215650ustar00rootroot00000000000000 syslog-tls Syslog is a client/server protocol: a logging application transmits a text message to the syslog receiver. The receiver is commonly called syslogd, syslog daemon or syslog server. Syslog-tls uses TLS encryption to protect the messages during transport. firewalld-0.4.4.6/config/services/syslog.xml000066400000000000000000000005111320241217000207530ustar00rootroot00000000000000 syslog Syslog is a client/server protocol: a logging application transmits a text message to the syslog receiver. The receiver is commonly called syslogd, syslog daemon or syslog server. firewalld-0.4.4.6/config/services/telnet.xml000066400000000000000000000006111320241217000207270ustar00rootroot00000000000000 Telnet Telnet is a protocol for logging into remote machines. It is unencrypted, and provides little security from network snooping attacks. Enabling telnet is not recommended. You need the telnet-server package installed for this option to be useful. firewalld-0.4.4.6/config/services/tftp-client.xml000066400000000000000000000004551320241217000216730ustar00rootroot00000000000000 TFTP Client This option allows you to access Trivial File Transfer Protocol (TFTP) servers. You need the tftp package installed for this option to be useful. firewalld-0.4.4.6/config/services/tftp.xml000066400000000000000000000006651320241217000204220ustar00rootroot00000000000000 TFTP The Trivial File Transfer Protocol (TFTP) is a protocol used to transfer files to and from a remote machine in s simple way. It is normally used only for booting diskless workstations and also to transfer data in the Preboot eXecution Environment (PXE). firewalld-0.4.4.6/config/services/tinc.xml000066400000000000000000000005201320241217000203700ustar00rootroot00000000000000 tinc VPN tinc is a Virtual Private Network (VPN) daemon that uses tunnelling and encryption to create a secure private network between hosts on the Internet. firewalld-0.4.4.6/config/services/tor-socks.xml000066400000000000000000000014031320241217000213600ustar00rootroot00000000000000 Tor - SOCKS Proxy Tor enables online anonymity and censorship resistance by directing Internet traffic through a network of relays. It conceals user's location from anyone conducting network surveillance and traffic analysis. A user wishing to use Tor for anonymity can configure a program such as a web browser to direct traffic to a Tor client using its SOCKS proxy port. Enable this if you run Tor and would like to configure your web browser or other programs to channel their traffic through the Tor SOCKS proxy port. It is recommended that you make this service available only for your computer or your internal networks. firewalld-0.4.4.6/config/services/transmission-client.xml000066400000000000000000000003641320241217000234460ustar00rootroot00000000000000 Transmission Transmission is a lightweight BitTorrent client. firewalld-0.4.4.6/config/services/vdsm.xml000066400000000000000000000011211320241217000204020ustar00rootroot00000000000000 oVirt's Virtual Desktop and Server Manager The VDSM service is required by a Virtualization Manager to manage the Linux hosts. VDSM manages and monitors the host's storage, memory and networks as well as virtual machine creation, other host administration tasks, statistics gathering, and log collection. firewalld-0.4.4.6/config/services/vnc-server.xml000066400000000000000000000007331320241217000215330ustar00rootroot00000000000000 Virtual Network Computing Server (VNC) A VNC server provides an external accessible X session. Enable this option if you plan to provide a VNC server with direct access. The access will be possible for displays :0 to :3. If you plan to provide access with SSH, do not open this option and use the via option of the VNC viewer. firewalld-0.4.4.6/config/services/wbem-https.xml000066400000000000000000000004661320241217000215360ustar00rootroot00000000000000 wbem-https Web-Based Enterprise Management (WBEM) is a set of systems management technologies developed to unify the management of distributed computing environments firewalld-0.4.4.6/config/services/xmpp-bosh.xml000066400000000000000000000007751320241217000213640ustar00rootroot00000000000000 XMPP (Jabber) web client Extensible Messaging and Presence Protocol (XMPP) web client protocol allows web based chat clients such as JWChat to connect to the XMPP (Jabber) server. This is also known as the Bidirectional-streams Over Synchronous HTTP (BOSH) protocol. Enable this if you run an XMPP (Jabber) server and you wish web clients to connect to your server. firewalld-0.4.4.6/config/services/xmpp-client.xml000066400000000000000000000007501320241217000217000ustar00rootroot00000000000000 XMPP (Jabber) client Extensible Messaging and Presence Protocol (XMPP) client connection protocol allows XMPP (Jabber) clients such as Empathy, Pidgin, Kopete and Jitsi to connect to an XMPP (Jabber) server. Enable this if you run an XMPP (Jabber) server and you wish clients to be able to connect to the server and communicate with each other. firewalld-0.4.4.6/config/services/xmpp-local.xml000066400000000000000000000004101320241217000215050ustar00rootroot00000000000000 XMPP Link-Local Messaging Serverless XMPP-like communication over local networks based on zero-configuration networking. firewalld-0.4.4.6/config/services/xmpp-server.xml000066400000000000000000000010411320241217000217220ustar00rootroot00000000000000 XMPP (Jabber) server Extensible Messaging and Presence Protocol (XMPP) server connection protocols allows multiple XMPP (Jabber) servers to work in a federated fashion. Users on one server will be able to see the presence of and communicate with users on another servers. Enable this if you run an XMPP (Jabber) server and you wish users on your server to communicate with users on other XMPP servers. firewalld-0.4.4.6/config/services/zabbix-agent.xml000066400000000000000000000004721320241217000220140ustar00rootroot00000000000000 Zabbix Agent Zabbix is a mature and effortless enterprise-class open source monitoring solution for network monitoring and application monitoring of millions of metrics. firewalld-0.4.4.6/config/services/zabbix-server.xml000066400000000000000000000004731320241217000222250ustar00rootroot00000000000000 Zabbix Server Zabbix is a mature and effortless enterprise-class open source monitoring solution for network monitoring and application monitoring of millions of metrics. firewalld-0.4.4.6/config/xmlschema/000077500000000000000000000000001320241217000170525ustar00rootroot00000000000000firewalld-0.4.4.6/config/xmlschema/check.sh000077500000000000000000000027361320241217000204760ustar00rootroot00000000000000#!/bin/bash # requires libxml2 packages for xmllint XMLLINT=/usr/bin/xmllint PACKAGE=libxml2 prog=$(basename $0) BASEDIR=$(realpath $(dirname $0)) checkdir=$(pwd) while getopts "d:h" arg; do case $arg in d) checkdir=$OPTARG ;; h) cat < Check files in this directory EOF exit 0 ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done if [ ! -f "$XMLLINT" ]; then echo "$XMLLINT is not installed, please install the $PACKAGE package." exit -1 fi if [ ! -d "$checkdir" ]; then echo "Directory '${checkdir}' does not exist" exit -2 fi # Stop execution if something failed set -e for keyword in zone service icmptype ipset; do if [ -d "${checkdir}/${keyword}s" ]; then echo "Checking ${keyword}s" cd "${checkdir}/${keyword}s" ls -f *.xml 2>/dev/null | while read -r file; do echo -n " " $XMLLINT --noout --schema "$BASEDIR"/${keyword}.xsd "${file}" done else echo "Directory '${checkdir}/${keyword}s' does not exist" fi done firewalld-0.4.4.6/config/xmlschema/icmptype.xsd000066400000000000000000000015161320241217000214270ustar00rootroot00000000000000 firewalld-0.4.4.6/config/xmlschema/ipset.xsd000066400000000000000000000021141320241217000207140ustar00rootroot00000000000000 firewalld-0.4.4.6/config/xmlschema/service.xsd000066400000000000000000000036411320241217000212360ustar00rootroot00000000000000 firewalld-0.4.4.6/config/xmlschema/zone.xsd000066400000000000000000000134141320241217000205500ustar00rootroot00000000000000 firewalld-0.4.4.6/config/zones/000077500000000000000000000000001320241217000162275ustar00rootroot00000000000000firewalld-0.4.4.6/config/zones/block.xml000066400000000000000000000004531320241217000200450ustar00rootroot00000000000000 Block Unsolicited incoming network packets are rejected. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed. firewalld-0.4.4.6/config/zones/dmz.xml000066400000000000000000000004451320241217000175460ustar00rootroot00000000000000 DMZ For computers in your demilitarized zone that are publicly-accessible with limited access to your internal network. Only selected incoming connections are accepted. firewalld-0.4.4.6/config/zones/drop.xml000066400000000000000000000004431320241217000177160ustar00rootroot00000000000000 Drop Unsolicited incoming network packets are dropped. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed. firewalld-0.4.4.6/config/zones/external.xml000066400000000000000000000004601320241217000205730ustar00rootroot00000000000000 External For use on external networks. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. firewalld-0.4.4.6/config/zones/home.xml000066400000000000000000000005611320241217000177030ustar00rootroot00000000000000 Home For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. firewalld-0.4.4.6/config/zones/internal.xml000066400000000000000000000006001320241217000205610ustar00rootroot00000000000000 Internal For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted. firewalld-0.4.4.6/config/zones/public.xml000066400000000000000000000004731320241217000202330ustar00rootroot00000000000000 Public For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. firewalld-0.4.4.6/config/zones/trusted.xml000066400000000000000000000002421320241217000204410ustar00rootroot00000000000000 Trusted All network connections are accepted. firewalld-0.4.4.6/config/zones/work.xml000066400000000000000000000004671320241217000177420ustar00rootroot00000000000000 Work For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. firewalld-0.4.4.6/configure.ac000066400000000000000000000135571320241217000161250ustar00rootroot00000000000000# Process this file with autoconf to produce a configure script. AC_PREREQ([2.68]) m4_define([PKG_NAME], firewalld) m4_define([PKG_VERSION], m4_bpatsubst(m4_esyscmd([grep "Version:" firewalld.spec]), [Version:\W\([0-9.]*\)\W], [\1])) m4_define([PKG_RELEASE], m4_bpatsubst(m4_esyscmd([grep "Release:" firewalld.spec]), [Release:\W\([0-9.]*\).*\W], [\1])) m4_define([PKG_TAG], m4_format(v%s, PKG_VERSION)) AC_INIT(PKG_NAME,PKG_VERSION) AC_CONFIG_SRCDIR([src/firewalld]) AC_PREFIX_DEFAULT([/usr]) AM_INIT_AUTOMAKE([1.11 tar-ustar no-define foreign dist-bzip2 no-dist-gzip]) AC_SUBST([PACKAGE_RELEASE], '[PKG_RELEASE]') AC_DEFINE_UNQUOTED([PACKAGE_RELEASE], ["$PACKAGE_RELEASE"]) AC_SUBST([PACKAGE_TAG], '[PKG_TAG]') AC_DEFINE_UNQUOTED([PACKAGE_TAG], ["$PACKAGE_TAG"]) AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MKDIR_P AC_PROG_SED AC_PROG_GREP AC_PROG_AWK AC_PROG_MAKE_SET AM_PATH_PYTHON AC_PATH_PROG([XSLTPROC], [xsltproc]) AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) AC_PATH_PROG([MODINFO], [modinfo], [/sbin/modinfo]) AC_PATH_PROG([MODPROBE], [modprobe], [/sbin/modprobe]) AC_PATH_PROG([RMMOD], [rmmod], [/sbin/rmmod]) AC_PATH_PROG([SYSCTL], [sysctl], [/sbin/sysctl]) GLIB_GSETTINGS ############################################################# AC_ARG_ENABLE([systemd], AS_HELP_STRING([--disable-systemd], [Disable systemd support]), [use_systemd=$enableval], [use_systemd=yes]) AM_CONDITIONAL(USE_SYSTEMD, test x$use_systemd = xyes) AC_SUBST(USE_SYSTEMD) AC_ARG_ENABLE([sysconfig], [AS_HELP_STRING([--enable-sysconfig], [Install sysconfig file])], [INSTALL_SYSCONFIG="${enableval}"], [INSTALL_SYSCONFIG='no']) AM_CONDITIONAL(INSTALL_SYSCONFIG, [test x$INSTALL_SYSCONFIG = xyes]) AC_SUBST(INSTALL_SYSCONFIG) AC_ARG_ENABLE([rpmmacros], [AS_HELP_STRING([--enable-rpmmacros], [Install rpm macros file])], [INSTALL_RPMMACROS="${enableval}"], [INSTALL_RPMMACROS='no']) AM_CONDITIONAL(INSTALL_RPMMACROS, [test x$INSTALL_RPMMACROS = xyes]) AC_SUBST(INSTALL_RPMMACROS) AC_ARG_WITH([systemd-unitdir], AS_HELP_STRING([--with-systemd-unitdir], [Directory for systemd service files]), [SYSTEMD_UNITDIR=$withval], [SYSTEMD_UNITDIR="\${prefix}/lib/systemd/system"]) AC_SUBST(SYSTEMD_UNITDIR) AC_ARG_WITH([bashcompletiondir], AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]), [BASHCOMPLETIONDIR=$withval], [BASHCOMPLETIONDIR="${datadir}/bash-completion/completions"]) AC_SUBST(BASHCOMPLETIONDIR) # Extend PATH to include /sbin etc in case we are building as non-root FW_TOOLS_PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin" AC_ARG_WITH([iptables], AS_HELP_STRING([--with-iptables], [Path to iptables executable]), [IPTABLES=$withval AC_MSG_NOTICE([Using for iptables: $IPTABLES])], [AC_PATH_PROG([IPTABLES], [iptables], [], [$FW_TOOLS_PATH])]) if test "x$IPTABLES" = "x"; then AC_MSG_ERROR([iptables was not found in $FW_TOOLS_PATH]) fi AC_SUBST(IPTABLES) AC_ARG_WITH([iptables-restore], AS_HELP_STRING([--with-iptables-restore], [Path to iptables-restore executable]), [IPTABLES_RESTORE=$withval AC_MSG_NOTICE([Using for iptables-restore: $IPTABLES_RESTORE])], [AC_PATH_PROG([IPTABLES_RESTORE], [iptables-restore], [], [$FW_TOOLS_PATH])]) if test "x$IPTABLES_RESTORE" = "x"; then AC_MSG_ERROR([iptables-restore was not found in $FW_TOOLS_PATH]) fi AC_SUBST(IPTABLES_RESTORE) AC_ARG_WITH([ip6tables], AS_HELP_STRING([--with-ip6tables], [Path to ip6tables executable]), [IP6TABLES=$withval AC_MSG_NOTICE([Using for ip6tables: $IP6TABLES])], [AC_PATH_PROG([IP6TABLES], [ip6tables], [], [$FW_TOOLS_PATH])]) if test "x$IP6TABLES" = "x"; then AC_MSG_ERROR([ip6tables was not found in $FW_TOOLS_PATH]) fi AC_SUBST(IP6TABLES) AC_ARG_WITH([ip6tables-restore], AS_HELP_STRING([--with-ip6tables-restore], [Path to ip6tables-restore executable]), [IP6TABLES_RESTORE=$withval AC_MSG_NOTICE([Using for ip6tables-restore: $IP6TABLES_RESTORE])], [AC_PATH_PROG([IP6TABLES_RESTORE], [ip6tables-restore], [], [$FW_TOOLS_PATH])]) if test "x$IP6TABLES_RESTORE" = "x"; then AC_MSG_ERROR([ip6tables-restore was not found in $FW_TOOLS_PATH]) fi AC_SUBST(IP6TABLES_RESTORE) AC_ARG_WITH([ebtables], AS_HELP_STRING([--with-ebtables], [Path to ebtables executable]), [EBTABLES=$withval AC_MSG_NOTICE([Using for ebtables: $EBTABLES])], [AC_PATH_PROG([EBTABLES], [ebtables], [], [$FW_TOOLS_PATH])]) if test "x$EBTABLES" = "x"; then AC_MSG_ERROR([ebtables was not found in $FW_TOOLS_PATH]) fi AC_SUBST(EBTABLES) AC_ARG_WITH([ebtables-restore], AS_HELP_STRING([--with-ebtables-restore], [Path to ebtables-restore executable]), [EBTABLES_RESTORE=$withval AC_MSG_NOTICE([Using for ebtables-restore: $EBTABLES_RESTORE])], [AC_PATH_PROG([EBTABLES_RESTORE], [ebtables-restore], [], [$FW_TOOLS_PATH])]) if test "x$EBTABLES_RESTORE" = "x"; then AC_MSG_ERROR([ebtables-restore was not found in $FW_TOOLS_PATH]) fi AC_SUBST(EBTABLES_RESTORE) AC_ARG_WITH([ipset], AS_HELP_STRING([--with-ipset], [Path to ipset executable]), [IPSET=$withval AC_MSG_NOTICE([Using for ipset: $IPSET])], [AC_PATH_PROG([IPSET], [ipset], [], [$FW_TOOLS_PATH])]) if test "x$IPSET" = "x"; then AC_MSG_ERROR([ipset was not found in $FW_TOOLS_PATH]) fi AC_SUBST(IPSET) ############################################################# AC_SUBST([GETTEXT_PACKAGE], '[PKG_NAME]') AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],) IT_PROG_INTLTOOL([0.35.0], [no-xml]) AM_PO_SUBDIRS AC_CONFIG_COMMANDS([xsl-cleanup],,[rm -f doc/xml/transform-*.xsl]) AC_CONFIG_FILES([Makefile doxygen.conf config/Makefile doc/Makefile doc/man/Makefile doc/man/man1/Makefile doc/man/man5/Makefile doc/xml/Makefile po/Makefile.in shell-completion/Makefile src/firewall/config/__init__.py src/Makefile src/icons/Makefile]) AC_OUTPUT firewalld-0.4.4.6/doc/000077500000000000000000000000001320241217000143715ustar00rootroot00000000000000firewalld-0.4.4.6/doc/Makefile.am000066400000000000000000000000221320241217000164170ustar00rootroot00000000000000SUBDIRS = xml man firewalld-0.4.4.6/doc/class.dia000066400000000000000000000164611320241217000161650ustar00rootroot00000000000000‹í][oãÈ™}Ÿ_a8o ¹Äº“Qz‚L7² Ý ’ dÐh‰¶˜¦D…¤ÛãyØß¾EêbK"%Þ-©13Ëe~¬"ëÔ©ó]êw¿ÿeÜ|õ¢Øn)±no¼Å$œú‹Ç·ÿøéwöíï¿ÿîwSßý­ù÷1rç7æ/qúÓ‡ÛY’,;>??“à%v“0"ÿDboøn¸CÓhxûýw77o/0u7ýlý©›$‘ÿ”x7 wî}¸½w'_£ði1½]µZ·›„AÝ|uƒ·¿yȾn‡ëË w®säÚK÷Ñ»<÷Kñ¥-óå8u.½ô¢ýËΗaì›&ÉËò IÁuÒÿ¾i³n›F‹Çïóñ›Õ-­?x½VÞIænôè/혱 VÁˆÍ3ƒ!Û±´Ðt3&ÕÍÝ÷k.è×\Ô¯9?/Ã(‰\?94y†ç.VV“èÉ«o'ž¸yÅŽu«A/ü$ OÜÿƒÄe:°úx;ÛªÎÜÇÈŸŸ¸;- ®òìO“Ùø—ކkuõ—Ž®þÕýûÀË»{‘´vù—v.¿ÿt2ô~ýó†oÃêj…ËÃÔö¤'«/OþÔ‹O¼f»m ®4[7žõývefõÑÞb™Ü/Z_þ‡×eúfý€×ˆsãNÿëæ§7cÞÿÛ›$ëÎþãþrswó1pãøö•€úáO?ÜþhíŽÔ~ßÌ•  Õ2ܾOÊ"Jg@mâ0­÷GáCŠÌÜßï[‰L'ÜÅcàm-IgeÉÖZ4'”9΀I"t]Ë^àÍÇ“0Z†¶;™™Êðå°£[laDpá¼ùj`kæù³¤Ø˜"²ÞÕ÷¨Óqúóã³×/—?U±'^ä…éK\d«± 3GçÞ")º¾y/¼¡šÆa;}rïÍßši»oñØr\iÌž–ËÈ‹ãñöqç¦BC¶ÝÄ Jg¦6ëZÉNíÒ±:†Jv©¹¡õ Ø•™çÈ]vߙ̊û`¦ëx2spt‹¢Âªwýõ KöÆ·xܪùdü 8maWD¨f!ñ~IºíÃ"4ûÊ`ü®ég7îÜ^>ÜÎÃE/݉á]qò’’0áV—ø>E¾Õ³¿YêÜmïÝÂÝa0ýñ>ðÿSw2/ÃàeFË™?©uGû7Ôèf&)kMÿ÷ô­Ä®Á·í]lÍŸ¼à«—ø7™†O¨öíØù·ÓllÖˆUñVï¤Ñ]¼™='ù¦Eì=`í¼£ýYÞ™¬ý™Ý}ñNÚ¥­¾ç]™{û—Jåì~©š,äû*ÁÓ<Ø6>TNÊÉ{{‰ô÷’ò¦hUÜÝ[}oÍœyOGíµfépCÖ­ŒƒûŸ¼ä™óOóõ«÷Vªn&gËWR…­1|éÄÇ“0ÿõ¨m.WÑêiâ,Ýd†‰ƒ‰ƒ‰Sqâ˜Í™‡U““§Æä™zîSô6wÒAÂÌÁÌétæTrɪÆ9oÛ¸ùÄûÙŸ§QCï—ìÛdæM¾|OÂŃßÞÒ’ëZêîÍíÍPOS¤ÏYßçtô3/òw1ñÆEÏìuY3cÿyò¢—K™Âø¼È|7,>Œ4i„H‰7_š%ÞëÊ7³¹~¼t²òüÖ‹® M£+„$T =`Š8JÉ£+RKlm‰*9’ŠPêè·ˆ¤u-—‹®h¥“¥¢+,b;²Ãˆ ND+"åÑ‹É|ù“y÷®)¾Ât)i£K¯@xÂ+^ð „W ¼á¯@xÂ+Þ)¼bx–úâf¯1þÙô~êEÃçȘŠ>C[„¶mÚâÅh‹¬±¶(ˆÒŽØäSu©-Klm‰i=’’0n~fŒÖmæV+,©-JzáÒâß½è«?¹&e1n©G!,BX„°aÂ"„E‹!,BX„°ø6ú}µÕ€®]º"tÅ‹Õyc]‘!¨8D[uѾœ¬È w2CJ:j$±…Ê “u —T[èbQÑ!\ÊxÈÙ(Œÿ ×$/þÚFw -B[„¶mÚ"´Eh‹Ð¡-B[„¶mñÍ~#Ýg@X„°aÂâÅ ‹¢©°¨ •ŒªÁ$Ò¶…Ý¡´hLYkSŠS#F Õš 8áÊÜE—âb;Ý,³È‰£»Ì‡¶‰Ó ×9&)þѼg7>},®Ò®ºhÖõ¹»0˜?¸ùt÷ÃSܵژzͺ?i§!7Bn„ܹr#äFÈ!7BnüJз\Dñ”·Ù˜}l×,Š›¢¸é¥7u§ÓÂ(H÷î!Ý_¨tßzËЀ@ £r´z,‚¿‹^òsºƒ®‰Èpƒ'Ÿxùß6ϬV+ß ¬~¼Â•x,ñYbD:T*•Ê»‰‘øcz€A¬ôÅÄJ˦±ÒÜ"œs9 ’XÌ겸«±ÄìÔ’ ޶ôHPcÙ–F‰ÐV§Å][édÉ⮎ì2PZÑw ôõ{݉£ä+â¤'8iÄI#NqÒˆ“Fœ4â¤'8éòÂáÒLg{“þ„@iJ÷(\L!L¡óŸBáý¿{›?mÇcâ`â\j’ÎÓrê&ˆdƒË.c¸Œ/Çe¬ZpKK:IlnQÞ­ËXÈÌ’¶¥‘0?3ó3e„ÙíØeܼ“åJ÷ÛºÇÀ¹z¯¤ÿ®ëåüá7†ß~cøá7†ß~cøá7†ß~cø¡ÝC»‡ßSS~ãRçybÖ`ÖÀi §1œÆpÃi|¶NcÝÔiÌÂ5UÆÓS‹X‡NãÔ[[²ËòŒ© ó¹²X§'2µÒÉRyƔػ²Dã£%/Ù]웎%mt .c¸Œá2†Ë.c¸Œá2†Ë.c¸Œá2†Ë.c(÷ðwÁeŒ)„)t5.ãÖO ÁÌÁÌÛnc¸á6†Û¸·±Ý8×X¥µÜ ¢•’Ö§6¦ØÊ”M©‘ä„ ¦‚P› Þi¶q+Ý,å9–DRÙS¾±MœÞœÈG¶YíúŽÍ¢>wEjL‹NdóÖxÇçñ¤žÁy ç1œÇpÃy ç1œÇpÃy ç1œÇß‚óxüðÜ»× ª=Tûo^µÿyá=#/mf¾ÍïÞçâÚaW ã·›å -Z>«-)qËE¹Ï UZ¯9`°XJËÑÄ5ÄR)€”#òè%ÃØKV›žqËñ·ØûO€'½àI޵äØþÁ^ûòèQþí;Ñ¡*³¸ÚL®k8OÆì¾»ù¼{»_üÅ´Èh!z4V¸–µ-ßÉú·Þ¡_ùˆ:VA°êþPe³=¿rXžOp…ÙNÓì¡ §œî¨M%³Œ)¦2S±¨tFÒ&LÚéŒ0Z×v¹ô€vúY*=À"¶Óm]¹½`Þa]9?}ˆWPNn“ 0m§CÈ@&2 €Ld ™È@&2Þ)`xž‘ËîtºfRÌç”Uù hŒÐ¡1ÂgÑN¢§q…@  Ф*š°ˆc Ùel;ý,™o/+I·ÿód¾ü©è|îËŒƒ=zä8ba ‹XXÄÂ"±°ˆ…E,,ba ‹XXĶ›pt ¹r#äFÈg)7ò¦r#ÓD0¡wTi9v‡r£1ÅõÆ”tì‘`DYéŠPY×t9µ±n–L¸§¼… f)é‘Ò´fÁÛ¯î¤Ç$Çèi‘øs¯'å‚#GŽ!8Bp„àÁ‚#GŽ—*8žÖ·›ëˆ­ †§¼Rñµ½œ| n„¶>E½žtÊ>µÃ®T¶Êq¿-N£¶“qË΢¿·l““èÝ&Q«%]ÊΠµiÓÓçݦÏÔOݽO OíšÅÂz·)4 þcïSèc»f1…0…Þm áäË4|^ŒŸgÆDàÇý­HY›þgë–1£0£ÞmF-ÃÀŸø^Üû²ô×¶ ca5m{·€Û8q£d'áryAèN?#ÈA¶²EªH’ÆëÇ^òy<õܧ A-k€ À`RLÜÉ$ vÍÒ!€@’~.'éG4Mú± LÉÁuÒLÞaÒM,gcJY1‹0ÁôàÎ&̪kº\ÒO;Ý,•ôÈ%{LúámD”—IúùÔ_ÖÏàæÓÝOq×É?iÌ‘ Öœ" Y@ÈB²€„, d! Y@ÈBP ± „@—Á*@PFëÆ\#bs9Ì# Ž0øÒÛÌù´ŠËùÂr%€@Iç€ýÇuO€'À“–ðäÏ8©ˆD¢´†(g®¿šM€&@“Æhò·§Ô`0˜´&þd@ P(µ“$?"GAŽäYæHþ··0xø¿®0ï5Y’n’%eÓdIe%„3 q´ÖæJJF´Pb@-¢-GRËŽ±Ì,b³º–Íáž -šúfš×ëW”ÌÆÙ`ÕÂæ2M •´RS3\òmìpNS3²ÎzdeÝ0㬯aäç$üÞïè‘ßY îÉ}JÂ(|êr‚®3vž:KÙÙ&6ugâX¾ki®•MLÂÅÂDx0"›ßÜÌÜÅt¸”„ïÌ÷×ß~¸å¯\ÎßÒõßòÝ¿=Hl8¸¡6qZ]N+bQG§–¨ÁåWœ¶‰¥”Nç7M‡‡¾žœ¦fd•Ùƒ¦Àià4pzý·´;œþC‡¤Ù¤õíû=¹U¡þ]e£xâVz'fáó¸ðòmMN7ÚqÞ›×]¢0­¤ÐÙÈÏŸ‚Ä_ú?yéÐÊ«„rhäu„xƒGìFQúß®pöî{y ÷}<…û.ŸÂ}G…+NóDÉ uÒDᆭõ±¡¿£„:£GR¦¸Ú‡ÊÚûÐs`ŠÅƒ˜ÓV™vºJ['S@Êlé÷[~CL±þ,¹L¢X‹hÙ»d‰Ò;bÖÓ²Á´À´À´À´®€iYDp.º¬2™Zk:²"Z’8¶#RyJéKvŽaNSIhÚç M©MìúZi‹ì é|R%-нCrÀÀÀÀ®€!QÂzbH†ØÆÒH*bgž6MôEû, ‡°Ø»X¡)SÄQçàˆA:‚$8ëú#HÌAAAAº`‚ÄhbÅ2šm »C†dLYzeÊáÆÔˆ§N:é lbÙå—K‘Š1§-3f¼R[mø”Eò©t,-3–MزµC¶D*ŒªêšlQ---­k [áý‘-º![Üær@ CЖ¾²u0ˆ9m9QŽ­*µ¥Šféd‹ót,÷›‚ll%[•\òÝÈÙÙºj²U™×jk5˜e§É×YdÒ€«c×s »°ØÆí52–53–)#Ò®{á9P­Â!ÌaOÜŒA…¦”Í-ZFÕ:h ¢¢uÔ…¨¨Z´¿„?ÆÁ´À´ kj]°¬µ‘C˜EœúrH)¦eAÓB+–±eZÌðƒ‹µ ‡0‡>™1P«¢E¥›û){¥zv¶ ¦uýLK“¥ÓLkŸ¦Ùý1-¦¦¦¦uÁLK¤AB î¨ Ôrºt rJ¤’zpgþDz… NÔÊ6'LÖµ}d«xsÚš^[UÛ2ÃOm}´g„gÃ[¥mú(¸8óª]ïdâV†¸Ñ½b N¥(û½ð‡(ºµAu3‰ûøhævWorÖ…ë€E¨µûEò¢Î˜×ƒ§-þK8ù2 Ÿÿœøqr-žd?뾟[ë\Ëp-õ ×2\Ëp-õ ×2\Ëp-õ|î®å¢éÓ<Ø6~Ó¶Ünê`÷ñ³éôtø™ëÎÝoéqµMU¹Us½zMRÊ3W ÈV7s¸aì®K9[ÄR4´Ž-1óÌ‹æ.&޸虽"kf̬1ÑK½ÊàkOÂüµmnéFæ»™`ñ޲?ÜŠ~!ÄN‡37FÞ<üê çn2™}64z‘Òi€ @ PiTžb/¢Q€(@”–ÅŸP(J[ûžùÜ]T*•«•: :g˜ôßÞÂ@`àÿº_mn‚¶h A[JˆÕ1µÏ)W RÊW§pd§›¤–c™Yi9Ÿ .Y8„9u#u¥Èª6=q¾I:²6Î7ù¦£—;­«ØAä]­ì«°ÌRåãYDo1ÎFELTÄDEÌ‹>ž…)Ó )š!:]VÄLMYkS¶tì‘¢YÒtíàþ³8›¥pürèœ <+YW¥­CÔNNBaöÂ~C¤¸¡æn ï^ö­T Sìq4ÙGêoº –6‘Ù4²‰²;Mß5–„³²¤¹–#¼M6™ëNÓ—ZédÉü%ÙeõKAØnÄŸÝþžé†Ù>»Að×00ìÁ‹¯%{éáÙL…–º„œ%ä,!g 9KÈYBÎr–³„œ%ä,!g 9Koöîd’²êÉÌ›|A˜ ÂlfƒØ½ª±{ÞÂ5»Ksqö=ùÏãM   P¨‚à½ËªÞ-Äm[Y‡ðþ²Rs=J 뤔ëkðÊîaNS½îs…¦š(~¼FéÖ%³ß^YEáÑj…Gͼ³ÖSÔ10ÕqáÑ­5»µs«Þ½_x”VrýóîNÁ<¾˜Ê¦‹éö˜XJ¸ªLl™Õ” "lguöEÝ´=ï×"v}Óç°šbN[Aœlª´mrZH›‹$Bرžñ:È%±9WiIìˆRz!Üš£MÌÙJ¸w ³Ýä Õ_ª:ïT«óTƒúŠLd Óà¼2 œ¾„-JTÊÅ…a˜\fGW8—ÍÅ‹G1§­$"ëu•¶‚è%ñëL¨tÚ×Ç¢}d èÆ™ŒˆçDt™#À—©.GR¥©HÐmn@³n•É „Ñ O ø”qÐ+:ÈdÚN‡€D$ ‰H@"€D$ àÍŽ#=»¡ºÕE¨.*BGvâ°Øì@˜ÿÖèµ/¨F¯"RTèå‚Èo£<¯MÓ¢JÓ4œóxˆ¿"Šî7Ca^æEaÞuظî®2ïipvš‚³æÄÒŽ»Iñí2ଙœu­GÅäH Â,™Ö—\?½p‹›šžK­Ž¶„JY¾a÷u1KÂ0b]Ñ=@4kRÔSW†èÕÏûâEß·úÁüûh¶ ß÷ÿæú€Psfirewalld-0.4.4.6/doc/config-interface000066400000000000000000000134431320241217000175240ustar00rootroot00000000000000 /org/fedoraproject/FirewallD1/config ==================================== Interfaces ---------- org.fedoraproject.FirewallD1.config Methods ------- listZones() -> (Array of [Object Path] zones) getZoneByName(String name) -> (Object Path zone) getZoneOfInterface(String iface) -> (String zone) getZoneOfSource(String source) -> (String zone) addZone(String name, Dict of {String, Variant} zone_settings) -> (Ob listServices() -> (Array of [Object Path] services) getServiceByName(String name) -> (Object Path service) addService(String name, Dict of {String, Variant} service_settings) listIcmpTypes() -> (Array of [Object Path] icmptypes) getIcmpTypeByName(String name) -> (Object Path icmptype) addIcmpType(String name, Dict of {String, Variant} icmptype_settings Signals ------- ZoneAdded(Object Path zone) ServiceAdded(Object Path service) IcmpTypeAdded(Object Path icmptype) /org/fedoraproject/FirewallD1/config/zone/ ============================================== Interfaces ---------- org.fedoraproject.FirewallD1.config.zone Methods ------- getSettings() -> (Struct of ( String version, String short, String description, String target, Array of (String service) services, Array of (Struct of (String port_range, String protocol)) ports, Array of (String icmptype) icmp_blocks, Boolean masquerade, Array of (Struct of (String port_range, String protocol, String to_port_range, String to_addr)) forward_po update(Struct of ( String version, String short, String description, String target, Array of (String service) services, Array of (Struct of (String port_range, String protocol)) ports, Array of (String icmptype) icmp_blocks, Boolean masquerade, Array of (Struct of (String port_range, String protocol, String to_port_range, String to_addr)) forward_po loadDefaults() remove() rename(String name) Properties ---------- String name (ro) String filename (ro) String path (ro) Boolean default (ro) Signals ------- Updated(String name) Removed(String name) Renamed(String name) org.freedesktop.DBus.Properties Methods ------- Get(String interface, String, propname) -> (Variant value) GetAll(String interface) -> (Dict of {String, Variant} props) Set(String interface, String propname, Variant value) /org/fedoraproject/FirewallD1/config/service/ ================================================= Interfaces ---------- org.fedoraproject.FirewallD1.config.service Methods ------- getSettings() -> (Struct of ( String version, String short, String description, Array of (Struct of (String port_range, String protocol)) ports, Array of (String module) modules, Dict of (String dest_type, String address) destination ) ) update((Struct of ( String version, String short, String description, Array of (Struct of (String port_range, String protocol)) ports, Array of (String module) modules, Dict of (String dest_type, String address) destination ) ) settings) loadDefaults() remove() rename(String name) Properties ---------- String name (ro) String filename (ro) String path (ro) Boolean default (ro) Signals ------- Updated(String name) Removed(String name) Renamed(String name) org.freedesktop.DBus.Properties Methods ------- Get(String interface, String, propname) -> (Variant value) GetAll(String interface) -> (Dict of {String, Variant} props) Set(String interface, String propname, Variant value) /org/fedoraproject/FirewallD1/config/icmptype/ ================================================== Interfaces ---------- org.fedoraproject.FirewallD1.config.icmptype Methods ------- getSettings() -> (Struct of ( String version, String short, String description, Array of (String dest_type) destination ) ) update((Struct of ( String version, String short, String description, Array of (String dest_type) destination ) ) settings) loadDefaults() remove() rename(String name) Properties ---------- String name (ro) String filename (ro) String path (ro) Boolean default (ro) Signals ------- Updated(String name) Removed(String name) Renamed(String name) org.freedesktop.DBus.Properties Methods ------- Get(String interface, String, propname) -> (Variant value) GetAll(String interface) -> (Dict of {String, Variant} props) Set(String interface, String propname, Variant value) firewalld-0.4.4.6/doc/firewall-config.png000066400000000000000000001600521320241217000201530ustar00rootroot00000000000000‰PNG  IHDRfX†°bÀ pHYs  šœtIMEà /Q¸=m IDATxÚìwxTUÞøÏô’6“ɤBHO •„$”$¤A@ ,RA_Ü×gÝ}õ•ýaÛÅõõa]ÝTPW¤#MÒH!Iï!=!½—ÉdúÌï+³ÃÌ;7“B‚ßÏÃÃssæÜó-ç{ÎýÞs¥««€q¨àRFRFRFRFRFà±LOœ:£÷O[®·1Yôõõ§¦gœ>wáô¹ é™ýÄõSofèj;ýœZ}¯F¯°ªúÞõäÔéTÉP±èGâ+f/t⟷nÞH²pâ ¦gf- ЉB565§ÝÌLJŒçñxÆv‰DS­1¾¾ÞÕÕ5óý|u ›š[Ì÷{T*L:æ\˜6\£’H$i73OŸ;Ÿ’~S.—›§JYEUÀ‚ù>Þ^ ƒÁ`øúx/ðó-«¨Di4šÓç.´Ü¿æü—®þ444Œºžœ*8u¦¤´LW«±1IJúÍÓç.$§¥‹Åb„J­>÷åƦæó/ŸÿáRSs V³å~ëå:uæÜ?_ïîé1Cg7WW‰D2<<¢-‘H¥ó\çꪤç‰Tzêìy…B‰R*•gÎÿ T*B …òÔÙóR©t;˜ kp½ 09)£!ù…Å|žÍïž{ÖN ()-7¯‘žžžyó\JÈÜæu÷ô"„(ŠJ¥Z÷ÌÓžînE%¥¡ÕI+B[7o ÒÝ«¨¤ÄN Xÿì3ööXM•ªP(‡†žyjMDø",ÅDÝÍ/ˆ^ºtã†õ ŠŠÍq•êííըܬ-iljòñö¢R©þá°Ùvv‚ŽÎN„P[{‡R©lïè@utvíl6{;˜ kp½ 0î”ÑðFF\ºº»,˜O§ÓøùbÙÈärÎÃÙ—ÑÉdضF£ñõõa0è>>Þ}ýý„Êô,ðóe0è~>ÞXƉR«Õ æ3ô¹s\ÄccX!‡Í¾ßÚ*‘HÜæÍ{rU’yjûx{µÜoÕþÙÒÚæãåiÒ?n®®­mm¡Ö¶¶y®®÷[±íöy®®æ©{שɮ!ïU~˘s/£! …âÂÅËØ6jæÊ%‹Å“H¬,-µ%©TwÉÍb!„XL¦B¡ J=e2V“ÅÒfœØŸ!*•ªÑh°’¸å1å•U×’S¹΢°P{¡jsØl;mwO¯ƒ½°»§w™ÐÐ?®sç””•+•ÊÎήÕI+¯%§(•ʎήEa¡æyO¯§´Y£É®!éU eœ(l6{í“O0jÍÑÁ¾©©9(0@[ÒÜÜâäè › ²Ùl™\Î`0•aýZS&c³Y5---–D†#ÞØÜ|;÷ÎsϬ5Os?_Ÿâ’Ò¸å1eå¡ CÈø‡Ífóù¼òŠJÀÖÊÊÒ–Ï/¯¨´åó°n1Ù5$½ Ào™É¹—ÑÙÉ©ªºZ©TÕ74¦¦g˜×H`€uMí½ÚZ…B¡P(kêêªîÕúûk+ÔÖ7(ÊÚÚ:¡Ð+ár9"ѨZ­ÖmÇÉÑñ^M­R©¬ºWãèà@ ñzJjËýûjµÚÊÒRƒ4f›o'(•ªœÜ_T*µÀÖ–¤Ü\]ïÕÖÎ;!ä:wνÚZ³¯JO¤k ½ 0%)ã ÁÁó/UÝ»¬³L8.x66‰q±­­í.]¹pér[[ûŠøXkk+ Ö¯\mln ùu%/~ùòôÌÌ —®<¤LpPOoßù‹—ûBC‚ $–”•Ÿ>wáö»‹#Â'â?_ŸÖ¶6?_òþq;G­Ö¸Î™óŸí¹s&½ƒMv¡Wô tuuÎ EOœ:¯9¯ðH€2cÖ\˜°Ê@Ê@ÊL)ôîînð@”2:~xüHOOIHX ~€BhuÒ l­E»ÖÅårlùüþþ„PÿŸÏãp8ù…Å|žÍïž{ÖN ()-'­Ñh$IYy¹‹³ÓC‰3•ªP(‡†žyjMDø¢’Ò2¬¼¸¤tÞÜ9Ï®}j`pP?×6²KaQ‰›«ësO?Õ×ׯR©°Â»ùÑK—nܰ>0`AAQñÌ …¡á„Ÿgƒ²°°X÷ÌÚÅáØOåå÷jkÆ„‡…ÕÕ7”–W „¨T*BH.—«Tª%‘bñX~Q±îÚ˜á"YQqÉÐÐð¢ÐPƒ.—Ëµà‡æƒö©4Ú†uÏ!„r¹ÛÙÕ•ÕÑÙyç—»ÄâÆ¥öä"—Ë+*+…v£çjxñcðz5#ÃåcÛÚ¨#?ÈPYU}âÔܘ€ß æ\˜ž;gÎÒÅ‘¹¿ÜÍýå.BÈÓÃËBKGÎ3‡øPÚÙÕ±( !äáîV^Y%“ËYL&B¨½£ó©'VÑét×¹s\çmÄÅÅy``ÀÙɱ``޳3B¨«»û©'WÓéô~¾×“S 3ÜK÷>3›´"Q¯‚Z­X0ŸÁ Ïãrëv.VØÛÛ·82‚Á {{z”–•“Ú¥¯oId8ƒÁðóóÑ&Ä6û~k+›Ír›7ÏmÞ¼™ 2©!D§ã„DSË}„«ë\ìÆÆæ–û¡!ÁØO*µÚuî*†!ÑÝÓ‹r;G£Ñܹ›OF+•JåáîF§ÓB«V&j B½}ý&–»Æ©öÄ/caF¡Pø<ŸÏ‹Zº„ 2nü;ÕñŸï‡ÕÌιà¿@o/2C€<þ æ#„ŠJJõʃp—`HâéᎭúäþr·»§[n\º8+' ¡±I,;uö¼nÉ?_,›d±X&EÏqq®¨¬Fõõ,˜R(.^Ö.Éàî…efL"¹WS›ûË]ÛÌ0éT*U£Ñüšà*X:kL1œ]Xañà‚;B(nyLyeÕµäT.‡³(,ÔÁ^8CÍáˆÅb¥RÉ`0ô~’H$!æƒr©Tªû«¶¾Z­&­,¶oB±Îïìê*(*a‚LŠ›,µÉƒ…Y^A¡ÐÎÎÝÍô¹aü˜¬‰»™!0Á¬òEHÍD›5’ÏBµõõk×<¡½ÙqD$ÊÈÌÆRF‹%‘H¸:™.vÁ¨xT"‘ŒŠG[„›Í^ûä †i[(Š—è¿@{|%†Á`Èär6‹%y8Û ÞËÇÆ$ÚBKK‹%‘á…767ßνóÜ3kg`(Ø lÅbñàа½ÐN4:šž‘åæ:»BÊá°GGÅ …B­Ñ „¸Žy"˜L¦T*•+èá »ÅP¥V«”J‚ÝïÜÍ‹ÇV'­àóxºgƘ,µÇKXè´ô›¶¶|mœS(µZM¥R¥¤i|Y5é!`^Öù"0¡ O÷¥‹#--,Hæ‹]ÝÝ :C÷ák++&“ÙÕÕrqvª¬º'—Ë[î·þxí:VËåˆD£zë@¶|~î/wµß8;9UUW+•ªú†ÆÔô bd2YEUµ@ ™EÕ×7(•Êúú’>Øòë EuM¶ðzJjËýûjµÚÊÒRƒ433ü̧P(•Ur¹¼¼¢R$iß°ãîæ†jmk¿ßÚŠrww3O„½PˆjmmkÕyÆ „Pgggk[;Á£J¥ !D£ÑîÕÖ1™L„B¡Da—­±‡`t¯ÚØíz÷$J]‘{ç.¦0–¼¶µw(ÊÊê{Äï- x“ŒkŒ+$‚‚!_&þ*oO÷gŸ~ŠL¾ˆª­«÷08l{¸»ÕÖ×#„BC‚GD#.^.«¨Xý¿|yzfæ…KWtw™ãâÒÑÙåâìŒý¹0$h`pðüÅKU÷î;¶iïß¿òÓ5±X½ŒŒÂ C‚›š/^ùQ`kKò)Ô…!Áõõ —¯þ¤{õ980°¤¬üô¹ ·ïÜÕ>S2ÓØÚÆ-–H$.^îêî  zàÌÀ_ïü¢âR?ì)`3 ¶²²,(*ÆR=-a¡!ÜÜ_ò¨T*‹ÅDF.‡- a±X©i7±m6‹u=9!äëãC£R¯ÝHÑ«?Yj›µµ·—g^AögHPÐ/yù—®þÈçóˆ¯Ëã<‰¨3=Ì#(0 òE!JWW'xa*J¥W~ºöüúçfšbéé) +­ …âÌù8löúçž™½9œ6[_<–ÐÁ“KÖ­Oww‡Êê{v[pÈCÉDFfo__lLÌØØBÈùáW)ão/Oü‚¢1‰D`Ë_²8¢KHPP~aQFVÎðôp ]>H‹¸8;»¬u?à"Øjß­À,‚ . e e e e e e€Ç6›£T*Á&‘J%l6ü)#üqvv.++‘J%à â|±ªªÒÙÞK ð¯òÓ¸»{"ÔPXXY#l6ÇÙÙÙÝÝ\)#üv³FH†€ß,pa€”€”€”€”˜Áà<1žž~ylHHXI¦t:ùþKvž~ 8ë1àìÙ“ä+Ǩ¨(3,„ Ó€ e e e efCÊxçÎmÛ¶EEE%%%½ûƒƒÓ¬è«¯¾ªÝŽˆˆ€ž˜Y)cIIɶoß~óæÍï¾ûÎÂÂâ_ÿú×4+ÚÚÚªÝÎË˃ž˜Y)ãwß}÷Ê+¯$$$0™L‡7ÞxãÀØO½½½{÷î}ùå—;;;Br¹|Ŋ׮]KJJJJJJNN6VˆêëëÛ¿LLÌÞ½{E"V844ôúë¯GGGoÙ²¥ªª !´sçή®®ˆˆˆ#GŽ UF’ÒBéééëÖ­‹ŠŠÚ¸qcQQt<À$§ŒõõõË—/Çýé³Ï>ó÷÷¿víZhh(¶ôÈ`0Äbq}}ý¥K—þô§?}þùçÆ B‡öôôLNNö÷÷ÇÒA„Ð?þñ//¯”””Ý»w:t!ôõ×_#„òòòöîÝk†t„Ðßþö·÷ß?33sÇŽŸ|ò t<À$§Œ|>÷§‚‚‚Í›7s¹Ü矾¸¸!D¡P”Jå¶mÛ¸\nLLLww·±B„P~~þÖ­[9Ζ-[nß¾ææænÞ¼™ÃáÄÆÆž8q‚@1’ÒB¶¶¶½½½IIIß}÷t<À$§Œvvv½½½¸? óx<„ÍÐж+d0jµš P,¯^½:"""))©¿¿+‰DÖÖÖd#/ýðáÃCCC/¾øâ /¼€%—Àd¦Œiii¸?ñx¼ááaÝìm\ØÚÚfffæååååååäähÛԦėîììüöÛo߸qcË–-ÿïÿý?èxòÐÉTÚ¶mÛË/¿looŸ ‹üñǪªª?ü!qæÌ™_|ñû￯ø%K–|ÿý÷Û¶mKII¹qãvëáÒ¥K±nòòòŽ;vúôi„P(lmmuttd0ÚÝÉKß¹sçæÍ›ccc]\\t>É"%=S÷Ï• ±³Ú™\^Wߨ?0(—Ëi4ÏÆÆÇÛÃÒÂbR¼4+œ£«ªnç2™L>ÏÆ×Û“Íf›ç¨û­m÷jë•ôº »§·¡©ylLÂd2<=Ü(жF‹_E¡P4MFöm¥RIÆ'ãbV ­-t:gcãåéfme5¹MÆzj¼ÔÖ5´¶wh4šÄ¸˜iºÍäá?)º7¢V«Ó2²§Ô2™,+çŽuä¢P¬¤´¼²»§Wh'Xˆ•Ü-(Yµ$+ç®2ºV™¬ §JcõíÔ7})£··÷¡C‡þõ¯ýå/±°°XºtéÿüÏÿ`?íÛ·ïÏþóêÕ«ýýýßyçñŠß·oßûï¿¿jÕ*‡·Þz +Ü¿?ֿܹsß~ûm¬ð“O>ùïÿþo‘H”’’¢»;I鯼òÊÇ|ðàAGGÇÿýßÿ… oÒÁ†Ao_qi¹À–?ÛÍ)-« X`/´ëéí«¬®©«oÔN:ôÒìíbFÓÕÝS^Y-—ËÃÚ稞޾bQÿÀ@iy¥ÐN¶°¦®¡±¹Eƒ·§»¶‚J¥‰l¬­E££X¾HÆ'†=>‹NÈ„xl¬´¬2¯ 8rQ¨••å$šf,6LöyZZÛ4M\̲éé]‹˜É°X,++Ë‘‘…BÁ`04ÍÀÀ Bh`pH­VS©T¥R92"²²²d±XdféñNVÄ]ÿðáÃz»ÛØØ|ú駆ië?ü ·;yé‘‘‘çÏŸ‡5Õ´¶u „æ¸8kO+kë::»‘FãèèàçãE¥R5MêÍ,“éëãu¯¶ŽJ¥Ì÷µµåcG躆Æîî^¥Jåh/œïçC¥R‡GDµõ "ѨF£áÙXûúxM|µÏ$#¢Q„À–O¥RììuÓC%±h‹é:gNCS³•¥åðÈHlôR&“‰º}'O*“ÅF/Mϼ¥VÔju}CSWwR©äñlü|½¹ÎÌñ. ÅÁ^X^YùÇ GiWªRÒ3#Ãí]Í÷ÛBîó\étº‡û¼þþ…B®ý•J¥R©ÔÁÁ!këÁ¡a:®V« ¯Qú„˜¢’²¾þ襋962¹!ÆÙÉQR© ‹ :†R*•4Í×ÇK,«­o˜iƒB>‡-ÞèQÆôÇÝØ ßSãšdDÔÖ5ŒŽŠ}}¼èt¶¢l˜˜YYUÓ?0èß×?PYUC,n¼sã£WOcÓ†R©,¯¨¶àrø!„jëGGÅ~>^t:¸e …Âçó†GD¡Á¡a*•Êd2±áñl°)”Ø?B!Ô×?€êï@a©joßB¨`K+µg|Ú¦jêŒ-bÆ"ÃJ á*#˜¤­½S£Asœ´÷a‡R{;D¡ „º»{|¼<´§˜öB;læ‹Ç°Âîž^„PhG¡PPÕ½Îînw7Wì8ÝÒÚî ´‹_E0O"Á jë{zû°#7‡Ã òŸoccmLI­QNŽŽ4ÍÑÁ¾¦®¡·¯ßÅÙ »áäè '¢³«!ä`/d0+â—Ï4‚@3èt{¡Ý|_ï‰8Jë®Gk—\¡@é¥ò:¹ ²µå76µh4šÁ¡aO÷yXžgÒ'ÄØ íètzo_¿ë\—þ½Øp°jªDhphx&‡æ4Ü‹õº pãߌžï$c ÌáööB¤ÑTV×\Óš±h¡nTŒï;YjO5Æô$è¾êš:¹B±da0æ,ç íFSu¯†¸e[>¯§·O"‘ òy64mppÈ–Ï“H\œÉøÇÚÚŠÉdüš2 p9¡€ÅbiK˜L¦ö\F£mjT,&v…É mFMn23FÓÑÑI¡P\\œ´…2™ !¤=¹”Éå߃rFƒm(J„PFÖ¯ÏÎK$R„Ð?ß{µõ­mí­mí :ÝÏ×Û0ýštX,V ÿ|F3<<ÒÒÚÖÝÓ[Y]³tq¸1%µ0™ „“É´åóúÕjuOo‹Å²åë?Ñ/}Ø93Í†àž›í¨™`‹É”H¥*•J¯´Ø lkë:»{ …@€P=ŸC¥Rì…]Ý*•ª¯€Íbé.OÒétl8h³±™r¹Bí¸h2¸ñoFOw’1†B¡@Ñœ?˜4³`°¦®^,Ù|Èr²ÔžjŒéIÐ}X6©P(â8·e>Ÿ‡%܃CŽöö4µµ½C0<‚Ò½Mà …b'ttv  ˆæ¸8a¹½£s`pH"‘:;9ê>85ž11¡Í¨É RF`FÓÓÛ'“Ëí…vlÛŠY,¦D"UªTµ!Ä6~Ç1›Å“H°[ˆ´…B;ÐN06&éêî©olª©k˜¶±G¡Px<KK‹îž^‰TJ ¤!ŽŽýƒ]Ý=ÃÃ#n®s ŸîÄŽ‚J¥R÷%3ÍSê¨Gn—µµ•D*óx6cIQI™ƒ½½îC–l6»µµÃáp¹œÉ’ëäèÐÞÑÙ×?008䢳*eŠjµ!¤Š™CÃÃ![¾éÛ쌅nü›ÑSãdŒÁ`0är¹áº)ö¼<îm¬ºTV×H¥ÒÈðP+KKì¹`S'¥“£öÔŸ<ãëIÐ}‹#Âò KîÕÖE†‡i«R©ôˆÛ²•¥%ƒÁè‰FøùP©Ôꚺ޾~:Õˆ IDAT®]4‰ÐNÐÑÙÕÐÔ¬Ñh¶¶!-¿½£³¡± =tUz|œùgˤmp/#09´¶µ#_´‡F,›ìéíExg Ò,{„PWwÏààPZFvqi9B¨¸´üfVŽR¥tp"„ôé8Ï)-¯¼™•ÓÝÓ‹-"„´Ë„¸Jâ ´£R©µõ!''£Æöô §ÞÌÊ+(žQ˜:Ga—«°§ ­]îó\)JSË}¥RÙÔÔ26&1|m‹ÀvxDd'°D¹¶|‡ÍnlnQ(ΊžÞ¾Þ¾>„€ÐÖuR©´¡©™F£\˜#ÔÆâ_ä{j¼“Œ1°µÞžÞ>½ÇZ-¸\l±§· WP©T!*•z¿µ[¸RªTM–ÚS1=q»ï×üÞÊÊÉÑaxDÔÑÙEàXc-Ûòy]Ý4ÍÊÒÒÒ‚Édttvñy6äß©$°åS(”Á! …‚MG[>…‚‡†)ʸ^è¡Û}$g~ Üj,`•øÍݰRTR†ý‰]°óp›§P(kjê…â:×ÅäÆÃmžJ¥ªkhR)•¶|žŸ¯7BÈÃÝ­¦¶>¿°!Äçóü¼½¦Áo/M]CuMmY…’N§;:Øûùx(‰3´èt¡ »§×ÒÒÂÊÒÒ°‚§»›J¥®«oDÀ–ÿ«±3ÆSç(×9.-­mwó =Z»¬­­B‚ê›2o岘LO7½‡:±”±­½crSF„££CSs‹•¥%öHǃ-$—+°'î½ÜÙ6ÓB"%=“J¥òl¬ýçû’yLÛXàÆ¿66b£—‘ì©ñN2‘,ÖÔ5xº»é–ûz{VÞ«­¨ºççãÅ`0d2™F£1L_|¼=kë ŠJÝç¹úz{Ö54ÞÍ/\¶8˜E“¥ö¤w®v›xÇí>-®s]ÚÚ;êêíí…Þž"Ñè½Úz/7ì嘵Ìçóº{zí¶˜“ù<^wO/™õlݹ—ϳ²±±ÆÒwƒame=<2Âçñèã9¿Òí>’3ÿ¯ý‹7BÃ,‚ÒÕÕ©W”žžòüó[ z 8{ödBÂJÃþÅ- ÀôÐ×?PTRæëí9Ïu®îÑ^Ý÷ÈQ*•7³rXLæòè¥à à7KEE™aª«ŒÓvcÜýÖ6ƒáâì™!— ‡J¥R„`²×•à1RF€é£·¯¿´¼’Ãf. Óaž)xyº×ÔÖ—–Óh4g'G_oOð @ÊðȰÚᾆ.I?Zl¬­´ïVxb˜Á)cJJJdd$A…ššš­[·J'ðDº®‰Dò /ÔÕÕA¯ÌŽ”±´´´®®Žà}ëjµúàÁƒþóŸÙlö¤ˆàp88xð É÷ò“œ2öõõíß¿?&&fïÞ½"‘!$—Ë’““W­ZµbÅŠ7n\½z5))iåÊ•ÉÉÉØ^•••¯¾ú*A³iii®®®>>>“(ÂÏÏÏÉÉ)33:`ZSÆÃ‡{zz&''ûûû9r!Ä`0ÆÆÆjkk/^¼øæ›o~üñÇ—.]úŸÿùŸÏ?ÿÛkóæÍÄÍfdd$&&Nºˆ„„„ôôtèx€iMóóó·nÝÊáp¶lÙrûöm„…BQ©T[·når¹111###;vìÀ¶»»»I6[YY8é"‚‚‚ÊËË¡ãÈ3 /Ù‹Å«W¯Æ¶™L¦¶œÇã!„°o–ÛØØ`Ûäï#°µµt`pp:`ZSF[[ÛsçÎq¹Ü©ÓrEÿ´90i)ã’%K¾ÿþûmÛ¶¥¤¤Ü¸qC{+áÄÓÄ''§ÉÑ××ÇÏη2¸³QíCqcÐw0ƒRÆ}ûö½ÿþû«V­rppxë­·Hî¡»‘——§WÁßß¿¢¢K'QDyy¹öI`šRF>Ÿøða½BÝwÛ0GÔ#...==}ÅŠ“+âæÍ›«V­‚Ž7¤¢¢ÌÈ/‹/sx)㑘˜xüøñúúz//¯Éj³¦¦¦­­-..:ÞçŸß‚_>[ ò„>38{ö¤aáÌýÆ4•J}÷Ýwß{i|0P©TúÁ¼óÎ;T*|Y`Ðg²r~~~ß}÷ÝdµÆf³Oœ8]0^`½ ˜â”ñƒ>ˆx˜i6ÀP"V2ýš<®LôÂô8€m§¦¦677ÏÃL>‘ dÒ.LWUUݾ}{×®]¡æææ;wÆÄÄlß¾½¡¡A©T®X±âêÕ«+W®LLL,..Fµ¶¶îÞ½{ùòå;vìhjjÂÑ]T«ÕQQQgΜ‰‹‹[¿~}ii©^íöÙ³gãââÖ­[WVV¦÷kggçž={¢¢¢¶lÙRUUý ðÈRÆžžžcÇŽ½ùæ›Øçø>þøãøøøÔÔÔ¤¤¤Ã‡Óét±XÜ××wåÊ•wß}÷ã?F}ôÑG›6mJKK{ñÅ?úè#¬Ý¥A*•*—Ë Åõë×7lØðüØt™LvíÚµ7~òÉ'z?:thÙ²eiii»wï>tèô7À£I¥Ré‡~øÖ[o±Ùl¬¤²²rݺu,ëé§Ÿ®®®F)•ÊÍ›7s8œ%K–ÔÕÕ!„Š‹‹ß|óÍeË–ýñ¬¬¬4ÖøúõëÙlöÚµkŒÕY·n‡ÃY³fMcc£ÞO¥¥¥X ±±±ð¸4À£I5Í¡C‡víÚ% ÿÓ(•ªV«±mlÝ!„%”Úw"²X¬ÌÌ̼¼¼¼¼¼ììl“R´í`-K$]qzup5̦²ªúïŸ~VVQaø“Z­ÎÉÍýìó#¡¿úÙ) mWÄÔɯzÓïŸ.]ž &®Ét]aÌ„‰;Á¤¸)rþ48ðQ1ñ›,Wwø4ôþãÝéãR{æØòHâs\óÀtަ™˜2=z4**jÁ‚º…þþþW®\‘Éd/^ô÷÷ÇÝ188øûï¿—J¥W¯^Ý·oŸ±ö/]º$“É~üñGooo„••U~~¾T*=}ú4FÃê\¾|Y&“ýôÓOX]BBBNŸ>=66–žž¾iÓ&HþÌ£´¼<4$¤¬¬Üð'Ñèh~Aáî—v"„^m?øjšý3844]1¹&à¶`LÜoÓù“eæTqâöÉ;|z̘fû¤1Ñ'¦¿ùæ„ÐÛo¿­-9räÈþð‡ƒ=zÔÛÛûàÁƒ¸;¾ñÆï¿ÿþÉ“'ßzë-¬0""ÂðIçU«V ‚wÞy!tðàÁ¿þõ¯‰äµ×^ãr¹*• [¼LJJï½÷žÞ¾úÓŸÞ{ï½'N8;;ë* §»§G.—ÇDG}÷ýÉή.'GGÝ_ÿ}â{„Б/¾|ýµýÿô³×_Û¯T©¾:þuhHH^AÁþ}{ÅbqrjZ{G‡££ÃÚ'ŸTªT_ûïWv½Äd2 ÅWÇ¿ÞýÒNƒ!—Ë¿8vü¥·÷ dfe YY[Ç-™çꊫÕÀààÏ×®‹ÇÆV&&âV8ÿÃŶöv½CÑèèèõ””îî{¡pUÒJk++•Jõåñ¯cc¢³oåhЉñóõAé©Íb±È(`¸—¡Æ%±®¾>'7W$åñlâcc縸èêpúÜy‘Hô÷O?‹ _ºd1…B©¾W“uë•BYíëCÊcÊ+Н¾þfïË»Ùl¶L.?òÅ—»vî  D²5CWëºׄˆˆpÝÈÁÜ¥=Ƕ ¢çÜÈ4TF/Jµ{‘ï­Ü…!!å!­V«ÉKOIKl#-Òu¦D"INMkmkãóx+âÈó¸âÍPž{µA~(ǰá*ޱ1¢§‰¡þº^Õh4ÚÞomk3œRp]jÆD¶oÌ&g-\Y†®ÖÚm½ "o ±-ÆÔ6,$žù œ‰[h^_ „êRÒÒ-,,Ö¬^%È;м^Ó K\YS4cÏÊUÆ<ÂÂÂæÍ›÷í·ßfgg?~ÜÕÕ=ü\ ¶íìì|äÈ‘¬¬¬³gφ„„èþ¤ËæÍ›322.\¸€Љ‰¹råJJJÊš5kÒÓÓi4Zvvö¦M›233øálEkûßÉÉ “rúôi¬`ÜKŒeå¡ C(JèÂ…eåú ¯½ºOom€N£) F³÷åÝ¡Ìì[vÁžÝ»œoß¹cÁå:::4·ÜG565+”ʦæf„PsK‹“£#—ËÍÈÊŠZ¶tßžWÂÃÂÒofÓ*çv®·—×ÎíÛzz{p+ünÝs¯¿¶ÿõ×öÇDGþÚõ·nç:98¾üÒÎ9..9·sB4M.—÷öõïØ¾->6öö;XM=µI*`¸—¡Æ%1=#󉤤ÿÚ»'2<<ëÖ-=6møÖ8–*Q(”¾¾¾Û·ÅÅ.Ǭ#cˆ1å---…BawOB¨»»[(´³´° ßš¡« ]¡g‚^äàbè='àF¦¡2Æd‘ï­Üؘhâ&)]*“]¼rÅÉÑA/_Deçܶ³ìÙ½kqdDÚƒAA2˜Ço†‚Œ¹—üP"Ža\p›ÒÓÄP]¯êö>ëR3Æ nûÆ\arÖ•eèjü埇ƒŠ¼Ä¶SÛ°xæ'0·Ð¼¾@õôôîÚñ¢ŸÏ­¾"é@ózM/,‰eMîŒ=+SFàñF&“Ýom]à燚?߯­­Ì'¿U*U``NGÝom e0¡¡ ›š[B>ÞÞ ¡†Æo/¯úl»ÑÇÛ!´mËw77æçë3<2bLDGggpP “É 0rçF[{{CCclLŒö:ta“É n°©V«ÃÃB™L¦§‡»H$ Õ&£€É½Æ+‘ËåÔ54ŒŠÅ¾>>[6n$v»Z­_Æd2==®Öp]=®ÈÁe\!VƘ,3â8¤ÉH9wá¿ù!ÁÁ†ú777‡.\È`0¼<=·lÚ8Þ`&o® ò.Åd^—á6E®ÆúwJÁµÔ¼1ˆÛ>®þ&g-\Y䇒®ùä 4i ®Ú¸…Ä3¿1q Ížƒ‚™Lf``@Ww÷xh^¯™=ïMpÆž•¦§x÷#§²ºZ$éÞE^Y]¶p¡É-¸\lC.—yì¸ö4!äíåuç—» …¢å~ë¦ NŸ=‹mc‰][[{vNÎÀà R©$Îe±{΃çôq¯fde?ûôZím¯R©”Ãá`{Itr_¬F£a׳pÕ&£€É½Æ+ñé§žÊË/8}欅¥e\LŒ‹‹3±Ûµ™‘7„@yw·¼ÂBl•1<,l\­s5ùÈÁe¼!VƘ¬ñÆqH“‘~îü¹Baee‰¯¿LÆ6¸>E>˜É[„+h\.5d^—3ÄäX3ìSÜ)×RóÆ ±)ËP“³®¬q %­ùä 4i ®ÚÆl!˜ùˆ[hö|ÈåpBlK.—›1™Ñk™÷&2cCÊÌ8ÊÊ+¶¿°ÅÖÖûsphèÊÕɤŒ:çÍÜí/la2™ºCZhgw7?ßÁޞdz …wóó…vvØH»vãFLt”‡»;…Bù瑣ƚe±X2™ŒÃáŒIŒpÿ|ýF|ìrK Ýé@"•r9ɃM^m2 ˜Ük¼m¬­W$Ä£„øê{5×S’wíØ1)Í’¬éèè82<2*Œ`÷B‘o¼«A¡PÔj5•J› C&® ±áÄ!MFúÚ§ÖÈd²É)ëŸ{V;Ütõ³´´œD£p-Â4A—N<†'ظS ®¥æA’S™Y W®«qG‡É®4é4\[pÕ6i ygâš=J¥R.—+‘Jµwšç@ò–NçTóÈ ÓÑ;“ÁÐ=€ñy<›}¿µ•|#nóæ+•ʊʪ /a…>Þ^Å%¥^^ž!o/Ïâ’RŸO»ómù|>_­Vq8œ¡¡aÜfìíË+* E…‘—zÞÌÌòõñvq~è4ÔuîÜ’’R…BQXTä:wÎxÕ6©€É½Æ+ñ̹óµuujµÚÆÆo©YZZ «T*³ !®i/¦¤¦ í„ãm¼«™`aaÑØÔ$—Ë ŠŠ´/çÂuˆI'Wf\ÎÑ•KÒd¤;ØÛ»Î»"1áêO?IôLînóò ‹d2Ym]ý‰“§&Å(\‹pẗ¼t“1L]Mȇ"k©ycä”EfÖ•…ëjÜÑa2fL: ×\µMÚBÞ™¸…æõ…BÑjåää8’·T7,MŽ‹Iœ±!ef¥eåóçûé.ðó-+¯ ßHÔÒ%=½=G¿:VT\¼dq$Vèíå¥Ñh¼<<BžžžÆÛËû)&*êâ¥Ë'Ïœuqq q§\K̓$§,2³®,\W㎓1cÒiF|…£¶I[È;·ÐŒ¾P«Õt:] °ýêëojk뢴¾2Ëä{M7,MŽ‹Iœ± ”®®N½¢ôô”çŸß ÓcÀÙ³'Vö/n!t:ÓƒX,þ÷‰ï÷íy\³(€UF`Zɺ•³üÁ{ ˜-Àã/À´òĪ$pÌ:`•€”˜i)cDDÉB]D"Ñïÿû¸¸¸ßÿþ÷£^ƒ®GMMÍÖ­[ ¿>2)%É /¼PWW10å)£yŸlùöÛo.\øÓO?…††~÷Ýw†ÔjõÁƒÿüç?³ ÞÀ>)9Î<¨V«!,¦íÛptÿ!³ÞÄ1ë 'Y8cµ}äüpéò,÷؇7®±Üj½T(§ÏŸÎÞÄ !µZ“›«û©­YÚ)SÚ¿º^2T~š§óÌ'®0Ãç„ ¥Œ½½½‘‘‘###¡ÑÑÑÅ‹÷ööbË{r¹<11ñøñãÑÑÑX匌Œ„„„ 6444VÈÉÉIHH°°°ˆÍÉÉ1”•––æêêÊçó§N¢ŸŸŸ““Sff&$pÓÏë¯íÇþémÿf½Š‘gphè1á=Õ=XS[çáæöÈCH4:š_P¸û¥³½S¦´u½d(hVŒÍY}h›ÐÓB¡ÐÛÛ»ºº:22²ººÚÇÇG(üõ+ C"‘¨Õê´´4„…B¹wïÞÕ«WÏœ9óÏþóïÿ»^…ÎÎN{{{„ƒƒCGG‡¡¬ŒŒŒÄÄÄ©–˜žžÓ:Æù.¶é|[‹õÑÑÑë))ÝÝ=öB᪤•ÖVV*•êËã_ÇÆDgßÊÑ ãç냋ÅÉ©i펎kŸ|’EîóµºP(”ê{5Y·nQ)”å1Ѿ>¤šjµ%IrjZk[ŸÇ[‘}L·ý/ŽͺuK­VÇ-Q*U·ssue!„êRÒÒ-,,Ö¬^%°Í×_Û?.õêêësrsE¢QÏ&>6vŽ‹‹žÎ¸ ›RªT_ÿ:4$$/?_©Rí}y7›Í–ÉåG¾ør×Î_ÿs&®ÌSLwýàó/¾\™˜š~“Ãá<½æĬŽý’vvv"‘èïŸ~¾tÉâ ŠÓmyÿ¾½†¢OŸ;¯+ΰùð0Ù;¸ ªÖ¶¶Ì¬ì¡¡!+kë¸å1ó\]‰øùú Ñè芄„ÉɯîÝC¥R±ðÓ®y`ÛD¡RP°ß^\¡ƒƒ?_».[™˜¨»ŽBÞƒCCW~üill,6&&=#cÿ¾½S0¡Êªª•‰ ÆZõ ·‹uû(%-] °X´ÈÐoz!¤Ýëß'¾GùâË×_ÛOlBè•]/1™L…BñÕñ¯w¿´“Á`Èåò/ŽéÅíýz ëõÔ”vŠnÌzÉdôë\/é*BHϱ&#Öä 3ìzcþÁu©=¹þ1vÈ{LVBQQQUUU¡êêꨨ(Ý#½B¡xî¹ç°Ã†F£Y¿~½……ÅsÏ=‡Õ׫ —˱*2™L)ÞǼ+++§ZbPPPyy9dŠZ~·î9lÁ/&:*(0+¼u;×ÉÁñå—vÎqqɹ‹¢Ñhr¹¼·¯Çömñ±±·ïÜÁjffß²öìÞåäà¨-oÊØ××·sû¶¸Øå˜,2ÍNµÚÙ9·íì{vïZ‘v3ƒ }…BÑÛ×»cÛÖ„¸¸Œ¬ì=Y¡žžÞ];^ôóñ¹õÀ@Œq©—ž‘ùDRÒíÝžu떡θ ›¢Óh …B£Ñì}åe¡PØÝÓƒêîî ít¿ÖëóûÏdD¥*•ʾ¾þÝ;w,ðóÓzÃбÿQòåÝ›6ü;+À޾§Û2®h=q†ȇ‡ÉÞÁ…LPedeE-[ºoÏ+áaaéÀ‘“›ëåå¹kÇ‹½½½J•ŠàËiD¡òòncBsnçz{yíܾ­§·ÇÐÜðξ•ãëíýÒŽ»º»ô¾‚3388¨P*ù|¾±ÖpíÂíb ©LvñÊ'G‡ˆE‹pý¦§€–×^ݧ=¿%6ÁÑÑ¡¹å>B¨±©Y¡T657#„š[Zœ¹\®¡Âz=5¥BÃ##"::»‚ƒ‚˜LfPP ±PâP1&´£³38(ÉdøûãnƒðÆva1™ CBLΘʪjo/‚ÖpíÂíb„ÐðÈȹ øÍ žÈHl‚·wCc#B¨¡±ÁÛË«¾ÛnÄ>kŽ«°®ùSÝ)ij„ÉèÅí30±&®' ücÌ¥ÆÂϘ yÉ…i„¿¿GGGoooGGÇüùó —ˆ´Û###¶¶¶ÃÃÃV:Wd´\\\º»»]]]»»»çÎû¨$êî`ŒŽŽfde?ûôZöëi´TÊápB6[¢³$ŒÒh4̓/ÆËåò/מ¿š§–ÐS©Ôq5;¥jKe2¶ÁÕj“íkmÑ•…âr8!öƒs=Hª÷ôSOååœ>sÖÂÒ2.&ÆÅÅY¯Ü Æ,µàrBîny……Ø*cxX˜I˜§˜~òÄáèžÑ8S’Œ™ã§Û²1ÑÄ>®ð0Omâ jkkÏÎÉÔ]Â!“É8l¶Ö‡Š1¡2™ »ªÃÁ[0Þ˜EV_»ŸŠ€Ñh4Õ÷îýný:‚ÖpíÂíb„йóä …••¥I¿Cl‚·—×_î*Š–û­›6l8}ö,¶ã*¬kþ4t ±—HN‰,#S"ILF¬ÉAgÌ“†þ1éRÜð3æÃCÞã“2R(__ß÷Þ{ÏÇLJ ߢR©—.]Ú¼yó•+W°ëËzDGG§§§oذ!--MûüŠÞòáÀÀ€““Ó”JìëëÃÖ&í¹ÑÏ×oÄÇ.×½(Éáp$R)—Ñ<˜×ŒÎæ\îö¶`7L"&›jµ9ÎØØ˜¥¥¥^!Éö \.W"•’¼×W=kë ñ(!¾ú^Íõ”ä];vèí…[ØRGGÇ‘á‘Q±xxdDïn-\˜§˜‰„Ëåj§àñ:vââÆÕ§¸ÌñªM̵7b¢£<ÜÝ)Ê?%Áb±°Ë,c‰î¬®V«©TêØØùA+kŸÃáŒIH*Ïd0°eTDj‰e"ÓÔÜbaaÁ³±!h ×.Ü.F­}jL&»‘œ²þ¹g±+ZæÍÄ&p9¡ÝÝü|{{ÏF(ÞÍÏÚÙa5qÖe:…ØKfôéT&L:“žœˆK'âŸGÈ$¼d'::úîÝ»†×ˆußl6ÛÓÓsÍš5©©©¯¾ú*Î ð¶m%%%kÖ¬©ªªÚºu+îâbEEÅTK,//ÇÍ/³ÜÌÌòõñvq~èôËuîÜ’’R…BQXTä:wÁînóæ+•ʊʪ /M–V&›jµÝÝæå.æTu IDATÉd²Úºú'O·}½“®òŠJ…BQQYéääh¶ùgί­«S«Õ66Ö¸§¦¸LZj/¦¤¦ í„d<`žbz”UTÈåòÒ²rçÞ0éXKKË¡¡a•J5)âLÆŒ®8Ü f„ÇxÕ&†oËçóùjµº °ˆÃá á`o_VQ¡P(JJKÿ³baÑØÔ$—Ë ŠŠ´w7š \¡ööÚð&©¼½½}yE¥\./.-!S"SYUåããMÜ®]¸]ŒÙë:wîŠÄ„«?ýŒeá¸~Ó !\LšàãíU\Rêåå‰òöò,.)Å®JSX—iè‚`^Ÿ’D×±&#Öä 3éɉ¸t"þ™Å«Œ¡¸¸8Ý7#j·µ4 {sMll¬îŽº{YXXüãÿ –’žž¾bÅŠ)•xóæÍU«VA¦¨YÙØŸÖ¯sqv^¶tÉõÉEÇJœ“V® Ø=jé’”´´£_³¶²JˆÓ–ë=é6^Œ5;Õjÿç4iÙ²kÉÉ_;Îçñ~}¾ž|ûZÔj5Nl¿úú+KË'ŸXm¶ùKGfdeßHIµ²²JÄÓ·‚IK=<ÜüùÚSO>AÆãRÌX lǾù–Ãa?óÔS$ûÌÚ§.]½"“É÷ìÞ5qqºàŠÖ‡[ÁŒð¯ÚÄÄDE]¼t™Éb­HˆGtâÔ©ýûö⊈^¶ôçÉù…+þóšˆeKc7ã/Žf2$CW(Ö~aqñÊÄDÃûñÃ{ÙÒk×oÇÇ./)-›º€‘Je …byL4qkFìÂébTÀM©TýøÓÏëž}×oº!„ë“&x{yede{yx „<==³nåx{y(üðàòN!d •è:ÖdÄšœ3Mzr".ˆ!”®®N½¢ôô”çŸß2ÓU«Õ›6múË_þâåå5E"jjjÞyç“'O<68»8{ödBÂJÃþÅ-œ<®ˆÅâŸø~ßžWôÊ'x.1CÄMµÚSÄLóƘDòíw'ö½òò´õà ‡ÙÒ)Ð qþ0kr#*•úî»ï¾÷Þ{¸¯à™8R©ôƒ>xçw›|f,Y·r–?x’ýñ÷W{‚üøóµ†Æ&¹\^PXèèèð[vt 0Ó Ï"]ýüüp¿%8)°Ùì'N@@À4ðΤÇXÜo\í à¿ 3+{T,¶ W®Hü-»:˜iÌš Ó€À…i&%˜èE؈ˆˆˆˆˆ˜˜˜mÛ¶]½z• æçŸŽûöcÍâ–ðÁ3ÍN4”ˆ•L¿&ÓÆ$\˜ÎËË“J¥¥¥¥ýë_ ÆêÕ8O}*•Êo¿ý6==}\-oÞ¼ùÔ©‡žú!tòäIô`)nÿþýׯ_ÏÉÉùðñ_qùðñ] ¿PÔÓÓsìØ±7ß|ûúËÇŸššš””tøða:.‹ûúú®\¹òî»ï~üñǸ*¡‡—©Tª\.W(ׯ_ß°aÁK"e2Ùµk×6nÜøÉ'ŸèýtèСeË–¥¥¥íÞ½ûСC^äyýµýØ?½m`æ0844®”¦D££ù…»_Ú þx´LæÓJ¥û’cqqñÝ»w±B¶Á' ?ýôÓ––©TªV«Ç+E*•~øá‡o½õ–¶åÊÊÊÿû¿ÿc±XO?ýô±cÇ0M6oÞÌf³—,Yòú믛TIËúõëÙlöÚµkÿõ¯«³nÝ:‡³fÍÃ:¥¥¥ûÛߨlvll¬Þ[Äg#J•ê«ã_‡†„äìß·W÷uY†¯Î‹ÅÉ©i펎kŸ|ûÐS]}}Nn®H4ÊãÙÄÇÆÎqq¯ ¥ú^MÖ­[T eyL´¯1Yºœÿáb[{»^ú2::z=%¥»»Ç^(\•´ÒÚÊJ¥R}yüëØ˜èì[9„bcbü|Iµ/‘H’SÓZÛÚø<ÞŠ„xìcz­mm™YÙCCCVÖÖqËc湺k_ú††”´t ‹5«W 2 àîeh ^OaÛÆ´üùÚuñØØÊÄDCq§Ï‰Dÿô³Èðð¥KãÊÒ[¯2&K¯)CcuûÊê‘/¾|ýµý†6ÖæE#ù$ö•1Y$;HoÜ‘7Øcjê)@Þ™¸…S430»W‹ŠŠ|}}B,+333//////;;[¯Ú6mÚtíÚµŒŒ m!–;J$&¾Ï¨Ñh:´k×.¡P¨»@¨M=µ_Ö~Øû“X%C)Úv ÃÚÔ­ƒ«Éãp>A£) F³÷åÝ&+gfß²öìÞåäàxûά0=#󉤤ÿÚ»'2<<ëÖ-3t P(}}};·o‹‹]žs;—@–.¿[÷¶N€ÞºëäàøòK;縸`MÑh4¹\ÞÛ׿cû¶øØXmS&ÛÏιmg'س{×âÈì;¡Œ¬¬¨eK÷íy%<,,ýfAûzôôôîÚñ¢ŸÏ-Òâîeh .ƴʹëíåµsû¶žÞý6mø–|/]²x‚²ôš24V7ð^{uŸ6é7ô°±¾0/É÷ ±¯ŒÉ"é4½qGÞ@b[Œ©mX¨§ygâNÑÌÀlM•JeAAÁáÇ_zé%„Pppð÷ß/•J¯^½ºoß>½ÊnnnóæÍS(_ýµ¥¥egg§••U~~¾T*=}ú4¶N‰Á`0u÷=zôhTTÔ‚ t ýýý¯\¹"“É.^¼èïï«!±JZ.]º$“É~üñGooo„®b—/_–Éd?ýô“···Þî!!!§OŸKOOß´iÓc*•*00€Ìî·¶†……2ŒÐÐ…MÍ-X!—Ë©kh‹}}|¶lÜh†jµ:|Q“ÉôôðŽÈ2¤­½½¡¡1öÁËf[ÛÚB†0™Ìàökjµ:<,”Édzz¸kïš5Ù~sssèÂ… ÃËÓs˦_íÚ¶e‹»›Fóóõ!h_  @&“ÐÕÝMÞ@ýp 4êU­::;ƒƒ™Lf€‘A¤·ˆ5Y&#7ðp=ŒÛæE#ù4é+\Yä¦k>yMÚ‚«6n¡®ä‰[8E3`!iâMDDDP(—½{÷FFF"„Þxã÷ßÿäÉ“ŽŽŽo½õ–^ýßÿþ÷¯¾ú*‡ÃyóÍ7i4ÚóÏ?ÿÁüõ¯•H$¯½ö—ËÕ<øBøÿøÇuëÖݼyS»ï7ß|ƒzûí·µ%GŽùÃþpðàÁ£Gz{{½V[A*•r8„‡Í–è|C+¤ÑhäÛ—ÊdlƒKmmíÙ99ƒƒJ¥R·Ü°}ýô‚ÃA±Y,¹\NÞ@ýŒˆ‹¡V2™ »hÈ1~çÆ<01Y&#7ðp=ŒÛæE#ù4é+\YãršÖ|òš´Wmc¶h ïLÜ©›˜e)#îËeœ9b¬¦ŸŸŸöm;QQQ{öìAÅb­úÁ$$Ý”Êhã#L¸/4•·?¸Xö5¸¤þª+‚a«ÜõƒIX8’¯ €a¿1=–ÁoL`Hò¸0 T€”@Ê e2H¤ŒRÆÿa2™jÊÈÎÎÆ~¢Z‘û÷ï¯\¹’/÷Û¬CÒ#Çûë_ÿZ]] s`ØSÆÁý†JEEEuuu¿âŸŽ’H$;wîüÛßþ¦££3=R©ÔíÛ·ïܹS"‘À´²”±µµuÞ¼y]]]¡îîîùóç·¶¶b§÷ŸŸ_RR’§§'V9//Ï××wÙ²eµµµòîܹ£¤¯œœœ)S¦ÐéôáëÑÁÁa„ ùùù0-†,ed0¶¶¶÷îÝCÝ»wÏÎÎŽÁ``"“É<O"‘äää „H$Reeezz:‡Ã9xð |…ÐÐPå}åååùùù w¾¾¾¹¹¹0-†,eDyxxܽ{Kà<<<ðr‰$ —,Y¢­­êïïÖÕÕ]²d V_¦‚JwîÜ™1cÆp÷8sæÌßÿ¦À°¤ŒwïÞ•Nà0FFFø2NG7®»»›°‚rÏŸ?Ç*kãÇooo‡i0”)£££cccckkkccã[o½%óW‰„/c7 vvvŽ7ްÂëÐã Æ0æi½äú$ÉÞÞþóÏ?·³³S’oihh¤¥¥…††^¸p»¾ùËðêëë#""¼¼¼V¯^ýðáC„Ðûï¿òõõEÅÇǹ¹¹-^¼8++ ýù¾üÙgŸÕÔÔ0™L.—+ßãÝ»w‹ŠŠÖ®]‹ª««[³f ‹Åzÿý÷kkkE"‘¿¿zzz@@€ŸŸ_yy9ádú•H$§OŸööö®¨¨P4°3gÎx{{¿÷Þ{·nÝ’ùëÓ§Oׯ_ïáá†ýªáhWSû §·×ÊÒROO/ÔÕÕEõ }}}!é?7N!}™&6j=xÀ›˜2bfÍš…ec_ýuHHHNNΪU«°n§¦¦¢§ââââ233 ÿùÏ*y÷?ÿùOléŸûô´´=zô³Ï>Ã~ýeÏž=>>>—.]âp8{÷îÕÒÒêééikk»pá®]»öìÙC8$ôçSƒ@(fff.[¶lÿþýŠÖ××—‘‘±bÅŠ}ûöÉüi÷îÝîîî999„Ïunýþ;BhæŒéÒ…öö¡ÚÚÕµµ!{åØÛÚ!„ªªªž44ÄJ¼ðËàÀF—¡üÆ´H$¾ [^^~íÚ5¬PGGG¦Ú78ðèÑ#>Ÿ_»TŸÏÿç?ÿ¹e˼å;wîüë_ÿÒÖÖ^¼xñÑ£G±‘„††êè踺ºnÚ´IåpÁÁÁ:::‹-JHHPTç½÷Þ£R©ï¼óŽ|ŠŠŠ¯¾úJGG‡ÍfËl/¶—’ÊÒËZšš^žž^jù ¯›¡¹0-‰JKK÷îÝûÁ „fÍš•’’ÂçóÓÓÓ£££e*[XXL:U(;vLOOïéÓ§ãÆ»~ý:ŸÏÿñÇ¥ŸØG&“Û_|ësøðaiÓ¦I:::^¸p¡¯¯ïܹsŽŽŽ„#T>$\ZZZ__ß/¿übkk‹"ØùóçûúúþóŸÿ`u¤999ýøã½½½¹¹¹!!!0½06 ÁYF&“I"‘ÌÍÍ£¢¢æÍ›‡úøã¿øâ‹ÔÔT33³-[¶ÈÔ߸qcLL •Jýì³Ï455—/_þå—_þãÿàñx6l ÑhØ÷pBŸ|òÉ{ï½wùòe|ÝãÇ#„¶mÛ†—$&&~ôÑG;wî<|ø°­­íÎ; I8$&“)ÿMçÀÀÀñãÇÿýïGíܹSz`b±;yÉápÆÿùçŸË¬»yóæÏ?ÿ<99yâĉ҃àÕ×Ç×ÖÖ¹î‚êšÏž· MMMC;[+=]Ý—l6;7!àË~Óv¶á …B74°·µVro¼ÇõO*«jÆLè^ÀŒ±É9L‡ðxT×>°µ¶Ú6IMMOeŠrs³—/{ßÛ3ÈQíÌ™T_ßùýKX(¿ÓÏœI…Œ(2}úLuòž¾>}}ƒUIiYGg×ÌéÓLÆ-­mwîÝ7¢Ξ5ö×K¦#ýýýMÍ-¿ß¹G74p™3[ýJËn>oïc)ãk1–2¾†‡ð(= ²só--¦¨“5Þ¾}‹0O´н™€òÏ!êž-èãcaI]Ün„Ðx#º†††™©‰™© þ'±X\]û ¹¹U$›™0Þr°Ãn>ÎÉ»ª­M™2iRíúqzz]]lO7 …‚*ú­„ß×ÇötËÍ/Àß•%IMíææ‘Hdhhà`oK£R ïìâVÕÔr¹Ýýýý†úöv6¯ödÉK] ‘LM¿ß¹‡E‹CUMmãÓfÔßoffê`g#OüÞîìÜüy.sÆL4ä"³á~Þ,Âøà竲só|Ù„uÍ1E•qcc¾)9„E@:iÆ— ÷ˆšGîð#œ5>¬{ŒÂsðƒRnÆèã¸y¯$_DéëC]/»Y÷¨¾ëÏt­®}ð¸¾ÁÖÆê-{Û†§M?A/¾Í&Š44HÞ,÷ f&¡Ö¶g¡žÞÞžÞ^S†ÌO¢?¬{\÷¸ÞÊrªÓ¬Ïž·ß¹[©¨ñ[·ï´·wÌwqž;{V{GçýªÚÑ»C±ó+!ºáçŒk>z\ß`gcí`oû¤¡±æA|<ñ7È_öXІ|@d6\Q|¤¢¨Ž¢9¦¨2nlDXÉ!¬2JnäöˆúGîð#χu«k Ukp–0FòE„ЬéÓªj´´¶UÕÔ"„¨TêLÇ· ôBÍ-­!ØD"¡»•O››--¦à§ &˜™ijjš™šÜ¯®mm{f>qBKkBh‚™©LO›šB¦& 2™ìïóÇsÇÎ.<ªo0eûxy(9{ñšÃÎܵ´LÆoÙÿñµ?ì½ÓÔÄ‘H¡ææ;+™xJ72f¢¡( 2®$>8Euç˜ÊÇF„•Âê„T†ôQÿȾ£à•Âs2†éUu¬­­=Ãñ­þþþÎήGõOš[ZïÜ»ï6ßûÐÊ»RˆÕäñøÒ+R(d„…B1¢>{Þ.‘HZZÛ´µµè†2]ðûúBZZzñ$l|šƒ}eUMý“†ú' d--{[ùtT <;Ò÷ç8ô òñ”6f¢¡üt¾áÊ㣼áSÙàØˆ°’CX*Ù#ê¹Ãw¼*CõùRFÀпè#„úúø¯,c%‘ ôôt›[Zyü?†¡£­ÝËãùy³”¿zš™™>{ÞÞÔÜÒÙÙe1e²üãWµ)Ÿ/‰Èäÿ½6Î0Ï0ßÛËkjn©yðð~uíèM’ˆö2…Çã‹Äâ~I?åõÇv4Euç˜ÊÇR„ aE ‘Hýýý‰Dùs‘Õ?r‡ï(x%¬­,¬--†&õ„·7Àpd#ùl\Åïw._)lniÅN"„ðÓ„ff&¡¦æ–ööŽœ¼«å¿¶`Ê0ÖÐШªy€š0Á”(§4A5µ´vtt^º|¥¤´\Qãå¿_¾R(‹LM!²Ö˜úˆŽ¥#-­m-­­ˆè >»0ÇãóÇv4Ô%uç˜Ê€+9„E@—FC={ÞÞÒÚ¦$óSÿȾ£`Tç‹Î2‚!|Ñ N4öžg³F4âçmm¬ú«kïݯºu[¤¥¥efjâ`gƒýÉÊbªX,®®}(‰Œè†ö¶Ä¯‰ZZ ãñÍ-­zzºãôô^‚--ÄbIuÍÔß?ÞˆŽµCظ•¥Åýªšë7n"„ètC[›±´­,¦ …¢û÷«‰4e²¹¢;À¦L2TÿäÚõ³gÍÃÑP?>x@ØžîŠê(šcÊ>6æ›òC˜0ö¶Öw*«nß­t°³!“É}}}„?Ϧþ‘;|GÛÓ}ô拞Ë8¶½üse !eøCvÔy.#ñGy@Õ>¨³¶R+_Tÿ¹Œpa L^^ž¯¯ï²eËjkeŸàÐÚÚÅf³###Ÿ>ýã£HGGǦM›<==ÃÂÂîÞ½+³ŠP(ܱclj' °cä‹0òÔÌRF0$©²²2==Ãáš={6ìËᦩ©™ŸŸb³ÙÒåø ÆáÇeÖ2008pà€L¡ôC}||||| ¼À˜J•322:{ö,F“)—ûöíÛ7nÜÈb±H$’——ž>{öÌÄÄDe›'NܶmÛÖ­[/^¼¸cÇŽ_~ùö%À0‚ç22Œúúz¡PˆruuMIIáóùéééÑÑÑJÖ²°°˜:uªP(LNN¦ÓéØ×® ï{#lsÍš5999b±ØÜÜ\ù/‘€WŸ2îÛ·ïÃ?|ûí·BÑÑÑ•••©©©‘‘‘JÖÚ¸qclllxx¸““SpppXXRpßa›ëÖ­;r䈗—×®]»¶nÝ ;`ø¨ua¿óLú4|ÙÖÖöçŸÆ–étúÞ½{­.½ìàà€? ‘ÉdFDD ÷½¶9oÞ¼Ÿ~ú ö£Ý–<av{÷B# ~0¨ ! ÂíÛ·†¨¥ùÌW€”0l–/šv ”ƒd !¼¼3gRÕ¬ ¦¤ŒRF)#€”ŒBL&‚@ʤŒ`€êêêBCC ±@àë뛕•èïïñâÅôôt‡••…ÕY¿~=S „u์`¼½½ÃÂÂN:…•ÉäÞÞÞªªªsçÎýöÛo»wï~çwÒÒÒ~ûí·p8„ÐáDZʧNzüø1„uÔ:ËØÚÚºcÇŽ ¸ººúøølܸñþýû»7Э[·‚ƒƒi4ÚâÅ‹±‰$‹W®\I£ÑX,VWW×êÕ«±åææféuËÊÊòóó?úè#ãöíx•%oÔæã$Iaqqü¡Äa aËÊ»™ôzNƒŸÓÎd ƒØ;ŠúzÍ«oÄËÿ{…AÃsx„©u–ñã?f±XqqqFFF===………éééŸ|ò „ïMÃårõõõB†††ÒåØÉd2BÈÀÀ[–H$x…–––={öìß¿«Àwìtw_/½µ.!´iCÜHv=Âݽ¶c×ÞÑñÊ[P?2/ß×ÈïîoÄ¿ü®M6üõœÃ¯cÊøðáÃ#GŽèèè „ôõõ,X°`ÁìOØ È{÷îÙÙÙíÚµk„ !&“YRR‚UÀ–Á‚ BBBNœ8QPPÐÑѱk×®ÒÒÒ)S¦lÛ¶mÚ´i¡¶¶¶]»vUTT8::~ýõ×ãÆCåææ:t¨¹¹yÒ¤I›7ovvv†}ö éééuuuÑéôçÏŸ«¿–@ ضmÛæÍ› ÄðÕÓÓ“u)§¡±ÑÌÌtÑÛokkk‹Äâ9;9•”–ÆEGÉWÀ×å÷õ:}&ü¯aZššX‰H$:™z*tÅr‘P˜™ÝÜÜbÂ`rôÇ“y£"|ÓâñxY—rêŸ<¡úûú˜šš"„êŸ<É¿rµ££cœ¾¾·kê”)b±ø»¤cl–çÕ‚Â~„Ø,–ƒ½LSÏÛÛÍÈìéí ðóS²±?$§ „|·iC6$E+‰COoï±?¬[û…B …ß'‹ø` ™LGŽ&}°ê}‰t¯òþ•‚ É‹åiog'­&\EZuMMaq1—ÛmhhàÃfO27W±7¯_‰ÅQ‘:::}Aâ‘ïÖ®Yý}Ò1%c ÜdÂ~¥Éï/õgBèdz?q¹ÜoÄÏsqa2]¤W$œ?òã‘nÁÍu>aw„ÓCæÜ•’É@8Z7×ù„{Mùö"„~úùÜ“†™¨»»[æÄÌT‡ÌÞÉ x—–ŠD¢×<µ.Ls8œÂ¬¬¬‡ö÷÷Kÿ)>>ÞÑÑ1##ÃÙÙ9!!AQ d2™ÇãI$’œœ„Ðþýûmll²³³#""vïÞÕÙ»w¯µµuVV–££cbb"VøÕW_}ñÅùùù«W¯Þ·o¼ï¾ZÓ¦M;þ<Ç»pá‰DRs­ýë_þþþNNNÀ7YþÕãñã×G¬`jVôÛo!-MM¡PØßßAX§£­meiqïÞ=¼äæ­[ÖV–:ÚÚEÅLÍ"?X3Éܼ°¨XÍÁ\-,26¿>bíüyÌœËyXaÞ•+înÑë׹̙“{9!¤©©)ZÛž­~?܇͖¦°¨ØÖÆfÍûá-­-J6vCL´Ì‰ E+‰ƒ.fffZ÷è1BèÁÃ:¡Hô°®!T÷èÑ33F"‘ÚÚÚÖ¼îÍö’áV+_!”›—¿€Ã‰Z?ÏÅåJAê½¹.’Á`4·´ „š›› c=]]åc ÜdÂ~¥Éï/õgB(dÙRl¸¹Î—Y‘üx¤[PÔáô§r¦ÉôE¸×”o/Bhé{K6mˆÛ´!Žåé1sÆt¬PþÄÌTëÕ« ò€çpdĨ˜Ã¯iʸe˱Xœ››»~ýz‡óÕW_uvvb*-- ¥ÑhË—////WÔ‰D …K–,ÁräâââÐÐP*•Êf³“““±:ׯ__¹r%•J +** ŒŒòòòZ[[9ÎÉ“'á}÷ÕŠÍÌÌ\´h‘ƒƒ…B‘ùü È… öìÙƒcúæÍ›É1LÑ LëëçÌq&“ÉÎγÖ= ÅbñŒÓµ´´UÀ9Ïž]~³[ …å7+œfcÓg;Q('§Y RgP”«««sž=›L&ÛX[‡…¬À ÃÃÂ,-,455ìí:»º°B‰Dâ2Ç™B¡X[Yr¹\ù¦Ÿ>5s…B™îè¨|cå6®|];[ÛÚBµjmmljj±åv¶¶48w…B±¶²âvw«³ÕÊWAÑhÔêÚÚîž{;»°+ÔÙ›VÍÍ-¡æ–+ K•c l°_i„ûKý%CzEB*ÇCØáôP2(«,·×ÔÜÞ' µµØ,~¢KþÄÌTÇ« ò2‡G€Z¦5448öí×'OždffnÙ²åСC¡ÎÎNì>6ƒU7a ø-q2×­‚‚‚°e …‚Ÿz<~üøªU« ÆG}4{ölxK~…lllΞ=ûÇgÓŸ™ð›-K‚1Oæ*0ž5 ‚ïŽ&áçT¤Ïœ)¯€Ñ7ÎØØ¸¶öµµUÅ­ß§Lž4nœBˆÏçS©T„UG‡Çç«9H~_ŸŽÜ%ž'O®>oo‰DÒåXûššš„Ÿ‘úúú°OÂT¼Pù¶(o\ùº¶66¿ý÷šP(|ô¸>dٲϜÁ–ñ »ƒHCCC~´„[­|„Ðâ… K®—þxúŒ®žž7‹en>QåÞ´²´(¹q;Cã2gŽÊ1¶Fد:ûKÍ%_‘ÊñvG8=ÔŸ JÈï5u¶·»»;ïÊÕ¿,^„WPt tfªé•ù͙ïEÊ(mÒ¤I+V¬HMMÅþkhhØÙÙI§ÓñÜ›Ä"‘HKKKæŽ7üR¦¡¡á³gÏLLLdʳgÏÒþ<Ÿ&Nœ¸mÛ¶­[·^¼xqÇŽ¿üò ¼%0Ñh´÷ÿ†D…¹sœÓÎ_˜8qBYyù{ycãñù4*•÷â{©‘H$½½½ŠÞ›{{{õôô¤ 3.^dyzXYZ’H¤ƒ‰‡ÕÜ.mmí¾¾>*•ÚÛËS[(•Ê06¾výº©‰‰¡¡ƒÁ¸vý:ÃØßvå‰üV«d ¯ïïëƒ|}îUÞÏÌÎZ»zµÊAš™™uuvu÷ôtvuawz)ak„ýh z/Εã!ìŽpz¼ªCL,ÿšyчí%}™•ð\û¯mßÀ9züØÊÒB1¶Fد4•ûKå ß]´0-ýÂ÷ÇŽË”ÎÂñH·@ØáôE£U{oß¹“wå*~ŸqCc£¢#h@íî…#ä1<‡G©©é©LQnnöòåað7œ9“êë ¿ åwú™3©0€ü¬À^Éܨª®¾Q~û%€!yU'LäSøiÀ( ‘Hó®\õps…hÀȃߘŒS©Tw·É“&A4RF €= À«¦¤ŒRF@Rû |ꇚ‘H$…ÅÅñ‡Gјù9íüˆÿÕŽppÃî]ýF ª#¹ƒ„‘íËŒj„gH`tù­ÂÁávw_/½ñÁš1vU?âú†pp½¿þQc›ó2ÇõX:œ_ðõ0HL&~<Ȩò$ÿÊÕŽŽŽqúúÞ^¬©S¦ „x<^Ö¥œú'O膆þ¾>دoöôôd]Êihl433]ôöÛØïÆV×Ôs¹Ý††>lö$ssE…߈Çß]jjk³sruuuß Ä*CØ î‡ä„Pâ‘ïâb¢¿O:æìäTRZÕÝÝ™ÝÜÜbÂ`rôÇ‹ÅGŽ&ù°ÙW $‰·K$÷#Äf±ìíÔ Žr$é^åý+$’ËÓÞÎ!$?€üxö'.—ûíøy..n®ó #¦|xb±ø»¤cl–çÕ‚BézÞÞþkFfOoo€ŸŸü˜­%v|„ÎNN·nß^·ö …" ¿O:ñÁ2™,ŽMú`Õû‰Df“Eb±ôÞ‘î=;'wüx#æÜ¹Ê7Y&>„¡–‰ÌZÒ Niõ£Š“Ù4ÂéªþF¸] ‚òãE£à%G‹×êÏ«‘9œá,#¼”¼+W<Üݢׯs™3'÷rVxµ°ÈØxüúˆµóç1s”æ_-0?~}ÄÚ ¦fE¿ý†ææå/àpb£ÖÏsq¹RP ¤PZKKëÚÕ«ìì ŠŠeþDØ ûjö¦ qZššB¡°¿¿?*2!TPT<ÁÔ,òƒ5“ÌÍ ‹ŠBšššB¡°µ­uuøJ_oï¼+WŸ?¾úýp6[¾YEÁQ™2¶µµ­y?Ü›íUøbCäGBìç›6Äa™ÊˆÉOSSS ´¶=“٨¢b[›5´¶È·£h-ù°ã#ôbyš™™Ö=zŒzð°N(=¬«CÕ=z4ÁÌŒF£Éo²ÌÞÁðûúÎ]¸0ÁÌ”9w®ÊM–‰a¨åc"³–4Â)­~Tÿw"çÏ›F8]Õ?зk@AP~¼¨s ÉhÕŸW#s8CÊ€ uuu¡¡¡………X‰@ ðóóKJJòôôDµ¶¶FEE±ÙìÈÈȧOŸbŸAÙlvNNŽ··÷_þò—ÚÚZãfia¡©©é`o×ÙÕ…OçÙ³Éd²µuXÈ %…ëëçÌq&“ÉÎγÖ= i4jummwO½]ØŠJ ¥Íœ9ƒB¡Ì˜1½©¹YæO„½‹Å3fLÇ~‚¬þÉçÙN ÅÉiVCCVA"‘Ìuv¦P(ÖV–|>Ÿé2[ær¹jG9‰Dâ2w…B±¶²âvwã§åG¢2 *+O"‘¸Ìq–٨ƧOgÍœA¡P¦;:*¶ÜZÊÃngk[ûàB¨öA­­MM-¶üûùlÂM–Þ;¡Î®®³ÿþ÷4‡·œfÍRs“U†z@»ŒpJ«UE0nêh„Û5  ¨<^TC5ÚAÌ«á;œßLpa @BB‚··wXXØ©?…I&“y<žD"ÉÉÉAÅÇÇ;::~óÍ7'OžLHHøòË/555ù|~uuõ¯¿þšššzðàÁo¿ý"9V=yÒpµ°ðy{»H$’>÷£óç«EŠ ÁwG“ð“ ØÂâ… K®—þxúŒ®žž7‹en>QQáŸ2$*!¤£­-ÔéE]íóùT*!DÕÑáñùx¬kGGG[îïïW38*amjhhàmŽDe@TVP4<|ñôõõa—ÿ¨::І-¿–ò°ÛÚØüößkB¡ðÑãúeË~÷*ïgfg­]½ZQáŸÞ¿ù|ÆãóµåÞ–{Q‰J¥òø|•Ê{ñf3$Á‘¨ ˆÊ êO[[»¯¯J¥ööòÔ¶ò°Ó¨T†±ñµë×MML  Ƶë×ÆÆ¼¯«üE ßéë뻘•¼ä/FFFêlòÐî2Â)ýò;0nêh/opÇˈöUÎo&¸0 €Ëåêëë#„ ¥Ë±h„Pgg'ö'ƒ©/âÑét„¾¾~OO„q £ÑétºD")½QF¥R;::B–S¯ß(ëë뫪®INýãü4a¡ÅÔ©7ÊÊE"Ñí;wÿ}. +<}ö§ªêj‰Db` Ú',Ä‘H¤ßoß …·ïÜ™0ÁL毄½¨4eòä›7+„Bá²²)“' Upp$„ÑÓÓëèè‹Å*#6 á™š˜àáUØ„a—¡­MùÍ k„­uùÍ ìª´šÁ751™2y²¿Ÿoú~íåñÔÙdéÞÕßeŠÖ"œÒ/¿Ó ã¦þ¦’Ê îxÜË ¼ªÃRFT¿¸tuu!„ž?.ó-vvvJçŽ,}ìêêòOÀàµÂòð8—v>õôsó‰³fÎH>u !äéîÞÞÑ~ähÒµ’?_¬&a¡‡›kKkËáï–•—»ÎŸ‡ºÎŸWüßkg]ÊñóñVRˆ‘H$ZZZãÇ}ìxUUµ‡››Ì {QÉÝ͵¡±ñÈѤ––Vw¹6œA  a@Þ]´0-ýÂ÷ÇŽ+Ø@‡çéîvïþý£ÇO˜˜˜à·ªDvéÚÚØô÷÷ÛXY!„¬­­ûûûmm¬|K w7·_þó«H$R¹ÉÒ½«¿Ë­E8¥_~§ÆMýM%•AÜñ2¸—…AxU‡ó›‰ÔÔôT¦(77{ùò0ÍpæLª¯o€üþ%,”ßégΤÊ~øá‡³fÍZ±bErrrRRÒµk×ПŸ¶³k×.“U«V=zôÙ³gÿûßBóæÍ‹ˆˆ MMM½ÿþž={`׌êI…-À«ŒWuÂ@>U€³Œ`bcc333-Zäàà@¡Päo ŽŽŽ®¨¨ ª¬¬Œ‰‰ÁË­¬¬.\xñ⟸8#0êÀ×_ÀØØØœ={[.xñœ3éz3ŒÃ‡eoñîïï÷ñññññ£œe2HÁk~Š€”^ ?§Ç—¿=?¬})o_z$ÊI$’ÂââøC‰¯mT‡;’£h¨„í«¿¯Õ™¢£(ÚRF­Ú¥ž¿iÃð~7_yûÒ#QŽÛÝ}½ôFÄk`÷Y÷ò•‡{Þð2àÓ€!Ããñ².åÔ?yB74ô÷õ155Euwwgfg77·˜0œýqãÄbñwIÇØ,Ï«…ý±Y,{;ÂB„POOOÖ¥œ†ÆF33ÓEo¿ý |G?žý‰Ëå~{ ~ž‹‹›ëüoÄcï¾jöŽª®©),.ær» |ØìIææJ¶kŸ°)™‘È_$ŸtÌÙÉ©¤´{RUâ‘ï6mˆ«ò$ÿÊÕŽŽŽqúúÞ^¬©S¦( )aLTŽ_¾}E¡xÞÞþkFfOoo€Ÿáæö%jlvÑo¿)*Då_-0?~}ÄÚ ¦fx¡|G!Ë–boœn®ó¥‡¤fï¡Ü¼üNlÔúy..W^`³Xí„@9¸0 2ü¾>¹+\|>ŸJ¥"„¨::<>/Ç 555¥FH¾P |w4 ?¤¤#â!©Ýûâ… K®—þxúŒ®žž7‹en>QÍ­&ÜáøBº4šìÛÿ“†«……ÏÛÛE"‘ò¶©rü„펿¯¯»RIÕÑ!Üd¾…š¾ùC¸!•ŠÒÑÖÊ'€š»Re(Ô™lŠèèè „444ägŽ:ÛÝÝwåê_/úßq¡ölW4-€”0¨Tjoo¯žžžL!ϧQ©¼ïgB£ÑÞÿk…BQÙ‘¢!©Ù»¾¾¿¯òõ¹Wy?3;kíêÕCÂñʸxM'’R IDAT‘åéaeiI"‘&V²¥„mª?aû„´µµûúú¨Tjo/OýX†šD"I$ ÞÞ^õçÌà6Ë™h4ÏÇoÎܨÔÅNõm¬X,þ5ó¢ÛKOWwPZ€ƒ Ó€!ci1õú²¾¾¾ªêšäÔSXá”É“oÞ¬ …7ÊʦLž4Ð6-¦N½QV.‰nß¹ûïsiJ:ÒÓÓëèè‹ÅÒ««ßûé³?UUWK$}¢Ó… =Âñ¢ÑétºD")½QF¥R;::m)a›*ÇOØ>!S“ßoß …·ïÜQ?V„¡ÖÕÕ}ðð¡@ (-+ÓÐÐPsÎ nI$>ì Ì^fTê‡Bz_«œl„Stp³ñrþ{;[ó‰7ÛÕŸ–@ʆWLLÌp4Ëd2!¶¯3Ow÷öŽö#G“®•”øùþñ«âîn® GŽ&µ´´º»¹ ´M7×–Ö–Ãß-+/w?OIGï.Z˜–~áûcÇ¥WW¿w×ùóŠÿ{í`âá¬K9~>Þxù •'=ÂñbyxœK;ŸzúŒ¹ùÄY3g$Ÿ:¥hK ÛT4~åí+Øn÷îß?zü„‰‰‰Ì —Jú" µ»ëüœËyÇ~8É0fPÈd5çÌ 6P"‘hiioôý±ãUUÕø5*õC!½¯UN6Â): Ùˆ»}çNÞ•«ßˆÇþ546h¶+š–ð`H ©©é©LQnnöòåaš1àÌ™T_ßùýKX(¿ÓÏœIôLX´hQzzúp¤Œð[2¯|Ra oÈ«DOOÏÉ)Ñë×Á®ŒÕWuÂ@>U€³Œ`ÚÚÚâââX,VTTöÍ;·páÂââb„ÐÕ«W.\ÈãñÖ¬YÓÔÔÄd2 ×~~~IIIžžžÀßß?##ƒÃáp8œ¬¬,¬¯ÒÒÒ¥K—^»v ‚^‰+…^/¾Ž o2HÁìÝ»×ÚÚ:++ËÑÑK©TêæÍ›<(‰:ôé§ŸR©ÔcÇŽ!„JJJ¢¢¢×"“É<O"‘äääÉäžžžššš´´´Í›7:tëkÏž=±±±—/_ß½{7¼ 9ŽÓÞ‚8¤Œ`®_¿¾råJ*•VTT„zzzN:õÿý¿ÿgmmíáá¡ÎZ$I(.Y²D[[›D"‰D¢ððpÆb±š_q¢§‡ûx#£—löÛñ¡Mâ Â)#`Ôûå×_Ÿ>mZȱ¶¶®­­½”{¹ °èÝE _²YHRFÀØÑÒÒŠš:eŠ–¦¦½½þ'‘HTPT\]]- ílm|½½555Åbñ„CºººN³f^»VbÌ`455­[ûFCHNéîî^±6þP"ž8ŠÅâ¢ßþ{¿ªJ Lœ0ÁÛËËÐЀ°qØHø&“)S¢æ>3™Ì—ùyèÖÖÖøøøÒÒÒööv*•:cÆŒèèh{{{Ø#o23SÓ†ÆÆŸ~>÷Ö[S&M61ùß/Ä߬¨ð÷Ce_Ê¡Ò]æÎÁ»>>_SS3j]äïwî455=¬«sœ6­½½½½½}Ú[oiiýé%±äzé²2?oº!ýçóç³sr–¿GØ8줌 &GZü1‹ÅŠ‹‹322êéé),,LOOÿä“O`w¼ÉÖ>xXPX„200âL03CU×Ô „¬­¬4H¤ìK9•÷ïãYH,žæà ¥¥eok{åjAíÇŽÓ¦ÕE ??¿¤¤$OOO„PiiiHHˆ‡‡ÇÒ¥K¯]»†­õðáð°0ƒ¡©©©¯¯¿`Á<_”ïoÐÃÃcÞ¼y]]]¡îîîùóç·¶¶*© ŒzººANôºÈåKƒílm:;;/åæbâóù¡Ä#ß%>‚êìê’^‘J¥"„h4ڔɓ?®‹Åµµôtu'Oš$ÓEww7BH[[[ºPyã)# íÝ»×ÚÚ:++ËÑÑ111+LHHðöö>þ|ee%^3>>ÞÑÑ1##ÃÙÙ9!!!D&“y<žD"ÉÉÉAíÙ³'66öòåËááá»wïÆÖâp8………YYY>ìïïWÞ5Þ`nn®­­í½{÷B÷îݳ³³c0Jêc£ì%LCcâ„ þ¾¾¡®®?>®Œ§‡Š‹‰Þ´!nÓ†¸Ø¨õ„ëÚÛÙ …Âʪª§MMööö$I¦MW!Ô××']¨fã)#x£1¥à…ׯ__¹r%•J +** oݺL£Ñ/^Œ×,-- ¥ÑhË—////G‘H$¡P¸dÉì\ÎéÓ§ÝÝÝ)J```cc#¶Ö–-[Äbqnnîúõë9ÎW_}ÕÙÙ©¨ké=<<îÞ½‹¥Œ*ëÃþE~ù5#áð‘êš±X\S[‹ÂOÚÛÚ!„ªªªž44ÄJ¼ðË[°µ±ÖÒÔ,,,BMs ¸5ÖÁÎ!TU]Óøôéþƒ g~ú·úÀ÷2‚!¼—±§§'(([¦P(Ø—ËÕ××Gâ5;;;±ÿtttàåF/§wãÆE<=Ü ‹róò3.fQ({;;¶ëÅ¡HXTü›@(œdnîý¢\…B±°°¨©­5?ÞØØX¾Â¼yL¡HXX\Üßß?eòdo¶—ú¤ŒÈ222:{ö,ö°œžž^WWNþü9^hhhØÙÙI§Óñ܃_ܾ}ûÆY,‰Dòòò’ïkÒ¤I+V¬HMMUÒ5Þ ££cccckkkccã[o½¥²>E ¾½€øuMSÓËÓÓKîæTùg.Ê· ]GKS“Íb±Y,u€± .Lƒ!àêêš’’ÂçóÓÓÓ£££±ÂiÓ¦?žÇã]¸pOȘLæéÓ§y<^JJŠ‹‹‹|SS§N …ÉÉÉt:½¾¾!süøñçÏŸ‹ÅâgÏž%%%999)éZ:´··ÿüóÏíìì°1(¯HÁp‰ŽŽ®¬¬ LMMŒŒÄ ccc333-Zäàà@¡P°¯­DGGWTTUVVÆÄÄÈ7µqãÆØØØððp''§ààà°°0„ÐöíÛ«««±oR‡„„twwïܹSI×Ò<==¯]»†ÝȨN}ȃ Ó`=”‘N§ïÝ»W¦ÐÆÆæìÙ³ØrAA¶À`0>¬¤Y‡ÜJa2™¡ &üãÿP¿ké½½½¥ÿ«²>äÁYF)#€”@Ê^%øú `È´µµŽ¢f@ÊxŒ“àÂ4€”¼¸0 ^åå7ê{zz”ÔÑÕÕµ´´vtœáHob¾ØÚÚ2wî<--e¯6"‘èÖ­›!Èàõ¦è¡¡~æL'åù"BHKKkÚ4LJk!b)#õ˜rÔ_qІ††þôÓOø¹\®‡‡GCC^rîܹÐÐСFLLŒú^fëÆ¼žž•ù"FG‡ªüâõ«šóC²ú ÚQ9 `$Á…i00%%%#Üc```~~þÒ¥K±ÿfff …ÂÌÌ̵k×b%ùùùAAACÛi}}½úF>&àM8pTNBIp– ¶¶¶¸¸8‹Åår±ÂºººÐÐЀ€€ÂÂB¼fkkkTT›ÍŽŒŒ|úô)BH øùù%%%yzz"„JKKCBB<<<–.]zíÚ5,e¼yó&Þì/¿ü™™‰ý·§§§¼¼<00PÆqB¡pÇŽ'Nœ@åææ¾÷Þ{+V¬(++C­Y³¦©©‰Éd&&&I¦~‰pþþþ‡ÃádeeÁlyyò{D øúúfeeúûû_¼x1==Ãáà1'\‹pïN]ùÕetttlÚ´ÉÓÓ3,,ìîÝ»2Å'‰üÁB8 ™92‚±`ïÞ½ÖÖÖYYYŽŽŽø;\BB‚··÷ùóç+++ñšñññŽŽŽÎÎÎ !2™Ìãñ$INNBhÏž=±±±—/_ß½{7BÈÄÄdæÌ™¡ªª*÷É'ŸhjjÞ¾}!TTT4sæLƒ¡Nã.—»aÆéÓ§¯Zµ !ôÕW_}ñÅùùù«W¯Þ·oBèØ±cØi¡¨¨(Â!ÉTP¾u===555iii›7o>tèÌ–—'¿GÈdroooUUÕ¹sç>ûì³={ö}ÚÝÝB¡666bkåçç#„ÒÓÓCCCõõõ—/_ž‘‘ºråÊ‚ Ôl!ÔØØ±`Á‚eË–a%FFFyyy­­­çäÉ“ò›L8$Eg¿ä ‰ÂÃÃi4‹Åjnn†)ôòä÷‰D‹Å+W®ÄâÜÕÕµzõj™˜®E¸w§®ÊiP\\J¥RÙlvrr²¢ÁË,0I£Üˆ𖬞žünB …‚-p¹\}}}„¡¡!^³³³û¯AGG^ndd„-ܸqãÀ=âóùø_}||âããy<^~~þúõëB!!!~øaYYÙ¶mÛÔl!ÑÛÛkff&}Öçøñã«V­b0}ôÑìÙ³e¶ŽpH„ +$“ɉ¦ÐËS´Gð8c»@&æ*×ÂkN]ÂÕ±NØA¯¥áÁ“)#x#={–F£IêééuuuÑéôçÏŸK¿/vvvÒét<»ÂH$laûöí7nd±X$ÉËË ojîܹÉÉÉÎÎÎzzz¡qãÆ999E __߬¬¬ÀÀ@ÿ‹/¦§§s8œ€€|­¶¶¶¸¸8‹Åår!¶`LêîîNKK+)))))ùä“OºzIIÉ@W©¯¯‡° e¯‰Dª©©IKKûøã:„ÆÇÇ;::fdd8;;'$$ „ÈdroooUUÕ¹sç>ûì³={ö_f**ù”¢r-¼&~5Yz>®Ž]8Æï8Œˆˆèíí533Ã+|þùçØÂ|ðî»ïʯ¥òʵôG,l™B¡(< 8Ë^“É<}ú4ÇKIIqqqQs-WW×””>ŸŸžž aêÛ¾}{HHHFFF^^Þp¬¥§§×ÕÕ…zþü¹òÕ±ïµàÿýæ›o¾þúë;vÔÕÕa%UUUX2'‘H°\Vf-CCCuβåççc+Jßa 2‚Q#::º¢¢"((¨²²Rý|DGGWVV¦¦¦FFFBú,,,¦N* “““étºšßV­iÓ¦?žÇã]¸pD"©¿ºƒƒƒ‹‹ËöíÛ?þøãööv„Ðÿýßÿýûßÿæñx'Nœ |bŽ››ÛÉ“'¹\nnnnHHÈËÄb0õõõB¡æ `hÁ…i0Ò'TðeƒqøðaujJ/Óéô½{÷BHÁ lܸ1&&FOOoÛ¶m$),,ìêÕ«C¸VllìÖ­[O:õ·¿ýB¡ô÷÷“H$õWwwwïëëÛ¼yóÁƒ·nÝúùçŸ'$$Ìœ9sçÎò•ãââþö·¿Mžb}ñŦ¦¦[¶lQ²™ûöíûðù\nvv6LÀ"55=•)ÊÍÍ^¾< B3œ9“êë ¿ åwú™3©0€ü¬ÀÔœ0„“Pxñ€a}™—n¸0 Fººº"‘Hš|>OWW"¯'HÃÈÒÒúÖ­›|>Oe¾x÷îKKkˆ¼žà^FÀ0rtœºy³LùïGëêêZZZc•@Êx³FÈ`´ƒ ÓRF)#€”@Ê^cðiÀð*/¿ÑÐPÙHÁ›‚ÉdJÿ`´Œ˜˜˜„„„î¼þùbkkËܹ󴴔½ÚˆD¢[·n¢Ïqðº Ó`”§nõõõ" £¡¡~æL'åù"BHKKkÚ4LJk!b)#õ˜L&BH øûûgddp8‡“••…Z³fMSS“ÉLLLDµµµÅÅűX¬¨¨(.—‹­åçç—””äééIØB¨´´4$$ÄÃÃcéÒ¥×®]ûÿíÝ{Tçº?ð7$\¸ ‚ÊU$J½¼/©Z,µ*§õ,ì¥Õ³=žó+Ý®Õݳ–kwU–º½tŸãq÷ˆíF¼€îªà†jE±‚\¤ŠTA‘È5€H äöûcÚÙÙ! ˆ¢ ßÏr¹†'ï¼3óÎäÍ“yg&hð×€R©4_¤p8\ëƒ×&ÇáHÛ€”^6›­T*kkksrrvìØqðàABÈ‘#G!%%%)))„ŒŒ ??¿üü|‘HD%‘l6[¥Réõú‚‚³5B¾úê«-[¶üðÃIII»víBS e„±ŠÁ`hµÚ¤¤$ÑÚÚ:°Liié† ¸\nbbâµkר¹4ͺuëììì,Õ••µhÑ"[[Û•+W655¡©Á’K—.-]ºtýúõuu¿Že›=EÝÕÕµmÛ¶ðððÄÄÄêêj*h|BqàÉEœê@Ê/’³³3!„Ífëõú¯*•J©T*‹£££;::踋‹‹•ÊÊÊþå_þE"‘„‡‡£…ÁÊ—–ššš³gÏFGGïß¿Ÿ š=E½wï^ÿ‹/&''ñ¼5Nu˜…;¦aD¸¸¸dggóx¼öVæúì³Ï>ù䓈ˆƒ±dÉ4#˜e0âââø|þºuë²³³©`VV5±råÊ/¾ø‚š...ÎÊÊâr¹‰D"‘ ¥r³õÎ2 # e2™F£!„,X°àرcjµúìÙ³©©©C¬aêÔ©S¦LÑh4™™™·`ƒ%€âààÐÓÓCEÌž¢V(ŽŽŽÏT3Nu e„‘µgÏž­[·ÆÄÄBRSSkjjV®\ùí·ßnÚ´iˆ5|òÉ'[¶lIJJš5kV\\\bb"ZÌêîî&„<}úÔÁÁŠ|öÙgñññçÏŸ¿té]ÌÙÙÙøºˆ_{=­VKéììX³ÙzÓð èç2? ‘ž8uê5-222,Íni:((¨°°š‹ÅÉÉÉd°‡AÂxü¦kc““““pæÌ™™3}ô7}ŠúøñãÔ)jooï… =zô£>*))9|øð_ÿúWBˆ««kQQQXXXff&“É4©Ül=hs¤Œ0–èt:‡ãçç÷æ›oº¹¹Ñw¨|òÉ'›7o¶··OOOg0‰‰‰W®\IKKûýï/•J½½½ÓÓÓ©’©©©Ô\Û¶mãñxƒÁø[³õ Ù2ÀXÂd2/_¾L1¹Åì)j''§}ûö™ÔC]>A‘J¥Ô„õSÝ€k`ñù|êÂÁA©Õ*>Ÿ@ÊãŽ_UU¥Z­4_¬®¾ããã‡00 #H$šI©¬,·þûÑ|>ßÇÇ* HaŒY³¿Æ…ÃÉ‘ Œu˜¤Œ€”2RFÅpÇ4Œ ³[ü!±èô†qêvlãix-UT”56Êð¤ŒÃ‡dñµÏåò¶yóÂX,k½V«­ªª$¿=Ç2˜=V˜ŒÓ)¾½ýúoot&†¹t*uŸÿ­¹µ[C;k-rÜ0ߥK¥ûülsK·Æ¤Zãòl&ãýù.áö|[›»-ê?ÿØÞüTƒ–Óeƒæ‹„‹,ª¬È#« IDAT,GÊ0:áZF*­Î@áÚÚ¨5†ÃEí^ö ]†2c¿VÿßWÚ'9³ÿe°òïÌÄÎv>^úä¿Îµ¼áÅýx©š}¬S*•ƒæ‹‡k}ðš&‹_øz>gôìègóæÍ8N`ôÃYFx6 B®ÕöØ0ÈÇK‰È“;”Y®?ø5˜1iò’@{BHq]B­=ø­ cNIIɳÎ"“ÉÐn0úá,#<!½ýz•Æ@±·ÒñÓÛ¯Wõë !|ÛAʻس!Ê>=Ú¬»téÒÒ¥Kׯ__W÷ë%7oÞŒ_¼xñ;ï¼sãÆ *ØÕÕµmÛ¶ðððÄÄÄêêj*h|"pàIA³õ3[çÀ ÛÛÛÓÒÒ"""RRR !¤¿¿ùòåçÏŸŽŽŽŽŽÎÏÏ'„lܸ±¥¥E,:t»2ÂëƒAÏÖ†J»Õ:*HÝÍf2øæ’H{;¾Ó¸¼%]J!„* `ñ d0jjjΞ=½ÿ~*øÕW_mÙ²å‡~HJJÚµkÜ»w¯¿¿ÿÅ‹“““é ufë16Ä:322üüüòóóE"•²Ùl¥RY[[›““³cÇŽƒBŽ9B)))IIIÁž¤Œðú02ß—æÃ'„Üz¬¢‚]BÈìɼù¾ü~­Ád–0þ|ß*oÉ•û BÈbþtNNªï—oOBƒƒ™ƒÐ`ˆ‹‹ãóùëÖ­£Ïóeee-Z´ÈÖÖvåÊ•MMMT°¸¸8!!ËåJ$’ÌÌÌ¡Tn¶cC¬³´´tÆ \.711ñÚµkT¦«Õj“’’x<^DDDkk+v%Œ!¸–ž9gtæ1ß Ôwô-î¤bG®vlŽ~¼Tx¸¨]ѧse±˜6 ƒBú´¾31ìŸÊ[ü´.ybDzIZàjà ·«¾þ±í f BˆƒƒCOO)++Û·oߣGÔj5]L¡P8::>SÍf롆›©ë‡X§R©”J¥Ô´­­-wvv&„°Ùl½`RFx}1äty×éò.ã`yCï¿þß#júò/=tœ~ÔΙÊ*oüãé~áŠÚÿ§™" ¢»»ÛÅÅåéÓ§Tä³Ï>ûä“O""" Æ’%Kèü¬££ÃÍíŸn½·±±Ñjµ,«³ÓÌw³õßÔb¶Î\\\²³³y<v¼00 c­Û²±ÉÉÉQ©TgΜ™9ó×ç8N:uÊ”)&33S P·!/\¸ðèÑ£ …¢°°0>>ž*éêêZTTÔÛÛ›™™Édš^8k¶cfëhÁ‚ÇŽS«ÕgÏžMMMµ²9B¡P&“i4x)Œj8Ëc‰N§ãp8~~~o¾ù¦››}Ê'Ÿ|²yóf{{ûôôtƒ‘˜˜xåÊ•´´´ßÿþ÷R©ÔÛÛ;==*™ššJ͵mÛ6g0~½ŠÂr=Æ+`¶ÎRSS¿øâ‹•+Wº»»ÿ¿ÿ÷ÿ¬lÑž={¶nݪP(.^¼ˆý Háu€÷ƒWŽÉd^¾|™"‘HŒãAAA………Ô´X,NNN&„899í۷Ϥ†˜˜˜˜˜jš¾Üz6[1³uÒ³Ó ##ÃR1ã退€S§NaÏÀ(‡iA|>_«Õ¥¤Z­âóùh1¤Œ0îøøøUUUªÕªAóÅêê;>>~h1€Ñ Ó`ÍÙ-ø‡rüøOÏT^$šI©¬,·þûÑ|>ßÇÇ* H`܉f"ë00 H)# e¤Œ0FlÞ¼ùeÖ ‹Ñæ£g0ð÷v_~ 0æTT”56Êð¤Œ0.lܸ±¥¥E,øá‡ÿú¯ÿºjÕªøøøo¾ù¦¨¨H,Ó¿~FOzôèÀ¥¥¥6làr¹‰‰‰×®]£‚UUUqqq<oíÚµhç×€R©4_¤p8\ëƒ×/ ®‘ LÃ𹸸Xy5##ã/ùË|  ÷»ßÍž={`2!•J©i[[[jB¡P8::BœÑ£Î2Âð1Œ_#­VKéìì¤_õôôLOOÏËËKLL4{a¢‹‹ËåË—KJJJJJ®^½Jííí»»»Mª0ÖÕÕµmÛ¶ðððÄÄÄêêj*ØÞÞž––‘’’¢P(!:N"‘DFFÆÆÆÖÕÕÑ‡ë… V¬X!•JóóóÑžHá …2™L£Ñ˜Ä]]]‹ŠŠz{{333™L&ܸqcAAN§›4i’^¯X Ž;¦V«Ïž=›ššJÎÍÍU©TgΜ¡SRc{÷îõ÷÷¿xñbrrò®]»¨àÀKc™L¦Z­¾ÿþ¹sçV­Zµÿ~ú«NmmmNNÎöíÛ<ˆö@Ê/Øž={¶nÝcOMMݵk×[o½Èãñ !ä£>úóŸÿ¼dÉ’Ï?ÿüÓO?XCjjjMMÍÊ•+¿ýöÛM›6Q¶lÙráÂ…5kÖÙÚÚRU+..NHHàr¹‰$33“ š½4V¯×¯_¿žÇãÅÅÅݾ}› êtº¤¤$>Ÿ/‘HZ[[ÑžCkáœ:uŠš¦ŸªC‰‰‰¡óHúòݰ°'NX©A ddd˜ð÷÷ÏÎΦ¦‹ŠŠÐæ0}Á«1³—ÆR‡!ÄÑÑÑøÞ'''B“ɤÏRFx­8;;wtt¸¹¹]\\²³³y<žIá®®.—îîn{{{4À°a`Ƙ… =zT¡PÆÇÇSA³—Æ2ŒÓ§O÷ööžŸO=³sPjµŠÏç£Å2À¸ãããWUU©V«Í««ïøøø¡ÅF' LÀ‰fB*+Ë­ÿ~4ŸÏ÷ññ£ ¿@w@Êc&k|á¹ ¼d˜¤Œ€”2Âë@,£2Àë wLÃttt¼õÖ[ùùù<O¥RÅÄÄœ;wŽËåöööFGGŸ9sF§ÓíܹóîÝ»Ÿþ¹‡‡GÿªU«âãã¿ù曢¢"º*FóÅ_øúú~ðÁhØñ ¢¢¬±QöJ²Há¥ruu1cÆõë×—.]zõêU•JuíÚµeË–Ϙ1ÃÅÅeçÎ"‘h÷îÝG=pàÀý×±Ùl•J¥×ë èz ÅŽ;"##ׯ_V'ù¢\Þ6o^‹e­·ÑjµUU•ä·ç8ÀhƒiªeË–ýøã„Ë—//[¶ìòåË„üqùòå„›7o&$$ðx¼wß}·¢¢‚Â`04ͺuëììì¨ššš’““W­Z…|qühl”…„̲ž/BX,Vp°èáÃ:´RFÛ¢¢¢~úé'•JuãÆM›6]¿~šŽŒŒ$„<}úÔÙÙ™âääÔÕÕEÏåââBO'''·¶¶Nœ89~(•ÊAóE ‡Ãµ>xý¢àN,¤Œ0‚A@@À‘#G¦OŸîíí=mÚ´#GŽ Bˆ³³óÓ§OsG ƒÁ §wïÞýå—_îܹ³¾¾í €”^OË–-;~ü8uZ122òøñãË–-£^‹ÅYYY*•êØ±c¡¡¡fg ýì³Ï¶oßþäÉ´' OWW×¶mÛÂÃë««©`{{{ZZZDDDJJŠB¡ „èt:‰DRPP÷먷ͅ V¬X!•JóóóM*ïïï_ºti~~þÊ•+—/_ž——wöìÙèèè+VÐ…åryJJŠD"Ù´iSss35×òåËÏŸ?=°Z¤Œ0ŽDEEQĉD¢Óé¨ô‘’ššzëÖ-©TZSS³yóf+•,Z´(55uÇŽ}}}hR†½{÷úûû_¼x199y×®]T0##ÃÏÏ/??_$:tˆÂd2Õjõýû÷Ï;·jÕªýû÷S% FmmmNNÎöíÛ&7{¼Æ00 cÌÂ… =ªP( ããã©à‚ Ž;¦V«Ïž=›ššJ ÆéÓ§{{{Ož<ò¢V`(7{ ex•ÒÒÒ¤RéáÇÓÓÓ©`jjjMMÍÊ•+¿ýöÛM›6Ñ…}}}W¯^———––ö¢V`è7{¼600 cŒ““Ó¾}ûL‚ ##Ã$h0¢¢¢¢¢¢Œƒ–îÊ´=MÝì5Ĺ^8Ë#ˆÏçkµÚ¡”T«U|>-€”Æ¿ªªJµZ5h¾X]}ÇÇÇ-0:a`FH4“RYYný÷£ù|¾UøÂ1RF3Yã Ïà%ÃÀ4 e¤Œ€”2À(†;¦`dUT”56Ê^ÉCv)#Œ|Q.o›7/ŒÅ²ÖÛhµÚªªJòÛs`´ÁÀ4Œ ÆFYHÈ,ëù"!„Åb‹>¬C‹ e€qG©Tš/R8®õÁëE,?kÉÍ›7cWRF0ƒþ½A™L†Ö¤ŒcIWW×¶mÛÂÃë««© \.OII‘H$›6mjnn¶R’¦ÑhvîÜùÍ7ßèt:‰DRPP÷ëø8u–qãÆ---b±øÐ¡Ch|@Ê06ìÝ»×ßßÿâÅ‹ÉÉÉ»ví¢‚úÓŸD"ÑùóççÌ™sàÀ+%) …âã?ž1cÆ|Àd2Õjõýû÷Ï;·jÕªýû÷—5Î-•$„ìÞ½ûË/¿Ü¹sg}}=¤Íîîn{{{42RFÛ.\xôèQ…BQXXOÅbqVV–J¥:vìXhh¨•’„   ÐÐÐÏ>ûlûöíOž eÒÒÒ¤RéáÇÓÓÓ©`jjê­[·¤RiMM ýE³%i‹-JMMݱcG__!Ä××wõêÕyyyiii&%÷ìÙ³uëÖ˜˜4>Œ[¸–Æ''§}ûö™…Bá×_=”’ôÓ !QQQQQQ„ƒÁ@O,pêÔ)´<Œg8Ë#ˆÏçkµÚ¡”T«U|>-€”Æ¿ªªJµZ5h¾X]}ÇÇÇ-0:a`FH4“RYYnýÉ5|>ßÇÇ*üJVRFxYã+Ìà…ÀÀ4 e¤Œ€”2À(†;¦`dUT”56ÊFùCv)#¼Ê|Q.o›7/ŒÅ²ÖÛhµÚªªJòÛs`´ÁÀ4Œ ÆFYHÈ,ëù"!„Åb‹>¬C‹ e€qG©Tš/R8®õÁk³Äb±É e¤Œƒ©¯¯OHHX±bÅÕ«WÿÑ—ÙØ\¸paÅŠR©4??Ÿ vuumÛ¶-<<<11±ººš¢Óé$IAAAdddlll]†Â2ÀëèÀ‘‘‘¹¹¹555tÁ`ÔÖÖæäälß¾ýàÁƒTpïÞ½þþþ/^LNNÞµk!„ÉdªÕêû÷ïŸ;wnÕªUû÷ïG{ e€×PUUU\\Ç[»v-ÔétIII|>_"‘´¶¶RÁâââ„„.—+‘H233© ^¯_¿~=Ç‹‹‹»}û6Ú)#¼† …££#!ÄÙÙÙ8îääDa2™z½Þ¤¤ @@qttÆ 7HÆ{{ûîînBHgg§õ’ÎÎÎã]]]„îîn{{{´'RFx çææªTª3gÎ0 +%.\xôèQ…BQXXO ÆéÓ§{{{Ož<‚ö@ʯ¡-[¶\¸paÍš5AAA¶¶¶ƒÁRÉ´´´††©Tzøðáôôt:îëë»zõê¼¼¼´´4´'ÀPà`Œñ÷÷ÏÎΦ¦‹ŠŠ¨‰’’º=íää´oß>“Ù CTTTTTZ`èp–FŸÏ×jµC)©V«ø|>Z )#Œ;>>~UU•jµjÐ|±ºúŽZ `tÂÀ4Œ ‘h&!¤²²Üúãlø|¾Ux¤aRF-YãËÉ`ä``2RF@ÊH`ÃÓ0²**Êe£ç!;€”F]¾(—·Í›ÆbYëm´ZmUU%ùí9Ž0Ú``FPc£,$d–õ|‘Âb±‚ƒEÖ¡Å2À¸£T*Í)×úàµYb±Ødâ…Ðëõ_~ùå’%KbccËÊʰ2˜ÊÍÍår¹ßÿýæÍ›8€@ÊcL}}}BBŠ+®^½ú¾ÌÆæÂ… +V¬J¥ùùùT°««kÛ¶máá቉‰ÕÕÕ„N'‘H "##cccëêêäryXXXww7!¤§§gþüùr¹?&&†Çã%$$Pi%RF€±ÄÞÞžºô°³³ÓzIgg玎Žñ®®.BHww·½½=!D$555Éåò¦¦¦éÓ§B&NœØÛÛK1 C¼ã)#À(œ››«R©Îœ9Ã`0¬”\¸páÑ£G Eaaa||<d0§OŸîíí=yòdHH™6mÚþð‡ÀÀ@ªÂ¨¨¨¼¼¼žžž¬¬¬¹sç¢Í2À³eË– .¬Y³&((ÈÖÖÖ`0X*™––ÖÐÐ •J>œžžNÇ}}}W¯^———––FEÂÃÃoܸAJBd2™T*---ݺu+Ú.0ÆøûûgggSÓEEEÔDII ]€žvrrÚ·oŸÉìƒ!*****Ê8i\—ËÅ]/Æp–FŸÏ×jµC)©V«ø|>Z )#Œ;>>~UU•jµjÐ|±ºúŽZ `tÂÀ4Œ ‘h&!¤²²ÜúïGóù|?ªðH3€¤Œ0Z²Æ—“ ÀÈÁÀ4 e¤Œ€”2À(†;¦`dUT”56ÊFÏCv)#Œº|Q.o›7/ŒÅ²ÖÛhµÚªªJòÛs`´ÁÀ4Œ ÆFYHÈ,ëù"!„ÅbóáÃ:´RFw”Jå ù"!¤²ªªºæëƒ×f‰Åb“‰B¯×ùå—K–,‰-++{ +³yóf-€”À¢›åå?ß®U«”››Ëår¿ÿþûÍ›78pàYgÆoÊd2 €”€B?n4 Ƒқåwkî=S%õõõ +V¬¸zõê?ú2› .¬X±B*•æççSÁ®®®mÛ¶…‡‡'&&VWWBt:D")((ˆŒŒŒ­««“ËåaaaÝÝÝ„žžžùóçËåò¼¼<©Têàà°lÙ²#GŽ \‡5£Ï2¶··§¥¥EDD¤¤¤( BHÿòåËÏŸ?M­êÆZÄbñ¡C‡pRFת~¾}éJÑõ¥tÖXr³¬æÞ¯ùbðô !ÖsàÀÈÈÈÜÜÜšš:È`0jkksrr¶oß~ðàA*¸wï^ÿ‹/&''ïÚµ‹Âd2Õjõýû÷Ï;·jÕªýû÷ …€€€»wïBîÞ½( ëêê>|ýþûï×××\‡5›•‘‘áçç—ŸŸ/‰¨tÍf+•JjUwìØA­*••–””¤¤¤à8¤Œ0~É?¾õómBH݃?Ý(Õëõ?•”ürï>/Î=k¨©gUU\\Ç[»v-ÔétIII|>_"‘´¶¶RÁâââ„„.—+‘H233© ^¯_¿~=Ç‹‹‹»}û6!dñâÅԙ»wï.^¼˜Bgu»wï¸fk¨´´tÆ \.711ñÚµkTj«Õj“’’x<^DD½ª£²/ƒ×¤Iþ¾¾µBjŸÃãñV¯^MÍE 7S×)ZªÙ„R©”J¥Ô´­­-§ÖœÍfÓ« €”€0ŒóÅ6L›{÷k©”‹ŠøûΛ3û™ª²··ïîîÖK:;;wtt¸¹¹™Ä»ºº\\\º»»ííí !"‘¨©©I.—755MŸ>2qâÄÞÞ^BˆÁ` ïø6¾©ÅRÍ&\\\²³³y<ë00 /OXè¼ÀúO?¿ùÏþ<šàààÜÜ\•JuæÌƒa¥äÂ… =ªP( ãããéäõôéÓ½½½'Ož ¡"Ó¦MûÃþHU•——×ÓÓ“••5wîÜ!Ö<Ђ Ž;¦V«Ïž=›ššjeU…B¡L&Óh48H)#À?²F_ßùâyèaË–-.\X³fMPP­­­É-ØÆÒÒÒ¤RéáÇÓÓÓ鸯¯ïêÕ«óòòÒÒÒ¨Hxxø7¨  ! 2™L*•–––nݺuè5›HMM­©©Y¹rå·ß~»iÓ&+µgÏž­[·ÆÄÄà€Ñ Óð²‰çÍNpõ™:Õú9BKüýý³³³©é¢¢"jÂxÔ˜žvrrÚ·oŸÉìƒ!*****Ê8i\—Ë5{× ÍlÍt ô„@ ÈÈȰTÌx: àÔ©S86`ÔÂYFA|>_«Õ𠆝I¾¨V«ø|>Z )#Œ;>>~UU•jµÊz1µZU]}ÇÇÇ-0:a`FH4“RYYný÷£ù|¾Ux¤ ã×ü)#ŒxÖørrA9˜¤Œ€”2RFÅpÇ4Œ¬ŠŠ²ÆFÙèyÈ e€Q—/Êåmóæ…±XÖz­V[UUI~{Ž#Œ6˜€ÔØ( ™e=_$„°X¬à`ÑÇu¼B©IDATh1¤Œ0î(•ÊAóE ‡Ãµ>xm–X,F# e¤ŒÏ¨¾¾>!!aÅŠW¯^¥"ýýýË—/?þ|tttttt~~>/,,|ûí·/^üÞ{ï•——£é2ÀxqàÀÈÈÈÜÜÜšš*Âf³•JemmmNNÎŽ;¬C‹ e€qG©Tš/R8®õÁk³ÄbñK˜å…°¾ÜÍ›7ãh¤Œã]II‰•We2š2¼0õõõ +V¬¸zõ*”Ëå)))‰dÓ¦MÍÍÍT°««kÛ¶máá቉‰ÕÕÕ&õh4š;w~óÍ7„ööö´´´ˆˆˆ””…BAéïï_¶lÙÿþïÿ†‡‡Ïe8#!¤¡¡áwÞYºtéùóçÃÃà 1:ËXXXøöÛo/^¼ø½÷Þ+//'„lܸ±¥¥E,:tȸþØØØþþ~zÑjµ:66–^ RF‹8™››[SSCÿô§?‰D¢óçÏÏ™3çÀTpïÞ½þþþ/^LNNÞµk—q% …âã?ž1cÆ|@ÉÈÈðóóËÏωD‡"„°Ùl•J¥×ë Œg4‰œ‘ZîòåËÏœ9sûöíþþ~ƒa\ÃÿøÇ/¾øâòåË~øáž={!GŽ!„”””¤¤¤×~îÜ9zÆ'N,Y²ÄÁÁǼ|æ¯1ºwï¹¼M­V¡^8‡ëéééã㇦žªªªO?ý”Çã­]»ö¿ÿû¿©àÍ›7;ÆãñÞ}÷Ý÷ߟ geeq¹\‰D"‘Hèšššþíßþ-11qõêÕT¤´´”*™˜˜H%‘ C£Ñ¬[·ÎÎÎÎxé&ñ3Rk˜žžnooÿÞ{ï>~ëÖ­o½õƒÁP©TYYYTr 0*RÆ{÷~éíU.YÅf³Ñ@/œF£¹yóÆÃ‡uȆG¡P8::BœéàÓ§O©?œœºººLJšHNNîíí8q"Q*•R©”š¶µµ5Nï¨ jX™¾‘Ž›±§§ÇÉɉb¼ZFFÆ_þò—>ø@(þîw¿›={öÀ2TýW®\Y²dÉÉ“'CCCÝÝÝqÀhIåò6ä‹#‡ÍfÏš5çÚµ"¤ŒÃcooßÝÝ-:;;é ³³óÓ§O;RÁŽŽ777“vïÞ­P(vîÜyèС©S§R)Zvv6Ç3)I)›Ü¼BÇÍÎÈãñ¨¬±µµuàú{zz¦§§úé§yyy;wîüÛßþ6° ]ÿûï¿ÿñÇ¿ñÆß}÷Ýþýû±÷àU1s-£Z­B¾8¢¸\ý†-88877W¥R9s†N­ÄbqVV–J¥:vìXhh(\¸páÑ£G Eaaa||<]CPPPhhègŸ}¶}ûö'OžB,XpìØ1µZ}öìÙÔÔÔ¡¯ŒÙ§OŸž››«T*?>p–7ètºI“&éõz*( e2™F£1)ÿõØê;v\¹r¥··÷èÑ£"‘hØõètºÊÊʯ¾ú ¿ ¯Î2Àòññ«ªª q8\ëùbuõ׿ž°µk×îÞ½[.—ýþ÷¿v=`Ë–-sçÎűHàµ%Í$„TV–[ÿýh>ŸïããG~ ,Z´hÑ¢EÏ_ϵk×pRF/Yãk“  e|f¦±éqGG‡Á ·RŒÁ°quuäé…÷Œ»”±±é1Ëó™ëkccþêÉz½¾µ­µ±éñÔ)>hn€ñ•2vttøÌõ=s6—ŽÄ¬zÓ8Y¤¹»¹—•ß4NŠî––fµZÅd2=<&±X,BHUUEHÈì—ÜÍÍMrù?~¡áå¯Àk›2 zêüâ;që !'NfBŽ~û!$)1žÞocccŒKêõ:j\ØÖ–m¬®¾MM›œï¤µ¶6»¸L0þHÓjµTUL&ÓøçÎÌ.tÐúƉææfOOOúϦ¦¦+W~œ>}Fuu5!ÄÃÃÃäÕææfúOw÷‰OžtÒo"“W­Ï‹Wñ*^Å«xuÐW_qÊh08;òÛ]Òô`t̪7o”üD‡†™ÌÂãñ»ººÜÜ܇¸ˆ††zOÏIŽŽN„Û·oY)icc£×ë˜L–F£1Nò¦M ¶ô$ BH___w÷ÓiÓ‚MòQNGÿo­«`üððð0þjçáá1q¢ûœ9ÿx ñ{S( …BãÙ /Ò³{xx˜tp&5S¯ŠÅâ’’K¯ZŸ—ž}xóš¼JU5¼yñ*^Å«xõ%¼úêÏ2?£Ûx0šŽ›œtss¯«»Ïf³u:ý“'½½½S,?µ‘ñ³³³3ôíír‹Õßßgé %—Ëëèèpu —Ëé ƒƒ£\Þ*ºwu=éêzBßàbt^¤ÑÍm¢IÎgoïÐÞ.wss—ËÛìí¬lþ õŒÇ;0XXxñ9k°âw¿ûäYgy³PU£Ðs¥ŒTš5gö\:/4Œž=kŽq1£;yòÔ––¦Ç¨ç2Z¿eÄÃcÒƒµL&“zϽ{5Ô­ÐæJz>zTßÞÞæééÕÑñkÖ8q¢çãÇ ÕÕ?ÛÚÚš]Pw÷Óîî§2êÏ©S}&Nôlh¨¯®nãñøÞÞS¬¬Þ õŒï¾›ˆF@Êh†N§ãr¹ôµGÔ¨´ ƒÁÐ××gtpptppXØø1Úô4—ˉB¨i{{ww+%ƒ‚‚‰Ñ•ˆ„‹5uª¯•­0ûìn6›íç0”Õ´~€ñ›226¦»»[¯× ê,ãÀ ƒaooÏ`¼ŒKý=z(¸ØÛ;Èå­<{à§Œ®®®ÝÝO¯ó£“E“H·¢ÛÕÕõ%lŒ‹‹kcãc­VÃår½¼¦`ï¼â”q’§WcÓãÿà@ †««ë$O¯—°1ŽÔÀ4ŒŠ”‘ÍfOâ3ÕòÎ0ÞSFðÐÀ±HÁ<3(øÍ@ÊHàe§ŒW£Ñ iFŽJÕËápÑ0†SFOOÏ›7o¨T½hÊ++Ë===Ñ0V˜¹cÚÇÇïáúk׊Ôjè…ãp¸žžž>>~£mÅðÌx†”‘ÊGaN#géÒh°·¿RF@ÊH)#ŒbŒ[·*Ñ `ËÝÝ­V``2À¥ŒMÍÍçòò¿ËÊ>q*§ø§ê¾¾—¼fÿá=ù]Ö‹ªÊ:ƒÁPQyë»ã'ž¡VÐ5›]ÄHo¬õ…Z_úðÖmäZF³ÌﲨY'NýpùJGgç ³”UTþ5û$õÞâ¨éš_îY:ÎÿÚvö;Ôz³¼Â=ûBVO§Ó=ÏæÐÝ»q??B-f½’çÜ—óIô--+W(zø|^èܹžÍ6øÓîî+W‹U*ÕÂùaf ˜m·G ²Š[·z•½âйînn&ÛÒÚjvé ²Ç×o”p9œˆÅ‹œL¾[PM=°rBƒÁxP_³¬Â†Á˜7wöÔ)÷é [㇣£Ãì7B.])ªº}gIøbBˆV««¨¼õ¨¡A£ÕN™ì&eÚØÐßk³OåPéHiYy{G‡Á`N˜ ë`oOý¥ŽRãi³_ÍÍvµ÷î×B~=7 ×——WÖ=|Hˆaê”)¡sç0™L½^ÿmV6—Ù7wNéÍ2&‹¹0,lâDwK+oieèó[Y'N-œ/¾~£ÔÎÎ.2"œz߯¡ñôPÞ¡»ÍgÚ)f·šÒ£T^úñŠR©|cæÌªÛwúûûß[occó<{ÖJc7š¥†U*{øñG¥²wæ ÑÀméÓt`WOwïTµT?ÿü-¦Óë+oUÕ?jÐhú…„âysìé¹äííù/œìí±x‘¥ X³Mö©á×(É­V›uâõUÊÎÎîjñõÙãwÞŽÍÊ>9h“ñ³Æz·?ŒÏ‘ò¡À`0&{{B:;ŸP³}Â.뻉Âd2mllZ[Û&¸º¶¶µÙÚÚê´Z^oý°´[‡ÑQŒþd¾#xÒÕåíåeö¥òÊÊ ®®q±o¹»¹•WÞ"„0ml4Í“®®·V¿)Wy«ÊRRZV!pvzg]ìW×Ê[?SÁ²ŠJ³Óú·cCfÌø©¤”"^Nµé¬7B†±tc&U ¬ÁXÂ{ëMö%“ÉÔhµÄ` ¾’š¬?—Ù0Áµ©¹™ò¸±I«Õ665Bšš›„\9NéÍò9³Þx÷·gß(-µ´**oMñöŠ]³ºóɳ̶ÛÒ›á ¾·>næŒà›å7ÖÒÒ;;;×­]=uê”-@X9¥ëIWìš7CçÍ-¯´¶OÝ"WÜÜ„„Ö69}xÔÜ»7{Öâysë<¼[ó‹ñûŽš(þéFsK˲(‰$|qSsóõŸn<ë7r³²R©ljnær¹Þ^“¨ÈÏ?ß®¹woîìY¡sçÞ¯­»õómB•$õ÷÷ëtºab¥²·ô·wÙ•ôÃO§Ó=yÒõö[ký|¦Zyß ý:°Û|&f·šR^QÙÕõtÞœ9l6«¿¿ŸnŠçÙ³VÓ¤4Û°å••]]OCçαe³‡¾»zº{ØÏ?O‹Ý¾}§únMÈ QdDDsKKñ¨æêµëNŽŽÔg°¥ X3ƒÁpwskïè¤Ú–Édr8œÖ¶6BH{{‡P8Íb ¥IŸõ³Æl·?ŒÏ‘ò¡@e$„¸» ©ˆÙ>aˆG—•ÝDÓëõn ÔÁÜ&— 'L óEko »uÅèßAæûµºÃá˜}©¥µ-8h›Í  » ½^?#x:›Íòöš¤ìíµlim žÎb±‚ƒ¦QÙ!¤±©yzÐ4‹5ÙÛ+Fm¥5‡¾ôgªÁ:½^àO}Ÿ¸þS'O–=~L‘=~ÿ¢V«mjn™7w!¤µµ­¬¢òiw·N§³R¿FcgkKoÈ@fÛ-rIÄÏwªÏçÿÇåΛ;‡þ*F³´tj)¶¶¶ý–¯Õ°T95/ƒÁdŸ¶E0®Pï5ú` þ<~ò4õ§ÙoSÍ--7Ë+º»z½žúæöü«¡×ëkë0Œ?ã1B}†@­VÏÂþ-N¯ÀPVÞ,ÕóØÚzÔPÞ¡Cï6Ͳ´ÕÔ™EöÏç=Óžؘ«8ï³®ÒótõÃh±ÞŽLSúúú¬mˆÙšÝÝÝ!í-­mS¦Lf±˜÷î×RIÒD£Ëp­7é³~Ö˜íö‡ñ9òü f“*ë}‚õ¦°²›ŒMòô,«¨|Xÿ¨¯¯o’§GiÙðß2Ãë(Fù2Ÿ2NpPß ›<ÝL¯Ç±ëëëãp8}}}Î3wXgMÌ*6›e²a*•ŠÇã aöçZúH¬?‡Ãœ¾}ÇÕÕÅÁÁÞE øùö3õñPt­xîœÙ^“&1ä¯Ù'-UËf³ûúû9vvªþ¸²Þnööüa¡„„>¨¯¿V|}Ý[kLæ²´ôþþ~‡Ó×ßO]Á`Ö •[_·A·Æy{;uâ„ú“Ïç)= ï¾C¼7ëú¥²W½\àìl|s«^¯×éõ:­öYWCö¸Q¥V{{M2îm¸\NOR£Ñè B˵^ÉPVÞRC½ïèOƒ¡×ëmllLòÔ¡¼C‡ÞmZ:/`v«mmmÕju¿FCûú=ì=û¬ K­’F£y¦¯ Ïÿa1Äãr8=J¥Ù ~ÕÊ KÊÊVE¯°²!fk8;ÛÙÙ5·´v>y&žÇd2KJË›Øl¶«‹Ë°·ÂzÏl¶ÛÆçÈ}(Xê†xÞÇÒn2æääÈçójîݳ··w 2ý¡½eîÖá½Fù2?0=#xúí;Õêëu:º¯ïNõÝ‹®Q/yLœXóË=­V[]óËÄgÿåOê»wµZ]m݃¿^ú-¯÷¸S]Óßßÿ¨Aö·ó¨ ÇU(zLöÁð–n\ÕH¬ÿÔÉ“kîÝóöö¢N:ÖÜ»GJBôzÝê»;;…¢ÇBŽîR[[§Õjkkë†¾Ü ÿþ¨¡A¯×;ØÛˆaàÆš]:ƒÁ¸÷Û²„&XÚR³•}ÝÝ"?”ÊÞ[?ßf±˜3E¿^NÝ8Uÿ¨¡µ­í»ã'.ýX4p.­VGa2™5÷îS]žF£%„8:8Bš››e-õÅ,uYºé×ú{÷ïBüƒ>S§RÙdƒLFññ™j}s,­ü Ï׸W[§ÑhïÝ»O «QB›4í»5ô@ùß¡f»Í¡³´ÕnB!!D&{,³p×ùóïÙgmX7á„_WõŸWÉzƒ?gW?ô›:u !äQƒ¬MÞ~ì¯Çó.г¸º¸øLÚÑÑY÷à¡• ±T³»›ða}=›Ívœœ8vvuº» éCÅ,ëÍb½g6Ûíãsd„>,õ C:º,ï¦+ßÑÑ9ÉÓcÈoó»uxÅ(ßAæÏ2 ΋VTVýôS ÛÖv’§GXè\ê¥Ùo„]»~âtî„ ®‹ÌÖ]>{VÈõŸnœ8Ãç󿇆RÁ9³Þ¸Z|ýäé\G‡â_¯ZˆZ²¤ðòåþ~ñ7†·tãªFbý'{{•Ü,›ìõkÊH]~A½4wö¬‚.Û²ÙóÃÄ„ÁøþÂ…øõö¢«ÅÕ5¿, ›ý4»Ü7fÎ,-+»ZüŸÏŸ/¸±—þÞ;qL&ÓÙÉéTîY±x‘¥-5[ùÐÛÄÒYº‰^W™ße1™Ì \„‰œ©àLQ°V«­¸U¥Õj&º»?“6wö¬²ŠÊ¿ü Ï=«¢òÖ…ü‹kÞ\5wάŸJJ‹* ;ÇÎζ·WE¨3žwZ``MÍ/çó.¾óÏÏë¡®:*¼ô#õ'u(Μ!êïï/-+#„8Sl}‹†²òf9;9ž>sÖÎÎ6jÉ*2+$„ºseÞÜÙÔ©GƒÁ0Äw¨ÙnÓÊ^ §­oõœYo<ézr³¼â™3FhÏ>kÃΙõÆ“®®Ò²òY!3™66:½~à7Ó/=_W?ô ™!¢VÛ`Ð{Lœ(þí³’4-ð~m]Eå­ÉÞÞ–6ÄRÍÝÝd==&R9¢››[ƒLöœé¯õϳÝþ0>GžéCaè,õ C™×ún2ù2v¿¶ÎÓÃ4e´ú–1·[‡õ^å;ˆÑÒÒŒO5€‘NÇÖ—%F“uâ—É[÷vX<ËãPá¥ËòövIDõHÏÃs€”Æ»Y!!¥eå—~ü‘ÅbûùúÌ3m”ÿCqê¾B9¶IEND®B`‚firewalld-0.4.4.6/doc/man/000077500000000000000000000000001320241217000151445ustar00rootroot00000000000000firewalld-0.4.4.6/doc/man/Makefile.am000066400000000000000000000000241320241217000171740ustar00rootroot00000000000000SUBDIRS = man1 man5 firewalld-0.4.4.6/doc/man/man1/000077500000000000000000000000001320241217000160005ustar00rootroot00000000000000firewalld-0.4.4.6/doc/man/man1/Makefile.am000066400000000000000000000000611320241217000200310ustar00rootroot00000000000000EXTRA_DIST = $(man_MANS) man_MANS = firewall*.1 firewalld-0.4.4.6/doc/man/man5/000077500000000000000000000000001320241217000160045ustar00rootroot00000000000000firewalld-0.4.4.6/doc/man/man5/Makefile.am000066400000000000000000000000611320241217000200350ustar00rootroot00000000000000EXTRA_DIST = $(man_MANS) man_MANS = firewall*.5 firewalld-0.4.4.6/doc/xml/000077500000000000000000000000001320241217000151715ustar00rootroot00000000000000firewalld-0.4.4.6/doc/xml/Makefile.am000066400000000000000000000042761320241217000172360ustar00rootroot00000000000000XSLTPROC = xsltproc EXTRA_DIST = $(HTMLS:../html/%.html=%.xml) \ authors.xml notes.xml seealso.xml errorcodes.xml \ transform-man.xsl.in transform-html.xsl.in man_MANS = $(man1_MANS) $(man5_MANS) HTMLS = $(man1_MANS:../man/man1/%.1=../html/%.html) $(man5_MANS:../man/man5/%.5=../html/%.html) man1_MANS = \ ../man/man1/firewall-applet.1 \ ../man/man1/firewall-cmd.1 \ ../man/man1/firewall-config.1 \ ../man/man1/firewallctl.1 \ ../man/man1/firewalld.1 \ ../man/man1/firewall-offline-cmd.1 man5_MANS = \ ../man/man5/firewalld.conf.5 \ ../man/man5/firewalld.dbus.5 \ ../man/man5/firewalld.direct.5 \ ../man/man5/firewalld.helper.5 \ ../man/man5/firewalld.icmptype.5 \ ../man/man5/firewalld.ipset.5 \ ../man/man5/firewalld.lockdown-whitelist.5 \ ../man/man5/firewalld.richlanguage.5 \ ../man/man5/firewalld.service.5 \ ../man/man5/firewalld.zone.5 \ ../man/man5/firewalld.zones.5 CLEAN_FILES = *~ errorcodes.xml DISTCLEANFILES = $(man_MANS) $(HTMLS) transform-*.xsl #SGML_CATALOG_FILES #XSLTPROC_FLAGS = --catalogs --nonet --xinclude XSLTPROC_FLAGS = --nonet --xinclude XSLTPROC_MAN_FLAGS = $(XSLTPROC_FLAGS) transform-man.xsl XSLTPROC_HTML_FLAGS = $(XSLTPROC_FLAGS) transform-html.xsl install: all: $(man_MANS) $(HTMLS) clean: -test -z "$(CLEAN_FILES)" || rm -f $(CLEAN_FILES) ../man/man1/firewall-cmd.1: errorcodes.xml ../html/firewall-cmd.html: errorcodes.xml ../man/man1/%.1: %.xml authors.xml notes.xml seealso.xml transform-man.xsl $(XSLTPROC) -o $@ $(XSLTPROC_MAN_FLAGS) $< ../man/man5/%.5: %.xml authors.xml notes.xml seealso.xml transform-man.xsl $(XSLTPROC) -o $@ $(XSLTPROC_MAN_FLAGS) $< ../html/%.html: %.xml authors.xml notes.xml seealso.xml transform-html.xsl $(XSLTPROC) -o $@ $(XSLTPROC_HTML_FLAGS) $< errorcodes.xml: ../../src/firewall/errors.py @echo Creating $@ @grep '=\s*[0-9]\+$$' ../../src/firewall/errors.py | \ sed -e 's/^/\\/g' \ -e 's/ *= */\<\/entry\>\/g' \ -e 's/$$/\<\/entry\>\<\/row\>/g' > $@ edit = sed \ -e 's|\@PREFIX\@|$(prefix)|' \ -e 's|\@SYSCONFDIR\@|$(sysconfdir)|' \ -e 's|\@PACKAGE_STRING\@|$(PACKAGE_STRING)|' transform-man.xsl: transform-man.xsl.in $(edit) $< >$@ transform-html.xsl: transform-html.xsl.in $(edit) $< >$@ firewalld-0.4.4.6/doc/xml/authors.xml000066400000000000000000000022041320241217000173760ustar00rootroot00000000000000 Developer Thomas Woerner twoerner@redhat.com Developer Jiri Popelka jpopelka@redhat.com firewalld-0.4.4.6/doc/xml/firewall-applet.xml000066400000000000000000000144061320241217000210100ustar00rootroot00000000000000 ]> firewall-applet firewalld &authors; firewall-applet 1 firewall-applet firewalld applet firewall-applet OPTIONS Description firewall-applet is a tray applet for firewalld. Options firewall-applet does not support any special options. The following options are supported: Prints a short help text and exists. QSettings firewall-applet has additional settings to adapt the look and feel. QSettings is used and stores them in ~/.config/firewall/applet.conf. The file is automatically reloaded if it has been changed and the new settings will immediately be effective. There is also the global config file /etc/firewall/applet.conf, which contains the default values. The settings in this file will be overloaded by settings in the user settings file. Here is an example applet.conf file: [General] notifications=true show-inactive=true The following settings are supported: The applet shows notifications if enabled. This setting can be enabled also in the applet with the "Enable Notifications" checkbox in the right mouse menu. This setting defaults to . If notifications are shown for these actions if enabled: Connection to firewalld established Connection to firewalld lost Firewall has been reloaded Default zone has been changed Panic mode has been enabled or disabled Activation, deactivation or change of zones bound to interfaces Activation, deactivation or change of zones bound to sources addresses Show applet also if firewalld is not running. If firewalld has been stopped or is not running the applet will be hidden and not visible in the applet tray. Enable this setting to see the applet all the time for example to be sure that the firewall is active. This setting defaults to . The shields-up zone name to be used if shields-up is enabled. This setting defaults to ''. The shields-down zone name to be used if shields-up has been deactivated again. This setting defaults to ''. If enabled, the applet icon blinks in these cases: Connection to firewalld lost Panic mode has been enabled or disabled This setting defaults to . The number of blinks if is enabled. This setting defaults to . &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewall-cmd.xml000066400000000000000000003211551320241217000202700ustar00rootroot00000000000000 ]> firewall-cmd firewalld &authors; firewall-cmd 1 firewall-cmd firewalld command line client firewall-cmd OPTIONS Description firewall-cmd is the command line client of the firewalld daemon. It provides interface to manage runtime and permanent configuration. The runtime configuration in firewalld is separated from the permanent configuration. This means that things can get changed in the runtime or permanent configuration. Options For sequence options, this are the options that can be specified multiple times, the exit code is 0 if there is at least one item that succeded. The ALREADY_ENABLED (11), NOT_ENABLED (12) and also ZONE_ALREADY_SET (16) errors are treated as succeeded. If there are issues while parsing the items, then these are treated as warnings and will not change the result as long as there is a succeeded one. Without any succeeded item, the exit code will depend on the error codes. If there is exactly one error code, then this is used. If there are more than one then UNKNOWN_ERROR (254) will be used. The following options are supported: General Options Prints a short help text and exits. Print the version string of firewalld. This option is not combinable with other options. Do not print status messages. Status Options Check whether the firewalld daemon is active (i.e. running). Returns an exit code 0 if it is active, NOT_RUNNING otherwise (see ). This will also print the state to STDOUT. Reload firewall rules and keep state information. Current permanent configuration will become new runtime configuration, i.e. all runtime only changes done until reload are lost with reload if they have not been also in permanent configuration. Note: Runtime changes applied via the direct interface are not affected and will therefore stay in place until firewalld daemon is restarted completely. Reload firewall completely, even netfilter kernel modules. This will most likely terminate active connections, because state information is lost. This option should only be used in case of severe firewall problems. For example if there are state information problems that no connection can be established with correct firewall rules. Note: Runtime changes applied via the direct interface are not affected and will therefore stay in place until firewalld daemon is restarted completely. Save active runtime configuration and overwrite permanent configuration with it. The way this is supposed to work is that when configuring firewalld you do runtime changes only and once you're happy with the configuration and you tested that it works the way you want, you save the configuration to disk. Log Denied Options Print the log denied setting. =value Add logging rules right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones for the configured link-layer packet type. The possible values are: all, unicast, broadcast, multicast and off. The default setting is off, which disables the logging. This is a runtime and permanent change and will also reload the firewall to be able to add the logging rules. Automatic Helpers Options Print the automatic helpers setting. =value For the secure use of iptables and connection tracking helpers it is recommended to turn AutomaticHelpers off. But this might have side effects on other services using the netfilter helpers as the sysctl setting in /proc/sys/net/netfilter/nf_conntrack_helper will be changed. With the system setting, the default value set in the kernel or with sysctl will be used. Possible values are: yes, no and system. The default value is system. This is a runtime and permanent change and will also reload the firewall to be able to make the helpers usable. Permanent Options The permanent option can be used to set options permanently. These changes are not effective immediately, only after service restart/reload or system reboot. Without the option, a change will only be part of the runtime configuration. If you want to make a change in runtime and permanent configuration, use the same call with and without the option. The option can be optionally added to all options further down where it is supported. Zone Options Print default zone for connections and interfaces. =zone Set default zone for connections and interfaces where no zone has been selected. Setting the default zone changes the zone for the connections or interfaces, that are using the default zone. This is a runtime and permanent change. Print currently active zones altogether with interfaces and sources used in these zones. Active zones are zones, that have a binding to an interface or source. The output format is: zone1 interfaces: interface1 interface2 .. sources: source1 .. zone2 interfaces: interface3 .. zone3 sources: source2 .. If there are no interfaces or sources bound to the zone, the corresponding line will be omitted. Print predefined zones as a space separated list. Print predefined services as a space separated list. Print predefined icmptypes as a space separated list. =interface Print the name of the zone the interface is bound to or no zone. =source/mask|MAC|ipset:ipset Print the name of the zone the source is bound to or no zone. Print information about the zone zone. The output format is: zone interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. source-ports: source-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. List everything added for or enabled in all zones. The output format is: zone1 interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. .. =zone Add a new permanent and empty zone. =filename =zone Add a new permanent zone from a prepared zone file with an optional name override. =zone Delete an existing permanent zone. =zone Load zone default settings or report NO_DEFAULTS error. Print path of the zone configuration file. =zone =description Set new description to zone =zone Print description for zone =zone =description Set short description to zone =zone Print short description for zone =zone Get the target of a permanent zone. =zone =target Set the target of a permanent zone. target is one of: default, ACCEPT, DROP, REJECT Options to Adapt and Query Zones Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). =zone List everything added for or enabled in zone. If zone is omitted, default zone will be used. =zone List services added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =service =timeval Add a service for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The service is one of the firewalld provided services. To get a list of the supported services, use firewall-cmd --get-services. The option is not combinable with the option. =zone =service Remove a service from zone. This option can be specified multiple times. If zone is omitted, default zone will be used. =zone =service Return whether service has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List ports added for zone as a space separated list. A port is of the form portid-portid/protocol, it can be either a port and protocol pair or a port range with a protocol. If zone is omitted, default zone will be used. =zone =portid-portid/protocol =timeval Add the port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. The option is not combinable with the option. =zone =portid-portid/protocol Remove the port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =portid-portid/protocol Return whether the port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List protocols added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =protocol =timeval Add the protocol for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. The option is not combinable with the option. =zone =protocol Remove the protocol from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =protocol Return whether the protocol has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List source ports added for zone as a space separated list. A port is of the form portid-portid/protocol. If zone is omitted, default zone will be used. =zone =portid-portid/protocol =timeval Add the source port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. The option is not combinable with the option. =zone =portid-portid/protocol Remove the source port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =portid-portid/protocol Return whether the source port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List Internet Control Message Protocol (ICMP) type blocks added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =icmptype =timeval Add an ICMP block for icmptype for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The icmptype is the one of the icmp types firewalld supports. To get a listing of supported icmp types: firewall-cmd --get-icmptypes The option is not combinable with the option. =zone =icmptype Remove the ICMP block for icmptype from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =icmptype Return whether an ICMP block for icmptype has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List IPv4 forward ports added for zone as a space separated list. If zone is omitted, default zone will be used. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask =timeval Add the IPv4 forward port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The port can either be a single port number portid or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. The destination address is a simple IP address. The option is not combinable with the option. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask Remove the IPv4 forward port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask Return whether the IPv4 forward port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For IPv6 forward ports, please use the rich language. =zone =timeval Enable IPv4 masquerade for zone. If zone is omitted, default zone will be used. If a timeout is supplied, masquerading will be active for the specified amount of time. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. Masquerading is useful if the machine is a router and machines connected over an interface in another zone should be able to use the first connection. The option is not combinable with the option. For IPv6 masquerading, please use the rich language. =zone Disable IPv4 masquerade for zone. If zone is omitted, default zone will be used. If the masquerading was enabled with a timeout, it will be disabled also. For IPv6 masquerading, please use the rich language. =zone Return whether IPv4 masquerading has been enabled for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For IPv6 masquerading, please use the rich language. =zone List rich language rules added for zone as a newline separated list. If zone is omitted, default zone will be used. =zone ='rule' =timeval Add rich language rule 'rule' for zone. This option can be specified multiple times. If zone is omitted, default zone will be used. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. For the rich language rule syntax, please have a look at firewalld.richlanguage5. The option is not combinable with the option. =zone ='rule' Remove rich language rule 'rule' from zone. This option can be specified multiple times. If zone is omitted, default zone will be used. For the rich language rule syntax, please have a look at firewalld.richlanguage5. =zone ='rule' Return whether a rich language rule 'rule' has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For the rich language rule syntax, please have a look at firewalld.richlanguage5. Options to Handle Bindings of Interfaces Binding an interface to a zone means that this zone settings are used to restrict traffic via the interface. Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). For a list of predefined zones use firewall-cmd --get-zones. An interface name is a string up to 16 characters long, that may not contain , , and . =zone List interfaces that are bound to zone zone as a space separated list. If zone is omitted, default zone will be used. =zone =interface Bind interface interface to zone zone. If zone is omitted, default zone will be used. If the interface is under control of NetworkManager, it is at first connected to change the zone for the connection that is using the interface. If this fails, the zone binding is created in firewalld and the limitations below apply. For interfaces that are not under control of NetworkManager, firewalld tries to change the ZONE setting in the ifcfg file, if the file exists. As a end user you don't need this in most cases, because NetworkManager (or legacy network service) adds interfaces into zones automatically (according to option from ifcfg-interface file) if NM_CONTROLLED=no is not set. You should do it only if there's no /etc/sysconfig/network-scripts/ifcfg-interface file. If there is such file and you add interface to zone with this option, make sure the zone is the same in both cases, otherwise the behaviour would be undefined. Please also have a look at the firewalld1 man page in the Concepts section. For permanent association of interface with a zone, see also 'How to set or change a zone for a connection?' in firewalld.zones5. =zone =interface If the interface is under control of NetworkManager, it is at first connected to change the zone for the connection that is using the interface. If this fails, the zone binding is created in firewalld and the limitations below apply. For interfaces that are not under control of NetworkManager, firewalld tries to change the ZONE setting in the ifcfg file, if the file exists. Change zone the interface interface is bound to to zone zone. It's basically followed by . If the interface has not been bound to a zone before, it behaves like . If zone is omitted, default zone will be used. =zone =interface Query whether interface interface is bound to zone zone. Returns 0 if true, 1 otherwise. =interface If the interface is under control of NetworkManager, it is at first connected to change the zone for the connection that is using the interface. If this fails, the zone binding is created in firewalld and the limitations below apply. For the addion or change of interfaces that are not under control of NetworkManager: firewalld tries to change the ZONE setting in the ifcfg file, if an ifcfg file exists that is using the interface. Only for the removal of interfaces that are not under control of NetworkManager: firewalld is not trying to change the ZONE setting in the ifcfg file. This is needed to make sure that an ifdown of the interface will not result in a reset of the zone setting to the default zone. Only the zone binding is then removed in firewalld then. Remove binding of interface interface from zone it was previously added to. Options to Handle Bindings of Sources Binding a source to a zone means that this zone settings will be used to restrict traffic from this source. A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or an ipset with the ipset: prefix. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported. Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). For a list of predefined zones use firewall-cmd --get-zones. =zone List sources that are bound to zone zone as a space separated list. If zone is omitted, default zone will be used. =zone =source/mask|MAC|ipset:ipset Bind the source to zone zone. If zone is omitted, default zone will be used. =zone =source/mask|MAC|ipset:ipset Change zone the source is bound to to zone zone. It's basically followed by . If the source has not been bound to a zone before, it behaves like . If zone is omitted, default zone will be used. =zone =source/mask|MAC|ipset:ipset Query whether the source is bound to the zone zone. Returns 0 if true, 1 otherwise. =source/mask|MAC|ipset:ipset Remove binding of the source from zone it was previously added to. IPSet Options Print the supported ipset types. =ipset =type =inet|inet6 =key=value Add a new permanent and empty ipset with specifying the type and optional the family and options like timeout, hashsize and maxelem. For more information please have a look at ipset8 man page. =filename =ipset Add a new permanent ipset from a prepared ipset file with an optional name override. =ipset Delete an existing permanent ipset. =ipset Load ipset default settings or report NO_DEFAULTS error. Print information about the ipset ipset. The output format is: ipset type: type options: option1[=value1] .. entries: entry1 .. Print predefined ipsets as a space separated list. =ipset =description Set new description to ipset =ipset Print description for ipset =ipset =description Set short description to ipset =ipset Print short description for ipset =ipset =entry Add a new entry to the ipset. =ipset =entry Remove an entry from the ipset. =ipset =entry Return whether the entry has been added to an ipset. Returns 0 if true, 1 otherwise. =ipset List all entries of the ipset. =ipset =filename Add a new entries to the ipset from the file. For all entries that are listed in the file but already in the ipset, a warning will be printed. The file should contain an entry per line. Lines starting with an hash or semicolon are ignored. Also empty lines. =ipset =filename Remove existing entries from the ipset from the file. For all entries that are listed in the file but not in the ipset, a warning will be printed. The file should contain an entry per line. Lines starting with an hash or semicolon are ignored. Also empty lines. Print path of the ipset configuration file. Service Options Options in this section affect only one particular service. Print information about the service service. The output format is: service ports: port1 .. protocols: protocol1 .. source-ports: source-port1 .. modules: module1 .. destination: ipv1:address1 .. The following options are only usable in the permanent configuration. =service Add a new permanent and empty service. =filename =service Add a new permanent service from a prepared service file with an optional name override. =service Delete an existing permanent service. =service Load service default settings or report NO_DEFAULTS error. Print path of the service configuration file. =service =description Set new description to service =service Print description for service =service =description Set short description to service =service Print short description for service =service =portid-portid/protocol Add a new port to the permanent service. =service =portid-portid/protocol Remove a port from the permanent service. =service =portid-portid/protocol Return wether the port has been added to the permanent service. =service List ports added to the permanent service. =service =protocol Add a new protocol to the permanent service. =service =protocol Remove a protocol from the permanent service. =service =protocol Return wether the protocol has been added to the permanent service. =service List protocols added to the permanent service. =service =portid-portid/protocol Add a new source port to the permanent service. =service =portid-portid/protocol Remove a source port from the permanent service. =service =portid-portid/protocol Return wether the source port has been added to the permanent service. =service List source ports added to the permanent service. =service =module Add a new module to the permanent service. =service =module Remove a module from the permanent service. =service =module Return wether the module has been added to the permanent service. =service List modules added to the permanent service. =service =ipv:address/mask Set destination for ipv to address[/mask] in the permanent service. =service =ipv Remove the destination for ipv from the permanent service. =service =ipv:address/mask Return wether the destination ipv to address[/mask] has been set in the permanent service. =service List destinations added to the permanent service. Helper Options Options in this section affect only one particular helper. Print information about the helper helper. The output format is: helper family: family module: module ports: port1 .. The following options are only usable in the permanent configuration. =helper =nf_conntrack_module =ipv4|ipv6 Add a new permanent helper with module and optionally family defined. =filename =helper Add a new permanent helper from a prepared helper file with an optional name override. =helper Delete an existing permanent helper. =helper Load helper default settings or report NO_DEFAULTS error. Print path of the helper configuration file. Print predefined helpers as a space separated list. =helper =description Set new description to helper =helper Print description for helper =helper =description Set short description to helper =helper Print short description for helper =helper =portid-portid/protocol Add a new port to the permanent helper. =helper =portid-portid/protocol Remove a port from the permanent helper. =helper =portid-portid/protocol Return wether the port has been added to the permanent helper. =helper List ports added to the permanent helper. =helper =description Set module description for helper =helper Print module description for helper =helper =description Set family description for helper =helper Print family description of helper Internet Control Message Protocol (ICMP) type Options Options in this section affect only one particular icmptype. Print information about the icmptype icmptype. The output format is: icmptype destination: ipv1 .. The following options are only usable in the permanent configuration. =icmptype Add a new permanent and empty icmptype. =filename =icmptype Add a new permanent icmptype from a prepared icmptype file with an optional name override. =icmptype Delete an existing permanent icmptype. =icmptype Load icmptype default settings or report NO_DEFAULTS error. =icmptype =description Set new description to icmptype =icmptype Print description for icmptype =icmptype =description Set short description to icmptype =icmptype Print short description for icmptype =icmptype =ipv Enable destination for ipv in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype =ipv Disable destination for ipv in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype =ipv Return whether destination for ipv is enabled in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype List destinations in permanent icmptype. Print path of the icmptype configuration file. Direct Options The direct options give a more direct access to the firewall. These options require user to know basic iptables concepts, i.e. table (filter/mangle/nat/...), chain (INPUT/OUTPUT/FORWARD/...), commands (-A/-D/-I/...), parameters (-p/-s/-d/-j/...) and targets (ACCEPT/DROP/REJECT/...). Direct options should be used only as a last resort when it's not possible to use for example =service or ='rule'. The first argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it will be for IPv4 (iptables8), with ipv6 for IPv6 (ip6tables8) and with eb for ethernet bridges (ebtables8). Get all chains added to all tables. This option concerns only chains previously added with . { ipv4 | ipv6 | eb } table Get all chains added to table table as a space separated list. This option concerns only chains previously added with . { ipv4 | ipv6 | eb } table chain Add a new chain with name chain to table table. Make sure there's no other chain with this name already. There already exist basic chains to use with direct options, for example INPUT_direct chain (see iptables-save | grep direct output for all of them). These chains are jumped into before chains for zones, i.e. every rule put into INPUT_direct will be checked before rules in zones. { ipv4 | ipv6 | eb } table chain Remove chain with name chain from table table. Only chains previously added with can be removed this way. { ipv4 | ipv6 | eb } table chain Return whether a chain with name chain exists in table table. Returns 0 if true, 1 otherwise. This option concerns only chains previously added with . Get all rules added to all chains in all tables as a newline separated list of the priority and arguments. This option concerns only rules previously added with . { ipv4 | ipv6 | eb } table chain Get all rules added to chain chain in table table as a newline separated list of the priority and arguments. This option concerns only rules previously added with . { ipv4 | ipv6 | eb } table chain priority args Add a rule with the arguments args to chain chain in table table with priority priority. The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. { ipv4 | ipv6 | eb } table chain priority args Remove a rule with priority and the arguments args from chain chain in table table. Only rules previously added with can be removed this way. { ipv4 | ipv6 | eb } table chain Remove all rules in the chain with name chain exists in table table. This option concerns only rules previously added with in this chain. { ipv4 | ipv6 | eb } table chain priority args Return whether a rule with priority and the arguments args exists in chain chain in table table. Returns 0 if true, 1 otherwise. This option concerns only rules previously added with . { ipv4 | ipv6 | eb } args Pass a command through to the firewall. args can be all iptables, ip6tables and ebtables command line arguments. This command is untracked, which means that firewalld is not able to provide information about this command later on, also not a listing of the untracked passthoughs. Get all passthrough rules as a newline separated list of the ipv value and arguments. { ipv4 | ipv6 | eb } Get all passthrough rules for the ipv value as a newline separated list of the priority and arguments. { ipv4 | ipv6 | eb } args Add a passthrough rule with the arguments args for the ipv value. { ipv4 | ipv6 | eb } args Remove a passthrough rule with the arguments args for the ipv value. { ipv4 | ipv6 | eb } args Return whether a passthrough rule with the arguments args exists for the ipv value. Returns 0 if true, 1 otherwise. Lockdown Options Local applications or services are able to change the firewall configuration if they are running as root (example: libvirt) or are authenticated using PolicyKit. With this feature administrators can lock the firewall configuration so that only applications on lockdown whitelist are able to request firewall changes. The lockdown access check limits D-Bus methods that are changing firewall rules. Query, list and get methods are not limited. The lockdown feature is a very light version of user and application policies for firewalld and is turned off by default. Enable lockdown. Be careful - if firewall-cmd is not on lockdown whitelist when you enable lockdown you won't be able to disable it again with firewall-cmd, you would need to edit firewalld.conf. This is a runtime and permanent change. Disable lockdown. This is a runtime and permanent change. Query whether lockdown is enabled. Returns 0 if lockdown is enabled, 1 otherwise. Lockdown Whitelist Options The lockdown whitelist can contain commands, contexts, users and user ids. If a command entry on the whitelist ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. Commands for user root and others is not always the same. Example: As root /bin/firewall-cmd is used, as a normal user /usr/bin/firewall-cmd is be used on Fedora. The context is the security (SELinux) context of a running application or service. To get the context of a running application use ps -e --context. Warning: If the context is unconfined, then this will open access for more than the desired application. The lockdown whitelist entries are checked in the following order: 1. context 2. uid 3. user 4. command List all command lines that are on the whitelist. =command Add the command to the whitelist. =command Remove the command from the whitelist. =command Query whether the command is on the whitelist. Returns 0 if true, 1 otherwise. List all contexts that are on the whitelist. =context Add the context context to the whitelist. =context Remove the context from the whitelist. =context Query whether the context is on the whitelist. Returns 0 if true, 1 otherwise. List all user ids that are on the whitelist. =uid Add the user id uid to the whitelist. =uid Remove the user id uid from the whitelist. =uid Query whether the user id uid is on the whitelist. Returns 0 if true, 1 otherwise. List all user names that are on the whitelist. =user Add the user name user to the whitelist. =user Remove the user name user from the whitelist. =user Query whether the user name user is on the whitelist. Returns 0 if true, 1 otherwise. Panic Options Enable panic mode. All incoming and outgoing packets are dropped, active connections will expire. Enable this only if there are serious problems with your network environment. For example if the machine is getting hacked in. This is a runtime only change. Disable panic mode. After disabling panic mode established connections might work again, if panic mode was enabled for a short period of time. This is a runtime only change. Returns 0 if panic mode is enabled, 1 otherwise. Examples For more examples see Example 1 Enable http service in default zone. This is runtime only change, i.e. effective until restart. firewall-cmd --add-service=http Example 2 Enable port 443/tcp immediately and permanently in default zone. To make the change effective immediately and also after restart we need two commands. The first command makes the change in runtime configuration, i.e. makes it effective immediately, until restart. The second command makes the change in permanent configuration, i.e. makes it effective after restart. firewall-cmd --add-port=443/tcp firewall-cmd --permanent --add-port=443/tcp Exit Codes On success 0 is returned. On failure the output is red colored and exit code is either 2 in case of wrong command-line option usage or one of the following error codes in other cases: String Code &errorcodes; Note that return codes of --query-* options are special: Successful queries return 0, unsuccessful ones return 1 unless an error occurred in which case the table above applies. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewall-config.xml000066400000000000000000000047751320241217000210000ustar00rootroot00000000000000 ]> firewall-config firewalld &authors; firewall-config 1 firewall-config firewalld GUI configuration tool firewall-config OPTIONS Description firewall-config is a GUI configuration tool for firewalld. Options firewall-config does not support any special options. The only options that can be used are the general options that Gtk uses for Gtk application initialization. For more information on these options, please have a look at the runtime documentation for Gtk. The following options are supported: Prints a short help text and exists. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewall-offline-cmd.xml000066400000000000000000002626431320241217000217160ustar00rootroot00000000000000 ]> firewall-offline-cmd firewalld &authors; firewall-offline-cmd 1 firewall-offline-cmd firewalld offline command line client firewall-offline-cmd OPTIONS Description firewall-offline-cmd is an offline command line client of the firewalld daemon. It should be used only if the firewalld service is not running. For example to migrate from system-config-firewall/lokkit or in the install environment to configure firewall settings with kickstart. Some lokkit options can not be automatically converted for firewalld, they will result in an error or warning message. This tool tries to convert as much as possible, but there are limitations for example with custom rules, modules and masquerading. Check the firewall configuration after using this tool. Options If no options are given, configuration from /etc/sysconfig/system-config-firewall will be migrated. For sequence options, this are the options that can be specified multiple times, the exit code is 0 if there is at least one item that succeded. The ALREADY_ENABLED (11), NOT_ENABLED (12) and also ZONE_ALREADY_SET (16) errors are treated as succeeded. If there are issues while parsing the items, then these are treated as warnings and will not change the result as long as there is a succeeded one. Without any succeeded item, the exit code will depend on the error codes. If there is exactly one error code, then this is used. If there are more than one then UNKNOWN_ERROR (254) will be used. The following options are supported: General Options Prints a short help text and exists. Prints the version string of firewalld and exits. Do not print status messages. Status Options Enable the firewall. This option is a default option and will activate the firewall if not already enabled as long as the option is not given. Disable the firewall by disabling the firewalld service. Lokkit Compatibility Options These options are nearly identical to the options of lokkit. Migrate system-config-firewall configuration from the given file. No further =module This option will result in a warning message and will be ignored. Handling of netfilter helpers has been merged into services completely. Adding or removing netfilter helpers outside of services is therefore not needed anymore. For more information on handling netfilter helpers in services, please have a look at firewalld.zone5. This option will result in a warning message and will be ignored. Handling of netfilter helpers has been merged into services completely. Adding or removing netfilter helpers outside of services is therefore not needed anymore. For more information on handling netfilter helpers in services, please have a look at firewalld.zone5. =service Remove a service from the default zone. This option can be specified multiple times. The service is one of the firewalld provided services. To get a list of the supported services, use firewall-cmd --get-services. service =service Add a service to the default zone. This option can be specified multiple times. The service is one of the firewalld provided services. To get a list of the supported services, use firewall-cmd --get-services. portid-portid:protocol =portid-portid:protocol Add the port to the default zone. This option can be specified multiple times. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. interface =interface This option will result in a warning message. Mark an interface as trusted. This option can be specified multiple times. The interface will be bound to the trusted zone. If the interface is used in a NetworkManager managed connection or if there is an ifcfg file for this interface, the zone will be changed to the zone defined in the configuration as soon as it gets activated. To change the zone of a connection use nm-connection-editor and set the zone to trusted, for an ifcfg file, use an editor and add "ZONE=trusted". If the zone is not defined in the ifcfg file, the firewalld default zone will be used. interface =interface This option will result in a warning message. Masquerading will be enabled in the default zone. The interface argument will be ignored. This is for IPv4 only. =type:table:filename This option will result in a warning message and will be ignored. Custom rule files are not supported by firewalld. =if=interface:port=port:proto=protocol:toport=destination port::toaddr=destination address This option will result in a warning message. Add the IPv4 forward port in the default zone. This option can be specified multiple times. The port can either be a single port number portid or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. The destination address is an IP address. =icmptype This option will result in a warning message. Add an ICMP block for icmptype in the default zone. This option can be specified multiple times. The icmptype is the one of the icmp types firewalld supports. To get a listing of supported icmp types: firewall-cmd --get-icmptypes Log Denied Options Print the log denied setting. =value Add logging rules right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones for the configured link-layer packet type. The possible values are: all, unicast, broadcast, multicast and off. The default setting is off, which disables the logging. This is a runtime and permanent change and will also reload the firewall to be able to add the logging rules. Automatic Helpers Options Print the automatic helpers setting. =value For the secure use of iptables and connection tracking helpers it is recommended to turn AutomaticHelpers off. But this might have side effects on other services using the netfilter helpers as the sysctl setting in /proc/sys/net/netfilter/nf_conntrack_helper will be changed. With the system setting, the default value set in the kernel or with sysctl will be used. Possible values are: yes, no and system. The default value is system. This is a runtime and permanent change and will also reload the firewall to be able to make the helpers usable. Zone Options Print default zone for connections and interfaces. =zone Set default zone for connections and interfaces where no zone has been selected. Setting the default zone changes the zone for the connections or interfaces, that are using the default zone. Print predefined zones as a space separated list. Print predefined services as a space separated list. Print predefined icmptypes as a space separated list. =interface Print the name of the zone the interface is bound to or no zone. =source/mask|MAC|ipset:ipset Print the name of the zone the source is bound to or no zone. Print information about the zone zone. The output format is: zone interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. source-ports: source-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. List everything added for or enabled in all zones. The output format is: zone1 interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. source-ports: source-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. .. =zone Add a new permanent zone. =filename =zone Add a new permanent zone from a prepared zone file with an optional name override. Print path of the zone configuration file. =zone Delete an existing permanent zone. =zone =description Set new description to zone =zone Print description for zone =zone =description Set short description to zone =zone Print short description for zone =zone Get the target of a permanent zone. =zone =zone Set the target of a permanent zone. Options to Adapt and Query Zones Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). =zone List everything added for or enabled in zone. If zone is omitted, default zone will be used. =zone List services added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =service Add a service for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. The service is one of the firewalld provided services. To get a list of the supported services, use firewall-cmd --get-services. =zone =service Remove a service from zone. This option can be specified multiple times. If zone is omitted, default zone will be used. =zone =service Return whether service has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List ports added for zone as a space separated list. A port is of the form portid-portid/protocol, it can be either a port and protocol pair or a port range with a protocol. If zone is omitted, default zone will be used. =zone =portid-portid/protocol Add the port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. =zone =portid-portid/protocol Remove the port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =portid-portid/protocol Return whether the port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List protocols added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =protocol Add the protocol for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. timeval is either a number (of seconds) or number followed by one of characters s (seconds), m (minutes), h (hours), for example 20m or 1h. The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. =zone =protocol Remove the protocol from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =protocol Return whether the protocol has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List Internet Control Message Protocol (ICMP) type blocks added for zone as a space separated list. If zone is omitted, default zone will be used. =zone =icmptype Add an ICMP block for icmptype for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. The icmptype is the one of the icmp types firewalld supports. To get a listing of supported icmp types: firewall-cmd --get-icmptypes =zone =icmptype Remove the ICMP block for icmptype from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =icmptype Return whether an ICMP block for icmptype has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone List IPv4 forward ports added for zone as a space separated list. If zone is omitted, default zone will be used. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask Add the IPv4 forward port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. The port can either be a single port number portid or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. The destination address is a simple IP address. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask Remove the IPv4 forward port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. For IPv6 forward ports, please use the rich language. =zone =port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask Return whether the IPv4 forward port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For IPv6 forward ports, please use the rich language. =zone List source ports added for zone as a space separated list. A port is of the form portid-portid/protocol. If zone is omitted, default zone will be used. =zone =portid-portid/protocol Add the source port for zone. If zone is omitted, default zone will be used. This option can be specified multiple times. If a timeout is supplied, the rule will be active for the specified amount of time and will be removed automatically afterwards. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp, udp, sctp or dccp. =zone =portid-portid/protocol Remove the source port from zone. If zone is omitted, default zone will be used. This option can be specified multiple times. =zone =portid-portid/protocol Return whether the source port has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. =zone Enable IPv4 masquerade for zone. If zone is omitted, default zone will be used. Masquerading is useful if the machine is a router and machines connected over an interface in another zone should be able to use the first connection. For IPv6 masquerading, please use the rich language. =zone Disable IPv4 masquerade for zone. If zone is omitted, default zone will be used. For IPv6 masquerading, please use the rich language. =zone Return whether IPv4 masquerading has been enabled for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For IPv6 masquerading, please use the rich language. =zone List rich language rules added for zone as a newline separated list. If zone is omitted, default zone will be used. =zone ='rule' Add rich language rule 'rule' for zone. This option can be specified multiple times. If zone is omitted, default zone will be used. For the rich language rule syntax, please have a look at firewalld.richlanguage5. =zone ='rule' Remove rich language rule 'rule' from zone. This option can be specified multiple times. If zone is omitted, default zone will be used. For the rich language rule syntax, please have a look at firewalld.richlanguage5. =zone ='rule' Return whether a rich language rule 'rule' has been added for zone. If zone is omitted, default zone will be used. Returns 0 if true, 1 otherwise. For the rich language rule syntax, please have a look at firewalld.richlanguage5. Options to Handle Bindings of Interfaces Binding an interface to a zone means that this zone settings are used to restrict traffic via the interface. Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). For a list of predefined zones use firewall-cmd --get-zones. An interface name is a string up to 16 characters long, that may not contain , , and . =zone List interfaces that are bound to zone zone as a space separated list. If zone is omitted, default zone will be used. =zone =interface Bind interface interface to zone zone. If zone is omitted, default zone will be used. =zone =interface Change zone the interface interface is bound to to zone zone. If zone is omitted, default zone will be used. If old and new zone are the same, the call will be ignored without an error. If the interface has not been bound to a zone before, it will behave like . =zone =interface Query whether interface interface is bound to zone zone. Returns 0 if true, 1 otherwise. =zone =interface Remove binding of interface interface from zone zone. If zone is omitted, default zone will be used. Options to Handle Bindings of Sources Binding a source to a zone means that this zone settings will be used to restrict traffic from this source. A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or an ipset with the ipset: prefix. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported. Options in this section affect only one particular zone. If used with =zone option, they affect the zone zone. If the option is omitted, they affect default zone (see ). For a list of predefined zones use firewall-cmd --get-zones. =zone List sources that are bound to zone zone as a space separated list. If zone is omitted, default zone will be used. =zone =source/mask|MAC|ipset:ipset Bind the source to zone zone. If zone is omitted, default zone will be used. =zone =source/mask|MAC|ipset:ipset Change zone the source is bound to to zone zone. If zone is omitted, default zone will be used. If old and new zone are the same, the call will be ignored without an error. If the source has not been bound to a zone before, it will behave like . =zone =source/mask|MAC|ipset:ipset Query whether the source is bound to the zone zone. Returns 0 if true, 1 otherwise. =zone =source/mask|MAC|ipset:ipset Remove binding of the source from zone zone. If zone is omitted, default zone will be used. IPSet Options =ipset =ipset type =ipset option=value Add a new permanent ipset with specifying the type and optional options. =filename =ipset Add a new permanent ipset from a prepared ipset file with an optional name override. =ipset Delete an existing permanent ipset. Print information about the ipset ipset. The output format is: ipset type: type options: option1[=value1] .. entries: entry1 .. Print predefined ipsets as a space separated list. =ipset =entry Add a new entry to the ipset. =ipset =entry Remove an entry from the ipset. =ipset =entry Return whether the entry has been added to an ipset. Returns 0 if true, 1 otherwise. =ipset List all entries of the ipset. =ipset =filename Add a new entries to the ipset from the file. For all entries that are listed in the file but already in the ipset, a warning will be printed. The file should contain an entry per line. Lines starting with an hash or semicolon are ignored. Also empty lines. =ipset =filename Remove existing entries from the ipset from the file. For all entries that are listed in the file but not in the ipset, a warning will be printed. The file should contain an entry per line. Lines starting with an hash or semicolon are ignored. Also empty lines. =ipset =description Set new description to ipset =ipset Print description for ipset =ipset =description Set new short description to ipset =ipset Print short description for ipset Print path of the ipset configuration file. Service Options Print information about the service service. The output format is: service ports: port1 .. protocols: protocol1 .. source-ports: source-port1 .. modules: module1 .. destination: ipv1:address1 .. =service Add a new permanent service. =filename =service Add a new permanent service from a prepared service file with an optional name override. =service Delete an existing permanent service. Print path of the service configuration file. =service =description Set new description to service =service Print description for service =service =description Set short description to service =service Print short description for service =service =portid-portid/protocol Add a new port to the permanent service. =service =portid-portid/protocol Remove a port from the permanent service. =service =portid-portid/protocol Return wether the port has been added to the permanent service. =service List ports added to the permanent service. =service =protocol Add a new protocol to the permanent service. =service =protocol Remove a protocol from the permanent service. =service =protocol Return wether the protocol has been added to the permanent service. =service List protocols added to the permanent service. =service =portid-portid/protocol Add a new source port to the permanent service. =service =portid-portid/protocol Remove a source port from the permanent service. =service =portid-portid/protocol Return wether the source port has been added to the permanent service. =service List source ports added to the permanent service. =service =module Add a new module to the permanent service. =service =module Remove a module from the permanent service. =service =module Return wether the module has been added to the permanent service. =service List modules added to the permanent service. =service =ipv:address/mask Set destination for ipv to address[/mask] in the permanent service. =service =ipv Remove the destination for ipv from the permanent service. =service =ipv:address/mask Return wether the destination ipv to address[/mask] has been set in the permanent service. =service List destinations added to the permanent service. Helper Options Options in this section affect only one particular helper. Print information about the helper helper. The output format is: helper family: family module: module ports: port1 .. The following options are only usable in the permanent configuration. =helper =nf_conntrack_module =ipv4|ipv6 Add a new permanent helper with module and optionally family defined. =filename =helper Add a new permanent helper from a prepared helper file with an optional name override. =helper Delete an existing permanent helper. =helper Load helper default settings or report NO_DEFAULTS error. Print path of the helper configuration file. Print predefined helpers as a space separated list. =helper =description Set new description to helper =helper Print description for helper =helper =description Set short description to helper =helper Print short description for helper =helper =portid-portid/protocol Add a new port to the permanent helper. =helper =portid-portid/protocol Remove a port from the permanent helper. =helper =portid-portid/protocol Return wether the port has been added to the permanent helper. =helper List ports added to the permanent helper. =helper =description Set module description for helper =helper Print module description for helper =helper =description Set family description for helper =helper Print family description of helper Internet Control Message Protocol (ICMP) type Options Print information about the icmptype icmptype. The output format is: icmptype destination: ipv1 .. =icmptype Add a new permanent icmptype. =filename =icmptype Add a new permanent icmptype from a prepared icmptype file with an optional name override. =icmptype Delete an existing permanent icmptype. =icmptype =description Set new description to icmptype =icmptype Print description for icmptype =icmptype =description Set short description to icmptype =icmptype Print short description for icmptype =icmptype =ipv Enable destination for ipv in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype =ipv Disable destination for ipv in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype =ipv Return whether destination for ipv is enabled in permanent icmptype. ipv is one of ipv4 or ipv6. =icmptype List destinations in permanent icmptype. Print path of the icmptype configuration file. Direct Options The direct options give a more direct access to the firewall. These options require user to know basic iptables concepts, i.e. table (filter/mangle/nat/...), chain (INPUT/OUTPUT/FORWARD/...), commands (-A/-D/-I/...), parameters (-p/-s/-d/-j/...) and targets (ACCEPT/DROP/REJECT/...). Direct options should be used only as a last resort when it's not possible to use for example =service or ='rule'. The first argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it will be for IPv4 (iptables8), with ipv6 for IPv6 (ip6tables8) and with eb for ethernet bridges (ebtables8). Get all chains added to all tables. This option concerns only chains previously added with . { ipv4 | ipv6 | eb } table Get all chains added to table table as a space separated list. This option concerns only chains previously added with . { ipv4 | ipv6 | eb } table chain Add a new chain with name chain to table table. There already exist basic chains to use with direct options, for example INPUT_direct chain (see iptables-save | grep direct output for all of them). These chains are jumped into before chains for zones, i.e. every rule put into INPUT_direct will be checked before rules in zones. { ipv4 | ipv6 | eb } table chain Remove the chain with name chain from table table. { ipv4 | ipv6 | eb } table chain Return whether a chain with name chain exists in table table. Returns 0 if true, 1 otherwise. This option concerns only chains previously added with . Get all rules added to all chains in all tables as a newline separated list of the priority and arguments. { ipv4 | ipv6 | eb } table chain Get all rules added to chain chain in table table as a newline separated list of the priority and arguments. { ipv4 | ipv6 | eb } table chain priority args Add a rule with the arguments args to chain chain in table table with priority priority. The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. { ipv4 | ipv6 | eb } table chain priority args Remove a rule with priority and the arguments args from chain chain in table table. { ipv4 | ipv6 | eb } table chain Remove all rules in the chain with name chain exists in table table. This option concerns only rules previously added with in this chain. { ipv4 | ipv6 | eb } table chain priority args Return whether a rule with priority and the arguments args exists in chain chain in table table. Returns 0 if true, 1 otherwise. Get all permanent passthrough as a newline separated list of the ipv value and arguments. { ipv4 | ipv6 | eb } Get all permanent passthrough rules for the ipv value as a newline separated list of the priority and arguments. { ipv4 | ipv6 | eb } args Add a permanent passthrough rule with the arguments args for the ipv value. { ipv4 | ipv6 | eb } args Remove a permanent passthrough rule with the arguments args for the ipv value. { ipv4 | ipv6 | eb } args Return whether a permanent passthrough rule with the arguments args exists for the ipv value. Returns 0 if true, 1 otherwise. Lockdown Options Local applications or services are able to change the firewall configuration if they are running as root (example: libvirt) or are authenticated using PolicyKit. With this feature administrators can lock the firewall configuration so that only applications on lockdown whitelist are able to request firewall changes. The lockdown access check limits D-Bus methods that are changing firewall rules. Query, list and get methods are not limited. The lockdown feature is a very light version of user and application policies for firewalld and is turned off by default. Enable lockdown. Be careful - if firewall-cmd is not on lockdown whitelist when you enable lockdown you won't be able to disable it again with firewall-cmd, you would need to edit firewalld.conf. Disable lockdown. Query whether lockdown is enabled. Returns 0 if lockdown is enabled, 1 otherwise. Lockdown Whitelist Options The lockdown whitelist can contain commands, contexts, users and user ids. If a command entry on the whitelist ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. Commands for user root and others is not always the same. Example: As root /bin/firewall-cmd is used, as a normal user /usr/bin/firewall-cmd is be used on Fedora. The context is the security (SELinux) context of a running application or service. To get the context of a running application use ps -e --context. Warning: If the context is unconfined, then this will open access for more than the desired application. The lockdown whitelist entries are checked in the following order: 1. context 2. uid 3. user 4. command List all command lines that are on the whitelist. =command Add the command to the whitelist. =command Remove the command from the whitelist. =command Query whether the command is on the whitelist. Returns 0 if true, 1 otherwise. List all contexts that are on the whitelist. =context Add the context context to the whitelist. =context Remove the context from the whitelist. =context Query whether the context is on the whitelist. Returns 0 if true, 1 otherwise. List all user ids that are on the whitelist. =uid Add the user id uid to the whitelist. =uid Remove the user id uid from the whitelist. =uid Query whether the user id uid is on the whitelist. Returns 0 if true, 1 otherwise. List all user names that are on the whitelist. =user Add the user name user to the whitelist. =user Remove the user name user from the whitelist. =user Query whether the user name user is on the whitelist. Returns 0 if true, 1 otherwise. Policy Options Change Polkit actions to 'server' (more restricted) Change Polkit actions to 'desktop' (less restricted) &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewallctl.xml000066400000000000000000002323271320241217000202340ustar00rootroot00000000000000 ]> firewallctl firewalld &authors; firewallctl 1 firewallctl firewalld command line client firewallctl OPTIONS Description firewallctl is an alternate command line client of the firewalld daemon. It provides interface to manage runtime and permanent configuration. The runtime configuration in firewalld is separated from the permanent configuration. This means that things can get changed in the runtime or permanent configuration. Options For sequence options, this are the options that can be specified multiple times, the exit code is 0 if there is at least one item that succeded. The ALREADY_ENABLED (11), NOT_ENABLED (12) and also ZONE_ALREADY_SET (16) errors are treated as succeeded. If there are issues while parsing the items, then these are treated as warnings and will not change the result as long as there is a succeeded one. Without any succeeded item, the exit code will depend on the error codes. If there is exactly one error code, then this is used. If there are more than one then UNKNOWN_ERROR (254) will be used. The following options are supported: General Options Prints a short help text and exits. Be more verbose while printing. Do not print status messages. Version Option Print the version string of firewalld. This option is not combinable with other options. State Option Check whether the firewalld daemon is active (i.e. running). Returns an exit code 0 if it is active, NOT_RUNNING otherwise (see ). This will also print the state to STDOUT. Reload Options | Reload firewall rules and keep state information. Current permanent configuration will become new runtime configuration, i.e. all runtime only changes done until reload are lost with reload if they have not been also in permanent configuration. With the | option, reload firewall completely, even netfilter kernel modules. This will most likely terminate active connections, because state information is lost. This option should only be used in case of severe firewall problems. For example if there are state information problems that no connection can be established with correct firewall rules. Runtime To Permanent Option Save active runtime configuration and overwrite permanent configuration with it. The way this is supposed to work is that when configuring firewalld you do runtime changes only and once you're happy with the configuration and you tested that it works the way you want, you save the configuration to disk. List Options | | | Print predefined zones as a space separated list. With the | option, only zones are listed, that are active. That means that the zones have interface or source bindings. With the | option, zones in the permanent environment are listed. | Print predefined services as a space separated list. With the | option, services in the permanent environment are listed. | Print predefined ipsets as a space separated list. With the | option, ipsets in the permanent environment are listed. | Print predefined helpers as a space separated list. With the | option, helpers in the permanent environment are listed. | Print predefined icmptypes as a space separated list. With the | option, icmptypes in the permanent environment are listed. Info Options zone | Print information about the zone zone. The output format is: zone interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. source-ports: source-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. With the | option, zones in the permanent environment are listed. | | | Print information about the zones. The output format is: zone interfaces: interface1 .. sources: source1 .. services: service1 .. ports: port1 .. protocols: protocol1 .. forward-ports: forward-port1 .. source-ports: source-port1 .. icmp-blocks: icmp-type1 .. rich rules: rich-rule1 .. With the | option, only zones are listed, that are active. That means that the zones have interface or source bindings. With the | option, zones in the permanent environment are listed. service | Print information about the service service. The output format is: service ports: port1 .. protocols: protocol1 .. source-ports: source-port1 .. modules: module1 .. destination: ipv1:address1 .. With the | option, services in the permanent environment are listed. | Print information about the services. The output format is: service ports: port1 .. protocols: protocol1 .. source-ports: source-port1 .. modules: module1 .. destination: ipv1:address1 .. With the | option, services in the permanent environment are listed. ipset | Print information about the ipset ipset. The output format is: ipset type: type options: option1[=value1] .. entries: entry1 .. With the | option, ipsets in the permanent environment are listed. | Print information about the ipsets. The output format is: ipset type: type options: option1[=value1] .. entries: entry1 .. With the | option, ipsets in the permanent environment are listed. helper | Print information about the helper helper. The output format is: helper family: family module: module ports: port1 .. With the | option, helpers in the permanent environment are listed. | Print information about the helpers. The output format is: helper family: family module: module ports: port1 .. With the | option, helpers in the permanent environment are listed. icmptype | Print information about the icmptype icmptype. The output format is: icmptype destination: ipv1 .. With the | option, icmptypes in the permanent environment are listed. | Print information about the icmptypes. The output format is: icmptype destination: ipv1 .. With the | option, icmptypes in the permanent environment are listed. Zone Options zone | element.. =timeval Add an element or several elements of the same type to a zone with an optional timeout. If a timeout is supplied, the element will be active for the specified amount of time and will be removed automatically afterwards. If zone is the empty string "", the default zone will be used. For possible zone elements see further down. With the or option, elements are added in the permanent environment. The option is not combinable with the option. zone | element.. Remove an element or several elements of the same type from the zone. If zone is the empty string "", the default zone will be used. For possible zone elements see further down. With the or option, elements are added in the permanent environment. zone | element.. Return whether the element or several elements of the same type are enabled in the zone. If zone is the empty string "", the default zone will be used. For possible zone elements see further down. With the or option, elements are added in the permanent environment. zone | { | } Return short or long description from zone. If zone is the empty string "", the default zone will be used. With the or option, elements are added in the permanent environment. zone | { | } text Set short or long description for a zone to text. If zone is the empty string "", the default zone will be used. With the or option, elements are added in the permanent environment. zone | { | | | | | | | | } Return list of elements added for zone. If zone is the empty string "", the default zone will be used. With the or option, elements are added in the permanent environment. zone { | } Load zone default settings or report NO_DEFAULTS error. Zone Elements A zone element can be one of: interface An interface name is a string up to 16 characters long, that may not contain , , and . If the interface is under control of NetworkManager, it is at first connected to change the zone for the connection that is using the interface for new or changed interface bindings. If the setting in NetworkManager fails, the zone binding is created or changed in firewalld and the limitations below apply. As a end user you don't need to create or change zone bindings of interfaces in most cases, because NetworkManager (or legacy network service) adds interfaces into zones automatically (according to option from ifcfg-interface file) if NM_CONTROLLED=no is not set. You should do it only if there's no /etc/sysconfig/network-scripts/ifcfg-interface file. If there is such file and you add interface to zone with this option, make sure the zone is the same in both cases, otherwise the behaviour would be undefined. Please also have a look at the firewalld1 man page in the Concepts section. For permanent association of interface with a zone, see also 'How to set or change a zone for a connection?' in firewalld.zones5. For the addion or change of interfaces that are not under control of NetworkManager: firewalld tries to change the ZONE setting in the ifcfg file, if an ifcfg file exists that is using the interface. Only for the removal of interfaces that are not under control of NetworkManager: firewalld is not trying to change the ZONE setting in the ifcfg file. This is needed to make sure that an ifdown of the interface will not result in a reset of the zone setting to the default zone. Only the zone binding is then removed in firewalld then. { address/mask | MAC | ipset:ipset } A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or also an ipset. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported. service A service is a firewalld provided or user created service. To get a list of the supported services, use firewallctl list services | . portid-portid/protocol A port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. protocol A protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. portid-portid/protocol A source port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. 'rule' A rich language rule. For the rich language rule syntax, please have a look at firewalld.richlanguage5. IPv4 masquerading. Masquerading is useful if the machine is a router and machines connected over an interface in another zone should be able to use the first connection. port=portid-portid:proto=protocol:toport=portid-portid:toaddr=address/mask An IPv4 forward port. The port can either be a single port number portid or a port range portid-portid. The protocol can either be tcp or udp. The destination address is a simple IP address. For IPv6 forward ports, please use the rich language. icmptype An ICMP type block. The icmptype is the one of the ICMP types firewalld supports. To get a listing of supported icmp types: firewallctl list icmptypes | Invert ICMP type blocks. The ICMP types marked to be blocked are allowed and all others are blocked. Service Options service | element.. Add an element or several elements of the same type to a service. For possible service elements see further down. With the or option, elements are added in the permanent environment. service | element.. Remove an element or several elements of the same type from the service. For possible service elements see further down. With the or option, elements are added in the permanent environment. service | element.. Return whether the element or several elements of the same type are enabled in the service. For possible service elements see further down. With the or option, elements are added in the permanent environment. service | { | } Return short or long description from service. With the or option, elements are added in the permanent environment. service | { | } text Set short or long description for a service to text. With the or option, elements are added in the permanent environment. service | { | | | | } Return list of elements added for service. With the or option, elements are added in the permanent environment. service { | } Load service default settings or report NO_DEFAULTS error. Service Elements A service element can be one of: portid-portid/protocol A port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. protocol A protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. portid-portid/protocol A source port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. module A netfilter helper module. ipv:address/mask A destination address with optional mask for ipv. ipv is one of ipv4 or ipv6. Ipset Options ipset | { entry | filename }.. Add an entry or several entries to the ipset. Or add entries from one or more files to the ipset. For possible ipset entries see further down. With the or option, elements are added in the permanent environment. ipset | { entry | filename | }.. Remove an entry or several entries the ipset. Or remove entries from one or more files from the ipset. Or remove all entries from the ipset. For possible ipset entries see further down. With the or option, elements are added in the permanent environment. ipset | { entry | filename }.. Return whether the entry or the several entries are part of the ipset. Or return whether the entries from one or more files are part of the ipset. For possible ipset entries see further down. With the or option, elements are added in the permanent environment. ipset | { | } Return short or long description from ipset. With the or option, elements are added in the permanent environment. ipset | { | } text Set short or long description for a ipset to text. With the or option, elements are added in the permanent environment. ipset | Return list of entries added for ipset. With the or option, elements are added in the permanent environment. ipset { | } Load ipset default settings or report NO_DEFAULTS error. Ipset Entries An ipset entry depends on the ipset type and family setting. For ipset type hash:net: / An entry can be a single ip address with an optional cidr netmask or an ip range. The cidr value must be between 1-32 for IPv4 and between 1-128 for IPv6. The address can be an IPv4 address if the family is set to inet or not set or an IPv6 address if the family is set to inet6. For ipset type hash:ip: / | - An entry can either be a single ip address with an optional cidr netmask or an ip range. The cidr value must be between 1-32 for IPv4 and between 1-128 for IPv6. The address can be an IPv4 address if the family is set to inet or not set or an IPv6 address if the family is set to inet6. For ipset type hash:mac (not supported with older ipset and kernel versions): An entry is a mac address. Helper Options helper | { | } port portid-portid/protocol Add the port to the helper or remove the port from the helper. A port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. With the or option, elements are added in the permanent environment. helper | port portid-portid/protocol Return whether the port is set in the helper. With the or option, elements are added in the permanent environment. helper | { | } Return short or long description from helper. With the or option, elements are added in the permanent environment. helper | Get the family from helper where it is usable. helper | Get the netfilter helper module from helper. helper | { | } text Set short or long description for a helper to text. With the or option, elements are added in the permanent environment. helper | Set the family for the helper where it is usable. helper | Set the netfilter helper module for the helper. helper | Return list of ports added for helper. With the or option, elements are added in the permanent environment. helper { | } Load helper default settings or report NO_DEFAULTS error. Icmptype Options icmptype | { | } destination { | } Add the destination to the icmptype or remove the destination from the icmptype. With the or option, elements are added in the permanent environment. icmptype | destination { | } Return whether the destination is set in the icmptype. With the or option, elements are added in the permanent environment. icmptype | { | } Return short or long description from icmptype. With the or option, elements are added in the permanent environment. icmptype | { | } text Set short or long description for a icmptype to text. With the or option, elements are added in the permanent environment. icmptype | Return list of destinations added for icmptype. With the or option, elements are added in the permanent environment. icmptype { | } Load icmptype default settings or report NO_DEFAULTS error. New Options { | } { { | } name | { | } filename { | } name } } Add a new permanent zone. Either empty with specified name or from an existing zone file with optional name override. The zone will only be usable in the runtime environment after a reload. { | } { { | } name | { | } filename { | } name } } Add a new permanent service. Either empty with specified name or from an existing service file with optional name override. The service will only be usable in the runtime environment after a reload. { | } { { | } name { | } ipsettype { | } option=value | { | } filename { | } name } } Add a new permanent ipset. Either empty with specified name, type and optional option or from an existing ipset file with optional name override. For valid ipset options please have a look at firewalld.ipset5. The ipset will only be usable in the runtime environment after a reload. { | } { { | } name | { | } filename { | } name } } Add a new permanent icmptype. Either empty with specified name or from an existing icmptype file with optional name override. The icmptype will only be usable in the runtime environment after a reload. Delete Options { | } zone Delete a permanent zone. The zone will be part of the runtime environment until a reload. { | } service Delete a permanent service. The service will be part of the runtime environment until a reload. { | } ipset Delete a permanent ipset. The ipset will be part of the runtime environment until a reload. { | } icmptype Delete a permanent icmptype. The icmptype will be part of the runtime environment until a reload. Direct Options | { | } { ipv4 | ipv6 | eb } table chain Add a new chain with name chain to table table. Make sure there's no other chain with this name already. There already exist basic chains to use with direct options, for example INPUT_direct chain (see iptables-save | grep direct output for all of them). These chains are jumped into before chains for zones, i.e. every rule put into INPUT_direct will be checked before rules in zones. | { ipv4 | ipv6 | eb } table chain Return whether a chain with name chain exists in table table. Returns 0 if true, 1 otherwise. This option concerns only chains previously added with . | { ipv4 | ipv6 | eb } table Get all chains added to table table as a space separated list. This option concerns only chains previously added with . | Get all chains added to all tables. This option concerns only chains previously added with . | { | } { ipv4 | ipv6 | eb } table chain priority args Add or remove a rule with the arguments args to chain chain in table table with priority priority. The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. | { ipv4 | ipv6 | eb } table chain priority args Return whether a rule with priority and the arguments args exists in chain chain in table table. Returns 0 if true, 1 otherwise. This option concerns only rules previously added with . | Get all rules added to all chains in all tables as a newline separated list of the priority and arguments. This option concerns only rules previously added with . | { ipv4 | ipv6 | eb } table chain Get all rules added to chain chain in table table as a newline separated list of the priority and arguments. This option concerns only rules previously added with . | { | } { ipv4 | ipv6 | eb } args Add a passthrough rule with the arguments args for the ipv value. | { ipv4 | ipv6 | eb } args Return whether a passthrough rule with the arguments args exists for the ipv value. Returns 0 if true, 1 otherwise. | Get all passthrough rules as a newline separated list of the ipv value and arguments. | { ipv4 | ipv6 | eb } Get passthrough rules for the ipv value as a newline separated list of the priority and arguments. { ipv4 | ipv6 | eb } args Pass a command through to the firewall. args can be all iptables, ip6tables and ebtables command line arguments. This command is untracked, which means that firewalld is not able to provide information about this command later on, also not a listing of the untracked passthoughs. Lockdown Whitelist Options Local applications or services are able to change the firewall configuration if they are running as root (example: libvirt) or are authenticated using PolicyKit. With this feature administrators can lock the firewall configuration so that only applications on lockdown whitelist are able to request firewall changes. The lockdown access check limits D-Bus methods that are changing firewall rules. Query, list and get methods are not limited. The lockdown feature is a very light version of user and application policies for firewalld and is turned off by default. | { | } element.. Add an element or several elements of the same type to the lockdown whitelist. For possible lockdown whitelist elements see further down. With the or option, elements are added in the permanent environment. | element.. Return whether the element or several elements of the same type are enabled in the lockdown whitelist. For possible lockdown whitelist elements see further down. With the or option, elements are added in the permanent environment. | { | | | } Return list of elements added for the lockdown whitelist. With the or option, elements are added in the permanent environment. Lockdown Whitelist Elements The lockdown whitelist can contain commands, contexts, users and user ids. If a command entry on the whitelist ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. Commands for user root and others is not always the same. Example: As root /bin/firewall-cmd is used, as a normal user /usr/bin/firewall-cmd is be used on Fedora. The context is the security (SELinux) context of a running application or service. To get the context of a running application use ps -e --context. Warning: If the context is unconfined, then this will open access for more than the desired application. The lockdown whitelist entries are checked in the following order: 1. context 2. uid 3. user 4. command A lockdown whitelist element can be one of: 'string' The command string is a complete command line including path and also attributes. If a command entry ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. Commands for user root and others is not always the same, the used path depends on the use of the PATH environment variable. string The context is the security (SELinux) context of a running application or service. To get the context of a running application use ps -e --context and search for the application that should be white-listed. Warning: If the context of an application is unconfined, then this will open access for more than the desired application. string The user with the name string will be white-listed. integer The user with the id userid will be white-listed. Config Options { zone | { on | off } | value | { on | off } } Set a firewalld config option. The possible config options are: zone Set the default zone for connections and interfaces where no zone has been selected. Setting the default zone changes the zone for the connections or interfaces, that are using the default zone. Enable or disable lockdown. Be careful - if firewall-cmd is not on lockdown whitelist when you enable lockdown you won't be able to disable it again with firewall-cmd, you would need to edit firewalld.conf. If enabled, logging rules are added right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones for the configured link-layer packet type. The possible values are: all, unicast, broadcast, multicast and off. The default setting is off, which disables the logging. Enable or disable the panic mode. If enabled, all incoming and outgoing packets are dropped, active connections will expire. Enable this only if there are serious problems with your network environment. For example if the machine is getting hacked in. After disabling panic mode established connections might work again, if panic mode was enabled for a short period of time. List firewalld config options like default-zone, lockdown, log-denied and panic flag. { default-zone | lockdown | log-denied | panic } Get a firewalld config option. The possible config options are: Returns the default zone for connections and interfaces. Returns whether lockdown is enabled. Returns the log denied configuration. Returns 0 if panic mode is enabled, 1 otherwise. Settings Options List firewalld settings like BRIDGE, CleanupOnExit, IPSet, IPSetTypes, IPv4, IPv6, IPv6_rpfilter, IndividualCalls and MinimalMark. { BRIDGE | CleanupOnExit | IPSet | IPSetTypes | IPv4 | IPv6 | IPv6_rpfilter | IndividualCalls | MinimalMark } Get a firewalld setting. The supported settings are: Returns whether bridge support is available. Returns whether CleanupOnExit is enabled. Returns whether ipset support is available. Returns the currently supported ipset types. This setting lists all ipset types that are supported to be used within firewalld. This means the ipset types need to be supported by kernel and the ipset command and firewalld at the same time. Returns whether ipv4 support is available. Returns whether IPv6 support is available. Returns whether IPv6 rpfilter is enabled. The IPv6 rpfiler performs a reverse path filter test on a packet for IPv6. If a reply to the packet would be sent via the same interface that the packet arrived on, the packet will match and be accepted, otherwise dropped. The rp_filter for IPv4 is controlled using sysctl. Returns the individual calls setting. If disabled, combined -restore calls are not used, but individual calls. This increases the time that is needed to apply changes and to start the daemon, but is good for debugging. Returns the minimal mark setting. Marks up to this minimum are free for use for example in the direct interface. If more free marks are needed, increase the minimum in the firewalld.conf file. Exit Codes On success 0 is returned. On failure the output is red colored and exit code is either 2 in case of wrong command-line option usage or one of the following error codes in other cases: String Code &errorcodes; &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.conf.xml000066400000000000000000000137461320241217000206230ustar00rootroot00000000000000 ]> firewalld.conf firewalld &authors; firewalld.conf 5 firewalld.conf firewalld configuration file /firewalld/firewalld.conf Description firewalld.conf is loaded by firewalld during the initialization process. The file contains the basic configuration options for firewalld. Options These are the options that can be set in the config file: This sets the default zone for connections or interfaces if the zone is not selected or specified by NetworkManager, initscripts or command line tool. The default zone is public. For some firewall settings several rules are needed in different tables to be able to handle packets in the correct way. To achieve that these packets are marked using the MARK target iptables8 and ip6tables8. With the MinimalMark option a block of marks can be reserved for private use; only marks over this value are used. The default MinimalMark value is 100. If firewalld stops, it cleans up all firewall rules. Setting this option to no or false leaves the current firewall rules untouched. The default value is yes or true. If this option is enabled, firewall changes with the D-Bus interface will be limited to applications that are listed in the lockdown whitelist (see firewalld.lockdown-whitelist5). The default value is no or false. If this option is enabled (it is by default), reverse path filter test on a packet for IPv6 is performed. If a reply to the packet would be sent via the same interface that the packet arrived on, the packet will match and be accepted, otherwise dropped. For IPv4 the rp_filter is controlled using sysctl. If this option is disabled (it is by default), combined -restore calls are used and not individual calls to apply changes to the firewall. The use of individiual calls increases the time that is needed to apply changes and to start the daemon, but is good for debugging as error messages are more specific. Add logging rules right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones for the configured link-layer packet type. The possible values are: all, unicast, broadcast, multicast and off. The default setting is off, which disables the logging. For the secure use of iptables and connection tracking helpers it is recommended to turn AutomaticHelpers off. But this might have side effects on other services using the netfilter helpers as the sysctl setting in /proc/sys/net/netfilter/nf_conntrack_helper will be changed. With the system setting, the default value set in the kernel or with sysctl will be used. Possible values are: yes, no and system. The default setting is system. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.dbus.xml000066400000000000000000011622011320241217000206230ustar00rootroot00000000000000 ]> firewalld.dbus firewalld &authors; firewalld.dbus 5 firewalld.dbus firewalld D-Bus interface description Object Paths This is the basic firewalld object path structure. The used interfaces are explained below in . /org/fedoraproject/FirewallD1 Interfaces org.fedoraproject.FirewallD1 org.fedoraproject.FirewallD1.direct org.fedoraproject.FirewallD1.ipset org.fedoraproject.FirewallD1.policies org.fedoraproject.FirewallD1.zone org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties /org/fedoraproject/FirewallD1/config Interfaces org.fedoraproject.FirewallD1.config org.fedoraproject.FirewallD1.config.direct org.fedoraproject.FirewallD1.config.policies org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties /org/fedoraproject/FirewallD1/config/zone/i Interfaces org.fedoraproject.FirewallD1.config.zone org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties /org/fedoraproject/FirewallD1/config/service/i Interfaces: org.fedoraproject.FirewallD1.config.service org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties /org/fedoraproject/FirewallD1/config/ipset/i Interfaces org.fedoraproject.FirewallD1.config.ipset org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties /org/fedoraproject/FirewallD1/config/icmptype/i Interfaces org.fedoraproject.FirewallD1.config.icmptype org.freedesktop.DBus.Introspectable org.freedesktop.DBus.Properties Interfaces org.fedoraproject.FirewallD1 This interface contains general runtime operations, like: reloading, panic mode, default zone handling, getting services and icmp types and their settings. Methods authorizeAll() → Nothing Initiate authorization for the complete firewalld D-Bus interface. This method it mostly useful for configuration applications. completeReload() → Nothing Reload firewall completely, even netfilter kernel modules. This will most likely terminate active connections, because state information is lost. This option should only be used in case of severe firewall problems. For example if there are state information problems that no connection can be established with correct firewall rules. disablePanicMode() → Nothing Disable panic mode. After disabling panic mode established connections might work again, if panic mode was enabled for a short period of time. Possible errors: NOT_ENABLED, COMMAND_FAILED enablePanicMode() → Nothing Enable panic mode. All incoming and outgoing packets are dropped, active connections will expire. Enable this only if there are serious problems with your network environment. Possible errors: ALREADY_ENABLED, COMMAND_FAILED getAutomaticHelpers() → s Return the AutomaticHelpers value. For the secure use of iptables and connection tracking helpers it is recommended to turn AutomaticHelpers off. But this might have side effects on other services using the netfilter helpers as the sysctl setting in /proc/sys/net/netfilter/nf_conntrack_helper will be changed. With the system setting, the default value set in the kernel or with sysctl will be used. Possible values are: yes, no and system. The default value is system. getDefaultZone() → s Return default zone. getHelperSettings(s: helper) → (sssssa(ss)) Return runtime settings of given helper. For getting permanent settings see org.fedoraproject.FirewallD1.config.helper.Methods.getSettings. Settings are in format: version, name, description, family, module and array of ports. version (s): see version attribute of helper tag in firewalld.helper5. name (s): see short tag in firewalld.helper5. description (s): see description tag in firewalld.helper5. family (s): see family tag in firewalld.helper5. module (s): see module tag in firewalld.helper5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.helper5. Possible errors: INVALID_HELPER getHelpers() → as Return array of helper names (s) in runtime configuration. For permanent configuration see org.fedoraproject.FirewallD1.config.Methods.listHelpers. getIcmpTypeSettings(s: icmptype) → (sssas) Return runtime settings of given icmptype. For getting permanent settings see org.fedoraproject.FirewallD1.config.icmptype.Methods.getSettings. Settings are in format: version, name, description, array of destinations. version (s): see version attribute of icmptype tag in firewalld.icmptype5. name (s): see short tag in firewalld.icmptype5. description (s): see description tag in firewalld.icmptype5. destinations (as): array, either empty or containing strings 'ipv4' or 'ipv6', see destination tag in firewalld.icmptype5. Possible errors: INVALID_ICMPTYPE getLogDenied() → s Retruns the LogDenied value. If LogDenied is enabled, then logging rules are added right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones. Possible values are: all, unicast, broadcast, multicast and off. The default value is off getServiceSettings(s: service) → (sssa(ss)asa{ss}asa(ss)) Return runtime settings of given service. For getting permanent settings see org.fedoraproject.FirewallD1.config.service.Methods.getSettings. Settings are in format: version, name, description, array of ports (port, protocol), array of module names, dictionary of destinations, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of service tag in firewalld.service5. name (s): see short tag in firewalld.service5. description (s): see description tag in firewalld.service5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.service5. module names (as): array of kernel netfilter helpers, see module tag in firewalld.service5. destinations (a{ss}): dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. protocols (as): array of protocols, see protocol tag in firewalld.service5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.service5. Possible errors: INVALID_SERVICE getZoneSettings(s: zone) → (sssbsasa(ss)asba(ssss)asasasasa(ss)) Return runtime settings of given zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getSettings. Settings are in format: version, name, description, UNUSED, target, array of services, array of ports (port, protocol), array of icmp-blocks, masquerade, array of forward-ports (port, protocol, to-port, to-addr), array of interfaces, array of sources, array of rich rules, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of zone tag in firewalld.zone5. name (s): see short tag in firewalld.zone5. description (s): see description tag in firewalld.zone5. UNUSED (b): this boolean value is no longer used for anything. target (s): see target attribute of zone tag in firewalld.zone5. services (as): array of service names, see service tag in firewalld.zone5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.zone5. icmp-blocks (as): array of icmp-blocks. See icmp-block tag in firewalld.zone5. masquerade (b): see masquerade tag in firewalld.zone5. forward-ports (a(ssss)): array of (port, protocol, to-port, to-addr). See forward-port tag in firewalld.zone5. interfaces (as): array of interfaces. See interface tag in firewalld.zone5. source addresses (as): array of source addresses. See source tag in firewalld.zone5. rich rules (as): array of rich-language rules. See rule tag in firewalld.zone5. protocols (as): array of protocols, see protocol tag in firewalld.zone5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.zone5. Possible errors: INVALID_ZONE listIcmpTypes() → as Return array of names (s) of icmp types in runtime configuration. For permanent configuration see org.fedoraproject.FirewallD1.config.Methods.listIcmpTypes. listServices() → as Return array of service names (s) in runtime configuration. For permanent configuration see org.fedoraproject.FirewallD1.config.Methods.listServices. queryPanicMode() → b Return true if panic mode is enabled, false otherwise. In panic mode all incoming and outgoing packets are dropped. reload() → Nothing Reload firewall rules and keep state information. Current permanent configuration will become new runtime configuration, i.e. all runtime only changes done until reload are lost with reload if they have not been also in permanent configuration. runtimeToPermanent() → Nothing Make runtime settings permanent. Replaces permanent settings with runtime settings for zones, services, icmptypes, direct and policies (lockdown whitelist). Possible errors: RT_TO_PERM_FAILED setDefaultZone(s: zone) → Nothing Set default zone for connections and interfaces where no zone has been selected to zone. Setting the default zone changes the zone for the connections or interfaces, that are using the default zone. This is a runtime and permanent change. Possible errors: ZONE_ALREADY_SET, COMMAND_FAILED setLogDenied(s: value) → Nothing Set LogDenied value to value. If LogDenied is enabled, then logging rules are added right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones. Possible values are: all, unicast, broadcast, multicast and off. The default value is off This is a runtime and permanent change. Possible errors: ALREADY_SET, INVALID_VALUE Signals DefaultZoneChanged(s: zone) Emitted when default zone has been changed to zone. LogDeniedChanged(s: value) Emitted when LogDenied value has been changed. PanicModeDisabled() Emitted when panic mode has been deactivated. PanicModeEnabled() Emitted when panic mode has been activated. Reloaded() Emitted when firewalld has been reloaded. Also emitted for a complete reload. Properties BRIDGE - b - (ro) Indicates whether the firewall has ethernet bridge support. IPSet - b - (ro) Indicates whether the firewall has IPSet support. IPSetTypes - as - (ro) The supported IPSet types by ipset and firewalld. IPv4 - b - (ro) Indicates whether the firewall has IPv4 support. IPv4ICMPTypes - as - (ro) The list of supported IPv4 ICMP types. IPv6 - b - (ro) Indicates whether the firewall has IPv6 support. IPv6_rpfilter - b - (ro) Indicates whether the reverse path filter test on a packet for IPv6 is enabled. If a reply to the packet would be sent via the same interface that the packet arrived on, the packet will match and be accepted, otherwise dropped. IPv6ICMPTypes - as - (ro) The list of supported IPv6 ICMP types. nf_conntrach_helper_setting - b - (ro) Kernel nf_conntrack_helper setting. nf_conntrack_helpers - a{sas} - (ro) The list of conntrack helpers supported by the kernel. nf_nat_helpers - a{sas} - (ro) The list of nat helpers supported by the kernel. interface_version - s - (ro) firewalld D-Bus interface version string. state - s - (ro) firewalld state. This can be either INIT or RUNNING. In INIT state, firewalld is starting up and initializing. version - s - (ro) firewalld version string. org.fedoraproject.FirewallD1.ipset Operations in this interface allows to get, add, remove and query runtime ipset settings. For permanent configuration see org.fedoraproject.FirewallD1.config.ipset interface. Methods addEntry(s: ipset, s: entry) → as Add a new entry to ipset. The entry must match the type of the ipset. If the ipset is using the timeout option, it is not possible to see the entries, as they are timing out automatically in the kernel. For permanent operation see org.fedoraproject.FirewallD1.config.ipset.Methods.addEntry. Possible errors: INVALID_IPSET, IPSET_WITH_TIMEOUT getEntries(s: ipset) → Nothing Get all entries added to the ipset. If the ipset is using the timeout option, it is not possible to see the entries, as they are timing out automatically in the kernel. Return value is a array of entry. For permanent operation see org.fedoraproject.FirewallD1.config.ipset.Methods.getEntries. Possible errors: INVALID_IPSET, IPSET_WITH_TIMEOUT getSettings(s: ipset) → (ssssa{ss}as) Return runtime settings of given ipset. For getting permanent settings see org.fedoraproject.FirewallD1.config.ipset.Methods.getSettings. Settings are in format: version, name, description, type, dictionary of options and array of entries. version (s): see version attribute of ipset tag in firewalld.ipset5. name (s): see short tag in firewalld.ipset5. description (s): see description tag in firewalld.ipset5. type (s): see type attribute of ipset tag in firewalld.ipset5. options (a{ss}): dictionary of {option : value} . See options tag in firewalld.ipset5. entries (as): array of entries, see entry tag in firewalld.ipset5. Possible errors: INVALID_IPSET getIPSets() → as Return array of ipset names (s) in runtime configuration. For permanent configuration see org.fedoraproject.FirewallD1.config.Methods.listIPSets. queryService(s: ipset, s: entry) → b Return whether entry has been added to ipset. For permanent operation see org.fedoraproject.FirewallD1.config.ipset.Methods.queryEntry. Possible errors: INVALID_IPSET queryService(s: ipset) → b Return whether ipset is defined in runtime configuration. removeEntry(s: ipset, s: entry) → as Removes an entry from ipset. For permanent operation see org.fedoraproject.FirewallD1.config.ipset.Methods.removeEntry. Possible errors: INVALID_IPSET, IPSET_WITH_TIMEOUT setEntries(as: entries) → Nothing Permanently set list of entries to entries. For permanent operation see org.fedoraproject.FirewallD1.config.ipset.Methods.setEntries. See entry tag in firewalld.ipset5. Signals EntryAdded(s: ipset, s: entry) Emitted when entry has been added to ipset. EntryRemoved(s: ipset, s: entry) Emitted when entry has been removed from ipset. org.fedoraproject.FirewallD1.direct This interface enables more direct access to the firewall. It enables runtime manipulation with chains and rules. For permanent configuration see org.fedoraproject.FirewallD1.config.direct interface. Methods addChain(s: ipv, s: table, s: chain) → Nothing Add a new chain to table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Make sure there's no other chain with this name already. There already exist basic chains to use with direct methods, for example INPUT_direct chain. These chains are jumped into before chains for zones, i.e. every rule put into INPUT_direct will be checked before rules in zones. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.addChain. Possible errors: INVALID_IPV, INVALID_TABLE, ALREADY_ENABLED, COMMAND_FAILED addPassthrough(s: ipv, as: args) → Nothing Add a tracked passthrough rule with the arguments args for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Valid commands in args are only -A/--append, -I/--insert and -N/--new-chain. This method is (unlike passthrough method) tracked, i.e. firewalld remembers it. It's useful with org.fedoraproject.FirewallD1.Methods.runtimeToPermanent For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.addPassthrough. Possible errors: INVALID_IPV, ALREADY_ENABLED, COMMAND_FAILED addRule(s: ipv, s: table, s: chain, i: priority, as: args) → Nothing Add a rule with the arguments args to chain in table with priority for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.addRule. Possible errors: INVALID_IPV, INVALID_TABLE, ALREADY_ENABLED, COMMAND_FAILED getAllChains() → a(sss) Get all chains added to all tables in format: ipv, table, chain. This concerns only chains previously added with addChain. Return value is a array of (ipv, table, chain). For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getAllChains. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). table (s): one of filter, mangle, nat, raw, security chain (s): name of a chain. getAllPassthroughs() → a(sas) Get all tracked passthrough rules added in all ipv types in format: ipv, rule. This concerns only rules previously added with addPassthrough. Return value is a array of (ipv, array of arguments). For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getAllPassthroughs. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getAllRules() → a(sssias) Get all rules added to all chains in all tables in format: ipv, table, chain, priority, rule. This concerns only rules previously added with addRule. Return value is a array of (ipv, table, chain, priority, array of arguments). For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getAllRules. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). table (s): one of filter, mangle, nat, raw, security chain (s): name of a chain. priority (i): used to order rules. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getChains(s: ipv, s: table) → as Return an array of chains (s) added to table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only chains previously added with addChain. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getChains. Possible errors: INVALID_IPV, INVALID_TABLE getPassthroughs(s: ipv) → aas Get tracked passthrough rules added in either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addPassthrough. Return value is a array of (array of arguments). For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getPassthroughs. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getRules(s: ipv, s: table, s: chain) → a(ias) Get all rules added to chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. Return value is a array of (priority, array of arguments). For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.getRules. priority (i): used to order rules. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. Possible errors: INVALID_IPV, INVALID_TABLE passthrough(s: ipv, as: args) → s Pass a command through to the firewall. ipv can be either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). args can be all iptables, ip6tables and ebtables command line arguments. args can be all iptables, ip6tables and ebtables command line arguments. This command is untracked, which means that firewalld is not able to provide information about this command later on. Possible errors: COMMAND_FAILED queryChain(s: ipv, s: table, s: chain) → b Return whether a chain exists in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only chains previously added with addChain. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.queryChain. Possible errors: INVALID_IPV, INVALID_TABLE queryPassthrough(s: ipv, as: args) → b Return whether a tracked passthrough rule with the arguments args exists for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addPassthrough. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.queryPassthrough. Possible errors: INVALID_IPV queryRule(s: ipv, s: table, s: chain, i: priority, as: args) → b Return whether a rule with priority and the arguments args exists in chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.queryRule. Possible errors: INVALID_IPV, INVALID_TABLE removeAllPassthroughs() → Nothing Remove all passthrough rules previously added with addPassthrough. removeChain(s: ipv, s: table, s: chain) → Nothing Remove a chain from table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only chains previously added with addChain can be removed this way. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.removeChain. Possible errors: INVALID_IPV, INVALID_TABLE, NOT_ENABLED, COMMAND_FAILED removePassthrough(s: ipv, as: args) → Nothing Remove a tracked passthrough rule with arguments args for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only rules previously added with addPassthrough can be removed this way. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.removePassthrough. Possible errors: INVALID_IPV, NOT_ENABLED, COMMAND_FAILED removeRule(s: ipv, s: table, s: chain, i: priority, as: args) → Nothing Remove a rule with priority and arguments args from chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only rules previously added with addRule can be removed this way. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.removeRule. Possible errors: INVALID_IPV, INVALID_TABLE, NOT_ENABLED, COMMAND_FAILED removeRules(s: ipv, s: table, s: chain) → Nothing Remove all rules from chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. For permanent operation see org.fedoraproject.FirewallD1.config.direct.Methods.removeRules. Possible errors: INVALID_IPV, INVALID_TABLE Signals ChainAdded(s: ipv, s: table, s: chain) Emitted when chain has been added into table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). ChainRemoved(s: ipv, s: table, s: chain) Emitted when chain has been removed from table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). PassthroughAdded(s: ipv, as: args) Emitted when a tracked passthruogh rule with args has been added for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). PassthroughRemoved(s: ipv, as: args) Emitted when a tracked passthrough rule with args has been removed for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). RuleAdded(s: ipv, s: table, s: chain, i: priority, as: args) Emitted when a rule with args has been added to chain in table with priority for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). RuleRemoved(s: ipv, s: table, s: chain, i: priority, as: args) Emitted when a rule with args has been removed from chain in table with priority for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). org.fedoraproject.FirewallD1.policies Enables firewalld to be able to lock down configuration changes from local applications. Local applications or services are able to change the firewall configuration if they are running as root (example: libvirt). With these operations administrator can lock the firewall configuration so that either none or only applications that are in the whitelist are able to request firewall changes. For permanent configuration see org.fedoraproject.FirewallD1.config.policies interface. Methods addLockdownWhitelistCommand(s: command) → Nothing Add command to whitelist. See command option in firewalld.lockdown-whitelist5. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.addLockdownWhitelistCommand. Possible errors: ALREADY_ENABLED, INVALID_COMMAND addLockdownWhitelistContext(s: context) → Nothing Add context to whitelist. See selinux option in firewalld.lockdown-whitelist5. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.addLockdownWhitelistContext. Possible errors: ALREADY_ENABLED, INVALID_COMMAND addLockdownWhitelistUid(i: uid) → Nothing Add user id uid to whitelist. See user option in firewalld.lockdown-whitelist5. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.addLockdownWhitelistUid. Possible errors: ALREADY_ENABLED, INVALID_COMMAND addLockdownWhitelistUser(s: user) → Nothing Add user name to whitelist. See user option in firewalld.lockdown-whitelist5. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.addLockdownWhitelistUser. Possible errors: ALREADY_ENABLED, INVALID_COMMAND disableLockdown() → Nothing Disable lockdown. This is a runtime and permanent change. Possible errors: NOT_ENABLED enableLockdown() → Nothing Enable lockdown. Be careful - if the calling application/user is not on lockdown whitelist when you enable lockdown you won't be able to disable it again with the application, you would need to edit firewalld.conf. This is a runtime and permanent change. Possible errors: ALREADY_ENABLED getLockdownWhitelistCommands() → as List all command lines (s) that are on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.getLockdownWhitelistCommands. getLockdownWhitelistContexts() → as List all contexts (s) that are on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.getLockdownWhitelistContexts. getLockdownWhitelistUids() → ai List all user ids (i) that are on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.getLockdownWhitelistUids. getLockdownWhitelistUsers() → as List all users (s) that are on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.getLockdownWhitelistUsers. queryLockdown() → b Query whether lockdown is enabled. queryLockdownWhitelistCommand(s: command) → b Query whether command is on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.queryLockdownWhitelistCommand. queryLockdownWhitelistContext(s: context) → b Query whether context is on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.queryLockdownWhitelistContext. queryLockdownWhitelistUid(i: uid) → b Query whether user id uid is on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.queryLockdownWhitelistUid. queryLockdownWhitelistUser(s: user) → b Query whether user is on whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.queryLockdownWhitelistUser. removeLockdownWhitelistCommand(s: command) → Nothing Remove command from whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.removeLockdownWhitelistCommand. Possible errors: NOT_ENABLED removeLockdownWhitelistContext(s: context) → Nothing Remove context from whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.removeLockdownWhitelistContext. Possible errors: NOT_ENABLED removeLockdownWhitelistUid(i: uid) → Nothing Remove user id uid from whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.removeLockdownWhitelistUid. Possible errors: NOT_ENABLED removeLockdownWhitelistUser(s: user) → Nothing Remove user from whitelist. For permanent operation see org.fedoraproject.FirewallD1.config.policies.Methods.removeLockdownWhitelistUser. Possible errors: NOT_ENABLED Signals LockdownDisabled() Emitted when lockdown has been disabled. LockdownEnabled() Emitted when lockdown has been enabled. LockdownWhitelistCommandAdded(s: command) Emitted when command has been added to whitelist. LockdownWhitelistCommandRemoved(s: command) Emitted when command has been removed from whitelist. LockdownWhitelistContextAdded(s: context) Emitted when context has been added to whitelist. LockdownWhitelistContextRemoved(s: context) Emitted when context has been removed from whitelist. LockdownWhitelistUidAdded(i: uid) Emitted when user id uid has been added to whitelist. LockdownWhitelistUidRemoved(i: uid) Emitted when user id uid has been removed from whitelist. LockdownWhitelistUserAdded(s: user) Emitted when user has been added to whitelist. LockdownWhitelistUserRemoved(s: user) Emitted when user has been removed from whitelist. org.fedoraproject.FirewallD1.zone Operations in this interface allows to get, add, remove and query runtime zone's settings. For permanent settings see org.fedoraproject.FirewallD1.config.zone interface. Methods addForwardPort(s: zone, s: port, s: protocol, s: toport, s: toaddr, i: timeout) → s Add the IPv4 forward port into zone. If zone is empty, use default zone. The port can either be a single port number portid or a port range portid-portid. The protocol can either be tcp or udp. The destination address is a simple IP address. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addForwardPort. Returns name of zone to which the forward port was added. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, INVALID_ADDR, INVALID_FORWARD, ALREADY_ENABLED, INVALID_COMMAND addIcmpBlock(s: zone, s: icmp, i: timeout) → s Add an ICMP block icmp into zone. The icmp is the one of the icmp types firewalld supports. To get a listing of supported icmp types use org.fedoraproject.FirewallD1.Methods.listIcmpTypes If zone is empty, use default zone. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addIcmpBlock. Returns name of zone to which the ICMP block was added. Possible errors: INVALID_ZONE, INVALID_ICMPTYPE, ALREADY_ENABLED, INVALID_COMMAND addIcmpBlockInversion(s: zone) → s Add ICMP block inversion to zone. If zone is empty, use default zone. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addIcmpBlockInversion. Returns name of zone to which the ICMP block inversion was added. Possible errors: INVALID_ZONE, ALREADY_ENABLED, INVALID_COMMAND addInterface(s: zone, s: interface) → s Bind interface with zone. From now on all traffic going through the interface will respect the zone's settings. If zone is empty, use default zone. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addInterface. Returns name of zone to which the interface was bound. Possible errors: INVALID_ZONE, INVALID_INTERFACE, ALREADY_ENABLED, INVALID_COMMAND addMasquerade(s: zone, i: timeout) → s Enable masquerade in zone. If zone is empty, use default zone. If timeout is non-zero, masquerading will be active for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addMasquerade. Returns name of zone in which the masquerade was enabled. Possible errors: INVALID_ZONE, ALREADY_ENABLED, INVALID_COMMAND addPort(s: zone, s: port, s: protocol, i: timeout) → s Add port into zone. If zone is empty, use default zone. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addPort. Returns name of zone to which the port was added. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, ALREADY_ENABLED, INVALID_COMMAND addProtocol(s: zone, s: protocol, i: timeout) → s Add protocol into zone. If zone is empty, use default zone. The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addProtocol. Returns name of zone to which the protocol was added. Possible errors: INVALID_ZONE, INVALID_PROTOCOL, ALREADY_ENABLED, INVALID_COMMAND addRichRule(s: zone, s: rule, i: timeout) → s Add rich language rule into zone. For the rich language rule syntax, please have a look at firewalld.direct5. If zone is empty, use default zone. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addRichRule. Returns name of zone to which the rich language rule was added. Possible errors: INVALID_ZONE, INVALID_RULE, ALREADY_ENABLED, INVALID_COMMAND addService(s: zone, s: service, i: timeout) → s Add service into zone. If zone is empty, use default zone. If timeout is non-zero, the operation will be active only for the amount of seconds. To get a list of supported services, use org.fedoraproject.FirewallD1.Methods.listServices. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addService. Returns name of zone to which the service was added. Possible errors: INVALID_ZONE, INVALID_SERVICE, ALREADY_ENABLED, INVALID_COMMAND addSource(s: zone, s: source) → s Bind source with zone. From now on all traffic going from this source will respect the zone's settings. A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. Use of host names is not supported. If zone is empty, use default zone. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addSource. Returns name of zone to which the source was bound. Possible errors: INVALID_ZONE, INVALID_ADDR, ALREADY_ENABLED, INVALID_COMMAND addSourcePort(s: zone, s: port, s: protocol, i: timeout) → s Add source port into zone. If zone is empty, use default zone. The port can either be a single port number or a port range portid-portid. The protocol can either be tcp or udp. If timeout is non-zero, the operation will be active only for the amount of seconds. For permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.addSourcePort. Returns name of zone to which the port was added. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, ALREADY_ENABLED, INVALID_COMMAND changeZone(s: zone, s: interface) → s This function is deprecated, use org.fedoraproject.FirewallD1.zone.Methods.changeZoneOfInterface instead. changeZoneOfInterface(s: zone, s: interface) → s Change a zone an interface is bound to to zone. It's basically removeInterface(interface) followed by addInterface(zone, interface). If interface has not been bound to a zone before, it behaves like addInterface. If zone is empty, use default zone. Returns name of zone to which the interface was bound. Possible errors: INVALID_ZONE, ZONE_ALREADY_SET, ZONE_CONFLICT changeZoneOfSource(s: zone, s: source) → s Change a zone an source is bound to to zone. It's basically removeSource(source) followed by addSource(zone, source). If source has not been bound to a zone before, it behaves like addSource. If zone is empty, use default zone. Returns name of zone to which the source was bound. Possible errors: INVALID_ZONE, ZONE_ALREADY_SET, ZONE_CONFLICT getActiveZones() → a{sa{sas}} Return dictionary of currently active zones altogether with interfaces and sources used in these zones. Active zones are zones, that have a binding to an interface or source. Return value is a dictionary where keys are zone names (s) and values are again dictionaries where keys are either 'interfaces' or 'sources' and values are arrays of interface names (s) or sources (s). getForwardPorts(s: zone) → aas Return array of IPv4 forward ports previously added into zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getForwardPorts. Return value is array of 4-tuples, where each 4-tuple consists of (port, protocol, to-port, to-addr). to-addr might be empty in case of local forwarding. Possible errors: INVALID_ZONE getIcmpBlocks(s: zone) → as Return array of ICMP type (s) blocks previously added into zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getIcmpBlocks. Possible errors: INVALID_ZONE getIcmpBlockInversion(s: zone) → b Return whether ICMP block inversion was previously added to zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getIcmpBlockInversion. Possible errors: INVALID_ZONE getInterfaces(s: zone) → as Return array of interfaces (s) previously bound with zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getInterfaces. Possible errors: INVALID_ZONE getPorts(s: zone) → aas Return array of ports (2-tuple of port and protocol) previously enabled in zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getPorts. Possible errors: INVALID_ZONE getProtocols(s: zone) → as Return array of protocols (s) previously enabled in zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getProtocols. Possible errors: INVALID_ZONE getRichRules(s: zone) → as Return array of rich language rules (s) previously added into zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getRichRules. Possible errors: INVALID_ZONE getServices(s: zone) → as Return array of services (s) previously enabled in zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getServices. Possible errors: INVALID_ZONE getSourcePorts(s: zone) → aas Return array of source ports (2-tuple of port and protocol) previously enabled in zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getSourcePorts. Possible errors: INVALID_ZONE getSources(s: zone) → as Return array of sources (s) previously bound with zone. If zone is empty, use default zone. For getting permanent settings see org.fedoraproject.FirewallD1.config.zone.Methods.getSources. Possible errors: INVALID_ZONE getZoneOfInterface(s: interface) → s Return name (s) of zone the interface is bound to or empty string. getZoneOfSource(s: source) → s Return name (s) of zone the source is bound to or empty string. getZones() → as Return array of names (s) of predefined zones known to current runtime environment. For list of zones known to permanent environment see org.fedoraproject.FirewallD1.config.Methods.listZones. The lists (of zones known to runtime and permanent environment) will contain same zones in most cases, but might differ for example if org.fedoraproject.FirewallD1.config.Methods.addZone has been called recently, but firewalld has not been reloaded since then. isImmutable(s: zone) → b Deprecated. queryForwardPort(s: zone, s: port, s: protocol, s: toport, s: toaddr) → b Return whether the IPv4 forward port (port, protocol, toport, toaddr) has been added into zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryForwardPort. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, INVALID_ADDR, INVALID_FORWARD queryIcmpBlock(s: zone, s: icmp) → b Return whether an ICMP block for icmp has been added into zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryIcmpBlock. Possible errors: INVALID_ZONE, INVALID_ICMPTYPE queryIcmpBlockInversion(s: zone) → b Return whether ICMP block inversion has been added to zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryIcmpBlockInversion. Possible errors: INVALID_ZONE, INVALID_ICMPTYPE queryInterface(s: zone, s: interface) → b Query whether interface has been bound to zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryInterface. Possible errors: INVALID_ZONE, INVALID_INTERFACE queryMasquerade(s: zone) → b Return whether masquerading has been enabled in zone If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryMasquerade. Possible errors: INVALID_ZONE queryPort(s: zone, s: port, s: protocol) → b Return whether port/protocol has been added in zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryPort. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL queryProtocol(s: zone, s: protocol) → b Return whether protocol has been added in zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryProtocol. Possible errors: INVALID_ZONE, INVALID_PROTOCOL queryRichRule(s: zone, s: rule) → b Return whether rich rule rule has been added in zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryRichRule. Possible errors: INVALID_ZONE, INVALID_RULE queryService(s: zone, s: service) → b Return whether service has been added for zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.queryService. Possible errors: INVALID_ZONE, INVALID_SERVICE querySource(s: zone, s: source) → b Query whether sourcehas been bound to zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.querySource. Possible errors: INVALID_ZONE, INVALID_ADDR querySourcePort(s: zone, s: port, s: protocol) → b Return whether port/protocol has been added in zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.querySourcePort. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL removeForwardPort(s: zone, s: port, s: protocol, s: toport, s: toaddr) → s Remove IPv4 forward port ((port, protocol, toport, toaddr)) from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeForwardPort. Returns name of zone from which the forward port was removed. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, INVALID_ADDR, INVALID_FORWARD, NOT_ENABLED, INVALID_COMMAND removeIcmpBlock(s: zone, s: icmp) → s Remove ICMP block icmp from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeIcmpBlock. Returns name of zone from which the ICMP block was removed. Possible errors: INVALID_ZONE, INVALID_ICMPTYPE, NOT_ENABLED, INVALID_COMMAND removeIcmpBlockInversion(s: zone) → s Remove ICMP block inversion from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeIcmpBlockInversion. Returns name of zone from which the ICMP block inversion was removed. Possible errors: INVALID_ZONE, NOT_ENABLED, INVALID_COMMAND removeInterface(s: zone, s: interface) → s Remove binding of interface from zone. If zone is empty, the interface will be removed from zone it belongs to. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeInterface. Returns name of zone from which the interface was removed. Possible errors: INVALID_ZONE, INVALID_INTERFACE, NOT_ENABLED, INVALID_COMMAND removeMasquerade(s: zone) → s Disable masquerade for zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeMasquerade. Returns name of zone for which the masquerade was disabled. Possible errors: INVALID_ZONE, NOT_ENABLED, INVALID_COMMAND removePort(s: zone, s: port, s: protocol) → s Remove port/protocol from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removePort. Returns name of zone from which the port was removed. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, NOT_ENABLED, INVALID_COMMAND removeProtocol(s: zone, s: protocol) → s Remove protocol from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeProtocol. Returns name of zone from which the protocol was removed. Possible errors: INVALID_ZONE, INVALID_PROTOCOL, NOT_ENABLED, INVALID_COMMAND removeRichRule(s: zone, s: rule) → s Remove rich language rule from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeRichRule. Returns name of zone from which the rich language rule was removed. Possible errors: INVALID_ZONE, INVALID_RULE, NOT_ENABLED, INVALID_COMMAND removeService(s: zone, s: service) → s Remove service from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeService. Returns name of zone from which the service was removed. Possible errors: INVALID_ZONE, INVALID_SERVICE, NOT_ENABLED, INVALID_COMMAND removeSource(s: zone, s: source) → s Remove binding of source from zone. If zone is empty, the source will be removed from zone it belongs to. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeSource. Returns name of zone from which the source was removed. Possible errors: INVALID_ZONE, INVALID_ADDR, NOT_ENABLED, INVALID_COMMAND removeSourcePort(s: zone, s: port, s: protocol) → s Remove port/protocol from zone. If zone is empty, use default zone. For permanent operation see org.fedoraproject.FirewallD1.config.zone.Methods.removeSourcePort. Returns name of zone from which the source port was removed. Possible errors: INVALID_ZONE, INVALID_PORT, MISSING_PROTOCOL, INVALID_PROTOCOL, NOT_ENABLED, INVALID_COMMAND Signals ForwardPortAdded(s: zone, s: port, s: protocol, s: toport, s: toaddr, i: timeout) Emitted when forward port has been added to zone with timeout. ForwardPortRemoved(s: zone, s: port, s: protocol, s: toport, s: toaddr) Emitted when forward port has been removed from zone. IcmpBlockAdded(s: zone, s: icmp, i: timeout) Emitted when ICMP block for icmp has been added to zone with timeout. IcmpBlockInversionAdded(s: zone) Emitted when ICMP block inversion has been added to zone. IcmpBlockInversionRemoved(s: zone) Emitted when ICMP block inversion has been removed from zone. IcmpBlockRemoved(s: zone, s: icmp) Emitted when ICMP block for icmp has been removed from zone. InterfaceAdded(s: zone, s: interface) Emitted when interface has been added to zone. InterfaceRemoved(s: zone, s: interface) Emitted when interface has been removed from zone. MasqueradeAdded(s: zone, i: timeout) Emitted when masquerade has been enabled for zone. MasqueradeRemoved(s: zone) Emitted when masquerade has been disabled for zone. PortAdded(s: zone, s: port, s: protocol, i: timeout) Emitted when port/protocol has been added to zone with timeout. PortRemoved(s: zone, s: port, s: protocol) Emitted when port/protocol has been removed from zone. ProtocolAdded(s: zone, s: protocol, i: timeout) Emitted when protocol has been added to zone with timeout. ProtocolRemoved(s: zone, s: protocol) Emitted when protocol has been removed from zone. RichRuleAdded(s: zone, s: rule, i: timeout) Emitted when rich language rule has been added to zone with timeout. RichRuleRemoved(s: zone, s: rule) Emitted when rich language rule has been removed from zone. ServiceAdded(s: zone, s: service, i: timeout) Emitted when service has been added to zone with timeout. ServiceRemoved(s: zone, s: service) Emitted when service has been removed from zone. SourceAdded(s: zone, s: source) Emitted when source has been added to zone. SourcePortAdded(s: zone, s: port, s: protocol, i: timeout) Emitted when source-port/protocol has been added to zone with timeout. SourcePortRemoved(s: zone, s: port, s: protocol) Emitted when source-port/protocol has been removed from zone. SourceRemoved(s: zone, s: source) Emitted when source has been removed from zone. ZoneChanged(s: zone, s: interface) Deprecated ZoneOfInterfaceChanged(s: zone, s: interface) Emitted when a zone an interface is part of has been changed to zone. ZoneOfSourceChanged(s: zone, s: source) Emitted when a zone an source is part of has been changed to zone. org.fedoraproject.FirewallD1.config Allows to permanently add, remove and query zones, services and icmp types. Methods addIPSet(s: ipset, (ssssa{ss}as): settings) → o Add ipset with given settings into permanent configuration. Settings are in format: version, name, description, type, dictionary of options and array of entries. version (s): see version attribute of ipset tag in firewalld.ipset5. name (s): see short tag in firewalld.ipset5. description (s): see description tag in firewalld.ipset5. type (s): see type attribute of ipset tag in firewalld.ipset5. options (a{ss}): dictionary of {option : value} . See options tag in firewalld.ipset5. entries (as): array of entries, see entry tag in firewalld.ipset5. Possible errors: NAME_CONFLICT, INVALID_NAME, INVALID_TYPE addIcmpType(s: icmptype, (sssas): settings) → o Add icmptype with given settings into permanent configuration. Settings are in format: version, name, description, array of destinations. Returns object path of the new icmp type. version (s): see version attribute of icmptype tag in firewalld.icmptype5. name (s): see short tag in firewalld.icmptype5. description (s): see description tag in firewalld.icmptype5. destinations (as): array, either empty or containing strings 'ipv4' or 'ipv6', see destination tag in firewalld.icmptype5. Possible errors: NAME_CONFLICT, INVALID_NAME, INVALID_TYPE addService(s: service, (sssa(ss)asa{ss}asa(ss)): settings) → o Add service with given settings into permanent configuration. Settings are in format: version, name, description, array of ports (port, protocol), array of module names, dictionary of destinations, array of protocols and array of source-ports (port, protocol). Returns object path of the new icmp type. version (s): see version attribute of service tag in firewalld.service5. name (s): see short tag in firewalld.service5. description (s): see description tag in firewalld.service5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.service5. module names (as): array of kernel netfilter helpers, see module tag in firewalld.service5. destinations (a{ss}): dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. protocols (as): array of protocols. See protocol tag in firewalld.service5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.service5. Possible errors: NAME_CONFLICT, INVALID_NAME, INVALID_TYPE addZone(s: zone, (sssbsasa(ss)asba(ssss)asasasasa(ss)): settings) → o Add zone with given settings into permanent configuration. Settings are in format: version, name, description, UNUSED, target, array of services, array of ports (port, protocol), array of icmp-blocks, masquerade, array of forward-ports (port, protocol, to-port, to-addr), array of interfaces, array of sources, array of rich rules, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of zone tag in firewalld.zone5. name (s): see short tag in firewalld.zone5. description (s): see description tag in firewalld.zone5. UNUSED (b): this boolean value is no longer used for anything. target (s): see target attribute of zone tag in firewalld.zone5. services (as): array of service names, see service tag in firewalld.zone5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.zone5. icmp-blocks (as): array of icmp-blocks. See icmp-block tag in firewalld.zone5. masquerade (b): see masquerade tag in firewalld.zone5. forward-ports (a(ssss)): array of (port, protocol, to-port, to-addr). See forward-port tag in firewalld.zone5. interfaces (as): array of interfaces. See interface tag in firewalld.zone5. source addresses (as): array of source addresses. See source tag in firewalld.zone5. rich rules (as): array of rich-language rules. See rule tag in firewalld.zone5. protocols (as): array of protocols. See protocol tag in firewalld.zone5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.zone5. Possible errors: NAME_CONFLICT, INVALID_NAME, INVALID_TYPE getHelperByName(s: helper) → o Return object path (permanent configuration) of helper with given name. Possible errors: INVALID_HELPER getHelperNames() → as Return list of helper names (permanent configuration). getIPSetByName(s: ipset) → o Return object path (permanent configuration) of ipset with given name. Possible errors: INVALID_IPSET getIPSetNames() → as Return list of ipset names (permanent configuration). getIcmpTypeByName(s: icmptype) → o Return object path (permanent configuration) of icmptype with given name. Possible errors: INVALID_ICMPTYPE getIcmpTypeNames() → as Return list of icmptype names (permanent configuration). getServiceByName(s: service) → o Return object path (permanent configuration) of service with given name. Possible errors: INVALID_SERVICE getServiceNames() → as Return list of service names (permanent configuration). getZoneByName(s: zone) → o Return object path (permanent configuration) of zone with given name. Possible errors: INVALID_ZONE getZoneNames() → as Return list of zone names (permanent configuration) of. getZoneOfInterface(s: iface) → s Return name of zone the iface is bound to or empty string. getZoneOfSource(s: source) → s Return name of zone the source is bound to or empty string. listHelpers() → ao Return array of object paths (o) of helper in permanent configuration. For runtime configuration see org.fedoraproject.FirewallD1.Methods.getHelpers. listIPSets() → ao Return array of object paths (o) of ipset in permanent configuration. For runtime configuration see org.fedoraproject.FirewallD1.ipset.Methods.getIPSets. listIcmpTypes() → ao Return array of object paths (o) of icmp types in permanent configuration. For runtime configuration see org.fedoraproject.FirewallD1.Methods.listIcmpTypes. listServices() → ao Return array of objects paths (o) of services in permanent configuration. For runtime configuration see org.fedoraproject.FirewallD1.Methods.listServices. listZones() → ao List object paths of zones known to permanent environment. For list of zones known to runtime environment see org.fedoraproject.FirewallD1.zone.Methods.getZones. The lists (of zones known to runtime and permanent environment) will contain same zones in most cases, but might differ for example if org.fedoraproject.FirewallD1.config.Methods.addZone has been called recently, but firewalld has not been reloaded since then. Signals HelperAdded(s: helper) Emitted when helper has been added. IPSetAdded(s: ipset) Emitted when ipset has been added. IcmpTypeAdded(s: icmptype) Emitted when icmptype has been added. ServiceAdded(s: service) Emitted when service has been added. ZoneAdded(s: zone) Emitted when zone has been added. Properties AutomaticHelpers - s - (rw) Indicates whether automatic helper assignment in kernel should be used or not. With the system setting this is left to the kernel or system default. CleanupOnExit - s - (rw) If firewalld stops, it cleans up all firewall rules. Setting this option to no or false leaves the current firewall rules untouched. DefaultZone - s - (ro) Default zone for connections or interfaces if the zone is not selected or specified by NetworkManager, initscripts or command line tool. IPv6_rpfilter - s - (rw) Indicates whether the reverse path filter test on a packet for IPv6 is enabled. If a reply to the packet would be sent via the same interface that the packet arrived on, the packet will match and be accepted, otherwise dropped. IndividualCalls - s - (ro) Indicates whether individual calls combined -restore calls are used. If enabled, this increases the time that is needed to apply changes and to start the daemon, but is good for debugging. Lockdown - s - (rw) If this property is enabled, firewall changes with the D-Bus interface will be limited to applications that are listed in the lockdown whitelist. LogDenied - s - (rw) If LogDenied is enabled, then logging rules are added right before reject and drop rules in the INPUT, FORWARD and OUTPUT chains for the default rules and also final reject and drop rules in zones. Possible values are: all, unicast, broadcast, multicast and off. MinimalMark - i - (rw) For some firewall settings several rules are needed in different tables to be able to handle packets in the correct way. To achieve that these packets are marked using the MARK target. With the MinimalMark property a block of marks can be reserved for private use; only marks over this value are used. org.fedoraproject.FirewallD1.config.direct Interface for permanent direct configuration, see also firewalld.direct5. For runtime direct configuration see org.fedoraproject.FirewallD1.direct interface. Methods addChain(s: ipv, s: table, s: chain) → Nothing Add a new chain to table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Make sure there's no other chain with this name already. There already exist basic chains to use with direct methods, for example INPUT_direct chain. These chains are jumped into before chains for zones, i.e. every rule put into INPUT_direct will be checked before rules in zones. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.addChain. Possible errors: INVALID_IPV, INVALID_TABLE, ALREADY_ENABLED addPassthrough(s: ipv, as: args) → Nothing Add a passthrough rule with the arguments args for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.addPassthrough. Possible errors: INVALID_IPV, ALREADY_ENABLED addRule(s: ipv, s: table, s: chain, i: priority, as: args) → Nothing Add a rule with the arguments args to chain in table with priority for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.addRule. Possible errors: INVALID_IPV, INVALID_TABLE, ALREADY_ENABLED getAllChains() → a(sss) Get all chains added to all tables in format: ipv, table, chain. This concerns only chains previously added with addChain. Return value is a array of (ipv, table, chain). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getAllChains. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). table (s): one of filter, mangle, nat, raw, security chain (s): name of a chain. getAllPassthroughs() → a(sas) Get all passthrough rules added in all ipv types in format: ipv, rule. This concerns only rules previously added with addPassthrough. Return value is a array of (ipv, array of arguments). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getAllPassthroughs. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getAllRules() → a(sssias) Get all rules added to all chains in all tables in format: ipv, table, chain, priority, rule. This concerns only rules previously added with addRule. Return value is a array of (ipv, table, chain, priority, array of arguments). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getAllRules. ipv (s): either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). table (s): one of filter, mangle, nat, raw, security chain (s): name of a chain. priority (i): used to order rules. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getChains(s: ipv, s: table) → as Return an array of chains (s) added to table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only chains previously added with addChain. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getChains. Possible errors: INVALID_IPV, INVALID_TABLE getPassthroughs(s: ipv) → aas Get tracked passthrough rules added in either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addPassthrough. Return value is a array of (array of arguments). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getPassthroughs. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. getRules(s: ipv, s: table, s: chain) → a(ias) Get all rules added to chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. Return value is a array of (priority, array of arguments). For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.getRules. priority (i): used to order rules. arguments (as): array of commands, parameters and other iptables/ip6tables/ebtables command line options. Possible errors: INVALID_IPV, INVALID_TABLE getSettings() → (a(sss)a(sssias)a(sas)) Get settings of permanent direct configuration in format: array of chains, array of rules, array of passthroughs. chains (a(sss)): array of (ipv, table, chain), see 'chain' in firewalld.direct5.. rules (a(sssias)): array of (ipv, table, chain, priority, array of arguments), see 'rule' in firewalld.direct5.. passthroughs (a(sas)): array of (ipv, array of arguments), see passthrough in firewalld.direct5.. queryChain(s: ipv, s: table, s: chain) → b Return whether a chain exists in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only chains previously added with addChain. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.queryChain. Possible errors: INVALID_IPV, INVALID_TABLE queryPassthrough(s: ipv, as: args) → b Return whether a tracked passthrough rule with the arguments args exists for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addPassthrough. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.queryPassthrough. Possible errors: INVALID_IPV queryRule(s: ipv, s: table, s: chain, i: priority, as: args) → b Return whether a rule with priority and the arguments args exists in chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.queryRule. Possible errors: INVALID_IPV, INVALID_TABLE removeChain(s: ipv, s: table, s: chain) → Nothing Remove a chain from table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only chains previously added with addChain can be removed this way. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.removeChain. Possible errors: INVALID_IPV, INVALID_TABLE, NOT_ENABLED removePassthrough(s: ipv, as: args) → Nothing Remove a passthrough rule with arguments args for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only rules previously added with addPassthrough can be removed this way. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.removePassthrough. Possible errors: INVALID_IPV, NOT_ENABLED removeRule(s: ipv, s: table, s: chain, i: priority, as: args) → Nothing Remove a rule with priority and arguments args from chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). Only rules previously added with addRule can be removed this way. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.removeRule. Possible errors: INVALID_IPV, INVALID_TABLE, NOT_ENABLED removeRules(s: ipv, s: table, s: chain) → Nothing Remove all rules from chain in table for ipv being either ipv4 (iptables) or ipv6 (ip6tables) or eb (ebtables). This concerns only rules previously added with addRule. For runtime operation see org.fedoraproject.FirewallD1.direct.Methods.removeRules. Possible errors: INVALID_IPV, INVALID_TABLE update((a(sss)a(sssias)a(sas)): settings) → Nothing Update permanent direct configuration with given settings. Settings are in format: array of chains, array of rules, array of passthroughs. chains (a(sss)): array of (ipv, table, chain), see 'chain' in firewalld.direct5.. rules (a(sssias)): array of (ipv, table, chain, priority, array of arguments), see 'rule' in firewalld.direct5.. passthroughs (a(sas)): array of (ipv, array of arguments), see passthrough in firewalld.direct5.. Possible errors: INVALID_TYPE Signals Updated() Emitted when configuration has been updated. org.fedoraproject.FirewallD1.config.policies Interface for permanent lockdown-whitelist configuration, see also firewalld.lockdown-whitelist5. For runtime configuration see org.fedoraproject.FirewallD1.policies interface. Methods addLockdownWhitelistCommand(s: command) → Nothing Add command to whitelist. See command option in firewalld.lockdown-whitelist5. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.addLockdownWhitelistCommand. Possible errors: ALREADY_ENABLED, INVALID_TYPE addLockdownWhitelistContext(s: context) → Nothing Add context to whitelist. See selinux option in firewalld.lockdown-whitelist5. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.addLockdownWhitelistContext. Possible errors: ALREADY_ENABLED, INVALID_TYPE addLockdownWhitelistUid(i: uid) → Nothing Add user id uid to whitelist. See user option in firewalld.lockdown-whitelist5. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.addLockdownWhitelistUid. Possible errors: ALREADY_ENABLED, INVALID_TYPE addLockdownWhitelistUser(s: user) → Nothing Add user name to whitelist. See user option in firewalld.lockdown-whitelist5. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.addLockdownWhitelistUser. Possible errors: ALREADY_ENABLED, INVALID_TYPE getLockdownWhitelist() → (asasasai) Get settings of permanent lockdown-whitelist configuration in format: commands, selinux contexts, users, uids commands (as): see command option in firewalld.lockdown-whitelist5. selinux contexts (as): see selinux option in firewalld.lockdown-whitelist5. users (as): see name attribute of user option in firewalld.lockdown-whitelist5. uids (ai): see id attribute of user option in firewalld.lockdown-whitelist5. getLockdownWhitelistCommands() → as List all command lines (s) that are on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.getLockdownWhitelistCommands. getLockdownWhitelistContexts() → as List all contexts (s) that are on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.getLockdownWhitelistContexts. getLockdownWhitelistUids() → ai List all user ids (i) that are on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.getLockdownWhitelistUids. getLockdownWhitelistUsers() → as List all users (s) that are on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.getLockdownWhitelistUsers. queryLockdownWhitelistCommand(s: command) → b Query whether command is on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.queryLockdownWhitelistCommand. queryLockdownWhitelistContext(s: context) → b Query whether context is on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.queryLockdownWhitelistContext. queryLockdownWhitelistUid(i: uid) → b Query whether user id uid is on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.queryLockdownWhitelistUid. queryLockdownWhitelistUser(s: user) → b Query whether user is on whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.queryLockdownWhitelistUser. removeLockdownWhitelistCommand(s: command) → Nothing Remove command from whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.removeLockdownWhitelistCommand. Possible errors: NOT_ENABLED removeLockdownWhitelistContext(s: context) → Nothing Remove context from whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.removeLockdownWhitelistContext. Possible errors: NOT_ENABLED removeLockdownWhitelistUid(i: uid) → Nothing Remove user id uid from whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.removeLockdownWhitelistUid. Possible errors: NOT_ENABLED removeLockdownWhitelistUser(s: user) → Nothing Remove user from whitelist. For runtime operation see org.fedoraproject.FirewallD1.policies.Methods.removeLockdownWhitelistUser. Possible errors: NOT_ENABLED setLockdownWhitelist((asasasai): settings) → Nothing Set permanent lockdown-whitelist configuration to settings. Settings are in format: commands, selinux contexts, users, uids commands (as): see command option in firewalld.lockdown-whitelist5. selinux contexts (as): see selinux option in firewalld.lockdown-whitelist5. users (as): see name attribute of user option in firewalld.lockdown-whitelist5. uids (ai): see id attribute of user option in firewalld.lockdown-whitelist5. Possible errors: INVALID_TYPE Signals LockdownWhitelistUpdated() Emitted when permanent lockdown-whitelist configuration has been updated. org.fedoraproject.FirewallD1.config.ipset Interface for permanent ipset configuration, see also firewalld.ipset5. Methods addEntry(s: entry) → Nothing Permanently add entry to list of entries of ipset. See entry tag in firewalld.ipset5. For runtime operation see org.fedoraproject.FirewallD1.ipset.Methods.addEntry. Possible errors: ALREADY_ENABLED addOption(s: key, s: value) → Nothing Permanently add (key, value) to the ipset. See option tag in firewalld.ipset5. Possible errors: ALREADY_ENABLED getDescription() → s Get description of ipset. See description tag in firewalld.ipset5. getEntries() → as Get list of entries added to ipset. See entry tag in firewalld.ipset5. For runtime operation see org.fedoraproject.FirewallD1.ipset.Methods.getEntries. Possible errors: IPSET_WITH_TIMEOUT getOptions() → a{ss} Get dictionary of options set for ipset. See option tag in firewalld.ipset5. getSettings() → (ssssa{ss}as) Return permament settings of the ipset. For getting runtime settings see org.fedoraproject.FirewallD1.ipset.Methods.getIPSetSettings. Settings are in format: version, name, description, type, dictionary of options and array of entries. version (s): see version attribute of ipset tag in firewalld.ipset5. name (s): see short tag in firewalld.ipset5. description (s): see description tag in firewalld.ipset5. type (s): see type attribute of ipset tag in firewalld.ipset5. options (a{ss}): dictionary of {option : value} . See options tag in firewalld.ipset5. entries (as): array of entries, see entry tag in firewalld.ipset5. getShort() → s Get name of ipset. See short tag in firewalld.ipset5. getType() → s Get type of ipset. See type attribute of ipset tag in firewalld.ipset5. getVersion() → s Get version of ipset. See version attribute of ipset tag in firewalld.ipset5. loadDefaults() → Nothing Load default settings for built-in ipset. Possible errors: NO_DEFAULTS queryEntry(s: entry) → b Return whether entry has been added to ipset. For runtime operation see org.fedoraproject.FirewallD1.ipset.Methods.queryEntry. queryOption(s: key, s: value) → b Return whether (key, value) has been added to options of the ipset. remove() → Nothing Remove not built-in ipset. Possible errors: BUILTIN_IPSET removeEntry(s: entry) → Nothing Permanently remove entry from ipset. See entry tag in firewalld.ipset5. For runtime operation see org.fedoraproject.FirewallD1.ipset.Methods.removeEntry. Possible errors: NOT_ENABLED removeOption(s: key) → Nothing Permanently remove key from the ipset. See option tag in firewalld.ipset5. Possible errors: NOT_ENABLED rename(s: name) → Nothing Rename not built-in ipset to name. Possible errors: BUILTIN_IPSET setDescription(s: description) → Nothing Permanently set description of ipset to description. See description tag in firewalld.ipset5. setEntries(as: entries) → Nothing Permanently set list of entries to entries. See entry tag in firewalld.ipset5. setOptions(a{ss}: options) → Nothing Permanently set dict of options to options. See option tag in firewalld.ipset5. setShort(s: short) → Nothing Permanently set name of ipset to short. See short tag in firewalld.ipset5. setType(s: ipset_type) → Nothing Permanently set type of ipset to ipset_type. See type attribute of ipset tag in firewalld.ipset5. setVersion(s: version) → Nothing Permanently set version of ipset to version. See version attribute of ipset tag in firewalld.ipset5. update((ssssa{ss}as): settings) → Nothing Update settings of ipset to settings. Settings are in format: version, name, description, type, dictionary of options and array of entries. version (s): see version attribute of ipset tag in firewalld.ipset5. name (s): see short tag in firewalld.ipset5. description (s): see description tag in firewalld.ipset5. type (s): see type attribute of ipset tag in firewalld.ipset5. options (a{ss}): dictionary of {option : value} . See options tag in firewalld.ipset5. entries (as): array of entries, see entry tag in firewalld.ipset5. Possible errors: INVALID_TYPE Signals Removed(s: name) Emitted when ipset with name has been removed. Renamed(s: name) Emitted when ipset has been renamed to name. Updated(s: name) Emitted when ipset with name has been updated. Properties builtin - b - (ro) True if ipset is build-in, false else. default - b - (ro) True if build-in ipset has default settings. False if it has been modified. Always False for not build-in ipsets. filename - s - (ro) Name (including .xml extension) of file where the configuration is stored. name - s - (ro) Name of ipset. path - s - (ro) Path to directory where the ipset configuration is stored. Should be either /usr/lib/firewalld/ipsets or /etc/firewalld/ipsets. org.fedoraproject.FirewallD1.config.zone Interface for permanent zone configuration, see also firewalld.zone5. Methods addForwardPort(s: port, s: protocol, s: toport, s: toaddr) → Nothing Permanently add (port, protocol, toport, toaddr) to list of forward ports of zone. See forward-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addForwardPort. Possible errors: ALREADY_ENABLED addIcmpBlock(s: icmptype) → Nothing Permanently add icmptype to list of icmp types blocked in zone. See icmp-block tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addIcmpBlock. Possible errors: ALREADY_ENABLED addIcmpBlock(s: icmptype) → Nothing Permanently add icmp block inversion to zone. See icmp-block-inversion tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addIcmpBlockInversion. Possible errors: ALREADY_ENABLED addInterface(s: interface) → Nothing Permanently add interface to list of interfaces bound to zone. See interface tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addInterface. Possible errors: ALREADY_ENABLED addMasquerade() → Nothing Permanently enable masquerading in zone. See masquerade tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addMasquerade. Possible errors: ALREADY_ENABLED addPort(s: port, s: protocol) → Nothing Permanently add (port, protocol) to list of ports of zone. See port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addPort. Possible errors: ALREADY_ENABLED addProtocol(s: protocol) → Nothing Permanently add protocol into zone. The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addProtocol. Possible errors: INVALID_PROTOCOL, ALREADY_ENABLED addRichRule(s: rule) → Nothing Permanently add rule to list of rich-language rules in zone. See rule tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addRichRule. Possible errors: ALREADY_ENABLED addService(s: service) → Nothing Permanently add service to list of services used in zone. See service tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addService. Possible errors: ALREADY_ENABLED addSource(s: source) → Nothing Permanently add source to list of source addresses bound to zone. See source tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addSource. Possible errors: ALREADY_ENABLED addSourcePort(s: port, s: protocol) → Nothing Permanently add (port, protocol) to list of source ports of zone. See source-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.addSourcePort. Possible errors: ALREADY_ENABLED getDescription() → s Get description of zone. See description tag in firewalld.zone5. getForwardPorts() → a(ssss) Get list of (port, protocol, toport, toaddr) defined in zone. See forward-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getForwardPorts. getIcmpBlockInversion() → b Get icmp block inversion flag of zone. See icmp-block-inversion tag in firewalld.zone5. getIcmpBlocks() → as Get list of icmp type names blocked in zone. See icmp-block tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getIcmpBlocks. getInterfaces() → as Get list of interfaces bound to zone. See interface tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getInterfaces. getMasquerade() → b Return whether masquerade is enabled in zone. This is the same as queryMasquerade() method. See masquerade tag in firewalld.zone5. getPorts() → a(ss) Get list of (port, protocol) defined in zone. See port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getPorts. getProtocols() → as Return array of protocols (s) previously enabled in zone. For getting runtime settings see org.fedoraproject.FirewallD1.zone.Methods.getProtocols. getRichRules() → as Get list of rich-language rules in zone. See rule tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getRichRules. getServices() → as Get list of service names used in zone. See service tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getServices. getSettings() → (sssbsasa(ss)asba(ssss)asasasasa(ss)) Return permanent settings of given zone. For getting runtime settings see org.fedoraproject.FirewallD1.Methods.getZoneSettings. Settings are in format: version, name, description, UNUSED, target, array of services, array of ports (port, protocol), array of icmp-blocks, masquerade, array of forward-ports (port, protocol, to-port, to-addr), array of interfaces, array of sources, array of rich rules, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of zone tag in firewalld.zone5. name (s): see short tag in firewalld.zone5. description (s): see description tag in firewalld.zone5. UNUSED (b): this boolean value is no longer used for anything. target (s): see target attribute of zone tag in firewalld.zone5. services (as): array of service names, see service tag in firewalld.zone5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.zone5. icmp-blocks (as): array of icmp-blocks. See icmp-block tag in firewalld.zone5. masquerade (b): see masquerade tag in firewalld.zone5. forward-ports (a(ssss)): array of (port, protocol, to-port, to-addr). See forward-port tag in firewalld.zone5. interfaces (as): array of interfaces. See interface tag in firewalld.zone5. source addresses (as): array of source addresses. See source tag in firewalld.zone5. rich rules (as): array of rich-language rules. See rule tag in firewalld.zone5. protocols (as): array of protocols. See protocol tag in firewalld.zone5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.zone5. getShort() → s Get name of zone. See short tag in firewalld.zone5. getSourcePorts() → a(ss) Get list of (port, protocol) defined in zone. See source-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getSourcePorts. getSources() → as Get list of source addresses bound to zone. See source tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.getSources. getTarget() → s Get target of zone. See target attribute of zone tag in firewalld.zone5. getVersion() → s Get version of zone. See version attribute of zone tag in firewalld.zone5. loadDefaults() → Nothing Load default settings for built-in zone. Possible errors: NO_DEFAULTS queryForwardPort(s: port, s: protocol, s: toport, s: toaddr) → b Return whether (port, protocol, toport, toaddr) is in list of forward ports of zone. See forward-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryForwardPort. queryIcmpBlock(s: icmptype) → b Return whether icmptype is in list of icmp types blocked in zone. See icmp-block tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryIcmpBlock. queryIcmpBlockInversion() → b Return whether icmp block inversion is in enabled in zone. See icmp-block-inversion tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryIcmpBlockInversion. queryInterface(s: interface) → b Return whether interface is in list of interfaces bound to zone. See interface tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryInterface. queryMasquerade() → b Return whether masquerade is enabled in zone. This is the same as getMasquerade() method. See masquerade tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryMasquerade. queryPort(s: port, s: protocol) → b Return whether (port, protocol) is in list of ports of zone. See port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryPort. queryProtocol(s: protocol) → b Return whether protocol has been added in zone. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryProtocol. Possible errors: INVALID_PROTOCOL queryRichRule(s: rule) → b Return whether rule is in list of rich-language rules in zone. See rule tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryRichRule. queryService(s: service) → b Return whether service is in list of services used in zone. See service tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.queryService. querySource(s: source) → b Return whether source is in list of source addresses bound to zone. See source tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.querySource. querySourcePort(s: port, s: protocol) → b Return whether (port, protocol) is in list of source ports of zone. See source-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.querySourcePort. remove() → Nothing Remove not built-in zone. Possible errors: BUILTIN_ZONE removeForwardPort(s: port, s: protocol, s: toport, s: toaddr) → Nothing Permanently remove (port, protocol, toport, toaddr) from list of forward ports of zone. See forward-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeForwardPort. Possible errors: NOT_ENABLED removeIcmpBlock(s: icmptype) → Nothing Permanently remove icmptype from list of icmp types blocked in zone. See icmp-block tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeIcmpBlock. Possible errors: NOT_ENABLED removeIcmpBlockInversion() → Nothing Permanently remove icmp block inversion from the zone. See icmp-block-inversion tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeIcmpBlockInversion. Possible errors: NOT_ENABLED removeInterface(s: interface) → Nothing Permanently remove interface from list of interfaces bound to zone. See interface tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeInterface. Possible errors: NOT_ENABLED removeMasquerade() → Nothing Permanently disable masquerading in zone. See masquerade tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeMasquerade. Possible errors: NOT_ENABLED removePort(s: port, s: protocol) → Nothing Permanently remove (port, protocol) from list of ports of zone. See port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removePort. Possible errors: NOT_ENABLED removeProtocol(s: protocol) → Nothing Permanently remove protocol from zone. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeProtocol. Possible errors: INVALID_PROTOCOL, NOT_ENABLED removeRichRule(s: rule) → Nothing Permanently remove rule from list of rich-language rules in zone. See rule tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeRichRule. Possible errors: NOT_ENABLED removeService(s: service) → Nothing Permanently remove service from list of services used in zone. See service tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeService. Possible errors: NOT_ENABLED removeSource(s: source) → Nothing Permanently remove source from list of source addresses bound to zone. See source tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeSource. Possible errors: NOT_ENABLED removeSourcePort(s: port, s: protocol) → Nothing Permanently remove (port, protocol) from list of source ports of zone. See source-port tag in firewalld.zone5. For runtime operation see org.fedoraproject.FirewallD1.zone.Methods.removeSourcePort. Possible errors: NOT_ENABLED rename(s: name) → Nothing Rename not built-in zone to name. Possible errors: BUILTIN_ZONE setDescription(s: description) → Nothing Permanently set description of zone to description. See description tag in firewalld.zone5. setForwardPorts(a(ssss): ports) → Nothing Permanently set forward ports of zone to list of (port, protocol, toport, toaddr). See forward-port tag in firewalld.zone5. setIcmpBlockInversion(b: flag) → Nothing Permanently set icmp block inversion flag of zone to flag. See icmp-block-inversion tag in firewalld.zone5. setIcmpBlocks(as: icmptypes) → Nothing Permanently set list of icmp types blocked in zone to icmptypes. See icmp-block tag in firewalld.zone5. setInterfaces(as: interfaces) → Nothing Permanently set list of interfaces bound to zone to interfaces. See interface tag in firewalld.zone5. setMasquerade(b: masquerade) → Nothing Permanently set masquerading in zone to masquerade. See masquerade tag in firewalld.zone5. setPorts(a(ss): ports) → Nothing Permanently set ports of zone to list of (port, protocol). See port tag in firewalld.zone5. setProtocols(as: protocols) → Nothing Permanently set list of protocols used in zone to protocols. See protocol tag in firewalld.zone5. setRichRules(as: rules) → Nothing Permanently set list of rich-language rules to rules. See rule tag in firewalld.zone5. setServices(as: services) → Nothing Permanently set list of services used in zone to services. See service tag in firewalld.zone5. setShort(s: short) → Nothing Permanently set name of zone to short. See short tag in firewalld.zone5. setSourcePorts(a(ss): ports) → Nothing Permanently set source-ports of zone to list of (port, protocol). See source-port tag in firewalld.zone5. setSources(as: sources) → Nothing Permanently set list of source addresses bound to zone to sources. See source tag in firewalld.zone5. setTarget(s: target) → Nothing Permanently set target of zone to target. See target attribute of zone tag in firewalld.zone5. setVersion(s: version) → Nothing Permanently set version of zone to version. See version attribute of zone tag in firewalld.zone5. update((sssbsasa(ss)asba(ssss)asasasasa(ss)): settings) → Nothing Update settings of zone to settings. Settings are in format: version, name, description, UNUSED, target, array of services, array of ports (port, protocol), array of icmp-blocks, masquerade, array of forward-ports (port, protocol, to-port, to-addr), array of interfaces, array of sources, array of rich rules, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of zone tag in firewalld.zone5. name (s): see short tag in firewalld.zone5. description (s): see description tag in firewalld.zone5. UNUSED (b): this boolean value is no longer used for anything. target (s): see target attribute of zone tag in firewalld.zone5. services (as): array of service names, see service tag in firewalld.zone5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.zone5. icmp-blocks (as): array of icmp-blocks. See icmp-block tag in firewalld.zone5. masquerade (b): see masquerade tag in firewalld.zone5. forward-ports (a(ssss)): array of (port, protocol, to-port, to-addr). See forward-port tag in firewalld.zone5. interfaces (as): array of interfaces. See interface tag in firewalld.zone5. source addresses (as): array of source addresses. See source tag in firewalld.zone5. rich rules (as): array of rich-language rules. See rule tag in firewalld.zone5. protocols (as): array of protocols. See protocol tag in firewalld.zone5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.zone5. Possible errors: INVALID_TYPE Signals Removed(s: name) Emitted when zone with name has been removed. Renamed(s: name) Emitted when zone has been renamed to name. Updated(s: name) Emitted when zone with name has been updated. Properties builtin - b - (ro) True if zone is build-in, false else. default - b - (ro) True if build-in zone has default settings. False if it has been modified. Always False for not build-in zones. filename - s - (ro) Name (including .xml extension) of file where the configuration is stored. name - s - (ro) Name of zone. path - s - (ro) Path to directory where the zone configuration is stored. Should be either /usr/lib/firewalld/zones or /etc/firewalld/zones. org.fedoraproject.FirewallD1.config.service Interface for permanent service configuration, see also firewalld.service5. Methods addModule(s: module) → Nothing Permanently add module to list of modules (netfilter kernel helpers) used in service. See module tag in firewalld.service5. Possible errors: ALREADY_ENABLED addPort(s: port, s: protocol) → Nothing Permanently add (port, protocol) to list of ports in service. See port tag in firewalld.service5. Possible errors: ALREADY_ENABLED addProtocol(s: protocol) → Nothing Permanently add protocol into zone. The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. See protocol tag in firewalld.service5. Possible errors: INVALID_PROTOCOL, ALREADY_ENABLED addSourcePort(s: port, s: protocol) → Nothing Permanently add (port, protocol) to list of source ports in service. See source-port tag in firewalld.service5. Possible errors: ALREADY_ENABLED getDescription() → s Get description of service. See description tag in firewalld.service5. getDestination(s: family) → s Get destination for IP family being either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. Possible errors: ALREADY_ENABLED getDestinations() → a{ss} Get list of destinations. Return value is a dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. getModules() → as Get list of modules (netfilter kernel helpers) used in service. See module tag in firewalld.service5. getPorts() → a(ss) Get list of (port, protocol) defined in service. See port tag in firewalld.service5. getProtocols() → as Return array of protocols (s) defined in service. See protocol tag in firewalld.service5. getSettings() → (sssa(ss)asa{ss}asa(ss)) Return permanent settings of a service. For getting runtime settings see org.fedoraproject.FirewallD1.Methods.getServiceSettings. Settings are in format: version, name, description, array of ports (port, protocol), array of module names, dictionary of destinations, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of service tag in firewalld.service5. name (s): see short tag in firewalld.service5. description (s): see description tag in firewalld.service5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.service5. module names (as): array of kernel netfilter helpers, see module tag in firewalld.service5. destinations (a{ss}): dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. protocols (as): array of protocols. See protocol tag in firewalld.service5. source-ports (a(ss)): array of port and protocol pairs. See source-port tag in firewalld.service5. getShort() → s Get name of service. See short tag in firewalld.service5. getSourcePorts() → a(ss) Get list of (port, protocol) defined in service. See source-port tag in firewalld.service5. getVersion() → s Get version of service. See version attribute of service tag in firewalld.service5. loadDefaults() → Nothing Load default settings for built-in service. Possible errors: NO_DEFAULTS queryDestination(s: family, s: address) → b Return whether a destination is in dictionary of destinations of this service. destination is in format: (IP family, IP address) where IP family can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. queryModule(s: module) → b Return whether module is in list of modules (netfilter kernel helpers) used in service. See module tag in firewalld.service5. queryPort(s: port, s: protocol) → b Return whether (port, protocol) is in list of ports in service. See port tag in firewalld.service5. queryProtocol(s: protocol) → b Return whether protocol is in list of protocols in service. See protocol tag in firewalld.service5. querySourcePort(s: port, s: protocol) → b Return whether (port, protocol) is in list of source ports in service. See source-port tag in firewalld.service5. remove() → Nothing Remove not built-in service. Possible errors: BUILTIN_SERVICE removeDestination(s: family) → Nothing Permanently remove a destination with family ('ipv4' or 'ipv6') from service. See destination tag in firewalld.service5. Possible errors: NOT_ENABLED removeModule(s: module) → Nothing Permanently remove module from list of modules (netfilter kernel helpers) used in service. See module tag in firewalld.service5. Possible errors: NOT_ENABLED removePort(s: port, s: protocol) → Nothing Permanently remove (port, protocol) from list of ports in service. See port tag in firewalld.service5. Possible errors: NOT_ENABLED removeProtocol(s: protocol) → Nothing Permanently remove protocol from list of protocols in service. See protocol tag in firewalld.service5. Possible errors: NOT_ENABLED removeSourcePort(s: port, s: protocol) → Nothing Permanently remove (port, protocol) from list of source ports in service. See source-port tag in firewalld.service5. Possible errors: NOT_ENABLED rename(s: name) → Nothing Rename not built-in service to name. Possible errors: BUILTIN_SERVICE setDescription(s: description) → Nothing Permanently set description of service to description. See description tag in firewalld.service5. setDestination(s: family, s: address) → Nothing Permanently set a destination address. destination is in format: (IP family, IP address) where IP family can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. Possible errors: ALREADY_ENABLED setDestinations(a{ss}: destinations) → Nothing Permanently set destinations of service to destinations, which is a dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. setModules(as: modules) → Nothing Permanently set list of modules (netfilter kernel helpers) used in service to modules. See module tag in firewalld.service5. setPorts(a(ss): ports) → Nothing Permanently set ports of service to list of (port, protocol). See port tag in firewalld.service5. setProtocols(as: protocols) → Nothing Permanently set protocols of service to list of protocols. See protocol tag in firewalld.service5. setShort(s: short) → Nothing Permanently set name of service to short. See short tag in firewalld.service5. setSourcePorts(a(ss): ports) → Nothing Permanently set source-ports of service to list of (port, protocol). See source-port tag in firewalld.service5. setVersion(s: version) → Nothing Permanently set version of service to version. See version attribute of service tag in firewalld.service5. update((sssa(ss)asa{ss}asa(ss)): settings) → Nothing Update settings of service to settings. Settings are in format: version, name, description, array of ports (port, protocol), array of module names, dictionary of destinations, array of protocols and array of source-ports (port, protocol). version (s): see version attribute of service tag in firewalld.service5. name (s): see short tag in firewalld.service5. description (s): see description tag in firewalld.service5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.service5. module names (as): array of kernel netfilter helpers, see module tag in firewalld.service5. destinations (a{ss}): dictionary of {IP family : IP address} where 'IP family' key can be either 'ipv4' or 'ipv6'. See destination tag in firewalld.service5. protocols (as): array of protocols. See protocol tag in firewalld.service5. Possible errors: INVALID_TYPE Signals Removed(s: name) Emitted when service with name has been removed. Renamed(s: name) Emitted when service has been renamed to name. Updated(s: name) Emitted when service with name has been updated. Properties builtin - b - (ro) True if service is build-in, false else. default - b - (ro) True if build-in service has default settings. False if it has been modified. Always False for not build-in services. filename - s - (ro) Name (including .xml extension) of file where the configuration is stored. name - s - (ro) Name of service. path - s - (ro) Path to directory where the configuration is stored. Should be either /usr/lib/firewalld/services or /etc/firewalld/services. org.fedoraproject.FirewallD1.config.helper Interface for permanent helper configuration, see also firewalld.helper5. Methods addPort(s: port, s: protocol) → Nothing Permanently add (port, protocol) to list of ports in helper. See port tag in firewalld.helper5. Possible errors: ALREADY_ENABLED getDescription() → s Get description of helper. See description tag in firewalld.helper5. getFamily() → s Get family being 'ipv4', 'ipv6' or empty for both. See family tag in firewalld.helper5. getModule() → s Get modules (netfilter kernel helpers) used in helper. See module tag in firewalld.helper5. getPorts() → a(ss) Get list of (port, protocol) defined in helper. See port tag in firewalld.helper5. getSettings() → (sssssa(ss)) Return permanent settings of a helper. For getting runtime settings see org.fedoraproject.FirewallD1.Methods.getHelperSettings. Settings are in format: version, name, description, family, module, array of ports (port, protocol). version (s): see version attribute of helper tag in firewalld.helper5. name (s): see short tag in firewalld.helper5. description (s): see description tag in firewalld.helper5. family (s): see family tag in firewalld.helper5. module (s): see module tag in firewalld.helper5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.helper5. getShort() → s Get name of helper. See short tag in firewalld.helper5. getVersion() → s Get version of helper. See version attribute of helper tag in firewalld.helper5. loadDefaults() → Nothing Load default settings for built-in helper. Possible errors: NO_DEFAULTS queryFamily(s: module) → b Return whether family is set for helper. See family tag in firewalld.helper5. queryModule(s: module) → b Return whether module (netfilter kernel helpers) is used in helper. See module tag in firewalld.helper5. queryPort(s: port, s: protocol) → b Return whether (port, protocol) is in list of ports in helper. See port tag in firewalld.helper5. remove() → Nothing Remove not built-in helper. Possible errors: BUILTIN_HELPER removePort(s: port, s: protocol) → Nothing Permanently remove (port, protocol) from list of ports in helper. See port tag in firewalld.helper5. Possible errors: NOT_ENABLED rename(s: name) → Nothing Rename not built-in helper to name. Possible errors: BUILTIN_HELPER setDescription(s: description) → Nothing Permanently set description of helper to description. See description tag in firewalld.helper5. setFamily(s: family) → Nothing Permanently set family of helper to family. See family tag in firewalld.helper5. setModule(s: module) → Nothing Permanently set module of helper to description. See module tag in firewalld.helper5. setPorts(a(ss): ports) → Nothing Permanently set ports of helper to list of (port, protocol). See port tag in firewalld.helper5. setShort(s: short) → Nothing Permanently set name of helper to short. See short tag in firewalld.helper5. setVersion(s: version) → Nothing Permanently set version of helper to version. See version attribute of helper tag in firewalld.helper5. update((sssssa(ss)): settings) → Nothing Update settings of helper to settings. Settings are in format: version, name, description, family, module and array of ports. version (s): see version attribute of helper tag in firewalld.helper5. name (s): see short tag in firewalld.helper5. description (s): see description tag in firewalld.helper5. family (s): see family tag in firewalld.helper5. module (s): see module tag in firewalld.helper5. ports (a(ss)): array of port and protocol pairs. See port tag in firewalld.helper5. Possible errors: INVALID_HELPER Signals Removed(s: name) Emitted when helper with name has been removed. Renamed(s: name) Emitted when helper has been renamed to name. Updated(s: name) Emitted when helper with name has been updated. Properties builtin - b - (ro) True if helper is build-in, false else. default - b - (ro) True if build-in helper has default settings. False if it has been modified. Always False for not build-in helpers. filename - s - (ro) Name (including .xml extension) of file where the configuration is stored. name - s - (ro) Name of helper. path - s - (ro) Path to directory where the configuration is stored. Should be either /usr/lib/firewalld/helpers or /etc/firewalld/helpers. org.fedoraproject.FirewallD1.config.icmptype Interface for permanent icmp type configuration, see also firewalld.icmptype5. Methods addDestination(s: destination) → Nothing Permanently add a destination ('ipv4' or 'ipv6') to list of destinations of this icmp type. See destination tag in firewalld.icmptype5. Possible errors: ALREADY_ENABLED getDescription() → s Get description of icmp type. See description tag in firewalld.icmptype5. getDestinations() → as Get list of destinations. See destination tag in firewalld.icmptype5. getSettings() → (sssas) Return permanent settings of icmp type. For getting runtime settings see org.fedoraproject.FirewallD1.Methods.getIcmpTypeSettings. Settings are in format: version, name, description, array of destinations. version (s): see version attribute of icmptype tag in firewalld.icmptype5. name (s): see short tag in firewalld.icmptype5. description (s): see description tag in firewalld.icmptype5. destinations (as): array, either empty or containing strings 'ipv4' and/or 'ipv6', see destination tag in firewalld.icmptype5. getShort() → s Get name of icmp type. See short tag in firewalld.icmptype5. getVersion() → s Get version of icmp type. See version attribute of icmptype tag in firewalld.icmptype5. loadDefaults() → Nothing Load default settings for built-in icmp type. Possible errors: NO_DEFAULTS queryDestination(s: destination) → b Return whether a destination ('ipv4' or 'ipv6') is in list of destinations of this icmp type. See destination tag in firewalld.icmptype5. remove() → Nothing Remove not built-in icmp type. Possible errors: BUILTIN_ICMPTYPE removeDestination(s: destination) → Nothing Permanently remove a destination ('ipv4' or 'ipv6') from list of destinations of this icmp type. See destination tag in firewalld.icmptype5. Possible errors: NOT_ENABLED rename(s: name) → Nothing Rename not built-in icmp type to name. Possible errors: BUILTIN_ICMPTYPE setDescription(s: description) → Nothing Permanently set description of icmp type to description. See description tag in firewalld.icmptype5. setDestinations(as: destinations) → Nothing Permanently set destinations of icmp type to destinations, which is array, either empty or containing strings 'ipv4' and/or 'ipv6'. See destination tag in firewalld.icmptype5. setShort(s: short) → Nothing Permanently set name of icmp type to short. See short tag in firewalld.icmptype5. setVersion(s: version) → Nothing Permanently set version of icmp type to version. See version attribute of icmptype tag in firewalld.icmptype5. update((sssas): settings) → Nothing Update permanent settings of icmp type to settings. Settings are in format: version, name, description, array of destinations. version (s): see version attribute of icmptype tag in firewalld.icmptype5. name (s): see short tag in firewalld.icmptype5. description (s): see description tag in firewalld.icmptype5. destinations (as): array, either empty or containing strings 'ipv4' and/or 'ipv6', see destination tag in firewalld.icmptype5. Signals Removed(s: name) Emitted when icmp type with name has been removed. Renamed(s: name) Emitted when icmp type has been renamed to name. Updated(s: name) Emitted when icmp type with name has been updated. Properties builtin - b - (ro) True if icmptype is build-in, false else. default - b - (ro) True if build-in icmp type has default settings. False if it has been modified. Always False for not build-in zones. filename - s - (ro) Name (including .xml extension) of file where the configuration is stored. name - s - (ro) Name of icmp type. path - s - (ro) Path to directory where the icmp type configuration is stored. Should be either /usr/lib/firewalld/icmptypes or /etc/firewalld/icmptypes. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.direct.xml000066400000000000000000000224121320241217000211360ustar00rootroot00000000000000 ]> firewalld.direct firewalld &authors; firewalld.direct 5 firewalld.direct firewalld direct configuration file /firewalld/direct.xml Description Direct configuration gives a more direct access to the firewall. It requires user to know basic ip(6)tables/ebtables concepts, i.e. table (filter/mangle/nat/...), chain (INPUT/OUTPUT/FORWARD/...), commands (-A/-D/-I/...), parameters (-p/-s/-d/-j/...) and targets (ACCEPT/DROP/REJECT/...). Direct configuration should be used only as a last resort when it's not possible to use firewalld.zone5. See also Direct Options in firewall-cmd1. A firewalld direct configuration file contains informations about permanent direct chains, rules and passthrough ... This is the structure of a direct configuration file: <?xml version="1.0" encoding="utf-8"?> <direct> [ <chain ipv="ipv4|ipv6|eb" table="table" chain="chain"/> ] [ <rule ipv="ipv4|ipv6|eb" table="table" chain="chain" priority="priority"> args </rule> ] [ <passthrough ipv="ipv4|ipv6|eb"> args </passthrough> ] </direct> direct The mandatory direct start and end tag defines the direct. This tag can only be used once in a direct configuration file. There are no attributes for direct. chain Is an optional empty-element tag and can be used several times. It can be used to define names for additional chains. A chain entry has exactly three attributes: ipv="ipv4|ipv6|eb" The IP family where the chain will be created. This can be either ipv4, ipv6 or eb. table="table" The table name where the chain will be created. This can be one of the tables that can be used for iptables, ip6tables or ebtables. For the possible values, see TABLES section in the iptables, ip6tables or ebtables man pages. chain="chain" The name of the chain, that will be created. Please make sure that there is no other chain with this name already. Please remember to add a rule or passthrough rule with an or option to connect the chain to another one. rule Is an optional element tag and can be used several times. It can be used to add rules to a built-in or added chain. A rule entry has exactly four attributes: ipv="ipv4|ipv6|eb" The IP family where the rule will be added. This can be either ipv4, ipv6 or eb. table="table" The table name where the rule will be added. This can be one of the tables that can be used for iptables, ip6tables or ebtables. For the possible values, see TABLES section in the iptables, ip6tables or ebtables man pages. chain="chain" The name of the chain where the rule will be added. This can be either a built-in chain or a chain that has been created with the chain tag. If the chain name is a built-in chain, then the rule will be added to chain_direct, else the supplied chain name is used. chain_direct is created internally for all built-in chains to make sure that the added rules do not conflict with the rules created by firewalld. priority="priority" The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. The args can be any arguments of iptables or ip6tables, that do not conflict with the table or chain attributes. passthrough Is an optional element tag and can be used several times. It can be used to add rules to a built-in or added chain. A rule entry has exactly one attribute: ipv="ipv4|ipv6|eb" The IP family where the passthrough rule will be added. This can be either ipv4, ipv6 or eb. The args can be any arguments of iptables or ip6tables. The passthrough rule will be added to the chain directly. There is no mechanism like for the direct above. The user of the passthrough rule has to make sure that there will be no conflict with the rules created by firewalld. Example Blacklisting of the networks 192.168.1.0/24 and 192.168.5.0/24 with logging and dropping early in the raw table: <?xml version="1.0" encoding="utf-8"?> <direct> <chain ipv="ipv4" table="raw" chain="blacklist"/> <rule ipv="ipv4" table="raw" chain="PREROUTING" priority="0">-s 192.168.1.0/24 -j blacklist</rule> <rule ipv="ipv4" table="raw" chain="PREROUTING" priority="1">-s 192.168.5.0/24 -j blacklist</rule> <rule ipv="ipv4" table="raw" chain="blacklist" priority="0">-m limit --limit 1/min -j LOG --log-prefix "blacklisted: "</rule> <rule ipv="ipv4" table="raw" chain="blacklist" priority="1">-j DROP</rule> </direct> &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.helper.xml000066400000000000000000000127221320241217000211460ustar00rootroot00000000000000 ]> firewalld.helper firewalld &authors; firewalld.helper 5 firewalld.helper firewalld helper configuration files /firewalld/helpers/helper.xml /lib/firewalld/helpers/helper.xml Description A firewalld helper configuration file provides the information of a helper entry for firewalld. The most important configuration options are ports, family and module. This example configuration file shows the structure of a helper configuration file: <?xml version="1.0" encoding="utf-8"?> <helper module="nf_conntrack_module" [family="ipv4|ipv6"]> <short>short</short> <description>description</description> <port portid[-portid]" protocol="tcp|udp|sctp|dccp"/> </helper> Options The config can contain these tags and attributes. Some of them are mandatory, others optional. helper The mandatory helper start and end tag defines the helper. This tag can only be used once in a helper configuration file. There is one mandatory and also optional attributes for helper: module="string" The mandatory module of the helper. This is one of the netfilter conntrack helper modules. The name starts with nf_conntrack_. family="ipv4|ipv6" The optional family of the helper. This can be one of these ipv types: ipv4 or ipv6. If the family is not specified, then the helper is usable for IPv4 and IPv6. version="string" To give the helper a version. short Is an optional start and end tag and is used to give an icmptype a more readable name. description Is an optional start and end tag to have a description for a icmptype. port Is an mandatory empty-element tag and can be used several times to have more than one port entry. All attributes of a port entry are mandatory: port="string" The port string can be a single port number or a port range portid-portid or also empty to match a protocol only. protocol="string" The protocol value can either be , , or . &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.icmptype.xml000066400000000000000000000104321320241217000215150ustar00rootroot00000000000000 ]> firewalld.icmptype firewalld &authors; firewalld.icmptype 5 firewalld.icmptype firewalld icmptype configuration files /firewalld/icmptypes/icmptype.xml /lib/firewalld/icmptypes/icmptype.xml Description A firewalld icmptype configuration file provides the information for an Internet Control Message Protocol (ICMP) type for firewalld. This example configuration file shows the structure of an icmptype configuration file: <?xml version="1.0" encoding="utf-8"?> <icmptype> <short>My Icmptype</short> <description>description</description> <destination ipv4="yes" ipv6="yes"/> </icmptype> Options The config can contain these tags and attributes. Some of them are mandatory, others optional. icmptype The mandatory icmptype start and end tag defines the icmptype. This tag can only be used once in an icmptype configuration file. This tag has optional attributes: version="string" To give the icmptype a version. short Is an optional start and end tag and is used to give an icmptype a more readable name. description Is an optional start and end tag to have a description for a icmptype. destination Is an optional empty-element tag and can be used only once. The destination tag specifies if an icmptype entry is available for IPv4 and/or IPv6. The default is IPv4 and IPv6, where this tag can be missing. ipv4="bool" Describes if the icmptype is available for IPv4. ipv6="bool" Describes if the icmptype is available for IPv6. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.ipset.xml000066400000000000000000000123121320241217000210060ustar00rootroot00000000000000 ]> firewalld.ipset firewalld &authors; firewalld.ipset 5 firewalld.ipset firewalld ipset configuration files /firewalld/ipsets/ipset.xml /lib/firewalld/ipsets/ipset.xml Description A firewalld ipset configuration file provides the information of an ip set for firewalld. The most important configuration options are type, option and entry. This example configuration file shows the structure of an ipset configuration file: <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:ip"> <short>My Ipset</short> <description>description</description> <entry>1.2.3.4</entry> <entry>1.2.3.5</entry> <entry>1.2.3.6</entry> </ipset> Options The config can contain these tags and attributes. Some of them are mandatory, others optional. ipset The mandatory ipset start and end tag defines the ipset. This tag can only be used once in a ipset configuration file. There is one mandatory and also optional attributes for ipsets: type="string" The mandatory type of the ipset. To get the list of supported types, use firewall-cmd --get-ipset-types. version="string" To give the ipset a version. short Is an optional start and end tag and is used to give an ipset a more readable name. description Is an optional start and end tag to have a description for a ipset. option Is an optional empty-element tag and can be used several times to have more than one option. Mostly all attributes of an option entry are mandatory: name="string" The mandatory option name string. value="string" The optional value of the option. The supported options are: family: "inet"|"inet6", timeout: integer, hashsize: integer, maxelem: integer. For more information on these options, please have a look at the ipset documentation. entry Is an optional start and end tag and can be used several times to have more than one entry entry. An entry entry does not have attributes. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.lockdown-whitelist.xml000066400000000000000000000132451320241217000235220ustar00rootroot00000000000000 ]> firewalld.lockdown-whitelist firewalld &authors; firewalld.lockdown-whitelist 5 firewalld.lockdown-whitelist firewalld lockdown whitelist configuration file /firewalld/lockdown-whitelists.xml Description The firewalld lockdown-whitelist configuration file contains the selinux contexts, commands, users and user ids that are white-listed when firewalld lockdown feature is enabled (see firewalld.conf5 and firewall-cmd1). This example configuration file shows the structure of an lockdown-whitelist file: <?xml version="1.0" encoding="utf-8"?> <whitelist> <selinux context="selinuxcontext"/> <command name="commandline[*]"/> <user {name="username|id="userid"}/> </whitelist> Options The config can contain these tags and attributes. Some of them are mandatory, others optional. whitelist The mandatory whitelist start and end tag defines the lockdown-whitelist. This tag can only be used once in a lockdown-whitelist configuration file. There are no attributes for this. selinux Is an optional empty-element tag and can be used several times to have more than one selinux contexts entries. A selinux entry has exactly one attribute: context="string" The context is the security (SELinux) context of a running application or service. To get the context of a running application use ps -e --context and search for the application that should be white-listed. Warning: If the context of an application is unconfined, then this will open access for more than the desired application. command Is an optional empty-element tag and can be used several times to have more than one command entry. A command entry has exactly one attribute: name="string" The command string is a complete command line including path and also attributes. If a command entry ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. Commands for user root and others is not always the same, the used path depends on the use of the PATH environment variable. user Is an optional empty-element tag and can be used several times to white-list more than one user. A user entry has exactly one attribute of these: name="string" The user with the name string will be white-listed. id="integer" The user with the id userid will be white-listed. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.richlanguage.xml000066400000000000000000000415461320241217000223260ustar00rootroot00000000000000 ]> firewalld.richlanguage firewalld &authors; firewalld.richlanguage 5 firewalld.richlanguage Rich Language Documentation Description With the rich language more complex firewall rules can be created in an easy to understand way. The language uses keywords with values and is an abstract representation of ip*tables rules. The rich language extends the current zone elements (service, port, icmp-block, icmp-type, masquerade, forward-port and source-port) with additional source and destination addresses, logging, actions and limits for logs and actions. This page describes the rich language used in the command line client and D-Bus interface. For information about the rich language representation used in the zone configuration files, please have a look at firewalld.zone5. A rule is part of a zone. One zone can contain several rules. If some rules interact/contradict, the first rule that matches "wins". General rule structure rule [source] [destination] service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port [log] [audit] [accept|reject|drop|mark] The complete rule is provided as a single line string. A destination is allowed here as long as it does not conflict with the destination of a service. Rule structure for source black or white listing rule source [log] [audit] accept|reject|drop|mark This is used to grant or limit access from a source to this machine or machines that are reachable by this machine. A destination is not allowed here. Important information about element options: Options for elements in a rule need to be added exactly after the element. If the option is placed somewhere else it might be used for another element as far as it matches the options of the other element or will result in a rule error. Rule rule [family="ipv4|ipv6"] If the rule family is provided, it can be either "ipv4" or "ipv6", which limits the rule to IPv4 or IPv6. If the rule family is not provided, the rule will be added for IPv4 and IPv6. If source or destination addresses are used in a rule, then the rule family need to be provided. This is also the case for port/packet forwarding. Source source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset" With the source address the origin of a connection attempt can be limited to the source address. An address is either a single IP address, or a network IP address, a MAC address or an IPSet. The address has to match the rule family (IPv4/IPv6). Subnet mask is expressed in either dot-decimal (/x.x.x.x) or prefix (/x) notations for IPv4, and in prefix notation (/x) for IPv6 network addresses. It is possible to invert the sense of an address by adding before . All but the specified address will match then. Destination destination [not] address="address[/mask]" With the destination address the target can be limited to the destination address. The destination address is using the same syntax as the source address. The use of source and destination addresses is optional and the use of a destination addresses is not possible with all elements. This depends on the use of destination addresses for example in service entries. Service service name="service name" The service service name will be added to the rule. The service name is one of the firewalld provided services. To get a list of the supported services, use firewall-cmd --get-services. If a service provides a destination address, it will conflict with a destination address in the rule and will result in an error. The services using destination addresses internally are mostly services using multicast. Port port port="port value" protocol="tcp|udp" The port port value can either be a single port number portid or a port range portid-portid. The protocol can either be tcp or udp. Protocol protocol value="protocol value" The protocol value can be either a protocol id number or a protocol name. For allowed protocol entries, please have a look at /etc/protocols. ICMP-Block icmp-block name="icmptype name" The icmptype is the one of the icmp types firewalld supports. To get a listing of supported icmp types: firewall-cmd --get-icmptypes It is not allowed to specify an action here. icmp-block uses the action reject internally. Masquerade masquerade Turn on masquerading in the rule. A source and also a destination address can be provided to limit masquerading to this area. It is not allowed to specify an action here. ICMP-Type icmp-type name="icmptype name" The icmptype is the one of the icmp types firewalld supports. To get a listing of supported icmp types: firewall-cmd --get-icmptypes Forward-Port forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address" Forward port/packets from local port value with protocol "tcp" or "udp" to either another port locally or to another machine or to another port on another machine. The port value can either be a single port number or a port range portid-portid. The is an IP address. It is not allowed to specify an action here. forward-port uses the action accept internally. Source-Port source-port port="port value" protocol="tcp|udp" The source-port port value can either be a single port number portid or a port range portid-portid. The protocol can either be tcp or udp. Log log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"] Log new connection attempts to the rule with kernel logging for example in syslog. You can define a prefix text that will be added to the log message as a prefix. Log level can be one of "", "", "", "", "", "", "" or "", where default (i.e. if there's no one specified) is "". See syslog3 for description of levels. See Limit section for description of tag. Audit audit [limit value="rate/duration"] Audit provides an alternative way for logging using audit records sent to the service auditd. Audit type will be discovered from the rule action automatically. Use of audit is optional. See Limit section for description of tag. Action An action can be one of , , or . The rule can either contain an element or also a source only. If the rule contains an element, then new connection matching the element will be handled with the action. If the rule does not contain an element, then everything from the source address will be handled with the action. accept [limit value="rate/duration"] reject [type="reject type"] [limit value="rate/duration"] drop [limit value="rate/duration"] mark set="mark[/mask]" [limit value="rate/duration"] With all new connection attempts will be granted. With they will not be accepted and their source will get a reject ICMP(v6) message. The reject type can be set to specify appropriate ICMP(v6) error message. For valid reject types see in iptables-extensions8 man page. Because reject types are different for IPv4 and IPv6 you have to specify rule family when using reject type. With all packets will be dropped immediately, there is no information sent to the source. With all packets will be marked in the chain in the table with the mark and mask combination. See Limit section for description of tag. Limit limit value="rate/duration" It is possible to limit Log, Audit and Action. A rule using this tag will match until this limit is reached. The rate is a natural positive number [1, ..] The duration is of "s", "m", "h", "d". "s" means seconds, "m" minutes, "h" hours and "d" days. Maximum limit value is "2/d", which means at maximum two matches per day. Information about logging and actions Logging can be done with the log and also with audit. A new chain is added to all zones: zone_log. This will be jumped into before the deny chain to be able to have a proper ordering. The rules or parts of them are placed in separate chains according to the action of the rule: zone_log zone_deny zone_allow Then all logging rules will be placed in the zone_log chain, which will be walked first. All reject and drop rules will be placed in the zone_deny chain, which will be walked after the log chain. All accept rules will be placed in the zone_allow chain, which will be walked after the deny chain. If a rule contains log and also deny or allow actions, the parts are placed in the matching chains. Examples These are examples of how to specify rich language rules. This format (i.e. one string that specifies whole rule) uses for example (see firewall-cmd1) as well as D-Bus interface. Example 1 Enable new IPv4 and IPv6 connections for protocol 'ah' rule protocol value="ah" accept Example 2 Allow new IPv4 and IPv6 connections for service ftp and log 1 per minute using audit rule service name="ftp" log limit value="1/m" audit accept Example 3 Allow new IPv4 connections from address 192.168.0.0/24 for service tftp and log 1 per minutes using syslog rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept Example 4 New IPv6 connections from 1:2:3:4:6:: to service radius are all rejected and logged at a rate of 3 per minute. New IPv6 connections from other sources are accepted. rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject rule family="ipv6" service name="radius" accept Example 5 Forward IPv6 port/packets receiving from 1:2:3:4:6:: on port 4011 with protocol tcp to 1::2:3:4:7 on port 4012 rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011" Example 6 White-list source address to allow all connections from 192.168.2.2 rule family="ipv4" source address="192.168.2.2" accept Example 7 Black-list source address to reject all connections from 192.168.2.3 rule family="ipv4" source address="192.168.2.3" reject type="icmp-admin-prohibited" Example 8 Black-list source address to drop all connections from 192.168.2.4 rule family="ipv4" source address="192.168.2.4" drop &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.service.xml000066400000000000000000000205501320241217000213250ustar00rootroot00000000000000 ]> firewalld.service firewalld &authors; firewalld.service 5 firewalld.service firewalld service configuration files /firewalld/services/service.xml /lib/firewalld/services/service.xml Description A firewalld service configuration file provides the information of a service entry for firewalld. The most important configuration options are ports, modules and destination addresses. This example configuration file shows the structure of a service configuration file: <?xml version="1.0" encoding="utf-8"?> <service> <short>My Service</short> <description>description</description> <port port="137" protocol="tcp"/> <protocol value="igmp"/> <module name="nf_conntrack_netbios_ns"/> <destination ipv4="224.0.0.251" ipv6="ff02::fb"/> </service> Options The config can contain these tags and attributes. Some of them are mandatory, others optional. service The mandatory service start and end tag defines the service. This tag can only be used once in a service configuration file. There are optional attributes for services: version="string" To give the service a version. short Is an optional start and end tag and is used to give an icmptype a more readable name. description Is an optional start and end tag to have a description for a icmptype. port Is an optional empty-element tag and can be used several times to have more than one port entry. All attributes of a port entry are mandatory: port="string" The port string can be a single port number or a port range portid-portid or also empty to match a protocol only. protocol="string" The protocol value can either be tcp, udp, sctp or dccp. For compatibility with older firewalld versions, it is possible to add protocols with the port option where the port is empty. With the addition of native protocol support in the service, this it not needed anymore. These entries will automatically be converted to protocols. With the next modification of the service file, the enries will be listed as protocols. protocol Is an optional empty-element tag and can be used several times to have more than one protocol entry. A protocol entry has exactly one attribute: value="string" The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. source-port Is an optional empty-element tag and can be used several times to have more than one source port entry. All attributes of a source port entry are mandatory: port="string" The port string can be a single port number or a port range portid-portid. protocol="string" The protocol value can either be tcp, udp, sctp or dccp. module Is an optional empty-element tag and can be used several times to enable more than one netfilter kernel helper for the service. A module entry has exactly one attribute: name="string" Defines the name of the kernel netfilter helper as a string. destination Is an optional empty-element tag and can be used only once. The destination specifies the destination network as a network IP address (optional with /mask), or a plain IP address. The use of hostnames is not recommended, because these will only be resolved at service activation and transmitted to the kernel. For more information in this element, please have a look at in iptables8 and ip6tables8. ipv4="address[/mask]" The IPv4 destination address with optional mask. ipv6="address[/mask]" The IPv6 destination address with optional mask. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.xml000066400000000000000000000246711320241217000176760ustar00rootroot00000000000000 ]> firewalld firewalld &authors; firewalld 1 firewalld Dynamic Firewall Manager firewalld OPTIONS Description firewalld provides a dynamically managed firewall with support for network/firewall zones to define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall settings and for ethernet bridges and has a separation of runtime and permanent configuration options. It also supports an interface for services or applications to add firewall rules directly. Options These are the command line options of firewalld: Prints a short help text and exists. =level Set the debug level for firewalld to level. The range of the debug level is 1 (lowest level) to 10 (highest level). The debug output will be written to the firewalld log file /var/log/firewalld. Print garbage collector leak information. The collector runs every 10 seconds and if there are leaks, it prints information about the leaks. Turn off daemon forking. Force firewalld to run as a foreground process instead of as a daemon in the background. Disable writing pid file. By default the program will write a pid file. If the program is invoked with this option it will not check for an existing server process. Concepts firewalld has a D-Bus interface for firewall configuration of services and applications. It also has a command line client for the user. Services or applications already using D-Bus can request changes to the firewall with the D-Bus interface directly. For more information on the firewalld D-Bus interface, please have a look at firewalld.dbus5. firewalld provides support for zones, predefined services and ICMP types and has a separation of runtime and permanent configuration options. Permanent configuration is loaded from XML files in /usr/lib/firewalld or /etc/firewalld (see ). If NetworkManager is not in use and firewalld gets started after the network is already up, the connections and manually created interfaces are not bound to the zone specified in the ifcfg file. The interfaces will automatically be handled by the default zone. firewalld will also not get notified about network device renames. All this also applies to interfaces that are not controlled by NetworkManager if NM_CONTROLLED=no is set. You can add these interfaces to a zone with firewall-cmd [--permanent] --zone=zone --add-interface=interface. If there is a /etc/sysconfig/network-scripts/ifcfg-interface file, firewalld tries to change the ZONE=zone setting in this file. If firewalld gets reloaded, it will restore the interface bindings that were in place before reloading to keep interface bindings stable in the case of NetworkManager uncontrolled interfaces. This mechanism is not possible in the case of a firewalld service restart. It is essential to keep the ZONE= setting in the ifcfg file consistent to the binding in firewalld in the case of NetworkManager uncontrolled interfaces. Zones A network or firewall zone defines the trust level of the interface used for a connection. There are several pre-defined zones provided by firewalld. Zone configuration options and generic information about zones are described in firewalld.zone5 Services A service can be a list of local ports, protocols and destinations and additionally also a list of firewall helper modules automatically loaded if a service is enabled. Service configuration options and generic information about services are described in firewalld.service5. The use of predefined services makes it easier for the user to enable and disable access to a service. ICMP types The Internet Control Message Protocol (ICMP) is used to exchange information and also error messages in the Internet Protocol (IP). ICMP types can be used in firewalld to limit the exchange of these messages. For more information, please have a look at firewalld.icmptype5. Runtime configuration Runtime configuration is the actual active configuration and is not permanent. After reload/restart of the service or a system reboot, runtime settings will be gone if they haven't been also in permanent configuration. Permanent configuration The permanent configuration is stored in config files and will be loaded and become new runtime configuration with every machine boot or service reload/restart. Direct interface The direct interface is mainly used by services or applications to add specific firewall rules. It requires basic knowledge of ip(6)tables concepts (tables, chains, commands, parameters, targets). Directories firewalld supports two configuration directories: Default/Fallback configuration in <filename class="directory">/usr/lib/firewalld</filename> This directory contains the default and fallback configuration provided by firewalld for icmptypes, services and zones. The files provided with the firewalld package should not get changed and the changes are gone with an update of the firewalld package. Additional , and can be provided with packages or by creating files. System configuration settings in <filename class="directory">/etc/firewalld</filename> The system or user configuration stored here is either created by the system administrator or by customization with the configuration interface of firewalld or by hand. The files will overload the default configuration files. To manually change settings of pre-defined icmptypes, zones or services, copy the file from the default configuration directory to the corresponding directory in the system configuration directory and change it accordingly. For more information on icmptypes, please have a look at the firewalld.icmptype5 man page, for services at firewalld.service5 and for zones at firewalld.zone5. SIGNALS Currently only SIGHUP is supported. SIGHUP Reloads the complete firewall configuration. You can also use firewall-cmd --reload. All runtime configuration settings will be restored. Permanent configuration will change according to options defined in the configuration files. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.zone.xml000066400000000000000000000521511320241217000206420ustar00rootroot00000000000000 ]> firewalld.zone firewalld &authors; firewalld.zone 5 firewalld.zone firewalld zone configuration files /firewalld/zones/zone.xml /lib/firewalld/zones/zone.xml Description A firewalld zone configuration file contains the information for a zone. These are the zone description, services, ports, protocols, icmp-blocks, masquerade, forward-ports and rich language rules in an XML file format. The file name has to be zone_name.xml where length of zone_name is currently limited to 17 chars. This is the structure of a zone configuration file: <?xml version="1.0" encoding="utf-8"?> <zone [version="versionstring"] [target="ACCEPT|%%REJECT%%|DROP"]> [ <short>short description</short> ] [ <description>description</description> ] [ <interface name="string"/> ] [ <source address="address[/mask]"|mac="MAC"|ipset="ipset"/> ] [ <service name="string"/> ] [ <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ] [ <protocol value="protocol"/> ] [ <icmp-block name="string"/> ] [ <icmp-block-inversion/> ] [ <masquerade/> ] [ <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="IP address"]/> ] [ <source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ] [ <rule [family="ipv4|ipv6"]> [ <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/> ] [ <destination address="address[/mask]" [invert="True"]/> ] [ <service name="string"/> | <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> | <protocol value="protocol"/> | <icmp-block name="icmptype"/> | <icmp-type name="icmptype"/> | <masquerade/> | <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/> ] [ <log [prefix="prefixtext"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> ] [ <audit> [<limit value="rate/duration"/>] </audit> ] [ <accept> [<limit value="rate/duration"/>] </accept> | <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> | <drop> [<limit value="rate/duration"/>] </drop> | <mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark> ] </rule> ] </zone> The config can contain these tags and attributes. Some of them are mandatory, others optional. zone The mandatory zone start and end tag defines the zone. This tag can only be used once in a zone configuration file. There are optional attributes for zones: version="string" To give the zone a version. target="ACCEPT|%%REJECT%%|DROP" Can be used to accept, reject or drop every packet that doesn't match any rule (port, service, etc.). The ACCEPT target is used in trusted zone to accept every packet not matching any rule. The %%REJECT%% target is used in block zone to reject (with default firewalld reject type) every packet not matching any rule. The DROP target is used in drop zone to drop every packet not matching any rule. If the target is not specified, every packet not matching any rule will be rejected. short Is an optional start and end tag and is used to give a zone a more readable name. description Is an optional start and end tag to have a description for a zone. interface Is an optional empty-element tag and can be used several times. It can be used to bind an interface to a zone. You don't need this for NetworkManager-managed interfaces, because NetworkManager binds interfaces to zones automatically. See also 'How to set or change a zone for a connection?' in firewalld.zones5. You can use it as a fallback mechanism for interfaces that can't be managed via NetworkManager. An interface entry has exactly one attribute: name="string" The name of the interface to be bound to the zone. source Is an optional empty-element tag and can be used several times. It can be used to bind a source address, address range, a MAC address or an ipset to a zone. A source entry has exactly one of these attributes: address="address/mask" The source is either an IP address or a network IP address with a mask for IPv4 or IPv6. The network family (IPv4/IPv6) will be automatically discovered. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported. mac="MAC" The source is a MAC address. It must be of the form XX:XX:XX:XX:XX:XX. ipset="ipset" The source is an ipset. service Is an optional empty-element tag and can be used several times to have more than one service entry enabled. A service entry has exactly one attribute: name="string" The name of the service to be enabled. To get a list of valid service names firewall-cmd --list=services can be used. port Is an optional empty-element tag and can be used several times to have more than one port entry. All attributes of a port entry are mandatory: port="portid-portid" The port can either be a single port number portid or a port range portid-portid. protocol="tcp|udp|sctp|dccp" The protocol can either be tcp, udp, sctp or dccp. protocol Is an optional empty-element tag and can be used several times to have more than one protocol entry. All protocol has exactly one attribute: value="string" The protocol can be any protocol supported by the system. Please have a look at /etc/protocols for supported protocols. icmp-block Is an optional empty-element tag and can be used several times to have more than one icmp-block entry. Each icmp-block tag has exactly one mandatory attribute: name="string" The name of the Internet Control Message Protocol (ICMP) type to be blocked. To get a list of valid ICMP types firewall-cmd --list=icmptypes can be used. icmp-block-inversion Is an optional empty-element tag and can be used only once in a zone configuration. This flag inverts the icmp block handling. Only enabled ICMP types are accepted and all others are rejected in the zone. masquerade Is an optional empty-element tag. It can be used only once in a zone configuration. If it's present masquerading is enabled for the zone. If you want to enable masquerading, you should enable it in the zone bound to the external interface. forward-port Is an optional empty-element tag and can be used several times to have more than one port or packet forward entry. There are mandatory and also optional attributes for forward ports: Mandatory attributes: The local port and protocol to be forwarded. port="portid-portid" The port can either be a single port number portid or a port range portid-portid. protocol="tcp|udp|sctp|dccp" The protocol can either be tcp, udp, sctp or dccp. Optional attributes: The destination of the forward. For local forwarding add only. For remote forwarding add and use optionally if the destination port on the destination machine should be different. to-port="portid-portid" The destination port or port range to forward to. If omitted, the value of the port= attribute will be used altogether with the to-addr attribute. to-addr="address" The destination IP address either for IPv4 or IPv6. source-port Is an optional empty-element tag and can be used several times to have more than one source port entry. All attributes of a source port entry are mandatory: port="portid-portid" The port can either be a single port number portid or a port range portid-portid. protocol="tcp|udp|sctp|dccp" The protocol can either be tcp, udp, sctp or dccp. rule Is an optional element tag and can be used several times to have more than one rich language rule entry. The general rule structure: <rule [family="ipv4|ipv6"]> [ <source address="address[/mask]" [invert="True"]/> ] [ <destination address="address[/mask]" [invert="True"]/> ] [ <service name="string"/> | <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> | <protocol value="protocol"/> | <icmp-block name="icmptype"/> | <icmp-type name="icmptype"/> | <masquerade/> | <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/> | <source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> | ] [ <log [prefix="prefixtext"] [level="emerg|alert|crit|err|warn|notice|info|debug"]/> [<limit value="rate/duration"/>] </log> ] [ <audit> [<limit value="rate/duration"/>] </audit> ] [ <accept> [<limit value="rate/duration"/>] </accept> | <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> | <drop> [<limit value="rate/duration"/>] </drop> | <mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark> ] </rule> Rule structure for source black or white listing: <rule [family="ipv4|ipv6"]> <source address="address[/mask]" [invert="True"]/> [ <log [prefix="prefixtext"] [level="emerg|alert|crit|err|warn|notice|info|debug"]/> [<limit value="rate/duration"/>] </log> ] [ <audit> [<limit value="rate/duration"/>] </audit> ] <accept> [<limit value="rate/duration"/>] </accept> | <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> | <drop> [<limit value="rate/duration"/>] </drop> </rule> For a full description on rich language rules, please have a look at firewalld.richlanguage5. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/firewalld.zones.xml000066400000000000000000000212111320241217000210160ustar00rootroot00000000000000 ]> firewalld.zones firewalld &authors; firewalld.zones 5 firewalld.zones firewalld zones Description What is a zone? A network zone defines the level of trust for network connections. This is a one to many relation, which means that a connection can only be part of one zone, but a zone can be used for many network connections. The zone defines the firewall features that are enabled in this zone: Predefined services A service is a combination of port and/or protocol entries. Optionally netfilter helper modules can be added and also a IPv4 and IPv6 destination address. Ports and protocols Definition of tcp or udp ports, where ports can be a single port or a port range. ICMP blocks Blocks selected Internet Control Message Protocol (ICMP) messages. These messages are either information requests or created as a reply to information requests or in error conditions. Masquerading The addresses of a private network are mapped to and hidden behind a public IP address. This is a form of address translation. Forward ports A forward port is either mapped to the same port on another host or to another port on the same host or to another port on another host. Rich language rules The rich language extends the elements (service, port, icmp-block, masquerade, forward-port and source-port) with additional source and destination addresses, logging, actions and limits for logs and actions. It can also be used for host or network white and black listing (for more information, please have a look at firewalld.richlanguage5). For more information on the zone file format, please have a look at firewalld.zone5. Which zones are available? Here are the zones provided by firewalld sorted according to the default trust level of the zones from untrusted to trusted: drop Any incoming network packets are dropped, there is no reply. Only outgoing network connections are possible. block Any incoming network connections are rejected with an icmp-host-prohibited message for IPv4 and icmp6-adm-prohibited for IPv6. Only network connections initiated within this system are possible. public For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. external For use on external networks with masquerading enabled especially for routers. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. dmz For computers in your demilitarized zone that are publicly-accessible with limited access to your internal network. Only selected incoming connections are accepted. work For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. home For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted. internal For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted. trusted All network connections are accepted. Which zone should be used? A public WIFI network connection for example should be mainly untrusted, a wired home network connection should be fairly trusted. Select the zone that best matches the network you are using. How to configure or add zones? To configure or add zones you can either use one of the firewalld interfaces to handle and change the configuration: These are the graphical configuration tool firewall-config, the command line tool firewall-cmd or the D-Bus interface. Or you can create or copy a zone file in one of the configuration directories. /lib/firewalld/zones is used for default and fallback configurations and /firewalld/zones is used for user created and customized configuration files. How to set or change a zone for a connection? The zone is stored into the ifcfg of the connection with option. If the option is missing or empty, the default zone set in firewalld is used. If the connection is controlled by NetworkManager, you can also use nm-connection-editor to change the zone. For the addion or change of interfaces that are not under control of NetworkManager: firewalld tries to change the ZONE setting in the ifcfg file, if an ifcfg file exists that is using the interface. Only for the removal of interfaces that are not under control of NetworkManager: firewalld is not trying to change the ZONE setting in the ifcfg file. This is needed to make sure that an ifdown of the interface will not result in a reset of the zone setting to the default zone. Only the zone binding is then removed in firewalld then. &seealso; ¬es; firewalld-0.4.4.6/doc/xml/notes.xml000066400000000000000000000024001320241217000170370ustar00rootroot00000000000000 Notes firewalld home page: More documentation with examples: firewalld-0.4.4.6/doc/xml/seealso.xml000066400000000000000000000056411320241217000173540ustar00rootroot00000000000000 See Also firewall-applet1 firewalld1 firewall-cmd1 firewall-config1 firewallctl1 firewalld.conf5 firewalld.direct5 firewalld.dbus5 firewalld.icmptype5 firewalld.lockdown-whitelist5 firewall-offline-cmd1 firewalld.richlanguage5 firewalld.service5 firewalld.zone5 firewalld.zones5 firewalld.ipset5 firewalld.helper5 firewalld-0.4.4.6/doc/xml/transform-html.xsl.in000066400000000000000000000074671320241217000213210ustar00rootroot00000000000000 @SYSCONFDIR@ @PREFIX@ .html

,
firewalld-0.4.4.6/doc/xml/transform-man.xsl.in000066400000000000000000000025061320241217000211150ustar00rootroot00000000000000 @PACKAGE_STRING@ @SYSCONFDIR@ @PREFIX@ \fI\fR \fI\fR \fI\fR firewalld-0.4.4.6/doxygen.conf.in000066400000000000000000002213621320241217000165630ustar00rootroot00000000000000# Doxyfile 1.7.5 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or sequence of words) that should # identify the project. Note that if you do not use Doxywizard you need # to put quotes around the project name if it contains spaces. PROJECT_NAME = @PACKAGE@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @PACKAGE_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and # unions are shown inside the group in which they are included (e.g. using # @ingroup) instead of on a separate page (for HTML and Man pages) or # section (for LaTeX and RTF). INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and # unions with only public data fields will be shown inline in the documentation # of the scope in which they are defined (i.e. file, namespace, or group # documentation), provided this scope is documented. If set to NO (the default), # structs, classes, and unions are shown on a separate page (for HTML and Man # pages) or section (for LaTeX and RTF). INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES #NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = YES #NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even # if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files # containing the references data. This must be a list of .bib files. The # .bib extension is automatically appended if omitted. Using this command # requires the bibtex tool to be installed. See also # http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style # of the bibliography can be controlled using LATEX_BIB_STYLE. CITE_BIB_FILES = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/firewall # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.py # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # Note that relative paths are relative to directory from which doxygen is run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = Makfile* *.in # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = YES INPUT_FILTER = doxypy.py #NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. Note that when using a custom header you are responsible # for the proper inclusion of any scripts and style sheets that doxygen # needs, which is dependent on the configuration options used. # It is adviced to generate a default header using "doxygen -w html # header.html footer.html stylesheet.css YourConfigFile" and then modify # that header. Note that the header is subject to change so you typically # have to redo this when upgrading to a newer version of doxygen or when # changing the value of configuration settings such as GENERATE_TREEVIEW! HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # If the HTML_TIMESTAMP tag is set to YES then the generated HTML documentation will contain the timesstamp. HTML_TIMESTAMP = NO # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that # the files will be copied as-is; there are no commands or markers available. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values # (range [0,1..20]) that doxygen will group on one line in the generated HTML # documentation. Note that a value of 0 will completely suppress the enum # values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the # mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension # names that should be enabled during MathJax rendering. MATHJAX_EXTENSIONS = # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for # the generated latex document. The footer should contain everything after # the last chapter. If it is left blank doxygen will generate a # standard footer. Notice: only use this tag if you know what you are doing! LATEX_FOOTER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See # http://en.wikipedia.org/wiki/BibTeX for more info. LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will use the Helvetica font for all dot files that # doxygen generates. When you want a differently looking font you can specify # the font name using DOT_FONTNAME. You need to make sure dot is able to find # the font, which can be done by putting it in a standard location or by setting # the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the # directory containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the Helvetica font. # If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to # set the path where dot can find it. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. If you choose svg you need to set # HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible in IE 9+ (other browsers do not have this requirement). DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. # Note that this requires a modern browser other than Internet Explorer. # Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you # need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible. Older versions of IE do not have SVG support. INTERACTIVE_SVG = NO # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES firewalld-0.4.4.6/firewalld.spec000066400000000000000000002224061320241217000164570ustar00rootroot00000000000000%if (0%{?fedora} >= 13 || 0%{?rhel} > 7) %global with_python3 1 %if (0%{?fedora} >= 23 || 0%{?rhel} >= 8) %global use_python3 1 %endif %endif Summary: A firewall daemon with D-Bus interface providing a dynamic firewall Name: firewalld Version: 0.4.4.5 Release: 1%{?dist} URL: http://www.firewalld.org License: GPLv2+ Source0: https://github.com/firewalld/firewalld/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildArch: noarch BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: gettext BuildRequires: intltool # glib2-devel is needed for gsettings.m4 BuildRequires: glib2, glib2-devel BuildRequires: systemd-units BuildRequires: docbook-style-xsl BuildRequires: libxslt BuildRequires: python2-devel BuildRequires: iptables, ebtables, ipset %if 0%{?with_python3} BuildRequires: python3-devel %endif #0%{?with_python3} Requires: iptables, ebtables, ipset Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires: firewalld-filesystem = %{version}-%{release} %if 0%{?use_python3} Requires: python3-firewall = %{version}-%{release} %else #0%{?use_python3} Requires: python-firewall = %{version}-%{release} %endif #0%{?use_python3} %description firewalld is a firewall service daemon that provides a dynamic customizable firewall with a D-Bus interface. %package -n python-firewall Summary: Python2 bindings for firewalld Provides: python2-firewall Obsoletes: python2-firewall Requires: dbus-python Requires: python-slip-dbus Requires: python-decorator Requires: pygobject3-base %description -n python-firewall Python2 bindings for firewalld. %if 0%{?with_python3} %package -n python3-firewall Summary: Python3 bindings for firewalld Requires: python3-dbus Requires: python3-slip-dbus Requires: python3-decorator %if (0%{?fedora} >= 23 || 0%{?rhel} >= 8) Requires: python3-gobject-base %else Requires: python3-gobject %endif %description -n python3-firewall Python3 bindings for firewalld. %endif #0%{?with_python3} %package -n firewalld-filesystem Summary: Firewalld directory layout and rpm macros %description -n firewalld-filesystem This package provides directories and rpm macros which are required by other packages that add firewalld configuration files. %package -n firewall-applet Summary: Firewall panel applet Requires: %{name} = %{version}-%{release} Requires: firewall-config = %{version}-%{release} Requires: hicolor-icon-theme %if 0%{?use_python3} Requires: python3-qt5 Requires: python3-gobject %else Requires: python-qt5 Requires: pygobject3-base %endif Requires: libnotify Requires: NetworkManager-libnm Requires: dbus-x11 %description -n firewall-applet The firewall panel applet provides a status information of firewalld and also the firewall settings. %package -n firewall-config Summary: Firewall configuration application Requires: %{name} = %{version}-%{release} Requires: hicolor-icon-theme Requires: gtk3 %if 0%{?use_python3} Requires: python3-gobject %else Requires: pygobject3-base %endif Requires: NetworkManager-libnm Requires: dbus-x11 %description -n firewall-config The firewall configuration application provides an configuration interface for firewalld. %prep %setup -q ./autogen.sh %if 0%{?with_python3} rm -rf %{py3dir} cp -a . %{py3dir} %if 0%{?use_python3} sed -i -e 's|/usr/bin/python -Es|%{__python3} -Es|' %{py3dir}/fix_python_shebang.sh sed -i 's|/usr/bin/python|%{__python3}|' %{py3dir}/config/lockdown-whitelist.xml %endif #0%{?use_python3} %endif #0%{?with_python3} %build %configure --enable-sysconfig --enable-rpmmacros %if 0%{?use_python3} make -C src %{?_smp_mflags} %else make %{?_smp_mflags} %endif %if 0%{?with_python3} pushd %{py3dir} %configure --enable-sysconfig --enable-rpmmacros PYTHON=%{__python3} %if 0%{?use_python3} make %{?_smp_mflags} %else make -C src %{?_smp_mflags} %endif popd %endif #0%{?with_python3} %install %if 0%{?use_python3} make -C src install-nobase_dist_pythonDATA PYTHON=%{__python2} DESTDIR=%{buildroot} %else make install PYTHON=%{__python2} DESTDIR=%{buildroot} %endif #0%{?use_python3} %if 0%{?with_python3} pushd %{py3dir} %if 0%{?use_python3} make install PYTHON=%{__python3} DESTDIR=%{buildroot} %else make -C src install-nobase_dist_pythonDATA PYTHON=%{__python3} DESTDIR=%{buildroot} %endif #0%{?use_python3} popd %endif #0%{?with_python3} desktop-file-install --delete-original \ --dir %{buildroot}%{_sysconfdir}/xdg/autostart \ %{buildroot}%{_sysconfdir}/xdg/autostart/firewall-applet.desktop desktop-file-install --delete-original \ --dir %{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/firewall-config.desktop %find_lang %{name} --all-name %post %systemd_post firewalld.service %preun %systemd_preun firewalld.service %postun %systemd_postun_with_restart firewalld.service %post -n firewall-applet /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun -n firewall-applet if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : fi %posttrans -n firewall-applet /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %post -n firewall-config /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun -n firewall-config if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : fi %posttrans -n firewall-config /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %files -f %{name}.lang %doc COPYING README %{_sbindir}/firewalld %{_bindir}/firewall-cmd %{_bindir}/firewall-offline-cmd %{_bindir}/firewallctl %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/firewall-cmd %{_prefix}/lib/firewalld/icmptypes/*.xml %{_prefix}/lib/firewalld/ipsets/README %{_prefix}/lib/firewalld/services/*.xml %{_prefix}/lib/firewalld/zones/*.xml %{_prefix}/lib/firewalld/helpers/*.xml %{_prefix}/lib/firewalld/xmlschema/check.sh %{_prefix}/lib/firewalld/xmlschema/*.xsd %attr(0750,root,root) %dir %{_sysconfdir}/firewalld %config(noreplace) %{_sysconfdir}/firewalld/firewalld.conf %config(noreplace) %{_sysconfdir}/firewalld/lockdown-whitelist.xml %attr(0750,root,root) %dir %{_sysconfdir}/firewalld/helpers %attr(0750,root,root) %dir %{_sysconfdir}/firewalld/icmptypes %attr(0750,root,root) %dir %{_sysconfdir}/firewalld/ipsets %attr(0750,root,root) %dir %{_sysconfdir}/firewalld/services %attr(0750,root,root) %dir %{_sysconfdir}/firewalld/zones %dir %{_datadir}/firewalld %dir %{_datadir}/firewalld/tests %{_datadir}/firewalld/tests %defattr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/firewalld #%attr(0755,root,root) %{_initrddir}/firewalld %{_unitdir}/firewalld.service %config(noreplace) %{_sysconfdir}/dbus-1/system.d/FirewallD.conf %{_datadir}/polkit-1/actions/org.fedoraproject.FirewallD1.desktop.policy.choice %{_datadir}/polkit-1/actions/org.fedoraproject.FirewallD1.server.policy.choice %{_datadir}/polkit-1/actions/org.fedoraproject.FirewallD1.policy %{_mandir}/man1/firewall*cmd*.1* %{_mandir}/man1/firewallctl*.1* %{_mandir}/man1/firewalld*.1* %{_mandir}/man5/firewall*.5* %{_sysconfdir}/modprobe.d/firewalld-sysctls.conf %files -n python-firewall %attr(0755,root,root) %dir %{python2_sitelib}/firewall %attr(0755,root,root) %dir %{python2_sitelib}/firewall/config %attr(0755,root,root) %dir %{python2_sitelib}/firewall/core %attr(0755,root,root) %dir %{python2_sitelib}/firewall/core/io %attr(0755,root,root) %dir %{python2_sitelib}/firewall/server %{python2_sitelib}/firewall/*.py* %{python2_sitelib}/firewall/config/*.py* %{python2_sitelib}/firewall/core/*.py* %{python2_sitelib}/firewall/core/io/*.py* %{python2_sitelib}/firewall/server/*.py* %if 0%{?with_python3} %files -n python3-firewall %attr(0755,root,root) %dir %{python3_sitelib}/firewall %attr(0755,root,root) %dir %{python3_sitelib}/firewall/__pycache__ %attr(0755,root,root) %dir %{python3_sitelib}/firewall/config %attr(0755,root,root) %dir %{python3_sitelib}/firewall/config/__pycache__ %attr(0755,root,root) %dir %{python3_sitelib}/firewall/core %attr(0755,root,root) %dir %{python3_sitelib}/firewall/core/__pycache__ %attr(0755,root,root) %dir %{python3_sitelib}/firewall/core/io %attr(0755,root,root) %dir %{python3_sitelib}/firewall/core/io/__pycache__ %attr(0755,root,root) %dir %{python3_sitelib}/firewall/server %attr(0755,root,root) %dir %{python3_sitelib}/firewall/server/__pycache__ %{python3_sitelib}/firewall/__pycache__/*.py* %{python3_sitelib}/firewall/*.py* %{python3_sitelib}/firewall/config/*.py* %{python3_sitelib}/firewall/config/__pycache__/*.py* %{python3_sitelib}/firewall/core/*.py* %{python3_sitelib}/firewall/core/__pycache__/*.py* %{python3_sitelib}/firewall/core/io/*.py* %{python3_sitelib}/firewall/core/io/__pycache__/*.py* %{python3_sitelib}/firewall/server/*.py* %{python3_sitelib}/firewall/server/__pycache__/*.py* %endif #0%{?with_python3} %files -n firewalld-filesystem %dir %{_prefix}/lib/firewalld %dir %{_prefix}/lib/firewalld/helpers %dir %{_prefix}/lib/firewalld/icmptypes %dir %{_prefix}/lib/firewalld/ipsets %dir %{_prefix}/lib/firewalld/services %dir %{_prefix}/lib/firewalld/zones %dir %{_prefix}/lib/firewalld/xmlschema %{_rpmconfigdir}/macros.d/macros.firewalld %files -n firewall-applet %{_bindir}/firewall-applet %defattr(0644,root,root) %{_sysconfdir}/xdg/autostart/firewall-applet.desktop %dir %{_sysconfdir}/firewall %{_sysconfdir}/firewall/applet.conf %{_datadir}/icons/hicolor/*/apps/firewall-applet*.* %{_mandir}/man1/firewall-applet*.1* %files -n firewall-config %{_bindir}/firewall-config %defattr(0644,root,root) %{_datadir}/firewalld/firewall-config.glade %{_datadir}/firewalld/gtk3_chooserbutton.py* %{_datadir}/firewalld/gtk3_niceexpander.py* %{_datadir}/applications/firewall-config.desktop %{_datadir}/appdata/firewall-config.appdata.xml %{_datadir}/icons/hicolor/*/apps/firewall-config*.* %{_datadir}/glib-2.0/schemas/org.fedoraproject.FirewallConfig.gschema.xml %{_mandir}/man1/firewall-config*.1* %changelog * Tue Jun 6 2017 Thomas Woerner - 0.4.4.5-1 - Fix build from spec without fedorahosted.org archives - firewalld.spec: Add missing autotools dependencies - firewall-offline-cmd: Fix --remove-service-from-zone option RHBZ#1438127 - Merge pull request 213 from hwoarang/add-missing-autotools - Support sctp and dccp in ports, source-ports, forward-ports, helpers and rich rules - firewall-cmd: Fix --{set,get}-{short,description} for zone - firewall.core.ipXtables: Use new wait option for restore commands if available - Merge pull request 212 from leongold/ovirt-imageio-service - config/Makefile.am: Install new ovirt-imageio service - README: Use www.firewalld.org/documentation as documentation link - Fix misspelled word in documentation - Merge pull request 216 from tobiasvl/fix-protocol-spelling - Man pages: Mention sctp and dccp protocols for remaining ports, .. - Adding ovirt-vmconsole service file - Adding oVirt storage-console service. - Adding ctdb service file. - Merge pull request 219 from leongold/ctdb-service - Fixing incorrect port number - Merge pull request 217 from leongold/ovirt-vmconsole - Merge pull request 218 from leongold/ovirt-storageconsole - config/Makefile.am: New services ctdb, ovirt-storageconsole and ovirt-vmconsole - Adding service file for nrpe. - Merge pull request 220 from leongold/nrpe-service - config/Makefile.am: New services nrpe - Rename extension for policy choices (server and desktop) to .policy.choice (RHBZ#1449754) - D-Bus interfaces: Fix GetAll for interfaces without properties (RHBZ#1452017) - firewall.core.fw_config: Fix wrong variable use in repr output - firewall.core.fw_icmptype: Add missing import for copy - firewall.core.fw_test: Fix wrong format string in repr - firewall.core.io.zone: Fix __getattr__ use on super(Zone) - firewall.functions: New function get_nf_nat_helpers - firewall.core.fw: Get NAT helpers and store them internally. - firewall.core.fw_zone: Load NAT helpers with conntrack helpers - firewalld.dbus: Add missing properties nf_conntrach_helper_setting and nf_conntrack_helpers - firewall.server.firewalld: New property for NAT helpers supported by the kernel - Translation updates * Mon Mar 27 2017 Thomas Woerner - 0.4.4.4-1 - Drop references to fedorahosted.org from spec file and Makefile.am - Fix inconsistent ordering of rules in INPUT_ZONE_SOURCE (issue#166) - Fix ipset overloading from /etc/firewalld/ipsets - Fix permanent rich rules using icmp-type elements (RHBZ#1434594) - firewall-config: Deactivate edit, remove, .. buttons if there are no items - Check if ICMP types are supported by kernel before trying to use them - firewall-config: Show invalid ipset type in the ipset configuration dialog in a special label * Thu Feb 9 2017 Thomas Woerner - 0.4.4.3-1 - New service freeipa-trust (RHBZ#1411650) - Complete icmp types for IPv4 and IPv6 - New h323 helper container - Support helper container: h323 - firewall.server.decorators: ALREADY_ errors should be logged as warnings - firewall.command: ALREADY_SET should also result in zero exit code - tests/firewall-offline-cmd_test.sh: Only use firewall-offline-cmd - Support more ipset types: hash:ip,port, hash:ip,port,ip, hash:ip,port,net, hash:ip,mark, hash:net,net, hash:net,port, hash:net,port,net, hash:net,iface - New checks for ipset entry validation - Use ipset dimension for match - firewall.core.base: New ZONE_SOURCE_IPSET_TYPES list - New firewall.core.icmp providing names and types for icmp and icmpv6 values - firewall.core.fw_ipset: New methods to get ipset dimension and applied state - firewall.errors: New error NOT_APPLIED - firewall-cmd man page: Add missing --get-ipset-types - firewall.core.fw_nm: No trace back on failed get_connection call (RHBZ#1413345) - firewall.core.prog: Fix addition of the error output in runProg - Speed up ipset handling, (re)loading and import from file - Support --family option for --new-ipset - Handle FirewallError for query sequences in command line tools - Fail to alter entries of ipsets with timeout - Extended tests for ipset options - Return empty list for ipsets using timeouts - firewall.functions: Fix checks in checkIPnMask and checkIP6nMask (issue#186) - firewalld.conf man page: New section about AutomaticHelpers - firewall-offline-cmd man page: Added -v and -q options, fixed section ids - firewall{-cmd, ctl}: Fix scope of final return in try_set_zone_of_interface - firewall.core.fw_zone: Limit masquerading forward rule to new connections - firewall-config: Update active zones on reloaded signal - firewall-applet: Update active zones and tooltip on reloaded signal - firewall.core.fw_zone: Fix missing chain for helper in rich rules using service (RHBZ#1416578) - Support icmp-type usage in rich rules (RHBZ#1409544) - firewall[-offline]-cmd: Fix --{set,get}-{short,description} for ipset and helper (RHBZ#1416325) - firewall.core.ipset: Solve ipset creation issues with -exist and more flag tests - Speed up start and restart for ipsets with lots of entries (RHBZ#1416817) - Speed up of ipset alteration by adding and removing entries using a file (RHBZ#1416817) - Code cleanup and minor bug fixes - firewall.core.prog: Fix addition of the error output in runProg - New services mssql, kibana, elasticsearch, quassel, bitcoin-rpc, bitcoin-testnet-rpc, bitcoin-testnet, bitcoin and spideroak-lansync - Translation updates * Thu Dec 1 2016 Thomas Woerner - 0.4.4.2-1 - firewalld.spec: Added helpers and ipsets paths to firewalld-filesystem - firewall.core.fw_nm: create NMClient lazily - Do not use hard-coded path for modinfo, use autofoo to detect it - firewall.core.io.ifcfg: Dropped invalid option warning with bad format string - firewall.core.io.ifcfg: Properly handle quoted ifcfg values - firewall.core.fw_zone: Do not reset ZONE with ifdown - Updated translations from zanata - firewall-config: Extra grid at bottom to visualize firewalld settings * Wed Nov 9 2016 Thomas Woerner - 0.4.4.1-1 - firewall-config: Use proper source check in sourceDialog (fixes issue#162) - firewallctl: New support for helpers - Translation updates * Fri Oct 28 2016 Thomas Woerner - 0.4.4-1 - Fix dist-check - src/Makefile.am: Install new helper files - config/Makefile.am: Install helpers - Merged translations - Updated translations from zanata - firewalld.spec: Adapt requires for PyQt5 - firewall-applet: Fix fromUTF8 for python2 PyQt5 usage - firewall-applet: Use PyQt5 - firewall-config: New nf_conntrack_select dialog, use nf_conntrack_helpers D-Bus property - shell-completion/bash/firewall-cmd: Updates for helpers and also some fixes - src/tests/firewall-[offline-]cmd_test.sh: New helper tests, adapted module tests for services - doc/xml/seealso.xml: Add firewalld.helper(5) man page - doc/xml/seealso.xml: Add firewalld.ipset(5) man page - Fixed typo in firewalld.ipset(5) man page - Updated firewalld.dbus(5) man page - New firewalld.helper(5) man page - doc/xml/firewall-offline-cmd.xml: Updated firewall-offline-cmd man page - doc/xml/firewall-cmd.xml: Updated firewall-cmd man page - firewall-offline-cmd: New support for helpers - firewall-cmd: New support for helpers - firewall.command: New check_helper_family, check_module and print_helper_info methods - firewall.core.fw_test: Add helpers also to offline backend - firewall.server.config: New AutomaticHelpers property (rw) - firewall.server.config: Fix an dict size changed error for firewall.conf file changes - firewall.server.config: Make LogDenied property readwrite to be consistent - Some renames of nf_conntrack_helper* functions and structures, helpers is a dict - firewall.core.fw: Properly check helper setting in set_automatic_helpers - firewall.errors: Add missing BUILTIN_HELPER error code - No extra interface for helpers needed in runtime, dropped DBUS_INTERFACE_HELPER - firewall.server.firewalld: Drop unused queryHelper D-Bus method - New helpers Q.931 and RAS from nf_conntrack_h323 - firewall.core.io.helper: Allow dots in helper names, remove underscore - firewall.core.io.firewalld_conf: Fixed typo in FALLBACK_AUTOMATIC_HELPERS - firewall-[offline-]cmd: Use sys.excepthook to force exception_handler usage always - firewall.core.fw_config: new_X methods should also check builtins - firewall.client: Set helper family to "" if None - firewall.client: Add missing module string to FirewallClientHelperSettings.settings - config/firewalld.conf: Add possible values description for AutomaticHelpers - helpers/amanda.xml: Fix typo in helper module - firewall-config: Added support for helper module setting - firewall.client: Added support for helper module setting - firewall.server.config_helper: Added support for helper module setting - firewall.core.io.service, firewall.server.config_service: Only replace underscore by dash if module start with nf_conntrack_ - firewall.core.fw_zone: Use helper module instead of a generated name from helper name - helpers: Added kernel module - firewall.core.io.helper: Add module to helper - firewall-cmd: Removed duplicate --get-ipset-types from help output - firewall.core.fw_zone: Add zone bingings for PREROUTING in the raw table - firewall.core.ipXtables: Add PREROUTING default rules for zones in raw table - firewall-config: New support to handle helpers, new dialogs, new helper tab, .. - config/org.fedoraproject.FirewallConfig.gschema.xml.in: New show-helpers setting - firewall.client: New helper management for runtime and permanent configuration - firewall.server.firewalld: New runtime helper management, new nf_conntrack_helper property - firewall.server.config_service: Fix module name handling (no nf_conntrack_ prefix needed) - firewall.server.config: New permanent D-Bus helper management - New firewall.server.config_helper to provide the permanent D-Bus interface for helpers - firewall.core.fw_zone: Use helpers fw.nf_conntrack_helper for services using helpers - firewall.core.fw: New helper management, new _automatic_helpers and nf_conntrack_helper settings - firewall.core.fw_config: Add support for permanent helper handling - firewall.core.io.service: The module does not need to start with nf_conntrack_ anymore - firewall.functions: New functions to get and set nf_conntrack_helper kernel setting - firewall.core.io.firewalld_conf: New support for AutomaticHelpers setting - firewall.config.dbus: New D-Bus definitions for helpers, new DBUS_INTERFACE_REVISION 12 - New firewall.core.fw_helper providing FirewallHelper backend - New firewall.core.helper with HELPER_MAXNAMELEN definition - config/firewalld.conf: New AutomaticHelpers setting with description - firewall.config.__init__.py.in: New helpers variables - firewalld.spec: Add new helpers directory - config/Makefile.am: Install new helpers - New helper configuration files for amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp and tftp - firewall.core.io.helper: New IO handler for netfilter helpers - firewall.errors: New INVALID_HELPER error code - firewall.core.io.ifcfg: Use .bak for save files - firewall-config: Set internal log_denied setting after changing - firewall.server.config: Copy props before removing items - doc/xml/firewalld.ipset: Replaced icmptype name remains with ipset - firewall.core.fw_zone: Fix LOG rule placement for LogDenied - firewall.command: Use "source-ports" in print_zone_info - firewall.core.logger: Use syslog.openlog() and syslog.closelog() - firewall-[offline-]cmd man pages: Document --path-{zone,icmptype,ipset,service} - firewall-cmd: Enable --path-{zone,icmptype,service} options again - firewall.core.{ipXtables,ebtables}: Copy rule before extracting items in set_rules - firewall.core.fw: Do not abort transaction on failed ipv6_rpfilter rules - config/Makefile.am: Added cfengine, condor-collector and smtp-submission services - Makefile.am: New dist-check used in the archive target - src/Makefile.am: Reordered nobase_dist_python_DATA to be sorted - config/Makefile.am: New CONFIG_FILES variable to contain the config files - Merge pull request #150 from hspaans/master - Merge pull request #146 from canvon/bugfix/spelling - Merge pull request #145 from jcpunk/condor - Command line tools man pages: New section about sequence options and exit codes - Creating service file for SMTP-Submission. - Creating service file for CFEngine. - Fix typo in documentation: iptables mangle table - Only use sort on lists of main items, but not for item properties - firewall.core.io.io_object: import_config should not change ordering of lists - firewall.core.fw_transaction: Load helper modules in FirewallZoneTransaction - firewall.command: Fail with NOT_AUTHORIZED if authorization fails (RHBZ#1368549) - firewall.command: Fix sequence exit code with at least one succeeded item - Add condor collector service - firewall-cmd: Fixed --{get,set}-{description,short} for permanent zones - firewall.command: Do not use error code 254 for {ALREADY,NOT}_ENABLED sequences * Tue Aug 16 2016 Thomas Woerner - 0.4.3.3-1 - Fix CVE-2016-5410: Firewall configuration can be modified by any logged in user - firewall/server/firewalld: Make getXSettings and getLogDenied CONFIG_INFO - Update AppData configuration file. - tests/firewalld_rich.py: Use new import structure and FirewallClient classes - tests/firewalld_direct.py: Use new import structure - tests: firewalld_direct: Fix assert to check for True instead of False - tests: firewalld_config: Fix expected value when querying the zone target - tests: firewalld_config: Use real nf_conntrack modules - firewalld.spec: Added comment about make call for %build - firewall-config: Use also width_request and height_request with default size - Updated firewall-config screenshot - firewall-cmd: Fixed typo in help output (RHBZ#1367171) - test-suite: Ignore stderr to get default zone also for missing firewalld.conf - firewall.core.logger: Warnings should be printed to stderr per default - firewall.core.fw_nm: Ignore NetworkManager if NM.Client connect fails - firewall-cmd, firewallctl: Gracefully fail if SystemBus can not be aquired - firewall.client: Generate new DBUS_ERROR if SystemBus can not be aquired - test-suite: Do not fail on ALREADY_ENABLED --add-destination tests - firewall.command: ALREADY_ENABLED, NOT_ENABLED, ZONE_ALREADY_SET are warnings - doc/xml/firewalld.dbus.xml: Removed undefined reference - doc/xml/transform-html.xsl.in: Fixed references in the document - doc/xml/firewalld.{dbus,zone}.xml: Embed programlisting in para - doc/xml/transform-html.xsl.in: Enhanced html formatting closer to the man page - firewall: core: fw_nm: Instantiate the NM client only once - firewall/core/io/*.py: Do not traceback on a general sax parsing issue - firewall-offline-cmd: Fix --{add,remove}-entries-from-file - firewall-cmd: Add missing action to fix --{add,remove}-entries-from-file - firewall.core.prog: Do not output stderr, but return it in the error case - firewall.core.io.ifcfg.py: Fix ifcfg file reader and writer (RHBZ#1362171) - config/firewall.service.in: use KillMode=mixed - config/firewalld.service.in: use network-pre.target - firewall-config: Add missing gettext.textdomain call to fix translations - Add UDP to transmission-client.xml service - tests/firewall-[offline-]cmd_test.sh: Hide errors and warnings - firewall.client: Fix ALREADY_ENABLED errors in icmptype destination calls - firewall.client: Fix NOT_ENABLED errors in icmptype destination calls - firewall.client: Use {ALREADY,NOT}_ENABLED errors in icmptype destination calls - firewall.command: Add the removed FirewallError handling to the action (a17ce50) - firewall.command: Do not use query methods for sequences and also single options - Add missing information about MAC and ipset sources to man pages and help output - firewalld.spec: Add BuildRequires for libxslt to enable rebuild of man pages - firewall[-offline]-cmd, firewallctl, firewall.command: Use sys.{stdout,stderr} - firewallctl: Fix traceback if not connected to firewalld - firewall-config: Initialize value in on_richRuleDialogElementChooser_clicked - firewall.command: Convert errors to string for Python3 - firewall.command: Get proper firewall error code from D-BusExceptions - firewall-cmd: Fixed traceback without args - Add missing service files to Makefile.am - shell-completion: Add shell completion support for --{get,set}--{description,short} * Mon Jul 4 2016 Thomas Woerner - 0.4.3.2-1 - Fix regression with unavailable optional commands - All missing backend messages should be warnings - Individual calls for missing restore commands - Only one authenticate call for add and remove options and also sequences - New service RH-Satellite-6 * Tue Jun 28 2016 Thomas Woerner - 0.4.3.1-1 - firewall.command: Fix python3 DBusException message not interable error - src/Makefile.am: Fix path in firewall-[offline-]cmd_test.sh while installing - firewallctl: Do not trace back on list command without further arguments - firewallctl (man1): Added remaining sections zone, service, .. - firewallctl: Added runtime-to-permanent, interface and source parser, IndividualCalls setting - firewall.server.config: Allow to set IndividualCalls property in config interface - Fix missing icmp rules for some zones - runProg: Fix issue with running programs - firewall-offline-cmd: Fix issues with missing system-config-firewall - firewall.core.ipXtables: Split up source and dest addresses for transaction - firewall.server.config: Log error in case of loading malformed files in watcher - Install and package the firewallctl man page * Wed Jun 22 2016 Thomas Woerner - 0.4.3-1 - New firewallctl utility (RHBZ#1147959) - doc.xml.seealso: Show firewalld.dbus in See Also sections - firewall.core.fw_config: Create backup on zone, service, ipset and icmptype removal (RHBZ#1339251) - {zone,service,ipset,icmptype}_writer: Do not fail on failed backup - firewall-[offline-]cmd: Fix --new-X-from-file options for files in cwd - firewall-cmd: Dropped duplicate setType call in --new-ipset - radius service: Support also tcp ports (RBZ#1219717) - xmlschemas: Support source-port, protocol, icmp-block-inversion and ipset sources - config.xmlschema.service.xsd: Fix service destination conflicts (RHBZ#1296573) - firewall-cmd, firewalld man: Information about new NetworkManager and ifcfg - firewall.command: Only print summary and description in print_X_info with verbose - firewall.command: print_msg should be able to print empty lines - firewall-config: No processing of runtime passthroughs signals in permanent - Landspace.io fixes and pylint calm downs - firewall.core.io.zone: Add zone_reader and zone_writer to __all__, pylint fixes - firewall-config: Fixed titles of command and context dialogs, also entry lenths - firewall-config: pylint calm downs - firewall.core.fw_zone: Fix use of MAC source in rich rules without ipv limit - firewall-config: Use self.active_zoens in conf_zone_added_cb - firewall.command: New parse_port, extended parse methods with more checks - firewall.command: Fixed parse_port to use the separator in the split call - firewall.command: New [de]activate_exception_handler, raise error in parse_X - services ha: Allow corosync-qnetd port - firewall-applet: Support for kde5-nm-connection-editor - tests/firewall-offline-cmd_test.sh: New tests for service and icmptype modifications - firewall-offline-cmd: Use FirewallCommand for simplification and sequence options - tests/firewall-cmd_test.sh: New tests for service and icmptype modifications - firewall-cmd: Fixed set, remove and query destination options for services - firewall.core.io.service: Source ports have not been checked in _check_config - firewall.core.fw_zone: Method check_source_port is not used, removed - firewall.core.base: Added default to ZONE_TARGETS - firewall.client: Allow to remove ipv:address pair for service destinations - tests/firewall-offline-cmd_test.sh: There is no timeout option in permanent - firewall-cmd: Landscape.io fixes, pylint calm downs - firewall-cmd: Use FirewallCommand for simplification and sequence options - firewall.command: New FirewallCommand for command line client simplification - New services: kshell, rsh, ganglia-master, ganglia-client - firewalld: Cleanup of unused imports, do not translate some deamon messages - firewalld: With fd close interation in runProg, it is not needed here anymore - firewall.core.prog: Add fd close iteration to runProg - firewall.core.fw_nm: Hide NM typelib import, new nm_get_dbus_interface function - firewalld.spec: Require NetworkManager-libnm instead of NetworkManager-glib - firewall-config: New add/remove ipset entries from file, remove all entries - firewall-applet: Fix tooltip after applet start with connection to firewalld - firewall-config: Select new zone, service or icmptype if the view was empty - firewalld.spec: Added build requires for iptables, ebtables and ipset - Adding nf_conntrack_sip module to the service SIP - firewall: core: fw_ifcfg: Quickly return if ifcfg directory does not exist - Drop unneeded python shebangs - Translation updates * Mon May 30 2016 Thomas Woerner - 0.4.2-1 - New module to search for and change ifcfg files for interfaces not under control of NM - firewall_config: Enhanced messages in status bar - firewall-config: New message window as overlay if not connected - firewall-config: Fix sentivity of option, view menus and main paned if not connected - firewall-applet: Quit on SIGINT (Ctrl-C), reduced D-Bus calls, some cleanup - firewall-[offline]cmd: Show target in zone information - D-Bus: Completed masquerade methods in FirewallClientZoneSettings - Fixed log-denied rules for icmp-blocks - Keep sorting of interfaces, services, icmp-blocks and other settings in zones - Fixed runtime-to-permanent not to save interfaces under control of NM - New icmp-block-inversion flag in the zones - ICMP type filtering in the zones - New services: sip, sips, managesieve - rich rules: Allow destination action (RHBZ#1163428) - firewall-offline-cmd: New option -q/--quiet - firewall-[offline-]cmd: New --add-[zone,service,ipset,icmptype]-from-file - firewall-[offline-]cmd: Fix option for setting the destination address - firewall-config: Fixed resizing behaviour - New transaction model for speed ups in start, restart, stop and other actions - firewall-cmd: New options --load{zone,service,ipset,icmptype}-defaults - Fixed memory leak in dbus_introspection_add_properties - Landscape.io fixes, pylint calm downs - New D-Bus getXnames methods to speed up firewall-config and firewall-cmd - ebtables-restore: No support for COMMIT command - Source port support in services, zones and rich rules - firewall-offline-cmd: Added --{add,remove}-entries-from-file for ipsets - firewall-config: New active bindings side bar for simple binding changes - Reworked NetworkManager module - Proper default zone handling for NM connections - Try to set zone binding with NM if interface is under control of NM - Code cleanup and bug fixes - Include test suite in the release and install in /usr/share/firewalld/tests - New Travis-CI configuration file - Fixed more broken frensh translations - Translation updates * Wed Apr 20 2016 Thomas Woerner - 0.4.1.2-1 - Install fw_nm module - firewalld: Do not fail if log file could not be opened - Make ipsets visible per default in firewall-config - Fixed translations with python3 * Tue Apr 19 2016 Thomas Woerner - 0.4.1.1-1 - Fixed broken frensh translation * Tue Apr 19 2016 Thomas Woerner - 0.4.1-1 - Enhancements of ipset handling - No cleanup of ipsets using timeouts while reloading - Only destroy conflicting ipsets - Only use ipset types supported by the system - Add and remove several ipset entries in one call using a file - Reduce time frame where builtin chains are on policy DROP while reloading - Include descriptions in --info-X calls - Command line interface support to get and alter descriptions of zones, services, ipsets and icmptypes with permanent option - Properly watch changes in combined zones - Fix logging in rich rule forward rules - Transformed direct.passthrough errors into warnings - Rework of import structures - Reduced calls to get ids for port and protocol names (RHBZ#1305434) - Build and installation fixes by Markos Chandras - Provide D-Bus properties in introspection data - Fix for flaws found by landscape.io - Fix for repeated SUGHUP - New NetworkManager module to get and set zones of connections, used in firewall-applet and firewall-config - configure: Autodetect backend tools ({ip,ip6,eb}tables{,-restore}, ipset) - Code cleanups - Bug fixes * Fri Jan 29 2016 Thomas Woerner - 0.4.0-1 - Several new services - Lots of bug fixes - Speed up: Using -restore commands - Optimizations - ipset support - MAC address support - Enhancements - Rich language - documentation - firewall-config - firewall-applet - Command line tools - Log of denied packets * Tue Jun 16 2015 Thomas Woerner - 0.3.14.2-0 - fixed requirements for -applet and -config - adapted firewall-applet man page to new version - firewall-applet, firewall-config: Only honour active connections - firewall-applet: Change QSettings path and file names - Updated translations, marked translations for "Connections" as fuzzy * Fri Jun 12 2015 Thomas Woerner - 0.3.14.1-0 - spec file adaptions from Fedora - dropped gtk applet remain: org.fedoraproject.FirewallApplet.gschema.xml * Fri Jun 12 2015 Thomas Woerner - 0.3.14-1 - firewalld: - print real zone names in error messages - iptables 1.4.21 does not accept limits of 1/day, minimum is 2/day now - rate limit fix for rich rules - fix readdition of removed permanent direct settings - adaption of the polkit domains to use PK_ACTION_DIRECT_INFO - fixed two minor Python3 issues in firewall.core.io.direct - fixed use of fallback configuration values - fixed use without firewalld.conf - firewalld main restructureization - IPv6_rpfilter now also available as a property on D-Bus in the config interface - fixed wait option use for ipXtables - added --concurrent support for ebtables - richLanguage: allow masquerading with destination - richLanguage: limit masquerading forward rule to new connections - ipXtables: No dns lookups in available_tables and _detect_wait_option - full ebtables support: start, stop, reload, panic mode, direct chains and rules - fix for reload with direct rules - fix or flaws found by landscape.io - pid file handling fixes in case of pid file removal - fix for client issue in case of a dbus NoReply error - configuration - new services: dropbox-lansync, ptp - new icmptypes: timestamp-request, timestamp-reply - man pages: - firewalld.zones(5): fixed typos - firewalld.conf(5): Fixed wrong reference to firewalld.lockdown-whitelist page - firewall-applet: - new version using Qt4 fixing several issues with the Gtk version - spec file: - enabled Python3 support: new backends python-firewall and python3-firewall - some cleanup - git: - migrated to github - translations: - migrated to zanata - build environment: - no need for autoconf-2.69, 2.68 is sufficient * Wed Jan 28 2015 Thomas Woerner - 0.3.14-0 - enable python2 and python3 bindings for fedora >= 20 and rhel >= 7 - use python3 bindings on fedora >= 22 and rhel >= 8 for firewalld, firewall-config and firewall-applet * Thu Dec 04 2014 Jiri Popelka - 0.3.13-1 - firewalld: - ipXtables: use -w or -w2 if supported (RHBZ#1161745, RHBZ#1151067) - DROP INVALID packets (RHBZ#1169837) - don't use ipv6header for protocol matching. (RHBZ#1065565) - removeAllPassthroughs(): remove passthroughs in reverse order (RHBZ#1167100) - fix config.service.removeDestination() (RHBZ#1164584) - firewall-config: - portProtoDialog: other protocol excludes port number/range - better fix for updating zoneStore also in update_active_zones() - fix typo in menu - configuration: - new services: tinc, vdsm, mosh, iscsi-target, rsyncd - ship and install XML Schema files. (#8) - man pages: - firewalld.dbus, firewalld.direct, firewalld, firewall-cmd - spec file: - filesystem subpackage - make dirs&files in /usr/lib/ world-readable (RHBZ#915988) * Tue Oct 14 2014 Jiri Popelka - 0.3.12-1 - firewalld: - new runtimeToPermanent and tracked passsthrough support - make permanent D-Bus interfaces more fine grained like the runtime versions (RHBZ#1127706) - richLanguage: allow using destination with forward-port - Rich_Rule.check(): action can't be used with icmp-block/forward-port/masquerade - fixed Python specific D-Bus exception (RHBZ#1132441) - firewall-cmd: - new --runtime-to-permanent to create permanent from runtime configuration - use new D-Bus methods for permanent changes - show target REJECT instead of %%REJECT%% (RHBZ#1058794) - --direct: make fail messages consistent (RHBZ#1141835) - firewall-config: - richRuleDialog - OK button tooltip indicates problem - use new D-Bus methods for permanent changes - show target REJECT instead of %%REJECT%% (RHBZ#1058794) - update "Change Zones of Connections" menu on default zone change (RHBZ#11120212) - fixed rename of zones, services and icmptypes to not create new entry (RBHZ#1131064) - configuration: - new service for Squid HTTP proxy server - new service for Kerberos admin server - new services for syslog and syslog-tls - new services for SNMP and SNMP traps - add Keywords to .desktop to improve software searchability - docs: - updated translations - firewalld.richlanguage: improvements suggested by Rufe Glick - firewalld.dbus: various improvements - firewalld.zone: better description of Limit tag - mention new homepage everywhere * Mon Aug 25 2014 Jiri Popelka - 0.3.11-2 - add few Requires to spec (RHBZ#1133167) * Wed Aug 20 2014 Jiri Popelka - 0.3.11-1 - firewalld: - improve error messages - check built-in chains in direct chain handling functions (RHBZ#1120619) - dbus_to_python() check whether input is of expected type (RHBZ#1122018) - handle negative timeout values (RHBZ#1124476) - warn when Command/Uid/Use/Context already in lockdown whitelist (RHBZ#1126405) - make --lockdown-{on,off} work again (RHBZ#1111573) - firewall-cmd: - --timeout now accepts time units (RHBZ#994044) - firewall-config: - show active (not default) zones in bold (RHBZ#993655) - configuration: - remove ipp-client service from all zones (RHBZ#1105639). - fallbacks for missing values in firewalld.conf - create missing dirs under /etc if needed - add -Es to python command in lockdown-whitelist.xml (RHBZ#1099065) - docs: - 'direct' methods concern only chains/rules added via 'direct' (RHBZ#1120619) - --remove-[interface/source] don't need a zone to be specified (RHBZ#1125851) - various fixes in firewalld.zone(5), firewalld.dbus(5), firewalld.direct(5) - others: - rpm macros for easier packaging of e.g. services * Wed May 28 2014 Jiri Popelka - 0.3.10-1 - new services: freeipa-*, puppermaster, amanda-k5, synergy, xmpp-*, tor, privoxy, sane - do not use at_console in D-Bus policies (RHBZ#1094745) - apply all rich rules for non-default targets - AppData file (RHBZ#1094754) - separate Polkit actions for desktop & server (RHBZ#1091068) - sanitize missing ip6t_rpfilter (RHBZ#1074427) - firewall/core/io/*: few improvements (RHBZ#1065738) - no load failed error for absent direct.xml file - new DBUS_INTERFACE.getZoneSettings to get all run-time zone settings - fixed creation and deletion of zones, services and icmptypes over D-Bus signals - FirewallClientZoneSettings: Set proper default target - if Python2 then encode strings from sax parser (RHBZ#1059104, RHBZ#1058853) - firewall-cmd: - don't colour output of query commands (RHBZ#1097841) - use "default" instead of {chain}_{zone} (RHBZ#1075675) - New --get-target and --set-target - Create and remove permanent zones, services and icmptypes - firewall-config: - Adding services and icmptypes resulted in duplicates in UI - Use left button menu of -applet in Option menu - firewall-offline-cmd: same functionality as 'firewall-cmd --permanent' - firewall-applet: ZoneConnectionEditor was missing the Default Zone entry - bash-completion: getting zones/services/icmps is different with/without --permanent - firewalld.zone(5): removed superfluous slash (RHBZ#1091575) - updated translations * Wed Feb 05 2014 Jiri Popelka - 0.3.9.3-1 - Fixed persistent port forwarding (RHBZ#1056154) - Stop default zone rules being applied to all zones (RHBZ#1057875) - Enforce trust, block and drop zones in the filter table only (RHBZ#1055190) - Allow RAs prior to applying IPv6_rpfilter (RHBZ#1058505) - Fix writing of rule.audit in zone_writer() * Fri Jan 17 2014 Jiri Popelka - 0.3.9.2-1 - fix regression introduced in 0.3.9 (RHBZ#1053932) * Thu Jan 16 2014 Jiri Popelka - 0.3.9.1-1 - fix regressions introduced in 0.3.9 (RHBZ#1054068, RHBZ#1054120) * Mon Jan 13 2014 Jiri Popelka - 0.3.9-1 - translation updates - New IPv6_rpfilter setting to enable source address validation (RHBZ#847707) - Do not mix original and customized zones in case of target changes, apply only used zones - firewall-cmd: fix --*_lockdown_whitelist_uid to work with uid 0 - Don't show main window maximized. (RHBZ#1046811) - Use rmmod instead of 'modprobe -r' (RHBZ#1031102) - Deprecate 'enabled' attribute of 'masquerade' element - firewall-config: new zone was added twice to the list - firewalld.dbus(5) - Enable python shebang fix again - firewall/client: handle_exceptions: Use loop in decorator - firewall-offline-cmd: Do not mask firewalld service with disabled option - firewall-config: richRuleDialogActionRejectType Entry -> ComboBox - Rich_Rule: fix parsing of reject element (RHBZ#1027373) - Show combined zones in permanent configuration (RHBZ#1002016) - firewall-cmd(1): document exit code 2 and colored output (RHBZ#1028507) - firewall-config: fix RHBZ#1028853 * Tue Nov 05 2013 Jiri Popelka - 0.3.8-1 - fix memory leaks - New option --debug-gc - Python3 compatibility - Better non-ascii support - several firewall-config & firewall-applet fixes - New --remove-rules commands for firewall-cmd and removeRules methods for D-Bus - Fixed FirewallDirect.get_rules to return proper list - Fixed LastUpdatedOrderedDict.keys() - Enable rich rule usage in trusted zone (RHBZ#994144) - New error codes: INVALID_CONTEXT, INVALID_COMMAND, INVALID_USER and INVALID_UID * Thu Oct 17 2013 Jiri Popelka - 0.3.7-1 - Don't fail on missing ip[6]tables/ebtables table. (RHBZ#967376) - bash-completion: --permanent --direct options - firewall/core/fw.py: fix checking for iptables & ip6tables (RHBZ#1017087) - firewall-cmd: use client's exception_handler instead of catching exceptions ourselves - FirewallClientZoneSettings: fix {add|remove|query}RichRule() - Extend amanda-client service with 10080/tcp (RHBZ#1016867) - Simplify Rich_Rule()_lexer() by using functions.splitArgs() - Fix encoding problems in exception handling (RHBZ#1015941) * Fri Oct 04 2013 Jiri Popelka - 0.3.6.2-1 - firewall-offline-cmd: --forward-port 'toaddr' is optional (RHBZ#1014958) - firewall-cmd: fix variable name (RHBZ#1015011) * Thu Oct 03 2013 Jiri Popelka - 0.3.6.1-1 - remove superfluous po files from archive * Wed Oct 02 2013 Jiri Popelka - 0.3.6-1 - firewalld.richlanguage.xml: correct log levels (RHBZ#993740) - firewall-config: Make sure that all zone settings are updated properly on firewalld restart - Rich_Limit: Allow long representation for duration (RHBZ#994103 - firewall-config: Show "Changes applied." after changes (RHBZ#993643) - Use own connection dialog to change zones for NM connections - Rename service cluster-suite to high-availability (RHBZ#885257) - Permanent direct support for firewall-config and firewall-cmd - Try to avoid file descriptor leaking (RHBZ#951900) - New functions to split and join args properly (honoring quotes) - firewall-cmd(1): 2 simple examples - Better IPv6 NAT checking. - Ship firewalld.direct(5). * Mon Sep 30 2013 Jiri Popelka - 0.3.5-1 - Only use one PK action for configuration (RHBZ#994729) - firewall-cmd: indicate non-zero exit code with red color - rich-rule: enable to have log without prefix & log_level & limit - log-level warn/err -> warning/error (RHBZ#1009436) - Use policy DROP while reloading, do not reset policy in restart twice - Add _direct chains to all table and chain combinations - documentation improvements - New firewalld.direct(5) man page docbook source - tests/firewall-cmd_test.sh: make rich language tests work - Rich_Rule._import_from_string(): improve error messages (RHBZ#994150) - direct.passthrough wasn't always matching out_signature (RHBZ#967800) - firewall-config: twist ICMP Type IP address family logic. - firewall-config: port-forwarding/masquerading dialog (RHBZ#993658) - firewall-offline-cmd: New --remove-service= option (BZ#969106) - firewall-config: Options->Lockdown was not changing permanent. - firewall-config: edit line on doubleclick (RHBZ#993572) - firewall-config: System Default Zone -> Default Zone (RHBZ#993811) - New direct D-Bus interface, persistent direct rule handling, enabled passthough - src/firewall-cmd: Fixed help output to use more visual parameters - src/firewall-cmd: New usage output, no redirection to man page anymore - src/firewall/core/rich.py: Fixed forwad port destinations - src/firewall-offline-cmd: Early enable/disable handling now with mask/unmask - doc/xml/firewalld.zone.xml: Added more information about masquerade use - Prefix to log message is optional (RHBZ#998079) - firewall-cmd: fix --permanent --change-interface (RHBZ#997974) - Sort zones/interfaces/service/icmptypes on output. - wbem-https service (RHBZ#996668) - applet&config: add support for KDE NetworkManager connection editor - firewall/core/fw_config.py: New method update_lockdown_whitelist - Added missing file watcher for lockdown whitelist in config D-Bus interface - firewall/core/watcher: New add_watch_file for lockdown-whitelist and direct - Make use of IPv6 NAT conditional, based on kernel number (RHBZ#967376) * Tue Jul 30 2013 Thomas Woerner 0.3.4-1 - several rich rule check enhancements and fixes - firewall-cmd: direct options - check ipv4|ipv6|eb (RHBZ#970505) - firewall-cmd(1): improve description of direct options (RHBZ#970509) - several firewall-applet enhancements and fixes - New README - several doc and man page fixes - Service definitions for PCP daemons (RHBZ#972262) - bash-completion: add lockdown and rich language options - firewall-cmd: add --permanent --list-all[-zones] - firewall-cmd: new -q/--quiet option - firewall-cmd: warn when default zone not active (RHBZ#971843) - firewall-cmd: check priority in --add-rule (RHBZ#914955) - add dhcpv6 (for server) service (RHBZ#917866) - firewall-cmd: add --permanent --get-zone-of-interface/source --change-interface/source - firewall-cmd: print result (yes/no) of all --query-* commands - move permanent-getZoneOf{Interface|Source} from firewall-cmd to server - Check Interfaces/sources when updating permanent zone settings. - FirewallDConfig: getZoneOfInterface/Source can actually return more zones - Fixed toaddr check in forward port to only allow single address, no range - firewall-cmd: various output improvements - fw_zone: use check_single_address from firewall.functions - getZoneOfInterface/Source does not need to throw exception - firewall.functions: Use socket.inet_pton in checkIP, fixed checkIP*nMask - firewall.core.io.service: Properly check port/proto and destination address - Install applet desktop file into /etc/xdg/autostart - Fixed option problem with rich rule destinations (RHBZ#979804) - Better exception creation in dbus_handle_exceptions() decorator (RHBZ#979790) - Updated firewall-offline-cmd - Use priority in add, remove, query and list of direct rules (RHBZ#979509) - New documentation (man pages are created from docbook sources) - firewall/core/io/direct.py: use prirority for rule methods, new get_all_ methods - direct: pass priority also to client.py and firewall-cmd - applet: New blink and blink-count settings - firewall.functions: New function ppid_of_pid - applet: Check for gnome3 and fix it, use new settings, new size-changed cb - firewall-offline-cmd: Fix use of systemctl in chroot - firewall-config: use string.ascii_letters instead of string.letters - dbus_to_python(): handle non-ascii chars in dbus.String. - Modernize old syntax constructions. - dict.keys() in Python 3 returns a "view" instead of list - Use gettext.install() to install _() in builtins namespace. - Allow non-ascii chars in 'short' and 'description' - README: More information for "Working With The Source Repository" - Build environment fixes - firewalld.spec: Added missing checks for rhel > 6 for pygobject3-base - firewall-applet: New setting show-inactive - Don't stop on reload when lockdown already enabled (RHBZ#987403) - firewall-cmd: --lockdown-on/off did not touch firewalld.conf - FirewallApplet.gschema.xml: Dropped unused sender-info setting - doc/firewall-applet.xml: Added information about gsettings - several debug and log message fixes - Add chain for sources so they can be checked before interfaces (RHBZ#903222) - Add dhcp and proxy-dhcp services (RHBZ#986947) - io/Zone(): don't error on deprecated family attr of source elem - Limit length of zone file name (to 12 chars) due to Netfilter internals. - It was not possible to overload a zone with defined source(s). - DEFAULT_ZONE_TARGET: {chain}_ZONE_{zone} -> {chain}_{zone} - New runtime getSettings for services and icmptypes, fixed policies callbacks - functions: New functions checkUser, checkUid and checkCommand - src/firewall/client: Fixed lockdown-whitelist-updated signal handling - firewall-cmd(1): move firewalld.richlanguage(5) reference in --*-rich-rule - Rich rule service: Only add modules for accept action - firewall/core/rich: Several fixes and enhanced checks - Fixed reload of direct rules - firewall/client: New functions to set and get the exception handler - firewall-config: New and enhanced UI to handle lockdown and rich rules - zone's immutable attribute is redundant - Do not allow to set settings in config for immutable zones. - Ignore deprecated 'immutable' attribute in zone files. - Eviscerate 'immutable' completely. - FirewallDirect.query_rule(): fix it - permanent direct: activate firewall.core.io.direct:Direct reader - core/io/*: simplify getting of character data - FirewallDirect.set_config(): allow reloading * Thu Jun 20 2013 Jiri Popelka - Remove migrating to a systemd unit file from a SysV initscript - Remove pointless "ExclusiveOS" tag * Fri Jun 7 2013 Thomas Woerner 0.3.3-2 - Fixed rich rule check for use in D-Bus * Thu Jun 6 2013 Thomas Woerner 0.3.3-1 - new service files - relicensed logger.py under GPLv2+ - firewall-config: sometimes we don't want to use client's exception handler - When removing Service/IcmpType remove it from zones too (RHBZ#958401) - firewall-config: work-around masquerade_check_cb() being called more times - Zone(IO): add interfaces/sources to D-Bus signature - Added missing UNKNOWN_SOURCE error code - fw_zone.check_source: Raise INVALID_FAMILY if family is invalid - New changeZoneOfInterface method, marked changeZone as deprecated - Fixed firewall-cmd man page entry for --panic-on - firewall-applet: Fixed possible problems of unescaped strings used for markup - New support to bind zones to source addresses and ranges (D-BUS, cmd, applet - Cleanup of unused variables in FirewallD.start - New firewall/fw_types.py with LastUpdatedOrderedDict - direct.chains, direct.rules: Using LastUpdatedOrderedDict - Support splitted zone files - New reader and writer for stored direct chains and rules - LockdownWhitelist: fix write(), add get_commands/uids/users/contexts() - fix service_writer() and icmptype_writer() to put newline at end of file - firewall-cmd: fix --list-sources - No need to specify whether source address family is IPv4 or IPv6 - add getZoneOfSource() to D-Bus interface - Add tests and bash-completion for the new "source" operations - Convert all input args in D-Bus methods - setDefaultZone() was calling accessCheck() *after* the action - New uniqify() function to remove duplicates from list whilst preserving order - Zone.combine() merge also services and ports - config/applet: silence DBusException during start when FirewallD is not running (RHBZ#966518) - firewall-applet: more fixes to make the address sources family agnostic - Better defaults for lockdown white list - Use auth_admin_keep for allow_any and allow_inactive also - New D-Bus API for lockdown policies - Use IPv4, IPv6 and BRIDGE for FirewallD properties - Use rich rule action as audit type - Prototype of string-only D-Bus interface for rich language - Fixed wrongly merged source family check in firewall/core/io/zone.py - handle_cmr: report errors, cleanup modules in error case only, mark handling - Use audit type from rule action, fixed rule output - Fixed lockdown whitelist D-Bus handling method names - New rich rule handling in runtime D-Bus interface - Added interface, source and rich rule handling (runtime and permanent) - Fixed dbus_obj in FirewallClientConfigPolicies, added queryLockdown - Write changes in setLockdownWhitelist - Fixed typo in policies log message in method calls - firewall-cmd: Added rich rule, lockdown and lockdown whitelist handling - Don't check access in query/getLockdownWhitelist*() - firewall-cmd: Also output masquerade flag in --list-all - firewall-cmd: argparse is able to convert argument to desired type itself - firewall-cmd_test.sh: tests for permanent interfaces/sources and lockdown whitelist - Makefile.am: add missing files - firewall-cmd_test.sh: tests for rich rules - Added lockdown, source, interface and rich rule docs to firewall-cmd - Do not masquerade lo if masquerade is enabled in the default zone (RHBZ#904098) - Use in metavar for firewall-cmd parser * Fri May 10 2013 Jiri Popelka - 0.3.2-2 - removed unintentional en_US.po from tarball * Tue Apr 30 2013 Jiri Popelka - 0.3.2-1 - Fix signal handling for SIGTERM - Additional service files (RHBZ#914859) - Updated po files - s/persistent/permanent/ (Trac Ticket #7) - Better behaviour when running without valid DISPLAY (RHBZ#955414) - client.handle_exceptions(): do not loop forever - Set Zone.defaults in zone_reader (RHBZ#951747) - client: do not pass the dbus exception name to handler - IO_Object_XMLGenerator: make it work with Python 2.7.4 (RHBZ#951741) - firewall-cmd: do not use deprecated BaseException.message - client.py: fix handle_exceptions() (RHBZ#951314) - firewall-config: check zone/service/icmptype name (RHBZ#947820) - Allow 3121/tcp (pacemaker_remote) in cluster-suite service. (RHBZ#885257) - firewall-applet: fix default zone hangling in 'shields-up' (RHBZ#947230) - FirewallError.get_code(): check for unknown error * Wed Apr 17 2013 Jiri Popelka - 0.3.1-2 - Make permanenent changes work with Python 2.7.4 (RHBZ#951741) * Thu Mar 28 2013 Thomas Woerner 0.3.1-1 - Use explicit file lists for make dist - New rich rule validation check code - New global check_port and check_address functions - Allow source white and black listing with the rich rule - Fix error handling in case of unsupported family in rich rule - Enable ip_forwarding in masquerade and forward-port - New functions to read and write simple files using filename and content - Add --enable-sysconfig to install Fedora-specific sysconfig config file. - Add chains for security table (RHBZ#927015) - firewalld.spec: no need to specify --with-systemd-unitdir - firewalld.service: remove syslog.target and dbus.target - firewalld.service: replace hard-coded paths - Move bash-completion to new location. - Revert "Added configure for new build env" - Revert "Added Makefile.in files" - Revert "Added po/Makefile.in.in" - Revert "Added po/LINGUAS" - Revert "Added aclocal.m4" - Amend zone XML Schema * Wed Mar 20 2013 Thomas Woerner 0.3.0-1 - Added rich language support - Added lockdown feature - Allow to bind interfaces and sources to zones permanently - Enabled IPv6 NAT support masquerading and port/packet forwarding for IPv6 only with rich language - Handle polkit errors in client class and firewall-config - Added priority description for --direct --add-rule in firewall-cmd man page - Add XML Schemas for zones/services/icmptypes XMLs - Don't keep file descriptors open when forking - Introduce --nopid option for firewalld - New FORWARD_IN_ZONES and FORWARD_OUT_ZONES chains (RHBZ#912782) - Update cluster-suite service (RHBZ#885257) - firewall-cmd: rename --enable/disable-panic to --panic-on/off (RHBZ#874912) - Fix interaction problem of changed event of gtk combobox with polkit-kde by processing all remaining events (RHBZ#915892) - Stop default zone rules being applied to all zones (RHBZ#912782) - Firewall.start(): don't call set_default_zone() - Add wiki's URL to firewalld(1) and firewall-cmd(1) man pages - firewalld-cmd: make --state verbose (RHBZ#886484) - improve firewalld --help (RHBZ#910492) - firewall-cmd: --add/remove-* can be used multiple times (RHBZ#879834) - Continue loading zone in case of wrong service/port etc. (RHBZ#909466) - Check also services and icmptypes in Zone() (RHBZ#909466) - Increase the maximum length of the port forwarding fields from 5 to 11 in firewall-config - firewall-cmd: add usage to fail message - firewall-cmd: redefine usage to point to man page - firewall-cmd: fix visible problems with arg. parsing - Use argparse module for parsing command line options and arguments - firewall-cmd.1: better clarify where to find ACTIONs - firewall-cmd Bash completion - firewall-cmd.1: comment --zone= usage and move some options - Use zone's target only in %s_ZONES chains - default zone in firewalld.conf was set to public with every restart (#902845) - man page cleanup - code cleanup * Thu Mar 07 2013 Jiri Popelka - 0.2.12-5 - Another fix for RHBZ#912782 * Wed Feb 20 2013 Jiri Popelka - 0.2.12-4 - Stop default zone rules being applied to all zones (RHBZ#912782) * Wed Feb 13 2013 Fedora Release Engineering - 0.2.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Tue Jan 22 2013 Jiri Popelka - 0.2.12-2 - Default zone in firewalld.conf was reseted with every restart (RHBZ#902845) - Add icon cache related scriptlets for firewall-config (RHBZ#902680) - Fix typo in firewall-config (RHBZ#895812) - Fix few mistakes in firewall-cmd(1) man page * Mon Jan 14 2013 Thomas Woerner 0.2.12-1 - firewall-cmd: use -V instead of -v for version info (RHBZ#886477) - firewall-cmd: don't check reload()'s return value (RHBZ#886461) - actually install firewalld.zones.5 - firewall-config: treat exceptions when adding new zone/service/icmp (RHBZ#886602) - firewalld.spec: Fixed requirements of firewall-config to use gtk2 and pygobject3 - Fail gracefully when running in non X environment.(RHBZ#886551) - offline-cmd: fail gracefully when no s-c-f config - fix duplicated iptables rules (RHBZ#886515) - detect errors and duplicates in config file (RHBZ#886581) - firewall-config: don't make 'Edit Service' and 'Edit ICMP Type' insensitive - firewalld.spec: fixed requirements, require pygobject3-base - frewall-applet: Unused code cleanup - firewall-applet: several usability fixes and enhancements (RHBZ#886531) (RHBZ#886534) - firewall/server/server.py: fixed KeyboardInterrupt message (RHBZ#886558) - Moved fallback zone and minimal_mark to firewall.config.__init__ - Do not raise ZONE_ALREADY_SET in change_zone if old zone is set again (RHBZ#886432) - Make default zone default for all unset connections/interfaces (RHBZ#888288) (RHBZ#882736) - firewall-config: Use Gtk.MessageType.WARNING for warning dialog - firewall-config: Handle unknown services and icmptypes in persistent mode - firewall-config: Do not load settings more than once - firewall-config: UI cleanup and fixes (RHBZ#888242) - firewall-cmd: created alias --change-zone for --change-interface - firewall-cmd man page updates (RHBZ#806511) - Merged branch 'build-cleanups' - dropped call to autogen.sh in build stage, not needed anymore due to 'build-cleanups' merge * Thu Dec 13 2012 Thomas Woerner 0.2.11-2 - require pygobject3-base instead of pygobject3 (no cairo needed) (RHBZ#874378) - fixed dependencies of firewall-config to use gtk3 with pygobject3-base and not pygtk2 * Tue Dec 11 2012 Thomas Woerner 0.2.11-1 - Fixed more _xmlplus (PyXML) incompatibilities to python xml - Several man page updates - Fixed error in addForwardPort, removeForwardPort and queryForwardPort - firewall-cmd: use already existing queryForwardPort() - Update firewall.cmd man page, use man page as firewall-cmd usage (rhbz#876394) - firewall-config: Do not force to show labels in the main toolbar - firewall-config: Dropped "Change default zone" from toolbar - firewall-config: Added menu entry to change zones of connections - firewall-applet: Zones can be changed now using nm-connection-editor (rhbz#876661) - translation updates: cs, hu, ja * Tue Nov 20 2012 Thomas Woerner 0.2.10-1 - tests/firewalld_config.py: tests for config.service and config.icmptype - FirewallClientConfigServiceSettings(): destinations are dict not list - service/zone/icmptype: do not write deprecated name attribute - New service ntp - firewall-config: Fixed name of about dialog - configure.in: Fixed getting of error codes - Added coding to all pyhton files - Fixed copyright years - Beautified file headers - Force use of pygobject3 in python-slip (RHBZ#874378) - Log: firewall.server.config_icmptype, firewall.server.config_service and firewall.server.config_zone: Prepend full path - Allow ":" in interface names for interface aliases - Add name argument to Updated and Renamed signal - Disable IPv4, IPv6 and EB tables if missing - for IPv4/IPv6 only environments - firewall-config.glade file cleanup - firewall-config: loadDefaults() can throw exception - Use toolbars for Add/Edit/Remove/LoadDefaults buttons for zones, services and icmp types - New vnc-server service, opens ports for displays :0 to :3 (RHBZ#877035) - firewall-cmd: Fix typo in help output, allow default zone usage for permanenent options - Translation updates: cs, fr, ja, pt_BR and zh_CN * Wed Oct 17 2012 Thomas Woerner 0.2.9-1 - firewall-config: some UI usability changes - firewall-cmd: New option --list-all-zones, output of --list-all changed, more option combination checks - firewall-applet: Replaced NMClient by direct DBUS calls to fix python core dumps in case of connection activates/deactivates - Use fallback 'C' locale if current locale isn't supported (RHBZ#860278) - Add interfaces to zones again after reload - firewall-cmd: use FirewallClient().connected value - firewall-cmd: --remove-interface was not working due to a typo - Do not use restorecon for new and backup files - Fixed use of properties REJECT and DROP - firewalld_test.py: check interfaces after reload - Translation updates - Renamed firewall-convert-scfw-config to firewall-offline-cmd, used by anaconda for firewall configuration (e.g. kickstart) - Fix python shebang to use -Es at installation time for bin_SCRIPTS and sbin_SCRIPTS and at all times in gtk3_chooserbutton.py - tests/firewalld_config.py: update test_zones() test case - Config interface: improve renaming of zones/services/icmp_types - Move emiting of Added signals closer to source. - FirewallClient(): config:ServiceAdded signal was wrongly mapped - Add argument 'name' to Removed signal - firewall-config: Add callbacks for config:[service|icmp]-[added|removed] - firewall-config: catch INVALID_X error when removing zone/service/icmp_type - firewall-config: remove unused code - Revert "Neutralize _xmlplus instead of conforming it" - firewall-applet: some UI usability changes - firewall-cmd: ALREADY_ENABLED, NOT_ENABLED, ZONE_ALREADY_SET are warnings * Fri Sep 7 2012 Thomas Woerner 0.2.8-1 - Do not apply old settings to zones after reload - FirewallClient: Added callback structure for firewalld signals - New firewall-config with full zone, service and icmptype support - Added Shields Up/Down configuration dialog to firewall-applet - Name attribute of main tag deprecated for zones, services and icmptypes, will be ignored if present - Fixed wrong references in firewalld man page - Unregister DBus interfaces after sending out the Removed signal - Use proper DBus signature in addIcmpType, addService and addZone - New builtin property for config interfaces - New test case for Config interface - spec: use new systemd-rpm macros (rhbz#850110) - More config file verifications - Lots of smaller fixes and enhancements * Tue Aug 21 2012 Jiri Popelka 0.2.7-2 - use new systemd-rpm macros (rhbz#850110) * Mon Aug 13 2012 Thomas Woerner 0.2.7-1 - Update of firewall-config - Some bug fixes * Tue Aug 7 2012 Thomas Woerner 0.2.6-1 - New D-BUS interface for persistent configuration - Aded support for persistent zone configuration in firewall-cmd - New Shields Up feature in firewall-applet - New requirements for python-decorator and pygobject3 - New firewall-config sub-package - New firewall-convert-scfw-config config script * Fri Apr 20 2012 Thomas Woerner 0.2.5-1 - Fixed traceback in firewall-cmd for failed or canceled authorization, return proper error codes, new error codes NOT_RUNNING and NOT_AUTHORIZED - Enhanced firewalld service file (RHBZ#806868) and (RHBZ#811240) - Fixed duplicates in zone after reload, enabled timed settings after reload - Removed conntrack --ctstate INVALID check from default ruleset, because it results in ICMP problems (RHBZ#806017). - Update interfaces in default zone after reload (rhbz#804814) - New man pages for firewalld(1), firewalld.conf(5), firewalld.icmptype(5), firewalld.service(5) and firewalld.zone(5), updated firewall-cmd man page (RHBZ#811257) - Fixed firewall-cmd help output - Fixed missing icon for firewall-applet (RHBZ#808759) - Added root user check for firewalld (RHBZ#767654) - Fixed requirements of firewall-applet sub package (RHBZ#808746) - Update interfaces in default zone after changing of default zone (RHBZ#804814) - Start firewalld before NetworkManager (RHBZ#811240) - Add Type=dbus and BusName to service file (RHBZ#811240) * Fri Mar 16 2012 Thomas Woerner 0.2.4-1 - fixed firewalld.conf save exception if no temporary file can be written to /etc/firewalld/ * Thu Mar 15 2012 Thomas Woerner 0.2.3-1 - firewall-cmd: several changes and fixes - code cleanup - fixed icmp protocol used for ipv6 (rhbz#801182) - added and fixed some comments - properly restore zone settings, timeout is always set, check for 0 - some FirewallError exceptions were actually not raised - do not REJECT in each zone - removeInterface() don't require zone - new tests in firewall-test script - dbus_to_python() was ignoring certain values - added functions for the direct interface: chains, rules, passthrough - fixed inconsistent data after reload - some fixes for the direct interface: priority positions are bound to ipv, table and chain - added support for direct interface in firewall-cmd: - added isImmutable(zone) to zone D-Bus interface - renamed policy file - enhancements for error messages, enables output for direct.passthrough - added allow_any to firewald policies, using at leas auth_admin for policies - replaced ENABLE_FAILED, DISABLE_FAILED, ADD_FAILED and REMOVE_FAILED by COMMAND_FAILED, resorted error codes - new firewalld configuration setting CleanupOnExit - enabled polkit again, found a fix for property problem with slip.dbus.service - added dhcpv6-client to 'public' (the default) and to 'internal' zones. - fixed missing settings form zone config files in "firewall-cmd --list=all --zone=" call - added list functions for services and icmptypes, added --list=services and --list=icmptypes to firewall-cmd * Tue Mar 6 2012 Thomas Woerner 0.2.2-1 - enabled dhcpv6-client service for zones home and work - new dhcpv6-client service - firewall-cmd: query mode returns reversed values - new zone.changeZone(zone, interface) - moved zones, services and icmptypes to /usr/lib/firewalld, can be overloaded by files in /etc/firewalld (no overload of immutable zones block, drop, trusted) - reset MinimalMark in firewalld.cnf to default value - fixed service destination (addresses not used) - fix xmlplus to be compatible with the python xml sax parser and python 3 by adding __contains__ to xml.sax.xmlreader.AttributesImpl - use icon and glib related post, postun and posttrans scriptes for firewall - firewall-cmd: fix typo in state - firewall-cmd: fix usage() - firewall-cmd: fix interface action description in usage() - client.py: fix definition of queryInterface() - client.py: fix typo in getInterfaces() - firewalld.service: do not fork - firewall-cmd: fix bug in --list=port and --port action help message - firewall-cmd: fix bug in --list=service * Mon Mar 5 2012 Thomas Woerner - moved zones, services and icmptypes to /usr/lib/firewalld, can be overloaded by files in /etc/firewalld (no overload of immutable zones block, drop, trusted) * Tue Feb 21 2012 Thomas Woerner 0.2.1-1 - added missing firewall.dbus_utils * Tue Feb 7 2012 Thomas Woerner 0.2.0-2 - added glib2-devel to build requires, needed for gsettings.m4 - added --with-system-unitdir arg to fix installaiton of system file - added glib-compile-schemas calls for postun and posttrans - added EXTRA_DIST file lists * Mon Feb 6 2012 Thomas Woerner 0.2.0-1 - version 0.2.0 with new FirewallD1 D-BUS interface - supports zones with a default zone - new direct interface as a replacement of the partial virt interface with additional passthrough functionality - dropped custom rules, use direct interface instead - dropped trusted interface funcionality, use trusted zone instead - using zone, service and icmptype configuration files - not using any system-config-firewall parts anymore * Mon Feb 14 2011 Thomas Woerner 0.1.3-1 - new version 0.1.3 - restore all firewall features for reload: panic and virt rules and chains - string fixes for firewall-cmd man page (by Jiri Popelka) - fixed firewall-cmd port list (by Jiri Popelka) - added firewall dbus client connect check to firewall-cmd (by Jiri Popelka) - translation updates: de, es, gu, it, ja, kn, ml, nl, or, pa, pl, ru, ta, uk, zh_CN * Mon Jan 3 2011 Thomas Woerner 0.1.2-1 - fixed package according to package review (rhbz#665395): - non executable scripts: dropped shebang - using newer GPL license file - made /etc/dbus-1/system.d/FirewallD.conf config(noreplace) - added requires(post) and (pre) for chkconfig * Mon Jan 3 2011 Thomas Woerner 0.1.1-1 - new version 0.1.1 - fixed source path in POTFILES* - added missing firewall_config.py.in - added misssing space for spec_ver line - using firewall_config.VARLOGFILE - added date to logging output - also log fatal and error logs to stderr and firewall_config.VARLOGFILE - make log message for active_firewalld fatal * Mon Dec 20 2010 Thomas Woerner 0.1-1 - initial package (proof of concept implementation) firewalld-0.4.4.6/fix_python_shebang.sh000077500000000000000000000001141320241217000200350ustar00rootroot00000000000000#!/bin/bash sed -e "s@^#\!/usr/bin/python\$@#\!/usr/bin/python -Es@" -i $@ firewalld-0.4.4.6/po/000077500000000000000000000000001320241217000142425ustar00rootroot00000000000000firewalld-0.4.4.6/po/.gitignore000066400000000000000000000000131320241217000162240ustar00rootroot00000000000000*.mo *.*~* firewalld-0.4.4.6/po/POTFILES.in000066400000000000000000000051341320241217000160220ustar00rootroot00000000000000config/org.fedoraproject.FirewallD1.desktop.policy.in config/org.fedoraproject.FirewallD1.server.policy.in config/firewall-applet.desktop.in config/firewall-config.desktop.in config/icmptypes/destination-unreachable.xml config/icmptypes/echo-reply.xml config/icmptypes/echo-request.xml config/icmptypes/parameter-problem.xml config/icmptypes/redirect.xml config/icmptypes/router-advertisement.xml config/icmptypes/router-solicitation.xml config/icmptypes/source-quench.xml config/icmptypes/time-exceeded.xml config/services/amanda-client.xml config/services/bacula-client.xml config/services/bacula.xml config/services/dhcpv6-client.xml config/services/dns.xml config/services/ftp.xml config/services/high-availability.xml config/services/http.xml config/services/https.xml config/services/imaps.xml config/services/ipp-client.xml config/services/ipp.xml config/services/ipsec.xml config/services/libvirt-tls.xml config/services/libvirt.xml config/services/mdns.xml config/services/nfs.xml config/services/ntp.xml config/services/openvpn.xml config/services/pop3s.xml config/services/radius.xml config/services/samba-client.xml config/services/samba.xml config/services/smtp.xml config/services/ssh.xml config/services/telnet.xml config/services/tftp-client.xml config/services/tftp.xml config/zones/block.xml config/zones/dmz.xml config/zones/drop.xml config/zones/external.xml config/zones/home.xml config/zones/internal.xml config/zones/public.xml config/zones/trusted.xml config/zones/work.xml src/firewall/__init__.py src/firewall/client.py src/firewall/dbus_utils.py src/firewall/errors.py src/firewall/functions.py src/firewall/config/dbus.py src/firewall/core/__init__.py src/firewall/core/base.py src/firewall/core/ebtables.py src/firewall/core/fw.py src/firewall/core/fw_config.py src/firewall/core/fw_direct.py src/firewall/core/fw_icmptype.py src/firewall/core/fw_service.py src/firewall/core/fw_zone.py src/firewall/core/ipXtables.py src/firewall/core/logger.py src/firewall/core/modules.py src/firewall/core/prog.py src/firewall/core/watcher.py src/firewall/core/io/__init__.py src/firewall/core/io/firewalld_conf.py src/firewall/core/io/icmptype.py src/firewall/core/io/io_object.py src/firewall/core/io/service.py src/firewall/core/io/zone.py src/firewall/server/__init__.py src/firewall/server/config.py src/firewall/server/config_icmptype.py src/firewall/server/config_service.py src/firewall/server/config_zone.py src/firewall/server/decorators.py src/firewall/server/firewalld.py src/firewall/server/server.py src/firewalld src/firewall-applet src/firewall-cmd src/firewall-config src/firewall-config.glade src/firewall-offline-cmd firewalld-0.4.4.6/po/POTFILES.skip000066400000000000000000000000001320241217000163450ustar00rootroot00000000000000firewalld-0.4.4.6/po/ar.po000066400000000000000000001261121320241217000152070ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Abdalrahim Fakhouri , 2010 # Abdalrahim Fakhouri , 2010 # Abdalrahim Fakhouri , 2010 # Alfakhori , 2010 # Maha Helwa , 2004 # Alfakhori , 2010 # Ossama M. Khayat , 2004 # Sherif Abdelgawad , 2004 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:43-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/firewalld/" "language/ar/)\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "الجدار النّاري" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "إعدادات الجدار النّاري" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ù…ÙØ¹Ø·Ù‰ غير صالح %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Ø®ÙØ¯Ù…Ø©" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Ù…ÙŽÙ†ÙØ°" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Ù…ÙŠÙØ§Ù‚" #: ../src/firewall-config:560 msgid "To Port" msgstr "إلى Ø§Ù„Ù…ÙŽÙ†ÙØ°" #: ../src/firewall-config:562 msgid "To Address" msgstr "إلى العنوان" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "إنذار" #: ../src/firewall-config:1612 msgid "Error" msgstr "خطأ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "تحويل Ù…ÙŽÙ†ÙØ°" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "الرجاء تحديد المصدر وخيارات الوجهه ÙˆÙقا لحاجتك." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Ù…ÙŽÙ†ÙØ°/مدى Ø§Ù„Ù…ÙŽÙ†ÙØ°" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "رقم العنوان عبر الشبكة" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Ù…ÙŠÙØ§Ù‚:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "اذا مكنت التحويل المحلي لديك لتحديد Ù…Ù†ÙØ°.هذا Ø§Ù„Ù…Ù†ÙØ° قد يكون مختل٠عن Ø§Ù„Ù…Ù†ÙØ° " "المصدر." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "تَحويل مَحلي" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "تَحويل Ù„Ù…Ù†ÙØ° اخر" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "نوع ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Ø¥Ø¶Ø§ÙØ© مدخلة" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_ملÙ" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_خيارات" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_مساعدة" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "إلى Ø§Ù„Ù…ÙŽÙ†ÙØ°" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "يسمح لك التقنيع أن تعدّ Ù…Ø¶ÙŠÙØ§Ù‹ أو موجّهاً ليوصل شبكتك المحلّية بالشبكة " "العالميّة. ستظهر جميع الأجهزة على هذه الشبكة كعنوان واحد على الإنترنت. " "التقنيع لـIPv4 Ùقط." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "ØªÙ†ÙƒÙØ±" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Ø£Ø¶Ù Ù…ÙØ¯Ø®Ù„اً لتحويل Ù…Ù†ÙØ° إلى آخر محلّيّ أو إلى نظام آخر. التحويل إلى نظام آخر " "Ù…Ùيد إذا كانت الواجهة Ù…Ùقنّعة. تحويل Ø§Ù„Ù…Ù†Ø§ÙØ° يعمل على IPv4 Ùقط." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "يستخدم Ù…ÙŠÙØ§Ù‚ التحكم برسائل الشبكة (ICMP) لإرسال رسائل الأخطاء بين الأجهزة " "امزودة باتصال شبكيّ، ورسائل المعلومات، مثل طلب الرّد ورجع الصدى." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "علّم أنواع ICMP التي Ø³ØªØ±ÙØ¶ ÙÙŠ القائمة. كلّ أنواع ICMP الأخرى سيسمح لها " "بالمرور عبر الجدار الناريّ. المبدئيّ هو عدم وجود قيود." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Ù…ÙØ±Ø´Ø­ Ù…ÙŠÙØ§Ù‚ رسائل مراقبة الشبكة -ICMP-" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "تحرير مدخلة" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "حَذ٠المدخلة" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Ø§Ù„Ù…Ù†ÙØ° ÙˆØ§Ù„Ù…ÙŠÙØ§Ù‚" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "" firewalld-0.4.4.6/po/as.po000066400000000000000000002040301320241217000152040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Amitakhya Phukan , 2006 # Amitakhya Phukan , 2007-2010 # Amitakhya Phukan , 2007-2008,2010 # Nilamdyuti Goswami , 2013 # Nilamdyuti Goswami , 2013-2014 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:15-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Assamese (http://www.transifex.com/projects/p/firewalld/" "language/as/)\n" "Language: as\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ফায়াৰৱাল à¦à¦ªà§à¦²à§‡à¦Ÿ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ফায়াৰà§à§±à¦¾à¦²" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ফায়াৰà§à§±à¦¾à¦² বিনà§à¦¯à¦¾à¦¸" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '%s' à§° বাবে অঞà§à¦šà¦² বাছক" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "সংযোগ '%s' à§° বাবে অঞà§à¦šà¦² বাছক" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "শিলà§à¦¡ আপ/ডাউন অঞà§à¦šà¦²à¦¬à§‹à§° সংৰূপণ কৰক" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "ইয়াত আপà§à¦¨à¦¿ শিলà§à¦¡ আপ আৰৠশিলà§à¦¡ ডাউনৰ বাবে বà§à¦¯à§±à¦¹à§ƒà¦¤ অঞà§à¦šà¦²à¦¬à§‹à§° বাছিব পাৰিব।" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²à¦¬à§‹à§° বà§à¦¯à§±à¦¹à¦¾à§° কৰা লোকৰ বাবে উপযোগী। " "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰীসকল, যিসকলে সংযোগসমূহৰ অঞà§à¦šà¦²à¦¸à¦®à§‚হ পৰিবৰà§à¦¤à¦¨ কৰি আছে, ইয়াৰ বà§à¦¯à§±à¦¹à¦¾à§° " "সীমিত হব।" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "শিলà§à¦¡ আপ অঞà§à¦šà¦²:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "শিলà§à¦¡ ডাউন অঞà§à¦šà¦²:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "শিলà§à¦¡ আপ" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "অধিসূচনাসমূহ সামৰà§à¦¥à¦¬à¦¾à¦¨ কৰক" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ফায়াৰৱাল সংহতিসমূহ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "সংযোগসমূহৰ অঞà§à¦šà¦²à¦¬à§‹à§° পৰিবৰà§à¦¤à¦¨ কৰক..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "শিলà§à¦¡ আপ/ডাউন অঞà§à¦šà¦²à¦¬à§‹à§° সংৰূপণ কৰক..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "সকলো নেটৱাৰà§à¦• টà§à§°à¦¾à¦«à¦¿à¦• ৰোধ কৰক" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "সংযোগসমূহ" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "উৎসসমূহ" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণ বà§à¦¯à§°à§à¦¥ হল।" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "অবৈধ তৰà§à¦• %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "নাম ইতিমধà§à¦¯à§‡ অসà§à¦¤à¦¿à¦¤à§à¦¬à¦¬à¦¾à¦¨" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ফায়াৰৱাল ডিমনলৈ কোনো সংযোগ নাই" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "সকলো নেটৱাৰà§à¦• টà§à§°à¦¾à¦«à¦¿à¦• ৰোধ কৰা হৈছে।" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '{interface}' ত সংযোগ '{connection}' à§° বাবে সকà§à§°à¦¿à§Ÿ অঞà§à¦šà¦² '{zone}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '{interface}' à§° বাবে সকà§à§°à¦¿à§Ÿ অঞà§à¦šà¦² '{zone}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "উৎস {source} à§° বাবে সকà§à§°à¦¿à§Ÿ অঞà§à¦šà¦² '{zone}'" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "কোনো সকà§à§°à¦¿à§Ÿ অঞà§à¦šà¦² নাই।" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD লৈ সংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤à¥¤" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD লৈ সংযোগ বিচà§à¦›à¦¿à¦¨à§à¦¨ হৈছে।" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD ক পà§à¦¨à§° ল'ড কৰা হৈছে।" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²à¦• '%s' লৈ পৰিবৰà§à¦¤à¦¨ কৰা হৈছে।" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "নেটৱাৰà§à¦• টà§à§°à¦¾à¦«à¦¿à¦• আৰৠৰোধ কৰা হোৱা নাই।" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "সকà§à§°à¦¿à§Ÿ" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "নিষà§à¦•à§à§°à¦¿à§Ÿ" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '{interface}' ত সংযোগ '{connection}' à§° বাবে অঞà§à¦šà¦² '{zone}' " "{activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '{interface}' à§° বাবে অঞà§à¦šà¦² '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  '%s' à§° বাবে অঞà§à¦šà¦² '%s' সকà§à§°à¦¿à§Ÿ" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "উৎস '{source}' à§° বাবে অঞà§à¦šà¦² '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "উৎস '%s' à§° বাবে অঞà§à¦šà¦² '%s' সকà§à§°à¦¿à§Ÿ" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "পৰিবৰà§à¦¤à¦¨à¦¸à¦®à§‚হ পà§à§°à§Ÿà§‹à¦— কৰা হৈছে।" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "নেটৱাৰà§à¦• সংযোগ '%s' দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à§±à¦¹à§ƒà¦¤" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "সামৰà§à¦¥à¦¬à¦¾à¦¨" #: ../src/firewall-config:97 msgid "disabled" msgstr "অসামৰà§à¦¥à¦¬à¦¾à¦¨" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "আইকনসমূহ ল'ড কৰিবলৈ বà§à¦¯à§°à§à¦¥à¥¤" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "চলনসময়" #: ../src/firewall-config:398 msgid "Permanent" msgstr "সà§à¦¥à¦¾à§Ÿà§€" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "সেৱা" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "প'à§°à§à¦Ÿ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "নিয়মনীতি" #: ../src/firewall-config:560 msgid "To Port" msgstr "প'à§°à§à¦Ÿ" #: ../src/firewall-config:562 msgid "To Address" msgstr "ঠিকনাৰ ধৰন:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp ধৰণ" #: ../src/firewall-config:817 msgid "Family" msgstr "পৰিয়াল" #: ../src/firewall-config:819 msgid "Action" msgstr "কাৰà§à¦¯à§à¦¯" #: ../src/firewall-config:821 msgid "Element" msgstr "উপাদান" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "লগ" #: ../src/firewall-config:829 msgid "Audit" msgstr "অডিট" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "সà¦à¦•িয়নি" #: ../src/firewall-config:1612 msgid "Error" msgstr "ভà§à¦²" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "গà§à§°à¦¹à¦£ কৰক" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "নাকচ কৰক" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ডà§à§°à¦ª কৰক" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "সীমা" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "সেৱা" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "পৰà§à¦Ÿ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "পà§à§°à¦Ÿà§‹à¦•ল" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "ছদà§à¦®à¦¬à§‡à¦¶" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "সà§à¦¤à§°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "হয়" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "অঞà§à¦šà¦²" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "অঞà§à¦šà¦² '%s': সেৱা '%s' উপলবà§à¦§ নহয়।" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "আতৰাওক" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "উপেকà§à¦·à¦¾ কৰক" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "অঞà§à¦šà¦² '%s': ICMP ধৰণ '%s' উপলবà§à¦§ নহয়।" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "বিলট-ইন অঞà§à¦šà¦², পà§à¦¨à§° নামকৰণ সমৰà§à¦¥à¦¿à¦¤ নহয়।" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ছেকেণà§à¦¡" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "মিনিট" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ঘনà§à¦Ÿà¦¾" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "দিন" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "আপাতকালীন" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "সতৰà§à¦•" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "মাৰাতà§à¦®à¦•" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "তà§à§°à§à¦Ÿà¦¿" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "সতৰà§à¦•বাৰà§à¦¤à¦¾" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "ঘোষণা" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "তথà§à¦¯" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ডিবাগ কৰক" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "অনà§à¦¯ চিসà§à¦Ÿà§‡à¦®à¦²à§ˆ ফৰৱাৰà§à¦¡ কৰাটো কেৱল তেতিয়াহে লাভদায়ক যেতিয়া আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  " "মাসà§à¦•à§à§°à§‡à¦¡à§‡à¦¡ থাকে।\n" "আপà§à¦¨à¦¿ à¦à¦‡ অঞà§à¦šà¦²à¦Ÿà§‹ মাসà§à¦•à§à§°à§‡à¦¡ কৰিব বিচাৰে নে?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "বিলট-ইন সেৱা, পà§à¦¨à§° নামকৰণ সমৰà§à¦¥à¦¿à¦¤ নহয়।" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "বিলট-ইন icmp, পà§à¦¨à§° নামকৰণ সমৰà§à¦¥à¦¿à¦¤ নহয়।" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "উৎস %s à§° বাবে অঞà§à¦šà¦² বাছক" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ঠিকনা" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "অনà§à¦—à§à§°à¦¹ কৰি কমানà§à¦¡ শাৰীলৈ যাওক।" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "অনà§à¦—à§à§°à¦¹ কৰি পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤ সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "অনà§à¦—à§à§°à¦¹ কৰি তলৰ তালিকাৰ পৰা অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦² বাছক।" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "পà§à§°à¦¤à§à¦¯à¦•à§à¦· শৃংখল" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "অনà§à¦—à§à§°à¦¹ কৰি ipv আৰৠটেবà§à¦² বাছক আৰৠশৃংখল নাম সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "শৃংখল:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "à§°'" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "সà§à§°à¦•à§à¦·à¦¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "টেবà§à¦²:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "পà§à§°à¦¤à§à¦¯à¦•à§à¦· পাছথà§à§°à§ নিয়ম" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "অনà§à¦—à§à§°à¦¹ কৰি ipv বাছক আৰৠargs সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "প'à§°à§à¦Ÿ ফৰৱাৰà§à¦¡à¦¿à¦‚" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "আপোনাৰ পà§à§°à§Ÿà§‹à¦œà¦¨à§° মতে উৎস আৰৠগনà§à¦¤à¦¬à§à¦¯à§° বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক ।" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "প'à§°à§à¦Ÿ / প'à§°à§à¦Ÿà§‡à§° সীমা:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP ঠিকনা:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "নিয়মনীতি:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "উৎস" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "গনà§à¦¤à¦¬à§à¦¯" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "সà§à¦¥à¦¾à¦¨à§€à§Ÿ ভাবে আগবà§à§‹à§±à¦¾ সকà§à§°à¦¿à§Ÿ কৰিলে, আপà§à¦¨à¦¿ à¦à¦Ÿà¦¾ প'à§°à§à¦Ÿ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ কৰিব লাগিব ।à¦à¦‡ " "প'à§°à§à¦Ÿ উৎসৰ প'à§°à§à¦Ÿà§° পৰা বেলেগ হ'ব লাগি ব ।" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "সà§à¦¥à¦¾à¦¨à¦¿à§Ÿ ফৰৱাৰà§à¦¡à¦¿à¦‚" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "অনà§à¦¯ à¦à¦Ÿà¦¾ প'à§°à§à¦Ÿà¦²à§ˆ আগবà§à§‹à§±à¦¾ হৈছে" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ডাঠ ৰূপত থকা পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿à¦¬à§‹à§° বাধà§à¦¯à¦¤à¦¾à¦®à§‚লক, অনà§à¦¯ সকলো বৈকলà§à¦ªà¦¿à¦•।" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "নাম:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "সংসà§à¦•ৰণ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "সৰà§:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "বিৱৰণ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "পৰিয়াল:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ভিতà§à¦¤à¦¿ ICMP ধৰণ সংহতিসমূহ" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "অনà§à¦—à§à§°à¦¹ কৰি ভিতà§à¦¤à¦¿ ICMP ধৰণ সংহতিসমূহ সংৰূপণ কৰক" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP ধৰণ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "অনà§à¦—à§à§°à¦¹ কৰি à¦à¦Ÿà¦¾ ICMP ধৰণ বাছক" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "নিবেশ যোগ কৰক" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "নথিপতà§à§° (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "বিবিধ বিকলà§à¦ª (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld পà§à¦¨à§° ল'ড কৰক" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ফায়াৰৱাল নিয়মসমূহ পà§à¦¨à§° ল'ড কৰে। বৰà§à¦¤à¦®à¦¾à¦¨ চলনসময় সংৰূপ নতà§à¦¨ চলনসময় অংৰূপ হ'ব, " "অৰà§à¦¥à¦¾à¦¤ পà§à¦¨à§° ল'ড হোৱালৈ সকলো কেৱল চলনসময় পৰিবৰà§à¦¤à¦¨à¦¸à¦®à§‚হ পà§à¦¨à§° ল'ডৰ সৈতে নহোৱা হব " "যদি সিহতো সà§à¦¥à¦¾à§Ÿà§€ সংৰূপত নাথাকিল হেতেন।" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "à¦à¦Ÿà¦¾ নেটৱাৰà§à¦• সংযোগ থকা অঞà§à¦šà¦² পৰিবৰà§à¦¤à¦¨ কৰক।" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦² পৰিবৰà§à¦¤à¦¨ কৰক" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "সংযোগসমূহ অথবা আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦ à¦¸à¦®à§‚হৰ বাবে অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦² পৰিবৰà§à¦¤à¦¨ কৰক।" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "পেনিক অৱসà§à¦¥à¦¾à§° অৰà§à¦¥ সকলো অনà§à¦¤à§°à¦—ামী আৰৠবহিৰà§à¦—ামী পেকেটসমূহ ডà§à§°à¦ª কৰা হব।" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "আতঙà§à¦• অৱসà§à¦¥à¦¾" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "লকডাউনে ফায়াৰৱাল সংৰূপ লক কৰে যাতে কেৱল লকডাউন হোৱাইটলিসà§à¦Ÿà¦¤ থকা " "à¦à¦ªà§à¦²à¦¿à¦•েচনসমূহে ইয়াক পৰিবৰà§à¦¤à¦¨ কৰিব পাৰে।" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "লকডাউন" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "চলনসময় সংৰূপ চিৰসà§à¦¥à¦¾à§Ÿà§€ কৰক" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "চলনসময়ৰ পৰা চিৰসà§à¦¥à¦¾à§Ÿà§€" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "দৰà§à¦¶à¦¨ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP ধৰণসমূহ" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "পà§à§°à¦¤à§à¦¯à¦•à§à¦· সংৰূপ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "লকডাউন হোৱাইটলিসà§à¦Ÿ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "সহায়তা (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "সংৰূপ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "বৰà§à¦¤à¦®à¦¾à¦¨à§‡ দৃশà§à¦¯ সংৰূপ। চলনসময় সংৰূপ হল পà§à§°à¦•ৃত সকà§à§°à¦¿à§Ÿ সংৰূপ। সà§à¦¥à¦¾à§Ÿà§€ সংৰূপ " "সেৱাৰ পিছত অথবা চিসà§à¦Ÿà§‡à¦® পà§à¦¨à§° ল'ড অথবা পà§à¦¨à¦¾à§°à¦®à§à¦­à§° পিছত সকà§à§°à¦¿à§Ÿ হব।" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "à¦à¦Ÿà¦¾ firewalld অঞà§à¦šà¦²à§‡ নেটৱাৰà§à¦• সংযোগসমূহ, আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦ à¦¸à¦®à§‚হ আৰৠঅঞà§à¦šà¦²à§° সৈতে " "সংযà§à¦•à§à¦¤ উৎস ঠিকনাসমূহৰ বাবে ভৰষাৰ সà§à¦¤à§°à§° বিৱৰণ দিয়ে। অঞà§à¦šà¦²à§‡ সেৱাসমূহ, " "পৰà§à¦Ÿà¦¸à¦®à§‚হ, পà§à§°à¦Ÿà§‹à¦•লসমূহ, ছদà§à¦®à¦¬à§‡à¦¶, পৰà§à¦Ÿ/পেকেট ফৰৱাৰà§à¦¡à¦¿à¦‚, icmp, ফিলà§à¦Ÿà¦¾à§°à¦¸à¦®à§‚হ আৰৠ" "সমৃদà§à¦§ নিয়মসমূহ à¦à¦•তà§à§°à¦¿à¦¤ কৰে। অঞà§à¦šà¦²à¦• আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦ à¦¸à¦®à§‚হ আৰৠউৎস ঠিকনাসমূহলৈ " "সংযà§à¦•à§à¦¤ কৰিব পাৰি।" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "অঞà§à¦šà¦² যোগ কৰক" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "অঞà§à¦šà¦² সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "অঞà§à¦šà¦² আতৰাওক" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "অঞà§à¦šà¦²à§° অবিকলà§à¦ªà¦¿à¦¤à¦¸à¦®à§‚হ ল'ড কৰক" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ইয়াত আপà§à¦¨à¦¿ বিৱৰণ দিব পাৰিব কোন সেৱাসমূহ অঞà§à¦šà¦²à¦¤ ভৰষা কৰিব পাৰি। সকলো হসà§à¦Ÿ আৰৠ" "নেটৱাৰà§à¦•সমূহ যিসমূহে মেনিচক à¦à¦‡ অঞà§à¦šà¦²à§° সৈতে সংযà§à¦•à§à¦¤ সংযোগসমূহ, আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦ à¦¸à¦®à§‚হ " "আৰৠউৎসসমূহৰ পৰা পà§à§°à¦¾à¦ªà§à¦¤ কৰিব পাৰে সেইসমূহে ভৰষাবান সেৱাসমূহ অভিগম কৰিব " "পাৰে।" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "সেৱাসমূহ" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "অতিৰিকà§à¦¤ পৰà§à¦Ÿ অথবা পৰà§à¦Ÿ বিসà§à¦¤à¦¾à§°à¦¸à¦®à§‚হ যোগ কৰক, যি মেচিনৰ সৈতে সংযোগ কৰিব পৰা " "সকলো হসà§à¦Ÿ অথবা নেটৱাৰà§à¦•à§° বাবে অভিগমà§à¦¯ হব লাগে।" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "প'à§°à§à¦Ÿ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "পৰà§à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "পৰà§à¦Ÿ আতৰাওক" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "পৰà§à¦Ÿà¦¸à¦®à§‚হ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "সà§à¦¥à¦¾à¦¨à§€à§Ÿ নেটৱৰà§à¦•, ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿà§‡à§° সৈতে সংযà§à¦•à§à¦¤ কৰাৰ বাবে গৃহসà§à¦¥ অথবা ৰাউটাৰ " "পà§à§°à¦¸à§à¦¤à§à¦¤à¦¿à§° সময় Masquerading সহয়াক । আপোনাৰ সà§à¦¥à¦¾à¦¨à§€à§Ÿ নেটৱৰà§à¦• পà§à§°à¦•াশিত নহ'ব আৰৠ" "ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿà§‡ à¦à¦Ÿà¦¾ গৃহসà§à¦¥ ৰূপে পà§à§°à¦¸à§à¦¤à§à¦¤ কৰা হ'ব । Masquerading অকল IPv4-à§° " "কà§à¦·à§‡à¦¤à§à§°à¦¤ পà§à§°à¦¯à§‹à¦œà§à¦¯ ।" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ছদà§à¦®à¦¬à§‡à¦¶ অঞà§à¦šà¦²" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "যদি আপà§à¦¨à¦¿ ছদà§à¦®à¦¬à§‡à¦¶ সামৰà§à¦¥à¦¬à¦¾à¦¨ কৰে, আপোনাৰ IPv4 নেটৱাৰà§à¦•সমূহৰ বাবে IP ফৰৱাৰà§à¦¡à¦¿à¦‚ " "সামৰà§à¦¥à¦¬à¦¾à¦¨ কৰা হব।" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ফৰৱাৰà§à¦¡ পৰà§à¦Ÿà¦¸à¦®à§‚হলৈ পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¨à§€à§Ÿ চিসà§à¦Ÿà§‡à¦®à¦¤ অথবা সà§à¦¥à¦¾à¦¨à§€à§Ÿ চিসà§à¦Ÿà§‡à¦®à§° পৰা অনà§à¦¯ " "চিসà§à¦Ÿà§‡à¦®à¦²à§ˆ à¦à¦Ÿà¦¾ পৰà§à¦Ÿà§° পৰা অনà§à¦¯à¦²à§ˆ যোগ কৰক। আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  মাসà§à¦•à§à§°à§‡à¦‡à¦¡à§‡à¦¡ থাকিলে অনà§à¦¯ " "চিসà§à¦Ÿà§‡à¦®à¦²à§ˆ ফৰৱাৰà§à¦¡à¦¿à¦‚ উপযোগী হয়। পৰà§à¦Ÿ ফৰৱাৰà§à¦¡à¦¿à¦‚ কেৱল IPv4।" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ফৰৱাৰà§à¦¡ পৰà§à¦Ÿ যোগ কৰক" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ফৰৱাৰà§à¦¡ পৰà§à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ফৰৱাৰà§à¦¡ পৰà§à¦Ÿ আতৰাওক" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿ নিয়নà§à¦¤à§à§°à¦£ বাৰà§à¦¤à¦¾ পà§à§°à¦Ÿà§‹à¦•ল (ICMP) মূখà§à¦¯à¦­à¦¾à§±à§‡ নেটৱাৰà§à¦• কমপিউটাৰসমূহৰ " "মাজত তà§à§°à§à¦Ÿà¦¿ বাৰà§à¦¤à¦¾à¦¸à¦®à§‚হ পঠাবলৈ বà§à¦¯à§±à¦¹à¦¾à§° কৰা হয়, কিনà§à¦¤à§ অতিৰিকà§à¦¤à¦­à¦¾à§±à§‡ তথà§à¦¯à¦®à§‚লক " "বাৰà§à¦¤à¦¾à¦¸à¦®à§‚হ যেনে ping অনà§à§°à§‹à¦§ আৰৠউতà§à¦¤à§°à§° বাবেও বà§à¦¯à§±à¦¹à¦¾à§° কৰা হয়।" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "তালিকাত ICMP à§° ধৰণ চিহà§à¦¨à¦¿à¦¤ কৰক, যাক গà§à§°à¦¹à¦£ কৰা ন'হ'ব । শেষ সকলো ICMP ধৰণক " "ফায়াৰà§à§±à¦¾à¦²à§° মাজেদি যাব দিয়া হ'ব । অবিকলà§à¦ªà¦¿à¦¤ মান হ'ল কোনো সীমা নাই ।" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ফিলà§à¦Ÿà¦¾à§°" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "ইয়াত আপà§à¦¨à¦¿ অঞà§à¦šà¦²à§° বাবে সমৃদà§à¦§ ভাষা নিয়মসমূহ সংহতি কৰিব পাৰিব।" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম যোগ কৰক" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম আতৰাওক" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "সমৃদà§à¦§ নিয়মসমূহ" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "অঞà§à¦šà¦²à§° সৈতে আনà§à¦¤à¦¹à¦ªà§ƒà¦·à§à¦ à¦¸à¦®à§‚হ সংযà§à¦•à§à¦¤ কৰিবলৈ পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿à¦¸à¦®à§‚হ যোগ কৰক। যদি " "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦ à¦• à¦à¦Ÿà¦¾ সংযোগে বà§à¦¯à§±à¦¹à¦¾à§° কৰিব, অঞà§à¦šà¦²à¦• সংযোগত ধাৰà§à¦¯à§à¦¯ কৰা অঞà§à¦šà¦²à¦²à§ˆ সংহতি " "কৰা হব।" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  যোগ কৰক" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "আনà§à¦¤à¦ƒà¦ªà§ƒà¦·à§à¦  আতৰাওক" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "উৎস যোগ কৰক" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "উৎস সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "উৎস আতৰাওক" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "অঞà§à¦šà¦²à¦¬à§‹à§°" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "à¦à¦Ÿà¦¾ firewalld সেৱা হল পৰà§à¦Ÿà¦¸à¦®à§‚হ, পà§à§°à¦Ÿà§‹à¦•লসমূহ, মডিউলসমূহ আৰৠগনà§à¦¤à¦¬à§à¦¯ " "ঠিকনাসমূহৰ à¦à¦Ÿà¦¾ সংযà§à¦•à§à¦¤à¦¿à¥¤" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "সেৱা যোগ কৰক" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "সেৱা সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "সেৱা আতৰাওক" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "সেৱাৰ অবিকলà§à¦ªà¦¿à¦¤à¦¸à¦®à§‚হ ল'ড কৰক" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "নিবেশ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "নিবেশ আà¦à¦¤à§°à¦¾à¦“ক" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "মডিউলসমূহ" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "যদি আপà§à¦¨à¦¿ গনà§à¦¤à¦¬à§à¦¯ ঠিকনাসমূহ ধাৰà§à¦¯à§à¦¯ কৰে, সেৱা পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿ গনà§à¦¤à¦¬à§à¦¯ ঠিকনা আৰৠ" "ধৰণলৈ সীমিত থাকিব। যদি দà§à§Ÿà§‹à¦Ÿà¦¾ পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿ ৰিকà§à¦¤ থাকে, তেনà§à¦¤à§‡ কোনো সীমা " "নাথাকিব।" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "সেৱাসমূহক কেৱল সà§à¦¥à¦¾à§Ÿà§€ সংৰূপ দৰà§à¦¶à¦¨à¦¤ পৰিবৰà§à¦¤à¦¨ কৰিব পাৰি। সেৱাসমূহৰ চলনসময় " "সংৰূপ নিৰà§à¦¦à¦¿à¦·à§à¦Ÿ কৰা আছে।" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "à¦à¦Ÿà¦¾ firewalld icmptype ঠfirewalld à§° বাবে à¦à¦Ÿà¦¾ ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿ নিয়নà§à¦¤à§à§°à¦£ বাৰà§à¦¤à¦¾ " "পà§à§°à¦Ÿà§‹à¦•ল (ICMP) ধৰণৰ তথà§à¦¯ পà§à§°à¦¦à¦¾à¦¨ কৰে।" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ধৰণ যোগ কৰক" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ধৰণ সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ধৰণ আতৰাওক" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ধৰণ অবিকলà§à¦ªà¦¿à¦¤à¦¸à¦®à§‚হ ল'ড কৰক" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "à¦à¦‡ ICMP ধৰণ IPv4 আৰà§/অথবা IPv6 à§° বাবে উপলবà§à¦§ আছে নে ধাৰà§à¦¯à§à¦¯ কৰক।" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP ধৰণসমূহক কেৱল সà§à¦¥à¦¾à§Ÿà§€ সংৰূপ দৰà§à¦¶à¦¨à¦¤ পৰিবৰà§à¦¤à¦¨ কৰিব পাৰি। ICMP ধৰণসমূহৰ " "চলনসময় সংৰূপ নিৰà§à¦¦à¦¿à¦·à§à¦Ÿ কৰা আছে।" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "পà§à§°à¦¤à§à¦¯à¦•à§à¦· সংৰূপে ফায়াৰৱাললৈ à¦à¦Ÿà¦¾ অধিক পà§à§°à¦¤à§à¦¯à¦•à§à¦· অভিগম পà§à§°à¦¦à¦¾à¦¨ কৰে। à¦à¦‡ " "বিকলà§à¦ªà¦¸à¦®à§‚হৰ বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী জনে মৌলিক iptables ধাৰণাবোৰ জানিব লাগিব, অৰà§à¦¥à¦¾à¦¤ " "টেবà§à¦²à¦¸à¦®à§‚হ, শৃংখলসমূহ, কমানà§à¦¡à¦¸à¦®à§‚হ, পà§à§°à¦¾à¦šà¦²à¦¸à¦®à§‚হ আৰৠলকà§à¦·à§à¦¯à¦¬à§‹à§°à¥¤ পà§à§°à¦¤à§à¦¯à¦•à§à¦· সংৰূপক " "কেৱল শেষ উপায় হিচাপে বà§à¦¯à§±à¦¹à¦¾à§° কৰিব লাগে যেতিয়া অনà§à¦¯ firewalld বৈশিষà§à¦Ÿà§à¦¯à¦¸à¦®à§‚হ " "বà§à¦¯à§±à¦¹à¦¾à§° কৰা সমà§à¦­à¦¬ নহয়।" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "পà§à§°à¦¤à§à¦¯à¦•টো বিকলà§à¦ªà§° বাবে ipv তৰà§à¦• ipv4 অথবা ipv6 অথবা eb হব লাগিব। ipv4 à§° সৈতে " "ই iptables à§° বাবে হব, ipv6 à§° সৈতে ip6tables à§° বাবে হব আৰৠeb à§° সৈতে ইথাৰনেট " "বà§à§°à¦¿à¦œà¦¬à§‹à§° (ebtables) à§° বাবে হব।" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "নিমৰ সৈতে বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলৈ অতিৰিকà§à¦¤ শৃংখল।" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "শৃংখল যোগ কৰক" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "শৃংখল সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "শৃংখল আতৰাওক" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "শৃংখলসমূহ" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "à¦à¦Ÿà¦¾ পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তাৰ সৈতে à¦à¦Ÿà¦¾ টেবà§à¦²à§° শৃংখললৈ তৰà§à¦•সমূহ args à§° সৈতে à¦à¦Ÿà¦¾ নিয়ম যোগ " "কৰক।" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তাক নিয়মসমূহক কà§à§°à¦® কৰিবলৈ বà§à¦¯à§±à¦¹à¦¾à§° কৰা হয়। পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তা 0 à§° অৰà§à¦¥ হল " "শৃংখলৰ ওপৰত নিময় যোগ কৰা, উচà§à¦š পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তাৰ সৈতে নিয়মক তলত যোগ কৰা হব। à¦à¦•ে " "পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তাৰ সৈতে নিয়মসমূহ à¦à¦•েটা সà§à¦¤à§°à¦¤ থাকে আৰৠà¦à¦‡ নিয়মসমূহৰ কà§à§°à¦® নিৰà§à¦¦à¦¿à¦·à§à¦Ÿ " "নহয় আৰৠসলনি হব পাৰে। যদি আপà§à¦¨à¦¿ সà§à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤ কৰিব বিচাৰে যে à¦à¦Ÿà¦¾ নিয়ম অনà§à¦¯ à¦à¦Ÿà¦¾à§° " "পিছত যোগ কৰা হব, পà§à§°à¦¥à¦®à¦Ÿà§‹à§° বাবে à¦à¦Ÿà¦¾ নিমà§à¦¨ পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তা বà§à¦¯à§±à¦¹à¦¾à§° কৰক আৰৠ" "নিমà§à¦¨à¦²à¦¿à¦–িতৰ বাবে à¦à¦Ÿà¦¾ উচà§à¦š বà§à¦¯à§±à¦¹à¦¾à§° কৰক:" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "নিয়ম যোগ কৰক" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "নিয়ম সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "নিয়ম আতৰাওক" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "নিয়মসমূহ" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "পাছথà§à§°à§ নিয়মসমূহ ফায়াৰৱাললৈ পà§à§°à¦¤à§à¦¯à¦•à§à¦·à¦­à¦¾à§±à§‡ পà§à§°à§‡à§°à¦£ কৰা হয় আৰৠবিশেষ শৃংখলত " "সà§à¦¥à¦¾à¦ªà¦¨ কৰা নহয়। সকলো iptables, ip6tables আৰৠebtables বিকলà§à¦ªà¦¸à¦®à§‚হ বà§à¦¯à§±à¦¹à¦¾à§° " "কৰিব পাৰি।" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "অনà§à¦—à§à§°à¦¹ কৰি পাছথà§à§°à§ নিয়মসমূহ বà§à¦¯à§±à¦¹à¦¾à§° কৰোতে সাৱধান হব যাতে ফায়াৰৱাল " "কà§à¦·à¦¤à¦¿à¦—à§à§°à¦¸à§à¦¥ নহয়।" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "পাছথà§à§°à§ যোগ কৰক" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "পাছথà§à§°à§ সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "পাছথà§à§°à§ আতৰাওক" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "পাছথà§à§°à§" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "লকডাউন বৈশিষà§à¦Ÿà§à¦¯ firewalld à§° বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আৰৠà¦à¦ªà§à¦²à¦¿à¦•েচন নীতিসমূহৰ à¦à¦Ÿà¦¾ " "লঘৠসংসà§à¦•ৰণ। ই ফায়াৰৱাললৈ কৰা পৰিবৰà§à¦¤à¦¨à¦¸à¦®à§‚হ সীমিত কৰে। লকডাউন হোৱাইটলিসà§à¦Ÿà¦¤ " "কমানà§à¦¡à¦¸à¦®à§‚হ, পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤, বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰীসকল আৰৠবà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডিসমূহ থাকিব " "পাৰে।" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤ যোগ কৰক" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤ সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤ আতৰাওক" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "পৰিপà§à§°à§‡à¦•à§à¦·à¦¤à¦¿à¦¤à¦¸à¦®à§‚হ" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "যদি ৱোহাইটলিসà§à¦Ÿà¦¤ à¦à¦Ÿà¦¾ কমানà§à¦¡ পà§à§°à§±à¦¿à¦·à§à¦Ÿà¦¿ à¦à¦Ÿà¦¾ à¦à¦•সà§à¦Ÿà§‡à§°à¦¿à¦•à§à¦¸ '*' à§° সৈতে অনà§à¦¤ হয়, " "তেনà§à¦¤à§‡ কমানà§à¦¡à§° সৈতে আৰমà§à¦­ হোৱা সকলো কমানà§à¦¡ শাৰী মিল খাব। যদি '*' নাই " "সমà§à¦ªà§‚à§°à§à¦£ কমানà§à¦¡ অনà§à¦¤à§°à§à¦­à§à¦•à§à¦¤ তৰà§à¦•সমূহ মিল খাব লাগিব।" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "কমানà§à¦¡ শাৰী যোগ কৰক" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "কমানà§à¦¡ শাৰী সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "কমানà§à¦¡ শাৰী আতৰাওক" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "কমানà§à¦¡ শাৰীসমূহ" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নামসমূহ।" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নাম যোগ কৰক" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নাম সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নাম আতৰাওক" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নামসমূহ" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডিবোৰ।" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডি যোগ কৰক" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডি সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডি আতৰাওক" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডিবোৰ" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "চিসà§à¦Ÿà§‡à¦®à§° বৰà§à¦¤à¦®à¦¾à¦¨ অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²à¥¤" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "আতঙà§à¦• অৱসà§à¦¥à¦¾:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "লকডাউন:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "অবিকলà§à¦ªà¦¿à¦¤ অঞà§à¦šà¦²:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "প'à§°à§à¦Ÿ আৰৠনিয়মনীতি" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "অনà§à¦—à§à§°à¦¹ কৰি à¦à¦Ÿà¦¾ পৰà§à¦Ÿ অথবা পà§à§°à¦Ÿà§‹à¦•ল সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "পà§à§°à¦¤à§à¦¯à¦•à§à¦· নিয়ম" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "অনà§à¦—à§à§°à¦¹ কৰি ipv আৰৠটেবà§à¦², শৃংখল পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তা বাছক আৰৠargs সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "পà§à§°à¦¾à¦¥à¦®à¦¿à¦•তা:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "অনà§à¦—à§à§°à¦¹ কৰি à¦à¦Ÿà¦¾ পà§à§°à¦Ÿà§‹à¦•ল সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "অনà§à¦¯ পà§à§°à¦Ÿà§‹à¦•ল:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "অনà§à¦—à§à§°à¦¹ কৰি à¦à¦Ÿà¦¾ সমৃদà§à¦§ নিয়ম সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "হসà§à¦Ÿ অথবা নেটৱাৰà§à¦• হোৱাইট অথবা বà§à¦²à§‡à¦•লিসà§à¦Ÿà¦¿à¦‚à§° বাবে উপাদানক নিষà§à¦•à§à§°à¦¿à§Ÿ কৰক।" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "উৎস:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "গনà§à¦¤à¦¬à§à¦¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "লগ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "অডিট:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 আৰৠipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "উলোটা" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "ইয়াক সামৰà§à¦¥à¦¬à¦¾à¦¨ কৰিবলৈ কাৰà§à¦¯à§à¦¯ 'reject' আৰৠপৰিয়াল 'ipv4' অথবা 'ipv6' হব " "লাগিব (দà§à§Ÿà§‹ নহয়)।" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "চিহà§à¦¨à¦¿à¦¤ ধৰণৰ সৈতে:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "চিহà§à¦¨à¦¿à¦¤ সীমাৰ সৈতে:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "উপসৰà§à¦—:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "সà§à¦¤à§°:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "উপাদান:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "কাৰà§à¦¯à§à¦¯:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ভিতà§à¦¤à¦¿ সেৱা সংহতিসমূহ" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "অনà§à¦—à§à§°à¦¹ কৰি ভিতà§à¦¤à¦¿ সেৱা সংহতিসমূহ সংৰূপণ কৰক:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "অনà§à¦—à§à§°à¦¹ কৰি à¦à¦Ÿà¦¾ সেৱা বাছক।" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "অনà§à¦—à§à§°à¦¹ কৰি বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী আইডি সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নাম" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "অনà§à¦—à§à§°à¦¹ কৰি বà§à¦¯à§±à¦¹à¦¾à§°à¦•াৰী নাম সà§à¦®à§à§±à¦¾à¦“ক।" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ভিতà§à¦¤à¦¿ অঞà§à¦šà¦² সংহতিসমূহ" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "অনà§à¦—à§à§°à¦¹ কৰি ভিতà§à¦¤à¦¿ অঞà§à¦šà¦² সংহতিসমূহ সংৰূপণ কৰক:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "অবিকলà§à¦ªà¦¿à¦¤ লকà§à¦·à§à¦¯" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "লকà§à¦·à§à¦¯:" firewalld-0.4.4.6/po/bg.po000066400000000000000000001413641320241217000152030ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Valentin Laskov , 2012-2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:43-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/firewalld/" "language/bg/)\n" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Ðплет на защитната Ñтена" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Защитна Ñтена" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Конфигуриране на защитната Ñтена" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Зона '%s' активирана за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Зона по подразбиране" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Конфигуриране зоните за вдигане/ÑвалÑне на защитата" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Тук можете да изберете зоните, използвани за вдигане и ÑвалÑне на защитите." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Тази Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ðµ полезна оÑновно за хора, използващи подразбиращата Ñе зона. " "За потребители, ÑменÑщи зоните за връзки, използването може да е ограничено." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Зона Ñ Ð²Ð´Ð¸Ð³Ð½Ð°Ñ‚Ð¸ щитове:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Зона ÑÑŠÑ Ñвалени щитове:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Вдигни защитите" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Разреши уведомлениÑта" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Редактиране наÑтройките на защитната Ñтена..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ПромÑна зоните на връзките..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Конфигуриране зоните за вдигане/ÑвалÑне на защитата..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Блокира Ñ†ÐµÐ»Ð¸Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ трафик" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "ÐÑма връзка." #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Източници" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "УдоÑтоверÑването не уÑпÑ." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ðевалиден аргумент %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Името вече ÑъщеÑтвува" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ÐÑма връзка Ñ Ð´ÐµÐ¼Ð¾Ð½Ð° на защитната Ñтена" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ЦелиÑÑ‚ мрежови трафик е блокиран." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Зона по подразбиране: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Зона '{zone}' е активна за връзка '{connection}' на Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Зона '{zone}' е активна за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Зона '{zone}' активна за източник {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "ÐÑма активни зони." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Връзката Ñ FirewallD е оÑъщеÑтвена." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Връзката Ñ FirewallD е изгубена." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD беше презареден." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Подразбиращата Ñе зона е Ñменена на '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "МрежовиÑÑ‚ трафик вече не е блокиран." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "активиран" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "деактивиран" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Зона '{zone}' е {activated_deactivated} за връзка '{connection}' през " "Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Зона '{zone}' е {activated_deactivated} за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Зона '%s' е активирана за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Зона '{zone}' е {activated_deactivated} за източник '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Зона '%s' е активирана за източник '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ÐеуÑпех при зареждане на икони." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "УÑлуга" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Порт" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Протокол" #: ../src/firewall-config:560 msgid "To Port" msgstr "Към порт" #: ../src/firewall-config:562 msgid "To Address" msgstr "Към адреÑ" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp тип" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Внимание" #: ../src/firewall-config:1612 msgid "Error" msgstr "Грешка" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Зона" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Зона '%s': УÑлуга '%s' е недоÑтъпна." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Премахване на зона" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Игнорирай" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Зона '%s': ICMP тип '%s' е недоÑтъпен." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Вградена зона, преименуване не Ñе поддържа." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Вградена уÑлуга, преименуване не Ñе поддържа." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Вграден icmp, преименуване не Ñе поддържа." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Избор на зона за източник %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ÐдреÑ" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "МолÑ, изберете подразбиращата Ñе зона от ÑпиÑъка по-долу." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ПренаÑочване на порт" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "МолÑ, задайте наÑтройките за източник и цел, Ñпоред нуждите Ви." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Порт / Диапазон портове:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP адреÑ:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Протокол:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Източник" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Ðазначение" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Ðко разрешите локалното пренаÑочване, ще трÑбва да зададете порт. Той ще " "трÑбва да е различен от Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Локално пренаÑочване" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ПренаÑочване към друг порт" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Почернените елементи Ñа задължителни, вÑички оÑтанали - не." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Име:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ВерÑиÑ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Кратко:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ОпиÑание:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ОÑновни наÑтройки на ICMP типове" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "МолÑ, конфигурирайте оÑновните наÑтройки на ICMP типове:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP тип" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "ДобавÑне на запиÑ" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Файл" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Опции" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Презареди " #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "СмÑна на подразбиращата Ñе зона." #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Помощ" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Текущо видима конфигурациÑ. Работната ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ðµ иÑтинÑки активната " "конфигурациÑ. ПоÑтоÑнната ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ‰Ðµ бъде активна Ñлед реÑтартиране на " "уÑлугата или ÑиÑтемата." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ДобавÑне на зона" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Редактиране на зона" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Премахване на зона" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Зареждане на подразбиращото Ñе за зоната" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "УÑлуги" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Към порт" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Редактиране на зона" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Премахване на зона" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Портове" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "МаÑкирането позволÑва чрез хоÑÑ‚ или рутер да Ñвържете Вашата локална мрежа " "към Интернет. Вашата локална мрежа ще бъде невидима и хоÑтовете в Ð½ÐµÑ Ñ‰Ðµ Ñе " "предÑтавÑÑ‚ Ñ ÐµÐ´Ð¸Ð½ единÑтвен Ð°Ð´Ñ€ÐµÑ Ð² Интернет. МаÑкирането е Ñамо за IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Зона Ñ Ð¼Ð°Ñкиране" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Ðко разрешите маÑкирането, ще бъде разрешен и IP forwarding за Вашите IPv4 " "мрежи." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "МаÑкиране" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ДобавÑне на правила за пренаÑочване на портове от един порт към друг на " "локалната ÑиÑтема или от локалната към друга ÑиÑтема. ПренаÑочването към " "друга ÑиÑтема работи Ñамо ако интерфейÑÑŠÑ‚ е маÑкиран. ПренаÑочването е Ñамо " "за IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ДобавÑне пренаÑочване на порт" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Редактиране пренаÑочването на порт" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Премахване пренаÑочването на порт" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Протоколът Internet Control Message Protocol (ICMP) Ñе използва оÑновно за " "изпращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° грешки между компютри в мрежата, както и за " "информационни ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð¾ ping Ð·Ð°Ð¿Ð¸Ñ‚Ð²Ð°Ð½Ð¸Ñ Ð¸ отговори." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Маркирайте в ÑпиÑъка ICMP типовете, които да бъдат отхвърлÑни. За вÑички " "други ICMP типове преминаването през защитната Ñтена е разрешено. По " "подразбиране Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ñма." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP филтър" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Зони" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "ДобавÑне на уÑлуга" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Редактиране на уÑлуга" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Премахване на уÑлуга" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Зарежда подразбиращото Ñе за уÑлугата" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Редактиране на запиÑ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Премахване на запиÑ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Модули" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Ðко зададете целеви адреÑи, уÑлугите ще бъдат ограничени Ñпоред Ñ†ÐµÐ»ÐµÐ²Ð¸Ñ " "Ð°Ð´Ñ€ÐµÑ Ð¸ тип. Ðко и двете Ñа празни, Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ñма." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Ð”Ð¾Ð±Ð°Ð²Ñ ICMP тип" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Редактира ICMP типа" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Премахва ICMP типа" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Зарежда подразбиращите Ñе ICMP типове" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Текуща зона по подразбиране на ÑиÑтемата." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Зона по подразбиране:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Порт и Протокол" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "МолÑ, въведете порт и протокол." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Друг протокол:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ОÑновни наÑтройки на уÑлугата" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "МолÑ, конфигурирайте оÑновните наÑтройки на уÑлугата:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ОÑновни наÑтройки на зоната" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "МолÑ, конфигурирайте оÑновните наÑтройки на зоната:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Цел по подразбиране" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Цел:" firewalld-0.4.4.6/po/bn_IN.po000066400000000000000000002062401320241217000155730ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Saibal Ray, 2014 # Jamil Ahmed , 2003 # Runa Bhattacharjee , 2008 # runab , 2004-2010 # Saibal Ray, 2014 # Saibal Ray, 2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:43-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Bengali (India) (http://www.transifex.com/projects/p/" "firewalld/language/bn_IN/)\n" "Language: bn-IN\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ফায়ারওয়াল অà§à¦¯à¦¾à¦ªà§à¦²à§‡à¦Ÿ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ফায়ারওয়াল" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ফায়ারওয়াল কনফিগারেশন" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ '%s' à¦à¦° জনà§à¦¯ অঞà§à¦šà¦² নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "ডিফলà§à¦Ÿ অঞà§à¦šà¦²" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "'%s' সংযোগের জনà§à¦¯ অঞà§à¦šà¦² নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "শিলà§à¦¡ ঊরà§à¦§à§à¦¬à§‡/নিমà§à¦¨à§‡ অঞà§à¦šà¦² কনফিগার করà§à¦¨" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "শিলà§à¦¡ ঊরà§à¦§à§à¦¬ à¦à¦¬à¦‚ শিলà§à¦¡ নিমà§à¦¨à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ অঞà§à¦šà¦²à¦—à§à¦²à¦¿ অাপনি à¦à¦–ানে নিরà§à¦¬à¦¾à¦šà¦¨ " "করতে পারবেন।" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "অধিকাংশ কà§à¦·à§‡à¦¤à§à¦°à§‡ ডিফলà§à¦Ÿ অঞà§à¦šà¦² বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীদের কাছে à¦à¦‡ বৈশিষà§à¦Ÿà¦Ÿà¦¿ উপযোগী। " "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীদের জনà§à¦¯, যা সংযোগের পরিবরà§à¦¤à¦¨à¦¶à§€à¦² অঞà§à¦šà¦², বà§à¦¯à¦¬à¦¹à¦¾à¦° সীমাবদà§à¦§ হতে " "পারে।" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "শিলà§à¦¡ ঊরà§à¦§à§à¦¬ অঞà§à¦šà¦²:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "শিলà§à¦¡ নিমà§à¦¨ অঞà§à¦šà¦²:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "শিলà§à¦¡ ঊরà§à¦§à§à¦¬à§‡" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "বিজà§à¦žà¦ªà§à¦¤à¦¿ সকà§à¦°à¦¿à¦¯à¦¼ করà§à¦¨" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ফায়ারওয়াল সেটিং সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "সংযোগের অঞà§à¦šà¦² পরিবরà§à¦¤à¦¨ করà§à¦¨..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "শিলà§à¦¡ ঊরà§à¦§à§à¦¬à§‡/নিমà§à¦¨à§‡ অঞà§à¦šà¦² কনফিগার করà§à¦¨..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "সকল নেটওয়ারà§à¦• টà§à¦°à§à¦¯à¦¾à¦«à¦¿à¦• অবরà§à¦¦à§à¦§ করà§à¦¨" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "সংযোগ" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "উৎস" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "অনà§à¦®à§‹à¦¦à¦¨ বà§à¦¯à¦°à§à¦¥à¥¤" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "অবৈধ নাম" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "নাম ইতিমধà§à¦¯à§‡à¦‡ উপসà§à¦¥à¦¿à¦¤" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ফায়ারওয়াল ডিমোনে কোনো সংযোগ নেই" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "সকল নেটওয়ারà§à¦• টà§à¦°à§à¦¯à¦¾à¦«à¦¿à¦• অবরà§à¦¦à§à¦§à¥¤" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "ডিফলà§à¦Ÿ অঞà§à¦šà¦²: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "অঞà§à¦šà¦² '{zone}' '{connection}' সংযোগের জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼, '{interface}' ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "অঞà§à¦šà¦² '{zone}' '{interface}' ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡à¦° জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "অঞà§à¦šà¦² '{zone}' {source} সোরà§à¦¸à§‡à¦° জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "কোনো সকà§à¦°à¦¿à¦¯à¦¼ অঞà§à¦šà¦² নেই।" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD ঠসংযোগ সà§à¦¥à¦¾à¦ªà¦¿à¦¤ হয়েছে।" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD ঠসাথে সংযোগ বিচà§à¦›à¦¿à¦¨à§à¦¨ হয়েছে।" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD অাবার লোড করা হয়েছে।" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "ডিফলà§à¦Ÿ অঞà§à¦šà¦² '%s' ঠপরিবরà§à¦¤à¦¨ করা হয়েছে।" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "নেটওয়ারà§à¦• টà§à¦°à§à¦¯à¦¾à¦«à¦¿à¦• অার অবরà§à¦¦à§à¦§ নেই।" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "সকà§à¦°à¦¿à§Ÿ করা হয়েছে" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "নিষà§à¦•à§à¦°à¦¿à§Ÿ" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "অঞà§à¦šà¦² '{zone}' {activated_deactivated} '{connection}' সংযোগের জনà§à¦¯, " "'{interface}' ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "অঞà§à¦šà¦² '{zone}' {activated_deactivated} '{interface}' ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡ জনà§à¦¯" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "অঞà§à¦šà¦² '%s' '%s' ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡à¦° জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼ করা হয়েছে" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "অঞà§à¦šà¦² '{zone}' {activated_deactivated} '{source}' সোরà§à¦¸à§‡à¦° জনà§à¦¯" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "অঞà§à¦šà¦² '%s' '%s' সোরà§à¦¸à§‡à¦° জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼ করা হয়েছে" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "পরিবরà§à¦¤à¦¨à¦—à§à¦²à¦¿ পà§à¦°à¦¯à§‹à¦œà§à¦¯ হয়েছে।" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "'%s' নেটওয়ারà§à¦• সংযোগের দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à§ƒà¦¤" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "সকà§à¦°à¦¿à§Ÿ" #: ../src/firewall-config:97 msgid "disabled" msgstr "নিষà§à¦•à§à¦°à¦¿à§Ÿ" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "অাইকনগà§à¦²à¦¿ লোড করতে বà§à¦¯à¦°à§à¦¥à¥¤" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "রানটাইম" #: ../src/firewall-config:398 msgid "Permanent" msgstr "সà§à¦¥à¦¾à¦¯à¦¼à§€" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "পরিসেবা" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "পোরà§à¦Ÿ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•ল" #: ../src/firewall-config:560 msgid "To Port" msgstr "উদà§à¦¦à¦¿à¦·à§à¦Ÿ পোরà§à¦Ÿ" #: ../src/firewall-config:562 msgid "To Address" msgstr "উদà§à¦¦à¦¿à¦·à§à¦Ÿ ঠিকানা" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp ধরন" #: ../src/firewall-config:817 msgid "Family" msgstr "পরিবার" #: ../src/firewall-config:819 msgid "Action" msgstr "কাজ" #: ../src/firewall-config:821 msgid "Element" msgstr "উপাদান" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "লগ" #: ../src/firewall-config:829 msgid "Audit" msgstr "অডিট" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "সতরà§à¦•বারà§à¦¤à¦¾" #: ../src/firewall-config:1612 msgid "Error" msgstr "তà§à¦°à§à¦Ÿà¦¿" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "গà§à¦°à¦¹à¦£ করà§à¦¨" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ করà§à¦¨" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ছাড়à§à¦¨" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "সীমা" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "পরিষেবা" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "পোরà§à¦Ÿ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•ল" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "masquerade" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "সà§à¦¤à¦°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "হà§à¦¯à¦¾à¦" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "অঞà§à¦šà¦²" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "অঞà§à¦šà¦² '%s': '%s' পরিষেবা উপলবà§à¦§ নয়।" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "অপসারণ" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "অগà§à¦°à¦¾à¦¹à§à¦¯ করা হবে" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "অঞà§à¦šà¦² '%s': ICMP ধরন '%s' উপলবà§à¦§ নয়।" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "বিলà§à¦Ÿ-ইন অঞà§à¦šà¦², নাম পরিবরà§à¦¤à¦¨ সমরà§à¦¥à¦¿à¦¤ নয়।" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "দà§à¦¬à¦¿à¦¤à§€à§Ÿ" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "মিনিট" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ঘনà§à¦Ÿà¦¾" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "দিন" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "জরà§à¦°à¦¿" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "সাবধানবাণী" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "গà§à¦°à§à¦¤à§à¦¬à¦ªà§‚রà§à¦£" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "তà§à¦°à§à¦Ÿà¦¿" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "সতরà§à¦•বারà§à¦¤à¦¾" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "সূচনা" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "তথà§à¦¯" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ডিবাগ" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "ফরোয়ারà§à¦¡-পোরà§à¦Ÿ" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ ছদà§à¦®à¦¬à§‡à¦¶ ধারণ করলে শà§à¦§à§à¦®à¦¾à¦¤à§à¦° তখনই অনà§à¦¯ সিসà§à¦Ÿà§‡à¦®à§‡ ফরোয়ারà§à¦¡à¦¿à¦‚ উপযোগী।\n" "অাপনি কি à¦à¦‡ অঞà§à¦šà¦²à¦•ে ছদà§à¦®à¦¬à§‡à¦¶ পড়াতে চান?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "বিলà§à¦Ÿ-ইন পরিষেবা, নাম পরিবরà§à¦¤à¦¨ সমরà§à¦¥à¦¿à¦¤ নয়।" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "বিলà§à¦Ÿ-ইন icmp, নাম পরিবরà§à¦¤à¦¨ সমরà§à¦¥à¦¿à¦¤ নয়।" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "সোরà§à¦¸ '%s' à¦à¦° জনà§à¦¯ অঞà§à¦šà¦² নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ঠিকানা" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "অনà§à¦—à§à¦°à¦¹ করে কমà§à¦¯à¦¾à¦¨à§à¦¡ লাইন উলà§à¦²à§‡à¦– করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "অনà§à¦—à§à¦°à¦¹ করে পà§à¦°à¦¸à¦™à§à¦— উলà§à¦²à§‡à¦– করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "অনà§à¦—à§à¦°à¦¹ করে নীচের তালিকা থেকে ডিফলà§à¦Ÿ অঞà§à¦šà¦² নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "সরাসারি চেন" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "অনà§à¦—à§à¦°à¦¹ করে ipv à¦à¦¬à¦‚ সারণী নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ à¦à¦¬à¦‚ চেনের নাম লিখà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "চেন:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "নিরাপতà§à¦¤à¦¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "সারণী:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ডাইরেকà§à¦Ÿ Passthrough নিয়ম" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "অনà§à¦—à§à¦°à¦¹ করে ipv নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ à¦à¦¬à¦‚ args পà§à¦°à¦¬à§‡à¦¶ করান।" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "পোরà§à¦Ÿ ফরওয়ারà§à¦¡à¦¿à¦‚" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "পà§à¦°à§Ÿà§‹à¦œà¦¨ অনà§à¦¸à¦¾à¦°à§‡ উৎস ও গনà§à¦¤à¦¬à§à¦¯ সংকà§à¦°à¦¾à¦¨à§à¦¤ বিবিধ বিকলà§à¦ªà¦—à§à¦²à¦¿ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "পোরà§à¦Ÿ / পোরà§à¦Ÿà§‡à¦° সীমা:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP ঠিকানা:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•ল:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "উৎস" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "গনà§à¦¤à¦¬à§à¦¯à¦¸à§à¦¥à¦²" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "সà§à¦¥à¦¾à¦¨à§€à§Ÿà¦°à§‚পে ফরওয়ারà§à¦¡à¦¿à¦‚ করতে ইচà§à¦›à§à¦• হলে, à¦à¦•টি পোরà§à¦Ÿ নিরà§à¦¦à§‡à¦¶ করা আবশà§à¦¯à¦•। " "উদà§à¦¦à¦¿à¦·à§à¦Ÿ পোরà§à¦Ÿà¦Ÿà¦¿ উৎস পোরà§à¦Ÿà§‡à¦° থেকে পৃথক হওয়া আবশà§à¦¯à¦•।" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿà¦°à§‚পে ফরওয়ারà§à¦¡à¦¿à¦‚" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "কোনো পৃথক পোরà§à¦Ÿà§‡ ফরওয়ারà§à¦¡ করা হবে" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "মোটা হরফে লেখা বাধà§à¦¯à¦¤à¦¾à¦®à§‚লক, বাকি সব বৈকলà§à¦ªà¦¿à¦•।" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "নাম:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "সংসà§à¦•রণ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "সংকà§à¦·à¦¿à¦ªà§à¦¤:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "বিবরণ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "পরিবার:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• ICMP ধরন সেটিং" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "অনà§à¦—à§à¦°à¦¹ করে পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• ICMP ধরন সেটিং কনফিগার করà§à¦¨:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP পà§à¦°à¦•ৃতি" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি ICMP ধরন নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "à¦à¦¨à¦Ÿà§à¦°à¦¿ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ফাইল (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "বিবিধ বিকলà§à¦ª (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld পà§à¦¨à¦°à¦¾à§Ÿ লোড করà§à¦¨" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ফায়ারওয়াল নিয়ম পà§à¦¨à¦ƒà¦²à§‹à¦¡ করে। বরà§à¦¤à¦®à¦¾à¦¨ সà§à¦¥à¦¾à¦¯à¦¼à§€ কনফিগারেশন নতà§à¦¨ রানটাইম " "কনফিগারেশন হবে। অরà§à¦¥à¦¾à§Ž, পà§à¦¨à¦ƒà¦²à§‹à¦¡ পরà§à¦¯à¦¨à§à¦¤ হওয়া সমসà§à¦¤ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° রানটাইম " "পরিবরà§à¦¤à¦¨à¦—à§à¦²à¦¿ পà§à¦¨à¦ƒà¦²à§‹à¦¡à§‡à¦° সাথে নষà§à¦Ÿ হয়ে যায়। যদি না তারা সà§à¦¥à¦¾à¦¯à¦¼à§€ কনফিগারেশনেও " "থেকে থাকে।" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "à¦à¦•টি নেটওয়ারà§à¦• সংযোগ কোন অঞà§à¦šà¦²à§‡à¦° সংগে সংযà§à¦•à§à¦¤ তা পরিবরà§à¦¤à¦¨ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ডিফলà§à¦Ÿ অঞà§à¦šà¦² পরিবরà§à¦¤à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "সংযোগ বা ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à§‡à¦° জনà§à¦¯ ডিফলà§à¦Ÿ অঞà§à¦šà¦² পরিবরà§à¦¤à¦¨ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "পà§à¦¯à¦¾à¦¨à¦¿à¦• মোডের অরà§à¦¥ হল, সকল ইনকামিং à¦à¦¬à¦‚ অাউটগোয়িং পà§à¦¯à¦¾à¦•েট ডà§à¦°à¦ª করা হয়।" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "পà§à¦¯à¦¾à¦¨à¦¿à¦• মোড" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown ফায়ারওয়াল কনফিগারেশন লক করে, যাতে কিনা শà§à¦§à§à¦®à¦¾à¦¤à§à¦° lockdown " "whitelist ঠঅà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন তার পরিবরà§à¦¤à¦¨ করতে পারে।" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "লকডাউন" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "রানটাইম কনফিগারেশন সà§à¦¥à¦¾à§Ÿà§€ করà§à¦¨" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "রানটাইম থেকে সà§à¦¥à¦¾à§Ÿà§€" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "পà§à¦°à¦¦à¦°à§à¦¶à¦¨ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP পà§à¦°à¦•ৃতি" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ডাইরেকà§à¦Ÿ কনফিগারেশন" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "লকডাউন হোয়াইটলিসà§à¦Ÿ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "সাহাযà§à¦¯ (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "কনফিগারেশন:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "বরà§à¦¤à¦®à¦¾à¦¨à§‡ দৃশà§à¦¯à¦®à¦¾à¦¨ কনফিগারেশন। রানটাইম কনফিগারেশন হল পà§à¦°à¦•ৃত সকà§à¦°à¦¿à¦¯à¦¼ " "কনফিগারেশন। সà§à¦¥à¦¾à¦¯à¦¼à§€ কনফিগারেশন পরিষেবা বা সিসà§à¦Ÿà§‡à¦® পà§à¦¨à¦ƒà¦²à§‹à¦¡ বা বনà§à¦§ হয়ে চালৠ" "হওয়ার পরে সকà§à¦°à¦¿à¦¯à¦¼ হবে।" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "à¦à¦•টি ফায়ারওয়াল দিয়ে ঘেরা অঞà§à¦šà¦² তার মধà§à¦¯à¦¸à§à¦¤ নেটওয়ারà§à¦• সংযোগ, ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ " "à¦à¦¬à¦‚ সোরà§à¦¸ ঠিকানার বিশà§à¦¬à¦¸à§à¦¤à§‡à¦° সà§à¦¤à¦°à¦•ে নিরà§à¦§à¦¾à¦°à¦£ করে। অঞà§à¦šà¦²à§‡à¦° মধà§à¦¯à§‡ অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ " "হল পরিষেবাদি, পোরà§à¦Ÿ, পà§à¦°à§‹à¦Ÿà§‹à¦•ল, মà§à¦¯à¦¾à¦¸à¦•োয়ারডিং, পোরà§à¦Ÿ/পà§à¦¯à¦¾à¦•েট ফরোয়ারà§à¦¡à¦¿à¦‚, " "icmp ফিলà§à¦Ÿà¦¾à¦° à¦à¦¬à¦‚ রিচ রà§à¦²à¥¤ অঞà§à¦šà¦² ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ à¦à¦¬à¦‚ সোরà§à¦¸ ঠিকানার মধà§à¦¯à§‡ অাবদà§à¦§ " "থাকতে পারে।" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "অঞà§à¦šà¦² যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "অঞà§à¦šà¦² সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "অঞà§à¦šà¦² সরান" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "অঞà§à¦šà¦² ডিফলà§à¦Ÿ লোড করà§à¦¨" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "অঞà§à¦šà¦²à§‡ কোন পরিষেবাগà§à¦²à¦¿ বিশà§à¦¬à¦¸à§à¦¤ তা অাপনি à¦à¦–ানে নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে পারবেন। à¦à¦‡ " "অঞà§à¦šà¦²à§‡à¦° সংযোগ, ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ à¦à¦¬à¦‚ সোরà§à¦¸ থেকে মেশিনে পৌà¦à¦›à¦¾à¦¤à§‡ পারে à¦à¦®à¦¨ সকল হোসà§à¦Ÿ " "à¦à¦¬à¦‚ নেটওয়ারà§à¦• থেকে বিশà§à¦¬à¦¸à§à¦¤ পরিষেবাগà§à¦²à¦¿ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸à¦¯à§‹à¦—à§à¦¯à¥¤" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "পরিষেবা" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "অতিরিকà§à¦¤ পোরà§à¦Ÿ বা পোরà§à¦Ÿ রেঞà§à¦œ যোগ করà§à¦¨, যা মেশিনের সংগে সংযà§à¦•à§à¦¤ করা যায় à¦à¦®à¦¨ " "সকল হোসà§à¦Ÿ বা নেটওয়ারà§à¦•ের জনà§à¦¯ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ হওয়া পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨à¥¤" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "পোরà§à¦Ÿ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "পোরà§à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "পোরà§à¦Ÿ অপসারণ করà§à¦¨" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "পোরà§à¦Ÿ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "সà§à¦¥à¦¾à¦¨à§€à§Ÿ নেটওয়ারà§à¦•, ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡à¦° সাথে সংযà§à¦•à§à¦¤ করার জনà§à¦¯ হোসà§à¦Ÿ অথবা রাউটার " "পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿à¦° সময় Masquerading সহয়াক। আপনার সà§à¦¥à¦¾à¦¨à§€à§Ÿ নেটওয়ারà§à¦• পà§à¦°à¦•াশিত হবে না ও " "ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡ à¦à¦•টি হোসà§à¦Ÿ রূপে পà§à¦°à¦¸à§à¦¤à§à¦¤ করা হবে। Masquerading শà§à¦§à§à¦®à¦¾à¦¤à§à¦° IPv4-র " "কà§à¦·à§‡à¦¤à§à¦°à§‡ পà§à¦°à¦¯à§‹à¦œà§à¦¯à¥¤" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Masquerade অঞà§à¦šà¦²" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "অাপনি মà§à¦¯à¦¾à¦¸à¦•িউরেডিং সকà§à¦°à¦¿à¦¯à¦¼ করলে, IP ফরোয়ারà§à¦¡à¦¿à¦‚ অাপনার IPv4 নেটওয়ারà§à¦•গà§à¦²à¦¿à¦° " "জনà§à¦¯ সকà§à¦°à¦¿à¦¯à¦¼ করা হবে।" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "সà§à¦¥à¦¾à¦¨à§€à§Ÿ সিসà§à¦Ÿà§‡à¦®à§‡à¦° মধà§à¦¯à§‡ অনà§à¦¯ পোরà§à¦Ÿà§‡ অথবা সà§à¦¥à¦¾à¦¨à§€à§Ÿ সিসà§à¦Ÿà§‡à¦® থেকে অনà§à¦¯ সিসà§à¦Ÿà§‡à¦®à§‡ " "পোরà§à¦Ÿ ফরওয়ারà§à¦¡ করার জনà§à¦¯ মান লিখà§à¦¨à¥¤ ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ masquerade করা থাকলে পৃথক " "সিসà§à¦Ÿà§‡à¦®à§‡ পোরà§à¦Ÿ ফরওয়ারà§à¦¡ করা উপকারী হবে। পোরà§à¦Ÿ ফরওয়ারà§à¦¡à¦¿à¦‚ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° " "IPv4-র কà§à¦·à§‡à¦¤à§à¦°à§‡ পà§à¦°à¦¯à§‹à¦œà§à¦¯à¥¤" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ফরোয়ারà§à¦¡ পোরà§à¦Ÿ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ফরোয়ারà§à¦¡ পোরà§à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ফরোয়ারà§à¦¡ পোরà§à¦Ÿ অপসারণ করà§à¦¨" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ কনà§à¦Ÿà§à¦°à§‹à¦² মেসেজ পà§à¦°à§‹à¦Ÿà¦•ল (ICMP) পà§à¦°à§Ÿà§‹à¦— করে নেটওয়ারà§à¦•ের মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ " "কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à¦—à§à¦²à¦¿à¦° মধà§à¦¯à§‡ তà§à¦°à§à¦Ÿà¦¿ বারà§à¦¤à¦¾ আদান পà§à¦°à¦¦à¦¾à¦¨ করা হয়। উপরনà§à¦¤à§, বিবিধ তথà§à¦¯ " "যেমন ping-র অনà§à¦°à§‹à¦§ ও উতà§à¦¤à¦° পà§à¦°à¦­à§ƒà¦¤à¦¿à¦“ বিনিময় করার জনà§à¦¯ à¦à¦Ÿà¦¿ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨à§‡à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡, তালিকার মধà§à¦¯à§‡ ICMP-র ধরনগà§à¦²à¦¿ চিহà§à¦¨à¦¿à¦¤ করà§à¦¨à¥¤ " "অনà§à¦¯à¦¾à¦¨à§à¦¯ সকল ICMP-র ধরনগà§à¦²à¦¿ ফায়ারওয়ালের মধà§à¦¯à§‡ পà§à¦°à¦¬à§‡à¦¶ করতে সকà§à¦·à¦® হবে। " "ডিফলà§à¦Ÿà¦°à§‚পে কোনো পà§à¦°à¦¤à¦¿à¦°à§‹à¦§ করা হয় না।" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ফিলà§à¦Ÿà¦¾à¦°" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "à¦à¦–ানে অাপনি অঞà§à¦šà¦²à§‡à¦° জনà§à¦¯ সমৃদà§à¦§ ভাষা নিয়ম নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে পারবেন।" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম সরান" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "সমৃদà§à¦§ নিয়মগà§à¦²à¦¿" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "অঞà§à¦šà¦²à§‡ ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸à¦—à§à¦²à¦¿ অাবদà§à¦§ করতে à¦à¦¨à§à¦Ÿà§à¦°à¦¿à¦—à§à¦²à¦¿ যোগ করà§à¦¨à¥¤ ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ à¦à¦•টি " "সংযোগের দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হলে, অঞà§à¦šà¦² সংযোগের দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ অঞà§à¦šà¦²à§‡ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ " "হবে।" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ সরান" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "সোরà§à¦¸ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "সোরà§à¦¸ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "সোরà§à¦¸ সরান" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "অঞà§à¦šà¦²" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "à¦à¦•টি firewalld পরিষেবা হল পোরà§à¦Ÿ, পà§à¦°à§‹à¦Ÿà§‹à¦•ল, মডিউল à¦à¦¬à¦‚ গনà§à¦¤à¦¬à§à¦¯ ঠিকানার " "সমনà§à¦¬à¦¯à¦¼à¥¤" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "পরিষেবা যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "পরিষেবা সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "পরিষেবা অপসারণ করà§à¦¨" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "পরিষেবা ডিফলà§à¦Ÿ লোড করà§à¦¨" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "à¦à¦¨à¦Ÿà§à¦°à¦¿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "à¦à¦¨à¦Ÿà§à¦°à¦¿ অপসারণ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "মডিউল" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "অাপনি গনà§à¦¤à¦¬à§à¦¯ ঠিকানাগà§à¦²à¦¿ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করলে, পরিষেবা à¦à¦¨à§à¦Ÿà§à¦°à¦¿ গনà§à¦¤à¦¬à§à¦¯ ঠিকানা à¦à¦¬à¦‚ " "ধরনের মধà§à¦¯à§‡à¦‡ সীমাবদà§à¦§ থাকবে। উভয় à¦à¦¨à§à¦Ÿà§à¦°à¦¿à¦‡ খালি থাকলে, কোনো সীমাবদà§à¦§à¦¤à¦¾ থাকে " "না।" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "পরিষেবাগà§à¦²à¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° সà§à¦¥à¦¾à¦¯à¦¼à§€ কনফিগারেশন রূপে পরিবরà§à¦¤à¦¨ করা যেতে পারে। " "পরিষেবাগà§à¦²à¦¿à¦° রানটাইম কনফিগারেশন নিরà§à¦¦à¦¿à¦·à§à¦Ÿà¥¤" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "à¦à¦•টি firewalld icmptype, firewalld à¦à¦° জনà§à¦¯ à¦à¦•টি ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ কনà§à¦Ÿà§à¦°à§‹à¦² মেসেজ " "পà§à¦°à§‹à¦Ÿà§‹à¦•ল (ICMP) ধরনের জনà§à¦¯ তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨ করে।" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ধরন যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ধরন সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ধরন অপসারণ করà§à¦¨" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ধরন ডিফলà§à¦Ÿ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "IPv4 à¦à¦¬à¦‚/অথবা IPv6 à¦à¦° জনà§à¦¯ à¦à¦‡ ICMP ধরন উপলবà§à¦§ কিনা তা নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP ধরনগà§à¦²à¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° সà§à¦¥à¦¾à¦¯à¦¼à§€ কনফিগারেশন রূপে পরিবরà§à¦¤à¦¨ করা যেতে পারে। ICMP " "ধরনগà§à¦²à¦¿à¦° রানটাইম কনফিগারেশন নিরà§à¦¦à¦¿à¦·à§à¦Ÿà¥¤" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ডাইরেকà§à¦Ÿ কনফিগারেশন ফায়ারওয়ালে অারো সরাসারি অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ দেয়। à¦à¦‡ বিকলà§à¦ªà§‡à¦° " "কà§à¦·à§‡à¦¤à§à¦°à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীকে পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• iptables কনসেপà§à¦Ÿ, অরà§à¦¥à¦¾à§Ž সারণী, চেন, " "কমà§à¦¯à¦¾à¦¨à§à¦¡, পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° à¦à¦¬à¦‚ টারà§à¦—েট জানতে হবে। অনà§à¦¯à¦¾à¦¨à§à¦¯ firewalld বৈশিষà§à¦Ÿà§à¦¯ " "বà§à¦¯à¦¬à¦¹à¦¾à¦° করা সমà§à¦­à¦¬ না হলে, শà§à¦§à§à¦®à¦¾à¦¤à§à¦° তখনই শেষ মাধà§à¦¯à¦® হিসাবে ডাইরেকà§à¦Ÿ " "কনফিগারেশন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে।" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "পà§à¦°à¦¤à§à¦¯à§‡à¦• বিকলà§à¦ªà§‡à¦° ipv অারà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ ipv4 বা ipv6 বা eb হতে হবে। ipv4 à¦à¦° " "কà§à¦·à§‡à¦¤à§à¦°à§‡ à¦à¦Ÿà¦¿ হবে iptables, ipv6 à¦à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ ip6tables à¦à¦¬à¦‚ eb à¦à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ " "ইথারনেট বà§à¦°à¦¿à¦œ (ebtables)।" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "নিয়মের সংগে বà§à¦¯à¦¬à¦¹à¦¾à¦° করার অতিরিকà§à¦¤ চেন।" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "চেন যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "চেন সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "চেন সরান" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "চেন" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "অগà§à¦°à¦¾à¦§à¦¿à¦•ার বিশিষà§à¦Ÿ à¦à¦•টি সারণীতে à¦à¦•টি চেনে অারà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ args সমেত à¦à¦•টি নিয়ম " "যোগ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "অগà§à¦°à¦¾à¦§à¦¿à¦•ার নিয়ম অরà§à¦¡à¦¾à¦° করতে বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হয়। অগà§à¦°à¦¾à¦§à¦¿à¦•ার 0 à¦à¦° অরà§à¦¥ হল, চেনের " "উপরে নিয়ম যোগ করà§à¦¨, অপেকà§à¦·à¦¾à¦•ৃত বেশি অগà§à¦°à¦¾à¦§à¦¿à¦•ারের কà§à¦·à§‡à¦¤à§à¦°à§‡ নিয়ম অারো নীচের " "দিকে যোগ হতে থাকবে। à¦à¦•ই অগà§à¦°à¦¾à¦§à¦¿à¦•ারের নিয়মগà§à¦²à¦¿ à¦à¦•ই লেবেলে থাকে à¦à¦¬à¦‚ à¦à¦‡ " "নিয়মগà§à¦²à¦¿à¦° কà§à¦°à¦® নিরà§à¦¦à¦¿à¦·à§à¦Ÿ নয় à¦à¦¬à¦‚ পরিবরà§à¦¤à¦¿à¦¤ হতে পারে। à¦à¦•টির পরে অার à¦à¦•টি " "নিয়ম যোগ হোক তা অাপনি নিশà§à¦šà¦¿à¦¤ করতে চাইলে, পà§à¦°à¦¥à¦®à¦Ÿà¦¿à¦° জনà§à¦¯ à¦à¦•টি কম অগà§à¦°à¦¾à¦§à¦¿à¦•ার " "বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ à¦à¦¬à¦‚ নিমà§à¦¨à¦²à¦¿à¦–িতের জনà§à¦¯ অপেকà§à¦·à¦¾à¦•ৃত বেশি।" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "নিয়ম যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "নিয়ম সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "নিয়ম সরান" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "নিয়ম" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "passthrough নিয়ম ফায়ারওয়াল দিয়ে সরাসারি চালনা করা হয় à¦à¦¬à¦‚ বিশেষ চেনে " "রাখা হয় না। সকল iptables, ip6tables à¦à¦¬à¦‚ ebtables বিকলà§à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦° করা যেতে " "পারে।" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "ফায়ারওয়াল যাতে কà§à¦·à¦¤à¦¿à¦—সà§à¦¥ না হয় তার জনà§à¦¯ অনà§à¦—à§à¦°à¦¹ করে passthrough নিয়মের " "কà§à¦·à§‡à¦¤à§à¦°à§‡ যতà§à¦¨à¦¬à¦¾à¦¨ হোন।" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Passthrough যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Passthrough সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Passthrough সরান" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "লকডাউন বৈশিষà§à¦Ÿà§à¦¯ firewalld à¦à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী à¦à¦¬à¦‚ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন নীতির à¦à¦•টি " "কà§à¦·à§à¦¦à§à¦° সংসà§à¦•রণ। à¦à¦Ÿà¦¿ ফায়ারওয়ালের পরিবরà§à¦¤à¦¨à¦—à§à¦²à¦¿à¦•ে সীমাবদà§à¦§ করে। লকডাউন " "হোয়াইটলিসà§à¦Ÿà§‡à¦° মধà§à¦¯à§‡ কমà§à¦¯à¦¾à¦¨à§à¦¡, কনটেকà§à¦¸, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী à¦à¦¬à¦‚ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী অাইডি " "থাকতে পারে।" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "কনটেকà§à¦¸à¦Ÿ যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "কনটেকà§à¦¸à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "কনটেকà§à¦¸à¦Ÿ সরান" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "কনটেকà§à¦¸à¦Ÿ" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "whitelist ঠকোনো কমà§à¦¯à¦¾à¦¨à§à¦¡ à¦à¦¨à§à¦Ÿà§à¦°à¦¿ তারকা চিহà§à¦¨ '*' দিয়ে সমাপà§à¦¤ হলে, কমà§à¦¯à¦¾à¦¨à§à¦¡ " "দিয়ে শà§à¦°à§ হওয়া সমসà§à¦¤ কমà§à¦¯à¦¾à¦¨à§à¦¡ লাইন মিলবে। '*' উপসà§à¦¥à¦¿à¦¤ না থাকলে, " "অারà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ সমেত চরম কমà§à¦¯à¦¾à¦¨à§à¦¡ অবশà§à¦¯à¦‡ মিলতে হবে।" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "কমানà§à¦¡-লাইন যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "কমানà§à¦¡-লাইন সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "কমানà§à¦¡-লাইন সরান" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "কমà§à¦¯à¦¾à¦¨à§à¦¡ লাইন" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম‌।" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম সরান" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর অাইডি।" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী অাইডি যোগ করà§à¦¨" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর অাইডি সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর অাইডি সরান" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর অাইডি" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "সিসà§à¦Ÿà§‡à¦®à§‡à¦° বরà§à¦¤à¦®à¦¾à¦¨ ডিফলà§à¦Ÿ অঞà§à¦šà¦²à¥¤" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "পà§à¦¯à¦¾à¦¨à¦¿à¦• মোড:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "লকডাউন:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ডিফলà§à¦Ÿ অঞà§à¦šà¦²:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "পোরà§à¦Ÿ à¦à¦¬à¦‚ পà§à¦°à§‹à¦Ÿà§‹à¦•ল" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি পোরà§à¦Ÿ à¦à¦¬à¦‚ পà§à¦°à§‹à¦Ÿà§‹à¦•ল দিন।" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ডাইরেকà§à¦Ÿ নিয়ম" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "অনà§à¦—à§à¦°à¦¹ করে ipv à¦à¦¬à¦‚ সারণী, চেন অগà§à¦°à¦¾à¦§à¦¿à¦•ার নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ à¦à¦¬à¦‚ args পà§à¦°à¦¬à§‡à¦¶ " "করান।" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "অগà§à¦°à¦¾à¦§à¦¿à¦•ার:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি পà§à¦°à§‹à¦Ÿà§‹à¦•ল দিন।" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "অনà§à¦¯ পà§à¦°à§‹à¦Ÿà§‹à¦•ল:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "সমৃদà§à¦§ নিয়ম" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি সমৃদà§à¦§ নিয়ম দিন।" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "হোসà§à¦Ÿ বা নেটওয়ারà§à¦• হোয়াইট বা কালো তালিকাভà§à¦•à§à¦¤à¦•রণের কà§à¦·à§‡à¦¤à§à¦°à§‡ উপাদান " "নিষà§à¦•à§à¦°à¦¿à¦¯à¦¼ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "উৎসসà§à¦¥à¦²:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "গনà§à¦¤à¦¬à§à¦¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "লগ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "অডিট:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 à¦à¦¬à¦‚ ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "উলà§à¦Ÿà¦¾à¦¨à§‹" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "à¦à¦Ÿà¦¿à¦•ে সকà§à¦·à¦® করতে হলে, অà§à¦¯à¦¾à¦•শন 'রিজেকà§à¦Ÿ' হতে হবে à¦à¦¬à¦‚ ফà§à¦¯à¦¾à¦®à¦¿à¦²à¦¿ হয় 'ipv4' বা " "'ipv6' (উভয়ই নয়) হতে হবে।" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "ধরন সমেত:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "সীমা সমেত:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "পà§à¦°à§‡à¦«à¦¿à¦•à§à¦¸:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "সà§à¦¤à¦°:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "উপাদান:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "কাজ:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• পরিষেবা সেটিং" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "অনà§à¦—à§à¦°à¦¹ করে পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• পরিষেবা সেটিং কনফিগার করà§à¦¨:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি পরিষেবা নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "অনà§à¦—à§à¦°à¦¹ করে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর অাইডি লিখà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "অনà§à¦—à§à¦°à¦¹ করে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম লিখà§à¦¨à¥¤" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• অঞà§à¦šà¦² সেটিং" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "অনà§à¦—à§à¦°à¦¹ করে পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• অঞà§à¦šà¦² সেটিং কনফিগার করà§à¦¨:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "ডিফলà§à¦Ÿ টারà§à¦—েট" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "টারà§à¦—েট:" firewalld-0.4.4.6/po/ca.po000066400000000000000000001646211320241217000151770ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Angels Sala , 2004 # Josep Puigdemont , 2004-2006 # Josep Sànchez , 2010 # Josep Sànchez , 2010 # Pedro , 2005 # Robert Antoni Buj i Gelonch, 2014 # Xavier Conde Rueda , 2009 # Robert Antoni Buj Gelonch , 2015. #zanata # Robert Antoni Buj Gelonch , 2016. #zanata # Eric Garver , 2017. #zanata # Robert Antoni Buj Gelonch , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-10-11 01:59-0400\n" "Last-Translator: Eric Garver \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/firewalld/" "language/ca/)\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Miniaplicació del tallafoc" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Tallafoc" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuració del tallafoc" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "tallafoc;xarxa;seguretat;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Selecciona la zona per a la interfície «%s»" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona predeterminada" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Selecciona la zona per a la connexió «%s»" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "No s'ha pogut establir la zona {zone} per a la connexió {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selecciona la zona per a l'origen «%s»" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configura les zones d'escuts aixecats/baixats" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Aquí podeu seleccionar les zones utilitzades per als escuts aixecats i " "escuts abaixats." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Aquesta funció és útil per a la gent que utilitza majoritàriament les zones " "predeterminades. Per als usuaris que canvien les zones de les connexions " "haurien de fer-ne un ús limitat." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zona d'escuts aixecats:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Restableix al predeterminat" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zona d'escuts abaixats:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Quant a %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autors" #: ../src/firewall-applet:396 msgid "License" msgstr "Llicència" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Escuts aixecats" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Habilita les notificacions" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Edita els ajusts del tallafoc..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Canvia les zones de les connexions..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configura les zones d'escuts aixecats/baixats..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloqueja tot el trànsit de xarxa" #: ../src/firewall-applet:492 msgid "About" msgstr "Quant a" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Connexions" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfícies" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Orígens" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autentificació fallida." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "El nom no és vàlid" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "El nom ja existeix" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zona: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (zona predeterminada: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "No s'ha pogut obtenir les connexions de NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Sense importacions disponibles de NetworkManager" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Sense connexió al dimoni del tallafoc" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Tot el trànsit de xarxa està bloquejat." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zona predeterminada: «%s»" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "La zona predeterminada '{default_zone}' està activa per a la connexió " "'{connection}' en la interfície '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "La zona '{zone}' es troba activa per a la connexió '{connection}' en la " "interfície '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "La zona '{zone}' es troba activa per a la interfície '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "La zona '{zone}' es troba activa per a l'origen {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Sense zones actives." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "S'ha establert la connexió amb FirewallD." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "S'ha perdut la connexió amb FirewallD." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "S'ha tornat a carregar FirewallD." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "La zona predeterminada ha estat canviada a «%s»." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "El trànsit de xarxa ja no està bloquejat." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activat" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desactivat" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "La zona predeterminada '{default_zone}' {activated_deactivated} per a la " "connexió '{connection}' en la interfície '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} per a la connexió '{connection}' en la " "interfície '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} per a la interfície '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "La zona «%s» es va activar per a la interfície «%s»" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zona '{zone}' {activated_deactivated} per a l'origen '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "La zona «%s» es va activar per a l'origen «%s»" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "S'ha establert la connexió amb firewalld." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "S'està intentant connectar amb firewalld, a l'espera..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "S'han aplicat els canvis." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "És utilitzat en la connexió de xarxa «%s»" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "La zona predeterminada que s'utilitza en la connexió de xarxa «%s»" #: ../src/firewall-config:96 msgid "enabled" msgstr "habilitat" #: ../src/firewall-config:97 msgid "disabled" msgstr "inhabilitat" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "S'ha produït un error en la càrrega de les icones." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Temps d'execució" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servei" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Cap al port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Cap a l'adreça" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Vincles" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Entrada" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipus d'icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "Família" #: ../src/firewall-config:819 msgid "Action" msgstr "Acció" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Origen" #: ../src/firewall-config:825 msgid "Dest" msgstr "Destí" #: ../src/firewall-config:827 msgid "log" msgstr "enregistra" #: ../src/firewall-config:829 msgid "Audit" msgstr "Revisa" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Advertència" #: ../src/firewall-config:1612 msgid "Error" msgstr "Error" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accepta" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "rebutja" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "descarta" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "marca" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "límit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "servei" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "emmascarament" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "port-origen" #: ../src/firewall-config:2071 msgid "level" msgstr "nivell" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "sí" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Zona predeterminada: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zona: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona «%s»: El servei «%s» no està disponible." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Suprimeix" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignora" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona «%s»: El tipus d'ICMP «%s» no està disponible." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Zona integrada, no es permet el canvi de nom." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "segons" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuts" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hores" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dies" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergència" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alerta" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "crític" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "error" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "advertència" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notificació" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informació" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "depuració" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "bloqueig-icmp" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "reenviament-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "El reenviament a un altre sistema tan sols és útil si la interfície de xarxa " "està emmascarada.\n" "Voleu emmascarar aquesta zona?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Servei integrat, no es permet el canvi de nom." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Si us plau, introduïu una adreça ipv4 de la forma adreça[/màscara]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "La màscara pot ser una màscara de xarxa o un número." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Si us plau, introduïu una adreça ipv6 de la forma adreça[/màscara]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "La màscara és un número." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" "Si us plau, introduïu una adreça ipv4 o ipv6 de la forma adreça[/màscara]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "La màscara pot ser una màscara de xarxa o un número per a ipv4.\n" "La màscara és un número per a ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "ipset integrat, no es permet el canvi de nom." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Seleccioneu un fitxer" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Fitxers de text" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Tots els fitxers" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Tot" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Ajudant incrustat, el canvi de nom no està admès." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ICMP integrat, no es permet el canvi de nom." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "No s'ha pogut llegir el fitxer «%s»: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Selecciona la zona per a l'origen %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adreça" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Ajudants automàtics" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Ajusts dels ajudants automàtics:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Línia d'ordres" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Introduïu la línia d'ordres." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Context" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Introduïu el context." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Seleccioneu la zona predeterminada de la llista de sota." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Encadenament directe" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Seleccioneu l'ipv i la taula i introduïu el nom de l'encadenament." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Encadenament:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "en cru" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "seguretat" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Taula:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Regla de traspàs directe" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Seleccioneu l'ipv i introduïu els arguments." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Arguments:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Reenviament de ports" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Seleccioneu les opcions d'origen i de destí segons les vostres necessitats." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port o interval de ports:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Adreça IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Origen" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destinació" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Si habiliteu el reenviament local, heu d'especificar un port. Aquest port ha " "de ser diferent del port origen." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Reenviament local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Reenvia a un altre port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Ajusts de l'ajudant automàtic" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Configureu els ajusts de l'ajudant automàtic:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Les entrades en negreta són obligatòries, i les altres són opcionals." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nom:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versió:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Resum:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descripció:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Família:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Mòdul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Ajudant" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Seleccioneu un ajudant:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Base dels ajusts del tipus d'ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Configureu la base dels ajusts del tipus d'ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipus d'ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Seleccioneu un tipus d'ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Afegeix una entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Afegeix entrades des d'un fitxer" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Suprimeix l'entrada seleccionada" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Suprimeix totes les entrades" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Suprimeix entrades des d'un fitxer" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fitxer" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opcions" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Recarrega Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Recarrega les regles del tallafoc. La configuració permanent actual es " "convertirà en la nova configuració temps d'execució. P. ex. tots els canvis " "que s'hagin fet en el temps d'execució fins a la nova recàrrega es perdran, " "sí no s'han fet també en la configuració permanent." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Canvia la zona a la qual pertany una connexió de xarxa." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Canvia la zona predeterminada" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" "Canvia la zona predeterminada per a les connexions o per a les interfícies." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Canvia la denegació de l'enregistrament" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Canvia el valor de la denegació de l'enregistrament." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configura l'assignació de l'ajudant automàtic" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configura l'establiment de l'assignació de l'ajudant automàtic." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "El mode pànic significa que tots els paquets d'entrada i de sortida són " "descartats." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Mode pànic" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "El confinament bloqueja la configuració del tallafoc, d'aquesta manera " "únicament les aplicacions en la llista blanca del confinament poden canviar-" "ho." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Confinament" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Fes permanent la configuració temps d'execució" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Temps d'execució a permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Visualitza" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Tipus d'ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Ajudants" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configuració directa" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Llista blanca de confinaments" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Vincles actius" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "A_juda" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "canvia la zona del vincle" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Oculta els vincles actius en temps d'execució a les zones, de les " "connexions, de les interfícies i dels orígens." #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Mostra els vincles actius en temps d'execució a les zones, de les " "connexions, de les interfícies i dels orígens." #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuració:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "La configuració actualment visible. La configuració en temps d'execució és " "la configuració que realment està activa. La configuració permanent serà la " "configuració activa després que el servei o el sistema es torni a carregar o " "iniciar." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Una zona firewalld defineix el nivell de confiança per a les connexions de " "xarxa, les interfícies i les adreces enllaçades a la zona. La zona combina " "serveis, ports, protocols, emmascarament, reenviament de ports/paquets, " "filtres icmp i regles d'enriquiment. La zona pot ser enllaçada a interfícies " "i adreces d'origen." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Afegeix una zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Edita la zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Suprimeix la zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Carrega els valors predeterminats de la zona" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Aquí podeu definir quins són els serveis de confiança de la zona. Els " "serveis de confiança són accessibles des de tots els amfitrions i xarxes que " "puguin aconseguir connectar-se amb la màquina, les interfícies i els orígens " "enllaçats en aquesta zona." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Serveis" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Afegiu els ports o els intervals de ports addicionals que hagin de ser " "accessibles per a tots els amfitrions o xarxes perquè es puguin connectar " "amb la màquina." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Afegeix un port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edita el port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Suprimeix el port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Ports" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Afegiu els protocols que hagin de ser accessibles per a tots els amfitrions " "o xarxes." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Afegeix un protocol" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Afegeix el protocol" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Suprimeix el protocol" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocols" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Afegiu els ports o els intervals de ports addicionals d'origen que hagin de " "ser accessibles per a tots els amfitrions o xarxes perquè es puguin " "connectar amb la màquina." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Ports d'origen" # translation auto-copied from project firewalld, version RHEL-7, document po/firewalld, author Robert Antoni Buj Gelonch #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "L'emmascarament us permet configurar un amfitrió o encaminador que connecta " "la vostra xarxa local a Internet. La vostra xarxa local no serà visible i " "els amfitrions apareixeran com una simple adreça en Internet. " "L'emmascarament únicament es pot utilitzar amb IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zona emmascarada" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Si habiliteu l'emmascarament, el reenviament IP estarà habilitat en les " "vostres xarxes IPv4." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Emmascarament" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Afegiu entrades per reenviar ports o bé des d'un port cap a un altre del " "sistema local o bé des del sistema local cap a un altre sistema. El " "reenviament a un altre sistema és útil només si la interfície està " "emmascarada. El reenviament de ports únicament es pot utilitzar amb IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Afegeix un reenviament de port" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Edita el reenviament de port" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Suprimeix el reenviament de port" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ICMP (Internet Control Message Protocol) s'utilitza principalment per enviar " "els missatges d'error entre ordinadors en xarxa, però addicionalment per als " "missatges d'informació com ara sol·licituds i respostes del ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marqueu a la llista els tipus d'ICMP que han de rebutjar-se. Tots els altres " "tipus d'ICMP tenen permès passar pel tallafoc. Per defecte no hi ha cap " "limitació." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Si s'habilita Inverteix el filtre, s'accepten les entrades ICMP marcades i " "es rebutgen les altres. En una zona amb l'objectiu DROP, es deixen caure." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Inverteix el filtre" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtre ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" "Aquí podeu establir les regles del llenguatge d'enriquiment per a la zona." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Afegeix una regla d'enriquiment" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Edita la regla d'enriquiment" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Suprimeix la regla d'enriquiment" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Regles d'enriquiment" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Afegiu entrades per crear un vincle entre les interfícies i la zona. Si la " "interfície serà utilitzada per una connexió, la zona s'establirà a la zona " "indicada en la connexió." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Afegeix una interfície" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Edita la interfície" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Suprimeix la interfície" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Afegiu entrades per crear un vincle entre les adreces d'origen o àrees amb " "la zona. Podeu crear un vincle a una adreça d'origen MAC, però amb " "limitacions. El reenviament de ports i l'emmascarat no funcionarà per als " "vincles d'origen MAC." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Afegeix un origen" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Edita l'origen" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Suprimeix l'origen" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zones" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Un servei firewalld és una combinació de ports, protocols, mòduls i adreces " "de destinació." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Afegeix un servei" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Edita el servei" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Suprimeix el servei" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Carrega els valors predeterminats del servei" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Afegiu els ports o els intervals de ports addicionals que hagin de ser " "accessibles per a tots els amfitrions o xarxes." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Edita l'entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Suprimeix l'entrada" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Afegiu els ports o els intervals de ports addicionals d'origen que hagin de " "ser accessibles per a tots els amfitrions o xarxes." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Port d'origen" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Alguns serveis necessiten els mòduls de l'ajudant de Netfilter." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Mòduls" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Si especifiqueu una adreça de destinació, l'entada del servei estarà " "limitada a l'adreça de destinació i al tipus. Si ambdues entrades estan " "buides, aleshores no hi ha cap limitació." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Els serveis es poden canviar únicament en la vista de configuració permanent." " La configuració en temps d'execució dels serveis és fixa." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Un IPSet pot utilitzar-se per crear llistes blanques o negres, és capaç " "d'emmagatzemar per exemple les adreces IP, els números dels ports o les MAC." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Afegeix un IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Edita l'IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Suprimeix l'IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Carrega els valors predeterminats d'IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Les entrades de l'IPSet. Únicament podreu veure les entrades dels ipsets que " "no estiguin utilitzant l'opció de temps d'expiració, i també únicament " "aquelles entrades que hagin estat afegides amb firewalld. Aquí no es " "llistaran aquelles entrades que s'hagin afegit directament amb l'ordre ipset." "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Aquest IPSet utilitza l'opció de temps d'expiració, per tant aquí no hi ha " "cap entrada visible. Les entrades s'han de supervisar directament amb " "l'ordre ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Afegeix" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Entrades" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Els IPSets únicament es poden crear en la vista de configuració permanent." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Un firewalld icmptype proporciona la informació per un tipus d'ICMP " "(Internet Control Message Protocol) per a firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Afegeix un tipus d'ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Edita el tipus d'ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Suprimeix el tipus d'ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Carrega els valor predeterminats d'ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" "Especifiqueu si aquest tipus d'ICMP està disponible per IPv4 i/o IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Els tipus d'ICMP únicament es poden canviar en la vista de configuració " "permanent. La configuració dels tipus d'ICMP en temps d'execució és fixa." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Un ajudant de seguiment de connexió ajuda a fer que funcionin els protocols " "que utilitzen diferents fluxos per a la senyalització i les transferències " "de dades. Les transferències de dades utilitzen ports que no estan " "relacionats amb la senyalització de la connexió, per tant, sense l'ajudant " "són bloquejades pel tallafoc." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Defineix els ports o els intervals de ports els quals estan monitorats per " "l'ajudant." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "La configuració directa dóna un accés més directe al tallafoc. Aquestes " "opcions requereixen que l'usuari conegui conceptes bàsics d'iptables, com " "taules, encadenaments, ordres, paràmetres i destinacions. La configuració " "directa ha d'utilitzar-se únicament com a últim recurs quan no és possible " "utilitzar les altres funcions de firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "L'argument ipv de cada opció ha de ser ipv4, ipv6 o eb. Amb ipv4 " "s'utilitzarà en iptables, amb ipv6 en ip6tables, i amb eb per als ponts de " "xarxa (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Encadenaments addicionals per utilitzar amb regles." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Afegeix un encadenament" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Edita l'encadenament" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Suprimeix l'encadenament" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Encadenament" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Afegiu una regla amb arguments a un encadenament en una taula amb una " "prioritat." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "La prioritat s'utilitza per ordenar les regles. Una prioritat 0 significa " "que s'afegeix al principi de l'encadenament, amb una prioritat superior la " "regla serà afegida per sota. Les regles amb la mateixa prioritat estan en el " "mateix nivell i l'ordre d'aquestes regles no es fixa i pot canviar. Si voleu " "assegurar-vos que una regla sigui afegida després d'una altra, utilitzeu una " "prioritat inferior per a la primera i superior per a la següent." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Afegeix una regla" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Edita la regla" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Suprimeix la regla" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regles" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Les regles de traspàs passen directament a través tallafoc i no es " "col·loquen en encadenaments especials. Es poden fer ús de totes les opcions " "d'iptables, d'ip6tables i d'ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "Aneu amb compte amb les regles de traspàs per no danyar el tallafoc." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Afegeix un traspàs" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Edita el traspàs" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Suprimeix el traspàs" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Traspàs" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "La funció de confinament és una versió lleugera de les polítiques d'usuari i " "aplicació per a firewalld. Limita els canvis al tallafoc. La llista blanca " "de confinaments pot contenir ordres, contexts, usuaris i id. d'usuaris." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Aquest context és el context de seguretat (SELinux) d'una aplicació o servei " "en execució. Per obtenir el context d'una aplicació en execució, utilitzeu " "ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Afegeix un context" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Edita el context" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Suprimeix el context" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contexts" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Si l'entrada d'una ordre en una llista blanca acaba amb '*', aleshores totes " "les línies d'ordres que comencin amb la comanda coincidiran. Si no hi ha '*' " "els arguments inclusius de la comanda absoluta han de coincidir." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Afegeix una línia d'ordres" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Edita la línia d'ordres" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Suprimeix la línia d'ordres" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Línies d'ordres" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Els noms d'usuaris." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Afegeix un nom d'usuari" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Edita el nom d'usuari" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Suprimeix el nom d'usuari" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Noms d'usuaris" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Id. d'usuaris" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Afegeix un Id. d'usuari" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Edita l'Id. d'usuari" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Suprimeix l'Id. d'usuari" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Id. d'usuaris" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "L'actual zona predeterminada del sistema." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Denegació de l'enregistrament:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Mode pànic:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Ajudants automàtics:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Confinament:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona predeterminada:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interfície" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Base dels ajusts d'IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Configureu la base dels ajusts d'ipset:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Tipus:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Temps d'expiració:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Mida del hash:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Nombre màxim d'elements:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Valor del temps d'expiració en segons" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "mida del hash inicial, per defecte és 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Nombre màxim d'elements, per defecte és 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Seleccioneu un ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Denegació de l'enregistrament" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Seleccioneu el valor de la denegació de l'enregistrament:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Marca" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Introduïu una marca amb una màscara opcional." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "El camp de la marca i el camp de la màscara són nombres sense signe de 32 " "bits d'amplada." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Marca:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Màscara:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Seleccioneu un ajudant conntrack de netfilter:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Selecciona -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Altres mòduls:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port i protocol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Introduïu el port i el protocol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Regla directa" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Seleccioneu l'ipv i la taula, la prioritat de l'encadenament i introduïu els " "arguments." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioritat:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Introduïu un protocol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Un altre protocol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Regla d'enriquiment" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Introduïu una regla d'enriquiment." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Per a l'amfitrió o la xarxa en la llista blanca o en la llista negra " "desactiva l'element." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Origen:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destinació:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Enregistra:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Revisa:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 i ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inverteix" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Per habilitar-ho l'acció ha de ser «rebutja» i la família «ipv4» o «ipv6» " "(no ambdós)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "amb tipus:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Amb un límit de:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Nivell:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Acció:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Base dels ajusts del servei" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Configureu la base dels ajusts del servei:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Seleccioneu un servei." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Id. d'usuari" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Especifiqueu l'id. d'usuari." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nom d'usuari" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Introduïu el nom d'usuari." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etiqueta" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Base dels ajusts de la zona" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Configureu la base dels ajusts de la zona:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Destinació predeterminada" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Destinació:" firewalld-0.4.4.6/po/cs.po000066400000000000000000001617771320241217000152320ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Adam Pribyl , 2007-2010 # zdenek , 2013 # zdenek , 2015 # Jan Varta , 2012 # Jiří Popelka , 2013 # Jiří Popelka , 2013 # Jiří Popelka , 2013 # Michal Procházka , 2013 # Milan Kerslager , 2009-2010 # Miloslav TrmaÄ , 2002-2005,2008 # Nikola Å tohanzl , 2006 # zdenek , 2013 # zdenek , 2013 # zdenek , 2013 # Josef HruÅ¡ka , 2016. #zanata # Zdenek , 2016. #zanata # Zdenek , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-15 08:30-0400\n" "Last-Translator: Zdenek \n" "Language-Team: Czech (http://www.transifex.com/projects/p/firewalld/language/" "cs/)\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall Aplet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Nastavení firewallu" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;síť;zabezpeÄení;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Vyberte zónu pro rozhraní '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Základní zóna" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Vyberte zónu pro pÅ™ipojení '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "NepodaÅ™ilo se nastavit zónu {zone} pro pÅ™ipojení {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Vyberte zónu pro zdroj '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Nastav zóny zapnutých/vypnutých Å¡títů" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Zde můžete vybrat zóny použité pro zapnuté Å¡títy a vypnuté Å¡títy." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Tato vlastnost je užiteÄná pro osoby využívající pÅ™evážnÄ› implicitní zóny. " "Pro uživatele, kteří mÄ›ní zóny pÅ™ipojení, může být toto použití omezující. " #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zóna zapnutých Å¡títů:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Obnovit výchozí nastavení" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zóna vypnutých Å¡títů:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "O %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "AutoÅ™i" #: ../src/firewall-applet:396 msgid "License" msgstr "Licence" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Zapnout Å¡títy" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Povolit upozornÄ›ní" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editovat nastavení firewallu..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Nastavení zón pÅ™ipojení..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Nastav zóny zapnutých/vypnutých Å¡títů..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blokovat veÅ¡kerý síťový provoz" #: ../src/firewall-applet:492 msgid "About" msgstr "O aplikaci" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "PÅ™ipojení" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Rozhraní" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Zdroje" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autorizace selhala." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Neplatné jméno" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Jméno již existuje" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zóna: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Základní zóna: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "NepodaÅ™ilo se získat spojení z NetworkManageru" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "K dispozici nejsou žádné importy NetworkManageru" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Žádné spojení s démonem firewallu" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "VeÅ¡kerý síťový provoz je blokován." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Základní zóna: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Základní zóna '{default_zone}' je aktivní pro pÅ™ipojení '{connection}' na " "rozhraní '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zóna '{zone}' aktivní pro spojení '{connection}' pÅ™es rozhraní '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zóna '{zone}' aktivní pro rozhraní '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zóna '{zone}' aktivní pro zdroj {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Žádné aktivní zóny." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Komunikace s FirewallD aktivní." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Komunikace s FirewallD ztracena." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD byl aktualizován" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Základní zóna se zmÄ›nila na '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Síťový provoz již není blokován." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktivováno" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deaktivováno" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Základní zóna '{default_zone}' {activated_deactivated} pro pÅ™ipojení " "'{connection}' na rozhraní '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zóna '{zone}' {activated_deactivated} pro spojení '{connection}' na rozhraní " "'{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zóna '{zone}' {activated_deactivated} pro rozhraní '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zóna '%s' aktivována pro rozhraní '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zóna '{zone}' {activated_deactivated} pro zdroj '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zóna '%s' aktivována pro zdroj '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Spojení s bránou firewalld navázáno." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Pokouším se pÅ™ipojit k bránÄ› firewalld, Äekám..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "ZmÄ›ny aplikovány." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Použito síťovým pÅ™ipojením '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Základní zóna je používána síťovým pÅ™ipojením '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "povolen" #: ../src/firewall-config:97 msgid "disabled" msgstr "zakázán" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Nahrání ikon selhalo." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Běžící" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Trvalá" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Služba" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Cílový port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Cílová adresa:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Vazby" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Položka" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp typ" #: ../src/firewall-config:817 msgid "Family" msgstr "Rodina" #: ../src/firewall-config:819 msgid "Action" msgstr "Akce" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Zdroj" #: ../src/firewall-config:825 msgid "Dest" msgstr "Cíl" #: ../src/firewall-config:827 msgid "log" msgstr "záznam" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Varování" #: ../src/firewall-config:1612 msgid "Error" msgstr "Chyba" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "pÅ™ijmout" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "odmítnout" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "zahodit" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "oznaÄit" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "služba" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "IP maÅ¡karáda" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "port zdroje" #: ../src/firewall-config:2071 msgid "level" msgstr "úroveň" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ano" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zóna" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Základní zóna: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zóna: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zóna '%s': Služba '%s' není dostupná." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Odebrat" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorovat" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zóna '%s': ICMP typ '%s' není dostupný." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "VestavÄ›ná zóna, pÅ™ejmenování není možné." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "vteÅ™ina" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuta" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hodina" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "den" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "nouze" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "poplach" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritický" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "chyba" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "varovaní" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "poznámka" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informace" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ladit" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp typ" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "pÅ™esmÄ›rování-portu" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "PÅ™eposílání na jiný systém je užiteÄné pouze pokud je rozhraní maÅ¡karádované." "\n" "PÅ™ejete si zamaÅ¡karádovat tuto zónu?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "VestavÄ›ná služba, pÅ™ejmenování není možné." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Zadejte prosím IPv4 adresu s formulářem adresy[/masky]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Maska může být síťová maska nebo Äíslo." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Zadejte prosím IPv6 adresu s formulářem adresy[/masky]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Maska je Äíslo." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Zadejte prosím IPv4 nebo IPv6 adresu s formulářem adresy[/masky]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Maska může být síťová maska nebo Äíslo pro IPv4.\n" "Maska je Äíslo pro IPv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "VestavÄ›ný IPset, pÅ™ejmenování není podporováno." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Vyberte prosím soubor" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Textové soubory" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "VÅ¡echny soubory" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "VÅ¡e" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "VestavÄ›ný pomocník, pÅ™ejmenování nepodporováno." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "VestavÄ›né Icmp, pÅ™ejmenování není možné." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "NepodaÅ™ilo se naÄíst soubor '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Vyberte zónu pro zdroj %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresa" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "AutomatiÄtí pomocníci" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Vyberte prosím hodnotu automatických pomocníků:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Příkazový řádek" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "PÅ™ejdÄ›te prosím na příkazovou řádku." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Kontext" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Vložte prosím kontext." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Vyberte prosím základní zónu ze seznamu níže." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Přímý ŘetÄ›zec" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Vyberte prosím IPv a tabulku a zadejte jméno Å™etÄ›zce." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ŘetÄ›z:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "bezpeÄnost" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabulka:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Pravidlo Přímého Průchodu" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Vyberte prosím IPv a zadejte argumenty." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumenty:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "PÅ™esmÄ›rování portů" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Prosím zvolte zdrojové a cílové volby podle vaÅ¡ich potÅ™eb." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port/rozsah portů:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP adresa:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Zdroj" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Cíl" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Pokud povolíte lokální pÅ™eposílání, musíte urÄit port. Tento port musí být " "jiný, než zdrojový port." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Místní pÅ™esmÄ›rování" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "PÅ™eposlat na jiný port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Nastavení základního pomocníka" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "ProveÄte prosím nastavení základního pomocníka:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "TuÄnÄ› psané je povinné, ostatní je nepovinné." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Jméno:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Verze:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Krátce:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Popis:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Rodina:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Modul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Pomocník" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Vyberte prosím pomocníka:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Nastavení hlavního typu ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Prosím nakonfigurujte hlavní nastavení typu ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP typ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Vyberte prosím type ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "PÅ™idat položku" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "PÅ™idat položky ze souboru" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Odebrat oznaÄenou položku" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Odebrat vÅ¡echny položky" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Odebrat položky ze souboru" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Soubor" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Možnosti" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Aktualizovat Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Aktualizuje pravidla firewallu. SouÄasná trvalá konfigurace se stane novou " "běžící konfigurací. Tj. vÅ¡echny zmÄ›ny provedeny v běžící konfiguraci budou " "po této aktualizaci ztraceny, pokud již v trvalé konfiguraci pÅ™edtím nebyly." "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ZmÄ›ní zónu, k níž patří síťové pÅ™ipojení." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ZmÄ›nit základní zónu" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "ZmÄ›nit základní zónu pro pÅ™ipojení nebo rozhraní." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Přístup k záznamu zamítnutí" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "ZmÄ›ní hodnotu záznamu zamítnutí." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Nastavit pÅ™iÅ™azení automatického pomocníka" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Provést nastavení pÅ™iÅ™azení automatického pomocníka." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Mód paniky znamená, že veÅ¡keré příchozí a odchozí pakety budou zahozeny." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Mód paniky" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "UzamÄení zamkne konfiguraci firewallu tak, že pouze aplikace ze seznamu " "povolených vyjímek ji mohou zmÄ›nit." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "UzamÄení" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "ZmÄ›nit běžící konfiguraci na trvalou" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Běžící na Trvalou" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Zobrazit" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPsety" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Typy ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Pomocníci" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Přímá konfigurace" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Seznam povolených vyjímek uzamknutí" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktivní vazby" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_NápovÄ›da" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "ZmÄ›nit zónu vazby" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "Skrýt aktivní běžící vazby pÅ™ipojení, rozhraní a zdrojů k zónám" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "Zobrazit aktivní běžící vazby pÅ™ipojení, rozhraní a zdrojů k zónám" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfigurace:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Viditelné konfigurace. Běžící konfigurace je momentálnÄ› aktivní konfigurace. " "Trvalá konfigurace se aktivuje po znovuzavedení nebo restartu služby nebo " "systému." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" " Firewalld zóna definuje úroveň důvÄ›ryhodnosti pro pÅ™ipojení k sítim, " "rozhraním a zdrojovým adresám vázaných na zóny. Zóna kombinuje servisy, " "porty, protokoly, maÅ¡karádování, pÅ™esmÄ›rování portů a paketů, filtrování " "icmp a bohatá pravidla. Zóna může být vázána na rozhraní a zdrojové adresy." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "PÅ™idat zónu" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Editace zóny" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Smazat zónu" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Nahrát základní nastavení zóny" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Zde lze nadefinovat, které servisy budou v zónÄ› důvÄ›ryhodné. DůvÄ›ryhodné " "servisy jsou přístupné ze vÅ¡ech poÄítaÄů a sítí, které mohou dosáhnout stroj " "z pÅ™ipojení, rozhraní a zdrojů vázaných na tuto zónu." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Služby" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "PÅ™idat další porty nebo rozsahy portů, které je nutné ponechat přístupné pro " "vÅ¡echny poÄítaÄe a poÄítaÄové sítÄ›, které se mohou pÅ™ipojit ke stroji." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "PÅ™idat port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Editovat port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Smazat port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Porty" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "PÅ™idat protokoly, které musí být přístupné pro vÅ¡echny hosty a sítÄ›." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "PÅ™idat protokol" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Editovat protokol" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Odebrat protokol" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokoly" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "PÅ™idat další zdrojové porty nebo rozsahy portů, které je nutné ponechat " "přístupné pro vÅ¡echny poÄítaÄe a poÄítaÄové sítÄ›, které se mohou pÅ™ipojit ke " "stroji." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Zdrojové porty" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "MaÅ¡karádování je užiteÄné, pokud nastavujete poÄítaÄ nebo smÄ›rovaÄ, který " "spojuje vaÅ¡i lokální síť s internetem. VaÅ¡e lokální síť nebude z internetu " "dostupná a vÅ¡echny vnitÅ™ní poÄítaÄe budou vystupovat jako jedna IP adresa " "jednoho poÄítaÄe. MaÅ¡karádování funguje pouze pro IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Povolit maÅ¡karádu v zónÄ›" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Pokud povolíte maÅ¡karádu, IP forwarding bude povolen pro vaÅ¡e IPv4 sítÄ›." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "MaÅ¡karádování" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "PÅ™idat záznamy pro pÅ™eposílání portů buÄ z jednoho portu na druhý na " "lokálním systému nebo z lokálního portu do portu na jiném systému. " "PÅ™eposílání na jiný systém je užiteÄné pouze pokud je rozhraní maÅ¡karádované." " PÅ™eposílání portů funguje pouze na IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "PÅ™idat pÅ™esmÄ›rování portu" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Editovat pÅ™esmÄ›rování portu" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Odebrat pÅ™esmÄ›rování portu" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ICMP protokol (Internet Control Message Protocol) je používán pÅ™edevším pro " "posílání chybových zpráv mezi poÄítaÄi v síti, ale také pro informaÄní " "zprávy typ požadavek a odpovÄ›Ä (ping)." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "OznaÄte v seznamu typy ICMP zpráv, které mají být odmítnuty. VÅ¡echny ostatní " "ICMP typy budou procházet firewallem. ImplicitnÄ› jsou zprávy vpouÅ¡tÄ›ny bez " "omezení." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Pokud je invertní filtr povolen, jsou oznaÄené položky ICMP pÅ™ijímány a " "ostatní jsou odmítnuty. V zónÄ› s cílem DROP jsou upuÅ¡tÄ›ny." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Invertní filtr" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP filtr" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Zde můžete získat bohatá jazyková pravidla pro zónu." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "PÅ™idat bohaté pravidlo" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Editovat bohaté pravidlo" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Odebrat bohaté pravidlo" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Bohatá pravidla" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "PÅ™idat položky pro provázání rozhraní do zóny. V případÄ›, že bude rozhraní " "využito spojením, bude zóna nastavena na zónu uvedenou v pÅ™ipojení." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "PÅ™idat rozhraní" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Editovat rozhraní" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Odebrat rozhraní" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "PÅ™idat položky k provázání zdrojové adresy nebo oblastí k zónÄ›. Provázat lze " "také zdrojovou MAC adresu, ale jen s omezením. PÅ™esmÄ›rování portu a " "maskování nebude fungovat pro vázáné zdrojové MAC adresy." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "PÅ™idat zdroj" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Editovat zdroj" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Odebrat zdroj" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zony" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Service Firewall je kombinace portů, protokolů, modulů a cílových adres." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "PÅ™idat službu" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editovat službu" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Odstranit službu" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Nahrát původní nastavení služby" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "PÅ™idat další porty nebo intervaly portů, které musí být přístupné pro " "vÅ¡echny poÄítaÄe a sítÄ›." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editovat položku" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Odstranit položku" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "PÅ™idat další zdrojové porty nebo rozsahy portů, které je nutné ponechat " "přístupné pro vÅ¡echny poÄítaÄe a poÄítaÄové sítÄ›." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Zdrojový port" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Pomocné moduly netfilteru jsou nutné pro nÄ›které služby." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduly" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Pokud specifikujete cílové adresy, vložené služby jsou vztaženy k cílové " "adrese a typu. Pokud jsou oba vstupy prázdné, nejsou aplikována žádná " "omezení." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Servisy lze zmÄ›nit jen v trvalém konfiguraÄním rozhraní. Běžící konfigurace " "servisů je fixní." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "IPSet lze využít k vytvoÅ™ení povolených nebo zakázaných seznamů a je schopen " "uložit například IP adresy, Äísla portů nebo MAC adresy." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "PÅ™idat IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Editovat IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Odebrat IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Nahrát výchozí IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Položky v IPSetu. Je možné vidÄ›t jen ty položky IPSetu, které nepoužívají " "volbu Äasového limitu a které pÅ™idal firewalld. Položky pÅ™idané příkazem " "ipset se zde nezobrazí." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Tento IPSet používá volbu Äasového limitu a díky tomu zde nejsou vidÄ›t žádné " "položky. O položky by se mÄ›lo postarat přímo pomocí příkazu ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "PÅ™idat" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Položky" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSet lze vytvoÅ™it nebo odstranit pouze v trvalém konfiguraÄním rozhraní." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Typ firewalld icmptype poskytuje informace pro Internet Control Message " "Protocol (ICMP)." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "PÅ™idat typ ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Editovat typ ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Odstranit typ ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Nahrát základní typ ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "UrÄit, zda-li je typ ICMP dostupný pro IPv4 nebo IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Typy ICMP lze zmÄ›nit pouze v trvalém konfiguraÄním rozhraní. Běžící " "konfigurace ICMP typů je fixní." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Pomocník sledování spojení napomáhá ve fungování protokolů, které používají " "různé toky pro signalizaci a pÅ™enosy dat. PÅ™enosy dat využívají porty, které " "nesouvisí se signalizací spojení, a proto jsou bez pomocníka firewallem " "blokovány. " #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "UrÄit porty nebo rozsah portů, které jsou sledovány pomocníkem." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Přímé nastavení poskytuje přímÄ›jší přístup k firewallu. Volby vyžadují po " "uživateli základní znalost konceptu iptables, napÅ™. tabulky, Å™etÄ›zy, " "příkazy, parametry a cíle. Přímé nastavení by mÄ›lo být použito pouze jako " "poslední možnost, kdy už není možné použít jiné funkce firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Argument ipv každé volby musí být IPv4 nebo IPv6 nebo eb. S IPv4 bude pro " "iptables, s IPv6 pro ip6tables a s eb pro ethernetové mosty (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "DodateÄné Å™etÄ›zy pro použití s pravidly." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "PÅ™idat Å™etÄ›zec" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Editovat Å™etÄ›zec" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Odebrat Å™etÄ›zec" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ŘetÄ›zce" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "PÅ™idat pravidlo s argumenty args k Å™etÄ›zu v tabulce s prioritou." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Priorita se používá k nařízení pravidla. Priorita 0 znamená pÅ™idání pravidla " "do horní Äásti Å™etÄ›zce, s vyšší prioritou bude pravidlo pÅ™iÅ™azováno dále " "dolů. Pravidla se stejnou prioritou budou na stejné úrovni a poÅ™adí tÄ›chto " "pravidel není fixní a může se mÄ›nit. Pokud se má pravidlo pÅ™iÅ™adit za jiné, " "je nutné použít nižší prioritu pro první a vyšší prioritu pro následující " "pravidlo." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "PÅ™idat pravidlo" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Editovat pravidlo" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Odebrat pravidlo" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Pravidla" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Pravidla přímého průchodu prochází přímo k firewallu a nejsou umístÄ›na ve " "speciálních Å™etÄ›zcích. Lze použít vÅ¡echny volby pro iptables, ip6tables a " "ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "S pravidly přímého průchodu buÄte prosím opatrní, aby nedoÅ¡lo k poÅ¡kození " "firewallu." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "PÅ™idat přímý průchod" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Editovat přímý průchod" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Odebrat přímý průchod" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Přímý průchod" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Funkce uzamÄení je odlehÄená verze uživatelských a aplikaÄních politik pro " "firewalld. Omezuje zmÄ›ny na firewallu. Seznam povolených vyjímek uzamÄení " "může obsahovat příkazy, kontext, uživatele a ID uživatelů." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Kontext je kontext zabezpeÄení (SELinux) běžící aplikace nebo služby. Pro " "získání kontextu běžící aplikace je nutné použít ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "PÅ™idat kontext" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Editovat kontext" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Odebrat kontext" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Kontexty" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Pokud položka příkazu na seznamu povolených vyjímek konÄí hvÄ›zdiÄkou '*', " "pak se vÅ¡echny příkazové řádky zaÄínající příkazem budou shodovat. Pokud tam " "'*' není, musí se absolutní příkaz zahrnující argumenty shodovat." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "PÅ™idat příkazový řádek" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Editovat příkazový řádek" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Odebrat příkazový řádek" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Příkazové řádky" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Uživatelská jména." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "PÅ™idat uživatelské jméno" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Editovat uživatelské jméno" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Odebrat uživatelské jméno" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Uživatelská jména" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ID uživatelů." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "PÅ™idat ID uživatele" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Editovat ID uživatele" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Odebrat ID uživatele" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ID uživatelů" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "SouÄasná výchozí zóna systému." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Záznam zamítnutí:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Mód paniky:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "AutomatiÄtí pomocníci:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "UzamÄení:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Základní zóna:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Rozhraní" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Nastavení základního IPSecu" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Nakonfigurujte prosím základní nastavení IPSecu" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Typ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "ÄŒasový limit:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Velikost hashe:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Hodnota Äasového limitu v sekundách" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "PoÄáteÄní velikost hashe, výchozí hodnota 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maximální poÄet elementů, výchozí 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Vyberte prosím IPSet:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Záznam zamítnutí" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Vyberte prosím hodnotu záznamu zamítnutí" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "OznaÄení" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Zadejte prosím oznaÄení s volitelnou maskou." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Pole oznaÄení a masky jsou obÄ› 32 bitů Å¡iroká nepodepsaná Äísla." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "OznaÄení:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maska:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Vyberte prosím pomocníka netfilter conntrack:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Vybrat -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Jiný modul:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port a protokol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Prosím vložte port a protokol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Přímé pravidlo" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Vyberte prosím IPv a tabulku, prioritu Å™etÄ›zu a zadejte argumenty" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorita:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Vložte prosím protokol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Další protokol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Bohaté pravidlo" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Zadejte prosím bohaté pravidlo" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Seznam povolených nebo zakázaných vyjímek deaktivuje element pro poÄítaÄ " "nebo síť." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Zdroj:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Cíl:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Záznam:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 a IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "obrácený" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "K povolení tohoto musí být Akce nastavena na 'odmítnout' a Rodina buÄ 'IPv4' " "nebo 'IPv6' (ne obojí)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "s Typem:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "S Limitem:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Úroveň:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Akce:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Hlavní nastavení služeb" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Prosím nastavte hlavní nastavení služeb:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Vyberte prosím servis." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID uživatele" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Zadejte prosím ID uživatele." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Uživatelské jméno" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Zadejte prosím jméno uživatele." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "Å¡títek" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Nastavení hlavní zóny" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Prosím vložte nastavení hlavní zóny:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Základní cíl:" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Cíl:" firewalld-0.4.4.6/po/da.po000066400000000000000000001574721320241217000152060ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Christian Rose , 2002 # Keld Simonsen , 2002-2005 # Keld Simonsen , 2005-2006 # Kris Thomsen , 2009-2010 # scootergrisen , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-10-06 03:01-0400\n" "Last-Translator: scootergrisen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/firewalld/" "language/da/)\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall-applet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Konfiguration af firewall" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" "firewall;network;security;iptables;netfilter;netværk;sikkerhed;iptabeller;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Vælg zone til grænseflade '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Standardzone" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Vælg zone for forbindelse '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Kunne ikke sætte zone {zone} for forbindelse {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Vælg zone for kilde '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Konfigurer skjolde op/-ned-zoner" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Her kan du vælge zonerne som bruges til skjolde op og skjolde ned." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Denne facilitet er nyttig for personer som mest bruger standardzonerne. Den " "kan have begrænset anvendelse for brugere som skifter zoner af forbindelser." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Skjolde op-zone:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Nulstil til standard" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Skjolde ned-zone:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Om %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Forfattere" #: ../src/firewall-applet:396 msgid "License" msgstr "Licens" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Skjolde op" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Aktivér notifikationer" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Rediger firewallindstillinger..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Skift zoner af forbindelser..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Konfigurer skjolde op/-ned-zoner..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloker al netværkstrafik" #: ../src/firewall-applet:492 msgid "About" msgstr "Om" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Forbindelser" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Grænseflader" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Kilder" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autentifikation mislykkedes." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ugyldigt navn" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Navn findes allerede" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (zone: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (standardzone: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Kunne ikke hente forbindelser fra NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Ingen NetworkManager-importeringer tilgængelige" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ingen forbindelse til firewall-dæmon" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Al netværkstrafik er blokeret." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Standardzone: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Standardzone '{default_zone}' aktiv for forbindelse '{connection}' pÃ¥ " "grænseflade '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zone '{zone}' aktiv for bindelse '{connection}' pÃ¥ grænseflade '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zone '{zone}' aktiv for grænseflade '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone '{zone}' aktiv for kilde {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Ingen aktive zoner." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Forbindelse til FirewallD etableret." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Forbindelse til FirewallD tabt." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD er blevet genindlæst." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Standardzone ændret til '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Netværkstrafik er ikke længere blokeret." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktiveret" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deaktiveret" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Standardzone '{default_zone}' {activated_deactivated} for forbindelse " "'{connection}' pÃ¥ grænseflade '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone '{zone}' {activated_deactivated} for forbindelse '{connection}' pÃ¥ " "grænseflade '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zone '{zone}' {activated_deactivated} for grænseflade '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zone '%s' aktiveret for grænseflade '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone '{zone}' {activated_deactivated} for kilde '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone '%s' aktiveret for kilde '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Forbindelse til firewalld etableret." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Prøver at oprette forbindelse til firewalld, venter..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Ændringer anvendt." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Brugt af netværksforbindelse '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Standardzone brugt af netværksforbindelse '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "aktiveret" #: ../src/firewall-config:97 msgid "disabled" msgstr "deaktiveret" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Kunne ikke indlæse ikoner." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Kørselstid" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Tjeneste" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Til port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Til adresse" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Bindinger" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Punkt" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "ICMP-type" #: ../src/firewall-config:817 msgid "Family" msgstr "Familje" #: ../src/firewall-config:819 msgid "Action" msgstr "Handling" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Kilde" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Advarsel" #: ../src/firewall-config:1612 msgid "Error" msgstr "Fejl" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accepter" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "afvis" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "drop" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "mærk" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "grænse" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "tjeneste" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maskerade" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "kilde-port" #: ../src/firewall-config:2071 msgid "level" msgstr "niveau" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ja" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Standardzone: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zone: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone '%s': Tjeneste '%s' er ikke tilgængelig." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Fjern" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorer" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone '%s': ICMP-type '%s' er ikke tilgængelig." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Indbygget zone, omdøbning understøttes ikke." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "sekund" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minut" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "time" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dag" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "nødstilfælde" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alarm" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritisk" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "fejl" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "advarsel" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notits" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "fejlret" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-blok" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "videresendelsesport" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Videresending til et andet system er kun nyttigt hvis grænsefladen er " "maskeret.\n" "Vil du maskere denne zone?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Indbygget tjeneste, omdøbning understøttes ikke." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Indtast venligst en ipv4-adresse med formadressen[/mask]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Masken kan være en netværksmaske eller et nummer." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Indtast venligst en ipv6-adresse med formadressen[/mask]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Masken er et nummer." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Indtast venligst en ipv4- eller ipv6-adresse med formadressen[/mask]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Masken kan være en netværksmaske eller et nummer for ipv4.\n" "Masken er et nummer for ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Indbygget IP-sæt, omdøbning understøttes ikke." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Vælg venligst en fil" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Tekstfiler" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Alle filer" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Alle" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Indbygget hjælper, omdøbning understøttes ikke." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Indbygget ICMP, omdøbning understøttes ikke." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Kunne ikke læse fil '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Vælg zone for kilde %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresse" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatiske hjælpere" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Vælg venligst automatisk hjælperværdien:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Kommandolinje" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Indtast venligst kommandolinjen." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Sammenhæng" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Indtast venligst sammenhænget." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Vælg venligst standardzone fra listen nedenfor." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Direkte kæde" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Vælg venligst ipv og tabel og indtast kædenavnet." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Kæde:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "rÃ¥" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "sikkerhed" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabel:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Direkte videregivelsesregel" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Vælg venligst ipv og indtast argumenterne." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumenter:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Videresendelse af port" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Vælg venligst kilden og destinationsindstillingerne som passer til dine " "behov." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port/portinterval:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP-adresse:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Kilde" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destination" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Hvis du aktiverer lokal videresendelse, skal du angive en port. Denne port " "skal være forskellig fra kildeporten." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokal videresendelse" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Videresend til en anden port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Grundlæggende hjælperindstillinger" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Konfigurer venligst grundlæggende hjælperindstillinger:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Punkter med fed skrift er obligatoriske, alle andre er valgfrie." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Navn:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Kort:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Beskrivelse:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Familje:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Modul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Hjælper" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Vælg venligst en hjælper:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Grundlæggende ICMP-type-indstillinger" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Konfigurer venligst grundlæggende ICMP-type-indstillinger:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-type" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Vælg venligst en ICMP-type" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Tilføj punkt" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Tilføj punkter fra fil" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Fjern valgte punkter" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Fjern alle punkter" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Fjern punkter fra fil" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fil" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Valgmuligheder" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Genindlæs firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Genindlæser firewall-regler. Nuværende permanent konfiguration vil blive til " "ny kørselstidskonfiguration. Dvs. alle ændringer som kun er foretaget for " "kørselstid op til genindlæsning mistes ved genindlæsning hvis de ikke ogsÃ¥ " "har været i permanent konfiguration." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Vælg hvilken zone en netværksforbindelse tilhører." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Skift standardzone" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Skift standardzone for forbindelser eller grænseflader." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Skift lognægtelse" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Skift lognægtelsesværdi." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Konfigurer automatisk hjælper tildeling" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Konfigurer automatisk hjælper tildelingsindstilling." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "Paniktilstand betyder at alle indkommende og udgÃ¥ende pakker droppes." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Paniktilstand" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Nedlukning lÃ¥ser firewall-konfiguration sÃ¥ kun programmer pÃ¥ " "nedlukningshvidliste kan ændre den." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Lukning" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Gør kørselstidskonfiguration permanent" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Kørselstid til permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Vis" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IP-sæt" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP-typer" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Hjælpere" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Direkte konfiguration" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Lukningshvidliste" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktive bindinger" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Hjælp" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Skift zone af binding" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Skjul aktive kørselstidsbindinger af forbindelser, grænseflader og kilder " "til zoner" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Vis aktive kørselstidsbindinger af forbindelser, grænseflader og kilder til " "zoner" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfiguration:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Nuværende synlige konfiguration. Kørselstidskonfiguration er den faktiske " "aktive konfiguration. Permanent konfiguration vil være aktiv efter tjeneste " "eller system bliver genindlæst eller genstartet." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "En firewalld-zone angiver niveauet af betroelse for netværksforbindelser, " "grænseflader og kildeadresser bundet til zonen. Zonen kombinerer tjenester, " "porte, protokoller, maskeringer, port-/pakkevideresendelse, ICMP-filtre og " "rigregler. Zonen kan bindes til grænseflader og kildeadresser." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Tilføj zone" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Rediger zone" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Fjern zone" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Indlæs zonestandarder" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Her kan du definere hvilke tjeneser der er betroet i zonen. Betroet tjeneser " "er tilgængelige fra alle værter og netværk der kan nÃ¥s fra maskinen fra " "forbindelser, grænseflader og kilder bundet til denne zone." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Tjenester" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Tilføj yderligere porte eller portintervaller som skal være tilgængelige for " "alle værter eller netværk som kan oprette forbindelse til maskinen." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Tilføj port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Rediger port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Fjern port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Porte" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Tilføj protokoller som skal være tilgængelig for alle værter eller netværker." "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Tilføj protokol" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Rediger protokol" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Fjern protokol" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokoller" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Tilføj yderligere kildeporte eller portintervaller som skal være " "tilgængelige for alle værter eller netværk som kan oprette forbindelse til " "maskinen." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Kildeporte" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Maskering tillader dig at sætte en vært eller en ruter op, som forbinder til " "dit lokale netværk til internettet. Dit lokale netværk vil ikke blive " "synligt og værterne vises som en enkelt adresse pÃ¥ internettet. Maskering er " "kun for IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Maskeradezone" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Hvis du aktiverer maskering vil IP-videresending kun blive aktiveret for " "IPv4-netværk." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskerede" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Tilføj indgange til videresendelsesporte, enten fra en port til en anden pÃ¥ " "det lokale system eller fra det lokale system til et andet system. " "Videresendelse til et anden system er kun brugbart, hvis grænsefladen er " "maskeret. Videresendelse af port er kun for IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Tilføj videresendelsesport" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Rediger videresendelsesport" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Fjern videresendelsesport" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message Protocol (ICMP) er hovedsageligt brugt til at sende " "fejlmeddelser mellem computere pÃ¥ netværk, men ogsÃ¥ til " "informationsmeddelser, som for eksempel, ping-forespørgsler og svar." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Markér de ICMP-typer i listen, der skal afvises. Alle andre ICMP-typer er " "tilladt at passere firewallen. Som standard er der ingen begrænsninger." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Hvis omvendt filter er aktiveret, accepteres mærket ICMP-punkter og andre " "afvises. I en zone med mÃ¥let DROP, droppes de." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Omvend filter" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP-filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Her kan du sætte rige sprogregler for zonen." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Tilføj rigregel" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Rediger rigregel" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Fjern rigregel" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Rigregler" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Tilføj punkter at binde grænseflader til zonen. Hvis grænsefladen bruges af " "en forbindelse, vil zonen blive sat til zonen som er angivet i forbindelsen." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Tilføj grænseflade" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Rediger grænseflade" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Fjern grænseflade" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Tilføj punkter for at binde kildeadresser eller omrÃ¥der til zonen. Du kan " "ogsÃ¥ binde til en MAC-kildeadresse, men uden begrænsninger. Videresendelse " "af port og maskering virker ikke for MAC-kildebindinger." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Tilføj kilde" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Rediger kilde" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Fjern kilde" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zoner" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "En firewalld-tjeneste er en kombination af porte, protokoller, moduler og " "andre distinationsadresser." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Tilføj tjeneste" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Rediger tjeneste" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Fjern tjeneste" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Indlæs tjenestestandarder" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Tilføj yderligere porte eller portintervaller som skal være tilgængelige for " "alle værter eller netværk." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Rediger punkt" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Fjern punkt" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Tilføj yderligere kildeporte eller portintervaller som skal være " "tilgængelige for alle værter eller netværk." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Kildeport" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter-hjælpermoduler kræves af nogle tjenester." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduler" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Hvis du angiver destinationsadresser, vil tjenestepunktet blive begrænset " "til destinationsadressen og typen. Hvis begge punkter er tomme er der ingen " "grænse." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Tjenester kan kun ændres i den permanente konfigurationsvisning. " "Kørselstidskonfigurationen af tjenester er fast." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Et IP-sæt kan bruges til at oprette hvid- og sortlister og er i stand til at " "lagre f.eks. IP-adresser, portnumre eller MAC-adresser. " #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IP-sæt" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Tilføj IP-sæt" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Rediger IP-sæt" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Fjern IP-sæt" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Indlæs IP-sæt-standarder" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Punkter af IP-sættet. Du vil kun være i stand til at se punkterne af IP-sæt " "som ikke bruger timeout-valgmuligheden, og kun punkter der er blevet " "tilføjet af firewalld. Punkter som er blevet tilføjet direkte med ipset-" "kommandoen vil ikke være listet her." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Dette IP-sæt bruger timout-valgmuligheden, sÃ¥ derfor er der ingen synlige " "punkter her. Punkterne skal tages af direkte men ipset-kommandoen." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Tilføj" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Punkter" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IP-sæt kan kun oprettes eller slettes i den permanente konfigurationsvisning." "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "En firewalld icmptype leverer informationen fra en Internet Control Message " "Protocol-type (ICMP) for firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Tilføj ICMP-type" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Rediger ICMP-type" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Fjern ICMP-type" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Indlæs ICMP-typestandarder" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Angiv hvorvidt denne ICMP-type er tilgængelig til IPv4 og/eller IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP-typer kan kun ændres i den permanente konfigurationsvisning. " "Kørselstidskonfiguration af ICMP-typer er fast." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "En forbindelsessporingshjælper assisterer med at fÃ¥ protokoller til at virke " "som bruger andre flows til signalering og dataoverførsler. Dataoverførslerne " "bruger porte som ikke har relation til den signalerende forbindelse og " "derfor er blokeret af firewallen uden hjælperen." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Definer porte eller portintervaller som overvÃ¥ges af hjælperen." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Den direkte konfiguration giver en mere direkte adgang til firewallen. Disse " "valgmuligheder kræver at brugeren kender til grundlæggende iptables-" "koncepter, dvs. tabeller, kæder, kommandoer, parametre og mÃ¥l. Direkte " "konfiguration bør kun bruges som en sidste mulighed nÃ¥r det ikke er muligt " "at bruge andre firewalld-faciliteter." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Ipv-argumentet for hver valgmulighed skal være ipv4, ipv6 eller eb. Med ipv4 " "vil den være for iptables, med ipv6 for ip6tables og med eb for ethernet-" "broer (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Yderligere kæder til brug med regler." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Tilføj kæde" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Rediger kæde" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Fjern kæde" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Kæder" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Tilføj en regel med argumenternes argumenter til en kæde i en tabel med en " "prioritet." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Prioriteten bruges til at sætte regler i rækkefølge. Prioritet 0 betyder " "tilføj regel øverst i kæden, med en højere prioritet tilføjes reglen længere " "nede. Regler med den samme prioritet er pÃ¥ samme niveau og rækkefølgen for " "disse regler er ikke fast og kan skifte. Hvis du vil sørge for at en regel " "vil blive tilføjet efter en anden, sÃ¥ bruge en lav prioritet til den første " "og en højere til den efterfølgende." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Tilføj regel" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Rediger regel" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Fjern regel" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regler" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Videregivelsesreglerne videresendes direkte til firewallen og placeres ikke " "i specielle kæder. Alle iptables-, ip6tables- og ebtables-valgmuligheder kan " "bruges." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "Pas pÃ¥ med ikke at skade firewallen med videregivelsesregler." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Tilføj videregivelse" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Rediger videregivelse" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Fjern videregivelse" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Videregivelse" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Nedlukningsfaciliteten er en letvægtsversion af bruger- og programpolitikker " "til firewalld. Den begrænser ændringer til firewallen. Nedlukningshvidlisten " "kan indeholde kommandoer, sammenhæng og bruger-ID'er." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Sammenhænget er sikkerhedenssammenhænget (SELinux) af et kørende program " "eller tjeneste. Brug ps -e --context for at fÃ¥ sammenhænget af et " "kørende program." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Tilføj sammenhæng" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Rediger sammenhæng" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Fjern sammenhæng" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Sammenhæng" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Hvis et kommandopunkt pÃ¥ hvidlisten slutter med en stjerne '*', sÃ¥ matches " "alle kommandolinjer som starte med kommandoen. Hvis ikke '*' er der, sÃ¥ skal " "den absolutte kommando matche, inklusiv argumenter." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Tilføj kommandolinje" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Rediger kommandolinje" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Fjern kommandolinje" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Kommandolinjer" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Brugernavne." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Tilføj brugernavn" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Rediger brugernavn" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Fjern brugernavn" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Brugernavne" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Bruger-ID'er." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Tilføj bruger-ID" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Rediger bruger-ID" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Fjern bruger-ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Bruger-ID'er" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Systemets nuværende standardzone." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Lognægtelse:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Paniktilstand:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatiske hjælpere:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lukning:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Standardzone:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Grænseflade" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Grundlæggende IP-sæt-indstillinger" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Konfigurer venligst grundlæggende IP-sæt-indstillinger:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Type:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Timeout:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Hashstørrelse:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maks. elem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Timeoutværdi i sekunder" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Indledende hashstørrelse, standard 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maks. antal elementer, standard 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Vælg venligst et IP-sæt:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Lognægtelse" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Vælg venligst en lognægtelsesværdi:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Mærk" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Indtast venligst et mærke med en valgfri maske." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Mærket og maskefeltet er begge 32 bit brede numre uden fortegn." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Mærke:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maske:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Vælg venligst en netfilter conntrack-hjælper:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Vælg -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Andet module:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port og protokol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Indtast venligst en port eller protokol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Direkte regel" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Vælg venligst ipv og tabel, kæde, prioritet og indtast argumenterne." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioritet:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Indtast venligst en protokol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Anden protokol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Rigregel" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Indtast venligst en rigregel." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "For værts- eller netværkshvidlistning eller -sortlisting deaktivér elementet." "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Kilde:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destination:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 og ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "omvendt" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "For at aktivere, skal denne handling være 'afvis' og familje skal enten være " "'ipv4' eller 'ipv6' (ikke begge)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "med type:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Med grænse:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Præfiks:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Niveau:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Handling:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Grundlæggende tjenesteindstillinger" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Konfigurer venligst grundlæggende tjenesteindstillinger:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Vælg venligst en tjeneste." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Bruger-ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Indtast venligst bruger-ID'et." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Brugernavn" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Indtast venligst brugernavnet." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etiket" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Grundlæggende zoneindstillinger" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Konfigurer venligst grundlæggende zoneindstillinger:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "StandardmÃ¥l" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "MÃ¥l:" firewalld-0.4.4.6/po/de.po000066400000000000000000001652131320241217000152020ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Andreas Müller , 2003 # Bernd Bartmann , 2004 # Bernd Groh , 2002-2004 # tbull , 2010 # Daniela Kugelmann , 2008 # Dominik Sandjaja , 2008 # Fabian Affolter , 2008-2009 # Florian Festi , 2008 # hpeters , 2009 # hpeters , 2009,2014 # hpeters , 2014 # Marcus Gloeckner , 2006 # Marcus Nitzschke , 2009-2010 # Michael Schönitzer , 2007 # Michael Schönitzer , 2007 # Nadine Reissle , 2006 # Roman Spirgi , 2012-2013 # Ronny Buchmann , 2005-2006 # sknirT omiT , 2010 # tbull , 2010 # Thomas Woerner , 2008-2009,2012 # Thomas Woerner , 2012 # Thomas Woerner , 2012 # Verena , 2004 # Roman Spirgi , 2015. #zanata # Hedda Peters , 2016. #zanata # Lisa Stemmler , 2016. #zanata # Roman Spirgi , 2016. #zanata # Thomas Woerner , 2016. #zanata # Robert Scheck , 2017. #zanata # Roman Spirgi , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-06-14 03:15-0400\n" "Last-Translator: Roman Spirgi \n" "Language-Team: German (http://www.transifex.com/projects/p/firewalld/" "language/de/)\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall-Applet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Firewall-Konfiguration" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "Firewall;Netzwerk;Sicherheit;Iptables;Netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Wählen Sie die Zone für die Schnittstelle »%s«" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Standardzone" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr " Zone für Verbindung »%s« auswählen" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Fehler beim Angeben der Zone {zone} für Verbindung {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Zone für Quelle »%s« auswählen" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Konfiguriere geschützte/ offene Zonen" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Hier können Sie die Bereiche für aktive und offene Schutzschild-Zonen " "auswählen." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Diese Funktion ist besonders nützlich für Benutzer, die hauptsächlich die " "Standard-Zonen verwenden. Für Benutzer, die Verbindungs-Zonen ändern, ist es " "möglicherweise nur bedingt nützlich." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Aktive Schutzschild-Zone:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Auf Standardeinstellung zurücksetzen" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Offene Schutzschild-Zone:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Über %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autoren" #: ../src/firewall-applet:396 msgid "License" msgstr "Lizenz" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Schutzschilde aktivieren" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Meldungen aktivieren" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Firwall-Einstellungen bearbeiten..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Verbindungszonen ändern..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Konfiguriere geschützte/offene Schutzschild-Zonen..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Sämtlichen Netzwerk-Verkehr blocken" #: ../src/firewall-applet:492 msgid "About" msgstr "Info" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Verbindungen" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Schnittstellen" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Quellen" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autorisierung fehlgeschlagen." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ungültiger Name" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Name ist bereits vorhanden" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zone: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Standardzone: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Abrufen der Verbindungen von NetworkManager fehlgeschlagen" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Keine Importe von NetworkManager verfügbar" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Keine Verbindung zum Firewalldämon" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Sämtlicher Netzwerkverkehr wird geblockt." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Standardzone: »%s«" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Standardzone '{default_zone}' aktiv für Verbindung '{connection}' auf " "Schnittstelle '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "'{zone}'-Zone aktiv für '{connection}'-Verbindung auf '{interface}'-" "Schnittstelle" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "'{zone}'-Zone aktiv für '{interface}'-Schnittstelle" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone '{zone}' aktiv für Quelle {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Keine aktiven Zonen" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Verbindung zu FirewallD hergestellt." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Verbindung zu FirewallD verloren." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD neu geladen." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Standard-Zone geändert auf »%s«." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Netzwerkverkehr wird nicht mehr geblockt." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktiviert" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deaktiviert" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Standardzone '{default_zone}' {activated_deactivated} für Verbindung " "'{connection}' auf Schnittstelle '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "'{zone}'-Zone {activated_deactivated} für '{connection}'-Verbindung auf " "'{interface}'-Schnittstelle" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "'{zone}'-Zone {activated_deactivated} für '{interface}'-Schnittstelle" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "»%s«-Zone aktiviert für »%s«-Schnittstelle " #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone '{zone}' {activated_deactivated} für Quelle '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone »%s« aktiviert für Quelle »%s«" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Verbindung zu firewalld hergestellt." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Verbindungsversuch zu firewalld, warten..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Änderungen angewendet." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Wird von der Netzwerkverbindung »%s« benutzt" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Standardzone benutzt von Netzwerkverbindung '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "aktiviert" #: ../src/firewall-config:97 msgid "disabled" msgstr "deaktiviert" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Symbole konnten nicht geladen werden." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Runtime" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Dienst" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoll" #: ../src/firewall-config:560 msgid "To Port" msgstr "An Port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Zu Adresse" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Zuordnungen" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Eintrag" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp-Typ" #: ../src/firewall-config:817 msgid "Family" msgstr "Familie" #: ../src/firewall-config:819 msgid "Action" msgstr "Aktion" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "Log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Warnung" #: ../src/firewall-config:1612 msgid "Error" msgstr "Fehler" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "akzeptieren" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "ablehnen" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "abwählen" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "markieren" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "begrenzen" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "Dienst" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "Port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "Protokoll" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "Maskierung" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "Quell-Port" #: ../src/firewall-config:2071 msgid "level" msgstr "Stufe" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "Ja" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Standardzone: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zone: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone »%s«: Dienst »%s« ist nicht verfügbar." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Zone entfernen" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorieren" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone »%s«: ICMP-Typ »%s« ist nicht verfügbar." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Integrierte Zone, das Umbenennen wird nicht unterstützt." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "Sekunde" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "Minute" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "Stunde" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "Tag" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "Gefahr" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "Warnung" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritisch" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "Fehler" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "Warnung" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "Notiz" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "Info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "Debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-Blockierung" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "ICMP-Typ" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "Weiterleitungsport" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Die Weiterleitung an ein anderes System ist nur dann sinnvoll, wenn die " "Schnittstelle maskiert ist.\n" "Wollen Sie diese Zone maskieren?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Integrierter Dienst, das Umbenennen wird nicht unterstützt." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Bitte geben Sie eine ipv4 Adresse im Format Adresse[/mask] ein." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Die Maske kann eine Netzwerkmaske oder eine Zahl sein." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Bitte geben Sie eine ipv6 Adresse im Format Adresse[/mask] ein." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Die Maske ist eine Zahl." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Bitte geben Sie eine ipv4 Adresse im Format Adresse[/mask] ein." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Die Maske kann eine Netzwerkmaske für ipv4 sein.\n" "Die Maske ist eine Zahl für ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Integriertes Ipset, Umbenennen wird nicht unterstützt." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Bitte wählen Sie eine Datei" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Textdateien" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Alle Dateien" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Alle" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Enthaltene Helfer, Umbenennen nicht unterstützt." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Integriertes Icmp, das Umbenennen wird nicht unterstützt." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Lesen der Datei »%s« fehlgeschlagen: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Zone für Quelle %s auswählen" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresse" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatische Helfer" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Bitte den Wert für automatische Helfer wählen:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Befehlszeile" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Bitte die Befehlszeile eingeben." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Kontext" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Bitte den Kontext eingeben." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Bitte wählen Sie die Standardzone aus der unteren Liste." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Direkte Kette" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" "Bitte wählen Sie IP-Version sowie die Tabelle und geben Sie den Ketten-Namen " "ein." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Kette:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "Sicherheit" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabelle:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Direkte Weiterleitungsregel" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Bitte wählen Sie IP-Version und geben Sie die Argumente ein." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumente:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Port-Weiterleitung" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Bitte wählen Sie die Quell- und Ziel-Einstellungen nach Ihren Bedürfnissen " "aus." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port/ Port-Bereich:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP-Adresse:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokoll:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Quelle" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Ziel" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Wenn Sie lokales Weiterleiten aktivieren, müssen Sie einen Port angeben. " "Dieser Port darf nicht mit dem Quell-Port übereinstimmen." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokales Weiterleiten" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "An einen anderen Port weiterleiten" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Basis-Helfer Einstellungen" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Bitte Basis-Helfer Einstellungen konfigurieren:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Fett markierte Einträge sind zwingend, alle anderen optional." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Name:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Kurzbeschreibung:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Beschreibung:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Familie:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Module:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Helfer" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Bitte einen Helfer wählen:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Grundlegende ICMP Typ-Einstellungen" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" "Bitte konfigurieren Sie die grundlegenden Einstellungen des ICMP-Typs:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-Typ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Einen ICMP-Typ auswählen" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Eintrag hinzufügen" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Einträge von Datei hinzufügen" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Ausgewählten Eintrag entfernen" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Alle Einträge entfernen" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Einträge aus Datei entfernen" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Datei" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Optionen" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld neu laden" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Firewall-Regeln neu laden. Die aktuelle permanente Konfiguration wird als " "neue Runtime-Konfiguration gesetzt, dadurch z.B. werden alle »Nur-Runtime«-" "Änderungen beim Neuladen verloren gehen, falls sich diese nicht auch in der " "permanenten Konfiguration befinden." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" "Wählen Sie zu welcher Zone eine Netzwerkverbindung zugeordnet werden soll." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Standardzone ändern" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Standardzone für Verbindungen oder Schnittstellen ändern." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "LogDenied ändern" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Wert für LogDenied ändern." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Konfigurieren der automatischen Helferzuweisung" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Konfigurieren der Einstellung für die automatische Helferzuweisung." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Sperrmodus bedeutet, dass sämtliche eingehende und ausgehende Pakete " "verworfen werden." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Panik-Modus" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown sperrt die Firewall-Konfiguration, so dass nur Anwendungen auf der " "Sperr-Positivliste diese ändern können." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Sperrung" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Runtime-Konfiguration dauerhaft speichern" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Runtime auf dauerhaft" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Ansicht" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP-Typen" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Helfer" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Direkte Konfiguration:" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Sperr-Positivliste" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktive Zuordnungen" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Hilfe" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Zone der Zuordnung ändern" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Ausblenden aktiver Laufzeit-Zuordnungen der Verbindungen, Schnittstellen und " "Quellen für Zonen" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Anzeigen aktiver Laufzeit-Zuordnungen der Verbindungen, Schnittstellen und " "Quellen für Zonen" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfiguration:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Aktuell einsehbare Konfiguration. Die Runtime-Konfiguration ist die " "derzeitig aktive Konfiguration. Die dauerhafte Konfiguration wird nach dem " "erneuten Laden des Dienstes oder Systems aktiv sein." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Ein firewalld-Zone definiert die Vertrauensstufe für Netzwerkverbindungen, " "Schnittstellen und Quell-Adressen. Die Zone kombiniert Dienste, Ports, " "Protokolle, Maskierungen, Port-/ Paket-Weiterleitung, ICMP-Filter und " "umfassende Regeln. Die Zone kann mit Schnittstellen und Quelladressen " "verknüpft werden." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Zone hinzufügen" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Zone bearbeiten" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Zone entfernen" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Standardwerte der Zone laden" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Hier können Sie definieren, welche Dienste in der Zone vertrauenswürdig sind." " Vertrauenswürdige Dienste sind zugänglich von allen Hosts und Netzwerken, " "die den Rechner über mit dieser Zone verbundenen Verbindungen, " "Schnittstellen und Quellen erreichen können." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Dienste" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Zusätzliche Ports oder Portbereiche hinzufügen, welche von allen Rechnern " "oder Netzwerken erreichbar sein müssen, die sich mit dem Gerät verbinden " "können." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Port hinzufügen" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Zone bearbeiten" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Zone entfernen" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Ports" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Protokolle hinzufügen, die für alle Hosts oder Netzwerke erreichbar sein " "müssen." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Protokoll hinzufügen" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Protokoll bearbeiten" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Protokoll entfernen" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokolle" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Zusätzliche Ports oder Portbereiche hinzufügen, welche von allen Rechnern " "oder Netzwerken erreichbar sein müssen, die sich mit dem Gerät verbinden " "können." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Quellports" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading erlaubt es, einen Rechner oder Router einzurichten, der Ihr " "lokales Netzwerk mit dem Internet verbindet. Ihr lokales Netzwerk ist nicht " "sichtbar und erscheint als ein Rechner vom Internet aus betrachtet. " "Masquerading kann nur für IPv4 benutzt werden." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Maskierte Zone" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Wenn Sie Masquerading aktivieren, wird IP Forwarding für Ihre IPv4-Netzwerke " "aktiviert." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Fügen Sie Einträge hinzu, um entweder einen Port auf einen anderen lokalen " "Port weiterzuleiten oder vom lokalen System auf ein anderes. Das " "Weiterleiten eines Ports auf ein anderes System ist nur dann sinnvoll, wenn " "die Schnittstelle maskiert ist. Port-Weiterleitung kann nur für IPv4 benutzt " "werden." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Weiterleitungs-Port hinzufügen" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Weiterleitungs-Port bearbeiten" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Weiterleitungs-Port entfernen" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Das Internet Control Message Protocol (ICMP) wird hauptsächlich dazu " "verwendet, um Fehlermeldungen zwischen vernetzten Computern zu senden und " "zusätzlich zu Informationszwecken wie z.B. Ping-Anfragen und -Antworten." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Markieren Sie die ICMP-Typen in der Liste, die abgelehnt werden sollen. Alle " "anderen ICMP-Typen dürfen die Firewall passieren. Der Standardwert hat keine " "Beschränkung." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Falls Filter invertieren aktiviert ist, werden markierte ICMP-Einträge " "akzeptiert und andere zurückgewiesen. In einer Zone mit dem Ziel DROP, " "werden diese verworfen." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Filter invertieren" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP-Filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Hier können umfassende Sprachregeln für die Zone definiert werden" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Umfassende Regel hinzufügen" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Umfassende Regel bearbeiten" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Umfassende Regel entfernen" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Umfassende Regeln" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Einträge hinzufügen, um Schnittstellen mit der Zone zu verknüpfen. Falls die " "Schnittstelle von einer Verbindung verwendet wird, wird die Zone in der " "Verbindung angegebenen Zone gesetzt." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Schnittstelle hinzufügen" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Schnittstelle bearbeiten" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Schnittstelle entfernen" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Einträge hinzufügen, um Quelladressen oder Bereiche mit der Zone zu " "verbinden. Sie können sie auch mit einer MAC-Quelladresse verbinden, " "allerdings mit Einschränkungen. Weiterleiten und Maskieren des Ports wird " "für MAC-Quellbindungen nicht funktionieren." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Quelle hinzufügen" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Quelle bearbeiten" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Quelle entfernen" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zonen" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Ein firewalld-Dienst ist eine Kombination aus Ports, Protokollen, Modulen " "und Zieladressen." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Dienst hinzufügen" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Dienst bearbeiten" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Dienst entfernen" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Standard-Dienst-Einstellungen laden" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Zusätzliche Ports oder Port-Bereiche hinzufügen, die für alle Hosts oder " "Netzwerke erreichbar sein müssen." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Eintrag bearbeiten" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Eintrag entfernen" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Zusätzliche Ports oder Port-Bereiche hinzufügen, die für alle Rechner oder " "Netzwerke erreichbar sein müssen." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Quell-Port" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter-Helfer-Module werden für einige Dienste benötigt." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Module" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Wenn Sie Zieladressen angeben, wird der Dienst-Eintrag auf die Zieladresse " "und den Typ beschränkt. Wenn beide Einträge leer sind, gibt es keine " "Einschränkung." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Dienste können nur in der permanenten Konfigurationsansicht geändert werden. " "Die Runtime-Konfiguration der Dienste ist unveränderlich." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Ein IPSet kann verwendet werden, um White- oder Blacklists zu erstellen, und " "es kann zum Beispiel IP-Adressen, Portnummern oder MAC-Adressen speichern. " #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "IPSet hinzufügen" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "IPSet bearbeiten" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "IPSet entfernen" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "IPSet Standardeinstellungen laden" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Einträge von IPSet. Sie werden nur Einträge von IPSet sehen können, die " "nicht die Timeout-Option verwenden, außerdem nur Einträge, die von firewalld " "hinzugefügt wurden. Einträge, die direkt mit dem IPSet Befehl hinzugefügt " "wurden, werden hier nicht angeführt." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Dieses IPSet benutzt die Timeout-Option, deswegen sind hier keine Einträge " "sichtbar. Die Einträge sollten direkt mit dem IPSet-Befehl verarbeitet " "werden." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Hinzufügen" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Einträge" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSets können nur in der dauerhaften Konfigurationsansicht erstellt oder " "gelöscht werden. " #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Ein firewalld-icmp-Typ stellt die Information für einen »Internet Control " "Message Protocol«-Typ (ICMP) für firewalld bereit." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP-Typ hinzufügen" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP-Typ bearbeiten" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP-Typ entfernen" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP Typ-Standardwerte laden" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Definieren, ob dieser ICMP-Typ für IPv4 und/ oder IPv6 verfügbar ist." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP-Typen können nur in der permanenten Konfigurationsansicht geändert " "werden. Die Runtime-Konfiguration der ICMP-Typen ist unveränderlich." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Ein Verbindungsüberwachungs-Helfer unterstützt Protokolle, die " "unterschiedliche Ströme für Signalisierung und Datenübertragungen verwenden. " "Die Datenübertragungen verwenden Ports, die nicht mit der " "Signalisierungsverbindung verknüpft sind und daher von der Firewall ohne " "Helfer blockiert würden." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Ports oder Portbereiche definieren, welche vom Helfer überwacht werden." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Die direkte Konfiguration ergibt einen direkteren Zugang zum Firewall. Diese " "Optionen verlangen vom Benutzer grundlegende Kenntnisse über iptables-" "Konzepte, z.B. Tabellen, Ketten, Befehle, Parameter und Ziele. Direkte " "Konfiguration sollte nur als letzter Ausweg eingesetzt werden, wenn es nicht " "möglich ist, andere firewalld Funktionen zu verwenden." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Das ipv Argument jeder Option hat ipv4 oder ipv6 oder eb zu sein. Bei ipv4 " "wird es für iptables, mit ipv6 für ip6tables und mit eb für Ethernet-Brücken " "(ebtables) sein." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Weitere Ketten für den Einsatz mit Regeln." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Kette Hinzufügen" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Kette Bearbeiten" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Kette Entfernen" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Ketten" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Fügen Sie eine Regel mit den Argumenten args zu einer Kette in einer Tabelle " "mit einer Priorität hinzu." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Die Priorität wird verwendet, um Regeln zu reihen. Priorität 0 bedeutet die " "Regel oben auf der Kette einzufügen, mit einer höheren Priorität wird die " "Regel weiter unten hinzugefügt werden. Regeln mit der gleichen Priorität " "sind auf der gleichen Ebene und die Reihenfolge dieser Regeln ist nicht " "festgelegt und kann sich ändern. Wenn Sie sicherstellen wollen, dass eine " "Regel nach einer anderen hinzugefügt werden soll, verwenden Sie eine " "niedrige Priorität für die erste und eine höhere für die folgende." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Regel hinzufügen" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Regel bearbeiten" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Regel löschen" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regeln" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Die Durchgangsregeln werden direkt durch die Firewall gelassen und werden " "nicht in Spezialketten gegeben. Alle iptables, ip6tables und ebtables " "Optionen können verwendet werden." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Bitte seien Sie vorsichtig mit Durchgangsregeln damit Sie nicht den Firewall " "beschädigen." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Durchgang Hinzufügen" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Durchgang Bearbeiten" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Durchgang Entfernen" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Durchgang" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Die Sperroption ist eine einfache Version von Benutzer- und " "Anwendungsrichtlinien für firewalld. Sie begrenzt Änderungen an der Firewall." " Die Sperr-Positivliste kann Befehle, Kontexte, Benutzer und Benutzer-IDs " "enthalten." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Der Kontext ist der (SELinux-) Sicherheitskontext einer laufenden Anwendung " "oder eines Dienstes. Um den Kontext einer laufenden Anwendung einzusehen, " "verwenden Sie ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Kontext hinzufügen" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Kontext bearbeiten" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Kontext entfernen" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Kontexte" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Falls ein Befehlseintrag der Positivliste mit einem Sternsymbol »*« endet, " "werden alle Kommandozeilen, die mit dem Befehl beginnen ausgewertet. Falls " "das »*«-Symbol nicht vorhanden ist, muss der absolute Befehl inklusive " "Argumenten übereinstimmen." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Kommandozeile hinzufügen" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Kommandozeile bearbeiten" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Kommandozeile entfernen" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Kommandozeilen" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Benutzernamen." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Benutzernamen hinzufügen" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Benutzernamen bearbeiten" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Benutzernamen entfernen" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Benutzernamen" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Benutzerkennungen." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Benutzer-ID hinzufügen" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Benutzer-ID bearbeiten" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Benutzer-ID entfernen" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Benutzerkennungen" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Aktuelle Standard-Zone des Systems" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Log Denied:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Panik-Modus:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatische Helfer:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Sperrung:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Standard-Zone:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Schnittstelle" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Grundlegende IPSet Einstellungen" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Bitte konfigurieren Sie die grundlegenden IPSet-Einstellungen:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Typ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Timeout:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Hashgröße:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Timeout in Sekunden" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Ursprüngliche Hashgröße, Standard 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Max Anzahl von Elementen, Standard 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Bitte wählen Sie ein IPSet:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Log Denied" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Bitte wählen Sie einen Wert für LogDenied:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Markieren" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Bitte geben Sie eine Markierung mit optionaler Maske ein" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "Beide Felder für Markierung und Maske sind unsignierte Zahlen von 32bits " #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Markieren:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maskieren:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Bitte einen Netfilter Conntrack Helfer wählen:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Auswählen -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Andere Module:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port und Protokoll" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Bitte einen Port und ein Protokoll eingeben." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Direkte Regel" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Bitte wählen Sie ipv und table, " #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorität:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Bitte ein Protokoll angeben." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Anderes Protokoll:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Umfassende Regel" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Bitte eine umfassende Regel eingeben." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Element deaktivieren, um Positiv- oder Negativlisten für Host oder Netzwerk " "zu verwenden." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Quelle:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Ziel:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 und ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "invertiert" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Zum Aktivieren muss diese Aktion 'reject' sein und die Familie muss entweder " "'ipv4' oder 'ipv6' sein (nicht beides)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "mit Typ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Mit Begrenzung:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Präfix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Stufe:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Aktion:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Dienst-Grundeinstellungen" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Bitte konfigurieren Sie Dienst-Grundeinstellungen:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Bitte einen Dienst auswählen." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Benutzerkennung" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Bitte die Benutzerkennung eingeben." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Benutzername" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Bitte Benutzername eingeben." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "Kennung" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Grundlegende Zone-Einstellungen" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Bitte konfigurieren Sie die grundlegenden Zone-Einstellungen:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Standard-Ziel" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Ziel:" firewalld-0.4.4.6/po/el.po000066400000000000000000001425621320241217000152140ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # ioza1964, 2013 # ioza1964, 2013 # Kranias Orestis , 2013 # mitzie , 2013 # mitzie , 2013 # Vasilis , 2012 # Vasilis , 2012 # ΑικατεÏίνη Χ. Καταπόδη , 2013 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:27-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Greek (http://www.transifex.com/projects/p/firewalld/language/" "el/)\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ΜικÏοεφαÏμογή τείχους Ï€Ïοστασίας" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Τείχος Ï€Ïοστασίας" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ΡÏθμιση τείχους Ï€Ïοστασίας" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Ζώνη '%s' ενεÏγοποιήθηκε για την διεπαφή '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ΕπεξεÏγασία ζωνών ασπίδων πάνω/κάτω" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Εδώ μποÏείτε να επιλέξετε τις ζώνες που χÏησιμοποιοÏνται για τις ασπίδες " "πάνω και ασπίδες κάτω." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Αυτό το χαÏακτηÏιστικό είναι χÏήσιμο για τους ανθÏώπους που χÏησιμοποιοÏν " "τις Ï€Ïοεπιλεγμένες ζώνες πεÏισσότεÏο. Για χÏήστες, που αλλάζουν ζώνες από " "συνδέσεις, μποÏεί να είναι πεÏιοÏισμένης χÏήσης." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Ζώνη ασπίδων πάνω:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Ζώνη ασπίδων κάτω:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Ασπίδες πάνω" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "ΕνεÏγοποίηση ειδοποιήσεων" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ΕπεξεÏγασία Ïυθμίσεων τείχους Ï€Ïοστασίας..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Αλλάξτε τις Ζώνες ΣÏνδεσης " #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ΕπεξεÏγασία ζωνών ασπίδων πάνω/κάτω..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ΦÏαγή όλης της κίνησης δικτÏου" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "Δεν υπάÏχει σÏνδεση." #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "<πεÏιβάλλον>" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Η εξουσιοδότηση απέτυχε." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Το ÏŒÏισμα %s είναι λάθος." #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Το όνομα ήδη υπάÏχει " #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Δεν υπάÏχει σÏνδεση στον δαίμονα του Firewall" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Όλη η κίνηση δικτÏου είναι φÏαγμένη." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Ζώνη '{zone}' ενεÏγή για σÏνδεση '{connection}' στην διεπαφή '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Ζώνη '{zone}' ενεÏγή για την διεπαφή '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Δεν υπάÏχουν ενεÏγές ζώνες" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Η σÏνδεση στο FirewallD επιτεÏχθηκε." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Η σÏνδεση στο FirewallD χάθηκε." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "Έγινε επανεκκίνηση του FirewallD" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Η Ï€Ïοεπιλεγμένη ζώνη άλλαξε σε '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Η κίνηση δικτÏου δεν είναι άλλο φÏαγμένη." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ενεÏγοποιήθηκε" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "απενεÏγοποιήθηκε" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Ζώνη '{zone}' {activated_deactivated} για σÏνδεση '{connection}' στην " "διεπαφή '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Ζώνη '{zone}' {activated_deactivated} για την διεπαφή '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Ζώνη '%s' ενεÏγοποιήθηκε για την διεπαφή '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Απέτυχε η φόÏτωση εικονιδίων." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "ΥπηÏεσία" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "ΠόÏτα" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "ΠÏωτόκολλο" #: ../src/firewall-config:560 msgid "To Port" msgstr "Στην πόÏτα" #: ../src/firewall-config:562 msgid "To Address" msgstr "Στην διεÏθυνση" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "ΤÏπος Icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Ï€Ïοσοχή" #: ../src/firewall-config:1612 msgid "Error" msgstr "Σφάλμα" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Ζώνη" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Ζώνη '%s'. Η υπηÏεσία '%s' δεν είναι διαθέσιμη " #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ΑφαίÏεσε την Ζώνη" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Αγνοήστε " #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Ζώνη '%s'. Ο Ï„Ïπος ICMP '%s' δεν είναι διαθέσιμος." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Ενσωματωμένη ζώνη, η μετονομασία δεν υποστηÏίζεται." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Ενσωματωμένη υπηÏεσία, η μετονομασία δεν υποστηÏίζεται." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Ενσωματωμένος icmp, η μετονομασία δεν υποστηÏίζεται." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ΔιεÏθυνση" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ΠÏοώθηση πόÏτας" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "ΠαÏακαλώ επιλέξτε τις επιλογές πηγής και Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î²Î¬ÏƒÎ· των αναγκών σας." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "ΠόÏτα / Εμβέλεια πόÏτων:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "ΔιεÏθυνση IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "ΠÏωτόκολλο" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Πηγή" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ΠÏοοÏισμός" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Αν ενεÏγοποιήσετε την τοπική Ï€Ïοώθηση, Ï€Ïέπει να καθοÏίσετε μια πόÏτα. Αυτή " "η πόÏτα Ï€Ïέπει να είναι διαφοÏετική από την πηγαία πόÏτα." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Τοπική Ï€Ïοώθηση" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ΠÏοώθηση σε άλλη πόÏτα" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" "Οι καταχωÏήσεις στα έντονα είναι απαÏαίτητες, όλες οι άλλες Ï€ÏοαιÏετικές." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Ονομασία:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Έκδοση:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Ταξηνόμηση:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ΠεÏιγÏαφή:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Ρυθμίσεις βάσης Ï„Ïπου ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ΠαÏακαλώ διαμοÏφώστε τις Ïυθμίσεις βάσης Ï„Ïπου ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ΤÏπος ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "ΠÏοσθήκη καταχώÏησης" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_ΑÏχείο" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Επιλογές" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Επανεκκίνηση Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Αλλαγή Ï€Ïοεπιλεγμένης ζώνης" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Βοήθεια" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "ΤÏέχουσες οÏατές Ïυθμίσεις. Οι διαμόÏφωση κατά την εκκίνηση είναι η " "Ï€Ïαγματικά ενεÏγή διαμόÏφωση. Η επίμονη διαμόÏφωση θα είναι ενεÏγή μετά από " "επανεκκίνηση της υπηÏεσίας ή του συστήματος." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ΠÏοσθήκη ζώνης" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ΕπεξεÏγασία ζώνης" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ΑφαίÏεση ζώνης" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ΦόÏτωση Ï€Ïοεπιλεγμένων ζώνης" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "ΥπηÏεσίες" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Στην πόÏτα" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ΕπεξεÏγασία της Ζώνης" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ΑφαίÏεσε την Ζώνη" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "ΠόÏτες" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Το μασκάÏισμα σας επιτÏέπει να στίσετε έναν υπολογιστή ή ÏοÏÏ„ÎµÏ Ï€Î¿Ï… συνδέει " "το τοπικό σας δίκτυο στο ίντεÏνετ. Το τοπικό σας δίκτυο δεν θα είναι οÏατό " "και οι υπολογιστές θα εμφανίζονται ως μια μοναδική διεÏθυνση στο ίντεÏνετ. " "Το μασκάÏισμα είναι IPv4 μόνο." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Ζώνη μασκαÏίσματος" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Αν ενεÏγοποιήσετε το μασκάÏισμα, Η Ï€Ïοώθηση IP θα ενεÏγοποιηθεί για τα IPv4 " "δίκτυα σας." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "ΜασκάÏισμα" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ΠÏοσθήκη καταχωÏίσεων για την Ï€Ïοώθηση ποÏτών είτε από μια πόÏτα σε άλλη στο " "τοπικό σÏστημα ή από το τοπικό σÏστημα σε άλλο σÏστημα. Η Ï€Ïοώθηση σε άλλο " "σÏστημα είναι χÏήσιμη μόνο αν η διεπαφή είναι μασκαÏισμένη. Η Ï€Ïοώθηση " "ποÏτών είναι IPv4 μόνο." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ΠÏόσθεση της ΠÏλης ΠÏοώθησης " #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Εκδοση της ΠÏλης ΠÏοώθησης " #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ΑφαιÏέστε την ΠÏλη Εισόδου ΠÏοώθησης " #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Το Internet Control Message Protocol (ICMP) χÏησιμοποιείται κυÏίως για την " "αποστολή μηνυμάτων σφαλμάτων Î¼ÎµÏ„Î±Î¾Ï Ï…Ï€Î¿Î»Î¿Î³Î¹ÏƒÏ„Î­Ï‚ του δικτÏου, αλλά επιπλέον " "για ενημεÏωτικά μηνÏματα όπως αιτήματα ping και απαντήσεις." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Σημειώστε όλους τους Ï„Ïπους ICMP στη λίστα, η οποία θα Ï€Ïέπει να αποÏÏιφθεί. " "Όλοι οι άλλοι Ï„Ïποι ICMP επιτÏέπονται να πεÏάσουν το τείχος Ï€Ïοστασίας. Η " "Ï€Ïοεπιλογή είναι να μην υπάÏχει κανένας πεÏιοÏισμός." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ΦίλτÏο ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "ΠÏοσθήκη υπηÏεσίας" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "ΕπεξεÏγασία υπηÏεσίας" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "ΑφαίÏεση υπηÏεσίας" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "ΦόÏτωση Ï€Ïοεπιλεγμένων υπηÏεσίας" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "ΕπεξεÏγασία καταχώÏησης" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "ΑφαίÏεση καταχώÏησης" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ΑÏθÏώματα" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Εάν καθοÏίσετε τις διευθÏνσεις Ï€ÏοοÏισμοÏ, η έναÏξη παÏοχής υπηÏεσιών θα " "Ï€Ïέπει να πεÏιοÏίζεται στη διεÏθυνση Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï ÎºÎ±Î¹ το είδος. Αν και οι δÏο " "καταχωÏίσεις είναι κενές, δεν υπάÏχει πεÏιοÏισμός." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ΠÏοσθήκη Ï„Ïπου ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ΕπεξεÏγασία Ï„Ïπου ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ΑφαίÏεση Ï„Ïπου ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ΦόÏτωση Ï€Ïοεπιλεγμένων Ï„Ïπου ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ΤÏέχουσα Ï€Ïοεπιλεγμένη ζώνη συστήματος." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ΠÏοεπιλεγμένη ζώνη:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "ΠόÏτα και Ï€Ïωτόκολλο" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ΠαÏακαλώ εισάγετε μια πόÏτα και Ï€Ïωτόκολλο" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Άλλο Ï€Ïωτόκολλο" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Ρυθμίσεις υπηÏεσίας βάσης" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "ΠαÏακαλώ διαμοÏφώστε τις Ïυθμίσεις υπηÏεσίας βάσης" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Ρυθμίσεις βάσης ζώνης" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ΠαÏακαλώ διαμοÏφώστε τις Ïυθμίσεις υπηÏεσίας ζώνης" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "ΠÏοεπιλεγμένος στόχος" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Στόχος:" firewalld-0.4.4.6/po/en_GB.po000066400000000000000000001340341320241217000155610ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Automatically generated, 2004 # Bruce Cowan , 2010 # Robert Readman , 2013 # Robert Readman , 2013 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:44-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/" "firewalld/language/en_GB/)\n" "Language: en-GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall Applet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Firewall Configuration" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Select zone for interface '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configure Shields Up/Down Zones" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Here you can select the zones used for Shields Up and Shields Down." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Shields Up Zone:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Shields Down Zone:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Shields Up" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Enable Notifications" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Edit Firewall Settings..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Change Zones of Connections..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configure Shields UP/Down Zones..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Block all network traffic" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Connections" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Sources" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Authorisation failed." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Invalid argument %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Name already exists" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "No connection to firewall daemon" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "All network traffic is blocked." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Default Zone: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zone '{zone}' active for interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone '{zone}' active for source {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "No Active Zones." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Default zone changed to '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Network traffic is not blocked anymore." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activated" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deactivated" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zone '{zone}' {activated_deactivated} for interface '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zone '%s' activated for interface '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone '{zone}' {activated_deactivated} for source '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone '%s' activated for source '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Used by network connection '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "enabled" #: ../src/firewall-config:97 msgid "disabled" msgstr "disabled" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Failed to load icons." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Service" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocol" #: ../src/firewall-config:560 msgid "To Port" msgstr "To Port" #: ../src/firewall-config:562 msgid "To Address" msgstr "To Address" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp Type" #: ../src/firewall-config:817 msgid "Family" msgstr "Family" #: ../src/firewall-config:819 msgid "Action" msgstr "Action" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Warning" #: ../src/firewall-config:1612 msgid "Error" msgstr "Error" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accept" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "reject" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "drop" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "service" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "masquerade" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "level" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "yes" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone '%s': Service '%s' is not available." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Remove" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignore" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone '%s': ICMP type '%s' is not available." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Built-in zone, rename not supported." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "second" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minute" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hour" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "day" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergency" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alert" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critical" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "error" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "warning" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notice" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Built-in service, rename not supported." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Built-in icmp, rename not supported." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Select zone for source %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Address" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Please enter the command line." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Please enter the context." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Port Forwarding" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Please select the source and destination options according to your needs." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Port Range:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP address:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Source" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destination" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Local forwarding" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Forward to another port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Bold entries are mandatory, all others are optional." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Name:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Short:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Description:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Family:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Base ICMP Type Settings" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Please configure base ICMP type settings:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP Type" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Please select an ICMP type" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Add Entry" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_File" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Options" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Change Default Zone" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Panic Mode" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP Types" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Help" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Add Zone" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Edit Zone" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Remove Zone" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Load Zone Defaults" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Services" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "To Port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edit Port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Remove Port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Ports" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Add Forward Port" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Edit Forward Port" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Remove Forward Port" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP Filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Here you can set rich language rules for the zone." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Rich Rules" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zones" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Add Service" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Edit Service" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Remove Service" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Load Service Defaults" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Edit Entry" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Remove Entry" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modules" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Add ICMP Type" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Edit ICMP Type" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Remove ICMP Type" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Load ICMP Type Defaults" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contexts" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Command lines" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "User names." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "User names" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "User ids." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "User Ids" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Current default zone of the system." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Panic Mode:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lockdown:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Default Zone:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port and Protocol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Please enter a port and protocol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Please enter a protocol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Other Protocol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Rich Rule" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Please enter a rich rule." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "For host or network white or blacklisting deactivate the element." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Source:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destination:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 and ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inverted" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "with Type:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "With limit:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Level:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Action:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Base Service Settings" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Please configure base service settings:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Please select a service." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "User ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Please enter the user id." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "User name" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Please enter the user name." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Base Zone Settings" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Please configure base zone settings:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Default Target" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Target:" firewalld-0.4.4.6/po/en_US.po000066400000000000000000001536501320241217000156250ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: msgid "" msgstr "" "Project-Id-Version: firewalld\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "PO-Revision-Date: 2014-10-15 14:24+0000\n" "Last-Translator: Jiří Popelka \n" "Language-Team: English (United States) (http://www.transifex.com/projects/p/" "firewalld/language/en_US/)\n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall Applet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Firewall Configuration" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Select zone for interface '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Default Zone" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Select zone for connection '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, fuzzy, c-format msgid "Select zone for source '%s'" msgstr "Select zone for source %s" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configure Shields Up/Down Zones" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Here you can select the zones used for Shields Up and Shields Down." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Shields Up Zone:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Shields Down Zone:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Shields Up" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Enable Notifications" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Edit Firewall Settings..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Change Zones of Connections..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configure Shields UP/Down Zones..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Block all network traffic" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Connections" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Sources" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Authorization failed." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Invalid name" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Name already exists" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "No connection to firewall daemon" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "All network traffic is blocked." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Default Zone: '%s'" #: ../src/firewall-applet:870 #, fuzzy msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone '{zone}' active for connection '{connection}' on interface '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface '{interface}'" msgstr "" "Zone '{zone}' active for connection '{connection}' on interface '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zone '{zone}' active for interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone '{zone}' active for source {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "No Active Zones." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Connection to FirewallD established." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Connection to FirewallD lost." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD has been reloaded." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Default zone changed to '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Network traffic is not blocked anymore." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activated" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deactivated" #: ../src/firewall-applet:1030 #, fuzzy msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zone '{zone}' {activated_deactivated} for interface '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zone '%s' activated for interface '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone '{zone}' {activated_deactivated} for source '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone '%s' activated for source '%s'" #: ../src/firewall-config:89 #, fuzzy msgid "Connection to firewalld established." msgstr "Connection to FirewallD established." #: ../src/firewall-config:91 #, fuzzy msgid "Trying to connect to firewalld, waiting..." msgstr "No connection to firewall daemon" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Changes applied." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Used by network connection '%s'" #: ../src/firewall-config:94 #, fuzzy, c-format msgid "Default zone used by network connection '%s'" msgstr "Used by network connection '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "enabled" #: ../src/firewall-config:97 msgid "disabled" msgstr "disabled" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Failed to load icons." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Runtime" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Service" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocol" #: ../src/firewall-config:560 msgid "To Port" msgstr "To Port" #: ../src/firewall-config:562 msgid "To Address" msgstr "To Address" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 #, fuzzy msgid "Entry" msgstr "Add Entry" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp Type" #: ../src/firewall-config:817 msgid "Family" msgstr "Family" #: ../src/firewall-config:819 msgid "Action" msgstr "Action" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Warning" #: ../src/firewall-config:1612 msgid "Error" msgstr "Error" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accept" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "reject" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "drop" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "service" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "masquerade" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 #, fuzzy msgid "source-port" msgstr "forward-port" #: ../src/firewall-config:2071 msgid "level" msgstr "level" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "yes" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, fuzzy, c-format msgid "Default Zone: %s" msgstr "Default Zone: '%s'" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, fuzzy, c-format msgid "Zone: %s" msgstr "Zones" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone '%s': Service '%s' is not available." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Remove" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignore" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone '%s': ICMP type '%s' is not available." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Built-in zone, rename not supported." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "second" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minute" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hour" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "day" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergency" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alert" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critical" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "error" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "warning" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notice" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is " "masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Forwarding to another system is only useful if the interface is " "masqueraded.\n" "Do you want to masquerade this zone ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Built-in service, rename not supported." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 #, fuzzy msgid "Built-in ipset, rename not supported." msgstr "Built-in icmp, rename not supported." #: ../src/firewall-config:5912 ../src/firewall-config:5994 #, fuzzy msgid "Please select a file" msgstr "Please select an ICMP type" #: ../src/firewall-config:5919 ../src/firewall-config:6001 #, fuzzy msgid "Text Files" msgstr "ICMP Filter" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 #, fuzzy msgid "Built-in helper, rename not supported." msgstr "Built-in icmp, rename not supported." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Built-in icmp, rename not supported." #: ../src/firewall-config:7996 #, fuzzy, c-format msgid "Failed to read file '%s': %s" msgstr "Failed to load icons." #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Select zone for source %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Address" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 #, fuzzy msgid "Please select the automatic helpers value:" msgstr "Please enter the module name." #: ../src/firewall-config.glade.h:4 #, fuzzy msgid "Command line" msgstr "Command lines" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Please enter the command line." #: ../src/firewall-config.glade.h:6 #, fuzzy msgid "Context" msgstr "Contexts" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Please enter the context." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Please select default zone from the list below." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Direct Chain" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Please select ipv and table and enter the chain name." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Chain:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Table:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Direct Passthrough Rule" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Please select ipv and enter the args." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Port Forwarding" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Please select the source and destination options according to your needs." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Port Range:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP address:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Source" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destination" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Local forwarding" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Forward to another port" #: ../src/firewall-config.glade.h:32 #, fuzzy msgid "Base Helper Settings" msgstr "Base Zone Settings" #: ../src/firewall-config.glade.h:33 #, fuzzy msgid "Please configure base helper settings:" msgstr "Please configure base zone settings:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Bold entries are mandatory, all others are optional." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Name:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Short:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Description:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Family:" #: ../src/firewall-config.glade.h:43 #, fuzzy msgid "Module:" msgstr "Modules" #: ../src/firewall-config.glade.h:44 #, fuzzy msgid "Helper" msgstr "_Help" #: ../src/firewall-config.glade.h:45 #, fuzzy msgid "Please select a helper:" msgstr "Please select an ICMP type" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Base ICMP Type Settings" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Please configure base ICMP type settings:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP Type" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Please select an ICMP type" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Add Entry" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 #, fuzzy msgid "Remove Selected Entry" msgstr "Remove Entry" #: ../src/firewall-config.glade.h:53 #, fuzzy msgid "Remove All Entries" msgstr "Remove Entry" #: ../src/firewall-config.glade.h:54 #, fuzzy msgid "Remove Entries From File" msgstr "Remove Entry" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_File" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Options" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Reload Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Change which zone a network connection belongs to." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Change Default Zone" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Change default zone for connections or interfaces." #: ../src/firewall-config.glade.h:64 #, fuzzy msgid "Change Log Denied" msgstr "Change Default Zone" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "Panic mode means that all incoming and outgoing packets are dropped." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Panic Mode" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Lockdown" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Make runtime configuration permanent" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Runtime To Permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_View" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP Types" #: ../src/firewall-config.glade.h:77 #, fuzzy msgid "Helpers" msgstr "_Help" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Direct Configuration" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Lockdown Whitelist" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Help" #: ../src/firewall-config.glade.h:82 #, fuzzy msgid "Change zone of binding" msgstr "Change Zones of Connections..." #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuration:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Add Zone" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Edit Zone" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Remove Zone" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Load Zone Defaults" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Services" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Add Port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edit Port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Remove Port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Ports" #: ../src/firewall-config.glade.h:100 #, fuzzy msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:101 #, fuzzy msgid "Add Protocol" msgstr "Protocol" #: ../src/firewall-config.glade.h:102 #, fuzzy msgid "Edit Protocol" msgstr "Protocol" #: ../src/firewall-config.glade.h:103 #, fuzzy msgid "Remove Protocol" msgstr "Remove Port" #: ../src/firewall-config.glade.h:104 #, fuzzy msgid "Protocols" msgstr "Protocol" #: ../src/firewall-config.glade.h:105 #, fuzzy msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:106 #, fuzzy msgid "Source Ports" msgstr "Source" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Masquerade zone" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Add Forward Port" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Edit Forward Port" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Remove Forward Port" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 #, fuzzy msgid "Invert Filter" msgstr "ICMP Filter" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP Filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Here you can set rich language rules for the zone." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Add Rich Rule" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Edit Rich Rule" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Remove Rich Rule" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Rich Rules" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Add Interface" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Edit Interface" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Remove Interface" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Add Source" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Edit Source" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Remove Source" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zones" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Add Service" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Edit Service" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Remove Service" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Load Service Defaults" #: ../src/firewall-config.glade.h:142 #, fuzzy msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Edit Entry" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Remove Entry" #: ../src/firewall-config.glade.h:145 #, fuzzy msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." #: ../src/firewall-config.glade.h:146 #, fuzzy msgid "Source Port" msgstr "Source" #: ../src/firewall-config.glade.h:147 #, fuzzy msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter helper modules" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modules" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 #, fuzzy msgid "Add IPSet" msgstr "Add Port" #: ../src/firewall-config.glade.h:156 #, fuzzy msgid "Edit IPSet" msgstr "Edit Port" #: ../src/firewall-config.glade.h:157 #, fuzzy msgid "Remove IPSet" msgstr "Remove Port" #: ../src/firewall-config.glade.h:158 #, fuzzy msgid "Load IPSet Defaults" msgstr "Load Zone Defaults" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 #, fuzzy msgid "Add" msgstr "Address" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 #, fuzzy msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Add ICMP Type" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Edit ICMP Type" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Remove ICMP Type" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Load ICMP Type Defaults" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Specify whether this ICMP Type is available for IPv4 and/or IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Additional chains for use with rules." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Add Chain" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Edit Chain" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Remove Chain" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Chains" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Add a rule with the arguments args to a chain in a table with a priority." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Add Rule" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Edit Rule" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Remove Rule" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Rules" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "Please be careful with passthrough rules to not damage the firewall." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Add Passthrough" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Edit Passthrough" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Remove Passthrough" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." #: ../src/firewall-config.glade.h:194 #, fuzzy msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Add Context" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Edit Context" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Remove Context" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contexts" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Add Command Line" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Edit Command Line" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Remove Command Line" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Command lines" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "User names." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Add User Name" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Edit User Name" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Remove User Name" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "User names" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "User ids." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Add User Id" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Edit User Id" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Remove User Id" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "User Ids" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Current default zone of the system." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Panic Mode:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lockdown:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Default Zone:" #: ../src/firewall-config.glade.h:220 #, fuzzy msgid "Interface" msgstr "Interfaces" #: ../src/firewall-config.glade.h:221 #, fuzzy msgid "Base IPSet Settings" msgstr "Base Zone Settings" #: ../src/firewall-config.glade.h:222 #, fuzzy msgid "Please configure base ipset settings:" msgstr "Please configure base zone settings:" #: ../src/firewall-config.glade.h:223 #, fuzzy msgid "Type:" msgstr "with Type:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 #, fuzzy msgid "Please select an ipset:" msgstr "Please select an ICMP type" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 #, fuzzy msgid "Please select the log denied value:" msgstr "Please enter the module name." #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 #, fuzzy msgid "Please enter a mark with an optional mask." msgstr "Please enter a port and protocol." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 #, fuzzy msgid "Please select a netfilter conntrack helper:" msgstr "Please select an ICMP type" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 #, fuzzy msgid "Other Module:" msgstr "Other Protocol:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port and Protocol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Please enter a port and protocol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Direct Rule" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Please select ipv and table, chain priority and enter the args." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priority:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Please enter a protocol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Other Protocol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Rich Rule" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Please enter a rich rule." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "For host or network white or blacklisting deactivate the element." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Source:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destination:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 and ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inverted" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or " "'ipv6' (not both)." msgstr "" "To enable this Action has to be 'reject' and Family either 'ipv4' or " "'ipv6' (not both)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "with Type:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "With limit:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Level:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Action:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Base Service Settings" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Please configure base service settings:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Please select a service." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "User ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Please enter the user id." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "User name" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Please enter the user name." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Base Zone Settings" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Please configure base zone settings:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Default Target" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Target:" #~ msgid "Please enter the module name." #~ msgstr "Please enter the module name." #~ msgid "You need to be root to run %s." #~ msgstr "You need to be root to run %s." #~ msgid "Fork #1 failed: %d (%s)" #~ msgstr "Fork #1 failed: %d (%s)" #~ msgid "Not starting FirewallD, already running." #~ msgstr "Not starting FirewallD, already running." #~ msgid "Unexpected element '%s'" #~ msgstr "Unexpected element '%s'" #~ msgid "Element '%s': missing '%s' attribute" #~ msgstr "Element '%s': missing '%s' attribute" #~ msgid "Element '%s': unexpected attribute '%s'" #~ msgstr "Element '%s': unexpected attribute '%s'" #~ msgid "Connected." #~ msgstr "Connected." #~ msgid "No connection." #~ msgstr "No connection." #~ msgid "Waiting ..." #~ msgstr "Waiting ..." #~ msgid "Retrying ..." #~ msgstr "Retrying ..." #~ msgid "Add entries to bind source addresses or areas to the zone." #~ msgstr "Add entries to bind source addresses or areas to the zone." #~ msgid "" #~ "Add additional ports or port ranges, which need to be accessible for all " #~ "hosts or networks. You can also add protocols without specific ports." #~ msgstr "" #~ "Add additional ports or port ranges, which need to be accessible for all " #~ "hosts or networks. You can also add protocols without specific ports." #~ msgid "Ports and Protocols" #~ msgstr "Ports and Protocols" #~ msgid "Port and/or Protocol" #~ msgstr "Port and/or Protocol" #~ msgid "Please enter a port and/or a protocol." #~ msgstr "Please enter a port and/or a protocol." #~ msgid "PANIC MODE" #~ msgstr "PANIC MODE" #~ msgid "Firewall-applet" #~ msgstr "Firewall-applet" firewalld-0.4.4.6/po/es.po000066400000000000000000001631301320241217000152150ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # beckerde , 2013 # Claudio Rodrigo Pereyra Diaz , 2012-2013 # Daniel Cabrera , 2010 # beckerde , 2007-2008 # beckerde , 2013 # Eduardo Villagrán , 2006 # Francisco M.S. , 2004 # Francisco Muñoz Santoyo , 2004 # Gerardo Rosales , 2014 # Gladys Guerrero , 2010,2014 # Gladys Guerrero , 2010 # Daniel Cabrera , 2010 # Hernan Mendez , 2005 # Manuel Ospina , 2006 # Rodolfo M. Raya , 2004 # Yelitza Louze , 2003 # Alex Puchades , 2015. #zanata # Máximo Castañeda Riloba , 2015. #zanata # Brian Curtich , 2016. #zanata # Máximo Castañeda Riloba , 2016. #zanata # William Moreno Reyes , 2016. #zanata # Máximo Castañeda Riloba , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-11 02:36-0400\n" "Last-Translator: Máximo Castañeda Riloba \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/firewalld/" "language/es/)\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Applet del cortafuegos" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Cortafuegos" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuración del cortafuegos" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "cortafuegos;red;seguridad;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Seleccione la zona para la interfaz '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona Predeterminada" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Seleccione la zona para la conexión '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "No se pudo establecer la zona {zone} para la conexión {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Seleccione la zona para el origen '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configurar zonas protegidas/desprotegidas" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Aquí puede seleccionar las zonas protegidas/desprotegidas." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Esta característica es útil para las personas que usan principalmente las " "zonas predeterminadas. Para los usuarios que cambian las zonas de las " "conexiones, puede tener un uso limitado." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zona protegida:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Restablecer a Predeterminado" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zona desprotegida:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Acerca de %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autores" #: ../src/firewall-applet:396 msgid "License" msgstr "Licencia" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Levantar escudos" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Habilitar notificaciones" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editar la configuración del cortafuegos..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Cambiar zonas de las conexiones..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configurar zonas protegidas/desprotegidas..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloquear todo el tráfico de red" #: ../src/firewall-applet:492 msgid "About" msgstr "Acerca de" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Conexiones" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Orígenes" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Falló la autorización." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Nombre inválido" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "El nombre ya existe" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zona: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Zona predeterminada: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "No se pudieron obtener las conexiones de NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "No se pudo importar el módulo NetworkManager" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "No hay conexión al demonio del cortafuegos" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Todo el tráfico de red bloqueado." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zona predeterminada: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona predeterminada '{default_zone}' activa para la conexión '{connection}' " "en la interfaz '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zona '{zone}' activa para conexión '{connection}' en interfaz '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zona '{zone}' activa para interfaz '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zona '{zone}' activa para la fuente {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "No hay zonas activas." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Conexión a FirewallD establecida." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Conexión a FirewallD perdida." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD se ha recargado." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Zona por defecto cambiada a '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Tráfico de red desbloqueado." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activada" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desactivada" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Zona predeterminada '{default_zone}' {activated_deactivated} para la " "conexión '{connection}' en la interfaz '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} para conexión '{connection}' en " "interfaz '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zona '{zone}' {activated_deactivated} para interfaz '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zona '%s' activada para interfaz '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zona '{zone}' {activated_deactivated} para la fuente '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zona '%s' activada para el origen '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Conexión con firewalld establecida." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Intentando conectar con firewalld, en espera..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Cambios aplicados." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Usada por la conexión de red '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Zona predeterminada en uso por la conexión de red '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "activado" #: ../src/firewall-config:97 msgid "disabled" msgstr "desactivado" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Falló la carga de iconos." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Tiempo de ejecución" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanente" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servicio" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Puerto" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocolo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Al puerto" #: ../src/firewall-config:562 msgid "To Address" msgstr "A la dirección" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Vinculaciones" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Entrada" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipo ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "Familia" #: ../src/firewall-config:819 msgid "Action" msgstr "Acción" #: ../src/firewall-config:821 msgid "Element" msgstr "Elemento" #: ../src/firewall-config:823 msgid "Src" msgstr "Origen" #: ../src/firewall-config:825 msgid "Dest" msgstr "Destino" #: ../src/firewall-config:827 msgid "log" msgstr "registrar" #: ../src/firewall-config:829 msgid "Audit" msgstr "Auditar" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Advertencia" #: ../src/firewall-config:1612 msgid "Error" msgstr "Error" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "aceptar" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "rechazar" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "descartar" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "marcar" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limitar" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "servicio" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "puerto" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocolo" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "enmascarar" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "puerto de origen" #: ../src/firewall-config:2071 msgid "level" msgstr "nivel" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "sí" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Zona predeterminada: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zona: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona '%s': El servicio '%s' no está disponible." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Eliminar" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorar" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona '%s': El tipo ICMP '%s' no está disponible." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr " Zona incorporada, no se puede renombrar." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "segundo" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuto" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hora" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "día" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergencia" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alerta" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "crítico" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "error" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "advertencia" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "aviso" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "depurar" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "bloqueo de ICMP" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "tipo de ICMP" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "reenvío de puerto" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "El reenvío a otro sistema sólo es útil si la interfaz es enmascarada.\n" "¿Quiere enmascarar esta zona?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Servicio incorporado, no se puede renombrar." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" "Por favor introduzca una dirección ipv4 con el formato dirección[/máscara]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "La máscara puede ser una máscara de red o un número." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" "Por favor ingresar una dirección ipv6 con el formato dirección[/máscara]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "La máscara es un número." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" "Por favor introduzca una dirección ipv4 o ipv6 con la forma dirección[/" "máscara]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "La máscara puede ser una máscara de red o un número para ipv4.\n" "La máscara es un número para ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "IPset incorporado, no se puede renombrar" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Elija un archivo" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Archivos de texto" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Todos los archivos" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Todas" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Agente incorporado, no se puede renombrar." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Tipo ICMP incorporado, no se puede renombrar." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "No se pudo leer el archivo '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Seleccione la zona para el origen %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Dirección" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Agentes automáticos" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Elija el valor para los agentes automáticos" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Línea de comandos" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Introduzca la línea de comandos." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Contexto" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Introduzca el contexto." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Seleccione la zona por defecto de la lista siguiente." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Cadena directa" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Seleccione la versión IP y la tabla e ingrese el nombre de la cadena." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Cadena:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "seguridad" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabla:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Regla de paso directo" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Seleccione versión IP e ingrese los argumentos." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumentos:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Reenvío de puertos" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Seleccione las opciones de origen y destino según sus necesidades." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Puerto / Rango de puertos:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Dirección IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocolo:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Fuente" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destino" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Si habilita el reenvío local, debe especificar un puerto. Este puerto debe " "ser diferente del puerto de origen." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Reenvío local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Reenviar a otro puerto" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Ajustes básicos de los agentes" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Configure los ajustes básicos de agentes:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Las entradas en negrita son obligatorias, el resto son opcionales." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nombre:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versión:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Nombre corto:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descripción:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Familia:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Módulo:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Agente" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Elija un agente:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Configuración de tipos ICMP base" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Configure los tipos ICMP base:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipo ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Seleccione un tipo ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Agregar entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Añadir entradas desde archivo" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Eliminar la entrada seleccionada" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Eliminar todas las entradas" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Eliminar entradas desde archivo" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Archivo" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opciones" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Recargar FirewallD" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Recargar las reglas del cortafuegos. La configuración permanente actual se " "convertirá en la nueva configuración de tiempo de ejecución. Es decir, todos " "los cambios realizados en la configuración de tiempo de ejecución se " "perderán al recargar si no fueron realizados también en la configuración " "permanente." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Cambiar a qué zona pertenece la conexión de red." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Cambiar zona por defecto" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Cambiar la zona por defecto para conexiones o interfaces." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Cambiar el registro de rechazos" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" "Cambiar el valor de LogDenied, con el que se decide qué rechazos registrar." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configurar la asignación automática de agentes" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configuración de la asignación automática de agentes." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "El modo pánico significa que todas los paquete entrantes y salientes serán " "descartados." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Modo pánico" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown bloquea la configuración del cortafuegos para que sólo las " "aplicaciones en la lista blanca lockdown sean capaces de cambiarla." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Bloquear" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Hacer la configuración de tiempo de ejecución permanente" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Tiempo de ejecución a permanente" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Ver" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Tipos ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Agentes" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configuración directa" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Lista blanca de bloqueo" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Vinculaciones activas" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "Ay_uda" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Cambiar zona de la vinculación" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Ocultar las vinculaciones activas de tiempo de ejecución de conexiones, " "interfaces y orígenes a zonas" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Mostrar las vinculaciones activas de tiempo de ejecución de conexiones, " "interfaces y orígenes a zonas" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuración:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configuración visible actual. La configuración de tiempo de ejecución es la " "configuración activa ahora mismo. La configuración persistente será activada " "después de que se recargue o reinicie el servicio o el sistema." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Una zona de firewalld define un nivel de confianza para conexiones de red, " "interfaces y direcciones fuente asociadas a la zona. La zona combina " "servicios, puertos, protocolos, enmascarados, re-envíos puerto/paquete, " "filtros icmp y reglas ricas. La zona puede ser asociada a interfaces y " "direcciones fuente." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Agregar zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Editar zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Eliminar zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Cargar zonas por defecto" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Aquí puede definir qué servicios son confiables en la zona. Los servicios " "confiables son accesibles desde todos los equipos y redes que pueden " "alcanzar a la máquina desde las conexiones, interfaces y fuentes unidas a " "esta zona." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Servicios" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Agregue puertos o rangos de puertos adicionales que necesiten ser accesibles " "por todos los equipos o redes que puedan conectarse al sistema." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Añadir puerto" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Editar puerto" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Eliminar puerto" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Puertos" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Añadir protocolos que deben ser accesibles para todos los servidores o redes." "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Agregar Protocolo" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Editar Protocolo" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Eliminar Protocolo" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocolos" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Añadir puertos o rangos de puertos a los que se deba poder acceder desde " "todos los equipos o redes que puedan conectarse al sistema." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Puertos de origen" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "El enmascaramiento le permite configurar un equipo o router que conectará su " "red local a Internet. Su red local no será visible y aparecerá como un solo " "equipo conectado a Internet. El enmascaramiento sólo puede hacerse en IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zona enmascarada" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Si habilita el enmascaramiento, se activará el reenvío de IP para sus redes " "IPv4" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Enmascaramiento" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Añadir entradas para el reenvío desde un puerto a otro en el sistema local o " "desde el sistema local hacia otro sistema. El reenvío de puertos hacia otro " "sistema solo es útil cuando la interfaz está enmascarada. El reenvío de " "puertos sólo funciona para IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Agregar puerto de reenvío" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Editar puerto de reenvío" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Quitar puerto de reenvío" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "El Protocolo de Mensajes de Control de Internet (ICMP) se usa principalmente " "para mandar mensajes de error entre computadoras en la red, así como " "información adicional como solicitudes de ping y sus respuestas." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marcar los tipos ICMP de la lista que deberán ser rechazados. Los demás " "tipos ICMP podrán pasar a través del cortafuego. Por defecto, no hay " "limitación." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Con 'Invertir filtro' activo, los elementos ICMP marcados se aceptan y los " "otros se rechazan. En las zonas con destino DROP, se descartan." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Invertir filtro" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtro ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Aquí puede establecer reglas ricas para la zona." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Agregar regla rica" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Editar regla rica" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Eliminar regla rica" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Reglas ricas" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Añadir entradas para enlazar interfaces a la zona. Si la interfaz fuera " "usada por una conexión, la zona será la especificada por la conexión." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Añadir interfaz" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Editar interfaz" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Eliminar interfaz" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Añada entradas para enlazar direcciones de origen o áreas a la zona. También " "puede enlazar una dirección origen MAC, pero con limitaciones: no funcionará " "el reenvío ni el enmascaramiento de puertos." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Añadir origen" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Editar origen" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Eliminar origen" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zonas" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Un servicio firewalld es una combinación de puertos, protocolos, módulos y " "direcciones destino." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Agregar servicio" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editar servicio" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Eliminar servicio" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Cargar servicios por defecto" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Añadir puertos adicionales o rangos de puertos, que necesiten ser accesibles " "desde todos los equipos o redes." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editar entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Eliminar entrada" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Añadir puertos o rangos de puertos de origen, que necesiten ser accesibles " "desde todos los equipos o redes." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Puerto de origen" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Algunos servicios necesitan módulos de agentes de netfilter" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Módulos" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Si especifica una dirección de destino, la entrada del servicio estará " "limitada al tipo y la dirección de destino. Si las dos entradas están " "vacías, no hay limitaciones." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Los servicios sólo se pueden cambiar en la vista de configuración permanente." " La configuración de tiempo de ejecución de los servicios es fija." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Se puede usar un IPSet para crear listas blancas o negras, y puede contener " "direcciones IP o MAC, o números puertos." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Agregar IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Editar IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Eliminar IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Cargar IPSet predeterminados" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Entradas del IPSet. Sólo verá las que no estén usando la opción de tiempo de " "espera (timeout) y que hayan sido añadidas por firewalld. Si se han añadido " "directamente con el comando ipset no saldrán en esta lista." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Este IPSet usa la opción de tiempo de espera, por lo que no hay entradas " "visible. El mantenimiento de las mismas debe hacerse directamente con el " "comando ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Añadir" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Entradas" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Los IPSets sólo se pueden crear y eliminar desde la vista de configuración " "permanente." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Un icmptype de firewalld provee la información para el tipo de Protocolo de " "Control de Mensajes de Internet (ICMP en inglés) para firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Agregar un tipo ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Editar un tipo ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Eliminar un tipo ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Cargar tipo ICMP por defecto" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Especifique si este tipo ICMP está disponible para IPv4 y/o IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Los tipos ICMP sólo se pueden cambiar en la vista de configuración " "permanente. La configuración de tiempo de ejecución de los tipos ICMP es " "fija." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Hay un agente de seguimiento de conexiones ayudando con los protocolos que " "usan diferentes flujos para la señalización y para la transferencia de datos." " Los datos se envían por puertos que no están relacionados con la conexión " "de control y el cortafuegos los bloquearía sin la ayuda del agente de " "seguimiento." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Defina los puertos o rangos que monitorizará el agente." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "La configuración directa da mas acceso directo al cortafuegos. Estas " "opciones requieren que el usuario conozca conceptos básicos de iptables, es " "decir, tablas, cadenas, comandos, parámetros y objetivos. La configuración " "directa solo debe ser usada como último recurso cuando no es posible " "utilizar otra característica del cortafuegos." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "El argumento ipv de cada opción debe ser ipv4 o ipv6 o eb. Con ipv4, este " "será para iptables; con ipv6, para ip6tables y con eb, para puentes de red " "(ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Cadenas adicionales para usar con las reglas." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Añadir cadena" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Editar cadena" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Eliminar cadena" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Cadenas" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "Añadir regla con argumentos a la cadena en una tabla con prioridad." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "La prioridad es usada para ordenar reglas. Prioridad 0 significa agregar la " "regla al inicio de la cadena, con una prioridad más alta la regla será " "añadida más adelante. Las reglas con misma prioridad son del mismo nivel y " "el orden de estas reglas no es fijo y puede cambiar. Si quiere estar seguro " "de que una regla se agrega después de otra, use una prioridad baja para la " "primera, y una prioridad mayor para la siguiente." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Añadir regla" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Editar regla" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Eliminar regla" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Reglas" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Las reglas passthrough se pasan directamente a través del cortafuegos y no " "son puestas en cadenas especiales. Pueden usarse las opciones iptables, " "ip6tables y ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Tenga cuidado con las reglas passthrough para no dañar el cortafuegos." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Añadir regla passthrough" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Editar regla passthrough" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Eliminar regla passthrough" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Reglas passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "La característica de bloqueo es una versión simple de políticas de usuario y " "aplicación para firewalld. Limita los cambios al cortafuego. La lista blanca " "de bloqueo puede contener comandos, contextos, usuarios e id de usuarios." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "El contexto es el contexto de seguridad (SELinux) de una aplicación o " "servicio en ejecución. Para obtener el contexto de una aplicación use ps " "-e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Agregar contexto" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Editar contexto" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Eliminar contexto" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contextos" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Si una entrada de comando en la lista blanca finaliza con un asterisco '*', " "entondes todas las líneas de comando que inicien con el comando dado " "concidirán. Si el '*' no está ahí, entonces el comando y sus argumentos " "dados deben coincidir tal como fueron dados." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Agregar línea de comandos" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Editar línea de comandos" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Eliminar línea de comandos" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Línea de comandos" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Nombres de usuario." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Agregar nombre de usuario" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Editar nombre de usuario" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Eliminar nombre de usuario" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Nombres de usuario" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Identificadores de usuario." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Agregar Id de usuario" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Editar Id de usuario" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Eliminar Id de usuario" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Identificadores de usuario" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Zona por defecto actual del sistema." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Registro de rechazos:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Modo pánico:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Agentes automáticos:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Bloqueo:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona por defecto:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interfaz" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Ajustes básicos de IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Configure los ajustes básicos de ipset:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Tipo:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Tiempo de espera:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Tamaño de hash:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Número máximo de elementos:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Tiempo de espera en segundos" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Tamaño inicial del hash (valor predeterminado: 1024)" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Máximo número de elementos; valor predeterminado: 65536 " #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Elija un IPSet" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Registro de rechazos" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Elija un valor para el registro de rechazos:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Marca" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Introduzca una marca con una máscara opcional." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Tanto la marca como la máscara son enteros de 32 bits sin signo." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Marca:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Máscara:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Elija un agente netfilter de seguimiento de conexiones" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Elija -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Otro módulo:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Puerto y protocolo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Introduzca el puerto y protocolo." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Regla directa" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Seleccione ipv, tabla y cadena de prioridad e ingrese los argumentos." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioridad:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Introduzca un protocolo." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Otro protocolo:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Reglas ricas" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Introduzca una regla rica." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "Para enlistar o deslistar un equipo o red, desactive el elemento." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Origen:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destino:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Aviso:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 e ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "invertido" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Para activar ésto, Acción debe ser 'reject' y Family 'ipv4' o 'ipv6' (no " "ambas)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "con tipo:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Con límite:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefijo:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Nivel:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Elemento:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Acción:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Configuración de servicios base" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Configure los servicios base:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Seleccione un servicio." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID de usuario" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Introduzca un id de usuario." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nombre de usuario" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Introduzca un nombre de usuario." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etiqueta" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Configuración de zona base" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Por favor configure la zona base:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Objetivo por defecto:" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Objetivo:" firewalld-0.4.4.6/po/et.po000066400000000000000000001247261320241217000152260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # mihkel , 2012 # mihkel , 2012 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:21-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Estonian (http://www.transifex.com/projects/p/firewalld/" "language/et/)\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Tulemüüri aplett" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Tulemüür" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Tulemüüri seadistamine" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Kilp peale tsoon:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Kilp maha tsoon:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Kilp peale" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Võimalda teated" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Muuda tulemüüri sätteid..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blokeeri kogu võrguliiklus" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "Ühendus puudub." #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autentimine nurjus." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Vigane argument %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Tulemüüri teenusega ühendus puudub" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Kogu võrguliiklus on blokeeritud." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Puudub aktiivne tsoon." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Ühendus FirewallD-ga loodi." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Ühendus FirewallD-ga kaotati." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirrewallD on uuesti laaditud." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Vaikimisi tsoon muudeti '%s'-ks" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Võrguliiklus ei ole enam blokeeritud." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktiveeritud" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deaktiveeritud" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Ikoonide laadimine nurjus." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Teenus" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoll" #: ../src/firewall-config:560 msgid "To Port" msgstr "Porti" #: ../src/firewall-config:562 msgid "To Address" msgstr "Aadressile" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp tüüp" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Hoiatus" #: ../src/firewall-config:1612 msgid "Error" msgstr "Viga" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Tsoon" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Eemalda tsoon" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Sisse ehitatud tsoon, ümbernimetamine pole toetatud." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Sisse ehitatud teenus, ümbernimetamine pole toetatud." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Sisse ehitatud icmp, ümbernimetamine pole toetatud." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Aadress" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Pordi edasisuunamine" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Portide vahemik:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP aadress:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokoll:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Allikas" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Sihtkoht" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Kohalik edasisuunamine" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Suuna teise porti" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Rasvased kirjed on kohustuslikud, kõik teised aga valikulised." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nimi:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versioon:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Lühike:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Kirjeldus:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP tüüp" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Lisa kirje" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fail" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Valikud" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Laadi FirewallD uuesti" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Muuda vaikimisi tsooni" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Abi" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Lisa tsoon" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Muuda tsooni" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Eemalda tsoon" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Laadi vaikimisi tsoon" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Teenused" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Porti" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Muuda tsooni" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Eemalda tsoon" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Pordid" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Maskeerimine tsoon" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskeerimine" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Lisa teenus" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Muuda teenust" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Eemalda teenus" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Laadi teenuse vaikeväärtused" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Muuda kirjet" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Eemalda kirje" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moodulid" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Lisa ICMP tüüp" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Muuda ICMP tüüpe" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Eemalda ICMP tüüp" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Süsteemi aktiivne vaikimisi tsoon" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Vaikimisi tsoon:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port ja protokoll" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Palun sisesta port ja protokoll." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Teine protokoll:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Baasteenuste sätted" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Baas tsoonide sätted" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Vaikimisi sihtmärk" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Sihtmärk:" firewalld-0.4.4.6/po/eu.po000066400000000000000000001235471320241217000152270ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Asier Iturralde Sarasola , 2012 # Mikel Olasagasti Uranga , 2013 # Mikel Olasagasti Uranga , 2013 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:43-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Basque (http://www.transifex.com/projects/p/firewalld/" "language/eu/)\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Suhesiaren applet-a" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Suhesia" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Suhesiaren konfigurazioa" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Gaitu jakinarazpenak" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editatu suhesiaren ezarpenak..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blokeatu sareko trafiko guztia" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Konexiorik ez." #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autentikazioak huts egin du." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "argumentu baliogabea %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktibatuta" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desaktibatuta" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Huts egin du ikonoak kargatzean." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Zerbitzua" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Ataka" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoloa" #: ../src/firewall-config:560 msgid "To Port" msgstr "Atakara:" #: ../src/firewall-config:562 msgid "To Address" msgstr "Helbidera:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp mota" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Abisua" #: ../src/firewall-config:1612 msgid "Error" msgstr "Errorea" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "ezikusi" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Helbidea" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Ataka birbidalketa" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP helbidea:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokoloa:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Iturburua" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Helburua" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Birbidalketa lokala" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Birbidali beste ataka batera" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Izena:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Bertsioa:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Laburra:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Deskribapena:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP mota" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Gehitu sarrera" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fitxategia" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Aukerak" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Birkargatu Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Laguntza" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Zerbitzuak" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Atakara" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Atakak" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP iragazkia" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Gehitu zerbitzua" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editatu zerbitzua" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Kendu zerbitzua" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Kargatu zerbitzu lehenetsiak" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editatu sarrera" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Kendu sarrera" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduluak" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Gehitu ICMP mota" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Editatu ICMP mota" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Kendu ICMP mota" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Kargatu ICMP mota lehenetsiak" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Ataka eta protokoloa" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Mesedez sartu ataka bat eta protokoloa." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Beste protokolo bat:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Helburu lehenetsia" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Helburua" firewalld-0.4.4.6/po/fi.po000066400000000000000000001377121320241217000152130ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Juhani Numminen , 2012-2013 # Lauri Nurmi , 2004 # Lauri Nurmi , 2004 # Mikko Ikola , 2004 # Juhani Numminen , 2016. #zanata # Jiri Grönroos , 2017. #zanata # Toni Rantala , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-04-17 03:19-0400\n" "Last-Translator: Toni Rantala \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/firewalld/" "language/fi/)\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Palomuurisovelma" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Palomuuri" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Palomuuriasetukset" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" "palomuuri;verkko;tietoturva;suojaus;turva;firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Valitse alue liitännälle '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Oletusalue" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Valitse alue yhteydelle '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Alueen {zone} asettaminen yhteydelle {connection} epäonnistui" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Valitse alue lähteelle '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Palauta oletukset" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Tietoja – %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Tekijät" #: ../src/firewall-applet:396 msgid "License" msgstr "Lisenssi" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Ota ilmoitukset käyttöön" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Muokkaa palomuurin asetuksia…" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Muuta yhteyksien alueita..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Estä kaikki verkkoliikenne" #: ../src/firewall-applet:492 msgid "About" msgstr "Tietoja" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Yhteydet" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Verkkoliitännät" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Lähteet" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Tunnistautuminen epäonnistui." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Virheellinen nimi" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Nimi on jo olemassa" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Alue: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Oletusalue: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Yhteyksien haku NetworkManagerilta epäonnistui" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ei yhteyttä palomuuritaustaprosessiin" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Kaikki verkkoliikenne estetty." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Oletusalue: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Alue '{zone}' käytössä verkkoliitännälle '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Ei aktiivisia alueita." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Yhteys FirewallD:hen muodostettu." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Yhteys FirewallD:hen kadotettu." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD on ladattu uudelleen." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Oletusalueeksi asetettu '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Verkkoliikennettä ei enää estetä." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "käytössä" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "ei käytössä" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Yhteys firewalld:hen muodostettu." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Yritetään muodostaa yhteys firewalld:hen, odotetaan…" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Muutokset otettu käyttöön." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Yhteyden â€%s†käytössä" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Verkkoyhteyden '%s' käyttämä oletusalue" #: ../src/firewall-config:96 msgid "enabled" msgstr "käytössä" #: ../src/firewall-config:97 msgid "disabled" msgstr "pois käytöstä" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Kuvakkeiden lataus ei onnistunut." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Ajon aikainen" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Pysyvä" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Palvelu" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Portti" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokolla" #: ../src/firewall-config:560 msgid "To Port" msgstr "Porttiin" #: ../src/firewall-config:562 msgid "To Address" msgstr "Osoitteeseen" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Sidokset" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp-tyyppi" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "Toiminto" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "Lähde" #: ../src/firewall-config:825 msgid "Dest" msgstr "Kohde" #: ../src/firewall-config:827 msgid "log" msgstr "kirjaa" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Varoitus" #: ../src/firewall-config:1612 msgid "Error" msgstr "Virhe" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "hyväksy" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "hylkää" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "pudota" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "merkitse" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "rajoita" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "palvelu" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "portti" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokolla" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maskeeraa" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "lähdeportti" #: ../src/firewall-config:2071 msgid "level" msgstr "taso" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "kyllä" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Alue" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Oletusalue: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Alue: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Alue '%s': Palvelu '%s' ei ole käytettävissä." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Poista" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Älä huomioi" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Alue '%s': ICMP-tyyppi '%s' ei ole saatavilla." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Sisäänrakennettu alue, nimen muuttaminen ei ole tuettu." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "sekunti" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuutti" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "tunti" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "vuorokausi" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "hätätila" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "hälytys" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kriittinen" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "virhe" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "varoitus" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "huomautus" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "tiedoksi" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "virheenjäljitys" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-esto" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "välitysportti" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Välittäminen toiseen järjestelmään on hyödyllistä vain jos verkkoliitäntä on " "maskeerattu. Haluatko maskeerata tämän alueen?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Sisäänrakennettu palvelu, ei voi uudelleennimetä." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Syötä ipv4-osoite muodossa osoite[/maski]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Maski voi olla verkkomaski tai numero." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Syötä ipv6-osoite muodossa osoite[/maski]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Maski on numero." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Syötä ipv4- tai ipv6-osoite muodossa osoite[/maski]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "Ipv4:n maski voi olla verkkomaski tai numero.\n" "Ipv6:n maski on numero." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Valitse tiedosto" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Tekstitiedostot" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Kaikki tiedostot" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Kaikki" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Sisäänrakennettu avustin, nimen muuttaminen ei ole tuettu." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Sisäänrakennettu icmp, nimen muuttaminen ei ole tuettu." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Tiedoston â€%s†lukeminen epäonnistui: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Valitse alue lähteelle %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Osoite" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automaattiset apurit" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Valitse automaattisen apurin arvo:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Komentorivi" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Syötä komento." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Konteksti" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Syötä konteksti." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Valitse oletusalue alapuolella olevasta listasta." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Ketju" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raakamuoto" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "turvallisuus" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Taulu:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumentit:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Porttien edelleenohjaus (forwarding)" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Valitse lähde- ja kohdeasetukset tarpeen mukaan." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Portti tai porttialue:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP-osoite:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokolla:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Lähde" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Kohde" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Jos paikallinen edelleenohjaus otetaan käyttöön, on määritettävä portti. " "Tämä portti on oltava eri kuin lähdeportti." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Paikallinen edelleenohjaus" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Edelleenohjaa toiseen porttiin" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nimi:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versio:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Lyhyt:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Kuvaus:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Moduuli:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Apuri" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Valitse apuri:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-tyyppi" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Valitse ICMP-tyyppi" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Lisää merkintä" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Poista valittu merkintä" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Poista kaikki merkinnät" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Poista merkinnät tiedostosta" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Tiedosto" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Valinnat" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Lataa Firewalld uudelleen" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Lataa palomuurin uudelleen. Tämän hetkiset pysyvät asetukset tulevat uusiksi " "ajonaikaisiksi asetuksiksi, toisin sanoen, kaikki ajonaikaiset muutokset " "jotka teit ennen uudelleenlatausta häviävät elleivät ne olleet myös " "pysyvissä asetuksissa." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Vaihda mille alueelle verkkoyhteys kuuluu." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Muuta oletusaluetta" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Vaihda oletusalue yhteyksille ja verkkoliitännöille." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Paniikkitilassa kaikki sisään tulevat ja ulos menevät paketit pudotetaan." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Paniikkitila" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Lukitus" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Tee ajonaikaisista asetuksista pysyviä." #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Ajonaikaisesta pysyväksi" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Näytä" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP-tyypit" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Apurit" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Ohje" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Lisää alue" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Muokkaa aluetta" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Poista alue" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Lataa alueen oletukset" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Täällä voit määrittää mitkä palvelut ovat luotetulla alueella. Luotetut " "palvelut ovat kaikkien verkon koneiden ja verkkojen käytettävissä jotka " "tavoittavat tämän koneen mistä tahansa yhteydestä, verkkoliitännästä tai " "lähteestä jotka tähän alueeseen kuuluvuat." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Palvelut" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Lisää portti" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Muokkaa porttia" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Poista portti" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portit" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Lisää protokolla jonka pitää olla kaikkien koneiden tai verkkojen " "käytettävissä." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Lisää protokolla" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Muokkaa protokollaa" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Poista protokolla" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokollat" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Lähdeportit" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Osoitteenmuunnos mahdollistaa paikallisen verkon Internetiin yhdistävän " "koneen tai reitittimen pystyttämisen. Paikallinen verkko näkyy yhtenä " "osoitteena Internetiin päin. Osoitteenmuunnos toimii vain IPv4:ssä." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Osoitteenmuunnos" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Lisää merkintöjä porttien edelleenohjaamiseksi joko portista toiseen " "paikallisessa järjestelmässä tai paikallisesta järjestelmästä toiseen " "järjestelmään. Edelleenohjaaminen toiseen järjestelmään on hyödyllistä vain " "jos liitännässä on käytössä osoitteenmuunnos. Porttien edelleenohjaaminen on " "mahdollista vain IPv4:ssä." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Lisää välitysportti" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Muokkaa välitysporttia" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Poista välitysportti" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message -protokollaa (ICMP) käytetään yleensä virheviestien " "lähettämiseksi verkotettujen tietokoneiden välillä, mutta sitä voidaan " "käyttää myös tietoviesteihin, kuten ping-pyyntöihin ja -vastauksiin." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Merkitse hylättävät ICMP-tyypit luettelosta. Kaikki muut ICMP-tyypit " "päästetään läpi palomuurista. Oletuksena ei ole rajoituksia." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP-suodin" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Lisää liitäntä" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Muokkaa liitäntää" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Poista liitäntä" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Lisää lähde" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Muokkaa lähdettä" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Poista lähde" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Alueet" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "firewalld-palvelu on yhdistelmä portteja, protokollia, moduuleita ja kohde " "osoitteita." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Lisää palvelu" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Muokkaa palvelua" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Poista palvelu" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Lataa palvelun oletusarvot" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Muokkaa merkintää" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Poista merkintä" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Lähdeportti" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduulit" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Jos määrität kohde osoitteen, palvelun päsy rajoitetaan kohde osoitteseen ja " "tyyppiin. Jos molemmat jätetään tyhjäksi, rajoitteita ei ole." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Lisää IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Muokkaa IPSet:iä" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Poista IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Lataa IPSet oletukset" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Lisää" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Lisää ICMP-tyyppi" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Muokkaa ICMP-tyyppiä" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Poista ICMP-tyyppi" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Lisää sääntö" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Muokkaa sääntöä" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Poista sääntö" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Säännöt" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Lisää konteksti" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Muokkaa kontekstia" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Poista konteksti" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Kontekstit" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Lisää komentorivi" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Muokkaa komentoriviä" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Poista komentorivi" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Komentorivit" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Käyttäjänimet" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Lisää käyttäjänimi" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Muokkaa käyttäjänimeä" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Poista käyttäjänimi" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Käyttäjänimet" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Käyttäjä-ID:t" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Lisää käyttäjä-ID" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Muokkaa käyttäjä-ID:tä" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Poista käyttäjä-ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Käyttäjä-ID:t" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Järjestelmän nykyinen oletusalue." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Loki kielletty:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Paniikkitila:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automaattiset apurit:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lukitus:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Oletusalue:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Perus IPSet asetukset" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Tyyppi:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Aikakatkos:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Aikakatkaisun arvo sekunneissa" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Valitse ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Loki kielletty" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Valitse -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Muu moduuli:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Portti ja protokolla" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Syötä portti ja protokolla" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioriteetti:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Syötä protokolla." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Muu protokolla:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Lähde:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Kohde:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Loki:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 ja ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "käänteinen" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Etuliite" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Taso:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Toiminto:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Valitse palvelu." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Käyttäjä ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Syötä käyttäjä ID." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Käyttäjänimi" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Syötä käyttäjänimi" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Oletuskohde" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Kohde:" firewalld-0.4.4.6/po/fr.po000066400000000000000000001667001320241217000152230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # <>, 2006 # Alain PORTAL , 2007 # Audrey Simons , 2003-2005 # Damien Durand , 2006 # Decroux Fabien , 2006 # Gé Baylard , 2013 # Gauthier Ancelin , 2007-2008 # Gé Baylard , 2013 # Jean-Paul Aubry , 2004 # Jérôme Fenal , 2012-2013 # Martin-Gomez Pablo , 2009 # Michael Ughetto , 2008 # Martin-Gomez Pablo , 2009 # Sam Friedmann , 2009-2010,2014 # Samuel Mutel , 2005-2006 # Stephane Raimbault , 2004 # Thomas Canniot , 2006,2008-2010 # Jean-Baptiste Holcroft , 2015. #zanata # Jean-Baptiste Holcroft , 2016. #zanata # Julie Carbone , 2016. #zanata # Thomas Woerner , 2016. #zanata # corina roe , 2016. #zanata # Eric Garver , 2017. #zanata # Jean-Baptiste Holcroft , 2017. #zanata # Laurent Bigonville , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-10-11 01:47-0400\n" "Last-Translator: Eric Garver \n" "Language-Team: French (http://www.transifex.com/projects/p/firewalld/" "language/fr/)\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Appliquette pare-feu" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Pare-feu" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuration du pare-feu" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "pare-feu;réseau;sécurité;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Sélectionner la zone pour l'interface « %s »" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zone par défaut" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Sélectionner la zone pour la connexion « %s »" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "N'a pas pu définir la zône {zone} pour la connexion {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Sélectionner la zone pour la source « %s »" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configurer des zones à protection active/inactive" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Vous pouvez choisir ici les zones avec protections active ou inactive." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Cette fonctionnalité est pratique pour ceux qui utilisent essentiellement le " "zonage par défaut. Pour les utilisateurs, qui changent de zones de " "connexion, son intérêt pourrait se révéler limité." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zone à protection active :" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Réinitialiser aux paramètres par défaut" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zone à protection inactive :" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "À propos %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Auteurs" #: ../src/firewall-applet:396 msgid "License" msgstr "Licence" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Protections activées" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Activer les notifications" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Modifier les paramètres du pare-feu..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Modifier les zones de connexions..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configurer des zones à protection active/inactive..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloquer tout trafic réseau" #: ../src/firewall-applet:492 msgid "About" msgstr "À propos" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Connexions" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Sources" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Échec de l'autorisation" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Nom non valide" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Le nom existe déjà" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zone: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (zone par défaut : {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "N'a pas pu obtenir les connexions du NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Aucune importation du NetworkManager n'est disponible" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Pas de connexion au démon du pare-feu" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Tout trafic réseau est bloqué." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zone par défaut : « %s »" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone par défaut '{default_zone}' active pour connexion '{connection}' sur " "l'interface '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zone « {zone} » active pour la connexion  « {connection} » sur l'interface " "« {interface} »" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zone « {zone} » active pour l'interface « {interface} »" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone « {zone} » active pour la source « {source} »" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Aucune zone active." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "La connexion à FirewallD est établie." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "La connexion à FirewallD a été perdue." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD a été rechargé." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "La zone par défaut devient « %s »." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Le trafic réseau n'est plus bloqué." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activé" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "désactivé" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Zone par défaut '{default_zone}' {activated_deactivated} pour connexion " "'{connection}' sur l'interface '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone « {zone} » {activated_deactivated} pour la connexion « {connection} » " "sur l'interface « {interface} »" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "Zone « {zone} » {activated_deactivated} pour l'interface « {interface} »" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "La zone « %s » est activée pour l'interface « %s »" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone « {zone} » {activated_deactivated} pour la source « {source} »" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone « %s » activée pour la source « %s »" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "La connexion à firewalld est établie." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Tentative de connexion à firewalld, veuillez patientez..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Modifications appliquées." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Utilisé par la connexion réseau « %s »" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Zone par défaut utilisée par la connexion réseau « %s »" #: ../src/firewall-config:96 msgid "enabled" msgstr "activé(e)" #: ../src/firewall-config:97 msgid "disabled" msgstr "désactivé(e)" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Impossible de charger les icônes." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Temps d'exécution" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Service" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocole" #: ../src/firewall-config:560 msgid "To Port" msgstr "Vers le port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Vers l'adresse" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Liaisons" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Entrée" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Type ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "Famille" #: ../src/firewall-config:819 msgid "Action" msgstr "Action" #: ../src/firewall-config:821 msgid "Element" msgstr "Élément" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "journal" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Avertissement" #: ../src/firewall-config:1612 msgid "Error" msgstr "Erreur" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accept" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "reject" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "drop" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "marque" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "service" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "masquer" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "level" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "yes" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Zone par défaut : %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zone: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone « %s » : le service « %s » n'est pas disponible." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Supprimer une zone" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorer" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone « %s » : le type ICMP « %s » n'est pas disponible." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Zone intégrée, le renommage n'est pas pris en charge." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "seconde" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minute" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "heure" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "jour" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergency" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alert" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critical" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "error" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "warning" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notice" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Rediriger vers un autre système est utile seulement si l'interface est " "masquée.\n" "Voulez-vous masquer cette zone ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Service intégré, le renommage n'est pas pris en charge." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" "Veuillez saisir une adresse ipv4 avec l'adresse du formulaire [/mask]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Le masque peut être un masque de réseau ou un numéro" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" "Veuillez saisir une adresse ipv6 avec l'adresse du formulaire [/mask]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Le masque est un numéro" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" "Veuillez saisir une adresse ipv4 ou ipv6 avec l'adresse du formulaire [/" "mask]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Le masque peut être un masque de réseau ou un numéro pour ipv4.\n" "Le masque est un numéro pour ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Ipset intégré, le renommage n'est pas pris en charge." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Sélectionner un fichier" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Fichier texte" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Tous les fichiers" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Tout" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Assistant intégré, le renommage n'est pas pris en charge." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Icmp intégré, le renommage n'est pas pris en charge." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "impossible de lire le fichier « %s » : %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Sélectionner la zone pour la source « %s »" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresse" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Assistants automatiques" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Veuillez sélectionner la valeur des assistants automatiques :" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Ligne de commande" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Veuillez saisir la ligne de commande." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Contexte" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Veuillez saisir le contexte." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Veuillez sélectionner la zone par défaut dans la liste ci-dessous." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Chaîne directe" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Veuillez sélectionner l'ipv et la table, et saisir le nom de chaine." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv :" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Chaîne :" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Table :" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Règle Passthrough directe" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Veuillez sélectionner l'ipv et saisir les arguments." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Arguments :" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Réacheminement de port" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Veuillez sélectionner les options de source et de destination en fonction de " "vos besoins." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Intervalle de ports :" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Adresse IP :" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocole :" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Source" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destination" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Si vous activez un réacheminement local, vous devez définir un port. Celui-" "ci doit être différent du port source." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Réacheminement local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Ré-acheminer vers un autre port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Paramètres de l'assistant de base" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Veuillez configurer les paramètres de l'assistant de base :" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Les entrées en gras sont obligatoires, les autres sont optionnelles." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nom :" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version :" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Court :" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Description :" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Famille :" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Module :" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Assistant" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Veuillez sélectionner un assistant :" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Paramètres de base de type ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Veuillez configurer les paramètres de base de type ICMP :" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Type ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Veuillez sélectionner un type ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Ajouter une entrée" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Ajouter les entrées en provenance du fichier" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Supprimer l'entrée sélectionnée" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Supprimer toutes les entrées" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Supprimer les entrées du fichier" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fichier" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Options" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Recharger Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Recharger les règles du pare-feu. La configuration permanente actuelle " "deviendra la nouvelle configuration d'exécution. Par exemple toutes les " "modifications d'exécution faite avant le rechargement seront perdues si " "elles n'ont pas été aussi dans la configuration permanente." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Modifier la zone à laquelle la connexion réseau appartient." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Modifier la zone par défaut" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Modifier la zone par défaut pour les connexions ou interfaces." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Changer DéniDeLog" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Changer la valeur du DéniDeLog" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configurer les assignations de l'assistant automatique" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configurer les paramètres d'assignations de l'assistant automatique." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Le mode panique signifie que tous les paquets entrants et sortants sont " "supprimés." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Mode panique" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown verrouille la configuration du pare-feu afin que seules les " "applications de la liste blanche puissent la modifier." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Verrouillage" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Rendre la configuration d'exécution permanente" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Exécution sur Permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Affichage" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Types ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Assistants" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configuration directe" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Liste blanche" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Liaisons actives" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Aide" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Modifier la zone de liaison" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Cacher les liaisons de runtime actives de connexions, interfaces et sources " "à des zones." #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Afficher les liaisons de runtime actives de connexions, interfaces et " "sources à des zones." #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuration :" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configuration visible actuellement. La configuration d'exécution est la " "configuration active en fait. La configuration persistante deviendra active " "après avoir rechargé ou redémarré le service ou le système." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Une zone firewalld définie le niveau de confiance pour les connexions " "réseau, les interfaces et les adresses de sources liés à cette zone. La zone " "combine les services, ports, protocoles, translation d'adresse, port ou " "paquet ré-acheminés, filtres icmp et règles riches. La zone peut être liée " "aux interfaces et aux adresses de source." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Ajouter une zone" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Modifier une zone" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Supprimer une zone" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Charger les zones par défaut" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Vous pouvez définir ici quels services sont de confiance dans la zone. Les " "services de confiance sont accessibles depuis tous les hôtes et réseaux qui " "peuvent accéder à la machine depuis les connexions, interfaces et sources " "liés à cette zone." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Services" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Ajouter des ports ou des plages de ports supplémentaires, qui doivent être " "accessibles à tous les hôtes ou réseaux qui peuvent se connecter à la " "machine." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Vers le port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Modifier une zone" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Supprimer une zone" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Ports" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Ajoutez des protocoles qu'il faut rendre accessibles à tous les hôtes ou " "réseaux." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Ajouter un protocole" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Modifier un protocole" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Supprimer un protocole" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocoles" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Ajouter des ports source ou des plages de ports supplémentaires, qui doivent " "être accessibles à tous les hôtes ou réseaux qui peuvent se connecter à la " "machine." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Ports sources" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "La translation d'adresses est très utile si vous configurez un hôte ou un " "routeur qui connecte votre réseau local à Internet. Votre réseau local ne " "sera pas visible et vos hôtes apparaîtront sous une adresse unique sur " "Internet. La translation d'adresse est une spécificité d'IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zone de translation d'adresse" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Si vous activez la translation d'adresse, la redirection IP sera activée " "pour votre réseau IPV4" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Translation d'adresses" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Ajouter des entrées pour rediriger les ports soit d'un port à un autre sur " "le système local, soit du système local vers un autre. Rediriger vers un " "autre système n'est utile que si l'interface est masquée. Le redirection de " "port est une spécificité d'IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Ajouter une transmission de port" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Modifier une transmission de port" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Supprimer une transmission de port" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Le protocole de message de contrôle internet (ICMP, pour « Internet Control " "Message Protocol ») est utilisé essentiellement pour envoyer des messages " "d'erreurs vers les ordinateurs d'un réseau, mais également pour envoyer des " "messages d'information, comme les requêtes « ping » et leurs réponses." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marquez les types ICMP de la liste qui doivent être rejetés. Tous les autres " "types ICMP sont autorisés à traverser le pare-feu. Par défaut, il n'y a " "aucune restriction." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Si Filtrage Inversion est actif, les saisies marquées ICMP seront acceptées " "et les autres seront rejetées. Dans une zone ayant pour cible « DROP », " "elles seront rejetées." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Filtrage Inversion" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtre ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Vous pouvez définir ici les règles linguistiques riches pour la zone." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Ajouter une règle riche" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Afficher une règle riche" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Supprimer une règle riche" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Règles riches" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Ajouter des entrées pour lier des interfaces à la zone. Si l'interface est " "utilisée par une connexion, la zone sera définie sur la zone indiquée dans " "la connexion." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Ajouter une interface" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Quitter l'interface" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Supprimer l'interface" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Ajouter des entrées pour lier les adresses ou zones source à la zone. Vous " "pouvez également les lier à une adresse source MAC mais avec certaines " "limites. Le transfert et masquage ne fonctionneront pas pour les liaisons " "source de MAC." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Ajouter une source" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Afficher la source" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Supprimer une source" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zones" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Un service firewalld est une combinaison de ports, de protocoles, de modules " "et d'adresses de destination." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Ajouter un service" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Éditer un service" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Supprimer un service" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Charger les services par défaut" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Ajoutez les ports ou intervalles de ports supplémentaires qu'il faut rendre " "accessibles à tous les hôtes ou réseaux." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Modifier une entrée" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Supprimer une entrée" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Ajoutez les ports source ou intervalles de ports supplémentaires qu'il faut " "rendre accessibles à tous les hôtes ou réseaux." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Port source" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" "Les modules d'assistance Netfilter sont nécessaires pour certains services." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modules" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Si vous spécifiez une adresse de destination, l'entrée de service sera " "limitée au type et à l'adresse de destination. Si ces deux entrées sont " "vides, il n'y a pas de limitation." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4 :" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6 :" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Les services ne peuvent être modifiés que dans la fenêtre de configuration " "permanente. La configuration d'exécution des services est fixé." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Un IPSet peut être utilisé pour créer des listes noires ou blanches et peut " "stocker des adresses IP, numéros de port ou adresses MAC." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Ajouter IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Modifier IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Supprimer IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Charger IPSet par défaut" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Entrées de l'IPSet. Vous ne pourrez voir que des entrées d'ipsets qui " "n'utilisent pas l'option timeout et uniquement les entrées qui ont été " "ajoutées par firewalld. Les entrées qui ont été ajoutées directement avec la " "commande ipset n'apparaissent pas ici." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Cet IPSet utilise l'option timeout, donc aucune entrée n'est visible ici. " "Les entrées doivent être utilisées avec la commande ipset directement." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Ajouter" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Entrées" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Les IPSets peuvent uniquement être créés ou supprimés dnas l'affichage de " "configuration permanent." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "L'icmptype de firewalld fournit les informations pour le type de protocole " "de contrôle du réseau internet (ICMP) pour firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Ajoute un type d'ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Modifier le type d'ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Supprimer le type d'ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Charger le type ICMP par défaut" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Précisez si ce type d'ICMP est disponible pour IPv4 et/ou IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Les types d'ICMP ne peuvent être modifiés que dans la fenêtre de " "configuration permanente. La configuration en cours d'exécution des types " "d'ICMP est fixée." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Un assistant de suivi de connexion aide à faire fonctionner les protocoles " "qui utilisent différents flux pour signaler et transférer des données. Les " "transferts de données utilisent des ports qui ne sont pas liés à la " "connexion signalée et sont en conséquence bloqués par le pare-feu sans cet " "assistant." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Définir les ports ou plages de port, surveillés par l'assistant." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "La configuration directe donne un accès plus direct au pare-feu. Ces options " "exige que l'utilisateur connaisse les concepts de base de iptables, c.a.d " "tables chaines, commandes, paramètres et cibles. La configuration directe " "devrait être utilisée qu'en dernier ressort, quand il n'est pas possible " "d'utiliser les autres fonctionnalités de firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "L'argument ipv de chaque option doit être ipv4 ou ipv6 ou eb. ipv4 pour " "iptables, ipv6 pour ip6tables et eb pour une passerelle ethernet (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Chaines supplémentaires à utiliser avec les règles." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Ajouter une chaine" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Afficher une chaine" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Supprimer une chaine" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Chaines" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Ajoutez une règle avec les arguments « args » à une chaîne dans une table " "avec une priorité." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "La priorité est utilisée pour ordonner les règles. La priorité 0 signifie " "ajouter la règle en début de chaine, avec une priorité plus élevée la règle " "sera ajoutée plus bas. Les règles avec le même niveau de priorité sont sur " "le même niveau et l'ordre de ces règles n'est pas fixé et peut être modifié. " "Si vous voulez être sur qu'une règle est ajoutée après une autre utilisez " "une priorité basse pour la première et une plus élevée pour les suivantes." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Ajouter une règle" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Afficher une règle" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Supprimer une règle" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Règles" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Les règles passthrough sont directement répercutées sur le pare-feu et ne " "sont pas placé dans les chaînes particulières. Toutes les options iptables, " "ip6tables et ebtables peuvent être utilisées." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Veuillez être prudent avec les règles passthrough pour ne pas endommager le " "pare-feu." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Ajouter le Passthrough" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Afficher le Passthrough" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Supprimer le Passthrough" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "La fonction verrouillage est une version allégé de l'utilisateur et des " "politiques d'application pour firewalld. Elle limite les modifications au " "pare-feu. La liste blanche peut comprendre des commandes, des contextes, des " "utilisateurs et des identifiants d'utilisateur." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Le contexte est le contexte de sécurité (SELinux) d'une application en cours " "d'exécution ou d'un service. Pour obtenir le contexte d'une application en " "cours d'exécution utilisez ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Ajouter un contexte" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Modifier un contexte" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Supprimer un contexte" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contextes" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Si une commande de la liste blanche se termine par un astérisque « * », " "alors toutes les lignes de commande commençant par cette commande seront " "prise en compte. Si « * » est absent alors la commande seule sera prise en " "compte." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Ajouter une ligne de commande" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Afficher une ligne de commande" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Supprimerune ligne de commande" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Lignes de commande" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Noms d'utilisateur" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Ajouter un nom d'utilisateur" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Modifier un nom d'utilisateur" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Supprimer un nom d'utilisateur" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Noms d'utilisateur" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Identifiants d'utilisateur" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Ajouter un identifiant utilisateur" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Afficher un identifiant utilisateur" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Supprimer un identifiant utilisateur" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Identifiants d'utilisateur" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Zone actuelle par défaut du système." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "DéniDeLog :" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Mode panique :" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Assistants automatiques :" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Verrouiller :" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zone par défaut :" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interface" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Paramètres IPSet de base" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Veuillez configurer les paramètres de l'IPSet de base :" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Type :" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Timeout :" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Taille du hachage :" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem :" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Valeur du timeout en secondes" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Taille du hachage initial, valeur par défaut : 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Nombre maximal d'éléments, valeur par défaut : 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Veuillez sélectionner un IPSet" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "DéniDeLog" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Veuillez sélectionner la valeur du DéniDeLog :" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Marque" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Veuillez saisir une marque avec un masque en option." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "Les champs marque et masque sont tous les deux des nombres non signés de 32 " "octets de largeur." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Marque :" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Masque :" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Veuillez sélectionner un assistant conntrack netfilter :" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Sélectionner -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Autre module :" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port et protocole" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Veuillez saisir un port et un protocole." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Règle directe" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Veuillez sélectionner l'ipv et la table, la chaine prioritaire et saisissez " "las arguments." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorité :" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Veuillez saisir un protocole." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Autres protocoles :" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Règle riche" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Veuillez saisir une règle riche." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Désactiver l'élément pour un hôte ou un réseau blanc ou sur liste noire." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Source :" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destination :" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Journal :" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit :" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 et ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inversé" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Pour activer ceci, Action doit être paramétré sur « reject » et Famille soit " "sur « Ipv4 » ou « Ipv6 » (pas les deux)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "avec le type :" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "avec la limite :" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Préfixe :" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Niveau :" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Élément :" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Action :" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Paramètres du service de base" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Veuillez configurer les paramètres du service de base :" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Veuillez sélectionner un service." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID utilisateur" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Veuillez saisir l'ID de l'utilisateur." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nom d'utilisateur" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Veuillez saisir le nom d'utilisateur." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "étiquette" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Paramètres de la zone de base" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Veuillez configurer les paramètres de la zone de base :" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Cible par défaut" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Cible :" firewalld-0.4.4.6/po/gl.po000066400000000000000000001304431320241217000152110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Xosé , 2013 # Xosé , 2013 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:45-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Galician (http://www.transifex.com/projects/p/firewalld/" "language/gl/)\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Applet de devasa" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Devasa" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuración da devasa" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Escolla a zona para a interface «%s»" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Esta funcionalidade é útil para quen empregue principalmente as zonas por " "omisión. Par quen ande a cambiar as zonas das conexións podería ter pouco " "uso." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Activar as notificacións" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editar a configuración da devasa..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Cambiar as zonas das conexións..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloquear todo o tráfico da rede" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Conexións" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Fallou a autorización." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "O nome non é válido" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Xa existe ese nome" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Non hai ningunha conexión co daemon da devasa" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Todo o tráfico da rede está bloqueado." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "A zona «{zone}» está activa para a conexión «{connection}» na interface " "«{interface}»" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "A zona '{zone}' está activa para a interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Non hai ningunha zona activa." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Estabeleceuse unha conexión a FirewallD." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Perdeuse a conexión a FirewallD." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "Cargouse FirewallD de novo." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "A zona por omisión cambiou a «%s»." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "O tráfico da rede xa non está bloqueado." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "activado" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desactivado" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "A zona «{zone}» está {activated_deactivated} para a conexión «{connection}» " "na interface «{interface}»" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "A zona «{zone}» está {activated_deactivated} na interface «{interface}»" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "A zona «%s» está acivada na interface «%s»" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Fallou a carga das iconas." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servizo" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Porto" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocolo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Ao porto" #: ../src/firewall-config:562 msgid "To Address" msgstr "Ao enderezo" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipo de ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Aviso" #: ../src/firewall-config:1612 msgid "Error" msgstr "Erro" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona «%s»: O servizo «%s» non está dispoñíbel." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Retirar" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorar" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona «%s»: O tipo de ICMP «%s» non está dispoñíbel." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Enderezo" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Encamiñamento dos portos" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Escolla as opcións de orixe e destino segundo as súas necesidades." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Porto / Intervalo de portos:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Enderezo de IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocolo:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Orixe" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destino" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Para activar o encamiñamento local hai que indicar un porto. Este porto ten " "que ser diferente do porto de orixe." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Encamiñamento local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Encamiñar a outro porto" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "A entradas en negra son obrigatorias; todas as demais son opcionais." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nome:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versión:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Curto:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descrición:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Configuración dos tipos de ICMP de base" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Configure os tipos de ICMP de base:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipo de ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Engadir unha entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Ficheiro" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opcións" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Cargar Firewalld de novo" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Cambiar a zona por omisión" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "A_xuda" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configuración visíbel actualmente. A configuración do tempo de execución é a " "configuración activa real. A configuración permanente estará activa despois " "de recargar ou reiniciar o servizo ou o sistema." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Engadir unha zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Editar a zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Retirar a zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Servizos" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Engadir un porto" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edita o porto" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Retirar o porto" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portos" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Engadir un porto de encamiñamento" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Editar un porto de encamiñamento" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Retirar un porto de encamiñamento" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "O Protocolo de Mensaxes de Control da Internet (ICMP) emprégase " "principalmente para enviar mensaxes de erro entre os computadores dunha " "rede, mais, alén disto, tamén para mensaxes informativos como solicitudes e " "respostas de ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marque os tipos de ICMP da lista que desexe que sexan rexeitados. O resto " "dos tipos de ICMP terán permitido pasar a devasa. Por omisión non hai " "limitación." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtro de ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Engadir un servizo" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editar o servizo" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Retirar o servizo" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editar a entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Retirar a entrada" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Módulos" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Se se indican enderezos de destino, a entrada do servizo limítase ao " "enderezo e tipo de destino. Se ambas as dúas entradas estiveren baleiras non " "hai limitación." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Engadir un tipo de ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Editar o tipo de ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Retirar o tipo de ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Zona por omisión actual do sistema." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona por omisión" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Porto e protocolo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Introduza un porto e un protocolo." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Outro protocolo:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Configuración dos servizos de base" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Configure as opcións dos servizos de base:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Configuración das zonas de base" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Configure as opcións das zonas de base:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Destino por omisión" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Destino:" firewalld-0.4.4.6/po/gu.po000066400000000000000000002022611320241217000152200ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Ankit Patel , 2014 # Ankit Patel , 2004-2008 # Sweta Kothari , 2008 # sweta , 2008-2011 # sweta , 2013 # sweta , 2013 # sweta , 2013-2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:45-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Gujarati (http://www.transifex.com/projects/p/firewalld/" "language/gu/)\n" "Language: gu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ફાયરવોલ àªàªªàª²à«‡àªŸ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ફાયરવોલ" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ફાયરવોલ રૂપરેખાંકન" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "ફાયરવોસ;નેટવરà«àª•;સà«àª°àª•à«àª·àª¾;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸ '%s' માટે વિસà«àª¤àª¾àª°àª¨à«‡ પસંદ કરો" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "મૂળભૂત વિસà«àª¤àª¾àª°" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "જોડાણ '%s' માટે વિસà«àª¤àª¾àª°àª¨à«‡ પસંદ કરો" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "શીલà«àª¡ અપ/ડાઉન વિસà«àª¤àª¾àª°à«‹àª¨à«‡ રૂપરેખાંકિત કરો" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "શીલà«àª¡ અપ અને શીલà«àª¡ ડાઉન માટે વાપરેલ વિસà«àª¤àª¾àª°à«‹àª¨à«‡ તમે અહિંયા પસંદ કરી શકો છો." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "આ લકà«àª·àª£ મોટેભાગે મૂળભૂત વિસà«àª¤àª¾àª°à«‹àª¨à«€ મદદથી લોકો માટે ઉપયોગી છે. વપરાશકરà«àª¤àª¾àª“ " "માટે, જોડાણો માટે વિસà«àª¤àª¾àª°à«‹àª¨à«‡ બદલી રહà«àª¯àª¾ છે, તે મરà«àª¯àª¾àª¦àª¿àª¤ વપરાશ હોઇ શકે છે." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "શીલà«àª¡ અપ વિસà«àª¤àª¾àª°:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "શીલà«àª¡ ડાઉન વિસà«àª¤àª¾àª°:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "શીલà«àª¡ અપ" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "નોંધણીઓને સકà«àª°àª¿àª¯ કરો" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ફાયરવોલ સà«àª¯à«‹àªœàª¨à«‹àª®àª¾àª‚ ફેરફાર કરો..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "જોડાણોનાં વિસà«àª¤àª¾àª°à«‹àª¨à«‡ બદલો..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "શીલà«àª¡ અપ/ડાઉન વિસà«àª¤àª¾àª°à«‹àª¨à«‡ રૂપરેખાંકિત કરો..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "બધા નેટવરà«àª• ટà«àª°àª¾àª«àª¿àª•ને બà«àª²à«‹àª• કરો" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "જોડાણો" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "સà«àª¤à«àª°à«‹àª¤à«‹" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ નિષà«àª«àª³." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "અયોગà«àª¯ દલીલ %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "નામ પહેલેથી જ અસà«àª¤àª¿àª¤à«àªµ ધરાવે છે" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ફાયરવોલ ડિમન માટે જોડાણ નથી" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "બધા નેટવરà«àª• ટà«àª°àª¾àª«àª¿àª• બà«àª²à«‹àª• થયેલ છે." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "મૂળભૂત વિસà«àª¤àª¾àª°: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "ઇનà«àªŸàª°àª«à«‡àª¸ '{interface}' પર જોડાણ '{connection}' માટે વિસà«àª¤àª¾àª° '{zone}' સકà«àª°àª¿àª¯" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸ '{interface}' માટે વિસà«àª¤àª¾àª° '{zone}' સકà«àª°àª¿àª¯" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "સà«àª¤à«àª°à«‹àª¤ {source} માટે વિસà«àª¤àª¾àª° '{zone}' સકà«àª°àª¿àª¯" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "સકà«àª°àª¿àª¯ વિસà«àª¤àª¾àª°à«‹ નથી." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD માં જોડાણને સà«àª¥àª¾àªªàª¿àª¤ કરેલ છે." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD માં જોડાણ ગà«àª® થયેલ છે." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD ને પà«àª¨:લાવી દેવામાં આવà«àª¯à« છે." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "'%s' માં મૂળભૂત વિસà«àª¤àª¾àª°àª¨à«‡ બદલેલ છે." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "નેટવરà«àª• ટà«àª°àª¾àª«àª¿àª• હવે બà«àª²à«‹àª• થયેલ નથી." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "સકà«àª°àª¿àª¯" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "નિષà«àª•à«àª°àª¿àª¯" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "ઇનà«àªŸàª°àª«à«‡àª¸ '{interface}' પર જોડાણ '{connection}' માટે વિસà«àª¤àª¾àª° '{zone}' " "{activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸ '{interface}' માટે વિસà«àª¤àª¾àª° '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸ '%s' માટે સકà«àª°àª¿àª¯ થયેલ વિસà«àª¤àª¾àª° '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "સà«àª¤à«àª°à«‹àª¤ '{source}' માટે વિસà«àª¤àª¾àª° '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "સà«àª¤à«àª°à«‹àª¤ '%s' માટે સકà«àª°àª¿àª¯ થયેલ વિસà«àª¤àª¾àª° '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "લાગૠથયેલ ફેરફારો." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "નેટવરà«àª• જોડાણ '%s' દà«àª¦àª¾àª°àª¾ વાપરેલ છે" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "સકà«àª°àª¿àª¯" #: ../src/firewall-config:97 msgid "disabled" msgstr "નિષà«àª•à«àª°àª¿àª¯" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ચિહà«àª¨à«‹àª¨à«‡ લાવવામાં નિષà«àª«àª³àª¤àª¾." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "રનટાઇમ" #: ../src/firewall-config:398 msgid "Permanent" msgstr "કાયમી" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "સેવા" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "પોરà«àªŸ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "પà«àª°à«‹àªŸà«‹àª•ોલ" #: ../src/firewall-config:560 msgid "To Port" msgstr "પોરà«àªŸ પà«àª°àª¤àª¿" #: ../src/firewall-config:562 msgid "To Address" msgstr "સરનામા પà«àª°àª¤àª¿" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp પà«àª°àª•ાર" #: ../src/firewall-config:817 msgid "Family" msgstr "કà«àªŸà«àª‚બ" #: ../src/firewall-config:819 msgid "Action" msgstr "કà«àª°àª¿àª¯àª¾" #: ../src/firewall-config:821 msgid "Element" msgstr "ઘટક" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "અંતિમ મà«àª•ામ" #: ../src/firewall-config:827 msgid "log" msgstr "લૉગ" #: ../src/firewall-config:829 msgid "Audit" msgstr "ઓડિટ" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ચેતવણી" #: ../src/firewall-config:1612 msgid "Error" msgstr "ભૂલ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "સà«àªµà«€àª•ારો" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "રદ કરો" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "છોડી દો" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "મરà«àª¯àª¾àª¦àª¾" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "સેવા" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "પોરà«àªŸ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "પà«àª°à«‹àªŸà«‹àª•ોલ" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "માસà«àª•રેડ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "સà«àª¤àª°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "હાં" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "વિસà«àª¤àª¾àª°" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "વિસà«àª¤àª¾àª° '%s': સેવા '%s' ઉપલબà«àª§ નથી." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "દૂર કરો" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "અવગણો" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "વિસà«àª¤àª¾àª° '%s': ICMP પà«àª°àª•ાર '%s' ઉપલબà«àª§ નથી." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "બિલà«àªŸ-ઇન વિસà«àª¤àª¾àª°, નામ બદલવાનà«àª‚ આધારભૂત નથી." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "સેકંડ" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "મિનિટ" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "કલાક" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "દિવસ" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "તતà«àª•ાલ" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "સાવધાન" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "જટિલ" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "ભૂલ" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "ચેતવણી" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "સૂચના" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "જાણકારી" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ડિબગ" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "ફોરà«àªµàª¡à«€àª‚ગ ઠફકà«àª¤ બીજી સિસà«àªŸàª® માટે ઉપયોગી છે જો ઇનà«àªŸàª°àª«à«‡àª¸ માસà«àª•રેડ છે. " #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "બિલà«àªŸ-ઇન સેવા, નામ બદલવાનà«àª‚ આધારભૂત નથી." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "બિલà«àªŸ-ઇન icmp, નામ બદલવાનà«àª‚ આધારભૂત નથી." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "સà«àª¤à«àª°à«‹àª¤ %s માટે વિસà«àª¤àª¾àª°àª¨à«‡ પસંદ કરો" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "સરનામà«àª‚" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "મહેરબાની કરીને આદેશ વાકà«àª¯àª¨à«‡ દાખલ કરો." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "મહેરબાની કરીને સંદરà«àª­àª¨à«‡ દાખલ કરો." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "મહેરબાની કરીને નીચેની યાદીમાંથી મૂળભૂત વિસà«àª¤àª¾àª°àª¨à«‡ પસંદ કરો." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "સીધી કતાર" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "મહેરબાની કરીને ipv અને કોષà«àªŸàª•ને પસંદ કરો અને કતાર નામને દાખલ કરો." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "કતાર:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "કાચà«" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "સà«àª°àª•à«àª·àª¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "કોષà«àªŸàª•:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "સીધા પાસથà«àª°à« નિયમ" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "મહેરબાની કરીને ipv ને પસંદ કરો અને દલીલોને દાખલ કરો." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "દલીલો:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "પોરà«àªŸ ફોરવરà«àª¡à«€àª‚ગ" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "મહેરબાની કરીને તમારી જરૂરીયાત અનà«àª¸àª¾àª° સà«àª°à«‹àª¤ અને અંતિમ મà«àª•ામ વિકલà«àªªà«‹ પસંદ કરો." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "પોરà«àªŸ / પોરà«àªŸ વિસà«àª¤àª¾àª°:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP સરનામà«àª‚:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "પà«àª°à«‹àªŸà«‹àª•ોલ:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "સà«àª¤à«àª°à«‹àª¤" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "લકà«àª·à«àª¯" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "જો તમે સà«àª¥àª¾àª¨àª¿àª¯ આગળ ધપાવવાનà«àª‚ સકà«àª°àª¿àª¯ કરો, તો તમારે પોરà«àªŸ સà«àªªàª·à«àªŸ કરવો પડે. આ " "પોરà«àªŸ સà«àª°à«‹àª¤ પોરà«àªŸàª¥à«€ અલગ હોવો જોઈàª." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "સà«àª¥àª¾àª¨àª¿àª¯ આગળ ધપાવવાનà«àª‚" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "અનà«àª¯ પોરà«àªŸ આગળ ધપાવો" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "બોલà«àª¡ પà«àª°àªµà«‡àª¶à«‹ ફરજિયાત છે, બધૠબીજૠવૈકલà«àªªàª¿àª• છે." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "નામ:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "આવૃતà«àª¤àª¿:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "ટૂંકà«:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "વરà«àª£àª¨:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "કà«àªŸà«àª‚બ:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "મૂળભૂત ICMP પà«àª°àª•ાર સà«àª¯à«‹àªœàª¨à«‹" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "મહેરબાની કરીને મૂળભૂત ICMP પà«àª°àª•ાર સà«àª¯à«‹àªœàª¨à«‹àª¨à«‡ રૂપરેખાંકિત કરો:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP પà«àª°àª•ાર" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "મહેરબાની કરીને ICMP પà«àª°àª•ારને પસંદ કરો" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "નોંધણીને ઉમેરો" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ફાઈલ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "વિકલà«àªªà«‹ (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld ને પà«àª¨:લાવો" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ફાયરવોલ નિયમોને પà«àª¨:લાવો. વરà«àª¤àª®àª¾àª¨ કાયમી રૂપરેખાંકન ઠનવી રનટાઇમ રૂપરેખાંકન " "બનાવશે. àªàªŸàª²à«‡ કે બધી રનટાઇમ ઠફકà«àª¤ ફેરફારો પૂરà«àª£ કરà«àª¯àª¾ જà«àª¯àª¾àª‚ સà«àª§à«€ ફરી " "લાવવાનà«àª‚ ઠફરી લાવવા સાથે ગà«àª® થઇ જાય જો તેઓ કાયમી રૂપરેખાંકનમાં પણ ન આવà«àª¯àª¾ " "હોય." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "બદલો કે જે વિસà«àª¤àª¾àª° જે નેટવરà«àª• જોડાણ સાથે સંકળાય છે." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "મૂળભૂત વિસà«àª¤àª¾àª°àª¨à«‡ બદલો" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "જોડાણો અથવા ઇનà«àªŸàª°àª«à«‡àª¸ માટે મૂળભૂત વિસà«àª¤àª¾àª°àª¨à«‡ બદલો." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "પેનિક સà«àª¥àª¿àª¤àª¿ àªàª¨à«‹ મતલબ ઠથાય કે આવતા અને જતા પેકેટો ઠતૂટી જાય છે." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "પેનિક સà«àª¥àª¿àª¤àª¿" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "લૉકડાઉન ફાયરવોલ રૂપરેખાંકનને તાળૠમારે છે તેથી ફકà«àª¤ લૉકડાઉન સફેદયાદી પર ફકà«àª¤ " "કારà«àª¯àª•à«àª°àª®à«‹ ઠતેને બદલવા સકà«àª·àª® છે." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "લોકડાઉન" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "કાયમ માટે રનટાઇમ રૂપરેખાંકનને બનાવો" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "કાયમ કરવા માટે રનટાઇમ" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "દૃશà«àª¯ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP પà«àª°àª•ારો" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "સીધૠરૂપરેખાંકન" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "લોકડાઉન વાઇટલીસà«àªŸ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "મદદ (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "રૂપરેખાંકન:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "હાલમાં દૃશà«àª¯àª®àª¾àª¨ રૂપરેખાંકન. રનટાઇમ રૂપરેખાંકન ઠચોકà«àª•સ સકà«àª°àª¿àª¯ રૂપરેખાંકન છે. " "કાયમી રૂપરેખાંકન સેવા પછી સકà«àª°àª¿àª¯ થશે અથવા સિસà«àªŸàª® રિલોડ અથવા પà«àª¨:શરૂ થાય છે." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld વિસà«àª¤àª¾àª° ઠનેટવરà«àª• જોડાણો, ઇનà«àªŸàª°àª«à«‡àª¸ અને વિસà«àª¤àª¾àª°àª®àª¾àª‚ સરનામાં બાઉનà«àª¡ " "માટે વિસà«àª¤àª¾àª°àª¨àª¾àª‚ સà«àª¤àª°àª¨à«‡ વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ કરે છે. વિસà«àª¤àª¾àª° ઠસેવાઓ, પોરà«àªŸ, " "પà«àª°à«‹àªŸà«‹àª•ોલ, માસà«àª•રેડીંગ, પોરà«àªŸ/પેકેટ ફોરà«àªµàª¡à«€àª‚ગ, icmp ફિલà«àªŸàª°à«‹ અને કિંમતી " "નિયમોને બેગૠકરે છે. વિસà«àª¤àª¾àª° ઇનà«àªŸàª°àª«à«‡àª¸ અને સà«àª¤à«àª°à«‹àª¤ સરનામાંને બાઉનà«àª¡ કરી શકે " "છે." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "વિસà«àª¤àª¾àª°àª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "વિસà«àª¤àª¾àª°àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "વિસà«àª¤àª¾àª°àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "મૂળભૂત વિસà«àª¤àª¾àª°à«‹àª¨à«‡ લાવો" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "અહિંયા તમે વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¤ કરી શકો છો કે જે સેવાઓ વિસà«àª¤àª¾àª°àª®àª¾àª‚ વિશà«àª°à«àªµàª¾àª¸àªªàª¾àª¤à«àª° છે. " "વિશà«àª°à«àªµàª¾àª¸àªªàª¾àª¤à«àª° સેવાઓ બધા યજમાનો અને નેટવરà«àª•ોમાંથી વાપરી શકાય છે કે જે " "જોડાણો, ઇનà«àªŸàª°àª«à«‡àª¸ અને આ વિસà«àª¤àª¾àª°àª®àª¾àª‚ સà«àª¤à«àª°à«‹àª¤ બાઉનà«àª¡ સà«àª§à«€ પહોંચી શકાય છે." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "સેવાઓ" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "વધારાનાં પોરà«àªŸ અને પોરà«àªŸ સીમાઓને ઉમેરો, કે જે બધા યજમાનો અથવા નેટવરà«àª•à«‹ માટે " "વાપરવાની જરૂર છે કે જે મશીન માટે જોડાઇ શકે છે." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "પોરà«àªŸ પà«àª°àª¤àª¿" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "પોરà«àªŸàª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "પોરà«àªŸàª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "પોરà«àªŸ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "માસà«àª•રેડીંગ તમને યજમાન અથવા રાઉટર સà«àª¯à«‹àªœà«€àª¤ કરવા માટે પરવાનગી આપે છે કે જે " "તમારા સà«àª¥àª¾àª¨àª¿àª• નેટવરà«àª•ને ઈનà«àªŸàª°àª¨à«‡àªŸ સાથે જોડે. તમારà«àª‚ સà«àª¥àª¾àª¨àª¿àª• નેટવરà«àª• દૃશà«àª¯àª®àª¾àª¨ " "હશે નહિં અને ઈનà«àªŸàª°àª¨à«‡àªŸ માટે àªàª• યજમાન તરીકે દેખાશે. માસà«àª•રેડીંગ ઠમાતà«àª° IPv4 " "હોય છે." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "માસà«àª•રેડ વિસà«àª¤àª¾àª°" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "જો તમે માસà«àª•રેડીંગને સકà«àª°àª¿àª¯ કરો તો, IP ફોરà«àªµàª¡à«€àª‚ગ ઠતમારાં IPv4 નેટવરà«àª•à«‹ " "માટે સકà«àª°àª¿àª¯ થશે." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "માસà«àª•રેડીંગ" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "સà«àª¥àª¾àª¨àª¿àª• સિસà«àªŸàª® પર àªàª• પોરà«àªŸàª®àª¾àª‚થી અનà«àª¯ પર પોરà«àªŸà«‹ આગળ ધપાવવા માટે કે સà«àª¥àª¾àª¨àª¿àª• " "સિસà«àªŸàª®àª®àª¾àª‚થી અનà«àª¯ સિસà«àªŸàª® પર આગળ ધપાવવા માટે પà«àª°àªµà«‡àª¶à«‹ ઉમેરો. અનà«àª¯ સિસà«àªŸàª®àª®àª¾àª‚ આગળ " "ધપાવવાનà«àª‚ ઠમાતà«àª° તà«àª¯àª¾àª°à«‡ જ ઉપયોગી છે જો ઈનà«àªŸàª°àª«à«‡àª¸ માસà«àª•રેડ થયેલ હોય. પોરà«àªŸ " "આગળ ધપાવવાનà«àª‚ ઠમાતà«àª° IPv4 છે." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ફોરà«àªµàª¡ પોરà«àªŸàª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ફોરà«àªµàª¡ પોરà«àªŸàª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ફોરà«àªµàª¡ પોરà«àªŸàª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message Protocol (ICMP) ઠમà«àª–à«àª¯àª¤à«àªµà«‡ નેટવરà«àª• કમà«àªªà«àª¯à«‚ટરો " "વચà«àªšà«‡ ભૂલ સંદેશાઓ મોકલવા માટે વપરાય છે, પરંતૠવધà«àª®àª¾àª‚ જાણકારી સંદેશાઓ માટે " "જેમ કે પીંગ અરજીઓ અને પà«àª°àª¤à«àª¯à«àª¤à«àª¤àª°à«‹ માટે." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "ICMP પà«àª°àª•ારોને યાદીમાં ચિહà«àª¨àª¿àª¤ કરો, કે જેઓ નકારાવા જોઈàª. બાકીના બધા ICMP " "પà«àª°àª•ારો ફાયરવોલ પસાર કરવા માટે માનà«àª¯ છે. મૂળભૂત ઠકોઈ મરà«àª¯àª¾àª¦àª¾ નથી." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ગાળક" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "અહિંયા તમે વિસà«àª¤àª¾àª° માટે કિંમતી ભાષા નિયમોને સà«àª¯à«‹àªœàª¿àª¤ કરી શકાય છે." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "મજબૂત નિયમ ઉમેરો" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "મજબૂત નિયમમાં ફેરફાર કરો" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "મજબૂત નિયમને દૂર કરો" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "કિંમતી નિયમો" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "વિસà«àª¤àª¾àª°àª®àª¾àª‚ ઇનà«àªŸàª°àª«à«‡àª¸àª¨à«‡ બાઇનà«àª¡ કરવા માટે નોંધણીને ઉમેરો. જો ઇનà«àªŸàª°àª«à«‡àª¸ ઠજોડાણ " "દà«àª¦àª¾àª°àª¾ વાપરેલ હશે, વિસà«àª¤àª¾àª° ઠજોડાણનાં ખાસ વિસà«àª¤àª¾àª°àª®àª¾àª‚ સà«àª¯à«‹àªœàª¿àª¤ હશે." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸àª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ઇનà«àªŸàª°àª«à«‡àª¸àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "સà«àª¤à«àª°à«‹àª¤àª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "સà«àª¤à«àª°à«‹àª¤àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "સà«àª¤à«àª°à«‹àª¤àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "વિસà«àª¤àª¾àª°à«‹" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "firewalld સેવા àªàª° પોરà«àªŸ, પà«àª°à«‹àªŸà«‹àª•ોલ, મોડà«àª¯à«àª²à«‹ અને લકà«àª·à«àª¯ સરનામાંનà«àª‚ સંયોજન છે." "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "સેવાને ઉમેરો" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "સેવામાં ફેરફાર કરો" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "સેવાને દૂર કરો" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "સિસà«àªŸàª® મૂળભૂતને લાવો" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "નોંધણી માં પà«àª°àªµà«‡àª¶ કરો" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "નોંધણી દૂર કરો" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "મોડà«àª¯à«àª²à«‹" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "જો તમે લકà«àª·à«àª¯ સરનામાંને સà«àªªàª·à«àªŸ કરો તો, સેવા પà«àª°àªµà«‡àª¶ ઠલકà«àª·à«àª¯ સરનામાં અને " "પà«àª°àª•ારને મરà«àª¯àª¾àª¦àª¿àª¤ કરશે. જો બંને નોંધણી ખાલી હોય તો, તà«àª¯àª¾àª‚ મરà«àª¯àª¾àª¦àª¾ નથી." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "સેવાઓ ફકà«àª¤ કાયમી રૂપરેખાંકન દૃશà«àª¯àª®àª¾àª‚ બદલી શકાય છે. સેવાઓની રનટાઇમ રૂપરેખાંકન " "સà«àª§àª¾àª°à«‡àª² છે." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmptype ઠfirewalld માટે Internet Control Message Protocol (ICMP) " "પà«àª°àª•ાર માટે જાણકારીને પૂરૠપાડે છે." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP પà«àª°àª•ારને ઉમેરો" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP પà«àª°àª•ારમાં ફેરફાર કરો" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP પà«àª°àª•ારને દૂર કરો" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP પà«àª°àª•ાર મૂળભૂતોને લાવો" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "સà«àªªàª·à«àªŸ કરો શà«àª‚ આ ICMP પà«àª°àª•ાર ઠIPv4 અને/અથવા IPv6 માટે ઉપલબà«àª§ છે." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP પà«àª°àª•ારો ફકà«àª¤ કાયમી રૂપરેખાંકન દૃશà«àª¯àª®àª¾àª‚ બદલી શકાય છે. ICMP પà«àª°àª•ારોની " "રનટાઇમ રૂપરેખાંકન સà«àª§àª¾àª°à«‡àª² છે." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "સીધૠરૂપરેખાંકન ઠfirewall માં સીધો વપરાશ આપે છે. આ વિકલà«àªªà«‹ ઠમૂળ iptables " "ખà«àª¯àª¾àª²à«‹àª¨à«‡ જાણવા વપરાશકરà«àª¤àª¾àª¨à«‡ જરૂરી છે àªàªŸàª²à«‡ કે કોષà«àªŸàª•à«‹, કતારો, આદેશો, પરિમાણો " "અને લકà«àª·à«àª¯à«‹. સીધૠરૂપરેખાંકન ઠછેલà«àª²àª¾ પà«àª¨:કà«àª°àª®àª¾àª‚કિત તરીકે ફકà«àª¤ વાપરવૠજોઇઠ" "જà«àª¯àª¾àª°à«‡ તે બીજા firewalld લકà«àª·àª£à«‹àª¨à«‡ વાપરવા શકà«àª¯ નથી." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "દરેક વિકલà«àªªàª¨à«€ ipv દલીલ ઠipv4 અથવા ipv6 અથવા eb હોવી જ જોઇàª. ipv4 સાથે તે " "iptables માટે હશે, ipv6 સાથે ip6tables માટે હશે અને eb સાથે ઇથરનેટ બà«àª°àª¿àªœ " "માટે હશે (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "નિયમો સાથે વાપરવા માટે વધારાની કતારો." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "કતાર ઉમેરો" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "કતારમાં ફેરફાર કરો" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "કતારને દૂર કરો" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "કતારો" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "પà«àª°àª¾àª§àª¾àª¨à«àª¯ સાથે કોષà«àªŸàª•માં કતાર માટે દલીલો સાથે નિયમને ઉમેરો." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "પà«àª°àª¾àª§àª¾àª¨à«àª¯ નિયમોને કà«àª°àª®àª¾àª‚કિત કરવા વાપરેલ છે. પà«àª°àª¾àª§àª¾àª¨à«àª¯ 0 નો મતલબ થાય કે " "કતારની ટોચ પર નિયમને ઉમેરો, ઉચà«àªš પà«àª°àª¾àª§àª¾àª¨à«àª¯ સાથે નિયમ આગળ ઉમેરાશે. àªàªœ " "પà«àª°àª¾àª§àª¾àª¨à«àª¯ સાથે નિયમો àªàªœ સà«àª¤àª° પર છે અને આ નિયમોનો કà«àª°àª® સà«àª§àª¾àª°à«‡àª² નથી અને બદલી " "શકાય છે. જો તમે ખાતરી કરવા માંગો તો નિયમ બીજા àªàª• પછી ઉમેરાશે, પહેલી માટે " "નીચા પà«àª°àª¾àª§àª¾àª¨à«àª¯àª¨à«‡ વાપરો અને નીચેનાં માટે ઉચà«àªš." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "નિયમને ઉમેરો" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "નિયમમાં ફેરફાર કરો" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "નિયમને દૂર કરો" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "નિયમો" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "પાસથà«àª°à« નિયમો ઠસીધૠfirewall મારફતે પસાર થયેલ છે અને ખાસ કતારોમાં સà«àª¥àª¿àª¤ " "થયેલ છે. બધા iptables, ip6tables અને ebtables વિકલà«àªªà«‹àª¨à«‡ વાપરી શકાય છે." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "મહેરબાની કરીને પાસથà«àª°à« નિયમો ઠફાયરવોલને ઇજા પહોંચાડે નહિં તે રીતે સાચવો." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "પાસથà«àª°à«àª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "પાસથà«àª°à«àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "પાસથà«àª°à«àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "પાસથà«àª°à«" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "લોકડાઉન લકà«àª·àª£ ઠfirewalld માટે વપરાશકરà«àª¤àª¾ અને કારà«àª¯àª•à«àª°àª® પોલિસીઓની આવૃતà«àª¤àª¿ " "છે. તે ફાયરવોલ માટે ફેરફારોને મરà«àª¯àª¾àª¦àª¿àª¤ કરે છે. લોકડાઉન વાઇટલીસà«àªŸ ઠઆદેશો, " "સંદરà«àª­à«‹, વપરાશકરà«àª¤àª¾ અને વપરાશકરà«àª¤àª¾ ids ને સમાવે છે." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "સંદરà«àª­ ઉમેરો" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "સંદરà«àª­àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "સંદરà«àª­ દૂર કરો" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "સંદરà«àª­" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "જો વાઇટલીસેટ પર આદેશ પà«àª°àªµà«‡àª¶ ઠàªàª¸à«àªŸà«àª°à«€àª‚ક '*' સાથે અંત થાય તો, પછી બધા આદેશ " "સાથે શરૂ થતા આદેશ વાકà«àª¯à«‹ ઠબંધબેસશે. જો '*' તà«àª¯àª¾àª‚ ન હોય તો ખાસ આદેશ સમાવતી " "દલીલો બંધબેસવી જ જોઇàª." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "આદેશ વાકà«àª¯àª¨à«‡ ઉમેરો" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "આદેશ વાકà«àª¯àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "આદેશ વાકà«àª¯àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "આદેશ વાકà«àª¯à«‹" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "વપરાશકરà«àª¤àª¾ નામો." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "વપરાશકરà«àª¤àª¾ નામને ઉમેરો" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "વપરાશકરà«àª¤àª¾àª¨àª¾àª®àª®àª¾àª‚ ફેરફાર કરો" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "વપરાશકરà«àª¤àª¾àª¨àª¾àª®àª¨à«‡ દૂર કરો" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "વપરાશકરà«àª¤àª¾ નામો" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "વપરાશકરà«àª¤àª¾ ids." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "વપરાશકરà«àª¤àª¾ Id ને ઉમેરો" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "વપરાશકરà«àª¤àª¾ Id માં ફેરફાર કરો" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "વપરાશકરà«àª¤àª¾ Id ને દૂર કરો" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "વપરાશકરà«àª¤àª¾ ids" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "સિસà«àªŸàª®àª¨à«‹ વરà«àª¤àª®àª¾àª¨ મૂળભૂત વિસà«àª¤àª¾àª°." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "પેનિક સà«àª¥àª¿àª¤àª¿:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "લોકડાઉન:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "મૂળભૂત વિસà«àª¤àª¾àª°:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "પોરà«àªŸ અને પà«àª°à«‹àªŸà«‹àª•ોલ" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "મહેરબાની કરીને પોરà«àªŸ અને પà«àª°à«‹àªŸà«‹àª•ોલને દાખલ કરો." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "સીધો નિયમ" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "મહેરબાની કરીને ipv અને કોષà«àªŸàª•ને પસંદ કરો, કતાર પà«àª°àª¾àª§àª¾àª¨à«àª¯ અને દલીલોને દાખલ " "કરો." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "પà«àª°àª¾àª§àª¾àª¨à«àª¯:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "મહેરબાની કરીને પà«àª°à«‹àªŸà«‹àª•ોલને દાખલ કરો." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "બીજા પà«àª°à«‹àªŸà«‹àª•ોલ:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "કિંમતી નિયમ" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "કિંમતી નિયમ દાખલ કરો." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "યજમાન માટે અથવા નેટવરà«àª• સફેદ અથવા કાળી યાદી ઘટકને નિષà«àª•à«àª°àª¿àª¯ કરે છે." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "સà«àª¤à«àª°à«‹àª¤:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "લકà«àª·à«àª¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "લૉગ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ઓડિટ:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 અને ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "ઉલટૠકરાયેલà«àª‚" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "આને સકà«àª°àª¿àª¯ કરવા માટે કà«àª°àª¿àª¯àª¾ 'રદ કરો' હોવી જોઇઠઅને પરિવાર પà«àª°àª•ાર 'ipv4' અથવા " "'ipv6' (બંને નહિ) હોવો જોઇàª." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "પà«àª°àª•ાર સાથે:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "મરà«àª¯àª¾àª¦àª¾ સાથે:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "પૂરà«àªµàª—:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "સà«àª¤àª°:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "ઘટક:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "કà«àª°àª¿àª¯àª¾:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "મૂળભૂત સેવા સà«àª¯à«‹àªœàª¨à«‹" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "મહેરબાની કરીને મૂળભૂત સેવા સà«àª¯à«‹àªœàª¨à«‹àª¨à«‡ રૂપરેખાંકિત કરો:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "મહેરબાની કરીને સેવાને પસંદ કરો." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "વપરાશકરà«àª¤àª¾ ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "મહેરબાની કરીને વપરાશકરà«àª¤àª¾ id ને દાખલ કરો." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "વપરાશકરà«àª¤àª¾ નામ" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "મહેરબાની કરીને વપરાશકરà«àª¤àª¾ નામને દાખલ કરો." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "મૂળભૂત વિસà«àª¤àª¾àª° સà«àª¯à«‹àªœàª¨à«‹" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "મહેરબાની કરીને મૂળભૂત વિસà«àª¤àª¾àª° સà«àª¯à«‹àªœàª¨à«‹àª¨à«‡ રૂપરેખાંકિત કરો:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "મૂળભૂત લકà«àª·à«àª¯" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "લકà«àª·à«àª¯:" firewalld-0.4.4.6/po/hi.po000066400000000000000000002006361320241217000152110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Rajesh Ranjan , 2009 # Rajesh Ranjan , 2004-2010,2014 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:28-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/firewalld/language/" "hi/)\n" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "फ़ायरवॉल à¤à¤ªà¥à¤²à¥‡à¤Ÿ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "फायरवाल" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "फायरवाल विनà¥à¤¯à¤¾à¤¸ " #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "अंतरफलक '%s' के लिठकà¥à¤·à¥‡à¤¤à¥à¤° चà¥à¤¨à¥‡à¤‚." #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "'%s' कनेकà¥à¤¶à¤¨ के लिठकà¥à¤·à¥‡à¤¤à¥à¤° चà¥à¤¨à¥‡à¤‚" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "शीलà¥à¤¡ अप/डाउन कà¥à¤·à¥‡à¤¤à¥à¤° विनà¥à¤¯à¤¸à¥à¤¤ करें" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "यहाठआप शीलà¥à¤¡ अप और शीलà¥à¤¡ डाउन कà¥à¤·à¥‡à¤¤à¥à¤° चà¥à¤¨ सकते हैं." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "यह फीचर उन लोगों के लिठउपयोगी है जो तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° अधिकतर उपयोग करते हैं. " "उपयोकà¥à¤¤à¤¾à¤“ं के लिà¤, वह कनेकà¥à¤¶à¤¨ का बदलता कà¥à¤·à¥‡à¤¤à¥à¤° है, यह सीमित उपयोग का हो सकता " "है." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° शीलà¥à¤¡ अप करता है:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° शीलà¥à¤¡ डाउन करता है:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "रकà¥à¤·à¤¾ करें" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "अधिसूचना सकà¥à¤°à¤¿à¤¯ करें" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "फ़ायरवॉल सेटिंग संपादित करें..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "कनेकà¥à¤¶à¤¨ के कà¥à¤·à¥‡à¤¤à¥à¤° बदलें..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "शीलà¥à¤¡ अप/डाउन कà¥à¤·à¥‡à¤¤à¥à¤° विनà¥à¤¯à¤¸à¥à¤¤ करें..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "सारे संजाल टà¥à¤°à¥ˆà¤«à¤¿à¤• रोकें" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "कनेकà¥à¤¶à¤¨" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "अंतरफलक" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "सà¥à¤°à¥‹à¤¤" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "पà¥à¤°à¤¾à¤§à¤¿à¤•रण विफल" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "अवैध नाम" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "नाम पहले से मौज़ूद है" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "फ़ायरवॉल डेमॉन में कोई कनेकà¥à¤¶à¤¨ नहीं" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "सभी संजाल टà¥à¤°à¥ˆà¤«à¤¿à¤• बà¥à¤²à¥‰à¤• किठगà¤." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤°: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¤¿à¤¯ है '{connection}' कनेकà¥à¤¶à¤¨ के लिठ'{interface}' " "अंतरफलक पर" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¤¿à¤¯ है '{interface}' अंतरफलक के लिà¤" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¤¿à¤¯ है {source} सà¥à¤°à¥‹à¤¤ के लिà¤" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "कोई सकà¥à¤°à¤¿à¤¯ कà¥à¤·à¥‡à¤¤à¥à¤° नहीं" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD में कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ हो गया." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD लॉसà¥à¤Ÿ में कनेकà¥à¤¶à¤¨." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD को फिर लोड किया गया." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° '%s' में बदला गया." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "संजाल टà¥à¤°à¥ˆà¤«à¤¿à¤• अब बà¥à¤²à¥‰à¤• नहीं हैं." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "सकà¥à¤°à¤¿à¤¯à¤•ृत" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "निषà¥à¤•à¥à¤°à¤¿à¤¯à¤•ृत" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' {activated_deactivated} है '{connection}' कनेकà¥à¤¶à¤¨ के लिठ" "'{interface}' अंतरफलक पर" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' {activated_deactivated} है '{interface}' अंतरफलक के लिà¤" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s' सकà¥à¤°à¤¿à¤¯ है अंतरफलक '%s' के लिà¤" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' {activated_deactivated} है '{source}' सà¥à¤°à¥‹à¤¤ के लिà¤" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s' सकà¥à¤°à¤¿à¤¯ है सà¥à¤°à¥‹à¤¤ '%s' के लिà¤" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "बदलाव लागू." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "संजाल कनेकà¥à¤¶à¤¨ '%s' दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥à¤•à¥à¤¤" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "सकà¥à¤°à¤¿à¤¯à¤•ृत" #: ../src/firewall-config:97 msgid "disabled" msgstr "निषà¥à¤•à¥à¤°à¤¿à¤¯à¤•ृत" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "चिहà¥à¤¨ लोड करने में असमरà¥à¤¥." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "रनटाइम" #: ../src/firewall-config:398 msgid "Permanent" msgstr "सà¥à¤¥à¤¾à¤¯à¥€" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "सेवा" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "पोरà¥à¤Ÿ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल" #: ../src/firewall-config:560 msgid "To Port" msgstr "पोरà¥à¤Ÿ में:" #: ../src/firewall-config:562 msgid "To Address" msgstr "पता में:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp पà¥à¤°à¤•ार" #: ../src/firewall-config:817 msgid "Family" msgstr "परिवार" #: ../src/firewall-config:819 msgid "Action" msgstr "कà¥à¤°à¤¿à¤¯à¤¾" #: ../src/firewall-config:821 msgid "Element" msgstr "ततà¥à¤µ" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "लॉग" #: ../src/firewall-config:829 msgid "Audit" msgstr "ऑडिट" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "चेतावनी" #: ../src/firewall-config:1612 msgid "Error" msgstr "तà¥à¤°à¥à¤Ÿà¤¿" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "सà¥à¤µà¥€à¤•ारें" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "असà¥à¤µà¥€à¤•ारें" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "छोड़ें" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "सीमित करें" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "सेवा" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "पोरà¥à¤Ÿ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "मà¥à¤–ौटा" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "सà¥à¤¤à¤°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "हाà¤" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s': सेवा '%s' उपलबà¥à¤§ नहीं है." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "हटाà¤à¤" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "अनदेखा करें" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s': ICMP पà¥à¤°à¤•ार '%s' उपलबà¥à¤§ नहीं है." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "बिलà¥à¤Ÿ इन कà¥à¤·à¥‡à¤¤à¥à¤°, नाम बदलना समरà¥à¤¥à¤¿à¤¤ नहीं." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "सेकेंड" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "मिनट" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "घंटा" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "दिन" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "आपातकाल" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "चेतावनी" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "गंभीर" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "तà¥à¤°à¥à¤Ÿà¤¿" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "चेतावनी" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "सूचना" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "सूचना" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "डिबग" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "किसी दूसरे तंतà¥à¤° में अगà¥à¤°à¤¸à¤¾à¤°à¤£ तभी उपयोगी है जब अंतरफलक छदà¥à¤® होता है.\n" "कà¥à¤¯à¤¾ आप इस कà¥à¤·à¥‡à¤¤à¥à¤° का वेष लेना चाहते हैं?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "बिलà¥à¤Ÿ इन सेवा, नाम बदलना समरà¥à¤¥à¤¿à¤¤ नहीं." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "बिलà¥à¤Ÿ इन icmp, नाम बदलना समरà¥à¤¥à¤¿à¤¤ नहीं." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "सà¥à¤°à¥‹à¤¤ '%s' के लिठकà¥à¤·à¥‡à¤¤à¥à¤° चà¥à¤¨à¥‡à¤‚." #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "पता" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "कृपया कमांड लाइन दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "कृपया संदरà¥à¤­ दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "कृपया नीचे दिठगठसूची से तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° चà¥à¤¨à¥‡à¤‚." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· शृंखला" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "कृपया ipv चà¥à¤¨à¥‡à¥‡à¤‚ और शृंखला नाम सारणी दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "शृंखला:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "कचà¥à¤šà¤¾" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "सà¥à¤°à¤•à¥à¤·à¤¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "सारणीः" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· पासथà¥à¤°à¥‚ नियम" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "कृपया ipv चà¥à¤¨à¥‡à¤‚ और args दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "पोरà¥à¤Ÿ अगà¥à¤°à¤¸à¤¾à¤°à¤£" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "अपनी जरूरत मà¥à¤¤à¤¾à¤¬à¤¿à¤• सà¥à¤°à¥‹à¤¤ व गंतवà¥à¤¯ चà¥à¤¨à¥‡à¤‚." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "पोरà¥à¤Ÿ / पोरà¥à¤Ÿ परिसर:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "आईपी पता:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "सà¥à¤°à¥‹à¤¤" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "गंतवà¥à¤¯" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "यदि आप सà¥à¤¥à¤¾à¤¨à¥€à¤¯ अगà¥à¤°à¤¸à¤¾à¤°à¤£ सकà¥à¤°à¤¿à¤¯ करते हैं, आपको à¤à¤• पोरà¥à¤Ÿ को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है. " "इस पोरà¥à¤Ÿ को सà¥à¤°à¥‹à¤¤ पोरà¥à¤Ÿ से भिनà¥à¤¨ होना है." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ अगà¥à¤°à¤¸à¤¾à¤°à¤£" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "दूसरे पोरà¥à¤Ÿ में अगà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ करें" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "बोलà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ अनिवारà¥à¤¯ हैं, सभी अनà¥à¤¯ वैकलà¥à¤ªà¤¿à¤• हैं." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "नाम:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "संसà¥à¤•रण:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "छोटा:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "वरà¥à¤£à¤¨à¤ƒ" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "परिवारः" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "बेस ICMP पà¥à¤°à¤•ार सेटिंग" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "कृपया बेस ICMP पà¥à¤°à¤•ार सेटिंग विनà¥à¤¯à¤¸à¥à¤¤ करें:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "à¤à¤• आईसीà¤à¤®à¤ªà¥€ पà¥à¤°à¤•ार चà¥à¤¨à¥‡à¤‚" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ जोड़ें" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "फ़ाइल (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "विकलà¥à¤ª (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld फिर लोड करें" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "फायरवॉल नियम फिर लोड करता है. मौजूदा सà¥à¤¥à¤¾à¤¯à¥€ विनà¥à¤¯à¤¾à¤¸ à¤à¤• नया रनटाइम विनà¥à¤¯à¤¾à¤¸ बन " "जाà¤à¤—ा. यानी सभी रनटाइम केवल तभी लोड होता है जब वे सà¥à¤¥à¤¾à¤¯à¥€ विनà¥à¤¯à¤¾à¤¸ में होते " "हैं." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "बदलें कि कौन से कà¥à¤·à¥‡à¤¤à¥à¤° में संजाल कनेकà¥à¤¶à¤¨ का अवयव है." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° बदलें" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "कनेकà¥à¤¶à¤¨ या अंतरफलक के लिठतयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° बदलें." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "पैनिक अवसà¥à¤¥à¤¾ का अरà¥à¤¥ है कि सभी इनकमिंग और आउटगोइंग पैकेट छोड़े जाते हैं." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "पैनिक अवसà¥à¤¥à¤¾" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "लॉकडाउन फ़ायरवॉल विनà¥à¤¯à¤¾à¤¸ लॉक करता है ताकि लॉकडाउन हà¥à¤µà¤¾à¤‡à¤Ÿà¤²à¤¿à¤¸à¥à¤Ÿ पर केवल " "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— इसे बदल सकें." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "लॉकडाउन" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "रनटाइम विनà¥à¤¯à¤¾à¤¸ सà¥à¤¥à¤¾à¤ˆ बनाà¤à¤" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "कारà¥à¤¯à¤¸à¤®à¤¯ से सà¥à¤¥à¤¾à¤ˆ" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "देखें (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP पà¥à¤°à¤•ार" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "सीधा विनà¥à¤¯à¤¾à¤¸" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "लॉकडाउन वà¥à¤¹à¤¾à¤‡à¤Ÿà¤²à¤¿à¤¸à¥à¤Ÿ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "मदद (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "विनà¥à¤¯à¤¾à¤¸:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "मौजूदा दृशà¥à¤¯ विनà¥à¤¯à¤¾à¤¸. रनटाइम विनà¥à¤¯à¤¾à¤¸ à¤à¤• वासà¥à¤¤à¤µà¤¿à¤• विनà¥à¤¯à¤¾à¤¸ है. सà¥à¤¥à¤¾à¤¯à¥€ विनà¥à¤¯à¤¾à¤¸ " "सेवा या तंतà¥à¤° रिलोड या फिर आरंभ करने के बाद सकà¥à¤°à¤¿à¤¯ होगा." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld कà¥à¤·à¥‡à¤¤à¥à¤° संजाल कनेकà¥à¤¶à¤¨, अंतरफलक, और कà¥à¤·à¥‡à¤¤à¥à¤° से जà¥à¤¡à¤¼à¤¾ सà¥à¤°à¥‹à¤¤ पता के " "लिठभरोसे का सà¥à¤¤à¤° परिभाषित करता है. यह कà¥à¤·à¥‡à¤¤à¥à¤° सेवा, पोरà¥à¤Ÿ, पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल, " "पà¥à¤°à¤šà¥à¤›à¤¨à¥à¤¨, पोरà¥à¤Ÿ/पैकेट अगà¥à¤°à¤¸à¤¾à¤°à¤£, icmp फिलà¥à¤Ÿà¤° और रिच नियम को à¤à¤•ीकृत करता है. " "यह कà¥à¤·à¥‡à¤¤à¥à¤° अंतरफलक और सà¥à¤°à¥‹à¤¤ पता से बंधा रहता है." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° जोड़ें" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° संपादित करें" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° हटाà¤à¤" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤° लोड करें" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "यहां आप परिभाषित कर सकते हैं कि कौन सी सेवाà¤à¤ इस कà¥à¤·à¥‡à¤¤à¥à¤° के लिठविशà¥à¤µà¤¸à¤¨à¥€à¤¯ " "हैं. विशà¥à¤µà¤¸à¤¨à¥€à¤¯ सेवाओं को सभी मेजबान या संजाल से अभिगम योगà¥à¤¯ होता है जो मशीन " "तक इस कà¥à¤·à¥‡à¤¤à¥à¤° में कनेकà¥à¤¶à¤¨, अंतरफलक और सà¥à¤°à¥‹à¤¤ बाउंड से पहà¥à¤à¤š सकता है." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "सेवाà¤à¤" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "अतिरिकà¥à¤¤ पोरà¥à¤Ÿ व पोरà¥à¤Ÿ परिसर को जोड़ें, जो सभी मेजबान या संजाल के लिठअभिगम " "योगà¥à¤¯ होना चाहिठदो मशीन से कनेकà¥à¤Ÿ कर सकता है." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "पोरà¥à¤Ÿ जोड़ें" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "पोरà¥à¤Ÿ संपादित करें" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "पोरà¥à¤Ÿ हटाà¤à¤" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "पोरà¥à¤Ÿ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "मà¥à¤–ौटा आपको à¤à¤• मेजबान या रॉटर सेटअप करने की सà¥à¤µà¥€à¤•ृति देता है जो इंटरनेट से " "अपने सà¥à¤¥à¤¾à¤¨à¥€à¤¯ संजाल को कनेकà¥à¤Ÿ करता है. आपका सà¥à¤¥à¤¾à¤¨à¥€à¤¯ संजाल दृशà¥à¤¯ नहीं होगा और " "इंटरनेट के लिठà¤à¤• मेजबान के रूप में पà¥à¤°à¤•ट होगा. मà¥à¤–ौटा सिरà¥à¤« IPv4 है." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "पà¥à¤°à¤šà¥à¤›à¤¨à¥à¤¨ कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "यदि आप पà¥à¤°à¤šà¥à¤›à¤¨à¥à¤¨ सकà¥à¤°à¤¿à¤¯ कर रहे हैं, IP को आपको IPv4 के लिठसकà¥à¤°à¤¿à¤¯ किया जाà¤à¤—ा." "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "मà¥à¤–ौटा" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "à¤à¤• पोरà¥à¤Ÿ से दूसरे से पोरà¥à¤Ÿ को अगà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ करने के लिठपà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ जोड़ें सà¥à¤¥à¤¾à¤¨à¥€à¤¯ " "सिसà¥à¤Ÿà¤® पर या सà¥à¤¥à¤¾à¤¨à¥€à¤¯ सिसà¥à¤Ÿà¤® से दूसरे सिसà¥à¤Ÿà¤® में. दूसरे सिसà¥à¤Ÿà¤® में अगà¥à¤°à¤¸à¤¾à¤°à¤£ " "सिरà¥à¤« तभी उपयोगी है यदि अंतरफलक को मà¥à¤–ौटा दिया जाता है. पोरà¥à¤Ÿ अगà¥à¤°à¤¸à¤¾à¤°à¤£ सिरà¥à¤« " "IPv4 है." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "फॉरवॉरà¥à¤¡ पोरà¥à¤Ÿ जोड़ें" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "फॉरवॉरà¥à¤¡ पोरà¥à¤Ÿ संपादित करें" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "फॉरवॉरà¥à¤¡ पोरà¥à¤Ÿ हटाà¤à¤" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "इंटरनेट कंटà¥à¤°à¥‹à¤² मेसेज पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल (ICMP) को तà¥à¤°à¥à¤Ÿà¤¿ संदेश भेजने के लिठपà¥à¤°à¤¯à¥à¤•à¥à¤¤ " "किया जाता है संजालित कंपà¥à¤¯à¥‚टर के बीच, लेकिन सूचनातà¥à¤®à¤• संदेश के लिठअतिरिकà¥à¤¤ " "रूप से जैसे कि पिंग आगà¥à¤°à¤¹ और जवाब के लिà¤." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "सूची में ICMP पà¥à¤°à¤•ार चिहà¥à¤¨à¤¿à¤¤ करें, जो असà¥à¤µà¥€à¤•ृत किया जाना चाहिà¤. सभी दूसरे " "ICMP पà¥à¤°à¤•ार को फायरवाल भेज देने की सà¥à¤µà¥€à¤•ृति है. तयशà¥à¤¦à¤¾ में कोई सीमा नहीं है." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP फिलà¥à¤Ÿà¤°" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "यहाठआप कà¥à¤·à¥‡à¤¤à¥à¤° से जà¥à¤¡à¤¼à¤¾ रिच भाषा नियम सेट कर सकते हैं." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "रिच नियम जोड़ें" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "रिच नियम का संपादन करें" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "रिच नियम मिटाà¤à¤" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "रिच नियम" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "कà¥à¤·à¥‡à¤¤à¥à¤° में अंतरफलक बाइंड करने के लिठपà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ बाइंड करें. यदि अंतरफलक किसी " "कनेकà¥à¤¶à¤¨ के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤— किया जाता है, तो इस कà¥à¤·à¥‡à¤¤à¥à¤° को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कà¥à¤·à¥‡à¤¤à¥à¤° " "में कनेकà¥à¤¶à¤¨ में सेट किया जाà¤à¤—ा." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "अंतरफलक जोड़ें" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "अंतरफलक का संपादन करें" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "अंतरफलक हटाà¤à¤" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ जोड़ें" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "शà¥à¤°à¥‹à¤¤ संपादित करें" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "सà¥à¤°à¥‹à¤¤ हटाà¤à¤" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "firewalld सेवा पोरà¥à¤Ÿ, पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल, मॉडà¥à¤¯à¥‚ल, और गंतवà¥à¤¯ पता का संयोग है." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "सेवा जोड़ें" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "सेवा का संपादन करें" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "सेवा हटाà¤à¤" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "सेवा तयशà¥à¤¦à¤¾ लोड करें" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ संपादित करें" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ हटाà¤à¤" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "मॉडà¥à¤¯à¥‚ल" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "यदि आप गंतवà¥à¤¯ पता को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करते हैं, तो सेवा पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गंतवà¥à¤¯ पता और " "पà¥à¤°à¤•ार में सीमित होगी. यदि दोनों पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ रिकà¥à¤¤ है, तो कोई सीमा नहीं है." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "सेवा को सà¥à¤¥à¤¾à¤¯à¥€ विनà¥à¤¯à¤¾à¤¸ दृशà¥à¤¯ में केवल बदला जा सकता है. सेवा का रनटाइम " "विनà¥à¤¯à¤¾à¤¸ फिकà¥à¤¸à¥à¤¡ है." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmptype इंटरनेट कंटà¥à¤°à¥‹à¤² मैसेज पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल (ICMP) पà¥à¤°à¤•ार के लिठ" "firewalld के लिठसूचना पà¥à¤°à¤¦à¤¾à¤¨ करता है." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार जोड़ें" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार संपादित करें" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार हटाà¤à¤" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP पà¥à¤°à¤•ार तयशà¥à¤¦à¤¾ लोड करें" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करें कि यह ICMP पà¥à¤°à¤•ार IPv4 और/या IPv6 के लिठउपलबà¥à¤§ है." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP पà¥à¤°à¤•ार को सà¥à¤¥à¤¾à¤¯à¥€ विनà¥à¤¯à¤¾à¤¸ दृशà¥à¤¯ में केवल बदला जा सकता है. ICMP पà¥à¤°à¤•ार का " "रनटाइम विनà¥à¤¯à¤¾à¤¸ फिकà¥à¤¸à¥à¤¡ है." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "सीधा विनà¥à¤¯à¤¾à¤¸ फायरवॉल में सीधा पहà¥à¤à¤š देता है. ये विकलà¥à¤ª मौलिक iptables संबोध, " "यानी सारणी, शृंखला, कमांड, पैरामीटर और लकà¥à¤·à¥à¤¯ को उपयोकà¥à¤¤à¤¾ जाने इसकी जरूरत " "बताता है. सीधा विनà¥à¤¯à¤¾à¤¸ केवल अंतिम हल के रूप में पà¥à¤°à¤¯à¥‹à¤— किया जा सकता है जबकि " "दूसरे फ़ायरवॉल किठफीचर संभव नहीं हैं." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "हर विकलà¥à¤ª का ipv तरà¥à¤• को ipv4 या ipv6 या eb होना चाहिà¤. ipv4 के साथ, यह " "iptables के लिठहोगा, ip6tables के लिठipv6 के साथ और इथरनेट बà¥à¤°à¤¿à¤œ के लिठeb " "(ebtables) के साथ." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "नियम के साथ उपयोग के लिठअतिरिकà¥à¤¤ शृंखला." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "शृंखला जोड़ें" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "शृंखला संपादित करें" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "शृंखला हटाà¤à¤" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "शृंखला" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "args वितरà¥à¤• के साथ कोई नियम शृंखला में जोड़ें पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता के साथ à¤à¤• सारणी में." "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता नियम को आदेश देने के लिठपà¥à¤°à¤¯à¥‹à¤— किया जा सकता है. पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता 0 का " "अरà¥à¤¥ है शृंखला के शीरà¥à¤· पर नियम को जोड़ना, उचà¥à¤šà¤¤à¤° पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता के साथ नियम फिर " "और जोड़े जाà¤à¤à¤—े. समान पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता के साथ नियम समान सà¥à¤¤à¤° पर हैं और इन नियमों " "का कà¥à¤°à¤® सà¥à¤¥à¤¿à¤° नहीं है और बदल सकता है. यदि आप पकà¥à¤•ा करना चाहते हैं कि कोई " "नियम किसी के बाद जोड़े जाà¤à¤à¤—े, पहले कम पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता का जोड़ें कि à¤à¤• नियम à¤à¤• के " "बाद à¤à¤• जोड़े जाà¤à¤à¤—े, पहले से कम पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता का उपयोग करें और निमà¥à¤¨à¤²à¤¿à¤–ित के " "लिठउचà¥à¤šà¤¤à¤° जोड़े जाà¤à¤à¤—े." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "नियम जोड़ें" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "नियम का संपादन करें" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "नियम मिटाà¤à¤" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "नियम " #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "पासथà¥à¤°à¥‚ नियम सीधे फायरवॉल के दà¥à¤µà¤¾à¤°à¤¾ भेजा जा सकता है और विशेष शृंखला में " "सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ नहीं है. सभी iptables, ip6tables और ebtables विकलà¥à¤ª का उपयोग किया जा " "सकता है." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "पासथà¥à¤°à¥‚ नियम के साथ कृपया धà¥à¤¯à¤¾à¤¨ रखें ताकि फ़ायरवॉल का नà¥à¤•सान न हो." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "पासथà¥à¤°à¥‚ जोड़ें" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "पासथà¥à¤°à¥‚ संपादित करें" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "पासथà¥à¤°à¥‚ हटाà¤à¤" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "पासथà¥à¤°à¥‚" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "lockdown विशेषता उपयोकà¥à¤¤à¤¾ और अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नीति के हलà¥à¤•े संसà¥à¤•रण के लिठ" "firewalld है. यह फ़ायरवॉल में परिवरà¥à¤¤à¤¨ परिसीमित करता है. लॉकडाउन हà¥à¤µà¤¾à¤‡à¤Ÿà¤²à¤¿à¤¸à¥à¤š " "में कमांड, संदरà¥à¤­, उपयोकà¥à¤¤à¤¾ और उपयोकà¥à¤¤à¤¾ आईडी समाहित है." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "संदरà¥à¤­ जोड़ें" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "संदरà¥à¤­ संपादित करें" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "संदरà¥à¤­ हटाà¤à¤" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "संदरà¥à¤­" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "यदि हà¥à¤µà¤¾à¤‡à¤Ÿà¤²à¤¿à¤¸à¥à¤Ÿ पर किसी कमांड पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ का अंत तारांकन '*' से होता है, तो सभी " "कमांड लाइन जो कमांड से आरंभ होता है मेल खाà¤à¤—ा. यदि '*' वहाठनहीं है, तो " "निरपेकà¥à¤· कमांड अंतरà¥à¤¨à¤¿à¤µà¥‡à¤¶à¤¿à¤¤ तरà¥à¤• को जरूर मेल खाना चाहिà¤." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "कमांड लाइन जोड़ें" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "कमांड लाइन संपादित करें" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "कमांड लाइन हटाà¤à¤" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "कमांड लाइन" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "उपयोकà¥à¤¤à¤¾ नाम." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "उपयोकà¥à¤¤à¤¾ नाम जोड़ें" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "उपयोकà¥à¤¤à¤¾ नाम का संपादन करें" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "उपयोकà¥à¤¤à¤¾ नाम हटाà¤à¤" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "उपयोकà¥à¤¤à¤¾ नाम" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "उपयोकà¥à¤¤à¤¾ आईडी" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "उपयोकà¥à¤¤à¤¾ आईडी जोड़ें" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "उपयोकà¥à¤¤à¤¾ आईडी संपादित करें" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "उपयोकà¥à¤¤à¤¾ आईडी निकालें" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "उपयोकà¥à¤¤à¤¾ आईडी" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "तंतà¥à¤° का मौजूदा तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "पैनिक अवसà¥à¤¥à¤¾:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "लॉकडाउन:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "तयशà¥à¤¦à¤¾ कà¥à¤·à¥‡à¤¤à¥à¤°:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "पोरà¥à¤Ÿ और पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "कृपया कोई पोरà¥à¤Ÿ और पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· नियम" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "कृपया ipv और सारणी, शृंखला पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता चà¥à¤¨à¥‡à¤‚ और args दरà¥à¤œ करें." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "à¤à¤• वैध पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल दरà¥à¤œ कीजिà¤." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "अनà¥à¤¯ पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "रिच नियम" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "कृपया कोई रिच नियम दरà¥à¤œ कीजिà¤." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "मेजबान या संजाल शà¥à¤µà¥‡à¤¤ या बà¥à¤²à¥ˆà¤•लिसà¥à¤Ÿà¤¿à¤‚ग के लिठततà¥à¤µ को निषà¥à¤•à¥à¤°à¤¿à¤¯ करें." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "सà¥à¤°à¥‹à¤¤:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "गंतवà¥à¤¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "लॉग:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ऑडिट:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 और ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "उलà¥à¤Ÿà¤¾" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "इसे सकà¥à¤°à¤¿à¤¯ करने के लिठकà¥à¤°à¤¿à¤¯à¤¾ को 'असà¥à¤µà¥€à¤•ार' करने की जरूरत है और फैमिली को " "'ipv4' या 'ipv6' (दोनों नहीं) होना चाहिà¤." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "पà¥à¤°à¤•ार के साथ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "सीमा के साथ:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "पà¥à¤°à¥€à¤«à¤¼à¤¿à¤•à¥à¤¸:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "सà¥à¤¤à¤°à¤ƒ" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "ततà¥à¤µ:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "कà¥à¤°à¤¿à¤¯à¤¾:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "आधार सेवा सेटिंगà¥à¤¸" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "कृपया बेस सेवा सेटिंगà¥à¤¸ विनà¥à¤¯à¤¸à¥à¤¤ कीजिà¤:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "कृपया कोई सेवा चà¥à¤¨à¥‡à¤‚." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "उपयोकà¥à¤¤à¤¾ ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "कृपया उपयोकà¥à¤¤à¤¾ आईडी दाखिल करें." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "उपयोकà¥à¤¤à¤¾ नाम" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "कृपया उपयोकà¥à¤¤à¤¾ नाम दाखिल करें." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "आधार कà¥à¤·à¥‡à¤¤à¥à¤° सेटिंगà¥à¤¸" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "कृपया बेस कà¥à¤·à¥‡à¤¤à¥à¤° सेटिंगà¥à¤¸ विनà¥à¤¯à¤¸à¥à¤¤ कीजिà¤:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "तयशà¥à¤¦à¤¾ लकà¥à¤·à¥à¤¯" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "लकà¥à¤·à¥à¤¯à¤ƒ" firewalld-0.4.4.6/po/hu.po000066400000000000000000001671641320241217000152350ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Arpad Biro , 2004,2006,2008 # teknos.ferenc , 2013 # Gabor Mako , 2009 # Gábor Szentiványi , 2006 # István Zoltán Nagy , 2009 # Kovács Tamás , 2009 # Gabor Mako , 2009 # István Zoltán Nagy , 2009 # Nikolas Slivka , 2010 # Szentiványi Gábor , 2006 # Tamas Szanto , 2003 # teknos.ferenc , 2013 # teknos.ferenc , 2013 # Zoltan Hoppár , 2012-2013 # Bendegúz Gyönki , 2017. #zanata # Eric Garver , 2017. #zanata # Meskó Balázs , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-10-11 02:01-0400\n" "Last-Translator: Eric Garver \n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/firewalld/" "language/hu/)\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Tűzfal kisalkalmazás" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Tűzfal" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Tűzfal beállítások" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "tűzfal;hálózat;biztonság;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Zóna kiválasztása a(z) „%s†csatolóhoz" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Alapértelmezett zóna" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Zóna kiválasztása a(z) „%s†kapcsolathoz" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" "Nem sikerült kiválasztani a(z) {zone} zónát a következÅ‘ kapcsolatnál: " "{connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Zóna kiválasztása a(z) „%s†forráshoz" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "A pajzsok fent/lent zónák beállítása" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Itt kiválaszthatja a használandó zónákat a „Pajzsok fent†és a „Pajzsok " "lent†funkcióhoz." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Ez a funkció azoknak az embereknek hasznos, akik fÅ‘leg az alapértelmezett " "zónákat használják. Azoknál a felhasználóknál, akik megváltoztatják a " "kapcsolatok zónáit, korlátozott használatot jelenthet." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "„Pajzsok fent†zóna:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Visszaállítás az alapértelmezettre" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "„Pajzsok lent†zóna:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "A(z) %s névjegye" #: ../src/firewall-applet:386 msgid "Authors" msgstr "SzerzÅ‘k" #: ../src/firewall-applet:396 msgid "License" msgstr "Licenc" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Pajzsok fent" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Értesítések engedélyezése" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Tűzfalbeállítások szerkesztése…" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Kapcsolatok zónáinak megváltoztatása…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "A „Pajzsok fent/lent†zónák beállítása…" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Összes hálózati forgalom blokkolása" #: ../src/firewall-applet:492 msgid "About" msgstr "Névjegy" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Kapcsolatok" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Csatolók" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Források" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "A hitelesítés meghiúsult." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Érvénytelen név" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "A név már létezik" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (zóna: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (alapértelmezett zóna: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Nem sikerült lekérni a kapcsolatokat a NetworkManager programból" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Nem érhetÅ‘k el NetworkManager importok" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Nincs kapcsolat a tűzfaldémonnal" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Az összes hálózati forgalom blokkolva van." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Alapértelmezett zóna: „%sâ€" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "A(z) „{default_zone}†alapértelmezett zóna aktív a(z) „{connection}†" "kapcsolatnál ezen a csatolón: „{interface}â€" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "A(z) „{zone}†zóna aktív a(z) „{connection}†kapcsolatnál ezen a csatolón: " "„{interface}â€" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "A(z) „{zone}†zóna aktív a(z) „{interface}†csatolón" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "A(z) „{zone}†zóna aktív a(z) {source} forrásnál" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Nincsenek aktív zónák." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "A FirewallD kapcsolat felépítve." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "A FirewallD kapcsolat elveszett." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "A FirewallD újra lett töltve." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Az alapértelmezett zóna megváltoztatva erre: „%sâ€." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "A hálózati forgalom többé már nincs blokkolva." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "bekapcsolva" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "kikapcsolva" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "A(z) „{default_zone}†alapértelmezett zóna {activated_deactivated} a(z) " "„{connection}†kapcsolatnál ezen a csatolón: „{interface}â€" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "A(z) „{zone}†zóna {activated_deactivated} a(z) „{connection}†kapcsolatnál " "ezen a csatolón: „{interface}â€" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "A(z) „{zone}†zóna {activated_deactivated} ezen a csatolón: „{interface}â€" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "A(z) „%s†zóna bekapcsolva ezen a csatolón: „%sâ€" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "A(z) „{zone}†zóna {activated_deactivated} a(z) „{source}†forrásnál" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "A(z) „%s†zóna bekapcsolva a(z) „%s†forrásnál" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "A FirewallD kapcsolat felépítve." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Kapcsolódási kísérlet a FirewallD-hez, várakozás…" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "A változások alkalmazva." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "A(z) „%s†hálózati kapcsolat által használt" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "A(z) „%s†hálózati kapcsolat által használt alapértelmezett zóna" #: ../src/firewall-config:96 msgid "enabled" msgstr "engedélyezve" #: ../src/firewall-config:97 msgid "disabled" msgstr "letiltva" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Az ikonok betöltése meghiúsult." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Futási idÅ‘" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Ãllandó" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Szolgáltatás" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoll" #: ../src/firewall-config:560 msgid "To Port" msgstr "Célport" #: ../src/firewall-config:562 msgid "To Address" msgstr "Célcím" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Kötések" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Bejegyzés" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp típus" #: ../src/firewall-config:817 msgid "Family" msgstr "Család" #: ../src/firewall-config:819 msgid "Action" msgstr "Művelet" #: ../src/firewall-config:821 msgid "Element" msgstr "Elem" #: ../src/firewall-config:823 msgid "Src" msgstr "Forrás" #: ../src/firewall-config:825 msgid "Dest" msgstr "Cél" #: ../src/firewall-config:827 msgid "log" msgstr "napló" #: ../src/firewall-config:829 msgid "Audit" msgstr "Felülvizsgálat" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Figyelmeztetés" #: ../src/firewall-config:1612 msgid "Error" msgstr "Hiba" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "elfogadás" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "elutasítás" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "eldobás" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "jelölés" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "korlát" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "szolgáltatás" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokoll" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maszkolás" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "forrásport" #: ../src/firewall-config:2071 msgid "level" msgstr "szint" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "igen" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zóna" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Alapértelmezett zóna: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zóna: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "„%s†zóna: a(z) „%s†szolgáltatás nem érhetÅ‘ el." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Eltávolítás" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "MellÅ‘zés" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "„%s†zóna: a(z) „%s†ICMP-típus nem érhetÅ‘ el." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Beépített zóna, az átnevezés nem támogatott." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "másodperc" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "perc" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "óra" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "nap" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "vészjelzés" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "riasztás" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritikus" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "hiba" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "figyelmeztetés" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "értesítés" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "Információ" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "hibakeresés" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-blokk" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "port-továbbítás" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "A továbbítás egy másik rendszerbe csak akkor hasznos, ha a csatoló maszkolva " "van.\n" "Szeretné maszkolni ezt a zónát?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Beépített szolgáltatás, az átnevezés nem támogatott." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Adjon meg egy IPv4-címet cím[/maszk] formában." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "A maszk lehet hálózati maszk vagy szám." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Adjon meg egy IPv6-címet cím[/maszk] formában." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "A maszk egy szám." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Adjon meg egy IPv4 vagy IPv6-címet cím[/maszk] formában." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "A maszk lehet hálózati maszk vagy szám az IPv4 esetén.\n" "A maszk egy szám az IPv6-nál." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Beépített ipset, az átnevezés nem támogatott." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Válasszon egy fájlt" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Szövegfájlok" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Összes fájl" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Összes" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Beépített segítÅ‘, az átnevezés nem támogatott." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Beépített icmp, az átnevezés nem támogatott." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Nem sikerült a(z) „%s†fájlt olvasni: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Zóna kiválasztása a(z) „%s†forráshoz" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Cím" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatikus segítÅ‘k" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Válassza ki az automatikus segítÅ‘k értékét:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Parancssor" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Adja meg a parancssort." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Környezet" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Adja meg a környezetet." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Válasszon alapértelmezett zónát az alábbi listából." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Közvetlen lánc" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Válasszon ipv-t és táblát, majd adja meg a lánc nevét." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Lánc:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "nyers" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "biztonság" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tábla:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Közvetlen áteresztÅ‘ szabály" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Válasszon ipv-t, majd adja meg az argumentumokat." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumentumok:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Port továbbítás" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Válassza ki a forrás és cél lehetÅ‘ségeket az igényei szerint." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / porttartomány:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP-cím:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokoll:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Forrás" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Cél" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Ha engedélyezi a helyi továbbítást, akkor meg kell adnia egy portot. Ennek a " "portnak különbözÅ‘nek kell lennie a forrásporttól." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Helyi továbbítás" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Továbbítás egy másik portra" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Alap segítÅ‘ beállítások" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Ãllítsa be az alap segítÅ‘ beállításokat:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "A vastag bejegyzések kötelezÅ‘k, az összes többi csak választható." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Név:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Verzió:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Rövid:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Leírás:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Család:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Modul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "SegítÅ‘" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Válasszon egy segítÅ‘t:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Alap ICMP-típus beállítások" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Ãllítsa be az alap ICMP-típus beállításokat:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-típus" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Válasszon egy ICMP-típust" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Bejegyzés hozzáadása" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Bejegyzések hozzáadása fájlból" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Kijelölt bejegyzés eltávolítása" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Összes bejegyzés eltávolítása" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Bejegyzések eltávolítása fájlból" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fájl" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "B_eállítások" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld újratöltése" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Újratölti a tűzfalszabályokat. A jelenlegi állandó beállítás válik majd az " "új futásidejű beállítássá, azaz minden kizárólag futásidejű változtatás " "megvalósul egészen az újratöltésig, amikor is elvész, kivéve ha az nem " "található meg az állandó beállítások között is." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" "Annak megváltoztatása, hogy mely zóna melyik hálózati kapcsolathoz tartozik." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Alapértelmezett zóna megváltoztatása" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" "Alapértelmezett zóna megváltoztatása a kapcsolatoknál vagy csatolóknál." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Megtagadottak naplójának megváltoztatása" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "A LogDenied értékének megváltoztatása." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Automatikus segítÅ‘ hozzárendelés megváltoztatása" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Automatikus segítÅ‘ hozzárendelés beállításának megváltoztatása." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "A pánik mód azt jelenti, hogy az összes bejövÅ‘ és kimenÅ‘ csomag eldobásra " "kerül." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Pánik mód" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "A zárolás lezárja a tűzfal beállítását, így csak azok az alkalmazások " "képesek megváltoztatni azt, amelyek rajta vannak a fehér listán." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Zárolás" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Legyen a futásidejű beállítás állandó" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "FutásidejűbÅ‘l állandóvá" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Nézet" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP-típusok" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "SegítÅ‘k" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Közvetlen beállítás" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Zárolási fehér lista" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktív kötések" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Súgó" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Kötés zónájának megváltoztatása" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "A zónákhoz tartozó kapcsolatok, csatolók és források aktív futásidejű " "kötéseinek elrejtése" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "A zónákhoz tartozó kapcsolatok, csatolók és források aktív futásidejű " "kötéseinek megjelenítése" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Beállítás:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Jelenleg látható beállítás. A futásidejű beállítás a jelenleg aktív " "beállítás. Az állandó beállítás akkor lesz aktív, ha a szolgáltatás vagy a " "rendszer újratölt vagy újraindul." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Egy firewalld határozza meg a bizalmi szintet a zónához kötött hálózati " "kapcsolatoknál, csatolóknál és forráscímeknél. A zóna egyesíti " "szolgáltatásokat, portokat, protokollokat, maszkolást, portok/csomagok " "továbbítását, ICMP-szűrÅ‘ket és a gazdag szabályokat. A zóna köthetÅ‘ " "csatolókhoz és forráscímekhez." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Zóna hozzáadása" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Zóna szerkesztése" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Zóna eltávolítása" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Zóna alapértékeinek betöltése" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Itt meghatározhatja meg, hogy mely szolgáltatások megbízhatóak a zónában. A " "megbízható szolgáltatások elérhetÅ‘ek az olyan összes géprÅ‘l és hálózatból, " "amelyeket elérhet a gép az ezzel a zónával összekötött kapcsolatokból, " "csatolókból és forrásokból." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Szolgáltatások" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "További portok vagy porttartományok hozzáadása, melyeknek elérhetÅ‘knek kell " "lenniük az összes olyan gépnél vagy hálózatnál, amelyek a géphez " "kapcsolódhatnak." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Port hozzáadása" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Port szerkesztése" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Port eltávolítása" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portok" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Protokollok hozzáadása, amelyeknek elérhetÅ‘knek kell lenniük az összes " "gépnél vagy hálózatnál." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Protokoll hozzáadása" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Protokoll szerkesztése" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Protokoll eltávolítása" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokollok" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "További forrásportok vagy porttartományok hozzáadása, melyeknek elérhetÅ‘knek " "kell lenniük az összes olyan gépnél vagy hálózatnál, amelyek a géphez " "kapcsolódhatnak." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Forrásportok" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "A maszkolás lehetÅ‘vé teszi egy olyan gép vagy útválasztó beállítását, amely " "összekapcsolja a helyi hálózatot az internettel. A helyi hálózat nem lesz " "látható, és a gépek egyetlen címként jelenik meg az interneten. A maszkolás " "csak IPv4 esetén használható." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zóna maszkolása" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Ha engedélyezi a maszkolást, akkor az IP-továbbítás engedélyezve lesz az " "IPv4 hálózatainál." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maszkolás" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Bejegyzések hozzáadása portok továbbításához vagy egy portról egy másikra a " "helyi rendszeren, vagy a helyi rendszerrÅ‘l egy másik rendszerre. Egy másik " "rendszerre történÅ‘ továbbítás csak akkor hasznos, ha a csatoló maszkolva van." " A port továbbítás csak IPv4 esetén használható." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Port továbbítás hozzáadása" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Port továbbítás szerkesztése" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Port továbbítás eltávolítása" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Az Internet Control Message Protocol (ICMP) általában hálózatba kötött " "számítógépek közti hibaüzenetek küldésére használható, de emellett " "tájékoztató üzenetekhez is használják (például ping kérések és válaszok)." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Az ICMP-típusok megjelölése a listában, melyeket el kell utasítani. Az " "összes többi ICMP-típus engedélyezett, hogy átmenjen a tűzfalon. " "Alapértelmezetten nincs korlátozás." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Ha a fordított szűrÅ‘ engedélyezve van, akkor a megjelölt ICMP-bejegyzések " "lesznek elfogadva, és a többi lesz elutasítva. A DROP céllal rendelkezÅ‘ " "zónában ezek el lesznek dobva." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "SzűrÅ‘ megfordítása" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP-szűrÅ‘" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Itt beállíthat be gazdag nyelvi szabályokat a zónához." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Gazdag szabály hozzáadása" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Gazdag szabály szerkesztése" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Gazdag szabály eltávolítása" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Gazdag szabályok" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Bejegyzések hozzáadása a csatolók zónához való kötéséhez. Ha a csatolót " "használni fogja egy kapcsolat, akkor zóna be lesz állítva a kapcsolatban " "meghatározott zónához." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Csatoló hozzáadása" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Csatoló szerkesztése" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Csatoló eltávolítása" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Bejegyzések hozzáadása forráscímek vagy területek zónához való kötéséhez. " "Köthet egy MAC forráscímhez is, de korlátozásokkal. A port továbbítás és a " "maszkolás nem fog működni MAC források kötéseinél." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Forrás hozzáadása" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Forrás szerkesztése" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Forrás eltávolítása" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zónák" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Egy firewalld szolgáltatás portok, protokollok, modulok és célcímek " "kombinációja." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Szolgáltatás hozzáadása" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Szolgáltatás szerkesztése" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Szolgáltatás eltávolítása" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Szolgáltatás alapértékeinek betöltése" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "További portok vagy porttartományok hozzáadása, melyeknek elérhetÅ‘knek kell " "lenniük az összes gépnél vagy hálózatnál." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Bejegyzés szerkesztése" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Bejegyzés eltávolítása" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "További forrásportok vagy porttartományok hozzáadása, melyeknek elérhetÅ‘knek " "kell lenniük az összes gépnél vagy hálózatnál." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Forrásport" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter segítÅ‘ modulok szükségesek néhány szolgáltatásnál." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modulok" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Ha megad célcímeket, akkor a szolgáltatás bejegyzése korlátozva lesz a " "célcímre és típusra. Ha mindkét bejegyzés üres, akkor nincs korlátozás." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "A szolgáltatások csak az állandó beállítások nézetében változtathatók meg. A " "szolgáltatások futásidejű beállításai rögzítettek." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Egy IPSet használható fehér vagy fekete listák létrehozásához, valamint " "képes például IP-címeket, portszámokat vagy MAC-címeket tárolni." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "IPSet hozzáadása" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "IPSet szerkesztése" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "IPSet eltávolítása" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "IPSet alapértékeinek betöltése" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Az IPSet bejegyzései. Csak azoknak az ipset-eknek a bejegyzéseit lesz képes " "megnézni, amelyek nem használják az idÅ‘korlát beállítást, valamint csak " "azokat a bejegyzéseket, amelyek a firewalld adott hozzá. Azok a bejegyzések, " "amelyek közvetlenül az ipset paranccsal adtak hozzá, nem lesznek itt " "felsorolva." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Ez az IPSet használja az idÅ‘korlát beállítást, ennélfogva nem láthatók itt a " "bejegyzések. A bejegyzésekrÅ‘l közvetlenül az ipset paranccsal kell " "gondoskodni." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Hozzáadás" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Bejegyzések" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Az IPSet-ek csak az állandó beállítások nézetében hozhatók létre vagy " "törölhetÅ‘k." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Egy firewalld icmptype biztosítja az információkat egy Internet Control " "Message Protocol (ICMP) típushoz a firewalld számára." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP-típus hozzáadása" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP-típus szerkesztése" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP-típus eltávolítása" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP-típus alapértékeinek betöltése" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" "Azt határozza meg, hogy ez az ICMP-típus elérhetÅ‘-e az IPv4 és/vagy az IPv6 " "számára." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Az ICMP-típusok csak az állandó beállítások nézetében változtathatók meg. Az " "ICMP-típusok futásidejű beállításai rögzítettek." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Egy kapcsolatkövetÅ‘ segítÅ‘ segít azon protokollok működÅ‘vé tételében, " "amelyek különbözÅ‘ folyamokat használnak a jelzésekhez és adatátvitelhez. Az " "adatátvitelek olyan portokat használnak, amelyek nem függenek össze a jelzÅ‘ " "kapcsolattal, és ennélfogva a tűzfal blokkolta a segítÅ‘ nélkül." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Portok vagy porttartományok meghatározása, amelyeket a segítÅ‘ figyel." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "A közvetlen beállítás közvetlenebb hozzáférést ad a tűzfalhoz. Ezek a " "beállítások megkövetelik, hogy a felhasználó ismerje az iptables fogalmait, " "azaz tudja mik a táblák, a láncok, a parancsok, a paraméterek és a célok. A " "közvetlen beállítást csak legvégsÅ‘ esetben kell használni, amikor nincs " "lehetÅ‘ség más firewalld funkciók használatára." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Minden egyes beállítás ipv argumentuma ipv4, ipv6 vagy eb kell legyen. Az " "ipv4 használatával az iptables parancs, az ipv6 használatával az ip6tables " "parancs, az eb használatával az ethernet hidak (ebtables) lesz használva." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "További láncok a szabályokkal való használathoz." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Lánc hozzáadása" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Lánc szerkesztése" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Lánc eltávolítása" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Láncok" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Egy szabály hozzáadása az args argumentumokkal egy táblában lévÅ‘ lánchoz egy " "prioritással." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "A prioritás a szabályok sorrendezéséhez használható. A 0 prioritás azt " "jelenti, hogy a szabályt a lánc tetejéhez adja hozzá, magasabb prioritással " "a szabály lejjebb lesz hozzáadva. Az azonos prioritású szabályok ugyanazon a " "szinten lesznek, és ezen szabályok sorrendje nem rögzített, hanem változhat. " "Ha biztos szeretne lenni abban, hogy a szabály egy másik szabály után legyen " "hozzáadva, akkor használjon alacsony prioritást az elsÅ‘nél és magasabb " "prioritást az ezt követÅ‘knél." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Szabály hozzáadása" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Szabály szerkesztése" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Szabály eltávolítása" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Szabályok" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Az áteresztÅ‘ szabályok közvetlenül áteresztik a tűzfalon keresztül, és nem " "helyezik speciális láncokba. Minden iptables, ip6tables és ebtables " "beállítás használható." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Legyen óvatos az áteresztÅ‘ szabályokkal, hogy ne károsítsa a tűzfalat." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Ãteresztés hozzáadása" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Ãteresztés szerkesztése" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Ãteresztés eltávolítása" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Ãteresztés" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "A zárolás funkció a felhasználó- és alkalmazás-irányelv egy egyszerűsített " "verziója a firewalld programnál. Korlátozza a változtatásokat a tűzfalon. A " "zárolás fehér lista tartalmazhat parancsokat, környezeteket, felhasználókat " "és felhasználó-azonosítókat." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "A környezet egy futó alkalmazás vagy szolgáltatás biztonsági (SELinux) " "környezete. Egy futó alkalmazás környezetének lekéréséhez használja a ps " "-e --context parancsot." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Környezet hozzáadása" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Környezet szerkesztése" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Környezet eltávolítása" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Környezetek" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Ha a fehér listán egy parancsbejegyzés csillaggal „*†végzÅ‘dik, akkor az " "összes parancs sor illeszkedni fog, amely azzal a paranccsal kezdÅ‘dik. Ha a " "„*†nincs ott, akkor az abszolút parancsnak - beleértve az argumentumokat - " "egyeznie kell." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Parancssor hozzáadása" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Parancssor szerkesztése" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Parancssor eltávolítása" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Parancssorok" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Felhasználónevek." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Felhasználónév hozzáadása" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Felhasználónév szerkesztése" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Felhasználónév eltávolítása" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Felhasználónevek" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Felhasználó-azonosítók." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Felhasználó-azonosító hozzáadása" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Felhasználó-azonosító szerkesztése" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Felhasználó-azonosító eltávolítása" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Felhasználó-azonosítók" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "A rendszer jelenlegi alapértelmezett zónája." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Megtagadottak naplója:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Pánik mód:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatikus segítÅ‘k:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Zárolás:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Alapértelmezett zóna:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Csatoló" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Alap IPSet beállítások" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Ãllítsa be az alap ipset beállításokat:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Típus:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "IdÅ‘korlát:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Kivonatméret:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Legnagyobb elem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "IdÅ‘korlát értéke másodpercben" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Kezdeti kivonatméret, alapértelmezetten 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Elemek legnagyobb száma, alapértelmezetten 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Válasszon egy ipset-et:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Megtagadottak naplója" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Válassza ki megtagadottak naplójának értékét:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Jelölés" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Adjon meg egy jelölést egy opcionális maszkkal." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "A jelölés és a maszk mezÅ‘k mindegyike 32-bit széles, elÅ‘jel nélküli szám." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Jelölés:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maszk:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Válasszon egy netfilter conntrack segítÅ‘t:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Válasszon -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Egyéb modul:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port és protokoll" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Adjon meg egy portot és egy protokollt." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Közvetlen szabály" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Válasszon ipv-t és táblát, valamint láncprioritást, majd adja meg az " "argumentumokat." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioritás:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Adjon meg egy protokollt." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Egyéb protokoll:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Gazdag szabály" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Adjon meg egy gazdag szabályt." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Gépnél vagy hálózatnál a fehér vagy fekete lista használata kikapcsolja az " "elemet" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Forrás:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Cél:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Napló:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Felülvizsgálat:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 és IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "fordított" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "A művelet engedélyezéséhez „elutasítás†értékűnek kell lennie, és a család " "vagy „IPv4â€, vagy „IPv6†(nem mindkettÅ‘)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "ezzel a típussal:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Ezzel a korláttal:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ElÅ‘tag:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Szint:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Elem:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Művelet:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Alap szolgáltatás beállítások" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Ãllítsa be az alap szolgáltatás beállításokat:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Válasszon egy szolgáltatást." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Felhasználó-azonosító" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Adja meg a felhasználó-azonosítót." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Felhasználónév" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Adja meg a felhasználónevet." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "címke" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Alap zóna beállítások" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Ãllítsa be az alap zóna beállításokat:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Alapértelmezett cél" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Cél:" firewalld-0.4.4.6/po/ia.po000066400000000000000000001216701320241217000152020ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Nik Kalach , 2012-2013 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:58-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/firewalld/" "language/ia/)\n" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Applet de parafoco" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Parafoco" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuration de parafoco" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blocar tote le traffico de rete" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "" #: ../src/firewall-config:560 msgid "To Port" msgstr "" #: ../src/firewall-config:562 msgid "To Address" msgstr "" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "" #: ../src/firewall-config:1612 msgid "Error" msgstr "" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "" firewalld-0.4.4.6/po/it.po000066400000000000000000001633771320241217000152370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Andrea La Fauci , 2010 # antonio montagnani , 2013 # Antonio Trande , 2012 # Daniele Catanesi , 2009 # Francesco D'Aluisio , 2011,2013 # Francesco D'Aluisio , 2011 # Francesco Tombolini , 2005-2008,2010 # fvalen , 2004 # Franco Godone , 2008 # fvalen , 2004,2014 # fvalen , 2014 # Germano Massullo , 2013 # Gianluca Sforna , 2012 # Guido Grazioli , 2008 # Luca Ferrari , 2004 # Mario Santagiuliana , 2011 # Massimiliano Tropeano , 2013 # Massimiliano Tropeano , 2013 # Paolo Dona' , 2004 # tavanofabio , 2013 # tavanofabio , 2013 # Gregorio , 2016. #zanata # Terry Chuang , 2016. #zanata # Andrea Masala , 2017. #zanata # Thomas Woerner , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-04-13 04:41-0400\n" "Last-Translator: Andrea Masala \n" "Language-Team: Italian (http://www.transifex.com/projects/p/firewalld/" "language/it/)\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Applet Firewall" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configurazione del Firewall" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;rete;sicurezza;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Seleziona zona per l'interfaccia '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona Predefinita" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Seleziona la zone per la connessione '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Impossibile impostare la zona {zone} per la connessione {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selezionare la zona per il sorgente '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configura Shields Up/Down Zones" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Qui è possibile selezionare le zone usate per Shields Up e Shields Down." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Questa funzione è utile per coloro che usano soprattutto le zone predefinite." " Per gli utenti che modificano le zone delle connessioni, potrebbe essere " "limitata." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zona Shields Up:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Ripristina impostazioni predefinite" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zona Shields Down:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Informazioni su %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autori" #: ../src/firewall-applet:396 msgid "License" msgstr "Licenza" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Shields Up" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Abilita Notifiche" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Modifica Impostazioni Firewall..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Cambia Zone di Connessione..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configura Shields UP/Down Zones..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blocca l'intero traffico di rete" #: ../src/firewall-applet:492 msgid "About" msgstr "Informazioni" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Connessioni" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaccia" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Sorgente" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autorizzazione fallita." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Argomento %s non valido" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Nome già esistente" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zona: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Zona predefinita: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Impossibile ottenere le connessioni da NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Nessuna importazione NetworkManager disponibile" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Non connesso al demone firewall" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "L'intero traffico di rete è bloccato." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zona Predefinita: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona predefinita '{default_zone}' attivata per la connessione '{connection}' " "sull'interfaccia '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zona '{zone}' attiva per la connessione '{connection}' sull'interfaccia " "'{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zona '{zone}' attiva per l'interfaccia '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zona '{zone}' attiva per la sorgente {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Nessuna Zona Attiva." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Connessione a Firewalld stabilita." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Connessione a Firewalld persa." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "Firewalld è stato ricaricato." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Zona predefinita cambiata a '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Il traffico di rete non è più bloccato." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "attivato" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "disattivato" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Zona predefinita '{default_zone}' {activated_deactivated} per la connessione " "'{connection}' sull'interfaccia '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} per la connessione '{connection}' " "sull'interfaccia '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zona '{zone}' {activated_deactivated} per l'interfaccia '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zona '%s' attivata per l'interfaccia '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zona '{zone}' {activated_deactivated} per la sorgente '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zona '%s' attivata per la sorgente '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Connessione a firewalld stabilita." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Tentativo di connessione a firewalld in corso, attendere..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Modifiche applicate." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Usato dalla connessione di rete '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Zona predefinita utilizzata dalla connessione di rete '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "abilitato" #: ../src/firewall-config:97 msgid "disabled" msgstr "disabilitato" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Caricamento icone fallito." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "In esecuzione" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Salvata" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servizio" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Porta" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocollo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Alla porta" #: ../src/firewall-config:562 msgid "To Address" msgstr "All'indirizzo" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Associazioni" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Voce" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipologìa Icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "Famiglia" #: ../src/firewall-config:819 msgid "Action" msgstr "Azione" #: ../src/firewall-config:821 msgid "Element" msgstr "Elemento" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Controllo" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Attenzione" #: ../src/firewall-config:1612 msgid "Error" msgstr "Errore" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accetta" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "rifiuta" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "rilascio" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "contrassegno" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limita" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "servizio" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "porta" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocollo" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "mascheramento" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "porta-sorgente" #: ../src/firewall-config:2071 msgid "level" msgstr "livello" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "si" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Zona predefinita: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zona: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona '%s': Servizio '%s' non disponibile." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Elimina Zona" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignora" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona '%s': tipo ICMP '%s' non disponibile." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Zona integrata, impossibile rinominare." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "secondo" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuto" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ora" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "giorno" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergenza" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "avviso" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critico" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "errore" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "attenzione" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "avviso" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informazioni" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "blocco-icmp" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "porta inoltro" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "L'inoltro ad un altro sistema è utile solo se l'interfaccia è nattata.\n" "Si vuole nattare questa zona?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Servizio integrato, impossibile rinominare." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" "Si prega di inserire un indirizzo ipv4 con la forma indirizzo[/maschera]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "La maschera può essere una maschera di rete o un numero." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" "Si prega di inserire un indirizzo ipv6 con la forma indirizzo[/maschera]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "La maschera è un numero." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" "Si prega di inserire un indirizzo ipv4 o ipv6 con la forma indirizzo[/" "maschera]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "La maschera può essere una maschera di rete o un numero per ipv4.\n" "La maschera è un numero per ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Ipset integrato, ridenominazione non supportata." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Per favore seleziona un file" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "File di testo" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Tutti i file" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Tutte" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 #, fuzzy msgid "Built-in helper, rename not supported." msgstr "Ipset integrato, ridenominazione non supportata." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Icmp integrato, impossibile rinominare." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Impossibile leggere il file '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Selezionare la zona per il sorgente %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Indirizzo" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Assistenti Automatici" #: ../src/firewall-config.glade.h:3 #, fuzzy msgid "Please select the automatic helpers value:" msgstr "Selezionare il valore del log negato:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Linea di comando" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Inserire il comando." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Contesto" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Inserire il contesto." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Si prega di selezionare la zona predefinita dalla lista sotto." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Catena" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Prego selezionare ipv e tabella e inserire il nome della catena." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Catena:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "sicurezza" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabella:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Regola di attraversamento diretto" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Prego selezionare l'ipv e inserire gli argomenti." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argomenti:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Forwarding della porta" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Selezionare le opzioni di sorgente e destinazione in base alle proprie " "esigenze." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Porta / Intervallo di porte:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Indirizzo IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocollo:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Sorgente" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destinazione" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Se si abilita il forward locale, si deve specificare una porta. Questa porta " "deve essere diversa dalla porta sorgente." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Forward locale" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Forward verso un'altra porta" #: ../src/firewall-config.glade.h:32 #, fuzzy msgid "Base Helper Settings" msgstr "Impostazioni Base Zone" #: ../src/firewall-config.glade.h:33 #, fuzzy msgid "Please configure base helper settings:" msgstr "Configurare le impostazioni di base ipset:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" "Le voci in grassetto sono obbligatorie, tutte le altre sono opzionali." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nome:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versione:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Breve:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descrizione:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Famiglia:" #: ../src/firewall-config.glade.h:43 #, fuzzy msgid "Module:" msgstr "Moduli" #: ../src/firewall-config.glade.h:44 #, fuzzy msgid "Helper" msgstr "Aiu_to" #: ../src/firewall-config.glade.h:45 #, fuzzy msgid "Please select a helper:" msgstr "Per favore seleziona un file" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Impostazioni di base Tipologìa ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Configurare le impostazioni di base ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipo ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Sezionare il tipo di ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Aggiungi voce" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Aggiungi voci dal file" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Rimuovi la voce selezionata" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Rimuovi tutte le voci" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Rimuovi le voci dal file" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_File" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opzioni" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Ricarica Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Ricarica le regole del firewall. L'attuale configurazione salvata diventerà " "la nuova configurazione in uso. p.e. tutti i cambiamenti fatti prima saranno " "perse con la ricarica se non sono presenti anche nella configurazione " "salvata." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Cambia l'appartenenza ad una zona di una rete." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Cambia Zona Predefinita " #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Cambia la zona predefinita di connessioni o interfacce." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Log di modifica negato" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Valore Log di modifica negato." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configurare Assegnazione Assistenti Automatici" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configurare l'impostazione Assegnazione Assistenti Automatici" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Modalità panico significa che tutti i pacchetti in ingresso e uscita " "verranno scartati." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Modalità Panico" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown blocca la configurazione del firewall in modo che solo le " "applicazioni nella lockdown whitelist possano cambiarla." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Lockdown" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Rendi la configurazione di runtime permanente" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Runtime su permanente" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Visualizza" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSet" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Tipi ICMP" #: ../src/firewall-config.glade.h:77 #, fuzzy msgid "Helpers" msgstr "Aiu_to" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configurazione Esperta" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Whitelist lockdown" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Associazioni attive" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "Aiu_to" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Modifica zona associazione" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Nascondere le associazioni a runtime attive di connessioni, interfacce e " "sorgenti alle zone" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Mostrare le associazioni a runtime attive di connessioni, interfacce e " "sorgenti alle zone" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configurazione:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configurazione attuale visibile. La configurazione runtime è l'attuale " "configurazione attiva. Quella persistente sarà attiva dopo il ricaricamento " "o il riavvìo del servizio o del sistema." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Una zona firewalld definisce il livello di fiducia per le connessioni della " "rete, interfacce e indirizzi della sorgente legati alla zona. La zona " "combina servizi, porte, protocolli, mascheramenti, inoltro porte/pacchetti, " "filtri icmp e regole estese. La zona può essere associata alle interfacce e " "agli indirizzi della sorgente." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Aggiungi Zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Modifica Zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Elimina Zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Carica Zona Predefinita" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Qui è possibile definire quali servizi sono fidati nella zona. I servizi " "fidati sono accessibili da tutti gli host e reti che possono raggiungere la " "macchina attraverso connessioni, interfacce e sorgenti associate a questa " "zona." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Servizi" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Aggiungere ulteriori porte o intervalli di porte, che dovranno essere " "accessibili da tutti gli host o reti che possono connettersi alla macchina." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Alla porta" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Modifica Zona" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Elimina Zona" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Porte" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Aggiungere i protocolli che si necessita rendere accessibili per tutti gli " "host o reti." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Aggiungi protocollo" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Modifica protocollo" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Rimuovi protocollo" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocolli" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Aggiungere ulteriori porte o intervalli di porte sorgente, che devono essere " "accessibili da tutti gli host o reti che possono connettersi alla macchina." #: ../src/firewall-config.glade.h:106 #, fuzzy msgid "Source Ports" msgstr "Porta sorgente" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Il mascheramento (masquerading) permette di impostare un host o un router " "che connette la rete locale ad Internet. La rete locale non sarà visibile e " "gli host appariranno come un singolo indirizzo su Internet. Il mascheramento " "è disponibile solo con IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zona Mascherata" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Se si abilta il masquerading, l'IP forwarding sarà abilitato per le reti " "IPv4." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Mascheramento" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Aggiungere righe per eseguire il forward delle porte sia da una porta ad " "un'altra sul sistema locale o dal sistema locale ad un altro sistema. " "Eseguire il forward verso un altro sistema è utile solo se l'interfaccia è " "mascherata. Il forwarding delle porte è disponibile solo con IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Aggiungi Forward di porta" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Modifica Forward di porta" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Rimuovi Forward di porta" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "L'Internet Control Message Protocol (ICMP) è principalmente utilizzato per " "inviare messaggi d'errore fra computer in rete, ma anche per messaggi " "informativi come richieste e risposte ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Contrassegnare nell'elenco i tipi ICMP che dovranno essere rifiutati. A " "tutti gli altri tipi ICMP sarà consentito di oltrepassare il firewall. " "L'impostazione predefinita è: nessuna limitazione." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Se l’opzione Inverti filtro è abilitata, le voci ICMP contrassegnate sono " "accettate e le altre respinte. In una zona con DROP destinazione, sono " "scartate." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Inverti filtro" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtro ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Qui è possibile impostare le regole estese per la zona." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Aggiungi Regola Estesa" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr " Modifica Regola Estesa" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Rimuovi Regola Estesa" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Regole Estese" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Aggiunta voci per collegare interfacce alla zona. Se l'interfaccia sarà " "utilizzata da una connessione, la zona verrà impostata alla zona specificata " "nella connessione." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Aggiungi Interfaccia" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Modifica Interfaccia" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Rimuovi Interfaccia" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Aggiungere le voci per associare gli indirizzi sorgente o le aree alla zona. " "Si possono anche associare ad un indirizzo sorgente MAC, ma con limitazioni. " "Il port forwarding e il mascheramento non funzioneranno per le associazioni " "ai MAC sorgente." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Aggiungi Sorgente" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Modifica Sorgente" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Rimuovi Sorgente" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zone" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Un servizio firewalld è una combinazione di porte, protocolli, moduli e " "indirizzi di destinazione." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Aggiungi Servizio" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Modifica Servizio" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Elimina Servizio" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Carica Servizi Predefiniti" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Aggiungere ulteriori porte o intervalli di porte, che devono essere " "accessibili per tutti gli host o reti." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Modifica voce" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Rimuovi voce" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Aggiungere ulteriori porte o intervalli di porte sorgente, che devono essere " "accessibili per tutti gli host o reti." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Porta sorgente" #: ../src/firewall-config.glade.h:147 #, fuzzy msgid "Netfilter helper modules are needed for some services." msgstr "Moduli di aiuto di Netfilter" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduli" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Se si specificano indirizzi di destinazione, la voce del servizio sarà " "limitato a quell'indirizzo o al tipo. Se entrambe le voci sono vuote, non ci " "sono limitazioni." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "E' possibile cambiare i servizi solo nella vista configurazione permanente. " "La configurazione runtime dei servizi è fissa." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Un IPSet può essere usato per creare liste bianche o nere ed è in grado di " "memorizzare per esempio gli indirizzi IP, numeri di porta o indirizzi MAC." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Aggiungi IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Modifica IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Rimuovi IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Carica impostazioni predefinite IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Voci dell'IPSet. Si è in grado di vedere solamente le voci degli ipset che " "non stanno usando l'opzione timeout, ed anche solamente le voci che sono " "state aggiunte da firewalld. Le voci che sono state aggiunte direttamente " "con il comando ipset non saranno visualizzate qui." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Questo IPSet usa l'opzione timeout, perciò nessuna delle voci è visibile qui." " Le voci dovrebbero essere prese in considerazione direttamente con il " "comando ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Aggiungere" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Voci" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Gli IPSet possono essere creati o eliminati solo nella vista di " "configurazione permanente." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Un icmptype di firewalld fornisce l'informazione per un tipo di Internet " "Control Message Protocol (ICMP) per firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Aggiungi ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Modifica ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Rimuovi ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Carica ICMP Predefiniti" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Definisci se questo tipo di ICMP è disponibile per IPv4 e/o IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "E' possibile cambiare i tipi ICMP solo nella vista configurazione permanente." " La configurazione runtime dei tipi ICMP è fissa." #: ../src/firewall-config.glade.h:172 #, fuzzy msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Un assistente per il monitoraggio della connessione aiuta a far funzionare " "protocolli che utilizzano diversi flussi di segnalazione e trasferimento dei " "dati. I trasferimenti di dati utilizzano porte che sono estranee alla " "connessione di segnalazione e sono quindi bloccate dal firewall senza " "l'assistente." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Definire le porte o intervalli di porte, che sono monitorati dall'assistente." "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "La configurazione esperta permette un accesso più profondo al firewall. " "Queste opzioni richiedono all'utente una conoscenza dei concetti base di " "iptables, p.e. tabelle, catene, comandi, parametri e obiettivi. La " "configurazione esperta dovrebbe essere usata solo come ultima possibilità " "quando non è possibile utilizzare gli altri strumenti di firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "L'argomenti ipv di ogni opzione deve essere ipv4 o ipv6 o eb. Se ipv4 sarà " "per iptables, se ipv6 sarà per ip6tables e con eb sarà per i bridge ethernet " "(ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Catene aggiuntive per l'utilizzo con regole." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Aggiungi Catena" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Modifica Catena" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Rimuovi Catena" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Catene" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Aggiungi una regola con gli argomenti args ad una catena in una tabella con " "priorità." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "La priorità viene usata per ordinare le regole. Priorità 0 significa " "aggiungere la regola in cima alla catena, con una priorità maggiore la " "regola verrà aggiunta sempre più in basso. Regole con la stessa priorità " "sono allo stesso livello e l'ordine di queste regole non è fisso e può " "cambiare. Se si vuole essere sicuri che una regola venga aggiunta dopo " "un'altra, utilizzare una priorità minore per la prima e maggiore per la " "seconda." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Aggiungi Regola" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Modifica Regola" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Rimuovi Regola" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regole" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Le regole di passthrough vengono inviate direttamente al firewall e non " "vengono inserite in catene speciali. Tutte le opzioni di iptables, ip6tables " "e ebtables possono essere usate." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Siate prudenti con le regole di passthrough per non danneggiare il firewall." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Aggiungi Passthrough" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Modifica Passthrough" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Rimuovi Passthrough" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "La funzionalità lockdown è una versione light delle politiche dell'utente e " "dell'applicazione per firewalld. Limita le modifiche del firewall. La " "whitelist lockdown può contenere, comandi, contesti, utenti e user id." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Il contesto è il contesto di sicurezza (SELinux) di un’applicazione o di un " "servizio in esecuzione. Per ottenere il contesto di un’applicazione in " "esecuzione, utilizzare ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Aggiungi Contesto" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Modifica Contesto" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Rimuovi Contesto" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contesti" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Se una voce di comando nella whitelist finisce per asterisco '*', tutti i " "comandi che iniziano per il comando corrisponderanno. Se non c'è '*' il " "comando assoluto compresi argomenti dovrà corrispondere." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Aggiungi Riga di Comando" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Modifica Riga di Comando" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Rimuovi Riga di Comando" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Linee di comando" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Nomi utente." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Aggiungi Nome Utente" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Modifica Nome Utente" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Rimuovi Nome Utente" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Nomi utenti" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ID utenti." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Aggiungi Id Utente" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Modifica Id Utente" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Rimuovi Id Utente" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ID Utenti" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Zona predefinita di sistema corrente." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Log negato:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Modalità Panico:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Assistenti Automatici:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lockdown:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona Predefinita:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Impostazioni di base IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Configurare le impostazioni di base ipset:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Tipo:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Timeout:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Dimensione hash:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Elem max:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Valore del timeout in secondi" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Dimensione hash iniziale, valore predefinito 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Numero max di elementi, valore predefinito 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Per favore selezionare un ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Log negato" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Selezionare il valore del log negato:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Contrassegno" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Inserire un contrassegno con una maschera opzionale." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "Contrassegno e campi del contrassegno sono entrambi numeri senza segno a 32 " "bit." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Contrassegno:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maschera:" #: ../src/firewall-config.glade.h:239 #, fuzzy msgid "Please select a netfilter conntrack helper:" msgstr "Per favore seleziona un file" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Seleziona -" #: ../src/firewall-config.glade.h:241 #, fuzzy msgid "Other Module:" msgstr "Altro Protocollo:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Porta e protocollo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Inserire una porta ed un protocollo." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Regola Diretta" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Prego selezionare l'ipv e la tabella, la priorità della catena e inserire " "gli argomenti." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorità:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Per cortesia scegli un protocollo" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Altro Protocollo:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Regola Estesa" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Inserire una regola estesa." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "Per host o rete bianca o in lista nera disattivare l'elemento." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Sorgente:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destinazione:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Controllo:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 e ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "invertito" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Per abilitarlo, Action deve essere 'reject' e Family 'ipv4' o 'ipv6' (non " "entrambi)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "con Tipo:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Con limite:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefisso:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Livello" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Elemento:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Azione:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Impostazioni Servizi di Base" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Configurare le impostazioni del servizio di base:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Per favore selezionare un servizio." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID utente" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Per favore inserire l'id utente" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nome utente" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Per favore inserire il nome utente" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etichetta" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Impostazioni Base Zone" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Impostare la configurazione della base zone:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Destinazione Predefinita" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Destinazione:" firewalld-0.4.4.6/po/ja.po000066400000000000000000001736511320241217000152110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Aiko Sasaki , 2014 # Copyright (C) Red Hat Inc. 2010, 2011 # Hajime Taira , 2010-2011,2013 # Kenzo Moriguchi , 2014 # noriko , 2014 # noriko , 2014 # Tomoyuki KATO , 2012-2013 # Hajime Taira , 2015. #zanata # Aiko Sasaki , 2016. #zanata # Hajime Taira , 2016. #zanata # Noriko Mizumoto , 2016. #zanata # Takuro Nagamoto , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-11-06 08:07-0500\n" "Last-Translator: Hajime Taira \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/firewalld/" "language/ja/)\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ファイアウォールアプレット" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ファイアウォール" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ファイアウォールã®è¨­å®š" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "ファイアウォール;ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯;セキュリティー;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "インターフェース '%s' ã®ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã™ã‚‹" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "標準ゾーン" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "接続 '%s' ã®ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã™ã‚‹" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "接続 {connection} ã®ã‚¾ãƒ¼ãƒ³ {zone} ã®è¨­å®šã«å¤±æ•—ã—ã¾ã—ãŸ" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "ソース '%s' ã®ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã™ã‚‹" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "シールド・アップ/ダウン・ゾーンã®è¨­å®š" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "ã“ã“ã‹ã‚‰ã‚·ãƒ¼ãƒ«ãƒ‰ãƒ»ã‚¢ãƒƒãƒ—ãŠã‚ˆã³ã‚·ãƒ¼ãƒ«ãƒ‰ãƒ»ãƒ€ã‚¦ãƒ³ã«å¯¾ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã§ãã¾ã™ã€‚" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "ã“ã®æ©Ÿèƒ½ã¯ãŸã„ã¦ã„標準ã®ã‚¾ãƒ¼ãƒ³ã‚’使用ã™ã‚‹äººã€…ã«ã¨ã£ã¦æœ‰ç”¨ã§ã™ã€‚接続ã®ã‚¾ãƒ¼ãƒ³ã‚’変更ã—ã¦ã„るユーザーã«å¯¾ã—ã¦ã€é™å®šçš„ã«ä½¿ç”¨ã§ãã¾ã™ã€‚" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "シールド・アップ・ゾーン:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "デフォルトã«ãƒªã‚»ãƒƒãƒˆ" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "シールド・ダウン・ゾーン:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "%s ã«ã¤ã„ã¦" #: ../src/firewall-applet:386 msgid "Authors" msgstr "作者" #: ../src/firewall-applet:396 msgid "License" msgstr "ライセンス" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "シールド・アップ" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "é€šçŸ¥ã®æœ‰åŠ¹åŒ–" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ファイアウォール設定ã®ç·¨é›†..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "接続ã®ã‚¾ãƒ¼ãƒ³ã®å¤‰æ›´..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "シールド・アップ/ダウン・ゾーンã®è¨­å®š..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ã™ã¹ã¦ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ãƒˆãƒ©ãƒ•ィックã®ãƒ–ロック" #: ../src/firewall-applet:492 msgid "About" msgstr "ã“ã®ã‚¢ãƒ—リケーションã«ã¤ã„ã¦" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "接続" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "インターフェース" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "é€ä¿¡å…ƒ" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ä¸å½“ãªå®Ÿå¼•æ•° %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "åå‰ãŒã™ã§ã«å­˜åœ¨ã—ã¾ã™" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (ゾーン: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (デフォルトゾーン: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "NetworkManager ã‹ã‚‰ã®æŽ¥ç¶šã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "利用å¯èƒ½ãª NetworkManager インãƒãƒ¼ãƒˆãŒã‚りã¾ã›ã‚“" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ファイアーウォール・デーモンã¸ã®æŽ¥ç¶šãŒã‚りã¾ã›ã‚“。" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ã™ã¹ã¦ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é€šä¿¡ãŒé®æ–­ã•れã¾ã™ã€‚" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "標準ゾーン: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "デフォルトゾーン '{default_zone}' ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース '{interface}' ã®æŽ¥ç¶š '{connection}' ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "ゾーン '{zone}' ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース '{interface}' ã®æŽ¥ç¶š '{connection}' ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "ゾーン '{zone}' ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース '{interface}' ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "ゾーン '{zone}' ã‚’é€ä¿¡å…ƒ {source} ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "有効ãªã‚¾ãƒ¼ãƒ³ãŒã‚りã¾ã›ã‚“。" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD ã¸ã®æŽ¥ç¶šãŒç¢ºç«‹ã•れã¾ã—ãŸã€‚" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD ã¸ã®æŽ¥ç¶šãŒå¤±ã‚れã¾ã—ãŸã€‚" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD ãŒå†èª­ã¿è¾¼ã¿ã•れã¾ã—ãŸã€‚" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "標準ã®ã‚¾ãƒ¼ãƒ³ã‚’ '%s' ã«å¤‰æ›´ã—ã¾ã—ãŸã€‚" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é€šä¿¡ãŒé®æ–­ã•れãªããªã‚Šã¾ã™ã€‚" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "有効化" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "無効化" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "デフォルトゾーン '{default_zone}' ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース '{interface}' ã®æŽ¥ç¶š '{connection}' ã«å¯¾ã—㦠" "{activated_deactivated} " #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "ゾーン '{zone}' ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース '{interface}' ã®æŽ¥ç¶š '{connection}' ã«å¯¾ã—㦠" "{activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "インターフェース '{interface}' ã«å¯¾ã—ã¦ã‚¾ãƒ¼ãƒ³ '{zone}' ã‚’ {activated_deactivated} ã—ã¾ã—ãŸ" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "ゾーン '%s' をインターフェース '%s' ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–ã—ã¾ã—ãŸ" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "ゾーン '{zone}' ã‚’é€ä¿¡å…ƒ '{source}' ã«å¯¾ã—㦠{activated_deactivated} ã—ã¾ã—ãŸ" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "ゾーン '%s' ã‚’é€ä¿¡å…ƒ '%s' ã«å¯¾ã—ã¦æœ‰åŠ¹åŒ–ã—ã¾ã—ãŸ" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr " firewalld ã¸ã®æŽ¥ç¶šãŒç¢ºç«‹ã•れã¾ã—ãŸã€‚" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "firewalld ã¸ã®æŽ¥ç¶šã‚’試行ã—ã¦ã„ã¾ã™ã€‚ãŠå¾…ã¡ãã ã•ã„..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "変更をé©ç”¨ã—ã¾ã—ãŸã€‚" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶š '%s' ã«ã‚ˆã‚Šä½¿ç”¨ä¸­" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶š '%s' ã§ä½¿ç”¨ã•れるデフォルトゾーン" #: ../src/firewall-config:96 msgid "enabled" msgstr "有効" #: ../src/firewall-config:97 msgid "disabled" msgstr "無効" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "アイコンã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "実行時" #: ../src/firewall-config:398 msgid "Permanent" msgstr "永続" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "サービス" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "ãƒãƒ¼ãƒˆ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "プロトコル" #: ../src/firewall-config:560 msgid "To Port" msgstr "é€ä¿¡å…ˆãƒãƒ¼ãƒˆ" #: ../src/firewall-config:562 msgid "To Address" msgstr "é€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹" #: ../src/firewall-config:612 msgid "Bindings" msgstr "ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "エントリー" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "ICMP タイプ" #: ../src/firewall-config:817 msgid "Family" msgstr "ファミリー" #: ../src/firewall-config:819 msgid "Action" msgstr "アクション" #: ../src/firewall-config:821 msgid "Element" msgstr "è¦ç´ " #: ../src/firewall-config:823 msgid "Src" msgstr "é€ä¿¡å…ƒ" #: ../src/firewall-config:825 msgid "Dest" msgstr "é€ä¿¡å…ˆ" #: ../src/firewall-config:827 msgid "log" msgstr "ログ" #: ../src/firewall-config:829 msgid "Audit" msgstr "監査" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "警告" #: ../src/firewall-config:1612 msgid "Error" msgstr "エラー" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "å—ä¿¡" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "æ‹’å¦" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "廃棄" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "マーク" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "制é™" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "サービス" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "ãƒãƒ¼ãƒˆ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "プロトコル" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "マスカレード" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "レベル" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ã¯ã„" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "ゾーン" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "デフォルトゾーン: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "ゾーン: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "ゾーン '%s': サービス '%s' ãŒåˆ©ç”¨å¯èƒ½ã§ã¯ã‚りã¾ã›ã‚“。" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ゾーンã®å‰Šé™¤" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "無視" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "ゾーン '%s': ICMP タイプ '%s' ãŒåˆ©ç”¨å¯èƒ½ã§ã¯ã‚りã¾ã›ã‚“。" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "組ã¿è¾¼ã¿ã®ã‚¾ãƒ¼ãƒ³ã§ã™ã€‚åå‰ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ç§’" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "分" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "時間" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "æ—¥" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "緊急" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "アラート" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "クリティカル" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "エラー" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "警告" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "注æ„" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "情報" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "デãƒãƒƒã‚°" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "IPv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "IPv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "ä»–ã®ã‚·ã‚¹ãƒ†ãƒ ã¸ã®è»¢é€ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŒãƒžã‚¹ã‚«ãƒ¬ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹å ´åˆã®ã¿æœ‰ç”¨ã§ã™ã€‚\n" "ã“ã®ã‚¾ãƒ¼ãƒ³ã‚’マスカレードã—ãŸã„ã§ã™ã‹ ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "組ã¿è¾¼ã¿ã®ã‚µãƒ¼ãƒ“スã§ã™ã€‚åå‰ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "IPv4 アドレスを address[/mask] ã®å½¢å¼ã§å…¥åŠ›ã—ã¦ãã ã•ã„。" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "mask ã¯ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒžã‚¹ã‚¯ã‚‚ã—ãã¯æ•°å­—ã§æŒ‡å®šã§ãã¾ã™ã€‚" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "IPv6 アドレスを address[/mask] ã®å½¢å¼ã§å…¥åŠ›ã—ã¦ãã ã•ã„。" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "mask ã¯æ•°å­—ã§æŒ‡å®šã—ã¾ã™ã€‚" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "IPv4 ã‚‚ã—ã㯠IPv6 アドレスを address[/mask] ã®å½¢å¼ã§å…¥åŠ›ã—ã¦ãã ã•ã„。" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "mask ã¯ã€IPv4 ã®å ´åˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒžã‚¹ã‚¯ãŒæŒ‡å®šã§ãã¾ã™ã€‚IPv6 ã®å ´åˆã«ã¯æ•°å­—ã§æŒ‡å®šã—ã¦ãã ã•ã„。" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "組ã¿è¾¼ã¿ã® IPSet ã§ã™ã€‚åå‰ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "テキストファイル" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "全ファイル" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "ã™ã¹ã¦" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "ビルトインヘルパーã§ã™ã€‚åå‰ã®å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "組ã¿è¾¼ã¿ã® ICMP ã§ã™ã€‚åå‰ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "ファイル '%s' ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "ソース %s ã®ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã™ã‚‹" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "アドレス" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "オートマãƒãƒƒã‚¯ãƒ˜ãƒ«ãƒ‘ー" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "オートマãƒãƒƒã‚¯ãƒ˜ãƒ«ãƒ‘ーã®å€¤ã‚’é¸æŠžã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "コマンドライン" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "コマンドラインを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "コンテキスト" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "コンテキストを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "以下ã®ä¸€è¦§ã‹ã‚‰æ¨™æº–ã®ã‚¾ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ダイレクトãƒã‚§ã‚¤ãƒ³" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ipv ã¨ãƒ†ãƒ¼ãƒ–ãƒ«ã‚’é¸æŠžã—ã€ãƒã‚§ã‚¤ãƒ³åを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ãƒã‚§ã‚¤ãƒ³:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "テーブル:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ダイレクト・パススルー・ルール" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ipv ã‚’é¸æŠžã—ã€å¼•数を入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "引数:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ãƒãƒ¼ãƒˆè»¢é€" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "å¿…è¦ã«å¿œã˜ãŸé€ä¿¡å…ƒã¨é€ä¿¡å…ˆã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "ãƒãƒ¼ãƒˆ / ãƒãƒ¼ãƒˆç¯„囲:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP アドレス:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "プロトコル:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "é€ä¿¡å…ƒ" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "é€ä¿¡å…ˆ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "ローカル転é€ã‚’有効ã«ã™ã‚‹å ´åˆã€ãƒãƒ¼ãƒˆã‚’指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã“れã¯ã‚½ãƒ¼ã‚¹ãƒãƒ¼ãƒˆã¨ç•°ãªã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "ローカル転é€" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ä»–ã®ãƒãƒ¼ãƒˆã¸ã®è»¢é€" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "ベースヘルパーã®è¨­å®š" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "ベースヘルパーã®å€¤ã®è¨­å®šã‚’行ã£ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "太字ã®é …ç›®ã¯å¿…é ˆã§ã™ã€ãã®ä»–ã¯ã™ã¹ã¦ã‚ªãƒ—ションã§ã™ã€‚" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "åå‰:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "概è¦:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "詳細:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "ファミリー:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "モジュール:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "ヘルパー" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "ãƒ˜ãƒ«ãƒ‘ãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "基本 ICMP タイプ設定" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "基本 ICMP タイプ設定を設定ã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP ã®ç¨®é¡ž" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ICMP ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "エントリーã®è¿½åŠ " #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "ファイルã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’追加" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "é¸æŠžã—ãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "ファイルã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’削除" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ファイル(_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "オプション(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld ã®å†èª­ã¿è¾¼ã¿" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ファイアウォールルールをå†èª­ã¿è¾¼ã¿ã—ã¾ã™ã€‚ç¾åœ¨ã®æ°¸ç¶šçš„ãªè¨­å®šãŒæ–°ã—ã„実行時ã®è¨­å®šã«ãªã‚Šã¾ã™ã€‚ã¤ã¾ã‚Šã€æ°¸ç¶šçš„ãªè¨­å®šã«å­˜åœ¨ã—ãªã„ã€å†èª­ã¿è¾¼ã¿ã™ã‚‹ã¾ã§ã«è¡Œã‚れãŸå®Ÿè¡Œæ™‚ã®å¤‰æ›´ã¯ã™ã¹ã¦å¤±ã‚れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã«é©ç”¨ã•れるゾーンを変更ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "標準ã®ã‚¾ãƒ¼ãƒ³ã®å¤‰æ›´" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "接続やインターフェースã«é©ç”¨ã•れる標準ã®ã‚¾ãƒ¼ãƒ³ã‚’変更ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "æ‹’å¦ã•れãŸãƒ­ã‚°ã®å¤‰æ›´" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "LogDenied 値を変更ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "オートマãƒãƒƒã‚¯ãƒ˜ãƒ«ãƒ‘ーã®å‰²ã‚Šå½“ã¦ã‚’設定ã™ã‚‹" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "オートマãƒãƒƒã‚¯ãƒ˜ãƒ«ãƒ‘ーã®å‰²ã‚Šå½“ã¦å€¤ã‚’設定ã™ã‚‹" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "パニックモードã¯ã™ã¹ã¦ã®é€å—信パケットãŒç ´æ£„ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "パニックモード" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "ロックダウンã«ã‚ˆã‚Šã€ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³ãƒ»ãƒ›ãƒ¯ã‚¤ãƒˆãƒªã‚¹ãƒˆã«ã‚るアプリケーションã®ã¿ãŒãƒ•ァイアウォール設定を変更ã§ãるよã†ã«ãƒ­ãƒƒã‚¯ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "ロックダウン" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "実行時ã®è¨­å®šã‚’永続的ã«ã™ã‚‹" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "永続的ã«ã™ã‚‹å®Ÿè¡Œæ™‚設定" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "表示(_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP タイプ" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "ヘルパー" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ダイレクト設定" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "ロックダウン・ホワイトリスト" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "アクティブãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "ヘルプ(_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã®ã‚¾ãƒ¼ãƒ³ã‚’変更" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "接続ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ©ãƒ³ã‚¿ã‚¤ãƒ ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŠã‚ˆã³ã‚½ãƒ¼ã‚¹ã‚’ゾーンã«å¯¾ã—ã¦éžè¡¨ç¤ºã«ã—ã¾ã™" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "接続ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ©ãƒ³ã‚¿ã‚¤ãƒ ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŠã‚ˆã³ã‚½ãƒ¼ã‚¹ã‚’ゾーンã«å¯¾ã—ã¦è¡¨ç¤ºã—ã¾ã™" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "設定:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "ç¾åœ¨åˆ©ç”¨å¯èƒ½ãªè¨­å®šã€‚実行時ã®è¨­å®šãŒå®Ÿéš›ã«æœ‰åйãªè¨­å®šã§ã™ã€‚永続的ãªè¨­å®šã¯ã€ã‚µãƒ¼ãƒ“スã¾ãŸã¯ã‚·ã‚¹ãƒ†ãƒ ãŒå†èª­ã¿è¾¼ã¿ã¾ãŸã¯å†èµ·å‹•ã—ãŸå¾Œã€æœ‰åйã«ãªã‚Šã¾ã™ã€‚" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld " "ゾーンã§ã¯ã‚¾ãƒ¼ãƒ³ã«çµã³ä»˜ã‘られã¦ã„ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŠã‚ˆã³é€ä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã®ä¿¡é ¼ãƒ¬ãƒ™ãƒ«ã‚’定義ã—ã¾ã™ã€‚サービスã€ãƒãƒ¼ãƒˆã€ãƒ—ロトコルã€ãƒžã‚¹ã‚«ãƒ¬ãƒ¼ãƒ‰ã€ãƒãƒ¼ãƒˆã¨ãƒ‘ケット転é€ã€ICMP " "フィルターã€é«˜åº¦ãªãƒ«ãƒ¼ãƒ«ã‚’組ã¿åˆã‚ã›ã¾ã™ã€‚ゾーンã¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースやé€ä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã«çµã³ä»˜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ゾーンã®è¿½åŠ " #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ゾーンã®ç·¨é›†" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ゾーンã®å‰Šé™¤" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ゾーンã®åˆæœŸå€¤ã®èª­ã¿è¾¼ã¿" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ã“ã®ã‚¾ãƒ¼ãƒ³ã§ä¿¡é ¼ã§ãるサービスを定義ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚¾ãƒ¼ãƒ³ã«çµã³ä»˜ã‘られã¦ã„る接続ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースã€é€ä¿¡å…ƒã‹ã‚‰ã“ã®ãƒžã‚·ãƒ³ã«åˆ°é”ã§ãるホストやãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãªã‚‰ã„ãšã‚Œã§ã‚‚ä¿¡é ¼ã§ãるサービスã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "サービス" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "ã“ã®ãƒžã‚·ãƒ³ã«æŽ¥ç¶šã§ãるホストやãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ããªã‘れã°ãªã‚‰ãªã„ãƒãƒ¼ãƒˆã¾ãŸã¯ãƒãƒ¼ãƒˆç¯„囲を追加ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "é€ä¿¡å…ˆãƒãƒ¼ãƒˆ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ゾーンã®ç·¨é›†" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ゾーンã®å‰Šé™¤" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "ãƒãƒ¼ãƒˆ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "ã™ã¹ã¦ã®ãƒ›ã‚¹ãƒˆã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ããªã‘れã°ãªã‚‰ãªã„プロトコルを追加ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "プロトコルã®è¿½åŠ " #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "プロトコルã®ç·¨é›†" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "プロトコルã®å‰Šé™¤" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "プロトコル" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "ã“ã®ãƒžã‚·ãƒ³ã«æŽ¥ç¶šã§ãã‚‹ã™ã¹ã¦ã®ãƒ›ã‚¹ãƒˆã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ããªã‘れã°ãªã‚‰ãªã„ソースãƒãƒ¼ãƒˆã¾ãŸã¯ãƒãƒ¼ãƒˆç¯„囲を追加ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "é€ä¿¡å…ƒãƒãƒ¼ãƒˆ" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "マスカレード機能を使用ã™ã‚‹ã¨ãƒ­ãƒ¼ã‚«ãƒ«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’インターãƒãƒƒãƒˆã«ç¹‹ã’るルーターã¾ãŸã¯ãƒ›ã‚¹ãƒˆã‚’セットアップã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ローカルãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆä¸Šã‹ã‚‰ã¯è¦‹ãˆãªããªã‚Šã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆä¸Šã§ã¯ãƒ›ã‚¹ãƒˆãŒ " "1 ã¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã—ã¦è¡¨ç¤ºã•れã¾ã™ã€‚マスカレード機能㯠IPv4 é™å®šã§ã™ã€‚" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "マスカレードゾーン" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "マスカレード機能を有効ã«ã™ã‚‹ã¨ã€IPv4 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã§ IP ãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒæœ‰åйã«ãªã‚Šã¾ã™ã€‚" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "マスカレード機能" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ローカルシステム上ã®ä»»æ„ã®ãƒãƒ¼ãƒˆã‹ã‚‰åˆ¥ã®ãƒãƒ¼ãƒˆã¸ãƒãƒ¼ãƒˆè»¢é€ã€ãƒ­ãƒ¼ã‚«ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã‹ã‚‰åˆ¥ã®ã‚·ã‚¹ãƒ†ãƒ ã¸ã®ãƒãƒ¼ãƒˆè»¢é€ã‚’行ã†ãŸã‚ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’追加ã—ã¾ã™ã€‚別ã®ã‚·ã‚¹ãƒ†ãƒ ã¸ã®ãƒãƒ¼ãƒˆè»¢é€ã«ã¤ã„ã¦ã¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースãŒãƒžã‚¹ã‚«ãƒ¬ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹å ´åˆã«ã®ã¿æœ‰åйã§ã™ã€‚ãƒãƒ¼ãƒˆè»¢é€ã¯ " "IPv4 é™å®šã§ã™ã€‚" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "転é€ãƒãƒ¼ãƒˆã®è¿½åŠ " #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "転é€ãƒãƒ¼ãƒˆã®ç·¨é›†" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "転é€ãƒãƒ¼ãƒˆã®å‰Šé™¤" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ICMP (Internet Control Message Protocol) ã¯ã€ä¸»ã«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã® " "コンピュータ間ã§ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹ã®ã«ä½¿ç”¨ã•れã¾ã™ãŒã€æ›´ã«ã¯ ping ã®è¦æ±‚や応答ãªã©ã®æƒ…報メッセージã«ã‚‚使用ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "ä¸€è¦§å†…ã®æ‹’å¦ã•れるã¹ã ICMP タイプをマークã—ã¾ã™ã€‚ ãã®ä»–ã™ã¹ã¦ã® ICMP タイプã¯ãƒ•ァイアーウォールã®é€šéŽãŒè¨±å¯ã•れã¾ã™ã€‚ " "デフォルトã§ã¯ç„¡åˆ¶é™ã«ãªã£ã¦ã„ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "åè»¢ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ãŒæœ‰åйã«ã•れã¦ã„ã‚‹å ´åˆã€ãƒžãƒ¼ã‚¯ã•れ㟠ICMP エントリーã¯å—ã‘入れられã€ãã‚Œä»¥å¤–ã¯æ‹’å¦ã•れã¾ã™ã€‚ターゲット㌠DROP " "ã®ã‚¾ãƒ¼ãƒ³ã§ã¯ã€ãれらã¯ç ´æ£„ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "å転フィルター" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP フィルター" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "ã“ã“ã‹ã‚‰ã‚¾ãƒ¼ãƒ³ã®é«˜åº¦ãªè¨€èªžãƒ«ãƒ¼ãƒ«ã‚’設定ã§ãã¾ã™ã€‚" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "高度ãªãƒ«ãƒ¼ãƒ«ã®è¿½åŠ " #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "高度ãªãƒ«ãƒ¼ãƒ«ã®ç·¨é›†" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "高度ãªãƒ«ãƒ¼ãƒ«ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "高度ãªãƒ«ãƒ¼ãƒ«" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "インターフェースをゾーンã«å‰²ã‚Šå½“ã¦ã‚‹ãŸã‚ã®é …目を追加ã—ã¾ã™ã€‚ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ãŒæŽ¥ç¶šã«ã‚ˆã‚Šä½¿ç”¨ã•れる場åˆã€ã‚¾ãƒ¼ãƒ³ãŒæŽ¥ç¶šã§æŒ‡å®šã•れãŸã‚¾ãƒ¼ãƒ³ãŒè¨­å®šã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "インターフェースã®è¿½åŠ " #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "インターフェースã®ç·¨é›†" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "インターフェースã®å‰Šé™¤" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "ゾーンã«é€ä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚‚ã—ãã¯ã‚¨ãƒªã‚¢ã‚’ãƒã‚¤ãƒ³ãƒ‰ã™ã‚‹ãŸã‚ã«ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’追加ã—ã¾ã™ã€‚é€ä¿¡å…ƒã® MAC " "アドレスをãƒã‚¤ãƒ³ãƒ‰ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã—ã‹ã—ã€ãã®å ´åˆã«åˆ¶ç´„ãŒã‚りã¾ã™ã€‚ãƒãƒ¼ãƒˆãƒ•ォアーディングãŠã‚ˆã³ãƒžã‚¹ã‚«ãƒ¬ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã«ã¯ã€é€ä¿¡å…ƒ MAC " "アドレスã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“。" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "ソースã®è¿½åŠ " #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "ソースã®ç·¨é›†" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "ソースã®å‰Šé™¤" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "ゾーン" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "firewalld サービスã¨ã¯ãƒãƒ¼ãƒˆã‚„プロトコルã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã€é€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãªã©ã®çµ„ã¿åˆã‚ã›ã‚’指ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "サービスã®è¿½åŠ " #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "サービスã®ç·¨é›†" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "サービスã®å‰Šé™¤" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "ã‚µãƒ¼ãƒ“ã‚¹ã®æ¨™æº–ã®èª­ã¿è¾¼ã¿" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "ã™ã¹ã¦ã®ãƒ›ã‚¹ãƒˆã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã“ã¨ãŒå¿…è¦ãªè¿½åŠ ã®ãƒãƒ¼ãƒˆã‹ã€ãƒãƒ¼ãƒˆã®ç¯„囲を追加ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "エントリーã®ç·¨é›†" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "エントリーã®å‰Šé™¤" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "ã™ã¹ã¦ã®ãƒ›ã‚¹ãƒˆã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ããªã‘れã°ãªã‚‰ãªã„ソースãƒãƒ¼ãƒˆã¾ãŸã¯ãƒãƒ¼ãƒˆç¯„囲を追加ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "ソースãƒãƒ¼ãƒˆ" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfiler ヘルパーモジュールã¯ã€ã„ãã¤ã‹ã®ã‚µãƒ¼ãƒ“スを必è¦ã¨ã—ã¦ã„ã¾ã™" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "モジュール" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "é€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定ã™ã‚‹ã¨ã€ã‚µãƒ¼ãƒ“スã®é …ç›®ãŒé€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã‚¿ã‚¤ãƒ—ã«åˆ¶é™ã•れã¾ã™ã€‚ã©ã¡ã‚‰ã®é …目も空ã®å ´åˆã€åˆ¶é™ãŒã‚りã¾ã›ã‚“。" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "ã‚µãƒ¼ãƒ“ã‚¹ã¯æ°¸ç¶šçš„ãªè¨­å®šã®è¡¨ç¤ºç”»é¢ã ã‘ã§å¤‰æ›´ã§ãã¾ã™ã€‚サービスã®å®Ÿè¡Œæ™‚ã®è¨­å®šãŒå¤‰æ›´ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "IPSet ã¯ãƒ›ãƒ¯ã‚¤ãƒˆãƒªã‚¹ãƒˆã‚‚ã—ãã¯ãƒ–ラックリストを作æˆã§ãã€ãã®ä¸­ã«ã€IPアドレスやãƒãƒ¼ãƒˆç•ªå·ã€MAC ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æƒ…報を格ç´ã§ãã¾ã™ã€‚" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "IPSet ã®è¿½åŠ " #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "IPSet ã®ç·¨é›†" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "IPSet ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "IPSet ã®åˆæœŸå€¤ã®èª­ã¿è¾¼ã¿" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "IPSet エントリーã®ä¸€è¦§ã§ã¯ã€ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚ªãƒ—ションを使用ã—ã¦ã„ãªã„ IPSet ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã€firewalld " "ã«ã‚ˆã£ã¦è¿½åŠ ã•れãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®ã¿ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ipset コマンドを直接実行ã—ã¦è¿½åŠ ã—ãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ã¯è¡¨ç¤ºã•れã¾ã›ã‚“。" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "ã“ã® IPSet ã¯ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚ªãƒ—ションを使ã£ã¦ã„ã¾ã™ã€‚従ã£ã¦ã€ã“ã“ã«ã¯ã‚¨ãƒ³ãƒˆãƒªãƒ¼ãŒè¡¨ç¤ºã•れã¾ã›ã‚“。エントリー㯠ipset " "コマンドを直接実行ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "追加" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "エントリー" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "IPSets ã¯æ°¸ç¶šçš„ãªè¨­å®šã®è¡¨ç¤ºç”»é¢ã ã‘ã§ä½œæˆãŠã‚ˆã³å‰Šé™¤ãŒã§ãã¾ã™ã€‚" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld ã® ICMP タイプ㯠firewalld 用㮠Internet Control Message Protocol (ICMP) " "ã‚¿ã‚¤ãƒ—ã®æƒ…報をæä¾›ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ã®ç¨®é¡žã®è¿½åŠ " #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ã®ç¨®é¡žã®ç·¨é›†" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ã®ç¨®é¡žã®å‰Šé™¤" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP タイプã®åˆæœŸå€¤ã®èª­ã¿è¾¼ã¿" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "ã“ã® ICMP タイプ㌠IPv4 㨠IPv6 ã«å¯¾ã—ã¦åˆ©ç”¨å¯èƒ½ã§ã‚ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "ICMP ã‚¿ã‚¤ãƒ—ã¯æ°¸ç¶šçš„ãªè¨­å®šã®è¡¨ç¤ºç”»é¢ã ã‘ã§å¤‰æ›´ã§ãã¾ã™ã€‚ICMP タイプã®å®Ÿè¡Œæ™‚ã®è¨­å®šã¯å¤‰æ›´ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "ãƒãƒ¼ãƒˆã‚‚ã—ãã¯ãƒãƒ¼ãƒˆã®ç¯„囲を定義ã—ã€ãれをヘルパーã«ã‚ˆã£ã¦ãƒ¢ãƒ‹ã‚¿ãƒªãƒ³ã‚°ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ダイレクト設定ã«ã‚ˆã‚Šã€ãƒ•ァイアウォールã«ã‚ˆã‚Šç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚ã“れらã®ã‚ªãƒ—ションã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ iptables " "ã®åŸºæœ¬çš„ãªæ¦‚念ã€ã¤ã¾ã‚Šãƒ†ãƒ¼ãƒ–ルã€ãƒã‚§ã‚¤ãƒ³ã€ã‚³ãƒžãƒ³ãƒ‰ã€ãƒ‘ラメーターã€ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã«é–¢ã™ã‚‹çŸ¥è­˜ã‚’有ã—ã¦ã„ã‚‹ã“ã¨ã‚’剿ã«ã—ã¦ã„ã¾ã™ã€‚ダイレクト設定ã¯ã€ä»–ã®ãƒ•ァイアウォール機能を使用ã§ããªã„å ´åˆã«ã€æœ€çµ‚手段ã¨ã—ã¦ã®ã¿ä½¿ç”¨ã™ã¹ãã§ã™ã€‚" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "å„オプション㮠ipv 引数㯠ipv4, ipv6, eb ã®ã©ã‚Œã‹ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ipv4 を指定ã™ã‚‹ã¨ã€iptables " "ãŒä½¿ç”¨ã•れã¾ã™ã€‚ipv6 を指定ã™ã‚‹ã¨ã€ip6tables ãŒä½¿ç”¨ã•れã¾ã™ã€‚eb を指定ã™ã‚‹ã¨ã€ã‚¤ãƒ¼ã‚µãƒãƒƒãƒˆãƒ–リッジ (ebtables) " "ãŒä½¿ç”¨ã•れã¾ã™ã€‚" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "ルールã§ç”¨ã„る追加ã®ãƒã‚§ã‚¤ãƒ³ã€‚" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ãƒã‚§ã‚¤ãƒ³ã®è¿½åŠ " #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ãƒã‚§ã‚¤ãƒ³ã®ç·¨é›†" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ãƒã‚§ã‚¤ãƒ³ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ãƒã‚§ã‚¤ãƒ³" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "ルールを args 引数ã¨ã¨ã‚‚ã«ã€ãƒ†ãƒ¼ãƒ–ルã«ã‚ã‚‹ãƒã‚§ã‚¤ãƒ³ã«å„ªå…ˆåº¦ã‚’付ã‘ã¦è¿½åŠ ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "優先度ã¯ãƒ«ãƒ¼ãƒ«ã®é †åºã‚’ã¤ã‘ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚優先度 0 " "ã¯ãƒ«ãƒ¼ãƒ«ã‚’ãƒã‚§ã‚¤ãƒ³ã®æœ€åˆã«è¿½åŠ ã—ã¾ã™ã€‚より高ã„優先度をæŒã¤ãƒ«ãƒ¼ãƒ«ãŒã•らã«ä¸‹ã«è¿½åŠ ã•れã¾ã™ã€‚åŒã˜å„ªå…ˆåº¦ã‚’æŒã¤ãƒ«ãƒ¼ãƒ«ã¯åŒã˜ãƒ¬ãƒ™ãƒ«ã«ãªã‚Šã¾ã™ã€‚ã“れらã®ãƒ«ãƒ¼ãƒ«ã®é †åºã¯å›ºå®šã•れãšã€å¤‰æ›´ã•れるã‹ã‚‚ã—れã¾ã›ã‚“。ルールを確実ã«ä»–ã®ãƒ«ãƒ¼ãƒ«ã®å¾Œã‚ã«è¿½åŠ ã—ãŸã„å ´åˆã€æœ€åˆã«ä½Žã„優先度を使用ã—ã€æ¬¡ã«ã‚ˆã‚Šé«˜ã„優先度を使用ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "ルールã®è¿½åŠ " #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "ルールã®ç·¨é›†" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "ルールã®å‰Šé™¤" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "ルール" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "パススルールールã¯ç›´æŽ¥ãƒ•ã‚¡ã‚¤ã‚¢ã‚¦ã‚©ãƒ¼ãƒ«ã«æ¸¡ã•れるルールã§ã™ã€‚特別ãªãƒã‚§ã‚¤ãƒ³ã«ç½®ã‹ã‚Œã¾ã›ã‚“。iptables, ip6tables, ebtables " "ã®ã™ã¹ã¦ã®ã‚ªãƒ—ションãŒä½¿ç”¨ã§ãã¾ã™ã€‚" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "パススルールールを追加ã™ã‚‹å ´åˆã€ãƒ•ァイアウォールを壊ã•ãªã„ã‚ˆã†æ³¨æ„ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "パススルーã®è¿½åŠ " #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "パススルーã®ç·¨é›†" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "パススルーã®å‰Šé™¤" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "パススルー" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "ロックダウン機能ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¨ã‚¢ãƒ—リケーションã®ãƒãƒªã‚·ãƒ¼ã® firewalld " "å‘ã‘軽é‡ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã™ã€‚ã“れã«ã‚ˆã‚Šã€ãƒ•ァイアウォールã¸ã®å¤‰æ›´ãŒåˆ¶é™ã•れã¾ã™ã€‚ロックダウン・ホワイトリストã¯ã€ã‚³ãƒžãƒ³ãƒ‰ã€ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŠã‚ˆã³ãƒ¦ãƒ¼ã‚¶ãƒ¼ " "ID ã‚’å«ã‚られã¾ã™ã€‚" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "コンテキストã¯å®Ÿè¡Œä¸­ã®ã‚¢ãƒ—リケーションやサービスã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ¼ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(SELinux " "コンテキスト)ã§ã™ã€‚実行中ã®ã‚¢ãƒ—リケーションã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’確èªã™ã‚‹ã«ã¯ã€ps -e --contextコマンドを使用ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "コンテキストã®è¿½åŠ " #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "コンテキストã®ç·¨é›†" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "コンテキストã®å‰Šé™¤" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "コンテキスト" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "ホワイトリストã®ã‚³ãƒžãƒ³ãƒ‰ãŒã‚¢ã‚¹ã‚¿ãƒªã‚¹ã‚¯ '*' ã§çµ‚ã‚ã£ã¦ã„ã‚‹å ´åˆã€ãã®ã‚³ãƒžãƒ³ãƒ‰ã‹ã‚‰å§‹ã¾ã‚‹ã™ã¹ã¦ã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã«ä¸€è‡´ã—ã¾ã™ã€‚ã‚‚ã— '*' " "ãŒãªã‘れã°ã€å¼•æ•°ã‚’å«ã‚ã€ã‚³ãƒžãƒ³ãƒ‰ãŒå®Œå…¨ã«ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "コマンドラインã®è¿½åŠ " #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "コマンドラインã®ç·¨é›†" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "コマンドラインã®å‰Šé™¤" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "コマンドライン" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ユーザーå。" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ユーザーåã®è¿½åŠ " #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ユーザーåã®ç·¨é›†" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ユーザーåã®å‰Šé™¤" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ユーザーå" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ユーザー ID。" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ユーザー ID ã®è¿½åŠ " #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ユーザー ID ã®ç·¨é›†" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ユーザー ID ã®å‰Šé™¤" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ユーザー ID" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ç¾åœ¨ã®ã‚·ã‚¹ãƒ†ãƒ ã®æ¨™æº–ゾーン。" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "æ‹’å¦ã•れãŸãƒ­ã‚°:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "パニックモード:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "オートマãƒãƒƒã‚¯ãƒ˜ãƒ«ãƒ‘ー:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "ロックダウン:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "標準ゾーン:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "基本 IPSet 設定" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "基本IPSet設定を設定ã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "タイプ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "タイムアウト:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "ãƒãƒƒã‚·ãƒ¥ã‚µã‚¤ã‚º:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "最大è¦ç´ :" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "タイムアウトã®ç§’æ•°" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "ãƒãƒƒã‚·ãƒ¥ã‚µã‚¤ã‚ºã®åˆæœŸå€¤ã€ãƒ‡ãƒ•ォルト㯠1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "è¦ç´ ã®æœ€å¤§æ•°ã€ãƒ‡ãƒ•ォルト㯠65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "IPSet ã‚’é¸æŠžã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "æ‹’å¦ã•れãŸãƒ­ã‚°" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "æ‹’å¦ã•れãŸãƒ­ã‚°ã®å€¤ã‚’é¸æŠžã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "マーク" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "オプションã®ãƒžã‚¹ã‚¯ã¨å…±ã«ãƒžãƒ¼ã‚¯ã‚’入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "マークã¨ãƒžã‚¹ã‚¯ãƒ•ィールドã¯ã©ã¡ã‚‰ã‚‚ 32 ビットã®ç¬¦å·ãªã—数値ã«ãªã‚Šã¾ã™ã€‚" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "マーク:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "マスク:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "netfilter conntrack ãƒ˜ãƒ«ãƒ‘ãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- é¸æŠž -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "ãã®ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "ãƒãƒ¼ãƒˆã¨ãƒ—ロトコル" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ãƒãƒ¼ãƒˆãŠã‚ˆã³ãƒ—ロトコルを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ダイレクトルール" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "ipvã€ãƒ†ãƒ¼ãƒ–ルã€ãƒã‚§ã‚¤ãƒ³å„ªå…ˆåº¦ãŠã‚ˆã³å¼•数を入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "優先度:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "プロトコルを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "ä»–ã®ãƒ—ロトコル:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "高度ãªãƒ«ãƒ¼ãƒ«" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "高度ãªãƒ«ãƒ¼ãƒ«ã‚’入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "ホワイトリストã¾ãŸã¯ãƒ–ラックリストã«ã‚ˆã‚Šã€ãƒ›ã‚¹ãƒˆã¾ãŸã¯ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«å¯¾ã—ã¦è¦ç´ ã‚’éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–化ã—ã¾ã™ã€‚" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "é€ä¿¡å…ƒ:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "é€ä¿¡å…ˆ:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ログ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "監査:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 㨠IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "å転" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "ã“れを有効ã«ã™ã‚‹ã«ã¯ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’ 'reject' ã«ã—ã€ãƒ•ァミリーを 'ipv4' ã¾ãŸã¯ 'ipv6' ã®ã„ãšã‚Œã‹ (両方ã§ã¯ãªã„) " "ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "タイプ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "有効期é™:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "プレフィックス:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "レベル:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "è¦ç´ :" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "アクション:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "基本サービス設定" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "基本サービス設定を設定ã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ã‚µãƒ¼ãƒ“ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ユーザー ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ユーザー ID を入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ユーザーå" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ユーザーåを入力ã—ã¦ãã ã•ã„。" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "ラベル" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "基本ゾーン設定" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "基本ゾーン設定を設定ã—ã¦ãã ã•ã„:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "標準ターゲット" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ターゲット:" firewalld-0.4.4.6/po/ka.po000066400000000000000000001311371320241217000152030ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # George Machitidze , 2013 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:24-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Georgian (http://www.transifex.com/projects/p/firewalld/" "language/ka/)\n" "Language: ka\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ქსელური ფáƒáƒ áƒ˜" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ქსელური ფáƒáƒ áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ფáƒáƒ áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრების რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ქსელის ტრáƒáƒ¤áƒ˜áƒ™áƒ˜áƒ¡ სრული ბლáƒáƒ™áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "კáƒáƒ•შირი áƒáƒ áƒáƒ." #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "<ინტერფეისი>" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "áƒáƒ•ტáƒáƒ áƒ˜áƒ–ებრვერ მáƒáƒ®áƒ”რხდáƒ." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "სáƒáƒ®áƒ”ლი უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ქსელის ტრáƒáƒ¤áƒ˜áƒ™áƒ˜áƒ¡ სრულიáƒáƒ“ დáƒáƒ˜áƒ‘ლáƒáƒ™áƒ." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "áƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜ ზáƒáƒœáƒ”ბი áƒáƒ áƒáƒ." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD-თáƒáƒœ კáƒáƒ•შირი დáƒáƒ›áƒ§áƒáƒ áƒ“áƒ." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD-თáƒáƒœ კáƒáƒ•შირი გáƒáƒ¬áƒ§áƒ“áƒ." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD გáƒáƒ“áƒáƒ˜áƒ¢áƒ•ირთáƒ." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "ნáƒáƒ’ულისხმევი ზáƒáƒœáƒ შეიცვáƒáƒšáƒ - '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ქსელური ტრáƒáƒ¤áƒ˜áƒ™áƒ˜ áƒáƒ¦áƒáƒ áƒáƒ დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "áƒáƒ¥áƒ¢áƒ˜áƒ•ირებული" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "დეáƒáƒ¥áƒ¢áƒ˜áƒ•ირებული" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ხáƒáƒ¢áƒ£áƒšáƒ”ბის ჩáƒáƒ¢áƒ•ირთვრვერ მáƒáƒ®áƒ”რხდáƒ." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "სერვისი" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "პáƒáƒ áƒ¢áƒ˜" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "áƒáƒ¥áƒ›áƒ˜" #: ../src/firewall-config:560 msgid "To Port" msgstr "პáƒáƒ áƒ¢áƒ˜áƒ¡áƒ™áƒ”ნ" #: ../src/firewall-config:562 msgid "To Address" msgstr "მისáƒáƒ›áƒáƒ áƒ—ისკენ" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp-ის ტიპი" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ყურáƒáƒ“ღებáƒ" #: ../src/firewall-config:1612 msgid "Error" msgstr "შეცდáƒáƒ›áƒ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "ზáƒáƒœáƒ" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ზáƒáƒœáƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "იგნáƒáƒ áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ჩáƒáƒ“გმული ზáƒáƒœáƒ, სáƒáƒ®áƒ”ლის შეცვლრშეუძლებელიáƒ." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ჩáƒáƒ“გმული სერვისი, სáƒáƒ®áƒ”ლის შეცვლრშეუძლებელიáƒ." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ჩáƒáƒ“გმული icmp, სáƒáƒ®áƒ”ლის შეცვლრშეუძლებელიáƒ." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "მისáƒáƒ›áƒáƒ áƒ—ი" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "პáƒáƒ áƒ¢áƒ˜áƒ¡ გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ებáƒ" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "პáƒáƒ áƒ¢áƒ˜ / პáƒáƒ áƒ¢áƒ”ბის დიáƒáƒžáƒáƒ–áƒáƒœáƒ˜:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP მისáƒáƒ›áƒáƒ áƒ—ი:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "áƒáƒ¥áƒ›áƒ˜:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "წყáƒáƒ áƒ" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "დáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ”ბáƒ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "áƒáƒ“გილზე გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ებáƒ" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "სხვრპáƒáƒ áƒ¢áƒ˜áƒ¡áƒ™áƒ”ნ გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ებáƒ" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "სáƒáƒ®áƒ”ლი:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ვერსიáƒ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "მáƒáƒ™áƒšáƒ”:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "áƒáƒ¦áƒ¬áƒ”რáƒ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-ის ტიპი" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რი" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_ფáƒáƒ˜áƒšáƒ˜" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_პáƒáƒ áƒáƒ›áƒ”ტრები" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld-ის გáƒáƒ“áƒáƒ¢áƒ•ირთვáƒ" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ნáƒáƒ’ულისხმევი ზáƒáƒœáƒ˜áƒ¡ შეცვლáƒ" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "დáƒ_ხმáƒáƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ზáƒáƒœáƒ˜áƒ¡ დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ზáƒáƒœáƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ზáƒáƒœáƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "სერვისები" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "პáƒáƒ áƒ¢áƒ˜áƒ¡áƒ™áƒ”ნ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ზáƒáƒœáƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ზáƒáƒœáƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "პáƒáƒ áƒ¢áƒ”ბი" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ების პáƒáƒ áƒ¢áƒ˜áƒ¡ დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ების პáƒáƒ áƒ¢áƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ების პáƒáƒ áƒ¢áƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ფილტრი" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "სერვისის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "სერვისის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "სერვისის áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "მáƒáƒ“ულები" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP-ის ტიპის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP-ის ტიპის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP-ის ტიპის áƒáƒ›áƒáƒ¦áƒ”ბáƒ" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ნáƒáƒ’ულისხმევი ზáƒáƒœáƒ:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "პáƒáƒ áƒ¢áƒ˜ დრáƒáƒ¥áƒ›áƒ˜" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "გთხáƒáƒ•თ შეიყვáƒáƒœáƒáƒ— პáƒáƒ áƒ¢áƒ˜ დრáƒáƒ¥áƒ›áƒ˜." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "სხვრáƒáƒ¥áƒ›áƒ˜:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "" firewalld-0.4.4.6/po/kn.po000066400000000000000000002132741320241217000152230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # shanky , 2014 # shankar , 2006 # shankar , 2006 # shankar , 2007-2011 # shankar , 2006 # shanky , 2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 09:59-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Kannada (http://www.transifex.com/projects/p/firewalld/" "language/kn/)\n" "Language: kn\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ಫೈರà³à²µà²¾à²²à³ ಆಪà³à²²à³†à²Ÿà³" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ಫೈರà³à²µà²¾à²²à³" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ಫೈರà³à²µà²¾à²²à³ ಸà³à²µà²°à³‚ಪಣೆ" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "ಫೈರà³à²µà²¾à²²à³;ಜಾಲಬಂಧ;ಸà³à²°à²•à³à²·à²¤à³†;iptables;ನೆಟà³â€Œà²«à²¿à²²à³à²Ÿà²°à³â€Œ;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "'%s' ಸಂಪರà³à²•ಸಾಧನಕà³à²•ಾಗಿ ವಲಯವನà³à²¨à³ ಆರಿಸಿ." #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯ" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "'%s' ಸಂಪರà³à²•ಕà³à²•ಾಗಿ ವಲಯವನà³à²¨à³ ಆರಿಸಿ" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ಶೀಲà³à²¡à³à²¸à³ ಅಪà³/ಡೌನೠವಲಯಗಳನà³à²¨à³ ಸಂರಚಿಸà³" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "ಇಲà³à²²à²¿ ನೀವೠಶೀಲà³à²¡à³à²¸à³ ಅಪೠಮತà³à²¤à³ ಡೌನà³â€Œà²—ಾಗಿ ಬಳಸಲಾದ ವಲಯಗಳನà³à²¨à³ ಆರಿಸಬಹà³à²¦à³." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "ಈ ಸೌಲಭà³à²¯à²µà³ ಹೆಚà³à²šà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²µà²¾à²¦ ವಲಯಗಳನà³à²¨à³ ಬಳಸà³à²µ ಜನರಿಗೆ ಪà³à²°à²¯à³‹à²œà²¨à²µà²¾à²—à³à²¤à³à²¤à²¦à³†. " "ವಲಯಗಳ ಸಂಪರà³à²•ಗಳನà³à²¨à³ ಬದಲಾಯಿಸà³à²µ ಬಳಕೆದಾರರಿಗೆ, ಇದೠಬಹà³à²·à²ƒ ನಿಯಮಿತವಾದ ಉಪಯೋಗವನà³à²¨à³ " "ಒದಗಿಸಬಹà³à²¦à³." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ಶೀಲà³à²¡à³à²¸à³ ಅಪೠವಲಯ:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "ಶೀಲà³à²¡à³à²¸à³ ಡೌನೠವಲಯ:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "ಶೀಲà³à²¡à³à²¸à³ ಅಪà³" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "ಸೂಚನೆಗಳನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸà³" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ಫೈರà³à²µà²¾à²²à³ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಸಂಪಾದಿಸà³..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ಸಂಪರà³à²•ಗಳ ವಲಯಗಳನà³à²¨à³ ಬದಲಾಯಿಸà³..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ಶೀಲà³à²¡à³à²¸à³ ಅಪà³/ಡೌನೠವಲಯಗಳನà³à²¨à³ ಸಂರಚಿಸà³..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ಎಲà³à²²à²¾ ಜಾಲಬಂಧ ಸಂಚಾರವನà³à²¨à³ ನಿರà³à²¬à²‚ಧಿಸà³" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "ಸಂಪರà³à²•ಗಳà³" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "ಆಕರಗಳà³" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ದೃಢೀಕರಣವೠವಿಫಲಗೊಂಡಿದೆ." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟೠ%s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "ಹೆಸರೠಈಗಾಗಲೆ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ಫೈರà³à²µà²¾à²²à³ ಡೀಮನà³â€Œà²¨à³Šà²‚ದಿಗೆ ಸಂಪರà³à²•ವೠಕಡಿದೠಹೋಗಿದೆ" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ಎಲà³à²²à²¾ ಜಾಲಬಂಧ ಸಂಚಾರವನà³à²¨à³ ನಿರà³à²¬à²‚ಧಿಸಲಾಗಿದೆ." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯ: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "'{interface}' ಸಂಪರà³à²•ಸಾಧನದಲà³à²²à²¿à²¨ '{connection}' ಸಂಪರà³à²•ಕà³à²•ಾಗಿನ '{zone}' ವಲಯವೠ" "ಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿದೆ" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "'{interface}' ಸಂಪರà³à²•ಸಾಧನಕà³à²•ಾಗಿನ '{zone}' ವಲಯವೠಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿದೆ" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "'{source}' ಆಕರಕà³à²•ಾಗಿನ '{zone}' ವಲಯವೠಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿದೆ" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "ಯಾವà³à²¦à³† ಸಕà³à²°à²¿à²¯ ವಲಯಗಳಿಲà³à²²." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallID ಗೆ ಸಂಪರà³à²•ವನà³à²¨à³ ಸಾಧಿಸಲಾಗಿದೆ." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallID ಗೆ ಸಂಪರà³à²•ವೠತಪà³à²ªà²¿ ಹೋಗಿದೆ." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD ಅನà³à²¨à³ ಮರಳಿ ಲೋಡೠಮಾಡಲಾಗಿದೆ." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯವನà³à²¨à³ '%s' ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ಜಾಲಬಂಧ ಸಂಚಾರವನà³à²¨à³ ಈಗ ನಿರà³à²¬à²‚ಧಿಸಲಾಗಿಲà³à²²." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ಸಕà³à²°à²¿à²¯à²—ೊಂಡಿದೆ" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "ನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಂಡಿದೆ" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "'{interface}' ಸಂಪರà³à²•ಸಾಧನದಲà³à²²à²¿à²¨ '{connection}' ಸಂಪರà³à²•ಕà³à²•ಾಗಿನ '{zone}' " "{activated_deactivated} ವಲಯ" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "'{interface}' ಸಂಪರà³à²•ಸಾಧನಕà³à²•ಾಗಿ '{zone}' {activated_deactivated} ವಲಯ" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "'%s' ಸಂಪರà³à²•ಸಾಧನಕà³à²•ಾಗಿ '%s' ವಲಯವನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿದೆ." #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "'{source}' ಆಕರಕà³à²•ಾಗಿ '{zone}' {activated_deactivated} ವಲಯ" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "'%s' ಆಕರಕà³à²•ಾಗಿ '%s' ವಲಯವನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿದೆ." #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "ಬದಲಾವನೆಗಳನà³à²¨à³ ಅನà³à²µà²¯à²¿à²¸à²²à²¾à²—ಿದೆ." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "'%s' ಜಾಲಬಂಧದಿಂದ ಬಳಸಲಾಗಿದೆ" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "ಸಕà³à²°à²¿à²¯à²—ೊಂಡ" #: ../src/firewall-config:97 msgid "disabled" msgstr "ನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಂಡ" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ಚಿಹà³à²¨à³†à²—ಳನà³à²¨à³ ಲೋಡೠಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲತೆ." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "ಚಾಲನಾಸಮಯ" #: ../src/firewall-config:398 msgid "Permanent" msgstr "ಶಾಶà³à²µà²¤" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "ಸೇವೆ" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲà³" #: ../src/firewall-config:560 msgid "To Port" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨à²•à³à²•ೆ" #: ../src/firewall-config:562 msgid "To Address" msgstr "ಗೆ ವಿಳಾಸ" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp ಬಗೆ" #: ../src/firewall-config:817 msgid "Family" msgstr "ಕà³à²Ÿà³à²‚ಬ" #: ../src/firewall-config:819 msgid "Action" msgstr "ಕà³à²°à²¿à²¯à³†" #: ../src/firewall-config:821 msgid "Element" msgstr "ಅಂಶ" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "ಲಾಗà³" #: ../src/firewall-config:829 msgid "Audit" msgstr "ಆಡಿಟà³" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ಎಚà³à²šà²°à²¿à²•ೆ" #: ../src/firewall-config:1612 msgid "Error" msgstr "ದೋಷ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "ಸà³à²µà²¿à³•ಕರಿಸà³" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "ತಿರಸà³à²•ರಿಸà³" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ಬಿಟà³à²Ÿà³à²¬à²¿à²¡à³" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ಮಿತಿ" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "ಸೇವೆ" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲà³" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "ಛದà³à²®à²µà³‡à²·à²—ೊಳಿಕೆ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "ಮಟà³à²Ÿ" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ಹೌದà³" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "ವಲಯ" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "ವಲಯ '%s': '%s' ಸೇವೆಯೠಲಭà³à²¯à²µà²¿à²²à³à²²." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ತೆಗೆದೠಹಾಕà³" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "ಕಡೆಗಣಿಸà³" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "ವಲಯ '%s': ICMP '%s' ಬಗೆಯೠಲಭà³à²¯à²µà²¿à²²à³à²²." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ಒಳನಿರà³à²®à²¿à²¤ ವಲಯ, ಮರà³à²¹à³†à²¸à²°à²¿à²¸à³à²µà²¿à²•ೆಗೆ ಬೆಂಬಲವಿಲà³à²²." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ಎರಡನೆಯ" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "ನಿಮಿಷ" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ಗಂಟೆ" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ದಿನ" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "ತà³à²°à³à²¤à³" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "ಎಚà³à²šà²°à²¿à²•ೆ" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "ಸಂದಿಗà³à²§" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "ದೋಷ" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "ಎಚà³à²šà²°à²¿à²•ೆ" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "ಸೂಚನೆ" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "ಮಾಹಿತಿ" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ದೋಷನಿವಾರಣೆ" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "ಫಾರà³à²µà²¾à²°à³à²¡à³-ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ಸಂಪರà³à²•ಸಾಧನವನà³à²¨à³ ಛದà³à²®à²µà³‡à²¶à²—ೊಳಿಸದಲà³à²²à²¿ ಮಾತà³à²° ಇನà³à²¨à³Šà²‚ದೠವà³à²¯à²µà²¸à³à²¥à³†à²—ೆ ಫಾರà³à²µà²¾à²°à³à²¡à³ " "ಮಾಡà³à²µà³à²¦à³ ಉಪಯೋಗಕà³à²•ೆ ಬರà³à²¤à³à²¤à²¦à³†.\n" "ನೀವೠಈ ವಲಯವನà³à²¨à³ ಛದà³à²®à²µà³‡à²¶à²—ೊಳಿಸಲೠಬಯಸà³à²µà²¿à²°à²¾?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ಒಳ-ನಿರà³à²®à²¿à²¤ ಸೇವೆ, ಮರà³à²¹à³†à²¸à²°à²¿à²¸à³à²µà²¿à²•ೆಗೆ ಬೆಂಬಲವಿಲà³à²²." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ಒಳ-ನಿರà³à²®à²¿à²¤ icmp, ಮರà³à²¹à³†à²¸à²°à²¿à²¸à³à²µà²¿à²•ೆಗೆ ಬೆಂಬಲವಿಲà³à²²." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "'%s' ಆಕರಕà³à²•ಾಗಿ ವಲಯವನà³à²¨à³ ಆರಿಸಿ." #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ವಿಳಾಸ" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ದಯವಿಟà³à²Ÿà³ ಒಂದೠಆದೇಶಸಾಲನà³à²¨à³ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "ದಯಮಾಡಿ ಸನà³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "ದಯವಿಟà³à²Ÿà³ ಈ ಕೆಳಗಿನ ಪಟà³à²Ÿà²¿à²¯à²¿à²‚ದ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯವನà³à²¨à³ ಆರಿಸಿಕೊಳà³à²³à²¿." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ನೇರ ಸರಣಿ" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ದಯವಿಟà³à²Ÿà³ ipv ಮತà³à²¤à³ ಕೋಷà³à²Ÿà²•ವನà³à²¨à³ ಆರಿಸಿ ನಂತರ ಸರಣಿಯ ಹೆಸರನà³à²¨à³ ಆರಿಸಿ." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ಸರಣಿ:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "ಸà³à²°à²•à³à²·à²¤à³†" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "ಕೋಷà³à²Ÿà²•:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ನೇರ ಪಾಸà³â€Œà²¤à³à²°à³‚ ನಿಯಮ" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ದಯವಿಟà³à²Ÿà³ ipv ಅನà³à²¨à³ ಆರಿಸಿ ನಂತರ args ಅನà³à²¨à³ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨ ಫಾರà³à²µà²¾à²°à³à²¡à²¿à²‚ಗà³" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "ನಿಮà³à²® ಅಗತà³à²¯à²—ಳಿಗನà³à²—à³à²£à²µà²¾à²—ಿ ದಯವಿಟà³à²Ÿà³ ಮೂಲ ಹಾಗೠಉದà³à²¦à²¿à²·à³à²Ÿ ಸà³à²¥à²³à²¦ ಆಯà³à²•ೆಗಳನà³à²¨à³ ಆರಿಸಿ." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨/ಸಂಪರà³à²• ವà³à²¯à²¾à²ªà³à²¤à²¿:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP ವಿಳಾಸ:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "ಪà³à²°à³Šà²Ÿà³‹à²•ಾಲà³â€Œ:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "ಆಕರ" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ಗà³à²°à²¿" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "ನೀವೠಸà³à²¥à²³à³€à²¯ ಫಾರà³à²µà²¾à²¡à²¿à²‚ಗೠಅನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಿದಲà³à²²à²¿, ನೀವೠಒಂದೠಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ " "ಸೂಚಿಸಬೇಕà³. ಈ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà³ ಮೂಲ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²•à³à²•ೆ ಪà³à²°à²¤à³à²¯à³‡à²•ವಾಗಿರಬೇಕà³." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "ಸà³à²¥à²³à³€à²¯ ಫಾರà³à²µà²¾à²°à³à²¡à²¿à²‚ಗà³" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ಬೇರೊಂದೠಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²•à³à²•ೆ ಫಾರà³à²µà²¾à²°à³à²¡à³ ಮಾಡà³" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ಬೋಲà³à²¡à³ ನಮೂದà³à²—ಳೠಖಡà³à²¡à²¾à²¯à²µà²¾à²—ಿರà³à²¤à³à²¤à²µà³†, ಮಿಕà³à²•ವೆಲà³à²²à²¾ à²à²šà³à²›à²¿à²•ವಾಗಿರà³à²¤à³à²¤à²µà³†." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "ಹೆಸರà³:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ಆವೃತà³à²¤à²¿:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "ಸಂಕà³à²·à²¿à²ªà³à²¤:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ವಿವರಣೆ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "ಕà³à²Ÿà³à²‚ಬ:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ಮೂಲಭೂತ ICMP ಬಗೆ ಸಿದà³à²§à²¤à³†à²—ಳà³" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ದಯವಿಟà³à²Ÿà³ ಮೂಲಭೂತ ICMP ಬಗೆ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಸಂರಚಿಸಿ:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP ಬಗೆ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ದಯವಿಟà³à²Ÿà³ ಒಂದೠICMP ಬಗೆಯನà³à²¨à³ ಆರಿಸಿ" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "ನಮೂದನà³à²¨à³ ಸೇರಿಸಿ" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ಕಡತ(_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "ಆಯà³à²•ೆಗಳà³(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "FirewallD ಅನà³à²¨à³ ಮರಳಿ ಲೋಡೠಮಾಡà³" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ಫೈರà³à²µà²¾à²²à³ ನಿಯಮಗಳನà³à²¨à³ ಮರಳಿ ಲೋಡೠಮಾಡà³à²¤à³à²¤à²¦à³†. ಪà³à²°à²¸à²•à³à²¤ ಶಾಶà³à²µà²¤ ಸಂರಚನೆಯೠಹೊಸ ಚಾಲನಾ " "ಸಮಯದ ಸಂರಚನೆಯಾಗà³à²¤à³à²¤à²¦à³†. ಅಂದರೆ, ಎಲà³à²²à²¾ ಚಾಲನಾಸಮಯದ ಮಾತà³à²°à²¦ ಬದಲಾವಣೆಗಳೠಶಾಶà³à²µà²¤ " "ಸಂರಚನೆಯಲà³à²²à²¿ ಇರದೆ ಇದà³à²¦à²°à³‚ ಸಹ ಅವà³à²—ಳನà³à²¨à³ ಮರಳಿ ಲೋಡೠಆಗà³à²µà²µà²°à³†à²—ೆ ಮಾಡಲಾಗà³à²¤à³à²¤à²¦à³†, ಮತà³à²¤à³ " "ಅವà³à²—ಳೠಮರಳಿ ಲೋಡೠಮಾಡಿದಾಗ ಇಲà³à²²à²µà²¾à²—à³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ಒಂದೠಜಾಲಬಂಧ ಸಂಪರà³à²•ವೠಯಾವ ವಲಯಕà³à²•ೆ ಸಂಬಂಧಿಸಿದೆ ಎನà³à²¨à³à²µà³à²¦à²¨à³à²¨à³ ಬದಲಾಯಿಸಿ." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯವನà³à²¨à³ ಬದಲಿಸà³" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "ಸಂಪರà³à²•ಗಳೠಅಥವ ಸಂಪರà³à²•ಸಾಧನಗಳಿಗಾಗಿನ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯವನà³à²¨à³ ಬದಲಿಸಿ." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "ಪà³à²¯à²¾à²¨à²¿à²•ೠಸà³à²¥à²¿à²¤à²¿ ಎಂದರೆ ಎಲà³à²²à²¾ ಒಳಬರà³à²µ ಮತà³à²¤à³ ಹೊರಹೋಗà³à²µ ಪà³à²¯à²¾à²•ೆಟà³â€Œà²—ಳನà³à²¨à³ " "ಬಿಟà³à²Ÿà³à²¬à²¿à²¡à²²à²¾à²—à³à²¤à³à²¤à²¦à³† ಎಂದರà³à²¥." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "ಪà³à²¯à²¾à²¨à²¿à²•ೠಸà³à²¥à²¿à²¤à²¿" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "ಕೇವಲ ಲಾಕà³â€Œà²¡à³Œà²¨à³ ವೈಟà³â€Œà²²à²¿à²¸à³à²Ÿà²¿à²¨à²²à³à²²à²¿à²¨ ಅನà³à²µà²¯à²—ಳೠಮಾತà³à²° ಬದಲಾಯಿಸಲೠಅವಕಾಶ ಇರà³à²µà²‚ತೆ " "ಫೈರà³à²µà²¾à²²à³ ಸಂರಚನೆಯನà³à²¨à³ ಲಾಕà³â€Œà²¡à³Œà²¨à³ ಲಾಕೠಮಾಡà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "ಲಾಕà³â€Œà²¡à³Œà²¨à³" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "ಚಾಲನಾಸಮಯದ ಸಂರಚನೆಯನà³à²¨à³ ಶಾಶà³à²µà²¤à²µà²¾à²—ಿಸà³" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "ಶಾಶà³à²µà²¤à²µà²¾à²¦ ಚಾಲನಾಸಮಯ" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "ನೋಟ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP ಬಗೆಗಳà³" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ನೇರ ಸಂರಚನೆ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "ಲಾಕà³â€Œà²¡à³Œà²¨à³ ವೈಟà³â€Œà²²à²¿à²¸à³à²Ÿà³" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "ಸಹಾಯ(_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "ಸಂರಚನೆ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "ಪà³à²°à²¸à²•à³à²¤ ಗೋಚರಿಸà³à²µ ಸಂರಚನೆ. ಚಾಲನಾಸಮಯದ ಸಂರಚನೆಯೠನಿಜವಾದ ಸಕà³à²°à²¿à²¯ ಸಂರಚನೆಯಾಗಿದೆ. " "ಶಾಶà³à²µà²¤ ಸಂರಚನೆಯೠಸೇವೆ ಅಥವ ವà³à²¯à²µà²¸à³à²¥à³†à²¯à²¨à³à²¨à³ ಮರಳಿ ಲೋಡೠಮಾಡà³à²µà²¿à²•ೆ ಅಥವ ಮರಳಿ " "ಆರಂಭಿಸà³à²µà²¿à²•ೆಯ ನಂತರ ಸಕà³à²°à²¿à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "ಒಂದೠfirewalld ವಲಯವà³, ವಲಯಕà³à²•ೆ ಬರà³à²µ ಜಾಲಬಂಧ ಸಂಪರà³à²•ಗಳà³, ಸಂಪರà³à²•ಸಾಧನಗಳೠ" "(ಇಂಟರà³à²«à³‡à²¸à²¸à³) ಮತà³à²¤à³ ಆಕರ ವಿಳಾಸಗಳಿಗಾಗಿನ ನಂಬಿಕೆಯ ಮಟà³à²Ÿà²µà²¨à³à²¨à³ ವಿವರಿಸà³à²¤à³à²¤à²¦à³†. ವಲಯವೠ" "ಸೇವೆಗಳà³, ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²—ಳà³, ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲà³â€Œà²—ಳà³, ಛದà³à²®à²µà³‡à²¶à²—ೊಳಿಕೆ, ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨/ಪà³à²¯à²¾à²•ೆಟೠ" "ಫಾರà³à²µà²¾à²°à³à²¡à²¿à²‚ಗà³, icmp ಫಿಲà³à²Ÿà²°à³à²—ಳೠಮತà³à²¤à³ ಸಮೃದà³à²§ ನಿಯಮಗಳನà³à²¨à³ ಹೊಂದಿರà³à²¤à³à²¤à²¦à³†. ವಲಯವೠ" "ಸಂಪರà³à²•ಸಾಧನಗಳೠಮತà³à²¤à³ ಆಕರ ವಿಳಾಸಗಳಿಗೆ ಬದà³à²§à²µà²¾à²—ಿರಬಹà³à²¦à³." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ವಲಯವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ವಲಯವನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ವಲಯವನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ವಲಯದ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²—ಳನà³à²¨à³ ಲೋಡೠಮಾಡà³" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ಯಾವ ಸೇವೆಗಳೠನಂಬಿಕಸà³à²¤ ಎಂದೠಇಲà³à²²à²¿ ನೀವೠಸೂಚಿಸಬಹà³à²¦à³. ನಂಬಿಕಸà³à²¤ ಸೇವೆಗಳನà³à²¨à³ ಈ " "ವಲಯಕà³à²•ೆ ಬರà³à²µ ಸಂಪರà³à²•ಗಳà³, ಸಂಪರà³à²•ಸಾಧನಗಳೠ(ಇಂಟರà³à²«à³‡à²¸à²¸à³) ಮತà³à²¤à³ ಆಕರಗಳಿಂದ ತಲà³à²ªà³à²µ " "ಎಲà³à²²à²¾ ಅತಿಥೇಯಗಳಿಂದ ಹಾಗೠಜಾಲಬಂಧಗಳಿಂದ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²¬à²¹à³à²¦à²¾à²—ಿರà³à²¤à³à²¤à²µà³†." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "ಸೇವೆಗಳà³" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "ಗಣಕಕà³à²•ೆ ಸಂಪರà³à²• ಜೋಡಿಸà³à²µ ಎಲà³à²²à²¾ ಅತಿಥೇಯಗಳಿಂದ ಅಥವ ಜಾಲಬಂಧಗಳಿಂದ " "ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²¬à²¹à³à²¦à²¾à²¦à²‚ತ ಹೆಚà³à²šà³à²µà²°à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²—ಳನà³à²¨à³ ಅಥವ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ " "ವà³à²¯à²¾à²ªà³à²¤à²¿à²—ಳನà³à²¨à³ ಸೇರಿಸಿ." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨à²•à³à²•ೆ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²—ಳà³" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "ನಿಮà³à²® ಸà³à²¥à²³à³€à²¯ ಜಾಲಬಂಧಕà³à²•ೆ ಸಂಪರà³à²• ಕಲà³à²ªà²¿à²¸à³à²µ ಅತಿಥೇಯ ಅಥವ ರೌಟರೠಅನà³à²¨à³ ಸಂಯೋಜಿಸà³à²µà²¾à²— " "ಛದà³à²®à²µà³‡à²¶à²—ೊಳಿಕೆಯà³(Masquerading) ಸಹಾಯಕವಾಗà³à²¤à³à²¤à²¦à³†. ನಿಮà³à²® ಸà³à²¥à²³à³€à²¯ ಜಾಲಬಂಧವೠ" "ಅಂತರà³à²œà²¾à²²à²•à³à²•ೆ ಒಂದೠಅತಿಥೇಯವಾಗಿ ಗೋಚರಿಸà³à²µà³à²¦à²¿à²²à³à²². ಛದà³à²®à²µà³‡à²¶à²¿à²¸à³à²µà³à²¦à³ IPv4 ನಲà³à²²à²¿ ಮಾತà³à²°." "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ಛದà³à²®à²µà³‡à²·à²—ೊಳಿಕೆ ವಲಯ" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "ನೀವೠಛದà³à²®à²µà³‡à²¶à²—ೊಳಿಕೆಯನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸà³à²µà³à²¦à²¾à²¦à²°à³†, IP ಫಾರà³à²µà²¾à²°à³à²¡à²¿à²‚ಗೠಅನà³à²¨à³ IPv4 " "ಜಾಲಬಂಧಗಳಿಗಾಗಿ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಬಹà³à²¦à²¾à²—ಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "ಛದà³à²®à²µà³‡à²·à²—ೊಳಿಕೆ" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ಸà³à²¥à²³à³€à²¯ ಗಣಕದಲà³à²²à²¿à²¨ ಒಂದೠಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²¦à²¿à²‚ದ ಇನà³à²¨à³Šà²‚ದಕà³à²•ೆ ಅಥವ ಸà³à²¥à²³à³€à²¯ ಗಣಕದಿಂದ " "ಇನà³à²¨à³Šà²‚ದೠಗಣಕಕà³à²•ೆ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²—ಳನà³à²¨à³ ಫಾರà³à²µà²¾à²°à³à²¡à³â€Œà²®à²¾à²¡à²²à³ ನಮೂದà³à²—ಳನà³à²¨à³ ಸೇರಿಸಿ. ಬೇರೆ " "ಗಣಕಕà³à²•ೆ ಫಾರà³à²µà²¾à²°à³à²¡à³â€Œ ಮಾಡà³à²µà³à²¦à³, ಸಂಪರà³à²•ಸಾಧನವೠಮರೆಮಾಚಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³à²¦à²²à³à²²à²¿ ಮಾತà³à²° " "ಪà³à²°à²¯à³‹à²œà²¨à²•ಾರಿಯಾಗà³à²¤à³à²¤à²¦à³†. ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ಫಾರà³à²µà²¾à²¡à²¿à²‚ಗೠಕೇವಲ IPv4 ಮಾತà³à²° ಆಗಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ಫಾರà³à²µà²¾à²°à³à²¡à³ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ಫಾರà³à²µà²¾à²°à³à²¡à³ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ಫಾರà³à²µà²¾à²°à³à²¡à³ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ಇಂಟರà³à²¨à³†à²Ÿà³ ಕಂಟà³à²°à³‹à²²à³ ಮೆಸೇಜೠಪà³à²°à³Šà²Ÿà³‹à²•ಾಲೠ(ICMP) ಹೆಚà³à²šà²¾à²—ಿ ಜಾಲದೊಳಗಿನ ಗಣಕಗಳ ನಡà³à²µà³† " "ದೋಷ ಸಂದೇಶಗಳನà³à²¨à³ ಕಳà³à²¹à²¿à²¸à²²à³ ಬಳಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†, ಆದರೆ ಇದರ ಜೊತೆಗೆ ಮಾಹಿತಿಯ ಸಂದೇಶಗಳಾದಂತಹ " "ಪಿಂಗೠಮನವಿಗಳೠಹಾಗೠಪà³à²°à²¤à³à²¯à³à²¤à³à²¤à²°à²—ಳನà³à²¨à³‚ ಸಹ ಕಳà³à²¹à²¿à²¸à²²à³ ಬಳಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "ಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿à²°à³à²µ ತಿರಸà³à²•ರಿಸಬೇಕಿರà³à²µ ICMP ಬಗೆಗಳನà³à²¨à³ ಗà³à²°à³à²¤à³ ಹಾಕಿ. ಎಲà³à²²à²¾ ಇತರೆ ICMP " "ಬಗೆಗಳೠಫೈರà³à²µà²¾à²²à³ ಮೂಲಕ ಹಾದà³à²¹à³‹à²—ಲೠಅನà³à²®à²¤à²¿à²¸à²²à³à²ªà²¡à³à²¤à³à²¤à²µà³†. ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²µà²¾à²—ಿ ಯಾವà³à²¦à³† " "ಮಿತಿ ಇರà³à²µà³à²¦à²¿à²²à³à²²." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ಶೋಧಕ" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "ಇಲà³à²²à²¿ ನೀವೠವಲಯಕà³à²•ಾಗಿ ಸಮೃದà³à²§ ಭಾಷಾ ನಿಯಮಗಳನà³à²¨à³ ಹೊಂದಿಸಬಹà³à²¦à³." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "ಸಮೃದà³à²§ ನಿಯಮವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "ಸಮೃದà³à²§ ನಿಯಮವನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "ಸಮೃದà³à²§ ನಿಯಮ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "ಸಮೃದà³à²§ ನಿಯಮಗಳà³" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "ಸಂಪರà³à²•ಸಾಧನಗಳನà³à²¨à³ ವಲಯಕà³à²•ೆ ಬೈಂಡೠಮಾಡಲೠನಮೂದà³à²—ಳನà³à²¨à³ ಸೇರಿಸಿ. ಸಂಪರà³à²•ಸಾಧನವನà³à²¨à³ " "ಒಂದೠಸಂಪರà³à²•ದಿಂದ ಬಳಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³à²¦à²°à³†, ವಲಯವನà³à²¨à³ ಸಂಪರà³à²•ದಿಂದ ಸೂಚಿಸಲಾದ ವಲಯಕà³à²•ೆ " "ಹೊಂದಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ಸಂಪರà³à²•ಸಾಧನವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ಸಂಪರà³à²•ಸಾಧನವನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ಸಂಪರà³à²•ಸಾಧನವನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "ಒಂದà³â€Œ ಆಕರವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "ಆಕರವನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "ಆಕರವನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "ವಲಯಗಳà³" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "ಒಂದೠfirewalld ಸೇವೆಯೠಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²—ಳà³, ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲà³â€Œà²—ಳà³, ಮಾಡà³à²¯à³‚ಲà³â€Œà²—ಳೠಮತà³à²¤à³ " "ಉದà³à²§à³‡à²¶à²¿à²¤ ವಿಳಾಸಗಳ ಒಂದೠಸಂಯೋಜನೆಯಾಗಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "ಸೇವೆಯನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "ಸೇವೆಯನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "ಸೇವೆಯನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "ಸೇವೆ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²—ಳನà³à²¨à³ ಲೋಡೠಮಾಡà³" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "ನಮೂದನà³à²¨à³ ಸಂಪಾದಿಸಿ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "ನಮೂದನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•ಿ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ಮಾಡà³à²¯à³‚ಲà³â€Œà²—ಳà³" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ನೀವೠಉದà³à²§à³‡à²¶à²¿à²¤ ವಿಳಾಸವನà³à²¨à³ ಸೂಚಿಸಿದಲà³à²²à²¿, ಸೇವೆಯ ನಮೂದನà³à²¨à³ ಉದà³à²§à³‡à²¶à²¿à²¤ ವಿಳಾಸ ಮತà³à²¤à³ " "ಬಗೆಗೆ ಮಿತಿಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¦à³†. ಎರಡೂ ನಮೂದಗಳನà³à²¨à³ ಖಾಲಿ ಬಿಟà³à²Ÿà²²à³à²²à²¿, ಯಾವà³à²¦à³† ಮಿತಿ " "ಇರà³à²µà³à²¦à²¿à²²à³à²²." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "ಸೇವೆಗಳನà³à²¨à³ ಶಾಶà³à²µà²¤ ಸಂರಚನಾ ನೋಟದಲà³à²²à²¿ ಮಾತà³à²° ಬಳಸಲೠಸಾಧà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†. ಸೇವೆಗಳ " "ಚಾಲನಾಸಮಯ ಸಂರಚನೆಯೠನಿಶà³à²šà²¿à²¤à²µà²¾à²—ಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "ಒಂದೠfirewalld icmptype ಎನà³à²¨à³à²µà³à²¦à³ firewalld ಗಾಗಿನ ಇಂಟರà³à²¨à³†à²Ÿà³ ಕಂಟà³à²°à³‹à²²à³ " "ಮೆಸೇಜಿಂಗೠಪà³à²°à³Šà²Ÿà³Šà²•ಾಲೠ(ICMP) ಗಾಗಿ ಮಾಹಿತಿಯನà³à²¨à³ ಒದಗಿಸà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ಬಗೆಯನà³à²¨à³ ಸೇರಿಸಿ" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ಬಗೆಯನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ಬಗೆಯನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ಬಗೆಯ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²—ಳನà³à²¨à³ ಲೋಡೠಮಾಡà³" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "ಈ ICMP ಬಗೆಯೠIPv4 ಮತà³à²¤à³/ಅಥವ IPv6 ಗಾಗಿ ಲಭà³à²¯à²µà²¿à²¦à³†à²¯à³† ಎನà³à²¨à³à²µà³à²¦à²¨à³à²¨à³ ಸೂಚಿಸಿ." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP ಬಗೆಗಳನà³à²¨à³ ಶಾಶà³à²µà²¤ ಸಂರಚನಾ ನೋಟದಲà³à²²à²¿ ಮಾತà³à²° ಬಳಸಲೠಸಾಧà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†. ICMP ಬಗೆಗಳ " "ಚಾಲನಾಸಮಯ ಸಂರಚನೆಯೠನಿಶà³à²šà²¿à²¤à²µà²¾à²—ಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ನೇರ ಸಂರಚನೆಯೠಫೈರà³à²µà²¾à²²à³â€Œà²—ೆ ಹೆಚà³à²šà³ ನೇರವಾದ ಪà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ ಒದಗಿಸà³à²¤à³à²¤à²¦à³†. ಈ " "ಆಯà³à²•ೆಗಳಿಗಾಗಿ ಬಳಕೆದಾರರೠಮೂಲಭೂತ iptables ಪರಿಕಲà³à²ªà²¨à³†à²—ಳನà³à²¨à³ ತಿಳಿಯà³à²µ " "ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†, ಅಂದರೆ, ಕೋಷà³à²Ÿà²•ಗಳà³, ಸರಣಿಗಳà³, ಆದೇಶಗಳà³, ನಿಯತಾಂಕಗಳೠಮತà³à²¤à³ ಗà³à²°à²¿à²—ಳà³." " ನೇರ ಸಂರಚನೆಯನà³à²¨à³ ಬೇರವಾವà³à²¦à³† firewalld ಯ ಸೌಲಭà³à²¯à²—ಳನà³à²¨à³ ಬಳಸಲೠಸಾಧà³à²¯à²µà²¾à²—ದೆ ಇದà³à²¦à²¾à²— " "ಮಾತà³à²° ಕೊನೆಯ ಉಪಾಯವಾಗಿ ಬಳಸಬೇಕ." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ಪà³à²°à²¤à²¿à²¯à³Šà²‚ದೠಆಯà³à²•ೆಯ ipv ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³â€Œ ipv4 ಅಥವ ipv6 ಅಥವ eb ಆಗಿರಬೇಕà³. ipv4 " "ನೊಂದಿಗೆ ಇದೠiptables ಗಾಗಿ, ip6tables ಗಾಗಿ ipv6 ನೊಂದಿಗೆ ಮತà³à²¤à³ ಎತರà³à²¨à³†à²Ÿà³ " "ಬà³à²°à²¿à²œà³â€Œà²—ಳಿಗಾಗಿ (ebtables) eb ಇರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "ನಿಯಮಗಳೊಂದಿಗೆ ಬಳಸಲೠಹೆಚà³à²šà³à²µà²°à²¿ ಸರಣಿಗಳà³." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ಸರಣಿಯನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ಸರಣಿಯನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ಸರಣಿಯನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ಸರಣಿಗಳà³" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "ಒಂದೠಆದà³à²¯à²¤à³†à²¯à³Šà²‚ದಿಗೆ ಕೋಷà³à²Ÿà²•ವೊಂದರಲà³à²²à²¿ ಒಂದೠಸರಣಗೆ ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³â€Œà²—ಳ args ನೊಂದಿಗೆ " "ಒಂದೠನಿಯಮವನà³à²¨à³ ಸೇರಿಸà³." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ನಿಯಮಗಳನà³à²¨à³ ಕà³à²°à²®à²µà²¾à²—ಿರಿಸಲೠಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. ಆದà³à²¯à²¤à³† 0 ಎಂದರೆ ಸರಣಿಯ " "ಮೇಲà³à²­à²¾à²—ದಲà³à²²à²¿ ನಿಯಮವನà³à²¨à³ ಸೇರಿಸೠಎಂದರà³à²¥, ಹೆಚà³à²šà²¿à²¨ ಆದà³à²¯à²¤à³†à²¯à²²à³à²²à²¿ ನಿಯಮವನà³à²¨à³ ಇನà³à²¨à³‚ " "ಕೆಳಗೆ ಸೇರಿಸಲಾಗà³à²¤à³à²¤à²¦à³†. ಒಂದೇ ಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಹೊಂದಿರà³à²µ ನಿಯಮಗಳೠಒಂದೇ ಹಂತದಲà³à²²à²¿ " "ಇರà³à²¤à³à²¤à²µà³† ಮತà³à²¤à³ ಈ ನಿಯಮಗಳ ಅನà³à²•à³à²°à²®à²µà³ ಒಂದೇ ರೀತಿ ಇರದೆ ಬದಲಾವಣೆ ಹೊಂದà³à²µ ಸಾಧà³à²¯à²¤à³† " "ಇರà³à²¤à³à²¤à²¦à³†. ಒಂದೠನಿಯಮದ ನಂತರ ಇನà³à²¨à³Šà²‚ದೠನಿಯಮವನà³à²¨à³ ಸೇರಿಸಬೇಕೠಎನà³à²¨à³à²µà³à²¦à²¨à³à²¨à³ " "ಖಚಿತಪಡಿಸಿಕೊಳà³à²³à²²à³ ನೀವೠಬಯಸಿದಲà³à²²à²¿, ಮೊದಲನೆಯದಕà³à²•ೆ ಕಡಿಮೆ ಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಮತà³à²¤à³ " "ನಂತರದವà³à²—ಳಿಗೆ ಹೆಚà³à²šà²¿à²¨ ಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಬಳಸಿ." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "ನಿಯಮವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "ನಿಯಮವನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "ನಿಯಮವನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "ನಿಯಮಗಳà³" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ಪಾಸà³â€Œà²¤à³à²°à³‚ ನಿಯಮಗಳನà³à²¨à³ ನೇರವಾಗಿ ಫೈರà³à²µà²¾à²²à³â€Œ ಮà³à²–ಾಂತರ ಹಾದà³à²¹à³‹à²—à³à²µà²‚ತೆ ಮಾಡಲಾಗà³à²¤à³à²¤à²¦à³† " "ಮತà³à²¤à³ ಅದನà³à²¨à³ ವಿಶೇಷ ಸರಣಿಗಳಲà³à²²à²¿ ಇರಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²². ಎಲà³à²²à²¾ iptables, ip6tables " "ಮತà³à²¤à³ ebtables ಆಯà³à²•ೆಗಳನà³à²¨à³ ಬಳಸಬಹà³à²¦à³." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "ಪಾಸà³â€Œà²¤à³à²°à³‚ ನಿಯಮಗಳೠಫೈರà³à²µà²¾à²²à³â€Œà²—ೆ ತೊಂದರೆ ಮಾಡದಂತೆ ದಯವಿಟà³à²Ÿà³ ಎಚà³à²šà²°à²µà²¹à²¿à²¸à²¿." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "ಪಾಸà³â€Œà²¤à³à²°à³‚ ಅನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "ಪಾಸà³â€Œà²¤à³à²°à³‚ ಅನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "ಪಾಸà³â€Œà²¤à³à²°à³‚ ಅನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ಪಾಸà³â€Œà²¤à³à²°à³‚" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "ಲಾಕà³â€Œà²¡à³Œà²¨à³ ಸೌಲಭà³à²¯à²µà³ firewalld ಗಾಗಿನ ಬಳಕೆದಾರ ಮತà³à²¤à³ ಅನà³à²µà²¯ ಪಾಲಿಸಿಗಳ ಒಂದೠಹಗà³à²° " "ಆವೃತà³à²¤à²¿à²¯à²¾à²—ಿದೆ. ಇದೠಫೈರà³â€Œà²µà²¾à²²à³â€Œà²—ೆ ಬದಲಾವಣೆಗಳನà³à²¨à³ ಮಿತಿಗೊಳಿಸà³à²¤à³à²¤à²¦à³†. ಲಾಕà³â€Œà²¡à³Œà²¨à³â€Œ " "ವೈಟà³â€Œà²²à²¿à²¸à³à²Ÿà³ ಆದೇಶಗಳà³, ಸನà³à²¨à²¿à²µà³‡à²¶à²—ಳà³, ಬಳಕೆದಾರರೠಮತà³à²¤à³ ಬಳಕೆದಾರ idಗಳನà³à²¨à³ " "ಹೊಂದಿರà³à²¤à³à²¤à²¦à³†." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "ಸನà³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "ಸನà³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "ಸನà³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "ಸನà³à²¨à²¿à²µà³‡à²¶à²—ಳà³" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "ವೈಟà³â€Œà²²à²¿à²¸à³à²Ÿà²¿à²¨à²²à³à²²à²¿à²¨ ಒಂದೠಆದೇಶದ ನಮೂದೠಒಂದೠಆಸà³à²Ÿà³†à²°à²¿à²¸à³à²•à³ '*' ಇಂದ " "ಕೊನೆಗೊಳà³à²³à³à²¤à³à²¤à²¿à²¦à³à²¦à²°à³†, ಆದೇಶದಿಂದ ಆರಂಭಗೊಳà³à²³à³à²µ ಎಲà³à²²à²¾ ಆದೇಶ ಸಾಲà³à²—ಳೠ" "ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²µà³†. '*' ಇಲà³à²²à²¦à³† ಇದà³à²¦à²²à³à²²à²¿, ಪರಿಪೂರà³à²£à²µà²¾à²¦ ಆದೇಶವನà³à²¨à³ ಹೊಂದಿರà³à²µ " "ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³â€Œà²—ಳೠಹೊಂದಿಕೆಯಾಗà³à²µà³à²¦à³ ಅತà³à²¯à²—ತà³à²¯." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "ಆಜà³à²žà²¾ ಸಾಲನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "ಆಜà³à²žà²¾ ಸಾಲನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "ಆಜà³à²žà²¾ ಸಾಲನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "ಆದೇಶ ಸಾಲà³à²—ಳà³" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ಬಳಕೆದಾರ ಹೆಸರà³à²—ಳà³." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ಬಳಕೆದಾರ ಹೆಸರನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ಬಳಕೆದಾರ ಹೆಸರನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ಬಳಕೆದಾರ ಹೆಸರನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ಬಳಕದಾರ ಹೆಸರà³à²—ಳà³" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ಬಳಕೆದಾರ idಗಳà³." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ಬಳಕೆದಾರ Idಯನà³à²¨à³ ಸೇರಿಸà³" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ಬಳಕೆದಾರ Idಯನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ಬಳಕೆದಾರ Id ಯನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à³" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ಬಳಕೆದಾರ idಗಳà³" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಪà³à²°à²¸à²•à³à²¤ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯ." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "ಪà³à²¯à²¾à²¨à²¿à²•ೠಸà³à²¥à²¿à²¤à²¿:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "ಲಾಕà³â€Œà²¡à³Œà²¨à³:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ವಲಯ:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "ಸಂಪರà³à²• ಸà³à²¥à²¾à²¨ ಹಾಗೠಪà³à²°à³‹à²Ÿà³Šà²•ಾಲà³" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ಒಂದೠಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ಮತà³à²¤à³ ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲೠಅನà³à²¨à³ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ನೇರ ನಿಯಮ" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "ದಯವಿಟà³à²Ÿà³ ipv ಮತà³à²¤à³ ಕೋಷà³à²Ÿà²•ವನà³à²¨à³, ಸರಣಿ ಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಆರಿಸಿ ನಂತರ args ಅನà³à²¨à³ " "ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "ಆದà³à²¯à²¤à³†:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ದಯವಿಟà³à²Ÿà³ ಒಂದೠಪà³à²°à³Šà²Ÿà³Šà²•ಾಲೠಅನà³à²¨à³ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "ಇತರೆ ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲà³:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "ಸಮೃದà³à²§ ನಿಯಮ" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ದಯವಿಟà³à²Ÿà³ ಒಂದೠಸಮೃದà³à²§ ನಿಯಮವನà³à²¨à³ ನಮೂದಿಸà³." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "ಆತಿಥೇಯ ಅಥವ ಜಾಲಬಂಧದ ವೈಟೠಅಥವ ಬà³à²²à²¾à²•à³â€Œà²²à²¿à²¸à³à²Ÿà³ ಮಾಡà³à²µà²¿à²•ೆಗಾಗಿ ಅಂಶವನà³à²¨à³ " "ನಿಷà³à²•à³à²°à²¿à²¯à³Šà²³à²¿à²¸à²¿." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "ಆಕರ:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "ಗà³à²°à²¿:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ಲಾಗà³:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ಆಡಿಟà³:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 ಮತà³à²¤à³ ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "ವಿಲೋಮಗೊಳಿಸಿದ" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "ಇದನà³à²¨à³ ನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಳಿಸಲೠಕà³à²°à²¿à²¯à³†à²¯à³ 'reject' ಮತà³à²¤à³ ಕà³à²Ÿà³à²‚ಬವೠ(ಫà³à²¯à²¾à²®à²¿à²²à²¿) 'ipv4' " "ಅಥವ 'ipv6' (ಎರಡೂ ಒಟà³à²Ÿà²¿à²—ೆ ಅಲà³à²²) ಆಗಿರಬೇಕà³." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "ಬಗೆಯೊಂದಿಗೆ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "ಮಿತಿಯೊಂದಿಗೆ:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ಪೂರà³à²µà²ªà³à²°à²¤à³à²¯à²¯:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "ಮಟà³à²Ÿ:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "ಅಂಶ:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "ಕà³à²°à²¿à²¯à³†:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ಮೂಲಭೂತ ಸೇವೆಯ ಸಿದà³à²§à²¤à³†à²—ಳà³" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "ದಯವಿಟà³à²Ÿà³ ಮೂಲಭೂತ ಸೇವೆಯ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಸಂರಚಿಸಿ:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ದಯವಿಟà³à²Ÿà³ ಒಂದೠಸೇವೆಯನà³à²¨à³ ಆರಿಸಿ." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ಬಳಕೆದಾರ ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ಬಳಕೆದಾರ id ಯನà³à²¨à³ ಇಲà³à²²à²¿ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ಬಳಕೆದಾರ ಹೆಸರà³" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ಬಳಕೆದಾರ ಹೆಸರನà³à²¨à³ ಇಲà³à²²à²¿ ನಮೂದಿಸಿ." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ಮೂಲಭೂತ ವಲಯ ಸಿದà³à²§à²¤à³†à²—ಳà³" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ದಯವಿಟà³à²Ÿà³ ಮೂಲಭೂತ ವಲಯ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಸಂರಚಿಸಿ:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಗà³à²°à²¿" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ಗà³à²°à²¿:" firewalld-0.4.4.6/po/ko.po000066400000000000000000001621721320241217000152240ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # eukim , 2014 # eukim , 2014 # eukim , 2006-2009 # Hyunsok Oh , 2010 # Jinseok Seo , 2004 # Michelle Ji Yeen Kim , 2005-2006 # Michelle J Kim , 2003-2004 # Michelle Kim , 2002 # Eun-Ju Kim , 2016. #zanata # Terry Chuang , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-08-22 01:00-0400\n" "Last-Translator: Eun-Ju Kim \n" "Language-Team: Korean (http://www.transifex.com/projects/p/firewalld/" "language/ko/)\n" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "방화벽 애플릿 " #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "방화벽" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "방화벽 설정" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "방화벽;네트워í¬;보안;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ì¸í„°íŽ˜ì´ìФ '%s'ì˜ ì˜ì—­ì„ ì„ íƒ " #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "기본 ì˜ì—­ " #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "ì—°ê²° '%s'ì˜ ì˜ì—­ì„ ì„ íƒ " #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "ì—°ê²° {connection}ì˜ ì˜ì—­ {zone} ì„¤ì •ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "소스 '%s'ì˜ ì˜ì—­ì„ ì„ íƒ " #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "쉴드업/다운 ì˜ì—­ 설정" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "여기ì—서 쉴드업 ë° ì‰´ë“œ ë‹¤ìš´ì— ì‚¬ìš©í•  ì˜ì—­ì„ ì„ íƒí•  수 있습니다." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "ì´ ê¸°ëŠ¥ì€ ëŒ€ë¶€ë¶„ 기본값 ì˜ì—­ì„ 사용하는 사용ìžì—게 유용합니다. ì—°ê²° ì˜ì—­ì„ 변경한 사용ìžì˜ 경우 제한ì ìœ¼ë¡œ 사용할 수 있습니다." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "쉴드업 ì˜ì—­:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "기본값으로 재설정" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "쉴드 다운 ì˜ì—­: " #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "%sì— ëŒ€í•œ ì •ë³´" #: ../src/firewall-applet:386 msgid "Authors" msgstr "ìž‘ìž" #: ../src/firewall-applet:396 msgid "License" msgstr "ë¼ì´ì„¼ìФ" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "쉴드업 " #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "통지 활성화 " #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "방화벽 설정 편집..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ì—°ê²° ì˜ì—­ 변경..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "쉴드업/다운 ì˜ì—­ 설정..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "모든 ë„¤íŠ¸ì›Œí¬ í†µì‹ ëŸ‰ 차단 " #: ../src/firewall-applet:492 msgid "About" msgstr "ì •ë³´" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "ì ‘ì†" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "ì¸í„°íŽ˜ì´ìФ " #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "소스 " #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ì¸ì¦ 실패했습니다." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ìž˜ëª»ëœ ì´ë¦„ " #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "ì´ë¦„ì´ ì´ë¯¸ 존재합니다 " #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (ì˜ì—­: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (기본 ì˜ì—­: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "NetworkManagerì—서 ì—°ê²° 실패했습니다" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "가져올 수 있는 NetworkManagerê°€ 없습니다" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "방화벽 ë°ëª¬ìœ¼ë¡œì˜ ì—°ê²°ì´ ì—†ìŠµë‹ˆë‹¤ " #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "모든 ë„¤íŠ¸ì›Œí¬ í†µì‹ ì´ ì°¨ë‹¨ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "기본 ì˜ì—­: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "기본 ì˜ì—­ '{default_zone}'ì€ ì¸í„°íŽ˜ì´ìФ '{interface}' ìƒì˜ ì—°ê²° '{connection}'ì— ëŒ€í•´ 활성화" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "ì˜ì—­ '{zone}'ì€ ì¸í„°íŽ˜ì´ìФ '{interface}' ìƒì˜ ì—°ê²° '{connection}'ì— ëŒ€í•´ 활성화" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "ì˜ì—­ '{zone}'ì€ ì¸í„°íŽ˜ì´ìФ '{interface}'ì— ëŒ€í•´ 활성화 " #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "ì˜ì—­ '{zone}'ì€ ì†ŒìŠ¤ {source}ì— ëŒ€í•´ 활성화 " #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "í™œì„±í™”ëœ ì˜ì—­ì´ 없습니다." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallDì— ì—°ê²°ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallDê°€ 다시 로딩ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "기본 ì˜ì—­ì„ '%s'로 변경했습니다." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ë„¤íŠ¸ì›Œí¬ í†µì‹ ì´ ë”ì´ìƒ 차단ë˜ì§€ 않습니다." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "활성화ë¨" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "ë¹„í™œì„±í™”ë¨ " #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "기본 ì˜ì—­ '{default_zone}'ì€ ì¸í„°íŽ˜ì´ìФ '{interface}' ìƒì˜ ì—°ê²° '{connection}'ì— ëŒ€í•´ " "{activated_deactivated}" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "ì˜ì—­ '{zone}'ì´ ì¸í„°íŽ˜ì´ìФ '{interface}' ìƒì˜ ì—°ê²°ì— ëŒ€í•´ {activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "ì˜ì—­ '{zone}'ì´ ì¸í„°íŽ˜ì´ìФ '{interface}'ì— ëŒ€í•´ {activated_deactivated}" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "ì˜ì—­ '%s'ì´ ì¸í„°íŽ˜ì´ìФ '%s'ì— ëŒ€í•´ 활성화ë˜ì—ˆìŠµë‹ˆë‹¤ " #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "ì˜ì—­ '{zone}'ì´ ì†ŒìŠ¤ '{source}'ì— ëŒ€í•´ {activated_deactivated}" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "ì˜ì—­ '%s'ì´ ì†ŒìŠ¤ '%s'ì— ëŒ€í•´ 활성화ë˜ì—ˆìŠµë‹ˆë‹¤ " #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "firewalldì— ì—°ê²°ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "firewalldì— ì—°ê²° ì‹œë„ ì¤‘ìž…ë‹ˆë‹¤. 대기 중..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "변경 ì‚¬í•­ì´ ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ë„¤íŠ¸ì›Œí¬ ì—°ê²° '%s'ì— ì˜í•´ ì‚¬ìš©ë¨ " #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "ë„¤íŠ¸ì›Œí¬ ì—°ê²° '%s'ì— ì˜í•´ 사용ë˜ëŠ” 기본 ì˜ì—­" #: ../src/firewall-config:96 msgid "enabled" msgstr "í™œì„±í™”ë¨ " #: ../src/firewall-config:97 msgid "disabled" msgstr "ë¹„í™œì„±í™”ë¨ " #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ì•„ì´ì½˜ ë¡œë”©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "런타임 " #: ../src/firewall-config:398 msgid "Permanent" msgstr "ì˜êµ¬ì  " #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "서비스" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "í¬íЏ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "프로토콜" #: ../src/firewall-config:560 msgid "To Port" msgstr "ëª©ì  í¬íЏ " #: ../src/firewall-config:562 msgid "To Address" msgstr "ëª©ì  ì£¼ì†Œ " #: ../src/firewall-config:612 msgid "Bindings" msgstr "ë°”ì¸ë”©" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "항목" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp 유형 " #: ../src/firewall-config:817 msgid "Family" msgstr "제품군 " #: ../src/firewall-config:819 msgid "Action" msgstr "ë™ìž‘ " #: ../src/firewall-config:821 msgid "Element" msgstr "요소 " #: ../src/firewall-config:823 msgid "Src" msgstr "소스 " #: ../src/firewall-config:825 msgid "Dest" msgstr "ëŒ€ìƒ " #: ../src/firewall-config:827 msgid "log" msgstr "로그 " #: ../src/firewall-config:829 msgid "Audit" msgstr "ê°ì‚¬ " #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "경고 " #: ../src/firewall-config:1612 msgid "Error" msgstr "오류 " #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "허용" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "ê±°ë¶€" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "드롭 " #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "표시" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "제한 " #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "서비스 " #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "í¬íЏ " #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "프로토콜" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "마스커레ì´ë”© " #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "레벨 " #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "예 " #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "ì˜ì—­ " #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "기본 ì˜ì—­: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "ì˜ì—­: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "ì˜ì—­ '%s': 서비스 '%s'를 사용할 수 없습니다." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "제거 " #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "무시 " #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "ì˜ì—­ '%s': ICMP 유형 '%s'ì„ ì‚¬ìš©í•  수 없습니다." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ë‚´ìž¥ëœ ì˜ì—­, ì´ë¦„ì„ ë°”ê¿€ 수 없습니다." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ì´ˆ " #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "ë¶„ " #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "시 " #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ì¼ " #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "긴급 " #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "ì£¼ì˜ " #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "위험 " #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "오류 " #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "경고 " #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "알림 " #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "ì •ë³´ " #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "디버그 " #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-차단 " #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "í¬ì›Œë“œ-í¬íЏ " #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "ì¸í„°íŽ˜ì´ìŠ¤ê°€ 마스커레ì´ë”©ë˜ëŠ” 경우ì—ë§Œ 다른 ì‹œìŠ¤í…œì— ì „ì†¡í•˜ëŠ” ê²ƒì´ ìœ ìš©í•©ë‹ˆë‹¤.\n" "ì´ ì˜ì—­ì„ 마스커레ì´ë”©í•˜ì‹œê² ìŠµë‹ˆê¹Œ? " #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ë‚´ìž¥ëœ ì„œë¹„ìŠ¤, ì´ë¦„ì„ ë°”ê¿€ 수 없습니다." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "ipv4 주소를 address[/mask] 형ì‹ìœ¼ë¡œ 입력하십시오." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "mask는 ë„¤íŠ¸ì›Œí¬ ë§ˆìŠ¤í¬ ë˜ëŠ” 숫ìžë¡œ 지정할 수 있습니다." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "ipv6 주소를 address[/mask] 형ì‹ìœ¼ë¡œ 입력하십시오." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "mask는 숫ìžë¡œ 지정합니다." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "ipv4 ë˜ëŠ” ipv6 주소를 address[/mask] 형ì‹ìœ¼ë¡œ 입력하십시오." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "mask는 ë„¤íŠ¸ì›Œí¬ ë§ˆìŠ¤í¬ ë˜ëŠ” ipv4 숫ìžë¡œ 지정할 수 있습니다.\n" "mask는 ipv6 숫ìžìž…니다." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "ë‚´ìž¥ëœ ipset입니다. ì´ë¦„ì„ ë³€ê²½í•  수 없습니다." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "파ì¼ì„ ì„ íƒí•˜ì‹­ì‹œì˜¤" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "í…스트 파ì¼" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "모든 íŒŒì¼ " #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ë‚´ìž¥ëœ icmp, ì´ë¦„ì„ ë°”ê¿€ 수 없습니다." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "'%s' íŒŒì¼ ì½ê¸° 실패: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "소스 '%s'ì˜ ì˜ì—­ì„ ì„ íƒ " #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "주소" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "명령행" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ëª…ë ¹í–‰ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "문맥" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "컨í…스트를 입력하십시오." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "아래 목ë¡ì—서 기본 ì˜ì—­ì„ ì„ íƒí•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ì§ì ‘ ì²´ì¸ " #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ipv ë° í…Œì´ë¸”ì„ ì„ íƒí•˜ê³  ì²´ì¸ ì´ë¦„ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ì²´ì¸: " #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "í…Œì´ë¸”: " #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ì§ì ‘ 통과 규칙 " #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ipv를 ì„ íƒí•˜ê³  ì¸ìˆ˜ë¥¼ 입력하십시오. " #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "ì¸ìˆ˜: " #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "í¬íЏ í¬ì›Œë”©" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "í•„ìš”ì— ë”°ë¼ ì†ŒìŠ¤ ë° ìˆ˜ì‹ ì§€ ì˜µì…˜ì„ ì„ íƒí•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤. " #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "í¬íЏ / í¬íЏ 범위:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP 주소: " #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "프로토콜:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "소스 " #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "대ìƒ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "로컬 í¬ì›Œë”©ì„ 사용하실 경우, í¬íŠ¸ë¥¼ 지정하셔야 합니다. ì´ëŸ¬í•œ í¬íŠ¸ëŠ” 소스 í¬íŠ¸ì™€ 달ë¼ì•¼ 합니다. " #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "로컬 í¬íЏ í¬ì›Œë”© " #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "다른 í¬íŠ¸ë¡œ í¬ì›Œë“œ " #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "굵게 í‘œì‹œëœ í•­ëª©ì€ í•„ìˆ˜ 항목ì´ë©° 모든 다른 í•­ëª©ì€ ì˜µì…˜ìž…ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "ì´ë¦„: " #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "버전:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "개요:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "설명: " #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "제품군: " #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "기본 ICMP 유형 설정 " #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "기본 ICMP 유형 ì„¤ì •ì„ êµ¬ì„±í•˜ì‹­ì‹œì˜¤:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP 유형 " #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ICMP ìœ í˜•ì„ ì„ íƒí•˜ì‹­ì‹œì˜¤ " #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "항목 추가 " #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "파ì¼ì—서 항목 추가" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "ì„ íƒí•œ 항목 ì‚­ì œ" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "모든 항목 ì‚­ì œ" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "파ì¼ì—서 항목 ì‚­ì œ" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "파ì¼(_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "옵션(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld 다시 불러오기 " #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "방화벽 ê·œì¹™ì„ ë‹¤ì‹œ 로딩합니다. 현재 ì˜êµ¬ ì„¤ì •ì€ ìƒˆë¡œìš´ 런타임 ì„¤ì •ì´ ë©ë‹ˆë‹¤. 즉, 방화벽 ê·œì¹™ì´ ì˜êµ¬ì  ì„¤ì •ì— ì¡´ìž¬í•˜ì§€ ì•Šì„ ê²½ìš° " "다시 로딩할 때 까지 ë³€ê²½ëœ ëª¨ë“  런타임 ë‚´ìš©ì´ ì†ì‹¤ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ë„¤íŠ¸ì›Œí¬ ì—°ê²°ì´ ì†í•´ 있는 ì˜ì—­ì„ 변경합니다." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "기본 ì˜ì—­ 변경 " #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "ì—°ê²° ë˜ëŠ” ì¸í„°íŽ˜ì´ìŠ¤ì˜ ê¸°ë³¸ ì˜ì—­ì„ 변경합니다." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "로그 ê±°ë¶€ 변경" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "로그 ê±°ë¶€ ê°’ì„ ë³€ê²½í•©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "패닉 모드는 모든 송수신 íŒ¨í‚·ì´ ì‚­ì œë¨ì„ ì˜ë¯¸í•©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "패닉 모드 " #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "잠금 ê¸°ëŠ¥ì€ ë°©í™”ë²½ ì„¤ì •ì„ ìž ê¸ˆí•˜ì—¬ 잠금 í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ì— ìžˆëŠ” 애플리케ì´ì…˜ë§Œ 변경할 수 있게 합니다. " #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "잠금 " #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "런타임 ì„¤ì •ì„ ì˜êµ¬ì ìœ¼ë¡œ 유지 " #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "ì˜êµ¬ì ìœ¼ë¡œ 런타임 설정 " #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "보기(_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP 유형 " #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ì§ì ‘ 설정 " #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "잠금 í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ " #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "ë°”ì¸ë”© 활성화" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "ë„움ë§(_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "ë°”ì¸ë”© ì˜ì—­ 변경" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "ì˜ì—­ìœ¼ë¡œì˜ 소스, ì¸í„°íŽ˜ì´ìФ, ì—°ê²°ì— ëŒ€í•œ 활성 런타임 ë°”ì¸ë”© 숨기기" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "ì˜ì—­ìœ¼ë¡œì˜ 소스, ì¸í„°íŽ˜ì´ìФ, ì—°ê²°ì— ëŒ€í•œ 활성 런타임 ë°”ì¸ë”© 표시" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "설정: " #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "현재 사용 가능한 설정. 런타임 ì„¤ì •ì€ ì‹¤ì œ í™œì„±í™”ëœ ì„¤ì •ìž…ë‹ˆë‹¤. ì˜êµ¬ ì„¤ì •ì€ ì„œë¹„ìŠ¤ë‚˜ ì‹œìŠ¤í…œì„ ë‹¤ì‹œ 로딩하거나 다시 시작한 후 사용할 " "수 있습니다." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld ì˜ì—­ì€ ì˜ì—­ê³¼ ê²°í•©ëœ ë„¤íŠ¸ì›Œí¬ ì—°ê²°, ì¸í„°íŽ˜ì´ìФ ë° ì†ŒìŠ¤ ì£¼ì†Œì˜ ì‹ ë¢°ëœ ìˆ˜ì¤€ì„ ì •ì˜í•©ë‹ˆë‹¤. ì˜ì—­ì€ 서비스, í¬íЏ " "프로토콜, 마스커레ì´ë”©, í¬íЏ/패킷 í¬ì›Œë”©, icmp í•„í„° ë° ê³ ê¸‰ ê·œì¹™ì˜ ì¡°í•©ìž…ë‹ˆë‹¤. ì˜ì—­ì€ ì¸í„°íŽ˜ì´ìŠ¤ì™€ 소스 주소로 ì—°ê²°ë  ìˆ˜ " "있습니다." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ì˜ì—­ 추가 " #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ì˜ì—­ 편집 " #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ì˜ì—­ 제거 " #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ì˜ì—­ 기본값 ì½ê¸° " #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ì˜ì—­ì—서 신뢰할 수 있는 서비스를 지정할 수 있습니다. 신뢰할 수 있는 서비스는 ì´ ì˜ì—­ì— ê²°í•©ëœ ì—°ê²°, ì¸í„°íŽ˜ì´ìФ, 소스ì—서 ì‹œìŠ¤í…œì— " "ë„달할 수 있는 모든 호스트 ë° ë„¤íŠ¸ì›Œí¬ì—서 액세스 가능하게 ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "서비스 " #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "ì´ ì»´í“¨í„°ì— ì—°ê²° 가능한 모든 호스트 ë˜ëŠ” 네트워í¬ì— 액세스할 수 있어야 하는 추가 í¬íЏ ë˜ëŠ” í¬íЏ 범위를 추가합니다. " #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "í¬íЏ 추가 " #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "í¬íЏ 편집 " #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "í¬íЏ ì‚­ì œ " #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "í¬íЏ " #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "모든 호스트 ë˜ëŠ” 네트워í¬ì— 액세스 가능한 í”„ë¡œí† ì½œì„ ì¶”ê°€í•©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "프로토콜 추가" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "프로토콜 편집" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "프로토콜 ì‚­ì œ" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "프로토콜" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "ì´ ì»´í“¨í„°ì— ì—°ê²° 가능한 모든 호스트 ë˜ëŠ” 네트워í¬ì— 액세스할 수 있어야 하는 추가 소스 í¬íЏ ë˜ëŠ” í¬íЏ 범위를 추가합니다. " #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "마스커레ì´ë”© (Masquerading) ê¸°ëŠ¥ì€ ë¡œì»¬ 네트워í¬ë¥¼ ì¸í„°ë„·ì— 연결하는 호스트나 ë¼ìš°í„°ë¥¼ 설정할 수 있게 합니다. 로컬 " "네트워í¬ëŠ” ë³¼ 수 없으며 호스트는 ì¸í„°ë„·ì—서 í•˜ë‚˜ì˜ ì£¼ì†Œë¡œ 나타납니다. 마스커레ì´ë”© (Masquerading) ê¸°ëŠ¥ì€ IPv4ì—서만 " "해당ë©ë‹ˆë‹¤. " #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "마스커레ì´ë”© ì˜ì—­ " #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "마스커레ì´ë”©ì„ 활성화할 경우 IP í¬ì›Œë”©ì€ IPv4 네트워í¬ì— 대해 활성화ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "마스커레ì´ë”© (Masquerading) " #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "로컬 시스템 ìƒì—서 í•˜ë‚˜ì˜ í¬íЏì—서 다른 í¬íŠ¸ë¡œ ë˜ëŠ” 로컬 시스템ì—서 다른 시스템으로 í¬íŠ¸ë¥¼ í¬ì›Œë”©í•˜ê¸° 위해 í•­ëª©ì„ ì¶”ê°€í•©ë‹ˆë‹¤. 다른 " "시스템으로 í¬ì›Œë”©í•˜ëŠ” ê²ƒì€ ì¸í„°íŽ˜ì´ìŠ¤ê°€ 마스커레ì´ë”©ë˜ì—ˆì„ 경우ì—ë§Œ 유용합니다. í¬íЏ í¬ì›Œë”©ì€ IPv4ì—서만 해당ë©ë‹ˆë‹¤. " #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "í¬ì›Œë“œ í¬íЏ 추가 " #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "í¬ì›Œë“œ í¬íЏ 편집 " #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "í¬ì›Œë“œ í¬íЏ ì‚­ì œ " #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ICMP (Internet Control Message Protocol)는 네트워í¬ë¡œ ì—°ê²°ëœ ì»´í“¨í„° ê°„ì˜ ì˜¤ë¥˜ 메세지를 보내는 ë° ì£¼ë¡œ " "사용ë˜ì§€ë§Œ, 추가로 í•‘ 요청 ë° ì‘답과 ê°™ì€ ì•Œë¦¼ 메세지를 보내는 ë° ì‚¬ìš©ë  ìˆ˜ 있습니다. " #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "목ë¡ì—서 거부해야 í•  ICMP ìœ í˜•ì„ í‘œì‹œí•©ë‹ˆë‹¤. ê·¸ ì™¸ì˜ ëª¨ë“  ICMP ìœ í˜•ì€ ë°©í™”ë²½ 통과를 허용합니다. ê¸°ë³¸ê°’ì€ ì œí•œ ì—†ìŒìž…니다. " #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "í•„í„° ë°˜ì „ì´ í™œì„±í™”ë˜ì–´ ìžˆì„ ê²½ìš° í‘œì‹œëœ ICMP í•­ëª©ì´ í—ˆìš©ë˜ë©° ê·¸ ì™¸ì˜ í•­ëª©ì€ ê±°ë¶€ë©ë‹ˆë‹¤. ëŒ€ìƒ DROPì´ ìžˆëŠ” ì˜ì—­ì—서 ì´ëŸ¬í•œ " "í•­ëª©ì€ ì„ íƒ í•´ì œë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "í•„í„° 반전" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP í•„í„° " #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "여기ì—서 ì˜ì—­ì˜ 고급 언어 ê·œì¹™ì„ ì„¤ì •í•  수 있습니다." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "고급 규칙 추가 " #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "고급 규칙 편집 " #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "고급 규칙 ì‚­ì œ " #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "고급 규칙 " #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "ì˜ì—­ì— ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ë°”ì¸ë”©í•  í•­ëª©ì„ ì¶”ê°€í•©ë‹ˆë‹¤. ì¸í„°íŽ˜ì´ìŠ¤ê°€ ì—°ê²°ì— ì˜í•´ ì‚¬ìš©ë  ê²½ìš° ì˜ì—­ì€ ì—°ê²°ì— ì§€ì •ëœ ì˜ì—­ìœ¼ë¡œ 설정ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ì¸í„°íŽ˜ì´ìФ 추가 " #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ì¸í„°íŽ˜ì´ìФ 편집 " #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ì¸í„°íŽ˜ì´ìФ 제거 " #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "ì˜ì—­ì— 소스 주소 ë˜ëŠ” 범위를 ë°”ì¸ë”©í•  í•­ëª©ì„ ì¶”ê°€í•©ë‹ˆë‹¤. MAC 소스 주소를 ë°”ì¸ë”©í•  수 있지만 ì œí•œì´ ë”°ë¦…ë‹ˆë‹¤. í¬íЏ í¬ì›Œë”© ë° " "마스커레ì´ë”©ì€ MAC 소스 ë°”ì¸ë”©ì— ìž‘ë™í•˜ì§€ 않습니다." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "소스 추가 " #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "소스 편집 " #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "소스 제거 " #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "ì˜ì—­ " #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "firewalld 서비스는 í¬íЏ, 프로토콜, 모듈 ë° ëŒ€ìƒ ì£¼ì†Œì˜ ì¡°í•©ìž…ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "서비스 추가 " #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "서비스 편집 " #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "서비스 ì‚­ì œ " #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "서비스 기본값 ì½ê¸° " #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "모든 호스트 ë˜ëŠ” 네트워í¬ì— 액세스 가능한 í¬íЏ ë° í¬íЏ 범위를 추가합니다." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "항목 편집 " #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "항목 ì‚­ì œ " #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "모든 호스트 ë˜ëŠ” 네트워í¬ì— 액세스 가능한 소스 í¬íЏ ë° í¬íЏ 범위를 추가합니다." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "소스 í¬íЏ" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "모듈 " #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ëŒ€ìƒ ì£¼ì†Œë¥¼ 지정할 경우, 서비스 í•­ëª©ì€ ëŒ€ìƒ ì£¼ì†Œ ë° ìœ í˜•ìœ¼ë¡œ 제한ë©ë‹ˆë‹¤. ë‘ í•­ëª© 모ë‘ê°€ 비어 ìžˆì„ ê²½ìš° ì œí•œì´ ì—†ê²Œ ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "서비스는 ì˜êµ¬ 설정 보기ì—서만 변경할 수 있습니다. ì„œë¹„ìŠ¤ì˜ ëŸ°íƒ€ìž„ ì„¤ì •ì€ ê³ ì •ë˜ì–´ 있습니다. " #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "IPSet를 사용하여 í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ ë˜ëŠ” 블랙리스트를 만들 수 있으며 IP 주소, í¬íЏ 번호, MAC 주소 ë“±ì„ ì €ìž¥í•  수 있습니다." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr " IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr " IPSet 추가" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr " IPSet 편집" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr " IPSet ì‚­ì œ" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr " IPSet 기본값 불러오기" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" " IPSet 항목입니다. 시간 제한 ì˜µì…˜ì„ ì‚¬ìš©í•˜ì§€ 않는 IPSet 항목과 firewalldì— ì˜í•´ ì¶”ê°€ëœ í•­ëª©ë§Œì„ í™•ì¸í•  수 있습니다." " ì§ì ‘ ipset ëª…ë ¹ì„ ì‹¤í–‰í•˜ì—¬ ì¶”ê°€ëœ í•­ëª©ì„ í‘œì‹œë˜ì§€ 않습니다." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "IPSet는 시간 제한 ì˜µì…˜ì„ ì‚¬ìš©í•˜ê¸° ë•Œë¬¸ì— ì—¬ê¸°ì—는 í•­ëª©ì´ í‘œì‹œë˜ì§€ 않습니다. ipset ëª…ë ¹ì„ ì§ì ‘ 실행하여 í•­ëª©ì„ ê´€ë¦¬í•©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "추가" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "항목" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "ì˜êµ¬ 설정 보기ì—서만 IPSetì„ ìƒì„± ë˜ëŠ” 삭제할 수 있습니다." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmp ìœ í˜•ì€ firewalld ìš© ICMP (Internet Control Message Protocol) ìœ í˜•ì˜ " "정보를 제공합니다. " #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP 유형 추가 " #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP 유형 편집 " #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP 유형 제거 " #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ìœ í˜•ì˜ ê¸°ë³¸ê°’ 가져오기 " #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "ICMP ìœ í˜•ì´ IPv4 ë° IPv6ì—서 사용 가능한 ì§€ì— ëŒ€í•œ 여부를 지정합니다. " #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "ICMP ìœ í˜•ì€ ì˜êµ¬ 설정 보기ì—서만 변경할 수 있습니다. ICMP ìœ í˜•ì˜ ëŸ°íƒ€ìž„ ì„¤ì •ì€ ê³ ì •ë˜ì–´ 있습니다. " #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ì§ì ‘ 설정하면 ë°©í™”ë²½ì— ì§ì ‘ 액세스할 수 있습니다. ì´ ì˜µì…˜ì€ ì‚¬ìš©ìžê°€ iptablesì˜ ê¸°ë³¸ ê°œë…, 즉 í…Œì´ë¸”, ì²´ì¸, 명령, 매개 " "변수, 대ìƒì— 대한 ì§€ì‹ì„ 가지고 있ìŒì„ 전제로 하고 있습니다. ì§ì ‘ ì„¤ì •ì€ ë‹¤ë¥¸ 방화벽 ê¸°ëŠ¥ì„ ì‚¬ìš©í•  수 없는 ê²½ìš°ì— ë§ˆì§€ë§‰ 방법으로 " "사용해야 합니다." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ê° ì˜µì…˜ì˜ ipv ì¸ìˆ˜ëŠ” ipv4, ipv6, eb 중 하나여야 합니다. ipv4를 지정하면 iptablesê°€ 사용ë©ë‹ˆë‹¤. ipv6를 " "지정하면 ip6tablesê°€ 사용ë©ë‹ˆë‹¤. eb를 사용하면 ì´ë”ë„· 브리지 (ebtables)ê°€ 사용ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "규칙과 함께 사용ë˜ëŠ” 추가 ì²´ì¸ìž…니다." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ì²´ì¸ ì¶”ê°€ " #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ì²´ì¸ íŽ¸ì§‘ " #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ì²´ì¸ ì œê±° " #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ì²´ì¸ " #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "ê·œì¹™ì„ args ì¸ìˆ˜ì™€ 함께 í…Œì´ë¸”ì— ìžˆëŠ” ì²´ì¸ì— ìš°ì„  순위를 붙여 추가합니다." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ìš°ì„  순위는 ê·œì¹™ì˜ ìˆœì„œë¥¼ ì§€ì •í•˜ëŠ”ë° ì‚¬ìš©ë©ë‹ˆë‹¤. ìš°ì„  순위 0ì€ ê·œì¹™ì„ ì²´ì¸ì˜ 처ìŒì— 추가합니다. ë” ë†’ì€ ìš°ì„  순위를 가진 ê·œì¹™ì´ ë” " "ì•„ëž˜ì— ì¶”ê°€ë©ë‹ˆë‹¤. ë™ì¼í•œ ìš°ì„  순위를 갖는 ê·œì¹™ì€ ë™ì¼í•œ ìˆ˜ì¤€ì´ ë˜ë©° ì´ëŸ¬í•œ ê·œì¹™ì˜ ìˆœì„œëŠ” ê³ ì •ë˜ì§€ 않고 ë³€ê²½ë  ìˆ˜ 있습니다. ê·œì¹™ì„ " "다른 규칙 ë’¤ì— ì¶”ê°€í•˜ë ¤ë©´ 먼저 ë‚®ì€ ìš°ì„  순위를 사용하고 ê·¸ 다ìŒìœ¼ë¡œ ë” ë†’ì€ ìš°ì„  순위를 사용합니다." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "규칙 추가 " #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "규칙 편집 " #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "규칙 ì‚­ì œ " #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "규칙 " #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "통과 ê·œì¹™ì€ ì§ì ‘ ë°©í™”ë²½ì— ì „ë‹¬ë˜ëŠ” 규칙으로 특별한 ì²´ì¸ì— ë‘ì§€ 않습니다. iptables, ip6tables, ebtablesì˜ ëª¨ë“  " "ì˜µì…˜ì„ ì‚¬ìš©í•  수 있습니다." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "통과 ê·œì¹™ì´ ë°©í™”ë²½ì— ì†ìƒì„ 입히지 않ë„ë¡ ì£¼ì˜í•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "통과 규칙 추가 " #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "통과 규칙 편집 " #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "통과 규칙 제거 " #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "통과 규칙 " #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "잠금 ê¸°ëŠ¥ì€ firewalldì˜ ì‚¬ìš©ìž ë° ì• í”Œë¦¬ì¼€ì´ì…˜ ì •ì±…ì— ëŒ€í•œ 경량 버전입니다. ì´ëŠ” 방화벽 ë³€ê²½ì„ ì œí•œí•©ë‹ˆë‹¤. 잠금 " "í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ì—는 명령, 컨í…스트, ì‚¬ìš©ìž ë° ì‚¬ìš©ìž IDê°€ í¬í•¨ë˜ì–´ 있습니다. " #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "컨í…스트는 실행 ì¤‘ì¸ ì• í”Œë¦¬ì¼€ì´ì…˜ì´ë‚˜ ì„œë¹„ìŠ¤ì˜ ë³´ì•ˆ (SELinux) 컨í…스트입니다. 실행 ì¤‘ì¸ ì• í”Œë¦¬ì¼€ì´ì…˜ì˜ 컨í…스트를 얻으려면 " "ps -e --context를 사용합니다." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "문맥 추가 " #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "문맥 편집 " #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "문맥 제거 " #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "컨í…스트 " #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ì˜ ëª…ë ¹ì´ ë³„í‘œ '*'로 ë나는 경우 해당 명령으로 시작하는 모든 명령행과 ì¼ì¹˜í•˜ê²Œ ë©ë‹ˆë‹¤. '*'ê°€ ì—†ì„ ê²½ìš° ì¸ìˆ˜ë¥¼ " "í¬í•¨í•˜ì—¬ ëª…ë ¹ì´ ì •í™•í•˜ê²Œ ì¼ì¹˜í•´ì•¼ 합니다. " #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "명령행 추가 " #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "명령행 편집 " #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "명령행 제거 " #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "명령행 " #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ì‚¬ìš©ìž ì´ë¦„ " #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ì‚¬ìš©ìž ì´ë¦„ 추가 " #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ì‚¬ìš©ìž ì´ë¦„ 편집 " #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ì‚¬ìš©ìž ì´ë¦„ 제거 " #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ì‚¬ìš©ìž ì´ë¦„ " #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ì‚¬ìš©ìž ID" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ì‚¬ìš©ìž ID 추가 " #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ì‚¬ìš©ìž ID 편집 " #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ì‚¬ìš©ìž ID 제거 " #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ì‚¬ìš©ìž ID" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ì‹œìŠ¤í…œì˜ í˜„ìž¬ 기본 ì˜ì—­ìž…니다." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "로그 ê±°ë¶€:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "패닉 모드: " #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "잠금: " #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "기본 ì˜ì—­: " #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "기본 IPSet 설정" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "기본 IPSetì„ ì„¤ì •í•˜ì‹­ì‹œì˜¤:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "유형:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "제한 시간:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "해시 í¬ê¸°:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "최대 요소:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "제한 시간 ê°’ (ì´ˆ 단위)" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "초기 해시 í¬ê¸°, 기본값 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "최대 요소 ê°’, 기본값 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr " IPSetì„ ì„ íƒí•˜ì‹­ì‹œì˜¤:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "로그 ê±°ë¶€" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "로그 ê±°ë¶€ ê°’ì„ ì„ íƒí•˜ì‹­ì‹œì˜¤:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "마í¬" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "mask 옵션으로 마í¬ë¥¼ 입력하십시오." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "ë§ˆí¬ ë° mask 필드는 32 ë¹„íŠ¸ì˜ ë¶€í˜¸ì—†ëŠ” 숫ìžìž…니다." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "마í¬:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Mask:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- ì„ íƒ -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "í¬íЏ ë° í”„ë¡œí† ì½œ " #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "í¬íЏ ë° í”„ë¡œí† ì½œì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ì§ì ‘ 규칙 " #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "ipv ë° í…Œì´ë¸”, ì²´ì¸ ìš°ì„  순위를 ì„ íƒí•˜ê³  ì¸ìˆ˜ë¥¼ 입력하십시오." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "ìš°ì„  순위:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "í”„ë¡œí† ì½œì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "다른 프로토콜: " #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "고급 규칙 " #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "고급 ê·œì¹™ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "호스트 ë˜ëŠ” 네트워í¬ì˜ 경우 í™”ì´íЏ ë˜ëŠ” 블랙 ë¦¬ìŠ¤íŠ¸ì— ë”°ë¼ ìš”ì†Œê°€ 비활성화ë©ë‹ˆë‹¤." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "소스: " #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "수신지: " #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "로그: " #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ê°ì‚¬: " #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 ë° ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "ë³€í™˜ë¨ " #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "ì´ë¥¼ 활성화하려면 ìž‘ì—…ì„ 'ê±°ë¶€'하고 'ipv4' ë˜ëŠ” 'ipv6' 중 하나 (둘 중 하나)ì˜ ì œí’ˆêµ°ì„ ì„ íƒí•©ë‹ˆë‹¤. " #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "유형: " #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "제한: " #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ì ‘ë‘ë¶€: " #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "레벨: " #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "요소: " #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "ë™ìž‘: " #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "기본 서비스 설정 " #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "기본 서비스 ì„¤ì •ì„ êµ¬ì„±í•˜ì‹­ì‹œì˜¤: " #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "서비스를 ì„ íƒí•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ì‚¬ìš©ìž ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ì‚¬ìš©ìž ID를 입력하십시오. " #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ì‚¬ìš©ìž ì´ë¦„ " #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ì‚¬ìš©ìž ì´ë¦„ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤. " #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "ë ˆì´ë¸” " #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "기본 ì˜ì—­ 설정 " #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "기본 ì˜ì—­ ì„¤ì •ì„ êµ¬ì„±í•˜ì‹­ì‹œì˜¤: " #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "기본 ëŒ€ìƒ " #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "대ìƒ: " firewalld-0.4.4.6/po/ml.po000066400000000000000000002233351320241217000152220ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Ani Peter , 2006-2007,2009,2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 10:00-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Malayalam (http://www.transifex.com/projects/p/firewalld/" "language/ml/)\n" "Language: ml\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ഫയരàµâ€à´µàµ‹à´³àµâ€ ആപàµà´²àµ†à´±àµà´±àµ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ഫയരàµâ€à´µàµ‹à´³àµâ€" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ഫയരàµâ€à´µàµ‹à´³àµâ€ à´•àµà´°à´®àµ€à´•രണം" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "'%s' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´¨àµàµ മേഘല തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³à´…à´³ മേഖല" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "'%s' കണകàµà´·à´¨àµàµ മേഖല തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ഷീളàµâ€à´¡àµà´¸àµ à´…à´ªàµà´ªàµ/ഡൌണàµâ€ മേഘലകളàµâ€ à´•àµà´°à´®àµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "ഷീളàµâ€à´¡àµà´¸àµ à´…à´ªàµà´ªàµ, ഷീളàµâ€à´¡àµà´¸àµ ഡൌണàµâ€ à´Žà´¨àµà´¨à´¿à´µà´¯àµà´•àµà´•àµà´ªà´¯àµ‹à´—à´¿à´šàµà´š മേഘലകളàµâ€ നിങàµà´™à´³àµâ€à´•àµà´•àµàµ " "ഇവിടെ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•ാം." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "മികàµà´•à´ªàµà´ªàµ‹à´´àµà´‚ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘലകളàµâ€ ഉപയോഗിയàµà´•àµà´•àµà´µà´°àµâ€à´•àµà´•àµàµ à´ˆ വിശേഷത " "à´ªàµà´°à´¯àµ‹à´œà´¨à´•രമാണàµàµ. കണകàµà´·à´¨àµà´•à´³àµà´Ÿàµ† മേഘലകളàµâ€ മാറàµà´±àµà´¨àµà´¨ ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµâ€à´•àµà´•àµàµ à´…à´§à´¿à´•à´‚ " "ഉപയോഗമàµà´£àµà´Ÿà´¾à´µà´¿à´²àµà´²." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ഷീളàµâ€à´¡àµà´¸àµ à´…à´ªàµà´ªàµ മേഘല:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "ഷീളàµâ€à´¡àµà´¸àµ ഡൌണàµâ€ മേഘല:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "ഷീളàµâ€à´¡àµà´¸àµ à´…à´ªàµà´ªàµ" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "അറിയിപàµà´ªàµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ഫയരàµâ€à´µàµ‹à´³àµâ€ സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "കണകàµà´·à´¨àµà´•à´³àµâ€à´•àµà´•àµà´³àµà´³ മേഘലകളàµâ€ മാറàµà´±àµà´•..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ഷീളàµâ€à´¡àµà´¸àµ à´…à´ªàµà´ªàµ/ഡൌണàµâ€ മേഘലകളàµâ€ à´•àµà´°à´®àµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "à´Žà´²àµà´²à´¾ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠടàµà´°à´¾à´«à´¿à´•àµà´•àµà´‚ തടയàµà´•" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "കണകàµà´·à´¨àµà´•à´³àµâ€" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµà´•à´³àµâ€" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ആധികാരികത ഉറപàµà´ªà´¾à´•àµà´•à´²àµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "തെറàµà´±à´¾à´¯ ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµ %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "പേരàµàµ നിലവിലàµà´£àµà´Ÿàµàµ" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ഫയരàµâ€à´µàµ‹à´³àµâ€ ഡെമണിലേകàµà´•àµàµ കണകàµà´·à´¨àµâ€ ലഭàµà´¯à´®à´²àµà´²" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "à´Žà´²àµà´²à´¾ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠടàµà´°à´¾à´«à´¿à´•àµà´•àµà´‚ തടഞàµà´žà´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "'{interface}' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´²àµâ€ '{connection}' കണകàµà´·à´¨àµàµ സജീവമായ '{zone}' " "മേഘല" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "'{interface}' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´²àµâ€ സജീവമായ '{zone}' മേഘല" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "{source} à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´²àµâ€â€ സജീവമായ '{zone}' മേഘല" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "സജീവമായ മേഘലകളàµâ€ ലഭàµà´¯à´®à´²àµà´²." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD-à´¯àµà´•àµà´•àµà´³àµà´³ കണകàµà´·à´¨àµâ€ à´¸àµà´¥à´¾à´ªà´¿à´šàµà´šà´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD-ലേകàµà´•àµà´³àµà´³ കണകàµà´·à´¨àµâ€ നഷàµà´Ÿà´®à´¾à´¯à´¿." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•ിയിരിയàµà´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല '%s' ആയി മാറàµà´±à´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠടàµà´°à´¾à´«à´¿à´•àµà´•ൠഇനി തടസàµà´¸à´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "സജീവമാകàµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "നിരàµâ€à´œàµà´œàµ€à´µà´®à´¾à´•àµà´•ിയിരിയàµà´•àµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "'{interface}' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´²àµâ€ '{connection}' കണകàµà´·à´¨àµàµ സജീവമായ " "'{zone}'{activated_deactivated} മേഘല" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "'{interface}' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´²àµâ€ സജീവമായ '{zone}' {activated_deactivated} " "മേഘല" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "'%s' മേഘല '%s' ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´¨àµàµ സജീവമാകàµà´•ിയിരിയàµà´•àµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "'{source}' à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´¨àµà´³àµà´³ '{zone}' {activated_deactivated} മേഘല" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "'%s' മേഘല '%s' à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´¨àµàµ സജീവമാകàµà´•ിയിരിയàµà´•àµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "മാറàµà´±à´™àµà´™à´³àµâ€ സൂകàµà´·à´¿à´šàµà´šàµ." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠകണകàµà´·à´¨àµâ€ '%s' ഉപയോഗിയàµà´•àµà´•àµà´¨àµà´¨àµ" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´‚" #: ../src/firewall-config:97 msgid "disabled" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ രഹിതം" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "à´šà´¿à´¹àµà´¨à´™àµà´™à´³àµâ€ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¸à´®à´¯à´‚" #: ../src/firewall-config:398 msgid "Permanent" msgstr "à´¸àµà´¥à´¿à´°à´®à´¾à´¯" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "സേവനം" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "സമàµà´ªàµà´°à´¦à´¾à´¯à´‚" #: ../src/firewall-config:560 msgid "To Port" msgstr "à´à´¤àµà´¤à´¿à´šàµà´šàµ‡à´°à´£àµà´Ÿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../src/firewall-config:562 msgid "To Address" msgstr "à´à´¤àµà´¤à´¿à´šàµà´šàµ‡à´°à´£àµà´Ÿ വിലാസം:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "à´à´¸à´¿à´Žà´‚പി തരം" #: ../src/firewall-config:817 msgid "Family" msgstr "à´•àµà´Ÿàµà´‚ബം" #: ../src/firewall-config:819 msgid "Action" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚" #: ../src/firewall-config:821 msgid "Element" msgstr "എലമെനàµà´±àµ" #: ../src/firewall-config:823 msgid "Src" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµ" #: ../src/firewall-config:825 msgid "Dest" msgstr "ലകàµà´·àµà´¯à´‚" #: ../src/firewall-config:827 msgid "log" msgstr "ലോഗàµ" #: ../src/firewall-config:829 msgid "Audit" msgstr "à´“à´¡à´¿à´±àµà´±àµ ചെയàµà´¯àµà´•" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµ" #: ../src/firewall-config:1612 msgid "Error" msgstr "പിഴവàµ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "à´¸àµà´µàµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "നിരസിയàµà´•àµà´•àµà´•" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ഉപേകàµà´·à´¿à´¯àµà´•àµà´•àµà´•" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "പരിധി" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "സേവനം " #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "സമàµà´ªàµà´°à´¦à´¾à´¯à´‚ " #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "മാസàµà´•àµà´¯àµà´±àµ‡à´¡à´¿à´‚à´™àµ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "നില" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ഉവàµà´µàµàµ" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "മേഘല" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "'%s' മേഘല: '%s' സരàµâ€à´µàµ€à´¸àµ തരം ലഭàµà´¯à´®à´²àµà´²." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "അവഗണിയàµà´•àµà´•àµà´•" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "'%s' മേഘല: '%s' à´à´¸à´¿à´Žà´‚പി തരം ലഭàµà´¯à´®à´²àµà´²." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ബിളàµâ€à´Ÿàµà´Ÿà´¿à´¨àµâ€ zone, rename പിനàµà´¤àµà´£à´¯àµà´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "നിമിഷം" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "മിനിറàµà´±àµ" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "മണികàµà´•ൂരàµâ€" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ദിവസം" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergency" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alert" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critical" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "പിശകàµ" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµàµ" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notice" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "വിവരം" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ മാസàµà´•àµà´¯àµà´±àµ‡à´¡àµ ചെയàµà´¤à´¾à´²àµâ€ മാതàµà´°à´®àµ‡ മറàµà´±àµŠà´°àµ സിസàµà´±àµà´±à´¤àµà´¤à´¿à´²àµ‡à´•àµà´•àµàµ " "ഫോരàµâ€à´µàµ‡à´¡àµ ചെയàµà´¯àµà´¨àµà´¨à´¤àµàµ à´ªàµà´°à´¯àµ‹à´œà´¨à´•രമാകൂ.\n" "à´ˆ മേഖല മാസàµà´•àµà´¯àµà´±àµ‡à´¡àµ ചെയàµà´¯à´£à´®àµ‹ ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ബിളàµâ€à´Ÿàµà´Ÿà´¿à´¨àµâ€ service, rename പിനàµà´¤àµà´£à´¯àµà´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ബിളàµâ€à´Ÿàµà´Ÿà´¿à´¨àµâ€ icmp, rename പിനàµà´¤àµà´£à´¯àµà´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "'%s' à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´¨àµàµ മേഘല തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "വിലാസം" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ദയവായി കമാനàµâ€à´¡àµ ലൈനàµâ€ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "ദയവായി സനàµà´¦à´°àµâ€à´­à´‚ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" "താഴെ കാണിചàµà´šà´¿à´Ÿàµà´Ÿàµà´³àµà´³ പടàµà´Ÿà´¿à´•യിലàµâ€ നിനàµà´¨àµà´‚ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല ദയവായി " "തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ഡയറകàµà´Ÿàµ ചെയിനàµâ€" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ipv, പടàµà´Ÿà´¿à´• à´Žà´¨àµà´¨à´¿à´µ തെരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµàµ, ചെയിനàµà´±àµ† പേരàµàµ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ചെയിനàµâ€:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "à´¸àµà´°à´•àµà´·" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "പടàµà´Ÿà´¿à´•:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "നേരിടàµà´Ÿàµà´³àµà´³ പാസàµà´¤àµà´°àµ‚ നിയമം" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ipv ദയവായി തെരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµàµ ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ ഫോരàµâ€â€à´µàµ‡à´°àµâ€â€à´¡à´¿à´‚à´—àµ" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "നിങàµà´™à´³àµà´Ÿàµ† ആവശàµà´¯â€Œà´®à´¨àµà´¸à´°à´¿à´šàµà´šàµ ഉറവിട, ലകàµà´·àµà´¯ പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ / പോരàµâ€à´Ÿàµà´Ÿàµ പരിധി:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "à´à´ªà´¿ വിലാസം:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "സമàµà´ªàµà´°à´¦à´¾à´¯à´‚:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµ" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ലകàµà´·àµà´¯à´¸àµà´¥à´²à´‚" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "നിങàµà´™à´³àµâ€ ലോകàµà´•à´²àµâ€ ഫോരàµâ€à´µàµ‡à´°àµâ€à´¡à´¿à´™àµ സജàµà´œà´®à´¾à´•àµà´•ിയാലàµâ€, പോരàµâ€à´Ÿàµà´Ÿàµ നലàµâ€à´•േണàµà´Ÿà´¤à´¾à´£àµ. " "ഇതൠഉറവിട പോരàµâ€à´Ÿàµà´Ÿà´¿à´²àµâ€ നിനàµà´¨àµà´‚ à´µàµà´¯â€Œâ€Œà´¤àµà´¯â€Œâ€Œà´¸àµà´¤à´®à´¾à´£àµ." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "ലോകàµà´•à´²àµâ€ ഫോരàµâ€à´µàµ‡à´¡à´¿à´™àµ" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "മറàµà´±àµŠà´°àµ പോരàµâ€à´Ÿàµà´Ÿà´¿à´²àµ‡à´•àµà´•ൠഅയയàµà´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "à´•à´Ÿàµà´Ÿà´¿à´¯à´¿à´²àµà´³àµà´³ à´Žà´¨àµâ€à´Ÿàµà´°à´¿à´•à´³àµâ€ നിരàµâ€à´¬à´¨àµà´§à´®à´¾à´£àµàµ, മറàµà´±àµŠà´¨àµà´¨àµà´‚ നിരàµâ€à´¬à´¨àµà´§à´®à´²àµà´²." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "പേരàµàµ:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "പതിപàµà´ªàµàµâ€Œ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "ലഘàµ:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "വിവരണം:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "à´•àµà´Ÿàµà´‚ബം:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ à´à´¸à´¿à´Žà´‚പി തരം സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ദയവായി à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ à´à´¸à´¿à´Žà´‚പി തരം സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€ à´•àµà´°à´®àµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•: " #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP തരതàµà´¤à´¿à´²àµà´³àµà´³" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ഒരൠà´à´¸à´¿à´Žà´‚പി തരം ദയവായി തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "à´Žà´¨àµâ€à´Ÿàµà´°à´¿ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ഫയലàµâ€ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "à´à´›à´¿à´•à´™àµà´™à´³àµâ€ (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ഫയരàµâ€à´µàµ‹à´³àµâ€ നിയമങàµà´™à´³àµâ€ വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ. നിലവിലàµâ€ à´¸àµà´¥à´¿à´°à´®à´¾à´¯àµà´³àµà´³ " "à´•àµà´°à´®àµ€à´•രണം à´ªàµà´¤à´¿à´¯ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´•àµà´°à´®àµ€à´•രണമാകàµà´¨àµà´¨àµ. അതായതàµàµ, à´¸àµà´¥à´¿à´°à´®à´¾à´¯ " "à´•àµà´°à´®àµ€à´•രണതàµà´¤à´¿à´²à´¿à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€, à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സമയതàµà´¤àµàµ വരàµà´¤àµà´¤à´¿à´¯ മാറàµà´±à´™àµà´™à´³àµâ€ വീണàµà´Ÿàµà´‚ " "ലഭàµà´¯à´®à´¾à´•àµà´•àµà´®àµà´ªàµ‹à´³àµâ€ നഷàµà´Ÿà´®à´¾à´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ഒരൠനെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠകണകàµà´·à´¨àµà´³àµà´³ മേഖല മാറàµà´±àµà´•." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല മാറàµà´±àµà´•" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "കണകàµà´·à´¨àµà´•à´³àµâ€à´•àµà´•àµà´‚ ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµà´•à´³àµâ€à´•àµà´•àµà´®àµà´³àµà´³ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഖല മാറàµà´±àµà´•." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "പാനികàµà´•ൠമോഡിനരàµâ€à´¤àµà´¥à´‚ വരàµà´¨àµà´¨à´¤àµà´‚ പോകàµà´¨àµà´¨à´¤àµà´®à´¾à´¯ à´Žà´²àµà´²à´¾ പാകàµà´•à´±àµà´±àµà´•à´³àµà´‚ " "ഇലàµà´²à´¾à´¤à´¾à´•àµà´•àµà´¨àµà´¨àµàµ à´Žà´¨àµà´¨à´¾à´£àµàµ." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "പാനികàµà´•ൠമോഡàµ" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "ലോകàµà´•àµâ€à´¡àµŒà´£àµâ€ ഫയരàµâ€à´µàµ‹à´³àµâ€ à´•àµà´°à´®àµ€à´•രണം പൂടàµà´Ÿàµà´¨àµà´¨àµ. ഇങàµà´™à´¨àµ† വൈറàµà´±àµâ€Œà´²à´¿à´¸àµà´±àµà´±à´¿à´²àµà´³àµà´³ " "à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•àµàµ മാതàµà´°à´®àµ‡ ഇതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•ൂ." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "ലോകàµà´•ൠഡൌണàµâ€" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´•àµà´°à´®àµ€à´•രണം à´¸àµà´¥à´¿à´°à´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¸à´®à´¯à´‚ à´¸àµà´¥à´¿à´°à´®à´¾à´•àµà´•à´²àµâ€" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_കാഴàµà´š" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "à´à´¸à´¿à´Žà´‚പി തരങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "നേരിടàµà´Ÿàµà´³àµà´³ à´•àµà´°à´®àµ€à´•രണം" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "ലോകàµà´•àµà´¡àµŒà´£àµâ€ വൈറàµà´±àµ ലിസàµà´±àµà´±àµ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "സഹായം (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "à´•àµà´°à´®àµ€à´•രണം:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "നിലവിലàµâ€ ദൃശàµà´¯à´®à´¾à´¯ à´•àµà´°à´®àµ€à´•രണം. à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´•àµà´°à´®àµ€à´•രണമാണàµàµ സജീവമായ à´•àµà´°à´®àµ€à´•രണം. " "സരàµâ€à´µàµ€à´¸àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ സിസàµà´±àµà´±à´‚ വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ " "വീണàµà´Ÿàµà´‚ ആരംഭിയàµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµàµ ശേഷം à´Žà´¨àµà´¨àµ‡à´•àµà´•àµà´®àµà´³àµà´³ à´•àµà´°à´®àµ€à´•രണം സജീവമാകàµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "മേഘലയàµà´•àµà´•àµà´³àµà´³ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•ൠകണകàµà´·à´¨àµà´•à´³àµâ€, ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµà´•à´³àµâ€, à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµ " "വിലാസങàµà´™à´³àµâ€ à´Žà´¨àµà´¨à´¿à´µà´¯àµà´•àµà´•àµà´³àµà´³ വിശàµà´µà´¸àµà´¤à´¤ firewalld മേഘല നിഷàµà´•à´°àµâ€à´·à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ. " "സരàµâ€à´µàµ€à´¸àµà´•à´³àµâ€, പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€, സമàµà´ªàµà´°à´¦à´¾à´¯à´™àµà´™à´³àµâ€, മാസàµà´•àµà´¯àµ‚റേഡിങàµ, പോരàµâ€à´Ÿàµà´Ÿàµ/" "പാകàµà´•à´±àµà´±àµ ഫോരàµâ€à´µàµ‡à´¡à´¿à´™àµ, icmp à´«à´¿à´²àµâ€à´±àµà´±à´±àµà´•à´³àµâ€, റിചàµà´šàµ റൂളàµà´•à´³àµâ€ à´Žà´¨àµà´¨à´¿à´µ മേഘലയിലàµâ€ " "ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ. ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµà´•à´³àµà´‚ à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´¨àµà´³àµà´³ വിലാസങàµà´™à´³àµà´‚ à´…à´¨àµà´¸à´°à´¿à´šàµà´šà´¾à´£àµàµ " "മേഘല." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "മേഘല ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "മേഘല à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "മേഘല നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല ലഭàµà´¯à´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "à´à´¤àµ†à´²àµà´²à´¾à´‚ സരàµâ€â€à´µàµ€à´¸àµà´•ളാണൠവിശàµà´µà´¸à´¨àµ€à´¯à´‚ à´Žà´¨àµà´¨àµ നിങàµà´™à´³àµâ€à´•àµà´•ൠഇവിടെ à´µàµà´¯â€Œà´•àµà´¤à´®à´¾à´•àµà´•ാം. " "à´ˆ മേഘലയàµà´•àµà´•àµà´³àµà´³ à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµà´•à´³àµà´‚ ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµà´•à´³àµà´‚ കണകàµà´·à´¨àµà´•ളിലàµà´‚ നിനàµà´¨àµà´‚ " "സിസàµà´±àµà´±à´¤àµà´¤à´¿à´²àµ‡à´•àµà´•àµà´³àµà´³ à´Žà´²àµà´²à´¾ ഹോസàµà´±àµà´±àµà´•à´³àµà´‚ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµà´•à´³àµà´‚ വിശàµà´µà´¸à´¨àµ€à´¯à´®à´¾à´¯ " "സേവനങàµà´™à´³àµâ€à´•àµà´•àµàµ ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "സരàµâ€à´µàµ€à´¸àµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "അധികമായ പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ പോരàµâ€à´Ÿàµà´Ÿàµ പരിധികളàµà´‚ ചേരàµâ€à´•àµà´•àµà´•, " "സിസàµà´±àµà´±à´¤àµà´¤à´¿à´²àµ‡à´•àµà´•àµàµ കണകàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµà´•à´³àµâ€ " "à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´Žà´²àµà´²à´¾à´‚ ഹോസàµà´±àµà´±àµà´•ളിലേകàµà´•àµà´³àµà´³ ഇവയàµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¿à´¯àµà´•àµà´•േണàµà´Ÿà´¤àµà´£àµà´Ÿàµàµ." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "à´à´¤àµà´¤à´¿à´šàµà´šàµ‡à´°à´£àµà´Ÿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "നിങàµà´™à´³àµà´Ÿàµ† à´ªàµà´°à´¾à´¦àµ‡à´¶à´¿à´• ശൃംഖലാ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¤àµà´¤à´¿à´¨àµ† ഇനàµà´±à´°àµâ€à´¨àµ†à´±àµà´±àµà´®à´¾à´¯à´¿ " "ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ഒരൠആതിഥേയനàµâ€ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ റൂടàµà´Ÿà´°àµâ€ നിങàµà´™à´³àµâ€ " "à´•àµà´°à´®àµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ à´Žà´™àµà´•à´¿à´²àµâ€ മാസàµà´•àµà´¯àµà´±àµ‡à´¡à´¿à´‚ഗൠനിങàµà´™à´³àµâ€à´•àµà´•ൠപàµà´°à´¯àµ‹à´œà´¨à´•രമാകàµà´¨àµà´¨àµ. " "നിങàµà´™à´³àµà´Ÿàµ† à´ªàµà´°à´¾à´¦àµ‡à´¶à´¿à´• ശൃംഖലാകരàµà´®àµà´®à´‚ അദൃശàµà´¯â€Œà´®à´¾à´¯à´¿à´°à´¿à´•àµà´•àµà´‚, മാതàµà´°à´®à´²àµà´², " "ഇനàµà´±à´°àµâ€à´¨àµ†à´±àµà´±à´¿à´²àµâ€ ആതിഥേയനെ ഒരൠവിലാസമായി കണകàµà´•ാകàµà´•àµà´¨àµà´¨àµ. മാസàµà´•àµà´¯àµà´±àµ‡à´¡à´¿à´‚ഗൠIPv4 " "മാതàµà´°à´®à´¾à´£àµ." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "മാസàµà´•àµà´¯àµà´±àµ‡à´¡àµ മേഘല" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "മാസàµà´•àµà´¯àµà´±àµ‡à´¡à´¿à´™àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨àµ†à´™àµà´•à´¿à´²àµâ€, നിങàµà´™à´³àµà´Ÿàµ† IPv4 " "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµàµ à´à´ªà´¿ ഫോരàµâ€à´µàµ‡à´¡à´¿à´™àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "മാസàµà´•àµà´¯àµà´±àµ‡à´¡à´¿à´‚à´—àµ" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ഒരൠപàµà´°à´¾à´¦àµ‡à´¶à´¿à´• à´µàµà´¯à´µàµà´¸àµà´¥à´¯à´¿à´²àµà´³àµà´³ പോരàµâ€à´Ÿàµà´Ÿà´¿à´²àµâ€ നിനàµà´¨àµà´‚ മറàµà´±àµŠà´¨àµà´¨à´¿à´²àµ‡à´•àµà´•ൠ" "à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ ഒരൠപàµà´°à´¾à´¦àµ‡à´¶à´¿à´• à´µàµà´¯â€Œà´µà´¸àµà´¥à´¯à´¿à´²àµâ€à´¨à´¿à´¨àµà´¨àµà´‚ മറàµà´±àµŠà´¨àµà´¨à´¿à´²àµ‡à´•àµà´•ൠ" "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ അയയàµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´Žà´¨àµà´Ÿàµà´°à´¿à´•à´³àµâ€ നലàµâ€à´•àµà´•. വിനിമയതലം മാസàµà´•àµà´¯àµà´±àµ‡à´¡àµ " "ചെയàµà´¤àµ†à´™àµà´•à´¿à´²àµâ€ മാതàµà´°à´®àµ‡ മറàµà´±àµŠà´°àµ സിസàµà´±àµà´±à´®à´¿à´²àµ‡à´•àµà´•ൠഅയയàµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªàµà´°à´¯àµ‹à´œà´¨à´®àµà´³àµà´³àµ‚." " പോരàµâ€à´Ÿàµà´Ÿàµ ഫോരàµâ€à´µàµ‡à´°àµâ€à´¡à´¿à´‚ഗൠIPv4 മാതàµà´°à´®à´¾à´£àµ." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ഫോരàµâ€à´µàµ‡à´¡àµ പോരàµâ€à´Ÿàµà´Ÿàµ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ഫോരàµâ€à´µàµ‡à´¡àµ പോരàµâ€à´Ÿàµà´Ÿàµ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ഫോരàµâ€à´µàµ‡à´¡àµ പോരàµâ€à´Ÿàµà´Ÿàµ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ശൃംഖലയിലെ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±àµà´•à´³àµâ€à´•àµà´•ൠതമàµà´®à´¿à´²àµâ€ പിശകൠഅറിയികàµà´•àµà´¨àµà´¨ സനàµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ " "അയയàµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´£àµ à´ªàµà´°à´§à´¾à´¨à´®à´¾à´¯àµà´‚ ഇനàµà´±à´°àµâ€à´¨àµ†à´±àµà´±àµ à´•à´£àµà´Ÿàµà´°àµ‹à´³àµâ€ മെസേജൠ" "à´ªàµà´°àµ‹à´Ÿàµà´Ÿàµ‹à´•àµà´•ോളàµâ€ (ICMP) ഉപയോഗികàµà´•àµà´¨àµà´¨à´¤àµ. കൂടാതെ, വിവരങàµà´™à´³àµâ€ ലഭàµà´¯â€Œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ " "സഹായികàµà´•àµà´¨àµà´¨ പിങൠഅപേകàµà´·à´•à´³àµâ€à´•àµà´•àµà´‚ മറàµà´ªà´Ÿà´¿à´•à´³àµâ€à´•àµà´•àµà´‚ ഇവ ഉപയോഗികàµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "പടàµà´Ÿà´¿à´•യിലàµâ€ നിനàµà´¨àµà´‚ വേണàµà´Ÿ à´Žà´¨àµà´¨àµ തീരàµà´®à´¾à´¨à´¿à´•àµà´•േണàµà´Ÿ ICMP തരതàµà´¤à´¿à´²àµà´³àµà´³à´µ " "അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•. മറàµà´±àµ†à´²àµà´²à´¾ ICMP തരതàµà´¤à´¿à´²àµà´³àµà´³à´µà´¯àµà´‚ ഫയരàµâ€à´µàµ‹à´³àµâ€ à´•à´Ÿà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ " "à´…à´¨àµà´µà´¾à´¦à´®àµà´³àµà´³à´µà´¯à´¾à´£àµ. പരിമിതികളിലàµà´²à´¾à´¤àµà´¤à´¤à´¾à´£àµ സഹജം." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP à´«à´¿à´²àµâ€â€Œà´±àµà´±à´°àµâ€" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "മേഘലയàµà´•àµà´•àµà´³àµà´³ റിചàµà´šàµ ഭാഷ നിയമങàµà´™à´³àµâ€ നിങàµà´™à´³àµâ€à´•àµà´•ിവിടെ സജàµà´œà´®à´¾à´•àµà´•ാം." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "റിചàµà´šàµ റൂളàµâ€ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "റിചàµà´šàµ റൂളàµâ€ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "റിചàµà´šàµ റൂളàµâ€ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "റിചàµà´šàµ റൂളàµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "മേഘലയàµà´•àµà´•àµàµ സംയോജക ഘടകങàµà´™à´³àµâ€ ബൈനàµâ€à´¡àµ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµàµ à´Žà´¨àµâ€à´Ÿàµà´°à´¿à´•à´³àµâ€ ചേരàµâ€à´•àµà´•àµà´•. " "സംയോജകഘടകം ഒരൠകണകàµà´·à´¨àµâ€ ഉപയോഗിയàµà´•àµà´•àµà´¨àµà´¨àµ†à´™àµà´•à´¿à´²àµâ€, കണകàµà´·à´¨à´¿à´²àµâ€ " "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരിയàµà´•àµà´•àµà´¨àµà´¨ മേഘലയായി à´ˆ മേഘല സജàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸à´¿à´²àµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "ഒരൠശàµà´°àµ‹à´¤à´¸àµà´¸àµ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸à´¿à´²àµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "മേഘലകളàµâ€" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€, സമàµà´ªàµà´°à´¦à´¾à´¯à´™àµà´™à´³àµâ€, ഘടകങàµà´™à´³àµâ€, ലകàµà´·àµà´¯ വിലാസങàµà´™à´³àµâ€ à´Žà´¨àµà´¨à´¿à´µà´¯àµ† " "à´’à´¨àµà´¨à´¿à´šàµà´šàµàµ ഒരൠfirewalld സരàµâ€à´µàµ€à´¸à´¾à´¯à´¿ കണകàµà´•ാകàµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "സരàµâ€à´µàµ€à´¸àµ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "സരàµâ€à´µàµ€à´¸àµ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "സരàµâ€à´µàµ€à´¸àµ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ സരàµâ€à´µàµ€à´¸àµ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "à´Žà´¨àµâ€à´Ÿàµà´°à´¿ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "à´Žà´¨àµâ€à´Ÿàµà´°à´¿ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ഘടകങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ലകàµà´·àµà´¯à´¸àµà´¥à´¾à´¨ വിലാസങàµà´™à´³àµâ€ നലàµâ€à´•àµà´¨àµà´¨àµ†à´™àµà´•à´¿à´²àµâ€, ലകàµà´·àµà´¯à´¸àµà´¥à´¾à´¨ വിലാസം , തരം " "à´Žà´¨àµà´¨à´¤à´¿à´²àµâ€ സരàµâ€à´µàµ€à´¸àµ à´Žà´¨àµâ€à´Ÿàµà´°à´¿ à´’à´¤àµà´™àµà´™àµà´¨àµà´¨àµ. à´°à´£àµà´Ÿàµàµ à´Žà´¨àµâ€à´Ÿàµà´°à´¿à´•à´³àµà´‚ കാലിയെങàµà´•à´¿à´²àµâ€ " "ഒരൠപരിമിതികളàµà´®à´¿à´²àµà´²." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "à´¸àµà´¥à´¿à´°à´®à´¾à´¯àµà´³àµà´³ à´•àµà´°à´®àµ€à´•à´°à´£ കാഴàµà´šà´¯à´¿à´²àµâ€ മാതàµà´°à´®àµ‡ സരàµâ€à´µàµ€à´¸àµà´•à´³àµâ€à´•àµà´•àµàµ മാറàµà´±à´‚ " "വരàµà´¤àµà´¤àµà´µà´¾à´¨àµâ€ സാധിയàµà´•àµà´•ൂ. സരàµâ€à´µàµ€à´¸àµà´•à´³àµà´Ÿàµ† à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´•àµà´°à´®àµ€à´•രണം " "പരിഹരിചàµà´šà´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld-à´¯àµà´•àµà´•àµà´³àµà´³àµŠà´°àµ ഇനàµà´±à´°àµâ€à´¨àµ†à´±àµà´±àµ à´•à´£àµà´Ÿàµà´°àµ‹à´³àµâ€ മസàµà´¸àµ‡à´œàµ à´ªàµà´°àµ‹à´Ÿàµà´Ÿàµ‹à´•àµà´•ോളàµâ€ " "(à´à´¸à´¿à´Žà´‚പി) തരതàµà´¤à´¿à´¨àµà´³àµà´³ വിവരങàµà´™à´³àµâ€ ഒരൠfirewalld icmptype ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "à´à´¸à´¿à´Žà´‚പി തരം ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "à´à´¸à´¿à´Žà´‚പി തരം à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "à´à´¸à´¿à´Žà´‚പി തരം നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "à´à´¸à´¿à´Žà´‚പി തരതàµà´¤à´¿à´²àµà´³àµà´³à´µ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "IPv4, IPv6 à´Žà´¨àµà´¨à´¿à´µà´¯àµà´•àµà´•àµàµ à´à´¸à´¿à´Žà´‚പി തരം ലഭàµà´¯à´®à´¾à´£àµ‹ à´Žà´¨àµà´¨àµàµ à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "à´¸àµà´¥à´¿à´°à´®à´¾à´¯àµà´³àµà´³ à´•àµà´°à´®àµ€à´•à´°à´£ കാഴàµà´šà´¯à´¿à´²àµâ€ മാതàµà´°à´®àµ‡ à´à´¸à´¿à´Žà´‚പി തരങàµà´™à´³àµâ€à´•àµà´•àµàµ മാറàµà´±à´‚ " "വരàµà´¤àµà´¤àµà´µà´¾à´¨àµâ€ സാധിയàµà´•àµà´•ൂ. à´à´¸à´¿à´Žà´‚പി തരങàµà´™à´³àµà´Ÿàµ† à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´•àµà´°à´®àµ€à´•രണം " "പരിഹരിചàµà´šà´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "നേരിടàµà´Ÿàµà´³àµà´³ à´•àµà´°à´®àµ€à´•രണം ഫയരàµâ€à´µàµ‹à´³à´¿à´²àµ‡à´•àµà´•àµàµ കൂടàµà´¤à´²àµâ€ à´…à´¨àµà´®à´¤à´¿ നലàµâ€à´•àµà´¨àµà´¨àµ. à´ˆ " "à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€à´•àµà´•àµàµ, ഉപയോകàµà´¤à´¾à´µàµàµ à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ iptables ശൈലികളàµâ€, അതായതàµàµ, " "പടàµà´Ÿà´¿à´•à´•à´³àµâ€, ചെയിനàµà´•à´³àµâ€, കമാനàµâ€à´¡àµà´•à´³àµâ€, പരാമീറàµà´±à´±àµà´•à´³àµâ€, ടാരàµâ€à´—à´±àµà´±àµà´•à´³àµâ€ à´Žà´¨àµà´¨à´¿à´µ " "അറിയേണàµà´Ÿ ആവശàµà´¯à´®àµà´£àµà´Ÿàµàµ. മറàµà´±àµàµ firewalld വിശേഷതകളàµâ€ ഉപയോഗിയàµà´•àµà´•àµà´µà´¾à´¨àµâ€ " "സാധàµà´¯à´®à´²àµà´² à´Žà´¨àµà´¨àµà´±à´ªàµà´ªàµà´³àµà´³à´ªàµà´ªàµ‹à´³àµâ€ മാതàµà´°à´‚ നേരിടàµà´Ÿàµà´³àµà´³ à´•àµà´°à´®àµ€à´•രണം " "ഉപയോഗിയàµà´•àµà´•àµà´µà´¾à´¨àµâ€ പാടàµà´³àµà´³àµ‚." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ഓരോ à´à´šàµà´›à´¿à´•à´¤àµà´¤à´¿à´¨àµà´±àµ‡à´¯àµà´‚ ipv ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµ ipv4 à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ ipv6 à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ " "eb ആയിരിയàµà´•àµà´•ണം. ipv4 - iptables, ipv6 - ip6tables, eb - ഇഥരàµâ€à´¨àµ†à´±àµà´±àµ " "à´¬àµà´°à´¿à´¡àµà´œàµà´•à´³àµâ€à´•àµà´•àµàµ (ebtables) à´Žà´¨àµà´¨à´¿à´™àµà´™à´¨àµ†à´¯à´¾à´•àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "നിയമങàµà´™à´³àµâ€à´•àµà´•ൊപàµà´ªà´‚ ഉപയോഗിയàµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ അധികമായ ചെയിനàµà´•à´³àµâ€." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ചെയിനàµâ€ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ചെയിനിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ചെയിനàµâ€ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ചെയിനàµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "à´®àµà´¨àµâ€à´—ണനയàµà´•àµà´•ൊപàµà´ªà´‚ ഒരൠപടàµà´Ÿà´¿à´•യിലàµâ€ ഒരൠചെയിനിനàµàµ args " "ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€à´•àµà´•ൊപàµà´ªà´‚ ഒരൠനിയമം ചേരàµâ€à´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "നിയമങàµà´™à´³àµà´Ÿàµ† à´•àµà´°à´®à´¤àµà´¤à´¿à´¨àµàµ വേണàµà´Ÿà´¿ à´®àµà´¨àµâ€à´—ണന ഉപയോഗിയàµà´•àµà´•àµà´¨àµà´¨àµ. à´®àµà´¨àµâ€à´—ണന 0 - " "ചെയിനിനàµà´±àµ† à´®àµà´•ളിലàµâ€ നിയമം ചേരàµâ€à´•àµà´•àµà´•, ഇതിനàµàµ ശേഷം കൂടàµà´¤à´²àµâ€ à´®àµà´¨àµâ€à´—ണനയോടെ " "നിയമങàµà´™à´³àµâ€ ചേരàµâ€à´•àµà´•àµà´¨àµà´¨àµ. ഒരേ à´®àµà´¨àµâ€à´—ണനയàµà´³àµà´³ നിയമങàµà´™à´³àµâ€ ഒരേ തലതàµà´¤à´¿à´²à´¾à´•àµà´¨àµà´¨àµ. " "ഇവയàµà´Ÿàµ† à´•àµà´°à´®à´‚ à´¸àµà´¥à´¿à´°à´®à´²àµà´², മാറàµà´±àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ. à´’à´¨àµà´¨à´¿à´¨àµàµ ശേഷം മറàµà´±àµŠà´¨àµà´¨à´¾à´¯à´¿ " "നിയമം ചേരàµâ€à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµàµ, ആദàµà´¯à´‚ à´®àµà´¨àµâ€à´—ണന à´•àµà´±à´žàµà´žà´¤àµàµ ഉപയോഗിയàµà´•àµà´•àµà´• ശേഷം " "à´®àµà´¨àµâ€à´—ണന കൂടിയതàµàµ, à´…à´™àµà´™à´¨àµ†..." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "നിയമം ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "നിയമതàµà´¤à´¿à´²àµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "നിയമം†നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "നിയമങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "പാസàµà´¤àµà´°àµ‚ നിയമങàµà´™à´³àµâ€ à´ªàµà´°à´¤àµà´¯àµ‡à´• ചെയിനിലലàµà´², പകàµà´·àµ‡ നേരിടàµà´Ÿàµàµ ഫയരàµâ€à´µàµ‹à´³à´¿à´²àµ‡à´•àµà´•àµàµ " "അയയàµà´•àµà´•àµà´¨àµà´¨àµ. iptables, ip6tables, ebtables à´Žà´¨àµà´¨à´¿à´µà´¯àµ†à´²àµà´²à´¾à´‚ ഉപയോഗിയàµà´•àµà´•ാം." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "പാസàµà´¤àµà´°àµ‚ നിയമങàµà´™à´³àµâ€ ഫയരàµâ€à´µàµ‹à´³à´¿à´¨àµ† ബാധിയàµà´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²àµ†à´¨àµà´¨àµàµ ദയവായി ഉറപàµà´ªàµàµ " "വരàµà´¤àµà´¤àµà´•." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "പാസàµà´¤àµà´°àµ‚ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "പാസàµà´¤àµà´°àµ‚ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "പാസàµà´¤àµà´°àµ‚ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "പാസàµà´¤àµà´°àµ‚" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "firewalld-à´¯àµà´•àµà´•àµà´³àµà´³ ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´‚ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµà´®àµà´³àµà´³ ലളിതമായ പോളിസികളാണàµàµ " "ലോകàµà´•àµà´¡àµŒà´£àµâ€ വിശേഷത. ഇതàµàµ ഫയരàµâ€à´µàµ‹à´³à´¿à´²àµâ€ മാതàµà´°à´®àµ‡à´¯àµà´³àµà´³àµ‚. ലോകàµà´•àµà´¡àµŒà´£àµâ€ വൈറàµà´±àµ " "ലിസàµà´±àµà´±à´¿à´²àµâ€ കമാനàµâ€à´¡àµà´•à´³àµâ€, സനàµà´¦à´°àµâ€à´­à´™àµà´™à´³àµâ€, ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµâ€, ഉപയോകàµà´¤àµƒ à´à´¡à´¿à´•à´³àµâ€ " "à´Žà´¨àµà´¨à´¿à´µ à´…à´Ÿà´™àµà´™àµà´¨àµà´¨àµ." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "സനàµà´¦à´°àµâ€à´­à´‚ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "സനàµà´¦à´°àµâ€à´­à´‚ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "സനàµà´¦à´°àµâ€à´­à´‚ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "സനàµà´¦à´°àµâ€à´­à´™àµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "വൈറàµà´±àµ ലിസàµà´±àµà´±à´¿à´²àµà´³àµà´³àµŠà´°àµ കമാനàµâ€à´¡àµ à´Žà´¨àµâ€à´Ÿàµà´°à´¿ '*'-à´²àµâ€ അവസാനിയàµà´•àµà´•àµà´¨àµà´¨àµ†à´™àµà´•à´¿à´²àµâ€, " "കമാനàµâ€â€à´¡à´¿à´²àµâ€ ആരംഭിയàµà´•àµà´•àµà´¨àµà´¨ à´Žà´²àµà´²à´¾ കമാനàµâ€à´¡àµ ലൈനàµà´•à´³àµà´‚ ചേരàµà´¨àµà´¨àµ. '*' " "ലഭàµà´¯à´®à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€, ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€ ഉളàµâ€à´ªàµà´ªà´Ÿàµ†à´¯àµà´³àµà´³ ആബàµà´¸à´²àµà´¯àµ‚à´Ÿàµà´Ÿàµ കമാനàµâ€à´¡àµà´‚ " "പൊരàµà´¤àµà´¤à´ªàµà´ªàµ†à´Ÿà´£à´‚. " #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "കമാനàµâ€à´¡àµ ലൈനàµâ€ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "കമാനàµâ€à´¡àµ ലൈനàµâ€ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "കമാനàµâ€à´¡àµ ലൈനàµâ€ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "കമാനàµâ€à´¡àµ ലൈനàµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† പേരàµà´•à´³àµâ€." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚ à´šà´¿à´Ÿàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† പേരàµà´•à´³àµâ€" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´à´¡à´¿à´•à´³àµâ€." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ഉപയോകàµà´¤àµƒ à´à´¡à´¿ ചേരàµâ€à´•àµà´•àµà´•" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ഉപയോകàµà´¤àµƒ à´à´¡à´¿à´¯à´¿à´²àµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ഉപയോകàµà´¤àµƒ à´à´¡à´¿ നീകàµà´•à´‚ ചെയàµà´¯àµà´•" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´à´¡à´¿à´•à´³àµâ€" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "സിസàµà´±àµà´±à´¤àµà´¤à´¿à´²àµâ€ നിലവിലàµâ€ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "പാനികàµà´•ൠമോഡàµ:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "ലോകàµà´•àµà´¡àµŒà´£àµâ€:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ മേഘല:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "പോരàµâ€à´Ÿàµà´Ÿàµà´‚ സമàµà´ªàµà´°à´¦à´¾à´¯à´µàµà´‚" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ഒരൠപോരàµâ€à´Ÿàµà´Ÿàµà´‚ സമàµà´ªàµà´°à´¦à´¾à´¯à´µàµà´‚ ദയവായി നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "നേരിടàµà´Ÿàµà´³àµà´³ നിയമം" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "ipv, പടàµà´Ÿà´¿à´•, ചെയിനàµâ€ à´®àµà´¨àµâ€à´—ണം à´Žà´¨àµà´¨à´¿à´µ പരിശോധിചàµà´šàµàµ ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€ നലàµâ€à´•àµà´•." "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "à´®àµà´¨àµâ€à´—ണന:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ദയവായി ഒരൠസമàµà´ªàµà´°à´¦à´¾à´¯à´‚ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "മറàµà´±àµà´³àµà´³ സമàµà´ªàµà´°à´¦à´¾à´¯à´‚:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "റിചàµà´šàµ റൂളàµâ€" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ദയവായി ഒരൠറിചàµà´šàµ റൂളàµâ€ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "ഹോസàµà´±àµà´±àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´¨àµàµ, വൈറàµà´±àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´¬àµà´²à´¾à´•àµà´•ൠ" "ലിസàµà´±àµà´±àµ ചെയàµà´¤à´¤à´¿à´¨àµàµ എലമെനàµà´±àµ നിരàµâ€à´œàµ€à´µà´®à´¾à´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "à´¶àµà´°àµ‹à´¤à´¸àµà´¸àµ:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "ലകàµà´·àµà´¯à´¸àµà´¥à´¾à´¨à´‚:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ലോഗàµ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "à´“à´¡à´¿à´±àµà´±àµ ചെയàµà´¯àµà´•:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4-ഉം ipv6-ഉം" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "വിപിരീതമായ" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿, à´ˆ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿ 'reject' ചെയàµà´¤àµàµ à´•àµà´Ÿàµà´‚ബം " "'ipv4' à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ 'ipv6' ആയിരിയàµà´•àµà´•ണം (à´°à´£àµà´Ÿàµà´‚ പാടിലàµà´² )." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "തരം:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "പരിധി:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "à´ªàµà´°àµ€à´«à´¿à´•àµà´¸àµ:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "തലം:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "എലമെനàµà´±àµ:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ സരàµâ€à´µàµ€à´¸àµ സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ സരàµâ€à´µàµ€à´¸àµ സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€ ദയവായി à´•àµà´°à´®àµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ദയവായി ഒരൠസരàµâ€à´µàµ€à´¸àµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ഉപയോകàµà´¤àµƒ à´à´¡à´¿" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ദയവായി ഉപയോകàµà´¤àµƒ à´à´¡à´¿ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ദയവായി ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚ നലàµâ€à´•àµà´•." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ മേഘല സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ദയവായി à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨ മേഘല സജàµà´œàµ€à´•രണങàµà´™à´³àµâ€ à´•àµà´°à´®àµ€à´•à´°à´¿à´¯àµà´•àµà´•àµà´•:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ ലകàµà´·àµà´¯à´¸àµà´¥à´¾à´¨à´‚" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ലകàµà´·àµà´¯à´¸àµà´¥à´¾à´¨à´‚:" firewalld-0.4.4.6/po/mr.po000066400000000000000000002022021320241217000152160ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Automatically generated, 2004 # Rahul Bhalerao , 2006 # Rahul Bhalerao , 2006 # sandeep shedmake , 2007-2008 # Sandeep Shedmake , 2008-2009 # sandeeps , 2009-2010 # sandeeps , 2013-2014 # sandeeps , 2013 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 10:00-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Marathi (http://www.transifex.com/projects/p/firewalld/" "language/mr/)\n" "Language: mr\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "फायरवॉल ॲपलेट" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "फायरवॉल" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "फायरवॉल संयोजना" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "फायरवॉल;नेटवरà¥à¤•;सà¥à¤°à¤•à¥à¤·à¤¾;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "संवाद '%s' करिता कà¥à¤·à¥‡à¤¤à¥à¤° निवडा" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤à¥‹à¤¨" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "जोडणी '%s' करिता à¤à¥‹à¤¨ निवडा" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "शिलà¥à¤¡à¤¸à¥ अप किंवा डाउन कà¥à¤·à¥‡à¤¤à¥à¤° संरचीत करा" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "शिलà¥à¤¡à¤¸à¥ अप व शिलà¥à¤¡à¤¸à¥ डाउनकरिता तà¥à¤®à¥à¤¹à¥€ येथे कà¥à¤·à¥‡à¤¤à¥à¤° निवडू शकता." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "हे गà¥à¤£à¤§à¤°à¥à¤® पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤à¥‹à¤¨à¥à¤¸à¤šà¤¾ वापर करणाऱà¥à¤¯à¤¾à¤‚ना उपयोगी ठरेल. " "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना, जे जोडणींचे à¤à¥‹à¤¨à¥à¤¸ बदलतात, याचा मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ वापर ठरू शकतो." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "शिलà¥à¤¡à¤¸à¥ अप कà¥à¤·à¥‡à¤¤à¥à¤°:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "शिलà¥à¤¡à¤¸à¥ डाउन कà¥à¤·à¥‡à¤¤à¥à¤°:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "शिलà¥à¤¡à¤¸à¥ अप" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "सूचना सà¥à¤°à¥‚ करा" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "फायरवॉल सेटिंगà¥à¤œ संपादित करा..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "जोडणींचे कà¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤‚मधà¥à¤¯à¥‡ बदल करा..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "शिलà¥à¤¡à¤¸à¥ अप किंवा डाउन कà¥à¤·à¥‡à¤¤à¥à¤° संरचीत करा..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "सरà¥à¤µ नेटवरà¥à¤• टà¥à¤°à¤¾à¤«à¤¿à¤• अडवा" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "जोडणी" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "सोअरà¥à¤¸à¥‡à¤¸" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ओळख पटवणे अपयशी." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "अवैध बाब %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "नाव आधीपासूनच असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "firewall डिमनकरिता जोडणी नाही" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "सरà¥à¤µ नेटवरà¥à¤• टà¥à¤°à¤¾à¤«à¤¿à¤• अडवले आहे." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "संवाद '{interface}' वरील जोडणी '{connection}' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¥€à¤¯" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "संवाद '{interface}' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¥€à¤¯" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "सà¥à¤°à¥‹à¤¤ {source} करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' सकà¥à¤°à¥€à¤¯" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "सकà¥à¤°à¥€à¤¯ कà¥à¤·à¥‡à¤¤à¥à¤° नाही." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD करिता जोडणी सà¥à¤¥à¤¾à¤ªà¥€à¤¤ केले." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD करिता जोडणी हरवले." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD पà¥à¤¨à¥à¤¹à¤¾ लोड केले आहे." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤²à¤¾ '%s' करिता बदलले आहे." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "नेटवरà¥à¤• टà¥à¤°à¤¾à¤«à¤¿à¤• यापà¥à¤¢à¥‡ अडवले जात नाही." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "सकà¥à¤°à¥€à¤¯ केले" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "निषà¥à¤•à¥à¤°à¥€à¤¯ केले" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "संवाद '{interface}' वरील जोडणी '{connection}' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' " "{activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "संवाद '{interface}' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s' सकà¥à¤°à¥€à¤¯ केले, संवाद '%s' करिता" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "सोअरà¥à¤¸ '{source}' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "सोअरà¥à¤¸ '%s' करिता कà¥à¤·à¥‡à¤¤à¥à¤° '%s' सकà¥à¤°à¥€à¤¯ केले" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "बदल लागू केले." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "नेटवरà¥à¤• जोडणी '%s' तरà¥à¤«à¥‡ वापरले जाते" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "सà¥à¤°à¥‚ केले" #: ../src/firewall-config:97 msgid "disabled" msgstr "बंद केले" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "चिनà¥à¤¹ लोड करणà¥à¤¯à¤¾à¤¸ अपयशी." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "रनटाइम" #: ../src/firewall-config:398 msgid "Permanent" msgstr "कायम" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "सेवा" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "पोरà¥à¤Ÿ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "शिषà¥à¤Ÿà¤¾à¤šà¤¾à¤°" #: ../src/firewall-config:560 msgid "To Port" msgstr "पà¥à¤°à¤¤à¤¿ पोरà¥à¤Ÿ" #: ../src/firewall-config:562 msgid "To Address" msgstr "पà¥à¤°à¤¤à¤¿ पतà¥à¤¤à¤¾" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "ICMP पà¥à¤°à¤•ार" #: ../src/firewall-config:817 msgid "Family" msgstr "फॅमिली" #: ../src/firewall-config:819 msgid "Action" msgstr "कृती" #: ../src/firewall-config:821 msgid "Element" msgstr "घटक" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "लकà¥à¤·à¥à¤¯" #: ../src/firewall-config:827 msgid "log" msgstr "लॉग" #: ../src/firewall-config:829 msgid "Audit" msgstr "ऑडिट" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ताकीद" #: ../src/firewall-config:1612 msgid "Error" msgstr "तà¥à¤°à¥à¤Ÿà¥€" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "सà¥à¤µà¥€à¤•ार करा" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "नकारा" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "वगळा" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "मरà¥à¤¯à¤¾à¤¦à¤¾" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "पोरà¥à¤Ÿ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "सà¥à¤¤à¤°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "होय" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s': सरà¥à¤µà¥à¤¹à¤¿à¤¸ '%s' अनà¥à¤ªà¤²à¤¬à¥à¤§." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "काढून टाका" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "दà¥à¤°à¥à¤²à¤•à¥à¤· करा" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° '%s': ICMP पà¥à¤°à¤•ार '%s' अनà¥à¤ªà¤²à¤¬à¥à¤§." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "बिलà¥à¤Ÿ-इन à¤à¥‹à¤¨, पà¥à¤¨à¤ƒà¤¨à¤¾à¤µ देणे समरà¥à¤¥à¥€à¤¤ नाही." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "सेकंद" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "मिनिट" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "तास" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "दिवस" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "संकट" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "सावधानता" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "गंभीर" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "तà¥à¤°à¥à¤Ÿà¥€" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "सावधानता" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "सूचना" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "माहिती" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "डिबग करा" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "संवाद संकà¥à¤°à¤®à¥€à¤¤ à¤à¤¾à¤²à¥‡ असलà¥à¤¯à¤¾à¤µà¤°à¤š इतर पà¥à¤°à¤£à¤¾à¤²à¥€à¤•रिता फॉरवरà¥à¤¡ करणे उपयोगी ठरते.\n" "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हे à¤à¥‹à¤¨ मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡ करायचे ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "बिलà¥à¤Ÿ-इन सरà¥à¤µà¥à¤¹à¤¿à¤¸, पà¥à¤¨à¤ƒà¤¨à¤¾à¤®à¤¾à¤‚कन समरà¥à¤¥à¥€à¤¤ नाही." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "बिलà¥à¤Ÿ-इन icmp, पà¥à¤¨à¤ƒà¤¨à¤¾à¤µ देणे समरà¥à¤¥à¥€à¤¤ नाही." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "सोअरà¥à¤¸ %s करिता कà¥à¤·à¥‡à¤¤à¥à¤° निवडा" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "पतà¥à¤¤à¤¾" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "कृपया आदेश ओळ दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "कृपया संदरà¥à¤­ दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "कृपया खालील सूचीपासून पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤à¥‹à¤¨ निवडा." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "डाइरेकà¥à¤Ÿ चैन" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "कृपया ipv आणि तकà¥à¤¤à¤¾ निवडा आणि चैनचे नाव दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "चैन:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "रॉ" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "सà¥à¤°à¤•à¥à¤·à¤¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "तकà¥à¤¤à¤¾:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "डाइरेकà¥à¤Ÿ पासथà¥à¤°à¥ नियम" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "कृपया ipv निवडा आणि बाबी दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "बाबी:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "पोरà¥à¤Ÿ फॉरवरà¥à¤¡à¥€à¤—" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "कृपया सà¥à¤¤à¥à¤°à¥‹à¤¤ व लकà¥à¤·à¥à¤¯ परà¥à¤¯à¤¾à¤¯ तà¥à¤®à¤šà¥à¤¯à¤¾ आवशà¥à¤¯à¤•तेपà¥à¤°à¤£à¤¾à¤£à¥‡ वापरा." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "पोरà¥à¤Ÿ / पोरà¥à¤Ÿ कà¥à¤·à¥‡à¤¤à¥à¤°:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP पतà¥à¤¤à¤¾:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "सोअरà¥à¤¸" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "लकà¥à¤·à¥à¤¯" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "सà¥à¤¥à¤¾à¤¨à¥€à¤• फॉरà¥à¤µà¤¡à¥€à¤‚ग कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ केलà¥à¤¯à¤¾à¤¸, तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ पोरà¥à¤Ÿ निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ करावे लागेल. " "सà¥à¤¤à¥à¤°à¥‹à¤¤ पोरà¥à¤Ÿ करीता हे पोरà¥à¤Ÿ वेगळे असायला हवे." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤• फॉरवरà¥à¤¡à¥€à¤—" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "पà¥à¤¢à¤šà¥à¤¯à¤¾ पोरà¥à¤Ÿ करीता पाठवा" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ठलक नोंदणी आवशà¥à¤¯à¤• आहे, इतर सरà¥à¤µ वैकलà¥à¤ªà¤¿à¤• आहे." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "नाव:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "आवृतà¥à¤¤à¥€:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "छोटे:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "वरà¥à¤£à¤¨:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "फॅमिली:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "बेस ICMP पà¥à¤°à¤•ार सेटिंगà¥à¤œ" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "कृपया बेस ICMP पà¥à¤°à¤•ार सेटिंगà¥à¤œ संरचीत करा:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "कृपया ICMP पà¥à¤°à¤•ार पसंत करा" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "नोंदणी समावेश करा" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "फाइल (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "परà¥à¤¯à¤¾à¤¯ (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld पà¥à¤¨à¥à¤¹à¤¾ लोड करा" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "फायरवॉल रूलà¥à¤¸ पà¥à¤¨à¥à¤¹à¤¾ लोड करतो. सधà¥à¤¯à¤¾à¤šà¥€ कायम संरचना नविन रनटाइम संचरना बनेल. " "मà¥à¤¹à¤£à¤œà¥‡à¤š कायम संरचनामधà¥à¤¯à¥‡ न आढळलà¥à¤¯à¤¾à¤¸ रिलोड परà¥à¤¯à¤‚तचे फकà¥à¤¤ रनटाइम बदल गमवले " "जातात." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "नेटवरà¥à¤• जोडणी कोणतà¥à¤¯à¤¾ à¤à¥‹à¤¨à¤šà¥à¤¯à¤¾ मालकीचे आहे, ते बदला." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤° बदला" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "जोडणà¥à¤¯à¤¾ किंवा संवादकरिता पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤à¥‹à¤¨ बदला." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "पॅनिक मोड मà¥à¤¹à¤£à¤œà¥‡ सरà¥à¤µ येणारे आणि बाहेर जाणारे पॅकेटà¥à¤¸ वगळले जातात." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "पॅनिक मोड" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "लॉकडाऊन फायरवॉल संरचना कà¥à¤²à¥‚पबंद करते जेणेकरूण फकà¥à¤¤ लॉकडाऊनकरिता ॲपà¥à¤²à¤¿à¤•ेशनà¥à¤¸ " "तà¥à¤¯à¤¾à¤¸ बदलू शकेल." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "कà¥à¤²à¥‚पबंद करा" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "रनटाइम संरचना कायमचे करा" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "रनटाइम कायमचे करा" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "अवलोकन (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP पà¥à¤°à¤•ार" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "डाइरेकà¥à¤Ÿ संरचना" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "लॉकडाऊन वाइटलिसà¥à¤Ÿ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "मदत (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "संरचना:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "सधà¥à¤¯à¤¾ दृशà¥à¤¯à¤¾à¤¸à¥à¤ªà¤¦ संरचना. रनटाइम संरचना वासà¥à¤¤à¤µà¤¿à¤• सकà¥à¤°à¥€à¤¯ संरचना आहे. सरà¥à¤µà¥à¤¹à¤¿à¤¸ " "किंवा पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ पà¥à¤¨à¥à¤¹à¤¾ लोड किंवा पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ केलà¥à¤¯à¤¾à¤¨à¤‚तर कायम संरचना सकà¥à¤°à¥€à¤¯ " "केली जाईल." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld कà¥à¤·à¥‡à¤¤à¥à¤° नेटवरà¥à¤• जोडणींकरिता विशà¥à¤µà¤¾à¤¸à¤°à¥à¤¹à¤¤à¤¾ सà¥à¤¤à¤°, इंटरफेसेस व " "à¤à¥‹à¤¨à¤•रिता बांधणी असलेले सोअरà¥à¤¸ पतà¥à¤¤à¤¾ ठरवतो. कà¥à¤·à¥‡à¤¤à¥à¤° सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸, पोरà¥à¤Ÿà¤¸, " "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉलà¥à¤¸, मॅसà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡à¤¿à¤‚ग, पोरà¥à¤Ÿ किंवा पॅकेट फॉरवरà¥à¤¡à¤¿à¤‚ग, icmp फिलà¥à¤Ÿà¤°à¥à¤¸ व " "रिच रूलà¥à¤¸ à¤à¤•तà¥à¤°à¥€à¤¤ करतो. कà¥à¤·à¥‡à¤¤à¥à¤° इंटरफेसेस व सोअरà¥à¤¸ पतà¥à¤¤à¥à¤¯à¤¾à¤‚करिता बांधणी करतो." "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° समावेश करा" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° संपादित करा" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° काढून टाका" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ लोड करा" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "येथे तà¥à¤®à¥à¤¹à¥€ à¤à¥‹à¤¨à¤®à¤§à¥à¤¯à¥‡ कोणती सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸ विशà¥à¤µà¤¾à¤¸à¤°à¥à¤¹ आहेत ते ठरवू शकता. " "विशà¥à¤µà¤¾à¤¸à¤°à¥à¤¹ सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸ सरà¥à¤µ यजमानांपासून व हà¥à¤¯à¤¾ à¤à¥‹à¤¨à¤•रिता बांधीत असलेलà¥à¤¯à¤¾ " "जोडणी, संवाद व सोअरà¥à¤¸à¥‡à¤¸à¤ªà¤¾à¤¸à¥‚न मशीनपरà¥à¤¯à¤‚त पोहचणà¥à¤¯à¤¾à¤œà¥‹à¤—ी नेटवरà¥à¤•सकरिता " "पà¥à¤°à¤µà¥‡à¤¶à¤œà¥‹à¤—ी आहेत." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "अगाऊ पोरà¥à¤Ÿà¤¸à¥ किंवा पोरà¥à¤Ÿ वà¥à¤¯à¤¾à¤ªà¥à¤¤à¤¿ समाविषà¥à¤Ÿ करा, जे सरà¥à¤µ यजमान किंवा मशनसह " "जोडणीजोगी नेटवरà¥à¤•करिता पà¥à¤°à¤µà¥‡à¤¶à¤œà¥‹à¤—ी असायला हवे." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "पà¥à¤°à¤¤à¤¿ पोरà¥à¤Ÿ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "पोरà¥à¤Ÿ संपादित करा" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "पोरà¥à¤Ÿ काढून टाका" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "पोरà¥à¤Ÿà¤¸à¥" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡à¥€à¤‚ग यजमान सà¥à¤¥à¤¾à¤ªà¥€à¤¤ करणà¥à¤¯à¤¾à¤¸ किंवा इंटरनेटवरील सà¥à¤¥à¤¾à¤¨à¥€à¤• संजाळ " "जà¥à¤³à¤µà¤£à¥€à¤•रीता राऊटरला परवानगी देतो. तà¥à¤®à¤šà¥‡ सà¥à¤¥à¤¾à¤¨à¥€à¤• संजाळ दिसणार नाही व " "इंटरनेटवर यजमान à¤à¤• पतà¥à¤¤à¤¾ मà¥à¤¹à¤£à¥‚नच दिसून येईल. मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡à¥€à¤‚ग फकà¥à¤¤ IPv4 करीता " "आहे." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡ कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡à¤¿à¤‚ग सà¥à¤°à¥‚ करताना, IP फॉरà¥à¤µà¤°à¤°à¥à¤¡à¤¿à¤‚ग IPv4 नेटवरà¥à¤•à¥à¤¸à¤•रिता सà¥à¤°à¥‚ केले " "जाईल." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "मासà¥à¤•à¥à¤¯à¥à¤°à¥‡à¤¡à¥€à¤‚ग" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "सà¥à¤¥à¤¾à¤¨à¥€à¤• पà¥à¤°à¤£à¤¾à¤²à¥€à¤µà¤°à¥€à¤² किंवा à¤à¤•ा सà¥à¤¥à¤¾à¤¨à¥€à¤• पà¥à¤°à¤£à¤²à¥€ वरून अनà¥à¤¯ पà¥à¤°à¤£à¤¾à¤²à¥€ करीता à¤à¤•ा " "पोरà¥à¤Ÿ पासून इतर पोरà¥à¤Ÿ परà¥à¤¯à¤‚त पोरà¥à¤Ÿ फॉरà¥à¤µà¤¡ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ नोंदणी जोडा. अनà¥à¤¯ " "पà¥à¤°à¤£à¤¾à¤²à¥€ करीता फॉरà¥à¤µà¤¡à¥€à¤‚ग तेवà¥à¤¹à¤¾à¤š उपयोगी ठरेल जेवà¥à¤¹à¤¾ संवाद लपविला जाईल. पोरà¥à¤Ÿ " "फॉरà¥à¤µà¤¡à¥€à¤‚ग फकà¥à¤¤ IPv4 करीता आहे." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "फॉरवरà¥à¤¡ पोरà¥à¤Ÿ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "फॉरवरà¥à¤¡ पोरà¥à¤Ÿ संपादित करा" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "फॉरवरà¥à¤¡ पोरà¥à¤Ÿ काढून टाका" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message Protocol (ICMP) चा वापर संभावà¥à¤¯à¤¤à¤ƒ तà¥à¤°à¥à¤Ÿà¥€ संदेश " "पाठविणà¥à¤¯à¤¾à¤•ीरता केला जातो, पण अगाऊरितà¥à¤¯à¤¾ माहिती संदेश करीता देखील वापरला जातो " "जसे की पींग विनंती किंवा पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "यादीतील ICMP पà¥à¤°à¤•ार, जे सà¥à¤µà¥€à¤•ारले नाही पाहिजे. इतर सरà¥à¤µ ICMP पà¥à¤°à¤•ार फायरवॉल " "ला भेदून जाऊ शकतात. पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤à¤µà¤° मरà¥à¤¯à¤¾à¤¦à¤¾ नाही." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP फिलà¥à¤Ÿà¤°" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "कà¥à¤·à¥‡à¤¤à¥à¤°à¤•रिता तà¥à¤®à¥à¤¹à¥€ येथे रिच लà¤à¤—वेज रूलà¥à¤¸ सेट करू शकता." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "रिच रूल समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "रिच रूल संपादित करा" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "रिच रूल काढून टाका" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "रिच रूलà¥à¤¸" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "संवादांना à¤à¥‹à¤¨à¤•रिता बांधणी करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ नोंदणी समाविषà¥à¤Ÿ करा. जोडणीतरà¥à¤«à¥‡ संवादचा " "वापर करायचे असलà¥à¤¯à¤¾à¤¸, जोडणीमधà¥à¤¯à¥‡ निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ à¤à¥‹à¤¨à¤•रिता à¤à¥‹à¤¨ सेट केले जाईल." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "संवाद समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "संवाद संपादित करा" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "संवाद काढून टाका" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "सोअरà¥à¤¸ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "सोअरà¥à¤¸ संपादित करा" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "सोअरà¥à¤¸ काढून टाका" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "à¤à¥‹à¤¨à¥à¤¸" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "firewalld सरà¥à¤µà¥à¤¹à¤¿à¤¸ पोरà¥à¤Ÿà¤¸à¥, पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉलà¥à¤¸, घटक व लकà¥à¤·à¥à¤¯ पतà¥à¤¤à¥à¤¯à¤¾à¤‚चे à¤à¤•तà¥à¤°à¥€à¤•रण " "आहे." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸ संपादित करा" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸ काढून टाका" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "सरà¥à¤µà¥à¤¹à¤¿à¤¸ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ लोड करा" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "नोंदणी संपादीत करा" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "नोंदणी हटवा" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "घटक" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "लकà¥à¤·à¥à¤¯ पतà¥à¤¤à¤¾ निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ केलà¥à¤¯à¤¾à¤¸, सरà¥à¤µà¥à¤¹à¤¿à¤¸ नोंदणी लकà¥à¤·à¥à¤¯ पतà¥à¤¤à¤¾ व पà¥à¤°à¤•ारकरिता " "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ राहेल. दोंही नोंदणी रिकामे असलà¥à¤¯à¤¾à¤¸, कà¥à¤ à¤²à¤¿à¤¹à¥€ मरà¥à¤¯à¤¾à¤¦à¤¾ राहत नाही." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸à¤²à¤¾ फकà¥à¤¤ नेहमीचà¥à¤¯à¤¾ संरचना दृषà¥à¤¯à¤®à¤§à¥à¤¯à¥‡ बदलणे शकà¥à¤¯ आहे. सरà¥à¤µà¥à¤¹à¤¿à¤¸à¥‡à¤¸à¤šà¥€ " "रनटाइम संरचना ठरवले आहे." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalldसाठी इंटरनेट कंटà¥à¤°à¥‹à¤² मेसेज पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल (ICMP) पà¥à¤°à¤•ारकरिता firewalld " "icmptype माहिती पà¥à¤°à¤µà¤¤à¥‡." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार संपादित करा" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP पà¥à¤°à¤•ार काढून टाका" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP पà¥à¤°à¤•ार पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ लोड करा" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" "IPv4 आणि किंवा IPv6 करिता हे ICMP पà¥à¤°à¤•ार उपलबà¥à¤§ आहे किंवा नाही ते निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ " "करा." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP पà¥à¤°à¤•ारला कायमसà¥à¤µà¤°à¥‚पी संरचना दृषà¥à¤¯à¤®à¤§à¥à¤¯à¥‡ बदलणे शकà¥à¤¯ आहे. ICMP पà¥à¤°à¤•ारची " "रनटाइम संरचना ठरवली आहे." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "डाइरेकà¥à¤Ÿ संरचना फायरवॉलकरिता पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· पà¥à¤°à¤µà¥‡à¤¶ देते. हà¥à¤¯à¤¾ परà¥à¤¯à¤¾à¤¯à¤®à¥à¤³à¥‡ " "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ मूळ iptables ततà¥à¤µ, जसे कि तकà¥à¤¤à¤¾, चैनà¥à¤¸, आदेश, बाबी आणि लकà¥à¤·à¥à¤¯ " "माहिती असणे आवशà¥à¤¯à¤• आहे. पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· संरचनेचा वापर शेवटचा परà¥à¤¯à¤¾à¤¯ मà¥à¤¹à¤£à¥‚न करावा " "जेवà¥à¤¹à¤¾ इतर फायरवॉलà¥à¤¡ गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤·à¤¾à¤‚चा वापर शकà¥à¤¯ होत नाही." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• परà¥à¤¯à¤¾à¤¯à¤šà¥‡ ipv बाब ipv4 किंवा ipv6 किंवा eb पाहिजे. ipv4 असलà¥à¤¯à¤¾à¤¸ ते " "iptables करिता, ipv6 असलà¥à¤¯à¤¾à¤¸ ip6tables करिता आणि eb असलà¥à¤¯à¤¾à¤¸ for इथरनेट " "बà¥à¤°à¤¿à¤œà¥‡à¤¸à¤•रिता (ebtables) असायला हवे." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "नियमसह वापरणà¥à¤¯à¤¾à¤œà¥‹à¤—ी अगाऊ चैनà¥à¤¸." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "चैन समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "चैन संपादित करा" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "चैन काढून टाका" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "चैनà¥à¤¸" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾à¤¸à¤¹ तकà¥à¤¤à¤¾à¤®à¤§à¥à¤¯à¥‡ चैनकरिता आरà¥à¤—à¥à¤¯à¥à¤®à¥‡à¤‚टà¥à¤¸ args सह नियम समाविषà¥à¤Ÿ करा." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "नियमांना कà¥à¤°à¤®à¤µà¤¾à¤°à¤¿à¤¤ लावणà¥à¤¯à¤¾à¤•रिता पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾. पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾ 0 मà¥à¤¹à¤£à¤œà¥‡ चैनचà¥à¤¯à¤¾ " "शीरà¥à¤·à¤®à¤§à¥à¤¯à¥‡ नियम समाविषà¥à¤Ÿ करा , जासà¥à¤¤ पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾ असणाऱà¥à¤¯à¤¾ नियमाला अखेरीस " "समाविषà¥à¤Ÿ केले जाईल. समान पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾ असलेले नियम à¤à¤•ाच सà¥à¤¤à¤¾à¤°à¤¾à¤µà¤° असतात आणि या " "नियमांची कà¥à¤°à¤®à¤µà¤¾à¤°à¥€ निशà¥à¤šà¥€à¤¤ नसते आणि कदाचित बदलू शकते. à¤à¤•ा नियम नंतर इतर " "समाविषà¥à¤Ÿ केले जाईल, याची खातà¥à¤°à¥€ करायचे असलà¥à¤¯à¤¾à¤¸, पहिलà¥à¤¯à¤¾ नियमकरिता किमान " "पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾à¤šà¤¾ वापर करा आणि खालीलकरिता जासà¥à¤¤ पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾à¤šà¤¾ वापर करा." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "नियम समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "नियम संपादित करा" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "नियम काढून टाका" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "नियम" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "फायरवॉलकरिता पासथà¥à¤°à¥ नियम पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¤¿à¤¤à¥à¤¯à¤¾ पà¥à¤°à¤µà¤²à¥‡ जातात आणि तà¥à¤¯à¤¾à¤¸ विशेष " "चैनमधà¥à¤¯à¥‡ सà¥à¤¥à¤¿à¤¤ केले जात नाही. सरà¥à¤µ iptables, ip6tables आणि ebtables " "परà¥à¤¯à¤¾à¤¯à¤¾à¤‚चा वापर शकà¥à¤¯ आहे." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "कृपया फायरवॉल नषà¥à¤Ÿ होणार नाही याची पासथà¥à¤°à¥ नियमतरà¥à¤«à¥‡ काळजी घà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "पासथà¥à¤°à¥ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "पासथà¥à¤°à¥ संपादित करा" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "पासथà¥à¤°à¥ काढून टाका" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "पासथà¥à¤°à¥" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "firewalld करिता लॉकडाऊन वापरकरà¥à¤¤à¤¾ व ॲपà¥à¤²à¤¿à¤•ेशन करारचे लाइटवेट गà¥à¤£à¤§à¤°à¥à¤® आहे. ते " "फायरवॉलकरिता बदल मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ ठेवते. लॉकडाउन वाइटलिसà¥à¤Ÿà¤®à¤§à¥à¤¯à¥‡ आदेश, संदरà¥à¤­, " "वापरकरà¥à¤¤à¥‡ व यà¥à¤œà¤° आयडीज समाविषà¥à¤Ÿà¥€à¤¤ असू शकते." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "संदरà¥à¤­ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "संदरà¥à¤­ संपादित करा" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "संदरà¥à¤­ काढून टाका" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "संदरà¥à¤­" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "वाइटलिसà¥à¤Ÿ वरील आदेश नोंदणी ॲसà¥à¤Ÿà¥‡à¤°à¤¿à¤¸à¥à¤• '*' सह समापà¥à¤¤ होत असलà¥à¤¯à¤¾à¤¸, आदेश पासून " "सà¥à¤°à¥‚ होणारे सरà¥à¤µ आदेश ओळ जà¥à¤³à¤¤à¥€à¤². '*' हे ॲबसोलà¥à¤¯à¥à¤Ÿ आदेश अंतरà¥à¤—त न आढळलà¥à¤¯à¤¾à¤¸ " "परसà¥à¤ªà¤° बाबी जà¥à¤³à¤¾à¤¯à¤²à¤¾ पाहिजे." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "आदेश ओळ समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "आदेश ओळ संपादित करा" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "आदेश ओळ काढून टाका" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "आदेश ओळ" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "वापरकरà¥à¤¤à¤¾ नावे." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "वापरकरà¥à¤¤à¤¾ नाव समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "वापरकरà¥à¤¤à¤¾ नाव संपादित करा" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "वापरकरà¥à¤¤à¤¾ नाव काढून टाका" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "वापरकरà¥à¤¤à¤¾ नावे" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "यà¥à¤œà¤° आयडीज." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "वापरकरà¥à¤¤à¤¾ Id समाविषà¥à¤Ÿ करा" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "वापरकरà¥à¤¤à¤¾ Id संपादित करा" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "वापरकरà¥à¤¤à¤¾ Id काढून टाका" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "यà¥à¤œà¤° आयडीज" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¥‡ सधà¥à¤¯à¤¾à¤šà¥‡ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "पॅनिक मोड:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "लॉकडाउन:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "पोरà¥à¤Ÿ व शिषà¥à¤Ÿà¤¾à¤šà¤¾à¤°" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "कृपया पोरà¥à¤Ÿ व पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल भरा." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "डाइरेकà¥à¤Ÿ नियम" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "कृपया ipv आणि तकà¥à¤¤à¤¾, चैन पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾ आणि बाबी निवडा." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¤¤à¤¾:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "कृपया पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "इतर पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "रिच रूल" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "कृपया रिच रूल भरा." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "यजमान किंवा नेटवरà¥à¤•करिता घटकांना निषà¥à¤•à¥à¤°à¥€à¤¯ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ वाइट किंवा बà¥à¤²à¥…कलिसà¥à¤Ÿ " "करा." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "सोअरà¥à¤¸:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "1लकà¥à¤·à¥à¤¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "लॉग:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ऑडिट:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 आणि ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "इनवरà¥à¤Ÿà¥‡à¤¡" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ हà¥à¤¯à¤¾ कृतीला 'reject' करा आणि फॅमिलि à¤à¤•तर 'ipv4' किंवा 'ipv6' " "(दोनà¥à¤¹à¥€ नाही) पाहिजे." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "पà¥à¤°à¤•ार सह:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "मरà¥à¤¯à¤¾à¤¦à¤¾ सह:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "पà¥à¤°à¤¿à¤«à¤¿à¤•à¥à¤¸:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "सà¥à¤¤à¤°:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "घटक:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "कृती:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "बेस सरà¥à¤µà¥à¤¹à¤¿à¤¸ सेटिंगà¥à¤œ" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "कृपया बेस सरà¥à¤µà¥à¤¹à¤¿à¤¸ सेटिंगà¥à¤œ संरचीत करा:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "कृपया सरà¥à¤µà¥à¤¹à¤¿à¤¸ निवडा." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "यà¥à¤œà¤° ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "कृपया यà¥à¤œà¤° id दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "वापरकरà¥à¤¤à¤¾ नाव" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "कृपया वापरकरà¥à¤¤à¤¾ नाव दà¥à¤¯à¤¾." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "बेस कà¥à¤·à¥‡à¤¤à¥à¤° सेटिंगà¥à¤œ" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "कृपया बेस कà¥à¤·à¥‡à¤¤à¥à¤° सेटिंगà¥à¤œ संरचीत करा:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ लकà¥à¤·à¥à¤¯" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "लकà¥à¤·à¥à¤¯:" firewalld-0.4.4.6/po/nl.po000066400000000000000000001605121320241217000152200ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Bart Couvreur , 2007 # Geert Warrink , 2009-2014 # Richard E. van der Luit , 2009-2010 # Taco Witte , 2002 # Tino Meinen , 2002-2003 # Geert Warrink , 2015. #zanata # Geert Warrink , 2016. #zanata # Geert Warrink , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-12 11:19-0400\n" "Last-Translator: Geert Warrink \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/firewalld/language/" "nl/)\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Firewall applet" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Firewall configuratie" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;netwerk;beveiliging;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Selecteer zone voor interface '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Standaard zone" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Selecteer zone voor verbinding '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Instellen van zone {zone} voor verbinding {connection} misluktr" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selecteer zone voor bron '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configureer Schild omhoog/omlaag zones" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Hier kun de zones selecteren gebruikt voor Schild omhoog en Schild omlaag." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Deze eigenschap is nuttig voor hen die meestal de standaard zones gebruiken. " "Voor gebruikersverbindingszones veranderen kan het van beperkt nut zijn." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Schild omhoog zone:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Terugzetten naar standaard" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Schild omlaag zone:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Over %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Auteurs" #: ../src/firewall-applet:396 msgid "License" msgstr "Licentie" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Schild omhoog brengen" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Meldingen inschakelen" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Bewerk firewall instellingen..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Verander verbindingszones..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configureer Schild omhoog/omlaag zones..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blokkeer alle netwerkverkeer" #: ../src/firewall-applet:492 msgid "About" msgstr "Over" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Verbindingen" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Bronnen" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autorisatie is mislukt." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ongeldig argument %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Naam bestaat al" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zone: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Standaard zone: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Verbinding van NetworkManager krijgen mislukte" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Er is geen NetworkManager import beschikbaar" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Geen verbinding met firewall daemon" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Alle netwerkverkeer is geblokkeerd" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Standaard zone: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Standaard zone '{default_zone}' actief voor verbinding '{connection}' op " "interface '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zone '{zone}' actief voor verbinding '{connection}' op interface " "'{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zone '{zone}' actief voor interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zone '{zone}' is actief voor bron {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Geen actieve zones." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Verbinding met FirewallD hersteld" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Verbinding met FirewallD verloren." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD is opnieuw geladen." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Standaard zone veranderd naar '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Netwerkverkeer in niet meer geblokkeerd." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "geactiveerd" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "gedeactiveerd" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Standaard zone '{default_zone}' {activated_deactivated} voor verbinding " "'{connection}' op interface '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zone '{zone}' {activated_deactivated} voor verbinding '{connection}' op " "interface '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zone '{zone}' {activated_deactivated} voor interface '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zone '%s' geactiveerd voor interface '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zone '{zone}' {activated_deactivated} voor bron '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zone '%s' is geactiveerd voor bron '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Verbinding met firewalld ingesteld" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Bezig met met verbinden naar firewalld, wacht..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Veranderingen zijn toegepast." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Wordt gebruikt door netwerkverbinding '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Standaard zone wordt gebruikt door netwerkverbinding '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "aangezet" #: ../src/firewall-config:97 msgid "disabled" msgstr "uitgezet" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Iconen laden is mislukt." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Runtime" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Service" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Poort" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Naar poort" #: ../src/firewall-config:562 msgid "To Address" msgstr "Naar adres" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Verbindingen" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Ingang" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp type" #: ../src/firewall-config:817 msgid "Family" msgstr "Familie" #: ../src/firewall-config:819 msgid "Action" msgstr "Actie" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Bron" #: ../src/firewall-config:825 msgid "Dest" msgstr "Bestemming" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Waarschuwing" #: ../src/firewall-config:1612 msgid "Error" msgstr "Fout" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "accepteren" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "afwijzen" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "laten vallen" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "markeer" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "beperken" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "service" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "poort" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maskerade" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "bronpoort" #: ../src/firewall-config:2071 msgid "level" msgstr "niveau" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ja" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zone" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Standaard zone: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zone: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zone '%s': Service '%s' is niet beschikbaar." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Verwijder zone" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Negeer" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zone '%s': ICMP type '%s' is niet beschikbaar." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Ingebouwde zone, hernoemen niet ondersteund" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "seconde" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuut" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "uur" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dag" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "noodgeval" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alert" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritiek" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "fout" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "waarschuwing" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "opmerking" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-blok" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "doorstuur-poort" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Het doorsturen naar een ander systeem is alleen nuttig als de interface " "gemaskeerd is.\n" "Wil je deze zone maskeren?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Ingebouwde service, hernoemen niet ondersteund" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Vul een ipv4 adres in met het formaat adres[/masker]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Het masker kan een netwerkmasker of een getal zijn." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Vul een ipv6 adres in met het formaat adres[/masker]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Het masker is een getal." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Vul een ipv4 of ipv6 adres in met het formaat adres[/masker]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Het masker kan een netwerkmasker of een getal zijn voor ipv4.\n" "Het masker is een getal voor ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Ingebouwde ipset, hernoemen wordt niet ondersteund." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Selecteer een bestand" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Tekstbestanden" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Alle bestanden" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Alles" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Ingebouwde helper, hernoemen wordt niet ondersteund" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Ingebouwde icmp, hernoemen niet ondersteund" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Het lezen van bestand '%s' mislukte: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Selecteer zone voor bron %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adres" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatische helpers" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Selecteer de automatische helpers waarde:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Opdrachtregel" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Voer de commandoregel in." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Context" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Voer de context in." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Selecteer de standaard zone uit de lijst hieronder." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Directe keten " #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Selecteer ipv en tabel en vul de keten naam in." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Keten:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "ruw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "beveiliging" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabel:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Direct doorgeven regel " #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Selecteer ipv en vul de argumenten in." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumenten:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Poort doorsturen" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Selecteer a.u.b. de bron en bestemming opties naar jouw behoefte." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Poort / poort reeks:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP adres:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Bropn" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Bestemming" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Als je lokaal doorzenden aanzet, moet je een poort opgeven. Deze poort moet " "verschillen van de bron poort." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokaal doorsturen" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Doorsturen naar een andere poort" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Basis helperinstellingen" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Configureer de basis helperinstellingen" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Vetee ingangen zijn verplicht, alle andere zijn optioneel." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Naam:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versie:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Afgekort:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Beschrijving:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Familie:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Module:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Helper" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Selecteer een helper:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Basis ICMP type instellingen" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Configureer basis ICMP type instellingen:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP type" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Selecteer een ICMP type" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Ingang toevoegen" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Voeg ingangen uit het bestand" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Verwijder geselecteerde ingang" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Verwijder alle ingangen" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Verwijder ingangen uit het bestand" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Bestand" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opties" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld herladen" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Laadt firewall regels opnieuw in. De huidige permanente configuratie zal de " "nieuwe runtime configuratie worden. D.w.z. dat alle runtime veranderingen " "gemaakt tot herladen verloren gaan bij het herladen als ze niet in de " "permanente configuratie toegepast zijn. " #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Verander de zone waartoe een netwerkverbinding behoort." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Verander standaard zone" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Verander standaard zone voor verbindingen of interfaces." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Verander log-geweigerd" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Verander log-geweigerd waarde" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configureer automatische helper toekenning" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configureer automatische helper toekenningsinstellingen" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Paniekmodus betekent dat alle binnenkomende en uitgaande pakketten verloren " "gaan." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Paniek modus" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Vergrendelen vergrendelt de firewall configuratie zodat alleen toepassingen " "op de vergrendel witte lijst deze kunnen veranderen." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Vergrendelen" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Maak runtime configuratie permanent" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Runtime naar Permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_View" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP types" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Helpers" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "directe configuratie" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Vergrendel whitelist" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Actieve verbindingen" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Hulp" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Verander zone van verbinding" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Verberg actieve runtime bindingen van verbindingen, interfaces en bronnen " "aan zones" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Toon actieve runtime bindingen van verbindingen, interfaces en bronnen aan " "zones" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuratie:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Huidige zichtbare configuratie. Runtime configuratie is de actuele actieve " "configuratie. Persistente configuratie zal actief zijn na het herladen of " "herstarten van service of systeem." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Een firewalld zone definieert het vertrouwensniveau voor " "netwerkverbindingen, interfaces en bronadressen die aan de zone gekoppeld " "zijn. De zone combineert services, poorten, protocols, maskerade, poort/" "pakket doorsturen, icmp filters en rich regels. De zone kan gekoppeld zijn " "aan interfaces en bronadressen." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Voeg zone toe" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Bewerk zone" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Verwijder zone" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Laad zone standaardinstellingen" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Hier kun je definiëren welke services vertrouwd zijn in de zone. Vertrouwde " "services zijn toegankelijk vanaf alle hosts en netwerken die de machine " "kunnen bereiken met verbindingen, interfaces en bronnen die aan de zone " "gekoppeld zijn." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Services" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Voeg extra poorten of poortreeksen toe welke toegankelijk moeten zijn voor " "alle hosts of netwerken die met de machine kunnen verbinden." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Naar poort" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Bewerk zone" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Verwijder zone" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Poorten" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Voeg protocollen toe die toegankelijk moeten zijn voor alle hosts of " "netwerken." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Voeg protocol toe" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Bewerk protocol" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Verwijder protocol" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocollen" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Voeg extra bronpoorten of poortreeksen toe welke toegankelijk moeten zijn " "voor alle hosts of netwerken die met de machine kunnen verbinden." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Bronpoorten" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Vermomming staat het instellen van een host of router toe die jouw lokale " "netwerk met het internet verbindt. Jouw lokale netwerk zal niet zichtbaar " "zijn en de hosts verschijnen als een enkel adres op het internet. Vermomming " "is alleen in IPv4 beschikbaar." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Maskerade zone" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Als je maskerade aanzet, zal IP forwarding aangezet worden voor je IPv4 " "netwerken." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Vermomming" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Voeg ingangen toe voor het doorsturen van een poort naar een andere poort op " "het lokale systeem of van het lokale systeem naar een ander systeem. " "Doorsturen naar een ander systeem is alleen nuttig als het interface vermomd " "is. Poorten doorsturen kan alleen met IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Voeg Forward poort toe" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Bewerk Forward poort" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Verwijder Forward poort" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Het Internet Control Message Protocol (ICMP) wordt voornamelijk gebruikt om " "foutmeldingen te versturen tussen computers op het netwerk, maar bovendien " "voor informatieve boodschappen zoals ping verzoeken en antwoorden." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Markeer de ICMP types die geweigerd moeten worden in de lijst. Aan alle " "andere ICMP types is het toegestaan de firewall te passeren. De standaard is " "geen beperking." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Als Omkeerfilter aangezet is dan worden ingangen gemarkeerd met ICMP " "aanvaard en alle andere geweigerd. In een zone met het doel Laat vallen " "gebeurd dat." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Omkeerfilter" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Hier kun je rich taalregels instellen voor de zone." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Voeg rich regel toe" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Bewerk rich regel" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Verwijder rich regel" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Rich regels" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Voeg ingangen toe om interface aan de zone te binden. Als de interface " "gebruikt gaat worden door een verbinding, zal de zone ingesteld worden op de " "zone die in de verbinding gespecificeerd wordt." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Voeg interface toe" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Bewerk interface" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Verwijder interface" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Voeg ingangen toe om bronadressen of gebieden te binden aan de zone. Je kunt " "ook een MAC bronadres binden, echter met beperkingen. Poort doorsturen en " "maskeren zal niet werken voor MAC bronbindingen." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Voeg bron toe" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Bewerk bron" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Verwijder bron" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zones" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Een firewalld service is een combinatie van poorten, protocollen, modules en " "bestemmingsadressen." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Voeg service toe" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Bewerk service" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Verwijder service" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Laad service standaardinstellingen" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Voeg extra poorten of poortreeksen toe welke toegankelijk moeten zijn voor " "alle hosts of netwerken." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Ingang bewerken" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Ingang verwijderen" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Voeg extra bronpoorten of poortreeksen toe welke toegankelijk moeten zijn " "voor alle hosts of netwerken." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Bronpoort" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter helper modules zijn nodig voor sommige services." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modules" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Als je bestemmingsadressen specificeert, zal de service ingang beperkt " "worden tot het bestemmingsadres en type. Als beide ingangen leeg zijn dan is " "er geen beperking." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Services kunnen alleen veranderd worden in de permanente configuratie view. " "De runtime configuratie van services is gefixeerd." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Een IPSet kan gebruikt worden voor het aanmaken van witte of zwarte lijsten " "en kan bijvoorbeeld IP adressen, poortnummers of MAC adressen opslaan." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Voeg IPSet toe" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Bewerk IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Verwijder IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Laad IPSet standaardinstellingen" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Ingangen van de IPSet. Je kunt alleen ingangen van ipsets zien die de " "timeout optie niet gebruiken, en ook alleen de ingangen die toegevoegd zijn " "door firewalld. Ingangen die rechtstreeks toegevoegd zijn met het ipset " "commando zullen hier niet getoond worden." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Deze IPSet gebruikt de timeout optie, daarom zijn er hier geen ingangen " "zichtbaar. De ingangen moeten rechtstreeks met het ipset commando behandeld " "worden." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Toevoegen" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Ingangen" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSets kunnen alleen in het permanente configuratiescherm aangemaakt of " "verwijderd worden." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Een firewalld icmp type geeft de informatie voor een Internet Control " "Message Protocol (ICMP) type voor firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Voeg ICMP type toe" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Bewerk ICMP type" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Verwijder ICMP type" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Laad ICMP type standaardinstellingen" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Specificeer of dit ICMP type beschikbaar is voor IPv4 en/of IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP types kunnen alleen in de permanente configuratie view veranderd worden." " De runtime configuratie van ICMP types is gefixeerd." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Een verbindings trackhelper assisteert bij het laten werken van protocollen " "die verschillende flows gebruiken voor signalering en data overdrachten. De " "data overdrachten gebruiken poorten die niet gerelelateerd zijn aan de " "signaleringsverbinding en worden daarom zonder de helper geblokkeerd door " "de firewall." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Definieer poorten of poortreeksen die bewaakt worden door de helper." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "De directe configuratie biedt een rechtstreekse toegang tot de firwall aan. " "Deze opties vereisen dat de gebruiker basis iptables concepten begrijpt, d.w." "z. tabellen, ketens, commando's, parameters en doelen. Directe configuratie " "moet alleen als laatste redmiddel gebruikt worden als het niet mogelijk is " "om andere firewalld functies te gebruiken. " #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Het ipv argument van elke optie moet ipv4, ipv6 of eb zijn. Bij ipv4 zal het " "voor iptables, bij ipv6 voor ip6tables en bij eb voor ethernet bruggen " "(ebtables) zijn." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Extra ketens voor gebruik met regels." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Voeg keten toe" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Bewerk keten" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Verwijder keten" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Ketens" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Voeg een regel met de argumenten args toe aan een keten in een tabel met een " "prioriteit. " #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "De prioriteit wordt gebruikt om regels te rangschikken. Prioriteit 0 " "betekent het toevoegen van een regel bovenin de keten, met een hogere " "prioriteit wordt de regel lager toegevoegd. Regels met dezelfde prioriteit " "bevinden zich op hetzelfde niveau en de volgorde van deze regels is niet " "gefixeerd en kan veranderen. Als je er zeker van wilt zijn dat dat een regel " "wordt toegevoegd na een andere, gebruik je een lage prioriteit voor de " "eerste en een hogere voor de volgende." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Voeg regel toe" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Bewerk regel" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Verwijder regel" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regels" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "De regels voor doorgeven wordt direct doorgegeven aan de firewall en worden " "niet in speciale ketens geplaatst. Alle iptables, ip6tables en ebtables " "opties kunnen gebruikt worden." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Wees voorzichtig met regels voor doorgeven zodat je de firewall niet " "beschadigt." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Voeg doorgeven toe" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Bewerk doorgeven" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Verwijder doorgeven" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Doorgeven" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "De vergrendel eigenschap is een verlichte versie van gebruikers en " "toepassingstactieken voor firewalld. Het beperkt de veranderingen in de " "firewall. De vergrendel whitelist kan commando's, context, gebruikers en " "gebruiker id's bevatten." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "De context is de beveiligings (SELinux) context van een draaiende toepassing " "of service. Om de context van een draaiende toepassing te krijgen gebruik je " "ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Voeg context toe" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Bewerk context" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Verwijder context" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Context" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Ials een commando ingang in de whitelist eindigt met een asterisk '*', dan " "zullen alle commandoregels die beginnen met het commando matchen. Als de '*' " "niet aanwezig is, dan moet het gehele commando matchen inclusief argumenten." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Voeg commandoregel toe" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Bewerk commandoregel" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Verwijder commandoregel" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Commandoregels" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Gebruikersnamen." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Voeg gebruikersnaam toe" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Bewerk gebruikersnaam" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Verwijder gebruikersnaam" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Gebruikersnamen" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Gebruiker id's." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Voeg gebruikers ID toe" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Bewerk gebruikers ID" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Verwijder gebruikers ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Gebruiker id's" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Huidige standaard zonen van het systeem." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Log-geweigerd" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Paniek modus:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatische helpers:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Vergendeling:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Standaard zone:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interface" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Basis IPSet instellingen" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Configureer de basis ipset instellingen:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Type:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Timeout:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Hashgrootte:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Timeout waarde in seconden" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Initiële hash grootte, standaard 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maximum aantal elementen, standaard 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Selecteer een ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Log-geweigerd" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Selecteer de log-geweigerd waarde" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Markeer" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Vul een markeerteken in met een optioneel masker" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "De martkeer en masker velden zijn beid 32 bits brede gehele getaalen zonder " "teken" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Markering:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Masker:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Selecteer een netfilter conntrack helper:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Selecteer -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Andere module:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Poort en protocol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Vul een poort en protocol in." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Directe regel" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Selecteer ipv en tabel, ketenprioriteit en vul de argumenten in." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioriteit:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Voer een protocol in." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Ander protocol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Rch regel" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Voer een rich regel in." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Deactiveer het element voor toevoegen aan host of netwerk white of black " "list. " #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Bron:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Bestemming:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 en ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "geïnverteerd" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Om dit aan te zetten moet Actie 'afwijzen' zijn en Familie 'ipv4' of 'ipv6' " "(niet beide)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "met type:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Met limiet:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Niveau:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Actie:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Basis service instellingen" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Configureer basis instellingen:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Selecteer een service." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Gebruiker ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Vul een gebruiker id in." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Gebruikersnaam" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Vul een gebruikersnaam in." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "label" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Basis zone instellingen" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Configureer de basis zone instellingen:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Standaard doel" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Doel:" firewalld-0.4.4.6/po/or.po000066400000000000000000002120231320241217000152220ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Manoj Kumar Giri , 2008-2011,2014 # saroj kumar padhy , 2008 # Subhransu Behera , 2007 # Subhransu Behera , 2006-2007 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:33-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Oriya (http://www.transifex.com/projects/p/firewalld/language/" "or/)\n" "Language: or\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ଅଗà­à¬¨à¬¿à¬•ବଚ ଆପଲେଟ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ଅଗà­à¬¨à¬¿à¬•ବଚ" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ଅଗà­à¬¨à¬¿à¬•ବଚର ବିନà­à¬¯à¬¾à¬¸" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  '%s' ପାଇଠଅଞà­à¬šà¬³ ବାଛନà­à¬¤à­" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "ସଂଯୋଗ '%s' ପାଇଠଅଞà­à¬šà¬³ ବାଛନà­à¬¤à­" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ସିଲà­à¬¡ ଉପର/ତଳ ଅଞà­à¬šà¬³à¬—à­à¬¡à¬¼à¬¿à¬•ୠବିନà­à­Ÿà¬¾à¬¸ କରନà­à¬¤à­" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "à¬à¬ à¬¾à¬°à­‡ ଆପଣ ସିଲà­à¬¡ ଉପର à¬à¬¬à¬‚ ସିଲà­à¬¡ ତଳ ପାଇଠବà­à­Ÿà¬¬à¬¹à­ƒà¬¤ ଅଞà­à¬šà¬³à¬•ୠବାଛିପାରିବେ।" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "à¬à¬¹à¬¿ ବିଶେଷତାଟି ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³à¬•ୠବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରà­à¬¥à¬¿à¬¬à¬¾ ବà­à­Ÿà¬•à­à¬¤à¬¿à¬™à­à¬• ପାଇଠ" "ଉପଯୋଗୀ ହୋଇଥାà¬à¥¤ ସଂଯୋଗଗà­à¬¡à¬¼à¬¿à¬•ର ଅଞà­à¬šà¬³ ବଦଳାଉଥିବା ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀଙà­à¬• ପାଇà¬, à¬à¬¹à¬¾à¬° " "ଉପଯୋଗୀତା ସିମୀତ ଅଟେ।" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ସିଲà­à¬¡ ଉପର ଅଞà­à¬šà¬³:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "ସିଲà­à¬¡ ତଳ ଅଞà­à¬šà¬³:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "ସିଲ ଉପରକà­" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "ବିଜà­à¬žà¬ªà­à¬¤à¬¿à¬—à­à¬¡à¬¼à¬¿à¬•ୠସକà­à¬°à¬¿à­Ÿ କରନà­à¬¤à­" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ଫାୟାରୱାଲ ସେଟିଙà­à¬—ଗà­à¬¡à¬¿à¬•ୠସଂପାଦନକରନà­à¬¤à­ ..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ସଂଯୋଗଗà­à¬¡à¬¼à¬¿à¬•ର ଅଞà­à¬šà¬³à¬•ୠପରିବରà­à¬¤à­à¬¤à¬¨ କରନà­à¬¤à­ ..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ସିଲà­à¬¡ ଉପର/ତଳ ଅଞà­à¬šà¬³à¬—à­à¬¡à¬¼à¬¿à¬•ୠବିନà­à­Ÿà¬¾à¬¸ କରନà­à¬¤à­ ..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ସମସà­à¬¤ ନେଟୱରà­à¬• ପà­à¬°à¬¬à¬¾à¬¹à¬•ୠଅଟକାନà­à¬¤à­" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "ସଂଯୋଗଗà­à¬¡à¬¿à¬•" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ " #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "ଉତà­à¬¸" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ବୈଧିକରଣ ବିଫଳ ହୋଇଛି।" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ଅବୈଧ ନାମ" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "ନାମ ପୂରà­à¬¬à¬°à­ ଅବସà­à¬¥à¬¿à¬¤ ଅଛି" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ଅଗà­à¬¨à¬¿à¬•ବଚ ଡେମନକୠକୌଣସି ସଂଯୋଗ ନାହିà¬" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ସମସà­à¬¤ ନେଟୱରà­à¬• ଯାତାୟାତକୠବନà­à¬¦ କରାଯାଇଛି।" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "ଅଞà­à¬šà¬³ '{zone}' ସଂଯୋଗ '{connection}' ପାଇଠଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ '{interface}' ଉପରେ " "ସକà­à¬°à¬¿à­Ÿ ଅଛି" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "ଅଞà­à¬šà¬³ '{zone}' ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  '{interface}' ପାଇଠସକà­à¬°à¬¿à­Ÿ ଅଛି" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "ଅଞà­à¬šà¬³ '{zone}' ଉତà­à¬¸ {source} ପାଇଠସକà­à¬°à¬¿à­Ÿ ଅଛି" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "କୌଣସି ସକà­à¬°à¬¿à­Ÿ ଅଞà­à¬šà¬³ ନାହିà¬à¥¤" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD ସହିତ ସଂଯୋଗ ସà­à¬¥à¬¾à¬ªà¬¨ ହୋଇସାରିଛି।" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD ସହିତ ସଂଯୋଗ ନଷà­à¬Ÿ ହୋଇଛି।" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD କୠପà­à¬¨à¬°à­à¬¦à­à¬§à¬¾à¬°à¬£ କରାଯାଇଛି।" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³ '%s' କୠପରିବରà­à¬¤à­à¬¤à¬¨ ହୋଇଛି।" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ନେଟୱରà­à¬• ଯାତାୟାତ ବରà­à¬¤à­à¬¤à¬®à¬¾à¬¨ ବନà­à¬¦ ହୋଇନାହିà¬à¥¤" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ସକà­à¬°à¬¿à­Ÿ କରାଯାଇଛି" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "ନିଷà­à¬•à­à¬°à¬¿à­Ÿ କରାଯାଇଛି" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "ଅଞà­à¬šà¬³ '{zone}' {activated_deactivated} କୠସଂଯୋଗ '{connection}' " "ପାଇà¬à¬…ନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  '{interface}' ରେ" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "ଅଞà­à¬šà¬³ '{zone}' {activated_deactivated} ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  '{interface}' ପାଇà¬" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "ଅଞà­à¬šà¬³ '%s' ଟି ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  '%s' ପାଇଠସକà­à¬°à¬¿à­Ÿ ହୋଇଛି" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "ଅଞà­à¬šà¬³ '{zone}' {activated_deactivated} ଉତà­à¬¸ '{source}' ପାଇà¬" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "ଅଞà­à¬šà¬³ '%s' କୠଉତà­à¬¸ '%s' ପାଇଠସକà­à¬°à¬¿à­Ÿ କରାଯାଇଛି" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "ପରିବରà­à¬¤à­à¬¤à¬¨à¬—à­à¬¡à¬¼à¬¿à¬•ୠପà­à¬°à­Ÿà­‹à¬— କରାଯାଇଛି।" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ନେଟୱରà­à¬• ସଂଯୋଗ '%s' ଦà­à­±à¬¾à¬°à¬¾ ବà­à­Ÿà¬¬à¬¹à­ƒà¬¤" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "ସକà­à¬°à¬¿à­Ÿ" #: ../src/firewall-config:97 msgid "disabled" msgstr "ନିଷà­à¬•à­à¬°à¬¿à­Ÿ ହୋଇଛି" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ଚିତà­à¬° ସଂକେତ ଧାରଣ କରିବାରେ ଅସଫଳ।" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "ଚାଲà­à¬¥à¬¿à¬¬à¬¾ ସମୟ" #: ../src/firewall-config:398 msgid "Permanent" msgstr "ସà­à¬¥à¬¾à­Ÿà­€" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "ସେବା" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "ସଂଯୋଗିକୀ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ" #: ../src/firewall-config:560 msgid "To Port" msgstr "ସଂଯୋଗିକୀ କà­" #: ../src/firewall-config:562 msgid "To Address" msgstr "ଠିକଣା କà­" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp ପà­à¬°à¬•ାର" #: ../src/firewall-config:817 msgid "Family" msgstr "ପରିବାର" #: ../src/firewall-config:819 msgid "Action" msgstr "କାରà­à¬¯à­à¬¯" #: ../src/firewall-config:821 msgid "Element" msgstr "ଉପାଦାନ" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³" #: ../src/firewall-config:827 msgid "log" msgstr "ଲଗ" #: ../src/firewall-config:829 msgid "Audit" msgstr "ସମà­à¬ªà¬¾à¬¦à¬¨" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ଚେତାବନୀ" #: ../src/firewall-config:1612 msgid "Error" msgstr "ତà­à¬°à­à¬Ÿà¬¿" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "ଗà­à¬°à¬¹à¬£ କରନà­à¬¤à­" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "ଅସà­à¬¬à­€à¬•ାର କରନà­à¬¤à­" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ପକାଅ" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ସୀମା" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "ସରà­à¬­à¬¿à¬¸" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "ପୋରà­à¬Ÿ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "ଛଦà­à¬® ବେଶ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "ସà­à¬¤à¬°" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ହà¬" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "କà­à¬·à­‡à¬¤à­à¬°" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "ଅଞà­à¬šà¬³ '%s': ସରà­à¬­à¬¿à¬¸ '%s' ଉପଲବà­à¬§ ନାହିà¬à¥¤" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ହଟାଅ" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "ଆଗà­à¬°à¬¹à­à¬¯ କରିଦିଅନà­à¬¤à­" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "ଅଞà­à¬šà¬³ '%s': ICMP ପà­à¬°à¬•ାର '%s' ଉପଲବà­à¬§ ନାହିà¬à¥¤" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬®à¬¿à¬¤ ଅଞà­à¬šà¬³, ପà­à¬¨à¬ƒ ନାମକରଣ ସମରà­à¬¥à¬¿à¬¤ ନà­à¬¹à¬à¥¤" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ସେକଣà­à¬¡" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "ମିନିଟ" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ଘଣà­à¬Ÿà¬¾" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ଦିନ" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "ଜରà­à¬°à­€à¬•ାଳୀନ" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "ଚେତାବନୀ" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "ଗà­à¬°à­à¬¤à¬°" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "ତୃଟି" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "ଚେତାବନୀ" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "ଅଧିସୂଚନା" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "ସୂଚନା" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ତୃଟିମà­à¬•à­à¬¤ କରନà­à¬¤à­" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-ବà­à¬²à¬•" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "ଅଗà­à¬°à¬¸à¬°à¬£-ପୋରà­à¬Ÿ" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ଅନà­à­Ÿ à¬à¬• ତନà­à¬¤à­à¬°à¬•ୠପଠାଇବା ଉପଯୋଗୀ ହୋଇଥାଠଯଦି ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  ଛଦà­à¬®à¬¬à­‡à¬¶ ଧାରଣ କରିଥାà¬à¥¤\n" "ଆପଣ à¬à¬¹à¬¿ ଅଞà­à¬šà¬³à¬•ୠଛଦà­à¬®à¬¬à­‡à¬¶ ଧାରଣ କରାଇବାକୠଚାହà­à¬à¬›à¬¨à­à¬¤à¬¿ କି?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬®à¬¿à¬¤ ସରà­à¬­à¬¿à¬¸, ପà­à¬¨à¬ƒ ନାମକରଣ ସମରà­à¬¥à¬¿à¬¤ ନà­à¬¹à¬à¥¤" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬®à¬¿à¬¤ icmp, ପà­à¬¨à¬ƒ ନାମକରଣ ସମରà­à¬¥à¬¿à¬¤ ନà­à¬¹à¬à¥¤" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "ଉତà­à¬¸ '%s'ପାଇଠଅଞà­à¬šà¬³ ବାଛନà­à¬¤à­" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ଠିକଣା" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ଦୟାକରି ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬¨à¬¾à¬®à¬¾à¬•ୠଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "ଦୟାକରି ପà­à¬°à¬¸à¬™à­à¬—କୠଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "ନିମà­à¬¨à¬²à¬¿à¬–ିତ ତାଲିକାରୠଦୟାକରି ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³à¬•ୠବାଛନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ସିଧାସଳଖ ସୃଙà­à¬–ଳ" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ଦୟାକରି ipv à¬à¬¬à¬‚ ସାରଣୀକୠବାଛନà­à¬¤à­ à¬à¬¬à¬‚ ଶୃଙà­à¬–ଳ ନାମକୠଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ସୃଙà­à¬–ଳ:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "ସà­à¬°à¬•à­à¬·à¬¾" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "ସାରଣୀ:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ସିଧାସଳଖ ଅଗà­à¬°à¬—ତି ନିୟମ" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ଦୟାକରି ipv କୠବାଛନà­à¬¤à­ à¬à¬¬à¬‚ args ଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ସଂଯୋଗିକୀ ଅଗà­à¬°à¬¸à¬°à¬£" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "ଆପଣଙà­à¬•ର ଆବଶà­à­Ÿà¬•ତା ଅନà­à¬¸à¬¾à¬°à­‡ ଦୟାକରି ମୂଳ ସà­à¬¥à¬¾à¬¨ à¬à¬¬à¬‚ ଲକà­à¬·à­à¬¯ ସà­à¬¥à¬³ ବିକଳà­à¬ªà¬—à­à¬¡à¬¼à¬¿à¬•à­ " "ଚୟନକରନà­à¬¤à­." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "ସଂଯୋଗିକୀ / ସଂଯୋଗିକୀ ପରିସର:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "ଆଇ.ପି. ଠିକଣା:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "ଉତà­à¬¸" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "ଯଦି ଆପଣ ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ଅଗà­à¬°à¬¸à¬°à¬£à¬•ୠସକà­à¬°à¬¿à­Ÿ କରନà­à¬¤à¬¿, ତେବେ ଆପଣଙà­à¬•ୠଗୋଟିଠସଂଯୋଗିକୀ ଉଲà­à¬²à­‡à¬– " "କରିବାକୠପଡ଼ିବ. à¬à¬¹à¬¿ ସଂଯୋଗିକୀ ଉତà­à¬¸ ସଂଯୋଗିକୀ ଠାରୠଅଲଗା ହୋଇଥିବା ଉଚିତ." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ଅଗà­à¬°à¬¸à¬°à¬£" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ଅନà­à­Ÿ à¬à¬• ସଂଯୋଗିକୀକୠଅଗà­à¬°à¬¸à¬° ହà­à¬…ନà­à¬¤à­" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ଗାଢ଼ ନିବେଶଗà­à¬¡à¬¼à¬¿à¬• ବାଧà­à¬¯à¬¤à¬¾à¬®à­‚ଳକ ଅଟେ, ଅନà­à­Ÿ ସମସà­à¬¤à¬—à­à¬¡à¬¼à¬¿à¬• ବୈକଳà­à¬ªà¬¿à¬• ଅଟେ।" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "ନାମ:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ସଂସà­à¬•ରଣ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "ସଂକà­à¬·à¬¿à¬ªà­à¬¤ ପଥ:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ବରà­à¬£à­à¬£à¬¨à¬¾:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "ପରିବାର:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ଆଧାର ICMP ପà­à¬°à¬•ାର ସେଟିଙà­à¬—ଗà­à¬¡à¬¿à¬•" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ଦୟାକରି ଆଧାର ICMP ପà­à¬°à¬•ାର ସେଟିଙà­à¬—ଗà­à¬¡à¬¿à¬•ୠବିନà­à­Ÿà¬¾à¬¸ କରନà­à¬¤à­:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP ପà­à¬°à¬•ାର" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ଦୟାକରି ICMP ପà­à¬°à¬•ାରକୠବାଛନà­à¬¤à­" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "ଭରଣ ତଥà­à­Ÿà¬•ୠଯୋଗକରନà­à¬¤à­" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ଫାଇଲ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "ବିକଲà­à¬ª (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld କୠପà­à¬¨à¬°à­à¬§à¬¾à¬°à¬£ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ଫୟାରୱାଲ ନିୟମାବଳୀକୠପà­à¬¨à¬°à­à¬¦à­à¬§à¬¾à¬°à¬£ କରିଥାà¬à¥¤ ପà­à¬°à¬šà¬³à¬¿à¬¤ ସà­à¬¥à¬¾à­Ÿà­€ ସଂରଚନାଟି ନୂତନ ଚାଲà­à¬¥à¬¿à¬¬à¬¾ " "ସଂରଚନାରେ ପରିବରà­à¬¤à­à¬¤à¬¨ ହୋଇଥାଠଯେପରିକି କେବଳ ପà­à¬¨à¬°à­à¬¦à­à¬§à¬¾à¬°à¬£ ପରà­à¬¯à­à­Ÿà¬¨à­à¬¤ ପରିବରà­à¬¤à­à¬¤à¬¿à¬¤ " "ହୋଇଥିବା ସମସà­à¬¤ ଚଳନà­à¬¤à¬¿ ସଂରଚନା ନଷà­à¬Ÿ ହୋଇଥାଠଯଦି ସେଗà­à¬¡à¬¼à¬¿à¬• ସà­à¬¥à¬¾à­Ÿà­€ ସଂରଚନାରେ ନଥାà¬à¥¤" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ନେଟୱରà­à¬• ସଂଯୋଗ କେଉଠଅଞà­à¬šà¬³ ଅନà­à¬¤à¬°à­à¬—ତରେ ଆସିଥାଠତାହାକୠପରିବରà­à¬¤à­à¬¤à¬¨ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ପୂରà­à¬¬ ନିରà­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³à¬•ୠପରିବରà­à¬¤à­à¬¤à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" "ସଂଯୋଗ ଅଥବା ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬—à­à¬¡à¬¼à¬¿à¬• ପାଇଠପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³à¬•ୠପରିବରà­à¬¤à­à¬¤à¬¨ " "କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "ଆକସà­à¬®à¬¿à¬• ଧାରା ଅରà­à¬¥ ହେଉଛି ସମସà­à¬¤ ଆସà­à¬¥à¬¿à¬¬à¬¾ à¬à¬¬à¬‚ ଯାଉଥିବା ପà­à­Ÿà¬¾à¬•େଟଗà­à¬¡à¬¼à¬¿à¬•ୠତà­à­Ÿà¬¾à¬— " "କରାଯାଇଛି।" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "ଆକସà­à¬®à¬¿à¬• ଭୟ ପରିସà­à¬¥à¬¿à¬¤à¬¿" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "ଲକଡାଉନ ଫାୟାରୱାଲ ସଂରଚନାକୠଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିଥାଠଯାହାଫଳରେ କେବଳ ଲକଡାଉନ " "ହà­à­±à¬¾à¬‡à¬Ÿà¬²à¬¿à¬·à­à¬Ÿà¬°à­‡ ଥିବା ପà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¼à¬¿à¬• à¬à¬¹à¬¾à¬•ୠପରିବରà­à¬¤à­à¬¤à¬¨ କରିବାରେ ସକà­à¬·à¬® ହୋଇଥାନà­à¬¤à¬¿à¥¤" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "ଲକଡାଉନ" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "ଅସà­à¬¥à¬¾à­Ÿà­€ ସଂରଚନାକୠସà­à¬¥à¬¾à­Ÿà­€ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "ଚଳନà­à¬¤à¬¿ ସମୟକୠସà­à¬¥à¬¾à­Ÿà­€ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "ଦୃଶà­à¬¯ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP ପà­à¬°à¬•ାର" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ସିଧାସଳଖ ସଂରଚନା" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "ଲକଡାଉନ ହà­à­±à¬¾à¬‡à¬Ÿà¬²à¬¿à¬·à­à¬Ÿ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "ସହାୟତା (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "ସଂରଚନା:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "ବରà­à¬¤à­à¬¤à¬®à¬¾à¬¨ ଦୃଶà­à­Ÿà¬®à¬¾à¬¨ ସଂରଚନା। ଚାଲà­à¬¥à¬¿à¬¬à¬¾ ସମୟର ସଂରଚନା ହେଉଛି ପà­à¬°à¬•ୃତ ସକà­à¬°à¬¿à­Ÿ ସଂରଚନା। " "ସà­à¬¥à¬¾à­Ÿà­€ ସଂରଚନା ସରà­à¬­à¬¿à¬¸ ପରେ କିମà­à¬¬à¬¾ ତନà­à¬¤à­à¬° ପà­à¬¨à¬°à­à¬¦à­à¬§à¬¾à¬°à¬£ କିମà­à¬¬à¬¾ ପà­à¬¨à¬ƒà¬šà¬¾à¬³à¬¨ ପରେ " "ସକà­à¬°à¬¿à­Ÿ ହେବ।" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "ଗୋଟିଠfirewalld ଅଞà­à¬šà¬³ ନେଟୱରà­à¬• ସଂଯୋଗଗà­à¬¡à¬¼à¬¿à¬•, ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  à¬à¬¬à¬‚ ଅଞà­à¬šà¬³ ସହିତ " "ସଂଶà­à¬³à¬¿à¬·à­à¬Ÿ ଉତà­à¬¸ ଠିକଣାଗà­à¬¡à¬¼à¬¿à¬• ପାଇଠବିଶà­à­±à¬¾à¬¸à¬° ସà­à¬¤à¬° ବà­à­Ÿà¬¾à¬–à­à­Ÿà¬¾ କରିଥାà¬à¥¤ à¬à¬¹à¬¿ ଅଞà­à¬šà¬³ " "ସରà­à¬­à¬¿à¬¸, ପୋରà­à¬Ÿ, ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ, ଛଦà­à¬® ବେଶ, ପୋରà­à¬Ÿ/ପà­à­Ÿà¬¾à¬•େଟ ଅଗà­à¬°à¬¸à¬°à¬£, icmp ଫିଲଟର à¬à¬¬à¬‚ " "ଶକà­à¬¤ ନିୟମାବଳୀକୠମିଶà­à¬°à¬£ କରିଥାà¬à¥¤ à¬à¬¹à¬¿ ଅଞà­à¬šà¬³ ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬—à­à¬¡à¬¼à¬¿à¬•à­ à¬à¬¬à¬‚ ଠିକଣାଗà­à¬¡à¬¼à¬¿à¬•à­ " "ବାନà­à¬§à¬¿à¬¥à¬¾à¬à¥¤" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ଅଞà­à¬šà¬³à¬•ୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ଅଞà­à¬šà¬³à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ଅଞà­à¬šà¬³à¬•ୠହଟାନà­à¬¤à­" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ଅଞà­à¬šà¬³ ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬•ୠଧାରଣ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "କେଉଠସେବା ଗà­à¬¡à¬¿à¬• ବିଶà­à¬¯à¬¸à­à¬¤ ଆପଣ ତାହା à¬à¬ à¬¾à¬°à­‡ ବà­à¬¯à¬¾à¬–à­à¬¯à¬¾ କରିପାରିବେ। à¬à¬¹à¬¾à¬° ଅରà­à¬¥ ହେଉଛି " "ଯେ à¬à¬¹à¬¿ ସେବା ଗà­à¬¡à¬¿à¬•ୠସମସà­à¬¤ ଆଧାର କିମà­à¬¬à¬¾ ନେଟୱାରà­à¬•ରୠଅଭିଗମ କରିହେବ।" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "ସରà­à¬­à¬¿à¬¸à¬—à­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "ଅତିରିକà­à¬¤ ସଂଯୋଗିକୀ କିମà­à¬¬à¬¾ ସଂଯୋଗିକୀ ପରିସର ମାନଙà­à¬•ୠଯୋଗ କରନà­à¬¤à­, ଯାହାକି ସମସà­à¬¤ " "ଆଧାର କିମà­à¬¬à¬¾ ନେଟୱାରà­à¬• ଦà­à¬¬à¬¾à¬°à¬¾ ଅଭିଗମà­à¬¯ ହେବା ଉଚିତ।" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "ପୋରà­à¬Ÿà¬•ୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ପୋରà­à¬Ÿà¬•ୠସଂପାଦନା କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ପୋରà­à¬Ÿà¬•ୠକାଢ଼ି ଦିଅନà­à¬¤à­" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "ପୋରà­à¬Ÿà¬—à­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "ମିଥà­à­Ÿà¬¾à¬­à¬¨à­Ÿ ଆପଣଙà­à¬•ୠଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿ ସହିତ ଆପଣଙà­à¬• ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ନେଟୱରà­à¬•କୠସଂଯୋଗ କରà­à¬¥à¬¿à¬¬à¬¾ ଆଧାର " "କିମà­à¬¬à¬¾ ରାଉଟରକୠବିନà­à­Ÿà¬¾à¬¸ କରିବାକୠଅନà­à¬®à¬¤à¬¿ ଦେଇଥାà¬. ଆପଣଙà­à¬•ର ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ନେଟୱରà­à¬• " "ଦେଖାଯିବ ନାହିଠà¬à¬¬à¬‚ ସେହି ଆଧାରଟି ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿà¬°à­‡ ଗୋଟିଠଠିକଣା ପରି ଦେଖାଯିବ. କେବଳ IPv4 " "ମିଥà­à­Ÿà¬¾à¬­à¬¿à¬¨à­Ÿ କରà­à¬…ଛି." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ଛଦà­à¬® ବେଶୀ ଅଞà­à¬šà¬³" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "ଯଦି ଆପଣ ଛଦà­à¬® ବେଶ କରିବାରେ ସକà­à¬°à¬¿à­Ÿ ହà­à¬…ନà­à¬¤à¬¿, ତେବେ IP ଅଗà­à¬°à¬¸à¬°à¬£à¬•ୠଆପଣଙà­à¬• IPv4 " "ନେଟୱରà­à¬•ଗà­à¬¡à¬¼à¬¿à¬• ପାଇà¬à¬¸à¬•à­à¬°à¬¿à­Ÿ କରାଯିବ।" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "ଛଦà­à¬® ବେଶ" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ତନà­à¬¤à­à¬°à¬°à­‡ ଗୋଟିଠସଂଯୋଗିକୀରୠଅନà­à­Ÿ à¬à¬• ସଂଯୋଗିକୀକୠଅଥବା ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ତନà­à¬¤à­à¬°à¬°à­ " "ଅନà­à­Ÿ à¬à¬• ତନà­à¬¤à­à¬°à¬•ୠଅଗà­à¬°à¬¸à¬°à¬£ ସଂଯୋଗିକୀରେ ଭରଣଗà­à¬¡à¬¼à¬¿à¬•ୠଯୋଗକରନà­à¬¤à­. ଅନà­à­Ÿ à¬à¬• ତନà­à¬¤à­à¬°à¬•à­ " "ପଠାଇବା ହିଠକେବଳ ଫଳପà­à¬°à¬¦ ହୋଇଥାଠଯଦି ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  ମିଥà­à­Ÿà¬¾à¬­à¬¿à¬¨à­Ÿ କରà­à¬¥à¬¾à¬. ସଂଯୋଗିକୀ " "ଆଗେଇବାଟି କେବଳ IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ପୋରà­à¬Ÿ ଅଗà­à¬°à¬¸à¬°à¬£à¬•ୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ପୋରà­à¬Ÿ ଅଗà­à¬°à¬¸à¬°à¬£à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ପୋରà­à¬Ÿ ଅଗà­à¬°à¬¸à¬°à¬£à¬•ୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿ ନିୟନà­à¬¤à­à¬°à¬£ ସନà­à¬¦à­‡à¬¶ ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ (ICMP) ଟି ମà­à¬–à­à­Ÿà¬¤à¬ƒ ନେଟୱରà­à¬• କମà­à¬ªà­à¬Ÿà¬°à¬—à­à¬¡à¬¼à¬¿à¬• " "ମଧà­à­Ÿà¬°à­‡ ତà­à¬°à­à¬Ÿà¬¿ ସନà­à¬¦à­‡à¬¶ ପଠାଇବାରେ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° ହୋଇଥାà¬, କିନà­à¬¤à­ ଅତିରିକà­à¬¤ ଭାବରେ " "ସୂଚନାତà­à¬®à¬• ସନà­à¬¦à­‡à¬¶à¬—à­à¬¡à¬¼à¬¿à¬•ୠଯେପରି କି ping ଅନà­à¬°à­‹à¬§ à¬à¬¬à¬‚ ଉତà­à¬¤à¬°à¬—à­à¬¡à¬¼à¬¿à¬• ପାଇà¬." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "ICMP ପà­à¬°à¬•ାରଗà­à¬¡à¬¼à¬¿à¬•ୠତାଲିକାରେ ଚିହà­à¬¨à¬Ÿà¬•ରନà­à¬¤à­, ଯାହାକୠକି ଅସà­à­±à­€à¬•ାର କରିବା ଉଚିତ. " "ଅନà­à­Ÿ ସମସà­à¬¤ ICMP ପà­à¬°à¬•ାରଗà­à¬¡à¬¼à¬¿à¬• ଅଗà­à¬¨à¬¿à¬•ବଚ ପାରକରିବା ପାଇଠଅନà­à¬®à¬¤à¬¿à¬ªà­à¬°à¬¾à¬ªà­à¬¤. " "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬°à­‡ କୌଣସି ସୀମା ବନà­à¬§à¬¨ ନାହିà¬." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ଫିଲଟର" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "à¬à¬ à¬¾à¬°à­‡ ଆପଣ ଅଞà­à¬šà¬³ ପାଇଠଶକà­à¬¤à¬¿à¬¶à¬¾à¬³à­€ ଭାଷା ନିୟମାବଳୀକୠସେଟ କରିପାରିବେ।" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "ଶକà­à¬¤ ନିୟମ ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "ଶକà­à¬¤ ନିୟମକୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "ଶକà­à¬¤ ନିୟମକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "ଶକà­à¬¤à¬¿à¬¶à¬¾à¬³à­€ ନିୟମାବଳୀ" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "à¬à¬¹à¬¿ ଅଞà­à¬šà¬³à¬°à­‡ ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬—à­à¬¡à¬¼à¬¿à¬•ୠବାନà­à¬§à¬¿à¬¬à¬¾ ପାଇଠଯୋଗ କରନà­à¬¤à­à¥¤ ଯଦି à¬à¬¹à¬¿ " "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬—à­à¬¡à¬¼à¬¿à¬• କୌଣସି ସଂଯୋଗ ଦà­à­±à¬¾à¬°à¬¾ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° ହୋଇଥାà¬, ତେବେ ସେହି ଅଞà­à¬šà¬³à¬Ÿà¬¿ " "ସଂଯୋଗରେ ଉଲà­à¬²à­‡à¬–ିତ ଅଞà­à¬šà¬³à¬°à­‡ ସେଟ ହେବ।" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬•ୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "ଉତà­à¬¸ ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "ଉତà­à¬¸à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "ଉତà­à¬¸à¬•ୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "ଅଞà­à¬šà¬³" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "firewalld ସରà­à¬­à¬¿à¬¸ ହେଉଛି ପୋରà­à¬Ÿ, ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ, ମଡà­à­Ÿà­à¬² à¬à¬¬à¬‚ ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³ ଠିକଣାଗà­à¬¡à¬¼à¬¿à¬•ର " "à¬à¬• ମିଶà­à¬°à¬£à¥¤" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "ସରà­à¬­à¬¿à¬¸ ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "ସରà­à¬­à¬¿à¬¸à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "ସରà­à¬­à¬¿à¬¸à¬•ୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "ସରà­à¬­à¬¿à¬¸ ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬•ୠଧାରଣ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂପାଦନା କର" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "ଭରଣକୠକାଢ଼ି ଦିଅନà­à¬¤à­" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ମୋଡà­à­Ÿà­à¬²à¬—à­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ଯଦି ଆପଣ ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³ ଠିକଣାକୠଉଲà­à¬²à­‡à¬– କରନà­à¬¤à¬¿, ତେବେ ସରà­à¬­à¬¿à¬¸ ନିବେଶ ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³ ଠିକଣା " "à¬à¬¬à¬‚ ପà­à¬°à¬•ାରରେ ସିମୀତ ହେବ। ଯଦି ଉଭୟ ନିବେଶଗà­à¬¡à¬¼à¬¿à¬• ଖାଲିଥାà¬, ତେବେ ସେଠାରେ କୌଣସି ସୀମା " "ନଥାà¬à¥¤" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "ସରà­à¬­à¬¿à¬¸à¬—à­à¬¡à¬¼à¬¿à¬• କେବଳ ସà­à¬¥à¬¾à­Ÿà­€ ବିନà­à­Ÿà¬¾à¬¸ ଦୃଶà­à­Ÿà¬°à­‡ ପରିବରà­à¬¤à­à¬¤à¬¨ ହୋଇପାରିବ। ସରà­à¬­à¬¿à¬¸à¬—à­à¬¡à¬¼à¬¿à¬•ର " "ପà­à¬°à¬šà¬³à¬¿à¬¤ ବିନà­à­Ÿà¬¾à¬¸ ସà­à¬¥à¬¾à­Ÿà­€ ଅଟେ।" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "à¬à¬• firewalld icmptype ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿ ନିୟନà­à¬¤à­à¬°à¬£ ସନà­à¬¦à­‡à¬¶ ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ (ICMP) ପà­à¬°à¬•ାର ପାଇଠ" "firewalld କୠସୂଚନା ପà­à¬°à¬¦à¬¾à¬¨ କରିଥାà¬à¥¤" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ପà­à¬°à¬•ାରକୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ପà­à¬°à¬•ାରକୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ପà­à¬°à¬•ାରକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ପà­à¬°à¬•ାର ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬•ୠଧାରଣ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" "à¬à¬¹à¬¿ ICMP ପà­à¬°à¬•ାରଟି IPv4 à¬à¬¬à¬‚/ଅଥବା IPv6 ରେ ଉପଲବà­à¬§ ହୋଇଥାଠକି ନାହିଠତାହା ଉଲà­à¬²à­‡à¬– " "କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP ପà­à¬°à¬•ାରଗà­à¬¡à¬¼à¬¿à¬• ସà­à¬¥à¬¾à­Ÿà­€ ବିନà­à­Ÿà¬¾à¬¸ ଦୃଶà­à­Ÿà¬°à­‡ ହିଠକେବଳ ପରିବରà­à¬¤à­à¬¤à¬¿à¬¤ ହୋଇଥାà¬à¥¤ ICMP " "ପà­à¬°à¬•ାରଗà­à¬¡à¬¼à¬¿à¬• ପà­à¬°à¬šà¬³à¬¿à¬¤ ବିନà­à­Ÿà¬¾à¬¸ ସà­à¬¥à¬¾à­Ÿà­€ ଅଛି।" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ସିଧାସଳଖ ସଂରଚନା ଫାୟାରୱାଲରେ ସିଧାସଳଖ ପà­à¬°à¬¬à­‡à¬¶à¬¾à¬¨à­à¬®à¬¤à¬¿ ଦେଇଥାà¬à¥¤ à¬à¬¹à¬¿ ବିକଳà­à¬ªà¬—à­à¬¡à¬¼à¬¿à¬• ପାଇଠ" "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀଙà­à¬• ପାଖରେ ମୌଳିକ iptables ଜà­à¬žà¬¾à¬¨ ଥିବା ଆବଶà­à­Ÿà¬•, ଯେପରିକି ସାରଣୀ, " "ଶୃଙà­à¬–ଳ, ନିରà­à¬¦à­à¬¦à­‡à¬¶, ପà­à¬°à¬¾à¬šà¬³ à¬à¬¬à¬‚ ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³à¥¤ ସିଧାସଳଖ ସଂରଚନାକୠକେବଳ ଶେଷ ଆଶà­à¬°à­Ÿ " "ଭାବରେ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରିବା ଉଚିତ ଯେତେବେଳେ ଅନà­à­Ÿ କୌଣସି firewalld ବିଶେଷତା ବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରିବା " "ସମà­à¬­à¬¬ ହୋଇନଥାà¬à¥¤" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ପà­à¬°à¬¤à­à­Ÿà­‡à¬• ବିକଳà­à¬ªà¬° ipv ସà­à­±à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬° ipv4 କିମà­à¬¬à¬¾ ipv6 ଅଥବା eb ହୋଇଥିବା ଉଚିତ। ipv4 " "ସହିତ à¬à¬¹à¬¾ iptables ପାଇଠହୋଇଥାà¬, ipv6 ସହିତ ip6tables ପାଇଠà¬à¬¬à¬‚ eb ସହିତ ଇଥରନେଟ " "ବà­à¬°à¬¿à¬œà¬—à­à¬¡à¬¼à¬¿à¬• ପାଇଠହୋଇଥାଠ(ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "ନିୟମାବଳୀ ସହିତ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° ହେବାକୠଥିବା ଅତିରିକà­à¬¤ ଶୃଙà­à¬–ଳ।" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ସୃଙà­à¬–ଳ ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ସୃଙà­à¬–ଳକୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ସୃଙà­à¬–ଳକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ସୃଙà­à¬–ଳଗà­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "ସà­à­±à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬° args ସହିତ à¬à¬• ଶୃଙà­à¬–ଳରେ ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତା ଦେଇ ଗୋଟିଠନିୟମ ଯୋଗ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ନିୟମାବଳୀକୠକà­à¬°à¬®à¬¾à¬¨à­à­±à­Ÿà¬°à­‡ ରଖିବା ପାଇଠପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତାକୠବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରାଯାଇଥାà¬à¥¤ ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତା " "0 ଅରà­à¬¥ ହେଉଛି ଶୃଙà­à¬–ଳ ଉପରେ ନିୟମ ଯୋଗ କରନà­à¬¤à­, ଉଚà­à¬š ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତା ସହିତ ନିୟମଟି ତଳେ " "ଯୋଗ କରାଯାଇଥାà¬à¥¤ ସମାନ ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତା ବିଶିଷà­à¬Ÿ ନିୟମାବଳୀ ସମାନ ସà­à¬¤à¬°à¬°à­‡ ଥାଠà¬à¬¬à¬‚ ସେହି " "ନିୟମାବଳୀର କà­à¬°à¬® ସà­à¬¥à¬¾à­Ÿà­€à¬¨à¬¥à¬¾à¬ à¬à¬¬à¬‚ ପରିବରà­à¬¤à­à¬¤à¬¨ ହୋଇପାରେ। ଯଦି ଆପଣ ନିଶà­à¬šà¬¿à¬¤ କରିବାକୠ" "ଚାହà­à¬à¬›à¬¨à­à¬¤à¬¿ ଯେ ଅନà­à­Ÿ ଗୋଟିଠଉପରେ ନିୟମାବଳୀ ଯୋଗ ହେବ ତେବେ, ପà­à¬°à¬¥à¬®à­‡ କମ ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତାକୠ" "ବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରନà­à¬¤à­ à¬à¬¬à¬‚ ତାପରେ ଉଚà­à¬š ପà­à¬°à¬¾à¬¥à¬®à¬¿à¬•ତାକୠରଖନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "ନିୟମ ୟୋଗକରନà­à¬¤à­" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "ନିୟମ ସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "ନିୟମକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "ନିୟମାବଳୀ" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ଅଗà­à¬°à¬—ତି ନିୟମାବଳୀ ସିଧାସଳଖ ଭାବରେ ଫାୟାରୱାଲ ମଧà­à¬¯ ଦେଇ ଯାଇଥାଠà¬à¬¬à¬‚ ତାହା ବିଶେଷ " "ଶୃଙà­à¬–ଳରେ ରଖାଯାଇନଥାà¬à¥¤ ସମସà­à¬¤ iptables, ip6tables à¬à¬¬à¬‚ etables ବିକଳà­à¬ªà¬•ୠବà­à­Ÿà¬¬à¬¹à¬¾à¬° " "କରାଯାଇପାରିବ।" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "ଅଗà­à¬°à¬—ତି ନିୟମାବଳୀ ସହିତ ଦୟାକରି ସତରà­à¬• ରà­à¬¹à¬¨à­à¬¤à­ ଯେପରି ତାହା ଫାୟାରୱାଲକୠକà­à¬·à¬¤à¬¿ ନକରେ।" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "ଅଗà­à¬°à¬—ତିକୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "ଅଗà­à¬°à¬—ତିକୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "ଅଗà­à¬°à¬—ତିକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ଅଗà­à¬°à¬—ତି" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "ଲକଡାଉନ ବିଶେଷତାଟି ହେଉଛି firewalld ପାଇଠବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ à¬à¬¬à¬‚ ପà­à¬°à­Ÿà­‹à¬— ନିତୀଗà­à¬¡à¬¼à¬¿à¬•ର " "ହାଲà­à¬•ା ସଂସà­à¬•ରଣ। à¬à¬¹à¬¾ ଫାୟାରୱାଲର ପରିବରà­à¬¤à­à¬¤à¬¨à¬•ୠସିମୀତ କରିଥାà¬à¥¤ ଲକଡାଉନ ହà­à­±à¬¾à¬‡à¬Ÿà¬²à¬¿à¬·à­à¬Ÿ " "ନିରà­à¬¦à­à¬¦à­‡à¬¶, ପà­à¬°à¬¸à¬™à­à¬—, ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ à¬à¬¬à¬‚ ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ id ଗà­à¬¡à¬¼à¬¿à¬•ୠଧାରଣ କରିଥାà¬à¥¤" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "ପà­à¬°à¬¸à¬™à­à¬—କୠଯୋଗକରନà­à¬¤à­" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "ପà­à¬°à¬¸à¬™à­à¬—କୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "ପà­à¬°à¬¸à¬™à­à¬—କୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "ପà­à¬°à¬¸à¬™à­à¬—" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "ଯଦି ହà­à­±à¬¾à¬‡à¬Ÿà¬²à¬¿à¬·à­à¬Ÿà¬°à­‡ ଗୋଟିଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ନିବେଶ ଆସଟେରିସà­à¬• '*' ରେ ସମାପà­à¬¤ ହୋଇଥାà¬, ତେବେ " "ସେହି ନିରà­à¬¦à­à¬¦à­‡à¬¶ ସହିତ ଆରମà­à¬­ ହେଉଥିବା ସମସà­à¬¤ ନିରà­à¬¦à­à¬¦à­‡à¬¶ ଧାରା ମେଳ ଖାଇବ। ଯଦି ସେହି " "'*' ସେଠାରେ ନଥାଠତେବେ ସେହି ସà­à­±à¬šà¬¨à­à¬¤à­à¬°à¬šà¬° ସହିତ ମେଳଖାଉଥିବା ନିରà­à¬¦à­à¬¦à¬¿à¬·à­à¬Ÿ ନିରà­à¬¦à­à¬¦à­‡à¬¶ " "ନିଶà­à¬šà¬¿à¬¤ ଭାବରେ ମେଳଖାଇବ।" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "ପାଠà­à¬¯ ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "ପାଠà­à¬¯ ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "ପାଠà­à¬¯ ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "ନିରà­à¬¦à­à¬¦à­‡à¬¶ ଧାରା" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମଗà­à¬¡à¬¼à¬¿à¬•।" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମ ଯୋଗ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମକୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମକୠବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମଗà­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ id ଗà­à¬¡à¬¼à¬¿à¬•।" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ Id ଯୋଗକରନà­à¬¤à­" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ Id ସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ Id ବାହାର କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ Id ଗà­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ତନà­à¬¤à­à¬°à¬° ପà­à¬°à¬šà¬³à¬¿à¬¤ ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³à¥¤" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "ଆକସà­à¬®à¬¿à¬• ଭୟ ପରିସà­à¬¥à¬¿à¬¤à¬¿:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "ଲକଡାଉନ:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ପୂରà­à¬¬ ନିରà­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଅଞà­à¬šà¬³:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "ସଂଯୋଗିକୀ à¬à¬¬à¬‚ ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ଦୟାକରି ଗୋଟିଠପୋରà­à¬Ÿ à¬à¬¬à¬‚ ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ ଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ସିଧାସଳଖ ନିୟମ" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "ଦୟାକରି ipv à¬à¬¬à¬‚ table, ଶୃଙà­à¬–ଳ ଅଗà­à¬°à¬¾à¬§à­€à¬•ାରକୠବାଛନà­à¬¤à­ à¬à¬¬à¬‚ args କୠଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "ଅଗà­à¬°à¬¾à¬§à¬¿à¬•ାର:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ଦୟାକରି ଗୋଟିଠପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ ଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "ଅନà­à­Ÿà¬¾à¬¨à­à­Ÿ ପà­à¬°à­‹à¬Ÿà­‹à¬•ଲ:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "ଶକà­à¬¤ ନିୟମ" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ଦୟାକରି ଗୋଟିଠଶକà­à¬¤ ନିୟମକୠଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "ହୋଷà­à¬Ÿ କିମà­à¬¬à¬¾ ନେଟୱରà­à¬• ହà­à­±à¬¾à¬‡à¬Ÿ କିମà­à¬¬à¬¾ ବà­à¬²à¬¾à¬•ଲିଷà­à¬Ÿ ପାଇଠଉପାଦାନକୠନିଷà­à¬•à­à¬°à¬¿à­Ÿ " "କରିଥାà¬à¥¤" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "ଉତà­à¬¸:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "ଲକà­à¬·à­à¬¯à¬¸à­à¬¥à¬³:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ଲଗ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ସମà­à¬ªà¬¾à¬¦à¬¨:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 à¬à¬¬à¬‚ ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "ଓଲଟି ଯାଇଛି" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "à¬à¬¹à¬¾à¬•ୠସକà­à¬°à¬¿à­Ÿ କରିବା ପାଇଠକାରà­à¬¯à­à­Ÿà¬•à­ 'ପà­à¬°à¬¤à­à­Ÿà¬¾à¬–à­à­Ÿà¬¾à¬¨' କରିବା ଉଚିତ à¬à¬¬à¬‚ 'ipv4' " "କିମà­à¬¬à¬¾ 'ipv6' ପରିବାରର ହୋଇଥିବା ଉଚିତ (ଉଭୟ ନà­à¬¹à¬)।" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "ପà­à¬°à¬•ାର ସହିତ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "ସୀମା ସହିତ:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ଉପସରà­à¬—:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "ସà­à¬¤à¬°:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "ଉପାଦାନ:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "କାରà­à¬¯à­à­Ÿ:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ମୂଳ ସରà­à¬­à¬¿à¬¸ ସେଟିଙà­à¬—ଗà­à¬¡à¬¼à¬¿à¬•" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "ମୂଳ ସରà­à¬­à¬¿à¬¸ ସେଟିଙà­à¬—ଗà­à¬¡à¬¼à¬¿à¬•ୠଦୟାକରି ବିନà­à­Ÿà¬¾à¬¸ କରନà­à¬¤à­:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ଦୟାକରି ଗୋଟିଠସରà­à¬­à¬¿à¬¸ ବାଛନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ଦୟାକରି ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ id ଭରଣ କରନà­à¬¤à­à¥¤" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମ" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ଦୟାକରି ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬•ାରୀ ନାମ ଭରଣ କରନà­à¬¤à­" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ମୂଳ ଅଞà­à¬šà¬³ ସଂରଚନା" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ମୂଳ ଅଞà­à¬šà¬³ ସଂରଚନାକୠବିନà­à­Ÿà¬¾à¬¸ କରନà­à¬¤à­:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "ପୂରà­à¬¬ ନିରà­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଲକà­à¬·à­à¬¯ ସà­à¬¥à¬³" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ଲକà­à¬·à­à¬¯ ସà­à¬¥à¬³:" firewalld-0.4.4.6/po/pa.po000066400000000000000000001755211320241217000152150ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Amandeep Singh Saini , 2013-2014 # Amanpreet Singh Alam , 2004,2006 # Amanpreet Singh Alam , 2005 # A P Singh , 2006 # Amandeep Singh Saini , 2013 # A S Alam , 2006 # A S Alam , 2012 # Automatically generated, 2004 # Automatically generated , 2004 # Jaswinder Singh , 2011 # Jaswinder Singh , 2006-2010 # Jaswinder Singh Phulewala , 2005-2006 # Jaswinder Singh , 2011 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:37-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/" "firewalld/language/pa/)\n" "Language: pa\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ਫਾਇਰਵਾਲ à¨à¨ªà¨²à©ˆà©±à¨Ÿ" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ਫਾਇਰਵਾਲ" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ਫਾਇਰਵਾਲ ਸੰਰਚਨਾ" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ਇੰਟਰਫੇਸ '%s' ਲਈ ਜ਼ੋਨ ਚà©à¨£à©‹" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "ਮੂਲ ਜ਼ੋਨ" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "ਸੰਪਰਕ '%s' ਲਈ ਜ਼ੋਨ ਚà©à¨£à©‹" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ਸ਼ੀਲਡ ਅੱਪ/ਡਾਊਨ ਜ਼ੋਨ ਸੰਰਚਨਾ" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "ਇੱਥੇ ਤà©à¨¸à©€à¨‚ ਸ਼ੀਲਡ ਅੱਪ ਅਤੇ ਸ਼ੀਲਡ ਡਾਊਨ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਜ਼ੋਨ ਚà©à¨£ ਸਕਦੇ ਹੋ।" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "ਇਹ ਫ਼ੀਚਰ ਉਹਨਾਂ ਲੋਕਾਂ ਲਈ ਉਪਯੋਗੀ ਹੈ ਜਿਹੜੇ ਜਿਆਦਾਤਰ ਮੂਲ ਜ਼ੋਨ ਵਰਤਦੇ ਹਨ। ਉਹਨਾਂ " "ਯੂਜ਼ਰਾਂ, ਜਿਹੜੇ ਸੰਪਰਕਾਂ ਦੇ ਜੋ਼ਨਾਂ ਨੂੰ ਬਦਲਦੇ ਰਹੇ ਹਨ, ਇਹ ਸੀਮਿਤ ਵਰਤੋਂ ਵਾਲਾ ਹੋ " "ਸਕਦਾ ਹੈ।" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ਸ਼ੀਲਡ ਅੱਪ ਜ਼ੋਨ:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "ਸ਼ੀਲਡ ਡਾਊਨ ਜ਼ੋਨ:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "ਸ਼ੀਲਡ ਅੱਪ ਕਰਦਾ ਹੈ" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "ਸੂਚਨਾਵਾਂ ਚਾਲੂ ਕਰੋ" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "...ਫਾਇਰਵਾਲ ਸੈਟਿੰਗਾਂ ਸੋਧੋ" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ਸੰਪਰਕਾਂ ਦੇ ਜ਼ੋਨ ਬਦਲੋ..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "...ਸ਼ੀਲਡ ਅੱਪ/ਡਾਊਨ ਜ਼ੋਨ ਸੰਰਚਨਾ" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ਸਭ ਨੈੱਟਵਰਕ ਆਵਾਜਾਈ ਉੱਤੇ ਪਾਬੰਦੀ" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "ਕੋਈ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਨਹੀਂ" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "ਇੰਟਰਫੇਸ" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "ਸਰੋਤ" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ਪਰਮਾਣਿਕਤਾ ਅਸਫਲ ਹੋਈ।" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ਅਢà©à¨•ਵਾਂ ਨਾਂ" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ਫਾਇਰਵਾਲ ਡੈਮਨ ਨਾਲ ਕੋਈ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਨਹੀਂ ਹੈ" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ਸਭ ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਉੱਤੇ ਪਾਬੰਦੀ ਲਗਾਈ ਗਈ।" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "ਮੂਲ ਜ਼ੋਨ: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "'{zone}' ਜ਼ੋਨ ਸਰਗਰਮ '{connection}' ਸੰਪਰਕ ਲਈ '{interface}' ਇੰਟਰਫੇਸ ਉੱਤੇ" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "'{zone}' ਜ਼ੋਨ ਸਰਗਰਮ '{interface}' ਇੰਟਰਫੇਸ ਲਈ" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "'{zone}' ਜ਼ੋਨ ਸਰੋਤ {source} ਲਈ ਸਰਗਰਮ" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "ਕੋਈ ਵੀ ਸਰਗਰਮ ਜ਼ੋਨ ਨਹੀਂ।" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "ਫਾਇਰਵਾਲ-ਡੀ ਨਾਲ ਸੰਪਰਕ ਬਣਾਇਆ।" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "ਫਾਇਰਵਾਲ-ਡੀ ਨਾਲ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਖਤਮ ਹੋਇਆ।" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "ਫਾਇਰਵਾਲ-ਡੀ ਨੂੰ ਮà©à©œ-ਲੋਡ ਕੀਤਾ ਜਾ ਚà©à©±à¨•ਾ ਹੈ।" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "ਮੂਲ ਜ਼ੋਨ '%s' ਨਾਲ ਬਦਲਿਆ ਗਿਆ।" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਉੱਤੇ ਹà©à¨£ ਕੋਈ ਪਾਬੰਦੀ ਨਹੀਂ ਹੈ।" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "ਗੈਰ-ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "'{zone}' ਜ਼ੋਨ {activated_deactivated} ਸੰਪਰਕ '{connection}' ਲਈ ਇੰਟਰਫੇਸ " "'{interface}' ਉੱਤੇ" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "'{zone}' ਜ਼ੋਨ {activated_deactivated} ਇੰਟਰਫੇਸ '{interface}' ਉੱਤੇ" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr " '%s' ਜ਼ੋਨ ਇੰਟਰਫੇਸ '%s' ਲਈ ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "'{zone}' ਜ਼ੋਨ {activated_deactivated} ਸਰੋਤ '{source}' ਲਈ" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "'%s' ਜ਼ੋਨ ਸਰੋਤ '%s' ਲਈ ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "ਬਦਲਾਅ ਲਾਗੂ ਕੀਤੇ।" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ਨੈੱਟਵਰਕ ਸੰਪਰਕ '%s' ਦà©à¨†à¨°à¨¾ ਵਰਤਿਆ" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "ਯੋਗ ਕੀਤਾ" #: ../src/firewall-config:97 msgid "disabled" msgstr "ਅਯੋਗ ਕੀਤਾ" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ਆਈਕਨ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋਇਆ।" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "ਚੱਲਣ ਸਮਾਂ" #: ../src/firewall-config:398 msgid "Permanent" msgstr "ਪੱਕਾ" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "ਸੇਵਾ" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "ਪੋਰਟ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "ਜਾਬਤਾ" #: ../src/firewall-config:560 msgid "To Port" msgstr "ਪੋਰਟ ਵੱਲ" #: ../src/firewall-config:562 msgid "To Address" msgstr "ਪਤੇ ਵੱਲ" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp ਕਿਸਮ" #: ../src/firewall-config:817 msgid "Family" msgstr "ਟੱਬਰ" #: ../src/firewall-config:819 msgid "Action" msgstr "ਕਾਰਵਾਈ" #: ../src/firewall-config:821 msgid "Element" msgstr "ਤੱਤ" #: ../src/firewall-config:823 msgid "Src" msgstr "ਸਰੋਤ" #: ../src/firewall-config:825 msgid "Dest" msgstr "ਟਿਕਾਣਾ" #: ../src/firewall-config:827 msgid "log" msgstr "ਲੌਗ" #: ../src/firewall-config:829 msgid "Audit" msgstr "ਆਡਿਟ" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ਚੇਤਾਵਨੀ" #: ../src/firewall-config:1612 msgid "Error" msgstr "ਗਲਤੀ" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "ਸਵੀਕਾਰ ਕਰੋ" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "ਅਸਵੀਕਾਰ ਕਰੋ" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "ਸà©à©±à¨Ÿà©‹" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ਹੱਦ" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "ਸੇਵਾ" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "ਪੋਰਟ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "ਜਾਬਤਾ" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "ਮà©à¨–ੌਟਾ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "ਪੱਧਰ" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ਹਾਂ" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "ਜ਼ੋਨ" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "ਜ਼ੋਨ '%s': ਸੇਵਾ '%s' ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "ਜ਼ੋਨ ਹਟਾਉ" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "ਅਣਗੌਲਿਆ ਕਰੋ" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "ਜ਼ੋਨ '%s': ICMP ਕਿਸਮ '%s' ਉਪਲੱਬਧ ਨਹੀਂ।" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "ਬਿਲਟ-ਇਨ ਜ਼ੋਨ, ਨਾਂ-ਬਦਲਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ।" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ਦੂਜਾ" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "ਮਿੰਨਟ" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "ਘੰਟਾ" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ਦਿਨ" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "ਹੰਗਾਮੀ" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "ਖ਼ਬਰਦਾਰ" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "ਨਾਜà©à¨•" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "ਗਲਤੀ" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "ਚੇਤਾਵਨੀ" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "ਸੂਚਨਾ" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "ਜਾਣਕਾਰੀ" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ਡੀਬੱਗ" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ਕਿਸੇ ਹੋਰ ਸਿਸਟਮ ਤੇ ਫਾਰਵਰਡਿੰਗ ਸਿਰਫ ਉਸ ਵੇਲੇ ਹੀ ਵਰਤੋਂਯੋਗ ਹੈ ਜੇ ਇੰਟਰਫੇਸ ਦਾ " "ਮà©à¨–ੌਟਾਪਨ ਕੀਤਾ ਹੈ।\n" "ਕੀ ਤà©à¨¸à©€à¨‚ ਇਸ ਜ਼ੋਨ ਦਾ ਮà©à¨–ੌਟਾਪਨ ਕਰਨਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "ਬਿਲਟ-ਇਨ ਸੰਰਚਨਾ, ਨਾਂ-ਬਦਲਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "ਬਿਲਟ-ਇਨ icmp, ਨਾਂ-ਬਦਲਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "ਸਰੋਤ %s ਲਈ ਜ਼ੋਨ ਚà©à¨£à©‹" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ਪਤਾ" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਕਮਾਂਡ ਲਾਈਨ ਭਰੋ।" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਪà©à¨°à¨¸à©°à¨— ਭਰੋ।" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਹੇਠਾਂ ਦਿੱਤੀ ਸੂਚੀ ਵਿੱਚੋਂ ਮੂਲ ਜ਼ੋਨ ਚà©à¨£à©Œà¥¤" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ਸਿੱਧੀ ਲੜੀ" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ipv ਅਤੇ ਸਾਰਣੀ ਚà©à¨£à©‹ ਅਤੇ ਲੜੀ ਨਾਂ ਭਰੋ।" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ਲੜੀ:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "ਕੱਚਾ" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "ਸà©à¨°à©±à¨–ਿਆ" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "ਸਾਰਣੀ:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ਸਿੱਧਾ ਪਾਸਥਰੂਅ ਨਿਯਮ" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ipv ਚà©à¨£à©‹ ਅਤੇ ਆਰਗੂਮੈਂਟ ਭਰੋ।" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "ਆਰਗੂਮੈਂਟ:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ਪੋਰਟ ਫਾਰਵਰਡਿੰਗ" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੀ ਲੋੜ ਅਨà©à¨¸à¨¾à¨° ਸਰੋਤ ਤੇ ਨੀਯਤ ਚੋਣਾਂ ਚà©à¨£à©‹à¥¤" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "ਪੋਰਟ / ਪੋਰਟ ਰੇਂਜ:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP ਪਤਾ:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "ਜਾਬਤਾ:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "ਸਰੋਤ" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ਟਿਕਾਣਾ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "ਜੇ ਤà©à¨¸à©€à¨‚ ਸਥਾਨਕ ਫਾਰਵਰਡਿੰਗ ਯੋਗ ਕਰਦੇ ਹੋ, ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਪੋਰਟ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ " "ਪੋਰਟ ਸਰੋਤ ਪੋਰਟ ਲਈ ਵੱਖਰੀ ਹੋਣੀ ਜਰੂਰੀ ਹੈ।" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "ਸਥਾਨਕ ਫਾਰਵਰਡਿੰਗ" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ਹੋਰ ਪੋਰਟ ਤੇ ਅੱਗੇ ਭੇਜਿਆ" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ਗੂੜà©à¨¹à©‡ ਕੀਤੇ ਇੰਦਰਾਜ ਜਰੂਰੀ ਹਨ, ਬਾਕੀ ਸਭ ਚੋਣਵੀਆਂ ਹਨ।" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "ਨਾਂ:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ਸੰਸਕਰਣ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "ਸੰਖੇਪ:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ਵੇਰਵਾ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "ਟੱਬਰ:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ਮà©à©±à¨¢à¨²à©€ ICMP ਕਿਸਮ ਸੈਟਿੰਗ" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਆਧਾਰ ICMP ਕਿਸਮ ਸੈਟਿੰਗਾਂ ਸੰਰਚਿਤ ਕਰੋ:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP ਕਿਸਮ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ICMP ਕਿਸਮ ਚà©à¨£à©‹" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "à¨à¨‚ਟਰੀ ਜੋੜੋ" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "ਫਾਈਲ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "ਚੋਣਾਂ (_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "ਫਾਇਰਵਾਲ-ਡੀ ਮà©à©œ-ਲੋਡ ਕਰੋ" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ਫਾਇਰਵਾਲ ਨਿਯਮ ਮà©à©œ ਲੋਡ ਕਰੋ। ਮੌਜੂਦਾ ਪੱਕੀ ਸੰਰਚਨਾ ਨਵੀਂ ਚੱਲ ਰਹੀ ਸੰਰਚਨਾ ਬਣ ਜਾਵੇਗੀ। " "ਮਤਲਬ ਕਿ ਮà©à©œ-ਲੋਡ ਕਰਨ ਤੱਕ ਚਾਲੂ ਹਾਲਾਤ ਵਿੱਚ ਕੀਤੇ ਸਾਰੇ ਬਦਲਾਅ ਗà©à©°à¨® ਜਾਂਦੇ ਹਨ ਜੇ ਉਹ " "ਵੀ ਪੱਕੀ ਸੰਰਚਨਾ ਵਿੱਚ ਨਹੀਂ ਹਨ।" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ਇੱਕ ਨੈੱਟਵਰਕ ਸੰਪਰਕ ਕਿਸ ਜ਼ੋਨ ਨਾਲ ਸੰਬੰਧ ਰੱਖਦਾ ਹੈ ਨੂੰ ਬਦਲੋ।" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ਮੂਲ ਜ਼ੋਨ ਬਦਲੋ" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "ਸੰਪਰਕਾਂ ਜਾਂ ਇੰਟਰਫੇਸਾਂ ਲਈ ਮੂਲ ਜ਼ੋਨ ਬਦਲੋ।" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "ਖਲਬਲੀ ਮੋਡ ਦਾ ਮਤਲਬ ਕਿ ਸਾਰੇ ਜਾ ਰਹੇ ਅਤੇ ਆ ਰਹੇ ਪੈਕੇਟ ਸà©à©±à¨Ÿ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ।" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "ਖ਼ਲਬਲੀ ਮੋਡ" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "ਤਾਲਾਬੰਦ ਫਾਇਰਵਾਲ ਸੰਰਚਨਾ ਤੇ ਤਾਲਾ ਲਗਾ ਦਿੰਦਾ ਹੈ ਤਾਂ ਕਿ ਸਿਰਫ਼ ਤਾਲਾਬੰਦੀ ਦੀ " "ਵਾਈà©à¨¹à¨Ÿà¨²à¨¿à¨¸à¨Ÿ ਉੱਪਰਲੀਆਂ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨਾਂ ਹੀ ਇਸ ਨੂੰ ਬਦਲਣ ਦੇ ਯੋਗ ਹੋਣ।" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "ਤਾਲਾਬੰਦ" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "à¨à¨¾à¨¤ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP ਕਿਸਮਾਂ" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ਸਿੱਧੀ ਸੰਰਚਨਾ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Whitelist ਤਾਲਾਬੰਦ ਕਰੋ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "ਮਦਦ (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "ਸੰਰਚਨਾ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "ਮੌਜੂਦਾ ਪਰਗਟ ਸੰਰਚਨਾ। ਚਾਲੂ ਸੰਰਚਨਾ ਹੀ ਅਸਲ ਸਰਗਰਮ ਸੰਰਚਨਾ ਹੈ। ਸਥਾਈ ਸੰਰਚਨਾ ਸੇਵਾ ਜਾਂ " "ਸਿਸਟਮ ਦੇ ਮà©à©œ-ਲੋਡ ਜਾਂ ਮà©à©œ-ਸ਼à©à¨°à©‚ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਰਗਰਮ ਹੋਵੇਗੀ" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "ਇੱਕ ਫਾਇਰਵਾਲ ਵਾਲਾ ਜ਼ੋਨ ਨੈੱਟਵਰਕ ਸੰਪਰਕਾਂ, ਇੰਟਰਫੇਸਾਂ ਅਤੇ ਜ਼ੋਨ ਨਾਲ ਬੱà¨à©‡ ਸਰੋਤਾਂ ਲਈ " "ਭਰੋਸੇ ਦਾ ਪੱਧਰ ਦਰਸਾਉਂਦਾ ਹੈ। ਜ਼ੋਨ ਸੇਵਾਵਾਂ, ਪੋਰਟਾਂ, ਜਾਬਤਿਆਂ, ਮà©à¨–ੌਟਾਪਨ, ਪੋਰਟ/" "ਪੈਕੇਟ ਫਾਰਵਰਡ ਕਰਨਾ, icmp ਫਿਲਟਰਾਂ ਅਤੇ ਉੱਚ-ਪੱਧਰ ਨਿਯਮਾਂ ਨੂੰ ਇਕੱਠਿਆਂ ਕਰਦਾ ਹੈ। " "ਜ਼ੋਨ ਨੂੰ ਇੰਟਰਫੇਸਾਂ ਅਤੇ ਸਰੋਤ ਪਤਿਆਂ ਨਾਲ ਬੰਨà©à¨¹à¨¿à¨† ਜਾ ਸਕਦਾ ਹੈ।" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "ਜ਼ੋਨ ਸ਼ਾਮਿਲ ਕਰੋ" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "ਜ਼ੋਨ ਸੋਧੋ" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "ਜ਼ੋਨ ਹਟਾਉ" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "ਜ਼ੋਨ ਮੂਲ ਲੋਡ ਕਰੋ" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ਇੱਥੇ ਤà©à¨¸à©€à¨‚ ਦੱਸ ਸਕਦੇ ਹੋ ਕਿ ਕਿਹੜੀ ਸੇਵਾ ਭਰੋਸੇਯੋਗ ਜ਼ੋਨ ਵਿੱਚ ਹੈ। ਭਰੋਸੇਯੋਗ ਸੋਵਾਵਾਂ " "ਸਭ ਮੇਜ਼ਬਾਨਾਂ ਅਤੇ ਨੈੱਟਵਰਕਾਂ ਤੋਂ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ ਜਿਹੜੇ ਇਸ ਜ਼ੋਨ ਨਾਲ ਬੱà¨à©‡ " "ਸੰਪਰਕਾਂ, ਇੰਟਰਫੇਸਾਂ ਅਤੇ ਸਰੋਤਾਂ ਤੋਂ ਮਸ਼ੀਨ ਤੱਕ ਪਹà©à©°à¨š ਸਕਦੇ ਹਨ।" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "ਸੇਵਾਵਾਂ" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "ਵਾਧੂ ਪੋਰਟਾਂ ਜਾਂ ਪੋਰਟ ਰੇਂਜਾਂ ਸ਼ਾਮਿਲ ਕਰੋ, ਜੋ ਉਹਨਾਂ ਸਭ ਮੇਜ਼ਬਾਨਾਂ ਜਾਂ ਨੈੱਟਵਰਕਾਂ ਲਈ " "ਦਖਲ ਦੇਣ ਯੋਗ ਹੋਣ ਜਿਹੜੇ ਮਸ਼ੀਨ ਨਾਲ ਜà©à©œ ਸਕਦੇ ਹਨ।" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "ਪੋਰਟ ਜੋੜੋ" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "ਜ਼ੋਨ ਸੋਧੋ" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "ਜ਼ੋਨ ਹਟਾਉ" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "ਪੋਰਟ" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "ਮਖੌਟਾ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਮੇਜ਼ਬਾਨ ਜਾਂ ਰਾਊਟਰ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਜੋ ਤà©à¨¹à¨¾à¨¡à©‡ ਸਥਾਨਕ " "ਨੈੱਟਵਰਕ ਨੂੰ ਇੰਟਰਨੈੱਟ ਨਾਲ ਜੋੜਦਾ ਹੈ। ਤà©à¨¹à¨¾à¨¡à¨¾ ਸਥਾਨਕ ਨੈੱਟਵਰਕ ਦਿੱਖ ਹੋਵੇਗਾ ਅਤੇ " "ਇੰਟਰਨੈੱਟ ਲਈ ਮੇਜ਼ਬਾਨ ਇੱਕ ਵੱਖਰੇ ਪਤੇ ਵਾਂਗ ਦਿਸਦਾ ਹੈ। ਮਖੌਟਾ ਸਿਰਫ IPv4 ਹੈ।" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ਮà©à¨–ੌਟਾ ਜ਼ੋਨ" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "ਜੇ ਤà©à¨¸à©€à¨‚ ਮà©à¨–ੌਟਾ ਯੋਗ ਕੀਤਾ, IP ਫਾਰਵਰਡਿੰਗ ਵੀ ਤà©à¨¹à¨¾à¨¡à©‡ IPv4 ਨੈੱਟਵਰਕਾਂ ਲਈ ਯੋਗ ਹੋ " "ਜਾà¨à¨—ੀ।" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "ਮà©à¨–ੌਟਾ" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "ਪੋਰਟਾਂ ਨੂੰ ਸਥਾਨਕ ਸਿਸਟਮ ਉੱਪਰ ਇੱਕ ਪੋਰਟ ਤੋਂ ਦੂਜੀ ਪੋਰਟ ਤੇ ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਜਾਂ " "ਸਥਾਨਕ ਸਿਸਟਮ ਤੋਂ ਹੋਰ ਸਿਸਟਮ ਵੱਲ ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਇੰਦਰਾਜ ਸ਼ਾਮਿਲ ਕਰੋ। ਹੋਰ ਸਿਸਟਮ ਤੇ " "ਫਾਰਵਰਡ ਕਰਨ ਨਾਲ ਸਿਰਫ ਤਾਂ ਹੀ ਲਾਹੇਵੰਦ ਹੈ ਜੇ ਇੰਟਰਫੇਸ ਮਖੌਟਾ ਹੈ। ਪੋਰਟ ਫਾਰਵਰਡਿੰਗ " "ਸਿਰਫ IPv4 ਹੈ।" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ਫਾਰਵਰਡ ਪੋਰਟ ਜੋੜੋ" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ਫਾਰਵਰਡ ਪੋਰਟ ਸੋਧੋ" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ਪਾਰਵਰਡ ਪੋਰਟ ਹਟਾਉ" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ਇੰਟਰਨੈੱਟ ਕੰਟਰੋਲ ਮੈਸੇਜ ਪਰੋਟੋਕਾਲ (ICMP) ਮà©à©±à¨– ਤੌਰ ਤੇ ਨੈੱਟਵਰਕ ਕੰਪਿਊਟਰਾਂ ਵਿੱਚ " "ਗਲਤੀ ਸà©à¨¨à©‡à¨¹à©‡ ਭੇਜਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਪਰ ਨਾਲ ਹੀ ਵੀ ਭੇਜਦਾ ਹੈ ਜਿਵੇਂ ਪਿੰਗ ਬੇਨਤੀ " "ਅਤੇ ਜਵਾਬ।" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "ਸੂਚੀ ਵਿੱਚ ICMP ਕਿਸਮਾਂ ਮਾਰਕ ਕਰੋ, ਜੋ ਰੱਧ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਹੋਰ ਸਭ ICMP " "ਕਿਸਮਾਂ ਫਾਇਰਵਾਲ ਵਿੱਚ ਲੰਘ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਰੂਪ ਵਿੱਚ ਕੋਈ ਪਾਬੰਦੀ ਨਹੀਂ ਹੈ।" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP ਫਿਲਟਰ" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "ਇੱਥੇ ਤà©à¨¸à©€à¨‚ ਜ਼ੋਨ ਲਈ ਉੱਚ-ਪੱਧਰੀ ਭਾਸ਼ਾ ਨਿਯਮ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ ਜੋੜੋ" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ ਸੋਧੋ" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ ਹਟਾਉ" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "ਜ਼ੋਨ ਨਾਲ ਇੰਟਰਫੇਸ ਬੰਨà©à¨¹à¨£ ਲਈ à¨à¨‚ਟਰੀਆਂ ਸਾਮਿਲ ਕਰੋ। ਜੇ ਇੰਟਰਫੇਸ ਸੰਪਰਕ ਦà©à¨†à¨°à¨¾ ਵਰਤਿਆ " "ਜਾਵੇਗਾ, ਜ਼ੋਨ ਉਸ ਜ਼ੋਨ ਵਜੋਂ ਸੈੱਟ ਹੋਵੇਗਾ ਜੋ ਸੰਪਰਕ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ।" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ਇੰਟਰਫੇਸ ਜੋੜੋ" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ਇੰਟਰਫੇਸ ਸੋਧੋ" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ਇੰਟਰਫੇਸ ਹਟਾਉ" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "ਸਰੋਤ ਜੋੜੋ" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "ਸਰੋਤ ਸੋਧੋ" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "ਸਰੋਤ ਹਟਾਉ" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "ਜ਼ੋਨ" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "ਇੱਕ ਫਾਇਰਵਾਲ-ਡੀ ਸੇਵਾ ਪੋਰਟਾਂ, ਜਾਬਤਿਆਂ, ਮੌਡਿਊਲਾਂ ਅਤੇ ਟਿਕਾਣਾ ਪਤਿਆਂ ਦਾ ਮਿਸ਼ਰਣ ਹੈ।" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "ਸੇਵਾ ਜੋੜੋ" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "ਸੇਵਾ ਸੋਧੋ" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "ਸੇਵਾ ਹਟਾਉ" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "ਸੇਵਾ ਮੂਲ ਲੋਡ ਕਰੋ" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "à¨à¨‚ਟਰੀ ਸੋਧੋ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "à¨à¨‚ਟਰੀ ਹਟਾਉ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ਮੌਡਿਊਲ" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ਜੇ ਤà©à¨¸à©€à¨‚ ਟਿਕਾਣਾ ਪਤੇ ਦਰਸਾਉਂਦੇ ਹੋ, ਸੇਵਾ ਇੰਦਰਾਜ ਟਿਕਾਣੇ ਦੇ ਪਤੇ ਅਤੇ ਕਿਸਮ ਤੱਕ " "ਸੀਮਿਤ ਰਹੇਗੀ। ਜੇ ਦੋਵੇਂ ਇੰਦਰਾਜ ਖਾਲੀ ਹਨ, ਫਿਰ ਕੋਈ ਬੰਦਿਸ਼ ਨਹੀਂ।" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "ਸੇਵਾਵਾਂ ਸਿਰਫ਼ ਸਥਾਈ ਸੰਰਚਨਾ à¨à¨¾à¨¤ ਵਿੱਚ ਹੀ ਬਦਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਸੇਵਾਵਾਂ ਦੀ ਚਾਲੂ " "ਸੰਰਚਨਾ ਪੱਕੀ ਹੈ।" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "ਫਾਇਰਵਾਲ-ਡੀ icmptype ਫਾਇਰਵਾਲ-ਡੀ ਦੀ ਇੰਟਰਨੈੱਟ ਕੰਟਰੋਲ ਮੈਸੇਜ ਪਰੋਟੋਕੌਲ (ICMP) ਕਿਸਮ " "ਦੀ ਜਾਣਕਾਰੀ ਮà©à¨¹à©±à¨ˆà¨† ਕਰਵਾਉਂਦਾ ਹੈ।" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP ਕਿਸਮ ਜੋੜੋ" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP ਕਿਸਮ ਸੋਧੋ" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP ਕਿਸਮ ਹਟਾਉ" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP ਕਿਸਮ ਮੂਲ ਲੋਡ ਕਰੋ" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "ਦਰਸਾਉ ਕਿ ਜੇ ਇਹ ICMP ਕਿਸਮ IPv4 ਅਤੇ/ਜਾਂ IPv6 ਲਈ ਉਪਲੱਬਧ ਹਨ।" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP ਕਿਸਮਾਂ ਸਿਰਫ਼ ਸਥਾਈ ਸੰਰਚਨਾ à¨à¨¾à¨¤ ਵਿੱਚ ਹੀ ਬਦਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ICMP ਕਿਸਮ ਦੀ " "ਚਾਲੂ ਸੰਰਚਨਾ ਪੱਕੀ ਹੈ।" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ਸਿੱਧੀ ਸੰਰਚਨਾ ਫਾਇਰਵਾਲ ਤੱਕ ਹੋਰ ਜਿਆਦਾ ਸਿੱਧਾ ਦਖਲ ਦਿੰਦੀ ਹੈ। ਇਹ ਚੋਣਾਂ ਲਈ ਲੋੜੀਂਦਾ " "ਹੈ ਕਿ ਯੂਜ਼ਰ ਨੂੰ iptables ਦੇ ਮà©à©±à¨¢à¨²à©‡ ਸਿਧਾਂਤ ਪਤਾ ਹੋਣ, i.e. ਸਾਰਣੀਆਂ, ਲੜੀਆਂ, " "ਕਮਾਂਡਾਂ, ਪੈਰਾਮੀਟਰ ਅਤੇ ਟਿਕਾਣੇ। ਸਿੱਧੀ ਸੰਰਚਨਾ ਆਖਿਰੀ ਹੱਲ ਵਜੋਂ ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ " "ਜਦੋਂ ਹੋਰ ਫਾਇਰਵਾਲ-ਡੀ ਫੀਚਰਾਂ ਨੂੰ ਵਰਤਣਾ ਸੰਭਵ ਨਾ ਹੋਵੇ।" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ਹਰੇਕ ਚੋਣ ਦੇ ipv ਆਰਗੂਮੈਂਟ ਦਾ ipv4 ਜਾਂ ipv6 ਜਾਂ eb ਹੋਣਾ ਹੈ। ipv4 ਨਾਲ ਇਹ " "iptables ਲਈ ਹੋਵੇਗਾ, ipv6 ਨਾਲ ਇਹ ip6tables ਲਈ ਅਤੇ eb ਨਾਲ ਇਹ ਈਥਰਨੈੱਟ ਬਰਿੱਜਾਂ " "(ebtables) ਲਈ।" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "ਨਿਯਮਾਂ ਨਾਲ ਵਰਤਣ ਲਈ ਵਾਧੂ ਲੜੀਆਂ।" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "ਲੜੀ ਜੋੜੋ" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ਲੜੀ ਸੋਧੋ" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ਲੜੀ ਹਟਾਉ" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ਲੜੀਆਂ" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "ਤਰਜੀਹ ਵਾਲੀ ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਲੜੀ ਨਾਲ ਆਰਗੂਮੈਂਟਾਂ args ਨਾਲ ਇੱਕ ਨਿਯਮ ਜੋੜੋ" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ਤਰਜੀਹ ਨਿਯਮਾਂ ਨੂੰ ਤਰਤੀਬ ਦੇਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਤਰਜੀਹ 0 ਦਾ ਮਤਲਬ ਨਿਯਮ ਨੂੰ ਲੜੀ " "ਵਿੱਚ ਸਿਖਰ ਤੇ ਜੋੜੋ, ਵੱਡੀ ਤਰਜੀਹ ਨਾਲ ਨਿਯਮ ਹੋਰ ਥੱਲੇ ਜੋੜੇ ਜਾਣਗੇ। ਇੱਕੋ ਤਰਜੀਹ ਵਾਲੇ " "ਨਿਯਮ ਇੱਕੋ ਪੱਧਰ ਤੇ ਹਨ ਅਤੇ ਇਹਨਾਂ ਨਿਯਮਾਂ ਦੀ ਤਰਤੀਬ ਪੱਕੀ ਨਹੀਂ ਹੈ ਤੇ ਬਦਲ ਸਕਦੀ ਹੈ। " "ਜੇ ਤà©à¨¸à©€à¨‚ ਇਹ ਪੱਕਾ ਕਰਨਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ ਕਿ ਨਿਯਮ ਇੱਕ ਦੂਜੇ ਤੋਂ ਬਾਅਦ ਜੋੜੇ ਜਾਣਗੇ, ਪਹਿਲੇ " "ਲਈ ਘੱਟ ਅਤੇ ਬਾਅਦ ਵਾਲੇ ਲਈ ਵੱਡੀ ਤਰਜੀਹ ਵਰਤੋ।" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "ਨਿਯਮ ਜੋੜੋ" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "ਨਿਯਮ ਸੋਧੋ" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "ਨਿਯਮ ਹਟਾਉ" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "ਨਿਯਮ" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ਪਾਸਥਰੂਅ ਨਿਯਮ ਸਿੱਧੇ ਫਾਇਰਵਾਲ ਤੱਕ ਲੰਘਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਖਾਸ ਲੜੀਆਂ ਵਿੱਚ ਨਹੀਂ " "ਰੱਖੇ ਜਾਂਦੇ। ਸਾਰੀਆਂ iptables, ip6tables ਅਤੇ ebtables ਚੋਣਾਂ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ।" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "ਕਿਰਪਾ ਕਰ ਕੇ ਪਾਸਥਰੂਅ ਨਿਯਮਾਂ ਨਾਲ ਸà©à¨šà©‡à¨¤ ਰਹੋ ਕਿਤੇ ਫਾਇਰਵਾਲ ਨੂੰ ਨà©à¨•ਸਾਨ ਨਾ ਪਹà©à©°à¨šà©‡à¥¤" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "ਪਾਸਥਰੂਅ ਜੋੜੋ" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "ਪਾਸਥਰੂਅ ਸੋਧੋ" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "ਪਾਸਥਰੂਅ ਹਟਾਉ" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ਪਾਸਥਰੂਅ" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "ਤਾਲਾਬੰਦ ਗà©à¨£ ਫਾਇਰਵਾਲ-ਡੀ ਲਈ ਯੂਜ਼ਰ ਅਤੇ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨ ਨੀਤੀਆਂ ਦਾ ਹਲਕਾ ਸੰਸਕਰਣ ਹੈ। ਇਹ " "ਫਾਇਰਵਾਲ-ਡੀ ਵਿੱਚ ਬਦਲਾਆਂ ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ। ਤਾਲਾਬੰਦ ਵਾਈà©à¨¹à¨Ÿà¨²à¨¿à¨¸à¨Ÿ ਵਿੱਚ ਕਮਾਂਡਾਂ, " "ਪà©à¨°à¨¸à©°à¨—, ਯੂਜ਼ਰ ਅਤੇ ਯੂਜ਼ਰ idਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ।" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "ਪà©à¨°à¨¸à©°à¨— ਜੋੜੋ" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "ਪà©à¨°à¨¸à©°à¨— ਸੋਧੋ" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "ਪà©à¨°à¨¸à©°à¨— ਹਟਾਉ" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "ਪà©à¨°à¨¸à©°à¨—" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "ਜੇ ਵਾਈà©à¨¹à¨Ÿà¨²à¨¿à¨¸à¨Ÿ ਤੇ ਕੋਈ ਕਮਾਂਡ ਇੰਦਰਾਜ '*' ਨਾਲ ਖਤਮ ਹà©à©°à¨¦à¨¾ ਹੈ, ਤਾਂ ਕਮਾਂਡ ਨਾਲ ਸ਼à©à¨°à©‚ " "ਹà©à©°à¨¦à©€à¨†à¨‚ ਸਾਰੀਆਂ ਕਮਾਂਡ ਲਾਈਨਾਂ ਵੀ ਮੇਲ ਖਾਣਗੀਆਂ। ਜੇ '*' ਨਹੀਂ ਲੱਗਾ ਤਾਂ ਕਮਾਂਡ " "ਆਰਗੂਮੈਂਟਾਂ ਸਮੇਤ ਪੂਰੀ ਤਰà©à¨¹à¨¾à¨‚ ਮੇਲ ਖਾਂਦੀ ਹੋਣੀ ਜਰੂਰੀ ਹੈ।" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "ਕਮਾਂਡ ਲਾਈਨ ਜੋੜੋ" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "ਕਮਾਂਡ ਲਾਈਨ ਸੋਧੋ" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "ਕਮਾਂਡ ਲਾਈਨ ਹਟਾਉ" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "ਕਮਾਂਡ ਲਾਈਨਾਂ" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "ਯੂਜ਼ਰ ਨਾਂ।" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "ਯੂਜ਼ਰ ਨਾਂ ਜੋੜੋ" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "ਯੂਜ਼ਰ ਨਾਂ ਸੋਧੋ" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "ਯੂਜ਼ਰ ਨਾਂ ਹਟਾਉ" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "ਯੂਜ਼ਰ ਨਾਂ" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ਯੂਜ਼ਰ id-ਆਂ।" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "ਯੂਜ਼ਰ Id ਜੋੜੋ" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "ਯੂਜ਼ਰ Id ਸੋਧੋ" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "ਯੂਜ਼ਰ Id ਹਟਾਉ" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ਯੂਜ਼ਰ id-ਆਂ" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "ਸਿਸਟਮ ਦਾ ਮੌਜੂਦਾ ਮੂਲ ਜ਼ੋਨ।" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "ਖ਼ਲਬਲੀ ਮੋਡ:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "ਤਾਲਾਬੰਦ:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "ਮੂਲ ਜ਼ੋਨ:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "ਪੋਰਟ ਅਤੇ ਜਾਬਤਾ" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ਪੋਰਟ ਅਤੇ ਜਾਬਤਾ ਦਿਉ ਜੀ।" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ਸਿੱਧਾ ਨਿਯਮ" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ipv ਅਤੇ ਸਾਰਣੀ, ਲੜੀ ਤਰਜੀਹ ਚà©à¨£à©‹ ਅਤੇ ਆਰਗੂਮੈਂਟ ਭਰੋ।" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "ਤਰਜੀਹ:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਇੱਕ ਜਾਬਤਾ ਭਰੋ।" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "ਹੋਰ ਜਾਬਤਾ:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਇੱਕ ਉੱਚ-ਪੱਧਰੀ ਨਿਯਮ ਭਰੋ।" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "ਮੇਜਬਾਨ ਜਾਂ ਨੈੱਟਵਰਕ ਲਈ ਵਾਈà©à¨¹à¨Ÿ ਜਾਂ ਬਲੈਕ-ਲਿਸਟਿੰਗ ਤੱਤ ਨੂੰ ਗੈਰ-ਕਿਰਿਆਸ਼ੀਲ ਕਰਦਾ ਹੈ।" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "ਸਰੋਤ:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "ਟਿਕਾਣਾ:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ਲੌਗ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ਆਡਿਟ:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 ਅਤੇ ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "ਪਲਟਾਇਆ" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "ਇਸ ਨੂੰ ਯੋਗ ਕਰਨ ਲਈ ਕਾਰਵਾਈ 'reject' ਅਤੇ ਟੱਬਰ ਜਾਂ ਤਾਂ 'ipv4' ਜਾਂ 'ipv6' (ਦੋਵੇਂ " "ਨਹੀਂ) ਹੋਵੇ।" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "ਕਿਸਮ ਨਾਲ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "ਹੱਦ ਨਾਲ:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ਅਗੇਤਰ:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "ਪੱਧਰ:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "ਤੱਤ:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "ਕਾਰਵਾਈ:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ਮà©à©±à¨¢à¨²à©€à¨†à¨‚ ਸੇਵਾ ਸੈਟਿੰਗਾਂ" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "ਮà©à©±à¨¢à¨²à©€à¨†à¨‚ ਸੇਵਾ ਸੈਟਿੰਗਾਂ ਸੰਰਚਿਤ ਕਰੋ:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਇੱਕ ਸੇਵਾ ਚà©à¨£à©‹à¥¤" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ਯੂਜ਼ਰ ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਯੂਜ਼ਰ id ਭਰੋ।" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "ਯੂਜ਼ਰ ਨਾਂ" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ਕਿਰਪਾ ਕਰ ਕੇ ਯੂਜ਼ਰ ਨਾਂ ਭਰੋ।" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ਮੂਲ ਜ਼ੋਨ ਸੈਟਿੰਗਾਂ" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ਮੂਲ ਜ਼ੋਨ ਸੈਟਿੰਗਾਂ ਦਿਉ ਜੀ:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "ਮੂਲ ਨਿਸ਼ਾਨਾ" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ਨਿਸ਼ਾਨਾ:" firewalld-0.4.4.6/po/pl.po000066400000000000000000001635031320241217000152250ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Andrzej Olszewski , 2004 # Piotr DrÄ…g , 2007,2013-2014 # Tomasz Chrzczonowicz , 2009 # Tom Berner , 2005 # Tom Berner , 2004 # Piotr DrÄ…g , 2015. #zanata # Piotr DrÄ…g , 2016. #zanata # Piotr DrÄ…g , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-11 01:24-0400\n" "Last-Translator: Piotr DrÄ…g \n" "Language-Team: Polish (http://www.transifex.com/projects/p/firewalld/" "language/pl/)\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Aplet zapory sieciowej" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Zapora sieciowa" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Konfiguracja zapory sieciowej" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" "zapora;sieciowa;ogniowa;firewall;sieć;sieci;network;bezpieczeÅ„stwo;zabezpieczenia;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Wybór strefy dla interfejsu „%sâ€" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "DomyÅ›lna strefa" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Wybór strefy dla połączenia „%sâ€" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Ustawienie strefy {zone} dla połączenia {connection} siÄ™ nie powiodÅ‚o" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Wybór strefy dla źródÅ‚a „%sâ€" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Konfiguracja stref ochrony wysyÅ‚ania/pobierania" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Tutaj można wybrać strefy używane do ochrony wysyÅ‚ania/pobierania" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Ta funkcja jest przydatna głównie dla użytkowników domyÅ›lnych stref. " "Przydatność dla użytkowników zmieniajÄ…cych strefy połączeÅ„ może być " "ograniczona." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Strefa ochrony wysyÅ‚ania:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Przywróć domyÅ›lne" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Strefa ochrony pobierania:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "O programie %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autorzy" #: ../src/firewall-applet:396 msgid "License" msgstr "Licencja" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Ochrona wysyÅ‚ania" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Powiadomienia" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Modyfikuj ustawienia zapory sieciowej…" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ZmieÅ„ strefy połączeń…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Skonfiguruj strefy ochrony wysyÅ‚ania/pobierania..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blokowanie caÅ‚ego ruchu sieciowego" #: ../src/firewall-applet:492 msgid "About" msgstr "O programie" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Połączenia" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfejsy" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "ŹródÅ‚a" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Upoważnienie siÄ™ nie powiodÅ‚o." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "NieprawidÅ‚owa nazwa" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Nazwa już istnieje" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Strefa: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (DomyÅ›lna strefa: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Uzyskanie połączeÅ„ z usÅ‚ugi NetworkManager siÄ™ nie powiodÅ‚o" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Brak dostÄ™pnych importów usÅ‚ugi NetworkManager" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Brak połączenia z usÅ‚ugÄ… zapory sieciowej" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "CaÅ‚y ruch sieciowy jest zablokowany." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "DomyÅ›lna strefa: „%sâ€" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "DomyÅ›lna strefa „{default_zone}†jest aktywna dla połączenia „{connection}†" "na interfejsie „{interface}â€" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Strefa „{zone}†jest aktywna dla połączenia „{connection}†na interfejsie " "„{interface}â€" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Strefa „{zone}†jest aktywna dla interfejsu „{interface}â€" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Strefa „{zone}†jest aktywna dla źródÅ‚a {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Brak aktywnych stref." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "NawiÄ…zano połączenie z usÅ‚ugÄ… firewalld." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Utracono połączenie z usÅ‚ugÄ… firewalld." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "Ponownie wczytano usÅ‚ugÄ™ firewalld." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Zmieniono domyÅ›lnÄ… strefÄ™ na „%sâ€." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Ruch sieciowy nie jest już zablokowany." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktywowana" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "dezaktywowana" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "DomyÅ›lna strefa „{default_zone}†zostaÅ‚a {activated_deactivated} dla " "połączenia „{connection}†na interfejsie „{interface}â€" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Strefa „{zone}†zostaÅ‚a {activated_deactivated} dla połączenia " "„{connection}†na interfejsie „{interface}â€" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "Strefa „{zone}†zostaÅ‚a {activated_deactivated} dla interfejsu „{interface}â€" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Strefa „%s†zostaÅ‚a aktywowana dla interfejsu „%sâ€" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Strefa „{zone}†{activated_deactivated} dla źródÅ‚a „{source}â€" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Strefa „%s†zostaÅ‚a aktywowana dla źródÅ‚a „%sâ€" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "NawiÄ…zano połączenie z usÅ‚ugÄ… firewalld." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Próba połączenia z usÅ‚ugÄ… firewalld, oczekiwanie…" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Zastosowano zmiany." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Używane przez połączenie sieciowe „%sâ€" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "DomyÅ›lna strefa używana przez połączenie sieciowe „%sâ€" #: ../src/firewall-config:96 msgid "enabled" msgstr "włączone" #: ../src/firewall-config:97 msgid "disabled" msgstr "wyłączone" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Wczytanie ikon siÄ™ nie powiodÅ‚o." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Uruchamianie" #: ../src/firewall-config:398 msgid "Permanent" msgstr "TrwaÅ‚e" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "UsÅ‚uga" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokół" #: ../src/firewall-config:560 msgid "To Port" msgstr "Do portu" #: ../src/firewall-config:562 msgid "To Address" msgstr "Do adresu" #: ../src/firewall-config:612 msgid "Bindings" msgstr "DowiÄ…zania" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Wpis" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Typ ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "Rodzina" #: ../src/firewall-config:819 msgid "Action" msgstr "DziaÅ‚anie" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "ŹródÅ‚o" #: ../src/firewall-config:825 msgid "Dest" msgstr "Cel" #: ../src/firewall-config:827 msgid "log" msgstr "dziennik" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audyt" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Ostrzeżenie" #: ../src/firewall-config:1612 msgid "Error" msgstr "Błąd" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "akceptuj" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "odmów" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "odrzuć" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "Å›lad" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ogranicz" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "usÅ‚uga" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokół" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maskarada" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "port-źródÅ‚owy" #: ../src/firewall-config:2071 msgid "level" msgstr "poziom" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "tak" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Strefa" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "DomyÅ›lna strefa: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Strefa: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Strefa „%sâ€: usÅ‚uga „%s†jest niedostÄ™pna." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "UsuÅ„" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Zignoruj" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Strefa „%sâ€: typ ICMP „%s†jest niedostÄ™pny." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Wbudowana strefa, zmiana nazwy nie jest obsÅ‚ugiwana." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "s" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "min" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "godz." #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dzieÅ„" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "awaria" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alarm" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "krytyczne" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "błąd" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "ostrzeżenie" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "uwaga" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informacje" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debugowanie" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "blokada-icmp" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "typ-icmp" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "przekierowywanie-portu" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "IPv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "IPv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Przekierowywanie do innego systemu jest przydatne tylko, jeÅ›li interfejs " "jest za maskaradÄ™.\n" "UmieÅ›cić tÄ™ strefÄ™ za maskaradÄ…?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Wbudowana usÅ‚uga, zmiana nazwy nie jest obsÅ‚ugiwana." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "ProszÄ™ podać adres IPv4 w formie adres[/maska]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Maska może być maskÄ… sieci lub numerem." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "ProszÄ™ podać adres IPv6 w formie adres[/maska]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Maska jest numerem." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "ProszÄ™ podać adres IPv4 lub IPv6 w formie adres[/maska]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Maska może być maskÄ… sieci lub numerem dla IPv4.\n" "Maska jest numerem dla IPv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Wbudowany zestaw adresów IP, zmiana nazwy nie jest obsÅ‚ugiwana." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "ProszÄ™ wybrać plik" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Pliki tekstowe" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Wszystkie pliki" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Wszystko" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Wbudowany moduÅ‚ pomocniczy, zmiana nazwy nie jest obsÅ‚ugiwana." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Wbudowane ICMP, zmiana nazwy nie jest obsÅ‚ugiwana." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Odczytanie pliku „%s†siÄ™ nie powiodÅ‚o: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Wybór strefy dla źródÅ‚a %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adres" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatyczne moduÅ‚y pomocnicze" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "ProszÄ™ wybrać wartość automatycznych modułów pomocniczych:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Wiersz poleceÅ„" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ProszÄ™ podać wiersz poleceÅ„." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Kontekst" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "ProszÄ™ podać kontekst." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "ProszÄ™ wybrać domyÅ›lnÄ… strefÄ™ systemu z poniższej listy." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "BezpoÅ›redni Å‚aÅ„cuch" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ProszÄ™ wybrać ipv i tablicÄ™ oraz podać nazwÄ™ Å‚aÅ„cucha." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ÅaÅ„cuch:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "zabezpieczenia" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tablica:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "ReguÅ‚a bezpoÅ›redniego przejÅ›cia" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ProszÄ™ wybrać ipv i podać parametry." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Parametry:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Przekierowanie portów" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "ProszÄ™ wybrać wymagane opcje źródÅ‚owe i docelowe." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port/zakres portów:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Adres IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokół:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "ŹródÅ‚o" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Cel" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "JeÅ›li włączono lokalne przekierowanie, to należy podać port. Ten port musi " "być różny od portu źródÅ‚owego." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokalne przekierowanie" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Przekierowanie do innego portu" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Ustawienia podstawowego moduÅ‚u pomocniczego" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "ProszÄ™ skonfigurować ustawienia podstawowego moduÅ‚u pomocniczego:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Pogrubione wpisy sÄ… obowiÄ…zkowe, wszystkie pozostaÅ‚e sÄ… opcjonalne." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nazwa:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Wersja:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Krótkie:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Opis:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Rodzina:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "ModuÅ‚:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "ModuÅ‚ pomocniczy" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "ProszÄ™ wybrać moduÅ‚ pomocniczy:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Podstawowe ustawienia typu ICMP." #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "ProszÄ™ skonfigurować podstawowe ustawienia typu ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Typ ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ProszÄ™ wybrać typ ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Dodaj wpis" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Dodaj wpisy z pliku" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "UsuÅ„ zaznaczony wpis" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "UsuÅ„ wszystkie wpisy" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "UsuÅ„ wpisy z pliku" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Plik" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opcje" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Ponownie wczytaj usÅ‚ugÄ™ firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Ponownie wczytuje reguÅ‚y zapory sieciowej. Bieżąca trwaÅ‚a konfiguracja " "stanie siÄ™ nowÄ… konfiguracjÄ… uruchamiania. Oznacza to, że wszystkie zmiany " "uruchamiania wprowadzone przed ponownym wczytaniem zostanÄ… utracone, jeÅ›li " "nie znajdujÄ… siÄ™ także w trwaÅ‚ej konfiguracji." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Zmiana strefy, do której należy połączenie sieciowe." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ZmieÅ„ domyÅ›lnÄ… strefÄ™" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Zmiana domyÅ›lnej strefy dla połączeÅ„ lub interfejsów." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "ZmieÅ„ dziennik odmów" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "ZmieÅ„ wartość dziennika odmów." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Skonfiguruj przypisanie automatycznego moduÅ‚u pomocniczego" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" "Skonfiguruj ustawienia przypisania automatycznego moduÅ‚u pomocniczego." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Tryb paniki oznacza, że wszystkie pakiety przychodzÄ…ce i wychodzÄ…ce sÄ… " "odrzucane." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Tryb paniki" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Blokada blokuje konfiguracjÄ™ zapory sieciowej, wiÄ™c tylko programy na biaÅ‚ej " "liÅ›cie blokady mogÄ… jÄ… zmieniać." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Blokada" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "TrwaÅ‚a konfiguracja podczas uruchamiania" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Uruchamianie na staÅ‚e" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Widok" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "Zestawy adresów IP" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Typy ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "ModuÅ‚y pomocnicze" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "BezpoÅ›rednia konfiguracja" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "BiaÅ‚a lista blokady" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktywne dowiÄ…zania" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "Pomo_c" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "ZmieÅ„ strefÄ™ dowiÄ…zania" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Ukrycie aktywnych dowiÄ…zaÅ„ czasu uruchamiania połączeÅ„, interfejsów i źródeÅ‚ " "do stref" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "WyÅ›wietlenie aktywnych dowiÄ…zaÅ„ czasu uruchamiania połączeÅ„, interfejsów " "i źródeÅ‚ do stref" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfiguracja:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Obecnie widoczna konfiguracja. Konfiguracja podczas uruchamiania jest " "wÅ‚aÅ›ciwÄ… aktywnÄ… konfiguracjÄ…. TrwaÅ‚a konfiguracja stanie siÄ™ aktywnÄ… po " "ponownym wczytaniu albo uruchomieniu usÅ‚ugi lub systemu." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Strefa usÅ‚ugi firewalld okreÅ›la poziom zaufania dla połączeÅ„ sieciowych, " "interfejsów i adresów źródÅ‚owych powiÄ…zanych ze strefÄ…. Strefa łączy usÅ‚ugi, " "porty, protokoÅ‚y, maskarady, przekierowywanie portów/pakietów, filtry ICMP " "i zÅ‚ożone reguÅ‚y. Strefa może być także powiÄ…zana z interfejsami i adresami " "źródÅ‚owymi." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Dodaj strefÄ™" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Modyfikuj strefÄ™" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "UsuÅ„ strefÄ™" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Wczytaj domyÅ›lne ustawienia strefy" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Tutaj można okreÅ›lić zaufane usÅ‚ugi w strefie. Zaufane usÅ‚ugi sÄ… dostÄ™pne ze " "wszystkich komputerów i sieci, które mogÄ… osiÄ…gnąć ten komputer z połączeÅ„, " "interfejsów i źródeÅ‚ powiÄ…zanych z tÄ… strefÄ…." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "UsÅ‚ugi" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Dodanie dodatkowych portów lub zakresów portów, które majÄ… być dostÄ™pne dla " "wszystkich komputerów i sieci, które mogÄ… łączyć siÄ™ z tym komputerem." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Dodaj port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Modyfikuj port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "UsuÅ„ port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Porty" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Można dodać protokoÅ‚y, które majÄ… być dostÄ™pne dla wszystkich komputerów " "i sieci." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Dodaj protokół" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Modyfikuj protokół" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "UsuÅ„ protokół" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "ProtokoÅ‚y" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Dodanie dodatkowych portów lub zakresów portów źródÅ‚owych, które majÄ… być " "dostÄ™pne dla wszystkich komputerów i sieci, które mogÄ… łączyć siÄ™ z tym " "komputerem." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Porty źródÅ‚owe" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Maskarada umożliwia ustawienie komputera lub routera łączÄ…cego lokalny " "komputer z Internetem. Lokalna sieć nie bÄ™dzie widoczna i bÄ™dzie wystÄ™pować " "w Internecie jako jeden adres. MaskaradÄ™ można ustawić tylko dla IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Strefa maskarady" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "JeÅ›li włączono maskaradÄ™, to przekierowanie IP zostanie włączone dla sieci " "IPv4." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskarada" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Można dodać wpisy, aby przekierowywać porty w obrÄ™bie lokalnego systemu lub " "z lokalnego systemu do innego. Przekierowanie do innego systemu jest " "przydatne tylko, jeÅ›li interfejs jest za maskaradÄ…. Przekierowanie portów " "dziaÅ‚a tylko dla IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Dodaj port przekierowywania" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Modyfikuj port przekierowywania" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "UsuÅ„ port przekierowywania" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internetowy protokół kontroli komunikatów (ICMP) jest używany głównie do " "wysyÅ‚ania komunikatów błędów miÄ™dzy komputerami sieciowymi, ale także " "dodatkowo do komunikatów informacyjnych, takich jak żądania i odpowiedzi " "ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Można zaznaczyć typy ICMP na liÅ›cie, które powinny być odrzucane. Wszystkie " "inne typy ICMP bÄ™dÄ… mogÅ‚y przechodzić przez zaporÄ™ sieciowÄ…. DomyÅ›lnie nie " "ma ograniczeÅ„." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "JeÅ›li filtr jest odwrócony, to oznaczone wpisy ICMP sÄ… akceptowane, " "a pozostaÅ‚e sÄ… odrzucane. W strefie z celem DROP sÄ… one odrzucane." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Odwróć filtr" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtr ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Tutaj można ustawić zÅ‚ożone reguÅ‚y dla strefy." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Dodaj zÅ‚ożonÄ… regułę" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Modyfikuj zÅ‚ożonÄ… regułę" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "UsuÅ„ zÅ‚ożonÄ… regułę" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "ZÅ‚ożone reguÅ‚y" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Dodanie wpisów do dowiÄ…zania interfejsów do strefy. JeÅ›li interfejs bÄ™dzie " "używany przez połączenie, to strefa zostanie ustawiona na strefÄ™ podanÄ… " "w połączeniu." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Dodaj interfejs" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Modyfikuj interfejs" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "UsuÅ„ interfejs" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Dodanie wpisów do dowiÄ…zania adresów źródÅ‚owych lub obszarów do strefy. " "Można także dowiÄ…zywać do źródÅ‚owych adresów MAC, ale z ograniczeniami — " "przekierowywanie portów i maskarada nie bÄ™dÄ… dziaÅ‚aÅ‚y." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Dodaj źródÅ‚o" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Modyfikuj źródÅ‚o" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "UsuÅ„ źródÅ‚o" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Strefy" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "UsÅ‚uga firewalld to połączenie portów, protokołów, modułów i adresów " "docelowych." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Dodaj usÅ‚ugÄ™" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Modyfikuj usÅ‚ugÄ™" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "UsuÅ„ usÅ‚ugÄ™" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Wczytaj domyÅ›lne ustawienia usÅ‚ugi" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Można dodać dodatkowe porty lub zakresy portów, które majÄ… być dostÄ™pne dla " "wszystkich komputerów i sieci." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Modyfikuj wpis" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "UsuÅ„ wpis" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Można dodać dodatkowe porty lub zakresy portów źródÅ‚owych, które majÄ… być " "dostÄ™pne dla wszystkich komputerów i sieci." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Port źródÅ‚owy" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "ModuÅ‚y pomocnicze filtra sieci sÄ… wymagane przez niektóre usÅ‚ugi." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "ModuÅ‚y" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "JeÅ›li podano adresy docelowe, to wpis usÅ‚ugi zostanie ograniczony do adresu " "docelowego i typu. JeÅ›li oba wpisy sÄ… puste, to nie ma ograniczenia." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "UsÅ‚ugi mogÄ… być zmieniane tylko w widoku konfiguracji trwaÅ‚ej. Konfiguracja " "usÅ‚ug w czasie uruchamiania jest staÅ‚a." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Zestaw adresów IP może być używany do tworzenia biaÅ‚ych i czarnych list, " "i może przechowywać na przykÅ‚ad adresy IP, numery portów i adresy MAC." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "Zestaw adresów IP" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Dodaj zestaw adresów IP" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Modyfikuj zestaw adresów IP" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "UsuÅ„ zestaw adresów IP" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Wczytaj domyÅ›lny zestaw adresów IP" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Wpisy zestawu adresów IP. BÄ™dÄ… widoczne tylko wpisy zestawów nieużywajÄ…cych " "opcji czasu ograniczenia, a także tylko wpisy dodane przez usÅ‚ugÄ™ firewalld. " "Wpisy dodane bezpoÅ›rednio za pomocÄ… polecenia ipset nie bÄ™dÄ… widoczne." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Ten zestaw adresów IP używa opcji czasu oczekiwania, wiÄ™c wpisy nie sÄ… " "widoczne w tym miejscu. Powinny one być ustawiane bezpoÅ›rednio za pomocÄ… " "polecenia ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Dodaj" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Wpisy" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "Zestawy adresów IP mogÄ… być tworzone i usuwane tylko w widoku konfiguracji " "trwaÅ‚ej." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "icmptype dla firewalld dostarcza informacje o typach ICMP (Internet Control " "Message Protocol) usÅ‚udze firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Dodaj typ ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Modyfikuj typ ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "UsuÅ„ typ ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Wczytaj domyÅ›lne ustawienia typu ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "OkreÅ›la, czy ten typ ICMP jest dostÄ™pny dla IPv4 lub IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Typy ICMP mogÄ… być zmieniane tylko w widoku konfiguracji trwaÅ‚ej. " "Konfiguracja typów ICMP w czasie uruchamiania jest staÅ‚a." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "ModuÅ‚ pomocniczy Å›ledzenia połączenia pomaga w dziaÅ‚aniu protokołów " "używajÄ…cych innych rodzajów sygnalizowania i przesyÅ‚ania danych. PrzesyÅ‚anie " "danych używa portów niepowiÄ…zanych z sygnalizowanym połączeniem, wiÄ™c bez " "moduÅ‚u pomocniczego jest blokowane przez zaporÄ™ sieciowÄ…." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "ProszÄ™ okreÅ›lić porty lub zakresy portów monitorowane przez moduÅ‚ pomocniczy." "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "BezpoÅ›rednia konfiguracja umożliwia bardziej bezpoÅ›redni dostÄ™p do zapory " "sieciowej. Te opcje wymagajÄ… od użytkownika znajomoÅ›ci podstawowych pojęć " "iptables, tzn. tablice, Å‚aÅ„cuchy, polecenia, parametry i cele. BezpoÅ›rednia " "konfiguracja powinna być używana tylko w ostatecznoÅ›ci, kiedy nie można użyć " "innych funkcji firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Parametr ipv każdej opcji musi wynosić ipv4, ipv6 lub eb. Parametr ipv4 " "bÄ™dzie używany dla iptables, ipv6 dla ip6tables, a eb dla mostków " "ethernetowych (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Dodatkowe Å‚aÅ„cuchy używane z reguÅ‚ami." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Dodaj Å‚aÅ„cuch" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Modyfikuj Å‚aÅ„cuch" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "UsuÅ„ Å‚aÅ„cuch" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ÅaÅ„cuchy" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "Dodaje regułę z parametrami do Å‚aÅ„cucha w tablicy z priorytetem." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Priorytet jest używany do porzÄ…dkowania reguÅ‚. Priorytet 0 oznacza dodanie " "reguÅ‚y na górze Å‚aÅ„cucha, reguÅ‚y o wyższym priorytecie bÄ™dÄ… dodawane niżej. " "ReguÅ‚y o tym samym priorytecie sÄ… na tym samym poziomie, a kolejność tych " "reguÅ‚ nie jest staÅ‚a i może ulec zmianie. Aby upewnić siÄ™, że reguÅ‚a " "zostanie dodana po innej, należy użyć niskiego priorytetu dla pierwszej, " "a wyższego dla drugiej." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Dodaj regułę" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Modyfikuj regułę" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "UsuÅ„ regułę" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "ReguÅ‚y" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ReguÅ‚y przejÅ›cia sÄ… bezpoÅ›rednio przekazywane do zapory sieciowej i nie sÄ… " "umieszczane w specjalnych Å‚aÅ„cuchach. Wszystkie opcje iptables, ip6tables " "i ebtables mogÄ… być używane." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "ProszÄ™ zachować ostrożność przy reguÅ‚ach przejÅ›cia, aby nie uszkodzić zapory " "sieciowej." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Dodaj przejÅ›cie" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Modyfikuj przejÅ›cie" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "UsuÅ„ przejÅ›cie" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "PrzejÅ›cie" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Funkcja blokady jest lekkÄ… wersjÄ… polityk użytkownika i programów dla usÅ‚ugi " "firewalld. Ogranicza ona zmiany do zapory sieciowej. BiaÅ‚a lista blokady " "może zawierać polecenia, konteksty, użytkowników i ich identyfikatory." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Kontekst to kontekst zabezpieczeÅ„ (SELinux) uruchomionego programu lub " "usÅ‚ugi. Należy użyć polecenia ps -e --context, aby uzyskać kontekst " "uruchomionego programu." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Dodaj kontekst" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Modyfikuj kontekst" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "UsuÅ„ kontekst" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Konteksty" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "JeÅ›li wpis polecenia na biaÅ‚ej liÅ›cie koÅ„czy siÄ™ gwiazdkÄ… „*â€, to wszystkie " "wiersze poleceÅ„ zaczynajÄ…ce siÄ™ od danego polecenia bÄ™dÄ… pasowaÅ‚y. JeÅ›li „*†" "nie zostanie użyte, to polecenia bezwzglÄ™dne muszÄ… siÄ™ zgadzać." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Dodaj wiersz poleceÅ„" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Modyfikuj wiersz poleceÅ„" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "UsuÅ„ wiersz poleceÅ„" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Wiersze poleceÅ„" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Nazwy użytkowników." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Dodaj nazwÄ™ użytkownika" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Modyfikuj nazwÄ™ użytkownika" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "UsuÅ„ nazwÄ™ użytkownika" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Nazwy użytkowników" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Identyfikatory użytkowników." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Dodaj identyfikator użytkownika" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Modyfikuj identyfikator użytkownika" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "UsuÅ„ identyfikator użytkownika" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Identyfikatory użytkowników" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Bieżąca domyÅ›lna strefa systemu." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Dziennik odmów:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Tryb paniki:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatyczne moduÅ‚y pomocnicze:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Blokada:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "DomyÅ›lna strefa:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interfejs" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Podstawowe ustawienia zestawu adresów IP" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "ProszÄ™ skonfigurować podstawowe ustawienia zestawu adresów IP:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Typ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Czas oczekiwania:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Rozmiar sumy kontrolnej:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maksymalna liczba elementów:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Czas oczekiwania w sekundach" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "PoczÄ…tkowy rozmiar sumy kontrolnej, domyÅ›lnie 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maksymalna liczba elementów, domyÅ›lnie 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "ProszÄ™ wybrać zestaw adresów IP:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Dziennik odmów" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "ProszÄ™ wybrać wartoÅ›ci dziennika odmów:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Åšlad" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "ProszÄ™ podać Å›lad z opcjonalnÄ… maskÄ…." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Pola Å›ladu i maski sÄ… 32-bitowymi szerokimi liczbami bez znaku." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Åšlad:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maska:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "ProszÄ™ wybrać moduÅ‚ pomocniczy „conntrack†filtra sieci:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Wybierz -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Inny moduÅ‚:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port i protokół" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ProszÄ™ podać port i protokół." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ReguÅ‚a bezpoÅ›rednia" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "ProszÄ™ wybrać ipv i tablicÄ™, priorytet Å‚aÅ„cucha i podać parametry." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorytet:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ProszÄ™ podać protokół." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Inny protokół:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "ZÅ‚ożona reguÅ‚a" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ProszÄ™ podać zÅ‚ożonÄ… regułę." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Aby dodać komputer lub sieć do biaÅ‚ej lub czarnej listy, należy dezaktywować " "element." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "ŹródÅ‚o:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Cel:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Dziennik:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audyt:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 i IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "odwrócone" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Aby to włączyć, dziaÅ‚anie musi wynosić „rejectâ€, a rodzina „ipv4†lub „ipv6†" "(nie oba)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "z typem:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Z ograniczeniem:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Przedrostek:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Poziom:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "DziaÅ‚anie:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Podstawowe ustawienia usÅ‚ug" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "ProszÄ™ skonfigurować podstawowe ustawienia usÅ‚ug:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ProszÄ™ wybrać usÅ‚ugÄ™." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Identyfikator użytkownika" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ProszÄ™ podać identyfikator użytkownika." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nazwa użytkownika" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "ProszÄ™ podać nazwÄ™ użytkownika." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etykieta" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Podstawowe ustawienia strefy" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "ProszÄ™ skonfigurować podstawowe ustawienia strefy:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "DomyÅ›lny cel" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Cel:" firewalld-0.4.4.6/po/pt.po000066400000000000000000001462271320241217000152410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Pedro Marques Daniel , 2013 # Pedro Marques Daniel , 2013 # Rui Gouveia , 2010 # Miguel Sousa , 2015. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-10-28 10:12-0400\n" "Last-Translator: Miguel Sousa \n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/firewalld/" "language/pt/)\n" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Mini-aplicativo Firewall" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuração da Firewall" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Selecione zona para interface '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona por defeito" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Selecione zona para conexão '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selecione zona para fonte '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Sobre %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Activar Notificações" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editar Opções da Firewall..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Modificar Zonas de Conexões..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloquear todo o tráfego da rede" #: ../src/firewall-applet:492 msgid "About" msgstr "Sobre" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Conexões" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Fontes" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Falhou autorização." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Nome inválido" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "O nome já existe" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zona: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Sem conexão ao daemon da firewall" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Todo o tráfego da rede está bloqueado." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zona por defeito: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zona '{zone}' ativa para conexão '{connection}' na interface '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zona '{zone}' ativa para interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zona '{zone}' ativa para fonte {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Sem Zonas Ativas." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Estabelecida conexão à FirewallD." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Perdida conexão à FirewallD." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD foi recarregada." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Zona por defeito modificada para '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "O tráfico de rede não se encontra mais bloqueado." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ativado" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desativado" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} para conexão '{connection}' na " "interface '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zona '{zone}' {activated_deactivated} para interface '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zona '%s' ativada para interface '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zona '{zone}' {activated_deactivated} para fonte '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zona '%s' ativada para fonte '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Aplicadas modificações" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Usado pela conexão de rede '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "ativado" #: ../src/firewall-config:97 msgid "disabled" msgstr "desativado" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Falhou o carregamento de ícones." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Runtime" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanente" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Serviço" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Porta" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocolo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Para Porta" #: ../src/firewall-config:562 msgid "To Address" msgstr "Para Endereço:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipo Icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "Família" #: ../src/firewall-config:819 msgid "Action" msgstr "Ação" #: ../src/firewall-config:821 msgid "Element" msgstr "Elemento" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Aviso" #: ../src/firewall-config:1612 msgid "Error" msgstr "Erro" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "aceite" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "rejeitar" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "cair" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limite" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "serviço" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "porta" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocolo" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "mascarada" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "nível" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "sim" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona '%s': Serviço '%s' indisponível." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Remove" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignora" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona '%s': ICMP tipo '%s' indisponível." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Zona construida internamente, renomear não suportado." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "segundo" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuto" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hora" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dia" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergência" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alerta" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "crítico" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "erro" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "aviso" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "nota" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "debug" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Forwarding para outro sistema só é útil se a interface estiver mascarada.\n" "Quer mascarar esta zona?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Serviço pré-definido, não é possível renomear." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "icmp pré-definido, não é possível renomear." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Selecione zona para fonte %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Endereço" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Por favor insira a linha de comando" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Por favor insira o contexto" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Por favor selecione a zona por defeito da lista abaixo." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Corrente Direta" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Por favor selecione tabela e ipv e insira nome da corrente." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Corrente:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "segurança" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabela:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Regra de passagem direta" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Por favor selecione ipv e insira args." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Args:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Reencaminhamento de Porta" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Por favor, seleccione as opções de origem e destino de acordo com as suas " "necessidades." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Porta / Intervalo de portas:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Endereço IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocolo:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Fonte" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destino" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Se ativar reencaminhamento local, tem de especificar uma porta. Esta porta " "tem de ser diferente da porta de origem." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Reencaminhamento local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Reencaminhar para outra porta" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Entradas a negrito são obrigatórias, todas as outras são opcionais." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nome:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versão:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Curta:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descrição:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Família:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Definições Base de Tipo ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Por favor configure definições base de tipo ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipo ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Por favor selecione um tipo ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Adicionar Entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Ficheiro" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opções" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Recarregar FireweallD" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Recarrega as regras da firewall. A atual configuração permanent vai tornar-" "se a configuração runtime. i.e. todas as mudanças nas regras na configuração " "runtime são perdidas com o recarregar se não estiverem também na " "configuração permanent." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Modifica a zona a qual uma conexão de rede pertence." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Modifica Zona por Defeito" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Modifica zona por defeito para conexões e interfaces." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "O modo de pânico significa que todos os pacotes de entrada e saída são " "caídos." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Modo de Pânico" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Lockdown fecha a configuração da firewall para que apenas as aplicações na " "lockdown whitelist possam modificá-la." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Lockdown" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Fazer a configuração runtime permanent" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Runtime para Permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Ver" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Tipos ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configuração Direta" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Lockdown Whitelist" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Ajuda" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuração:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configuração visível atual. Configuração runtime é a configuração atualmente " "ativa. Configuração permanent ficará ativa após reinicio de serviço ou " "sistema." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Uma zona firewall define o nível de confiança nas conexões de rede, " "interfaces e endereços de fontes no limite da zona. A zona combina serviços, " "postas, protocolos, mascaras, rencaminhamento de porta/pacote, filtros icmp " "e regras ricas. A zona pode ser limitada a interfaces e endereços de fontes." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Adicionar Zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Editar Zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Remover Zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Carrega Zona por Defeito" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Aqui pode definir quais os serviços são confiados na zona. Serviços " "confiados são acessiveis a todos os hosts e redes que possam alcançar a " "maquina a partir de conexões, interfaces e fontes no limite desta zona." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Serviços" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Adiciona portas ou intervalode portas, que necessitem estar disponiveis para " "todos os hosts ou redes que podem conectar-se à maquina." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Adiciona Porta" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edita Porta" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Remove Porta" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portas" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading permite configurar uma máquina ou router que liga a sua rede " "local à Internet. A sua rede local não será visível e as máquinas aparecem " "na Internet com um único endereço. Masquerading é válido apenas em IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zona Mascarada" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Se ativar as omascarar, o reencaminhamento de IP será ativado para o seu " "IPv4" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Mascarar" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Adicione entradas ao reencaminhamento de portas de uma porta para outra no " "sistema local ou do sistema local para outro sistema. O reencaminhamento " "para outro sistema só é útil se o interface estiver configurado como " "mascarado. O reencaminhamento de portas só é suportado em IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Adiciona Porta de Reencaminhamento" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Edita Porta de Reencaminhamento" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Remove Porta de Reencaminhamento" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "O protocolo ICMP (Internet Control Message Protocol) é utilizado " "principalmente para enviar mensagens de erro entre computadores em rede, mas " "adicionalmente para mensagens informativas como pedidos e respostas de ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marque os tipos ICMP, na lista, que devem ser rejeitados. Todos os outros " "tipos ICMP serão permitidos na firewall. Por omissão não existem limitações." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtro ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Aqui pode definir regras de língua ricas para a zona." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Adiciona Regra Rica" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Edita Regra Rica" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Remove Regra Rica" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Regras Ricas" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Adiciona entradas para vincular interfaces à zona. Se o interface vai se " "utilizado por uma conexão, a zona vai ser definida como a zona especificada " "na conexão." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Adiciona Interface" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Edita Interface" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Remove Interface" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Adiciona Fonte" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Edita Fonte" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Remove Fonte" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zonas" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Um serviço firewall é uma combinação de portas, protocolos, módulos e " "endereços de destino." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Adicionar Serviço" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editar Serviço" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Remover Serviço" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Carrega Padrão de Serviço" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editar Entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Remover entrada" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Módulos" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Se especificar endereços de destino, a entrada de serviço vai ser limitada " "ao endereço e tipo de destino. Se ambas as entradas estiverem vazias, não " "existe limite." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Serviços apenas podem ser modificados ca vista de configuração permant. A " "configuração runtime de serviços é fixa." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Um icmtype firewalld dá a informação para um tipo Internet Control Message " "Protocol (ICMP) para firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Adiciona Tipo ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Edita Tipo ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Remove Tipo ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Carrega Tipo ICMP por Defeito" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Especifique se este Tipo ICMP está disponível para IPv4 e/ou IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Tipos ICMP apenas podem ser modificados na visão de configuração permanent. " "A configuração runtime de Tipos ICMP é fixa." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "A configuração direta dá um acesso mais direto à firewall. Estas opções " "requerem que o utilizador conheça conceitos básicos de iptables, i.e., " "tables, correntes, comandos, parametros e alvos. Configuração direta deverá " "apenas ser utilizada como último recurso quando não é possivel utilizar " "outras funcionalidades da firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "O argumento ipv de cada opção tem de ser ipv4 ou ipv6 ou eb. Com ipv4 será " "para iptables, com ipv6 e com eb para pontes ethernet (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Correntes adicionais para utilizar com regras." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Adiciona Corrente" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Edita Corrente" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Remove Corrente" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Correntes" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Adiciona uma regra com argumentos args a uma corrente numa tabela com uma " "prioridade." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "A prioridade é utilizada para ordenar regras. Prioridade 0 significa que " "adiciona a regra no topo da corrente, com uma prioridade mais elevada a " "regra será adicionada mais abaixo. Regras com a mesma prioridade estão ao " "mesmo nível e a ordem destas regras não está fixa e pode mudar. Se quiser " "ter a certeza que uma regra é inserida após outra regra, utilize uma " "prioridade mais baixa para a primeira e uma mais alta para a seguinte." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Adiciona Regra" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Edita Regra" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Remove Regra" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regras" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "A regras de passthrough são passadas diretamente para a firewall e não " "adicionadas em correntes especiais. Podem ser utilizadas todas as opções das " "iptables, ip6tables e ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Por favor tenha cuidado com regras passthrough para uqe não danifiquem a " "firewall." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Adiciona Passthrough" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Edita Passthrough" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Remove Passthrough" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passthrough" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "A funcionalidade lockdown é uma versão leve de políticas de utilizador e " "aplicações da firewalld. Limita modificações à firewall. A lockdown " "whitelist pode conter correntes, comandos, contextos, utilizadores e ids de " "utilizador." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Adiciona Contexto" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Edita Contexto" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Remove Contexto" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contextos" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Se uma entrada de comando numa whitelist acaba com um asterisco '*', então " "todas as linhas de comando iniciadas com o comando combinam. Se o '*' não " "estiver aí o comando absoluto inclusive argumentos devem ser iguais." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Adiciona Comando de Linha" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Edita Comando de Linha" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Remove Comando de Linha" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Comandos de Linha" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Nomes de Utilizador" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Adiciona Nome de Utilizador" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Edita Nome de Utilizador" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Remove Nome de Utilizador" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Nomes de Utilizador" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "IDs de utilizador" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Adiciona ID de Utilizador" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Edita ID de Utilizador" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Remove ID de Utilizador" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "IDs de Utilizador" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Atual zona por defeito do sistema." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Modo de Pânico:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Fechar tudo:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona por Defeito:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Porta e Protocolo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Por favor insira a porta e o protocolo." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Regra Direta" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Por favor selecione ipv e tabela, prioridade de corrente e insira os args." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioridade:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Por favor insira um protocolo." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Outro Protocolo:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Regra Rica" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Por favor insira uma regra rica." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "Para host ou rede white ou blacklist desativa o elemento." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Origem:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destino:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audita:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 e ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "invertido" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Para ativar esta Ação tem de ser 'reject' e da Familia 'ipv4' ou 'ipv6' (não " "ambos)" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "com Tipo:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Com limite:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefixo:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Nível:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Elemento:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Acção:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Definições de Base de Serviço" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Por favor configure as definições do serviço de base:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Por favor selecione um serviço." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID Utilizador" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Por favor insira o id de utilizador." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nome de utilizador" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Por favor insira um nome de utilizador." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Definições Zona Base" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Por favor configure definições da zona base:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Alvo por Defeito" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Alvo:" firewalld-0.4.4.6/po/pt_BR.po000066400000000000000000001642321320241217000156200ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # ataliba , 2013 # ataliba , 2013 # Carlos Adean , 2013 # Cleiton Lima , 2013 # Cleiton Lima , 2013 # Daniel Brooke Peig , 2004 # Daniel Lara , 2013 # Daniel Lara , 2013 # David Barzilay , 2003-2004 # David Reis Jr , 2004-2005 # diegobz1 , 2006 # diegobz1 , 2006 # Fabio Viero , 2005 # Glaucia Freitas , 2010 # Glaucia Freitas , 2010,2014 # Igor Pires Soares , 2006-2009 # Marcelo Barbosa , 2013 # Marina Vieira , 2012 # Ramilton Costa Gomes Junior , 2013 # Rodrigo Padula de Oliveira , 2005-2006 # Taylon Silmer , 2010 # Valnir Ferreira Jr. , 2006-2007 # Daniel Lara , 2016. #zanata # Frederico Henrique Gonçalves Lima , 2017. #zanata # Mateus de Melo Santos , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-06-09 04:29-0400\n" "Last-Translator: Mateus de Melo Santos \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "firewalld/language/pt_BR/)\n" "Language: pt-BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Miniaplicativo do Firewall" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Configuração do Firewall" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Selecionar zona para interface '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona Padrão" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Selecione zona para conexão '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Falha ao definir o fuso {zone} para conexão{connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selecionar zona para fonte '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Configurar Zonas para Levantar/Abaixar Escudos" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Aqui você pode selecionar as zonas utilizadas para Levantar os Escudos e " "Abaixar os Escudos." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Esse recurso é útil para pessoal que utilizam a zona padrão a maior parte do " "tempo. Para usuários que mudam a zona de conexão, ele pode ter uso limitado." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Levantar Escudos da Zona:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Restaurar para o padrão " #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Abaixar Escudos da Zona:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Sobre %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autores" #: ../src/firewall-applet:396 msgid "License" msgstr "Licença" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Levantar Escudos" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Habilitar Notificações" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Editar Configurações de Firewall..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Alterar as Zonas das Conexões..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Configurar Zonas para Levantar/Baixar Escudos..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bloquear todo o tráfego de rede" #: ../src/firewall-applet:492 msgid "About" msgstr "Sobre " #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Conexões" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Interfaces" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Fontes" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Falha de autorização." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Nome inválido" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Nome já existe" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zona: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Zona Padrão: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Falha ao obter conexões de NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr " NetworkManager sem importações disponíveis" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Sem conexão com o daemon do Firewall." #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Todo o tráfego de rede está bloqueado" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Zona Padrão: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona padrão '{default_zone}' ativo para conexão '{connection}' na interface " "'{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zona '{zone}' ativada para conexão '{connection}' na interface '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zona '{zone}' ativada para interface '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zona '{zone}' ativa para a fonte {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Não há Zonas Ativas" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Conexão com FirewallD estabelecida." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Conexão com FirewallD perdida." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "O FirewallD foi recarregado" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Zona padrão alterada para '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "O tráfego de rede não está mais sendo bloqueado" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "ativado" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "desativado" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Zona padrão '{default_zone}' {activated_deactivated} para a conexão " "'{connection}' na interface '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} para conexão '{connection}' na " "interface '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" "Zona '{zone}' {activated_deactivated} ativada para interface '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zona '%s' ativada para interface '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zona '{zone}' {activated_deactivated} para fonte '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zona '%s' ativada para a fonte '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Conexão estabelecida com o firewalld." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Tentando conectar ao firewalld, aguardando..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Alterações aplicadas." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Usado por conexão de rede '%s' " #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Zona padrão utilizada pela conexão de rede '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "ativado " #: ../src/firewall-config:97 msgid "disabled" msgstr "desabilitado" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Falha ao carregar ícones" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Tempo de Execução" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanente" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Serviço" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Porta" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocolo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Para a porta" #: ../src/firewall-config:562 msgid "To Address" msgstr "Para o endereço" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Vinculações" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Entrada" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Tipo icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "Família" #: ../src/firewall-config:819 msgid "Action" msgstr "Ação" #: ../src/firewall-config:821 msgid "Element" msgstr "Elemento" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "log" #: ../src/firewall-config:829 msgid "Audit" msgstr "Auditoria" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Aviso" #: ../src/firewall-config:1612 msgid "Error" msgstr "Erro" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "aceitar " #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "rejeitar " #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "descer" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "marcação " #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limite" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "serviço" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "porta" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protocolo" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "Mascaramento" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "porta-origem" #: ../src/firewall-config:2071 msgid "level" msgstr "nível" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "sim" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zona" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Zona Padrão: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zona: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zona '%s': Serviço '%s' não está disponível." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Remover" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorar" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zona '%s': tipo de ICMP '%s' não está disponível." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Zona embutida, renomeação não é suportada." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "segundos " #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuto" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hora" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dia" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergência " #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alerta " #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "critical " #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "erro" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "aviso" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "notificação " #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informação " #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "depurar" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "O encaminhamento para outro sistema só é útil se a interface estiver " "mascarada. âŽ\n" "Você deseja marcarar esta zona?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Serviço embutido, renomeação não é suportada." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" "Por favor, insira um endereço ipv4 com o formulário de endereço [/mask]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "A máscara pode ser uma máscara de rede ou um número. " #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" "Por favor, insira um endereço ipv6 com o formulário de endereço [/mask]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "A máscara é um número. " #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" "Por favor, insira um endereço ipv4 ou ipv6 com o formulário de endereços [/" "mask]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "A máscara pode ser uma máscara de rede ou um número para ipv4.\n" "A máscara é um número para ipv6. " #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Ipset embutido, renomeação não é suportada. " #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Por favor selecione um arquivo" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Arquivo Texto " #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Todos os arquivos" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Tudo" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Ajuda embutida, renomeação não é suportada" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "icmp embutido, renomeação não é suportada." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Falha ao ler o arquivo '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Selecione zona de fonte '%s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Endereço" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Assistentes Automáticos" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Por favor, selecione o valor dos assistentes automáticos:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Linha de comando" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Por favor insira a linha de comando." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Contexto" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Por favor insira o contexto." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Por favor seleccione zona padrão na lista abaixo." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Corrente Direta" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Por favor selecione ipv e tabela e digite o nome da corrente." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Corrente:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "segurança" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabela:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Regra Direta de Repasse" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Por favor selecione ipv e entre com os argumentos." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Argumentos:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Encaminhamento de portas" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Por favor, selecione as opções de origem e destino de acordo com as suas " "necessidades." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Porta / Intervalo de portas:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Endereço IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protocolo:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Origem" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destino" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Se você habilitar o encaminhamento local, terá que especificar uma porta. " "Essa porta tem que ser diferente da porta de origem." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Encaminhamento local" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Encaminhar para outra porta" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Configurações do Assistente Base" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Por favor, faça as configurações do assistente base:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Entradas em negrito são obrigatórias, todas as outras são opcionais." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Nome:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Versão:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Abreviação:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Descrição:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Família" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Módulo:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Assistente" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Por favor, selecione um assistente:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Configuração dos tipos de ICMP base" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Por favor configure os tipos de ICMP base:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Tipo de ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Por favor, selecione um tipo de ICMP " #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Adicionar entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Adicionar Entradas do Arquivo" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Remover Entrada Selecionada" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Remover Todas as Entradas" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Remover Entradas do Arquivo" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Arquivo" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Opções" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Recarregar Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Recarrega as regras do firewall. A configuração permanente atual se tornará " "uma configuração de tempo de execução nova, ou seja, as alterações aplicadas " "somente à configuração de tempo de execução feitas até a recarga são " "perdidas, caso não estejam na configuração permanente também." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Altera a zona que uma conexão de rede pertence." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Mudar Zona Padrão" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Altera a zona padrão para conexão ou interface." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Modificação do log negada" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Modificação do valor do log negada" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Configurar Atribuição Automática de Ajuda" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Configurar a definição de Atribuição Automática de Ajuda" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "O Modo Pânico significa que todos os pacotes de entrada e saída são " "ignorados." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Modo de Pânico" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "A configuração de bloqueio permite que a configuração do firewall seja " "alterada apenas pelos aplicativos na lista de permissões de bloqueio." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Bloqueio" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Torna permanente a configuracao de tempo de execução" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Tempo de Execução Para Permanente" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Visão" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Tipos de ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Assistentes" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Configuração Direta" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Bloquear Lista de Permissões" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Vinculações Ativas" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Ajuda" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Mudar zona de vinculação" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Ocultar vinculações ativas de conexões em tempo de execução, interfaces e " "origens para zonas" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Exibir vinculações ativas de conexões em tempo de execução, interfaces e " "origens para zonas" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Configuração:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Configuração atualmente visível. A configuração de tempo de execução é a " "atual configuração ativa. A configuração permanente será ativada após o " "serviço ou o sistema ser recarregado ou reiniciado. " #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "A zona firewalld define o nível de confiança para as conexões de rede, " "interfaces e endereços de origem associados à zona. A zona combina serviços, " "portas, protocolos, mascaramento, encaminhamento de pacote/porta, filtros " "ICMP e regras valiosas. A zona pode estar associada a interfaces e endereços " "de origem." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Adicionar Zona" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Editar Zona" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Remover Zona" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Carregar padrões da zona" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Aqui você pode definir quais serviços são confiáveis dentro da zona. Os " "serviços confiáveis são acessíveis a partir de quaisquer equipamentos e " "redes que podem chegar até a máquina a partir de conexões, interfaces e " "origens associadas a esta zona." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Serviços" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Incluir portas adicionais ou intervalos de portas que precisam estar " "acessíveis a todos os hosts ou redes que podem conectar-se à máquina." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Adicionar Porta" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Editar Zona" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Remover Zona" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portas" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Adicionar protocolos que precisam estar acessíveis para todos os hosts ou " "redes. " #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Adicionar Protocolo" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Editar Protocolo" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Remover Protocolo" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protocolos" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Incluir portas de origem adicionais ou intervalos de portas que precisam " "estar acessíveis a todos os hosts ou redes que podem conectar-se à máquina." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Portas de Origem" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "O uso de mascaramento permite que você configure um host ou roteador que " "conecta a sua rede local à internet. A sua rede local não estará visível e " "os hosts aparecerão como um único endereço na internet. O uso de " "mascaramento é somente para IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Zona de mascaramento" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Se você habilitar o uso de mascaramento, o encaminhamento IP também será " "habilitado para as suas redes IPv4." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Mascaramento" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Adicione entradas para o encaminhamento de portas tanto de uma porta para " "outra no sistema local, quanto do sistema local para outro sistema. O " "encaminhamento para outro sistema só é útil se a interface estiver mascarada." " O encaminhamento de portas é somente para IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Adicionar Redirecionamento de Porta" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Editar Redirecionamento de Porta" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Remover Redirecionamento de Porta" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "O Protocolo ICMP (Internet Control Message Protocol) é usado para enviar " "mensagens de erro entre computadores em rede, assim como para enviar " "mensagens informacionais, como solicitações e respostas de ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Marque na lista os tipos de ICMP que devem ser rejeitados. Todos os outros " "tipos serão permitidos passar pelo firewall. O padrão é não haver limitações." "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Se o Filtro Inverter está habilitado, entradas marcadas ICPM são aceitas e " "as outras são rejeitadas. Em uma zona com o alvo DROP, elas serão rejeitadas." "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Inverter Filtro" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filtro ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Aqui você pode obter regras de linguagem valiosa para a zona." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Adicionar Regra Valiosa" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Editar Regra Valiosa" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Remover Regra Valiosa" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Regra Valiosa" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Adicione entradas para associar interfaces à zona. Se a interface for usada " "por uma conexão, a zona será definida como especificado na conexão." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Adicionar interface" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Editar interface" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Remover interface" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Adicione entradas para associar endereços de origem ou áreas à zona. Você " "pode também fazer a associação a um endereço de origem MAC, mas com " "limitações. O encaminhamento de portas e a aplicação de mascaramento não " "funcionarão para as associações de origem MAC. " #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Adicionar Origem" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Editar Origem" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Remover Origem" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zonas" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Um serviço firewalld é uma combinação de portas, protocolos, módulos e " "endereços de destino. " #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Adicionar Serviço" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Editar Serviço" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Remover Serviço" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Carregar Padrões do Serviço" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Incluir portas adicionais ou intervalos de portas que precisam estar " "acessíveis a todos os hosts ou redes." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editar entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Remover entrada" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Incluir portas de origem adicionais ou intervalos de portas que precisam " "estar acessíveis a todos os hosts ou redes." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Porta de Origem" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" "Módulos assistentes do Netfilter são necessários para alguns serviços." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Módulos" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Se você especificar endereços de destino, a entrada do serviço será limitada " "ao tipo e ao endereço de destino. Se ambas as entradas estiverem vazias, não " "existe limitação." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Os serviços só podem ser alterados na visualização da configuração " "permanente. A configuração de tempo de execução dos serviços é fixa." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "Um IPSet pode ser usado para criar listas brancas ou negras e pode " "armazenar, por exemplo, endereços de IP, números de portas ou endereços MAC." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Adicionar IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Editar IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Remover IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Carregar IPSets padrões" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Entradas de IPSets. Você só será capaz de ver as entradas de ipsets que não " "estão utilizando a opção de tempo limite, além das entradas que foram " "adicionadas pelo firewalld. Entradas que foram diretamente adicionadas com o " "comando ipset não estarão listadas aqui. " #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Este IPSet utiliza a opção de limite de tempo, portanto nenhuma entrada é " "visível aqui. As entradas devem ser atendidas diretamente pelo comando ipset." " " #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Adicionar" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Entradas" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSets podem somente ser criados ou removidos na visualização de " "configurações permanentes. " #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Um firewalld tipo icmp fornece as informações para um tipo de Internet " "Control Message Protocol (ICMP) para o firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Adicionar tipo ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Editar tipo ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Remover Tipo ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Carregando os tipos de ICMP padrão. " #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Especificar se este tipo ICMP está disponível para IPv4 e/ou IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Tipos de ICMP só pode ser alterado na visão de configuração permanente. A " "configuração do tempo de execução de tipos de ICMP é fixo." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Um assistente de rastreio de conexão está auxiliando a fazer com que os " "protocolos que estão usando diferentes fluxos para sinalização e " "transferência de dados funcionem. As transferências de dados estão usando " "portas que não estão relacionadas à conexão de sinalização e, portanto, são " "bloqueadas pelo firewall sem o assistente." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Definir portas ou intervalo de portas; que são monitoradas pelo assistente." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "A configuração direta oferece um acesso mais direto ao firewall. Essas " "opções requerem que o usuário saiba os conceitos básicos do iptables, ou " "seja, tabelas, correntes, comandos, parâmetros e alvos. Configuração direta " "deve ser usado apenas como último recurso, quando não é possível usar outros " "recursos firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "O argumento IPV de cada opção tem de ser IPv4 ou IPv6 ou eb. Com IPv4 será " "para iptables, com ipv6 para ip6tables e com eb para bridges ethernet " "(ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Cadeias adicionais para uso com regras" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Adicione Corrente" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Edite Corrente" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Remova Corrente" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Correntes" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Adicionar uma regra com o argumento args para uma cadeia em uma tabela com " "uma prioridade." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "A prioridade é usado para ordenar as regras. Prioridade 0 significa " "adicionar regra no topo da cadeia, com prioridade maior a regra será " "adicionada mais abaixo. Regras com a mesma prioridade estão no mesmo nível e " "a ordem destas regras não é fixo e pode mudar. Se você quiser ter certeza de " "que a regra será adicionada após outro, use uma prioridade baixa para o " "primeiro e maior para o seguinte." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Adicionar Regra" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Editar Regra" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Remover Regra" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regras" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "As regras de repasse são diretamente repassados ​​para o firewall e não são " "colocados em correntes especiais. Todos iptables, ip6tables e opções " "ebtables podem ser usados." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Por favor tenha cuidado com as regras de repasse para não danificar o " "firewall." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Adicionar Repasse" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Editar Repasse" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Remover Repasse" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Repasse" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "O recurso de bloqueio é uma versão light de políticas de usuário e " "aplicativo para firewalld. Limita alterações no firewall. O Bloqueio de " "whitelist pode conter comandos, contextos, usuários e IDs de usuário." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "O contexto é o contexto (SELinux) de segurança da execução de um aplicativo " "ou serviço. Para obter o contexto da execução de um aplicativo use ps -e " "--context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Adicionar Contexto" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Editar Contexto" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Remover Contexto" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Contextos" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Se uma entrada de comando na whitelist termina com um asterisco '*', então " "todas as linhas de comando começando com o comando irá corresponder. Se o " "'*' não há argumentos, inclusive o comando absoluto devem corresponder." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Adicionar Linha de Comando" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Editar Linha de Comando" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Remover Linha de Comando" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Linhas de comando" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Nomes de usuários." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Adicionar Nome de Usuário" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Editar Nome de Usuário" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Remover Nome de Usuário" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Nome de usuários" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Ids dos usuários." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Adicionar ID Usuário" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Editar ID Usuário" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Remover ID Usuário" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Ids dos usuários" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Zona padrão atual do sistema." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Log negado:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Modo de Pânico:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Assistentes Automáticos:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Bloqueio:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Zona Padrão:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Interface" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Configurações base de IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Por favor, configure ipset base:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Tipo:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Tempo limite: " #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Tamanho de Hash:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Valor de limite de tempo em segundos " #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Tamanho inicial de hash, padrão 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Número máximo de elementos, padrão 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Por favor, selecione um ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Log negado" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Por favor, escolha o valor de log negado: " #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Marcação " #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Por favor, insira uma marcação com uma máscara opcional. " #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "A marcação e os campos de máscara são ambos números de 32 bits de largura " "sem sinais. " #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Marcação:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Máscara:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Por favor, selecione um assistente netfilter conntrack:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Selecione -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Outro Módulo:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Porta e protocolo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Por favor entre com uma porta e protocolo." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Regra Direta" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Por favor selecione ipv e tabela, prioridade da cadeia e insira os " "argumentos." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioridade:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Por favor insira um protocolo." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Outro Protocolo:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Regra Valiosa" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Por favor insira uma regra valiosa." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Para o host ou rede de whitelisting ou blacklisting desativar o elemento" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Origem:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destino:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Log:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Auditoria:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 e IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inverso" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Para habilitar isto, o Action precisa estar definido como 'reject' e Family " "como 'ipv4' ou 'ipv6' (não como ambos)" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "com Tipo:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Com limite:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefixo:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Nível:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Elemento:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Ação" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Configurações do serviço base" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Por favor configure o serviço base:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Por favor selecione um serviço." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID Usuário" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Por favor insira o id do usuário." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Nome de usuário" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Por favor insira o nome do usuário." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "rótulo" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Configurações da Zona Base" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Por favor configure a zona base:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Alvo Padrão" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Alvo:" firewalld-0.4.4.6/po/ru.po000066400000000000000000002056251320241217000152420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Alexey Kostyuk , 2009 # Andrew Martynov , 2004-2006,2008 # andzaytsev , 2010 # andzaytsev , 2010 # Leonid Kanter , 2003 # Stanislav Hanzhin , 2012 # Yulia , 2007-2010 # Yulia , 2013-2014 # Игорь Горбунов , 2013 # yuliya , 2015. #zanata # yuliya , 2016. #zanata # Igor Gorbounov , 2017. #zanata # Thomas Woerner , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-04-15 05:10-0400\n" "Last-Translator: Igor Gorbounov \n" "Language-Team: Russian (http://www.transifex.com/projects/p/firewalld/" "language/ru/)\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Ðпплет межÑетевого Ñкрана" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "МежÑетевой Ñкран" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ÐаÑтройка межÑетевого Ñкрана" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "межÑетевой Ñкран;Ñеть;безопаÑноÑть;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Выберите зону Ð´Ð»Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñа «%s»" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Зона по умолчанию" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Выберите зону Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Â«%s»" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Ðе удалоÑÑŒ уÑтановить зону {zone} Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Выберите зону Ð´Ð»Ñ Ð¸Ñточника «%s»" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ÐаÑтроить зоны включениÑ/Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹â€¦" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "ЗдеÑÑŒ можно выбрать зоны, иÑпользуемые Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Эта возможноÑть в оÑновном подойдет Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹, иÑпользующих " "наÑтроенные по умолчанию зоны. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹, менÑющих зоны ÑоединениÑ, " "Ñто может иметь ограниченное практичеÑкое применение." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ÐžÑ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð·Ð¾Ð½Ð°:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "По умолчанию" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð·Ð¾Ð½Ð°:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "О %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Ðвторы" #: ../src/firewall-applet:396 msgid "License" msgstr "ЛицензиÑ" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Включить защиту" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Включить уведомлениÑ" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Изменить наÑтройки межÑетевого Ñкрана…" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Изменить зоны Ñоединений..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ÐаÑтроить зоны включениÑ/Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹â€¦" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Блокировать веÑÑŒ Ñетевой трафик" #: ../src/firewall-applet:492 msgid "About" msgstr "Инфо" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "СоединениÑ" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "ИнтерфейÑÑ‹" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "ИÑточники" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ÐедопуÑтимое имÑ" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Указанное Ð¸Ð¼Ñ ÑƒÐ¶Ðµ ÑущеÑтвует" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (зона {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Зона по умолчанию: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Ðе удалоÑÑŒ получить ÑпиÑок наÑтроенных подключений от NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Импорт из NetworkManager недоÑтупен" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ðет ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñо Ñлужбой межÑетевого Ñкрана" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "БлокируетÑÑ Ð²ÐµÑÑŒ Ñетевой трафик." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Зона по умолчанию: «%s»" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Зона по умолчанию '{default_zone}' активна Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ '{connection}' на " "интерфейÑе '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Зона '{zone}' активна Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ '{connection}' на интерфейÑе " "'{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Зона '{zone}' активна на интерфейÑе '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Зона '{zone}' включена Ð´Ð»Ñ Ð¸Ñточника {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Ðет активных зон." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Соединение Ñ FirewallD уÑтановлено." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Соединение Ñ FirewallD потерÑно." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD перезапущен." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Зона по умолчанию изменена на «%s»." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Сетевой трафик больше не блокируетÑÑ." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "активирована" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "деактивирована" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Зона по умолчанию '{default_zone}' {activated_deactivated} Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ " "'{connection}' на интерфейÑе '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Зона '{zone}' {activated_deactivated} Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ '{connection}' на " "интерфейÑе '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Зона '{zone}' {activated_deactivated} на интерфейÑе '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Зона «%s» активирована на интерфейÑе «%s»" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Зона '{zone}' {activated_deactivated} Ð´Ð»Ñ Ð¸Ñточника '{source}' " #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Зона «%s» включена Ð´Ð»Ñ Ð¸Ñточника «%s»" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Подключение к firewalld уÑтановлено." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Попытка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº firewalld. Подождите..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑены." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ИÑпользуетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ «%s»" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Зона по умолчанию, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ñетевым подключением «%s»" #: ../src/firewall-config:96 msgid "enabled" msgstr "включено" #: ../src/firewall-config:97 msgid "disabled" msgstr "отключено" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Ðе удалоÑÑŒ загрузить значки." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Рабочие" #: ../src/firewall-config:398 msgid "Permanent" msgstr "ПоÑтоÑннаÑ" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Служба" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Порт" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Протокол" #: ../src/firewall-config:560 msgid "To Port" msgstr "Ðа порт" #: ../src/firewall-config:562 msgid "To Address" msgstr "Ðа адреÑ" #: ../src/firewall-config:612 msgid "Bindings" msgstr "ПривÑзки" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "ЗапиÑÑŒ" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Тип ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "СемейÑтво протоколов" #: ../src/firewall-config:819 msgid "Action" msgstr "ДейÑтвие" #: ../src/firewall-config:821 msgid "Element" msgstr "Элемент" #: ../src/firewall-config:823 msgid "Src" msgstr "ИÑточник" #: ../src/firewall-config:825 msgid "Dest" msgstr "Получатель" #: ../src/firewall-config:827 msgid "log" msgstr "журнал" #: ../src/firewall-config:829 msgid "Audit" msgstr "Ðудит" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Предупреждение" #: ../src/firewall-config:1612 msgid "Error" msgstr "Ошибка" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "принÑть" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "отказать" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "отброÑить" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "отметить" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ограничить" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "Ñлужба" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "порт" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "протокол" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "маÑкировка" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "уровень" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "да" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Зона" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Зона по умолчанию: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Зона: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Зона «%s»: Ñлужба «%s» недоÑтупна." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Удалить зону" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "ПропуÑтить" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Зона «%s»: ICMP- тип «%s» недоÑтупен." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð·Ð¾Ð½Ð°, переименование не поддерживаетÑÑ." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "Ñек." #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "мин." #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "чаÑ" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "д." #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "Ñрочно" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "внимание" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "критично" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "ошибка" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "предупреждение" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "уведомление" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "инфо" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "отладка" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "блокирование icmp" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "порт переадреÑации" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ПереадреÑÐ°Ñ†Ð¸Ñ Ð² другую ÑиÑтему поможет только при маÑкировании интерфейÑа.\n" "ЗамаÑкировать Ñту зону?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ñлужба, переименование не поддерживаетÑÑ." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Введите Ð°Ð´Ñ€ÐµÑ IPv4 в формате «адреÑ[/маÑка]»." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "МаÑка может Ñодержать маÑку Ñети или чиÑловое предÑтавление." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Введите Ð°Ð´Ñ€ÐµÑ IPv6 в формате «адреÑ[/маÑка]»." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "МаÑка предÑтавлена чиÑловым значением." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Введите Ð°Ð´Ñ€ÐµÑ IPv4 или IPv6 в формате «адреÑ[/маÑка]»." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Ð’ IPv4 маÑка может Ñодержать маÑку подÑети или чиÑловое предÑтавление.\n" "Ð’ IPv6 маÑка Ñодержит чиÑловое предÑтавление." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Ð˜Ð¼Ñ Ð²Ñтроенного ipset не может быть изменено." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Выберите файл" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "ТекÑтовые файлы" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Ð’Ñе файлы" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Ð’Ñе" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Ð’Ñтроенный модуль поддержки, изменение имени не поддерживаетÑÑ." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Ð’Ñтроенный ICMP, переименование не поддерживаетÑÑ." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Ðе удалоÑÑŒ прочитать файл %s: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Выберите зону Ð´Ð»Ñ Ð¸Ñточника %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ÐдреÑ" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "ÐвтоматичеÑкие модули поддержки" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Выберите значение автоматичеÑких модулей поддержки:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Введите команду." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "КонтекÑÑ‚" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Введите контекÑÑ‚." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Выберите Ñтандартную зону." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ПрÑÐ¼Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Выберите IPV и таблицу, и введите Ð¸Ð¼Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¸." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Цепочка:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "безопаÑноÑть" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Таблица:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Правило прÑмой транÑлÑции" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Выберите IPV и введите аргументы." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Ðргументы:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Перенаправление портов" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Выберите параметры иÑточника и цели." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Порт/ диапазон портов:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "ÐÐ´Ñ€ÐµÑ IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Протокол:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "ИÑточник" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Ðазначение" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "ЕÑли вы включите локальное перенаправление, то необходимо указать порт. Этот " "порт должен отличатьÑÑ Ð¾Ñ‚ порта иÑточника." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Локальное перенаправление" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Ðаправить другому порту" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "ОÑновные наÑтройки модулей поддержки" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "ÐаÑтройте оÑновные параметры модулей поддержки:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "ПолÑ, выделенные жирным, обÑзательны. ОÑтальные — опциональны." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Ðазвание:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ВерÑиÑ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Кратко:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ОпиÑание:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "СемейÑтво протоколов:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Модуль:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Модуль поддержки" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Выберите модуль поддержки:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Базовые наÑтройки типа ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Укажите базовые наÑтройки типов ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Тип ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Выберите тип ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Добавить запиÑÑŒ" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Добавить запиÑи из файла" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Удалить выбранную запиÑÑŒ" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Удалить вÑе запиÑи" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Удалить запиÑи из файла" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Файл" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Параметры" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Перезагрузить Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Перезагружает правила межÑетевого Ñкрана. Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð¾ÑтоÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ " "Ñтанет новой конфигурацией времени иÑполнениÑ, то еÑть, вÑе временные " "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны при перезагрузке, еÑли они не вошли в поÑтоÑнную " "конфигурацию." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Выберите зону, которой принадлежит Ñетевое Ñоединение." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Изменить зону по умолчанию" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Изменить Ñтандартную зону Ð´Ð»Ñ Ñоединений и интерфейÑов" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Изменить значение LogDenied" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Изменить правила Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "ÐаÑтройка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "ÐаÑтройка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Ð’ режиме уÑиленной защиты вÑе входÑщие и иÑходÑщие пакеты будут " "отбраÑыватьÑÑ." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Режим уÑиленной защиты" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "При блокировке конфигурации межÑетевого Ñкрана только программы из белого " "ÑпиÑка Ñмогут вноÑить изменениÑ." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Блокировка" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Сделать рабочую конфигурацию поÑтоÑнной" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Сохранить рабочие в поÑтоÑнных" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Вид" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSet" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Типы ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Модули поддержки" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "ПрÑÐ¼Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Белый ÑпиÑок блокировки" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Ðктивные привÑзки" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Справка" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Изменить зону привÑзки" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Скрыть активные рабочие привÑзки подключений, интерфейÑов и иÑточников к " "зонам в Ñреде выполнениÑ" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Показать активные рабочие привÑзки подключений, интерфейÑов и иÑточников к " "зонам в Ñреде выполнениÑ" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "КонфигурациÑ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ. ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ выполнениÑ, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð² данный " "момент. ПоÑтоÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ активирована поÑле перезапуÑка ÑиÑтемы " "или Ñлужбы." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Зона firewalld определÑет уровень Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð´Ð»Ñ Ñетевых Ñоединений, " "интерфейÑов и адреÑов. Зона объединÑет Ñлужбы, порты, протоколы, " "маÑкирование, переадреÑацию портов и пакетов, фильтры icmp и раÑширенные " "правила. Зоны могут быть привÑзаны к интерфейÑам и адреÑам." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Добавить зону" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Изменить зону" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Удалить зону" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Загрузить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "ЗдеÑÑŒ можно определить доверенные Ñлужбы Ð´Ð»Ñ Ð·Ð¾Ð½Ñ‹. Доверенные Ñлужбы " "доÑтупны Ñо вÑех узлов и Ñетей, у которых еÑть доÑтуп к компьютеру." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Службы" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Добавить дополнительные порты или диапазоны, которые должны быть доÑтупны " "узлам и ÑетÑм, подключающимÑÑ Ðº Ñтому компьютеру." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Добавить порт" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Изменить порт" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Удалить порт" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Порты" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Добавьте протоколы, которые должны быть доÑтупны Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… узлов и Ñетей." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Добавить протокол" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Изменить протокол" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Удалить протокол" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Протоколы" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Добавьте дополнительные порты-иÑточники или диапазоны портов, которые должны " "быть доÑтупны Ð´Ð»Ñ Ð²Ñех хоÑтов и Ñетей, подключающихÑÑ Ðº машине." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Порты-иÑточники" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "ВозможноÑть маÑÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (только Ð´Ð»Ñ IPv4) позволÑет наÑтроить узел или " "маршрутизатор, подключающий локальную Ñеть к Интернету. Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ñеть при " "Ñтом не будет видна извне, будет лишь доÑтупен один адреÑ." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "МаÑкирование зоны" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "При включении маÑÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñетей IPv4 будет включено перенаправление IP-" "пакетов." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "МаÑкирование" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Добавьте запиÑи Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚Ð¾Ð² либо Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ локального порта " "другому, либо из локальной ÑиÑтемы другой ÑиÑтеме. Перенаправление другой " "ÑиÑтеме имеет ÑмыÑл при маÑкараде интерфейÑа. Перенаправление портов " "иÑпользуетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Добавить перенаправлÑемый порт " #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Изменить перенаправлÑемый порт" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Удалить перенаправлÑемый порт" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Протокол ICMP (Internet Control Message Protocol) обычно иÑпользуетÑÑ Ð´Ð»Ñ " "обмена ÑообщениÑми об ошибках между компьютерами в Ñети, но Ñ ÐµÐ³Ð¾ помощью " "также можно отправлÑть информационные ÑообщениÑ, такие как запроÑÑ‹ и ответы " "ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Отметьте в ÑпиÑке типы ICMP, которым Ñледует отказать в прохождении через " "межÑетевой Ñкран. По умолчанию ограничений нет." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "ЕÑли фильтр «ИнверÑиÑ» включен, отмеченные запиÑи ICMP принимаютÑÑ, а " "оÑтальные отклонÑÑŽÑ‚ÑÑ. Ð’ зоне Ñ Ð¾Ñ‚Ð±Ñ€Ð°Ñыванием назначений они будут " "отбраÑыватьÑÑ." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Фильтр «ИнверÑиÑ»" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Фильтр ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "ЗдеÑÑŒ определÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширенные правила Ð´Ð»Ñ Ð·Ð¾Ð½Ñ‹." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Добавить раÑширенное правило" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Изменить раÑширенное правило" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Удалить раÑширенное правило" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "РаÑширенные правила" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Добавьте запиÑи Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ñзки интерфейÑов к зоне. ЕÑли Ñоединение иÑпользует " "интерфейÑ, будет выбрана ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ ÐµÐ¼Ñƒ зона." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Добавить интерфейÑ" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Изменить интерфейÑ" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Удалить интерфейÑ" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Добавьте запиÑи, чтобы привÑзать иÑходных адреÑов или Ñегментов к зоне. " "Можно также привÑзать MAC-адреÑ, но Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ ограничениÑми: в Ñтом " "Ñлучае перенаправление портов и маÑкирование будут недоÑтупны." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Добавить иÑточник" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Изменить иÑточник" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Удалить иÑточник" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Зоны" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Firewalld объединÑет запиÑи Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ð¾Ð², протоколов, модулей и адреÑов " "назначениÑ." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Добавить Ñлужбу" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Правка Ñлужбы" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Удалить Ñлужбу" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Загрузить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Добавьте дополнительные порты или диапазоны портов, которые должны быть " "доÑтупны из других Ñетей или узлов." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Изменить запиÑÑŒ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Удалить запиÑÑŒ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Добавьте дополнительные порты иÑточника или диапазоны портов, которые должны " "быть доÑтупны Ð´Ð»Ñ Ð²Ñех хоÑтов и Ñетей." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Порт иÑточника" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Ð”Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñлужб требуютÑÑ Ð¼Ð¾Ð´ÑƒÐ»Ð¸ поддержки Netfilter" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Модули" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "При указании адреÑа назначениÑ, запиÑÑŒ Ñлужбы будет ограничена адреÑом " "Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸ типом. ЕÑли обе запиÑи пуÑты, ограничений нет." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Службы можно изменить только в окне поÑтоÑнной конфигурации. ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ " "Ñлужб во Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ изменÑетÑÑ." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "IPSet позволÑет наÑтроить «белые» и «черные» ÑпиÑки, а также Ñохранить IP, " "MAC-адреÑа, а также номера портов." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Добавить IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Изменить IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Удалить IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Загрузить Ñтандартные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "ЗапиÑи IPSet. Ð’ Ñтом ÑпиÑке предÑтавлены только те запиÑи, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… не " "задано Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑтвиÑ, а также запиÑи, которые добавил firewalld. ЗапиÑи, " "которые были добавлены непоÑредÑтвенно командой ipset, не показаны." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Ð’Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñтого IPSet ограничено, поÑтому его запиÑи здеÑÑŒ не показаны. " "Управление его запиÑÑми должно оÑущеÑтвлÑтьÑÑ Ð½Ð°Ð¿Ñ€Ñмую при помощи команды " "ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Добавить" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "ЗапиÑи" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "Управление ÑпиÑками IPSet выполнÑетÑÑ Ð² окне поÑтоÑнной конфигурации." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "icmptype определÑет тип ICMP (Internet Control Message Protocol) Ð´Ð»Ñ " "firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Добавить тип ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Править тип ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Удалить тип ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Загрузить типы ICMP по умолчанию" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Укажите, доÑтупен ли Ñтот тип ICMP Ð´Ð»Ñ IPv4 и IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Типы ICMP можно изменить только в окне поÑтоÑнной конфигурации. ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ " "типов ICMP во Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ изменÑетÑÑ." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Модуль поддержки отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ñоединений помогает Ñделать так, чтобы " "работали протоколы, иÑпользующие различные потоки Ð´Ð»Ñ Ñигналов и передачи " "данных. Передачи данных иÑпользуют порты, не ÑвÑзанные Ñ Ñигнальным " "Ñоединением и поÑтому блокируемые Ñетевым Ñкраном без модулÑ." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Добавьте порты или диапазоны портов, контролируемые модулем поддержки." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "ПрÑÐ¼Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑтавлÑет прÑмой доÑтуп к межÑетевому Ñкрану. Ð”Ð»Ñ ÐµÐµ " "наÑтройки необходимы Ð·Ð½Ð°Ð½Ð¸Ñ iptables (таблицы, цепочки, команды, параметры и " "цели). ПрÑÐ¼Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в ÑлучаÑÑ… крайней " "необходимоÑти." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Ðргумент ipv Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из параметров должен Ñодержать ipv4 (Ð´Ð»Ñ iptables), " "ipv6 (Ð´Ð»Ñ ip6tables) или eb (Ð´Ð»Ñ ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Дополнительные цепочки Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Добавить цепочку" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Изменить цепочку" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Удалить цепочку" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Цепочки" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Добавьте правило к цепочке в таблице, определив ÑпиÑок аргументов и " "приоритет." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Приоритет определÑет порÑдок правил. Правила Ñ Ð½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ приоритетом " "добавлÑÑŽÑ‚ÑÑ Ð² начало цепочки. ПорÑдок правил Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼ приоритетом может " "менÑтьÑÑ. Чтобы точно определить порÑдок, приÑвойте им разный приоритет." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Добавить правило" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Изменить правило" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Удалить правило" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Правила" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Правила транÑлÑции передаютÑÑ Ñ‡ÐµÑ€ÐµÐ· межÑетевой Ñкран напрÑмую, а не в " "ÑоÑтаве цепочки. Правила могут Ñодержать параметры iptables, ip6tables и " "ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "УбедитеÑÑŒ, что правила транÑлÑции не нарушают работу межÑетевого Ñкрана." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Добавить транÑлÑцию" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Изменить транÑлÑцию" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Удалить транÑлÑцию" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ТранÑлÑциÑ" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ предÑтавлÑет Ñобой облегченную верÑию правил firewalld " "Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ и приложений. Белый ÑпиÑок может Ñодержать команды, " "контекÑты, идентификаторы и имена пользователей." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Под контекÑтом подразумеваетÑÑ ÐºÐ¾Ð½Ñ‚ÐµÐºÑÑ‚ безопаÑноÑти SELinux программы или " "Ñлужбы. Чтобы узнать контекÑÑ‚ работающей программы, выполните команду ps " "-e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Добавить контекÑÑ‚" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Изменить контекÑÑ‚" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Удалить контекÑÑ‚" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "КонтекÑÑ‚" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Команды в белом ÑпиÑке могут Ñодержать Ñимвол подÑтановки «*». ЕÑли он не " "указан, будут обработаны лишь точные ÑоответÑтвиÑ." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Добавить Ñтроку команды" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Изменить Ñтроку команды" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Удалить Ñтроку команды" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Команды" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Имена пользователей." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Добавить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Изменить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Удалить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Пользователи" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Идентификаторы пользователей." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Добавить идентификатор пользователÑ" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Изменить идентификатор пользователÑ" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Удалить идентификатор пользователÑ" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Идентификаторы пользователей" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð·Ð¾Ð½Ð° по умолчанию." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Запрет журналированиÑ:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Режим уÑиленной защиты:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "ÐвтоматичеÑкие модули поддержки:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Блокировка:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Зона по умолчанию:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "ОÑновные параметры IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "ÐаÑтройте оÑновные параметры IPSet:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Тип:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑтвиÑ:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Размер Ñ…Ñша:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "МакÑ. чиÑло Ñлементов:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñей в Ñекундах" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "ИÑходный размер Ñ…Ñша (по умолчанию — 1024)" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "МакÑимальное чиÑло Ñлементов в ÑпиÑке (по умолчанию — 65536)" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Выберите ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Запрет журналированиÑ" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Выберите режим Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Отметка" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Введите отметку и дополнительно маÑку." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "ÐŸÐ¾Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ и маÑки должны Ñодержать 32-разрÑдные чиÑла без знака." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Отметка:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "МаÑка:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Выберите модуль поддержки отÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ñоединений netfilter:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Выберите -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Другой модуль:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Порт и протокол" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Введите порт и протокол." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "ПрÑмое правило" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Выберите IPV, таблицу, приоритет цепочки и введите аргументы." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Приоритет:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Введите протокол." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Другой протокол:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Правило" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Введите правило." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Отключите Ñлемент, чтобы получить возможноÑть ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‡ÐµÑ€Ð½Ñ‹Ð¼Ð¸ и белыми " "ÑпиÑками узлов и Ñети." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "ИÑточник:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Получатель:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Журнал:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Ðудит:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 и ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "инверÑиÑ" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Чтобы разрешить, поле «ДейÑтвие» должно иметь значение «отказать», а " "«СемейÑтво протоколов» — «ipv4» или «ipv6»." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "С ограничением:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ПрефикÑ:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Уровень:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Элемент:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "ДейÑтвие:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ОÑновные наÑтройки Ñлужбы" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Укажите оÑновные наÑтройки Ñлужбы:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Выберите Ñлужбу." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Идентификатор пользователÑ" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Введите идентификатор пользователÑ." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Пользователь" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "метка" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ÐаÑтройки оÑновной зоны" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Укажите наÑтройки оÑновной зоны:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Цель по умолчанию" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Цель:" firewalld-0.4.4.6/po/sk.po000066400000000000000000001610441320241217000152250ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # DuÅ¡an Kazik , 2012-2013 # Marcel Telka , 2004 # Mike Karas , 2006 # feonsu , 2008-2010 # feonsu , 2016. #zanata # feonsu , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-15 03:14-0400\n" "Last-Translator: feonsu \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/firewalld/" "language/sk/)\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Aplet pre firewall" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Nastavenia firewallu" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;sieÅ¥;bezpeÄnosÅ¥;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Vyberte zónu pre rozhranie „%s“" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Predvolená zóna" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Vyberte zónu pre rozhranie '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Nepodarilo sa nastaviÅ¥ zónu {zone} pre pripojenie {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Vyberte zónu pre zdroj '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Konfigurácia zóny pre zapnutý/vypnutý Å¡tít" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Tu môžete vybraÅ¥ zóny, ktoré budú použité pre zapnutý a vypnutý Å¡tít." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Táto funkcia je užitoÄná pre ľudí, ktorí prevažne využívajú predvolené zóny. " "Pre používateľov, ktorí menia zóny pripojení, môže byÅ¥ použitie obmedzené." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Zóna pre zapnutý Å¡tít" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "ObnoviÅ¥ predvolené" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Zóna pre vypnutý Å¡tít" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "O %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autori" #: ../src/firewall-applet:396 msgid "License" msgstr "Licencia" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Zapnúť Å¡tít" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "PovoliÅ¥ upozornenia" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "UpraviÅ¥ nastavenia firewallu..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "ZmeniÅ¥ zóny pripojení…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "NastaviÅ¥ zóny pre zapnutý/vypnutý Å¡tít..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "BlokovaÅ¥ vÅ¡etky sieÅ¥ové prenosy" #: ../src/firewall-applet:492 msgid "About" msgstr "O aplikácii" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Pripojenia" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Rozhrania" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Zdroje" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Overenie zlyhalo." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Neplatný názov" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Názov už existuje" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zóna: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Predvolená zóna: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Nepodarilo sa získaÅ¥ pripojenia z NetworkManagera" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Nie sú dostupné žiadne importy NetworkManagera" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Žiadne pripojenie k službe firewallu" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "VÅ¡etky sieÅ¥ové prenosy sú blokované." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Predvolená zóna: „%s“" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Predvolená zóna '{default_zone}' je aktívna pre pripojenie '{connection}' na " "rozhraní '{interface}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zóna '{zone}' je aktívna pre pripojenie '{connection}' na rozhraní " "'{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zóna '{zone}' je aktívna pre rozhranie '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zóna '{zone}' je aktívna pre zdroj {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Žiadne aktívne zóny." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Pripojenie k službe FirewallD bolo nadviazané." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Pripojenie k službe FirewallD bolo stratené." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "Služba FirewallD bola znovu naÄítaná." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Predvolená zóna bola zmenená na „%s“." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "SieÅ¥ové prenosy už nie sú blokované." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktivovaná" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "deaktivovaná" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Predvolená zóna '{default_zone}' je {activated_deactivated} pre pripojenie " "'{connection}' na rozhraní '{interface}'" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zóna '{zone}' je {activated_deactivated} pre pripojenie '{connection}' na " "rozhraní '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zóna '{zone}' je {activated_deactivated} pre rozhranie '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zóna '%s' je aktivovaná pre rozhranie „%s“" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zóna '{zone}' je {activated_deactivated} pre zdroj '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zóna '%s' je aktivovaná pre zdroj '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Pripojenie k službe FirewallD bolo nadviazané." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Pokus o pripojenie k firewalld, Äaká sa..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Zmeny boli aplikované" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Použité sieÅ¥ovým pripojením '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Predvolená zóna používaná sieÅ¥ovým pripojením '%s'" #: ../src/firewall-config:96 msgid "enabled" msgstr "povolené" #: ../src/firewall-config:97 msgid "disabled" msgstr "zakázané" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Nepodarilo sa naÄítaÅ¥ ikony." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Bežiaca" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Trvalá" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Služba" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Cieľový port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Cieľová adresa" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Väzby" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Položka" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Typ Icmp" #: ../src/firewall-config:817 msgid "Family" msgstr "Rodina" #: ../src/firewall-config:819 msgid "Action" msgstr "Akcia" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Zdroj" #: ../src/firewall-config:825 msgid "Dest" msgstr "Cieľ" #: ../src/firewall-config:827 msgid "log" msgstr "záznam" #: ../src/firewall-config:829 msgid "Audit" msgstr "Audit" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Varovanie" #: ../src/firewall-config:1612 msgid "Error" msgstr "Chyba" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "prijaÅ¥" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "odmietnuÅ¥" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "zahodiÅ¥" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "oznaÄit" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "služba" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokol" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maÅ¡karáda" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "zdrojový port" #: ../src/firewall-config:2071 msgid "level" msgstr "úroveň" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "áno" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zóna" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Predvolená zóna: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zóna: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zóna „%s“: Služba „%s“ nie je dostupná" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "OdstrániÅ¥" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "IgnorovaÅ¥" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zóna „%s“: Typ ICMP „%s“ nie je dostupný." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Integrovaná zóna, premenovanie nie je podporované." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "sekunda" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minúta" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "hodina" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "deň" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "núdzové" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "výstraha" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritické" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "chyba" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "upozornenie" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "oznámenie" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "informácia" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "ladenie" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-typ" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Preposielanie na iný systém je užitoÄné len ak je na rozhraní maÅ¡karáda. \n" "Chcete zamaskovaÅ¥ túto zónu?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Integrovaná služba, premenovanie nie je podporované." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Zadajte ipv4 adresu v tvare adresa[/maska]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Maska môže byÅ¥ maska siete alebo Äíslo." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Zadajte ipv6 adresu v tvare adresa[/maska]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Maska je Äíslo." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Zadajte ipv4 alebo ipv6 adresu v tvare adresa[/maska]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Maska môže byÅ¥ maska siete alebo Äíslo pre ipv4.\n" "Maska je Äíslo pre ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Integrované ipset, premenovanie nie je podporované." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Vyberte súbor" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Textové súbory" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "VÅ¡etky súbory" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "VÅ¡etko" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Integrovaný pomocník, premenovanie nie je podporované." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Integrované icmp, premenovanie nie je podporované." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Nepodarilo sa naÄítaÅ¥ súbor '%s': %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Vyberte zónu pre zdroj %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresa" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatický pomocníci" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Prosím vyberte hodnotu automatického pomocníka:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Príkazový riadok" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Prosím, zadajte príkazový riadok." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Kontext" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Prosím, zadajte kontext." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Prosím vyberte predvolenú zónu zo zoznamu nižšie." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Priama reÅ¥az" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Prosím vyberte ipv a tabuľku a zadajte názov reÅ¥aze." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "ReÅ¥az:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabuľka:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Priame pravidlo priechodu" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Prosím vyberte ipv a zadajte parametre." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Parametre:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Presmerovanie portov" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Prosím zadajte zdrojové a cieľové možnosti podľa vaÅ¡ich potrieb." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Rozsah portov:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP adresa:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Zdroj" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Cieľ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Ak povolíte lokálne preposielanie, musíte zadaÅ¥ port. Tento port musí byÅ¥ " "iný ako zdrojový port." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokálne preposielanie" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "PreposlaÅ¥ na iný port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Základné nastavenia pomocníka" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Prosím, nakonfigurujte základné nastavenia pomocníka:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" "Položky zobrazené tuÄným písmom sú povinné, vÅ¡etky ostatné sú voliteľné." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Názov:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Verzia:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Skrátené:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Popis:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Rodina:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Modul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Pomocník" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Vyberte pomocníka:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Základné nastavenia typu ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Prosím, nakonfigurujte základné nastavenia typu ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP typ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Prosím, vyberte typ ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "PridaÅ¥ položku" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "PridaÅ¥ položky zo súboru" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "OdstrániÅ¥ vybrané položky" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "OdstrániÅ¥ vÅ¡etky položky" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "OdstrániÅ¥ položky zo súboru" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Súbor" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "M_ožnosti" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Znovu naÄítaÅ¥ službu FirewallD" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Znovu naÄíta pravidlá firewallu. Aktuálna trvalá konfigurácia sa stane novou " "bežiacou konfiguráciou. Teda vÅ¡etky zmeny vykonané v bežiacej konfigurácii " "pred znovu naÄítaním budú stratené, ak už neboli súÄasÅ¥ou trvalej " "konfigurácie." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Zmení zónu patriacu sieÅ¥ovému pripojeniu." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "ZmeniÅ¥ predvolenú zónu" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Zmení predvolenú zónu pre pripojenia alebo rozhrania." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "ZmeniÅ¥ záznam zamietnutí" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Zmení hodnotu záznamu zamietnutí." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "NastaviÅ¥ automatické priradenie pomocníka" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Nastaví automatické priradenie pomocníka." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Núdzový režim znamená, že vÅ¡etky prichádzajúce a odchádzajúce pakety sa " "zahodia." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Núdzový režim" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Uzamknutie uzamkne konfiguráciu firewallu tak, že iba aplikácie z whitelistu " "pri uzamknutí ju môžu zmeniÅ¥." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Uzamknutie" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Zmení bežiacu konfiguráciu na trvalú" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Bežiaca konfigurácia na trvalú" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_ZobraziÅ¥" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSety" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Typy ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Pomocníci" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Priama konfigurácia" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Whitelist pri uzamknutí" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktívne väzby" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Pomocník" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "ZmeniÅ¥ zónu väzby" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "Kryje aktívne bežiace väzby pripojení, rozhraní a zdrojov k zónam" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "Zobrazí aktívne bežiace väzby pripojení, rozhraní a zdrojov k zónam" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfigurácia:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Aktuálne viditeľná konfigurácia. Konfigurácia pre reláciu je aktuálna " "konfigurácia. Trvalá konfigurácia bude aktívna aj po znovu naÄítaní alebo " "reÅ¡tarte služby alebo systému." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Zóna služby firewalld urÄuje úroveň dôvery pre sieÅ¥ové pripojenia, rozhrania " "a zdrojové adresy previazané so zónou. Zóna kombinuje služby, porty, " "protokoly, maÅ¡karádu, presmerovanie portov/paketov, filtre icmp a pravidlá " "najvyššej úrovne. Zóna môže byÅ¥ previazaná s rozhraniami a zdrojovými " "adresami." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "PridaÅ¥ zónu" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "UpraviÅ¥ zónu" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "OdstrániÅ¥ zónu" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "NaÄítaÅ¥ predvolené nastavenia zóny" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Tu môžete urÄiÅ¥, ktoré služby sú pre zónu dôveryhodné. Dôveryhodné služby sú " "prístupné zo vÅ¡etkých hostiteľov a sietí, ktoré majú dosah k stroju cez " "pripojenia, rozhrania a zdrojov previazaných s touto zónou." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Služby" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Pridajte dodatoÄné porty alebo rozsahy portov, ktoré musia byÅ¥ prístupné pre " "vÅ¡etky poÄítaÄe alebo siete, ktoré sa môžu pripojiÅ¥ k stroju." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "PridaÅ¥ port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "UpraviÅ¥ port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "OdstrániÅ¥ port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Porty" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Pridajte protokoly, ktoré musia byÅ¥ prístupné pre vÅ¡etky poÄítaÄe alebo " "siete." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "PridaÅ¥ protokol" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "UpraviÅ¥ protokol" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "OdstrániÅ¥ protokol" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokoly" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Pridajte dodatoÄné zdrojové porty alebo rozsahy portov, ktoré musia byÅ¥ " "prístupné pre vÅ¡etky poÄítaÄe alebo siete, ktoré sa môžu pripojiÅ¥ k stroju." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Zdrojové porty" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "MaÅ¡karáda je užitoÄná ak nastavujete poÄítaÄ alebo smerovaÄ, ktorý spája " "vaÅ¡u lokálnu sieÅ¥ s internetom. VaÅ¡a lokálna sieÅ¥ nebude z internetu " "viditeľná a celá bude reprezentovaná iba jednou ip adresou. MaÅ¡karáda " "funguje len pre IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ZamaskovaÅ¥ zónu" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Ak povolíte maskovanie, bude pre vaÅ¡e siete typu IPv4 povolené presmerovanie " "IP adries." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "MaÅ¡karáda" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Pridajte položky pre preposielanie portov buÄ z jedného portu na druhý na " "lokálnom systéme alebo lokálneho systému do iného systému. Preposielanie na " "iný systém je užitoÄné len ak je na rozhraní maÅ¡karáda. Funguje len na IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "PridaÅ¥ presmerovanie portu" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "UpraviÅ¥ presmerovanie portu" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "OdstrániÅ¥ presmerovanie portu" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Protokol internetových kontrolných správ (ICMP) sa používa predovÅ¡etkým k " "zasielaniu chybových správ medzi poÄítaÄmi v sieti, ale tiež pre informaÄné " "správy typu ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "OznaÄte v zozname typy ICMP, ktoré majú byÅ¥ odmietnuté. VÅ¡etky ostatné typy " "ICMP budú môcÅ¥ prejsÅ¥ firewallom. Predvolené bez obmedzení." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Ak je povolené InvertovaÅ¥ filter, oznaÄené položky ICMP sa príjmu a ostatné " "odmietnu. V zóne s cieľom DROP sa zahodia." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "InvertovaÅ¥ filter" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filter ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Tu môžete nastaviÅ¥ pravidlá jazyka rich (najvyššej úrovne) pre zónu." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "PridaÅ¥ pravidlo rich" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "UpraviÅ¥ pravidlo rich" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "OdstrániÅ¥ pravidlo rich" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Pravidlá rich" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Pridajte záznamy na previazanie rozhraní so zónou. Ak bude rozhranie použité " "pripojením, zóna bude nastavená na zónu urÄenú pre pripojenie." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "PridaÅ¥ rozhranie" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "UpraviÅ¥ rozhranie" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "OdstrániÅ¥ rozhranie" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Pridajte záznamy na previazanie zdrojových adries alebo oblastí so zónou. " "PreviazaÅ¥ tiež môžete zdrojové MAC adresy, ale iba s obmedzeniami. " "Presmerovanie portov a maskovanie nebude fungovaÅ¥ pre previazané zdrojové " "MAC adresy." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "PridaÅ¥ zdroj" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "UpraviÅ¥ zdroj" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "OdstrániÅ¥ zdroj" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zóny" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Služba firewalld je kombináciou portov, protokolov, modulov a cieľových " "adries." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "PridaÅ¥ službu" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "UpraviÅ¥ službu" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "OdstrániÅ¥ službu" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "NaÄítaÅ¥ predvolené nastavenia služby" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Pridajte dodatoÄné porty alebo rozsahy portov, ktoré musia byÅ¥ prístupné pre " "vÅ¡etky poÄítaÄe alebo siete." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "UpraviÅ¥ položku" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "OdstrániÅ¥ položku" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Pridajte dodatoÄné zdrojové porty alebo rozsahy portov, ktoré musia byÅ¥ " "prístupné pre vÅ¡etky poÄítaÄe alebo siete." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Zdrojový port" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Pomocné moduly Netfilter sú potrebné pre niektoré služby." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduly" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Ak urÄíte cieľové adresy, položka so službou bude obmedzená na cieľové " "adresy a typ. Ak sú obidve položky prázdne, bude služba bez obmedzení." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Služby je možné meniÅ¥ iba v zobrazení trvalej konfigurácie. Bežiaca " "konfigurácia služieb je nemenná." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "IPSet je možné použiÅ¥ na vytvorenie whitelistu alebo blacklistu. Dokáže " "uložiÅ¥ napríklad IP adresy, Äísla portov a MAC adresy." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "PridaÅ¥ IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "UpraviÅ¥ IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "OdstrániÅ¥ IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "NaÄítaÅ¥ predvolené nastavenia IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Položky IPSet. Zobrazené sú iba položky ipset, ktoré nepoužívajú voľbu " "Äasového limitu a tiež položky, ktoré pridal firewalld. Položky, ktoré boli " "priamo pridané pomocou príkazu ipset sa tu nezobrazia." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Tento IPSet používa voľbu Äasového limitu a preto tu nie sú vidieÅ¥ žiadne " "položky. Položky by mali byÅ¥ priamo nakonfigurované pomocou príkazu ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "PridaÅ¥" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Položky" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSety je možné vytvoriÅ¥ alebo odstrániÅ¥ iba v zobrazení trvalej " "konfigurácie." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Typy ICMP pre firewalld poskytujú informácie pre ICMP (Internet Control " "Message Protocol)." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "PridaÅ¥ typ ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "UpraviÅ¥ typ ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "OdstrániÅ¥ typ ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "NaÄítaÅ¥ predvolené nastavenia typu ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Zadajte, Äi je tento typ ICMP dostupný pre IPv4 alebo IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Typy ICMP je možné meniÅ¥ iba v zobrazení trvalej konfigurácie. Bežiaca " "konfigurácia ICMP typov je nemenná." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Pomocník sledovania pripojení pomáha funkÄnosti protokolov, ktoré používajú " "rôzne toky pre signalizáciu a prenos údajov. Prenosy údajov používajú porty, " "ktoré nesúvisia so signalizaÄnými spojeniami a bez pomocníka ich firewall " "preto zablokuje. " #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Zadajte porty a rozsahy portov monitorované pomocou pomocníka." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Priama konfigurácia poskytuje priamejší prístup k firewallu. Tieto voľby " "vyžadujú základnú znalosÅ¥ konceptov iptables, napr. tabuľky, reÅ¥aze, " "príkazy, parametre a ciele. Priama konfigurácia by mala byÅ¥ použitá ako " "posledná možnosÅ¥, keÄ už nie je možné použiÅ¥ iné funkcie firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Argument ipv každej voľby musí byÅ¥ typu ipv4, ipv6 alebo eb. Typ ipv4 bude " "pre iptables, ipv6 pre ip6tables a eb pre ethernetové mosty (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "DodatoÄné reÅ¥aze pre použitie s pravidlami." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "PridaÅ¥ reÅ¥az" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "UpraviÅ¥ reÅ¥az" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "OdstrániÅ¥ reÅ¥az" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "ReÅ¥aze" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "Pridajte pravidlo s argumentami args k reÅ¥azi v tabuľke s prioritou." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Priorita sa používa na usporiadanie pravidiel. Priorita 0 znamená pridaj " "pravidlo na vrch reÅ¥aze, s vyššou prioritou bude pravidlo pridané nižšie. " "Pravidlá s rovnakou prioritou budú na rovnakej úrovni a poradie týchto " "pravidiel nie je pevné a môže sa meniÅ¥. Ak si chcete byÅ¥ istý, že sa " "pravidlo pridá za iné, použite nižšiu prioritu pre prvé a vyššiu pre " "nasledujúce." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "PridaÅ¥ pravidlo" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "UpraviÅ¥ pravidlo" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "OdstrániÅ¥ pravidlo" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Pravidlá" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Pravidlá priameho priechodu prechádzajú priamo do firewallu a nie sú " "umiestnené v Å¡peciálnych reÅ¥aziach. Je možné použiÅ¥ vÅ¡etky voľby iptables, " "ip6tables a ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "S pravidlami priameho priechodu buÄte opatrný, aby nedoÅ¡lo k poÅ¡kodeniu " "firewallu." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "PridaÅ¥ priamy priechod" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "UpraviÅ¥ priamy priechod" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "OdstrániÅ¥ priamy priechod" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Priamy priechod" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Funkcia uzamknutie je odľahÄenou verziou používateľských a aplikaÄných " "politík pre firewalld. Obmedzuje zmeny vo firewalle. Whitelist pri uzamknutí " "môže obsahovaÅ¥ príkazy, kontexty, používateľov a ID používateľov." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Kontext je kontext zabezpeÄenia (SELinux) bežiacej aplikácie alebo služby. " "Ak chcete zistiÅ¥ kontext bežiacej aplikácie použite ps -e --context." "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "PridaÅ¥ kontext" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "UpraviÅ¥ kontext" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "OdstrániÅ¥ kontext" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Kontexty" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Ak položka príkazu z whitelistu konÄí hviezdiÄkou '*', potom sa vÅ¡etky " "príkazové riadky zaÄínajúce príkazom budú zhodovaÅ¥. Ak tam '*' nie je, potom " "sa musí zhodovaÅ¥ absolútny príkaz vrátane argumentov." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "PridaÅ¥ príkazový riadok" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "UpraviÅ¥ príkazový riadok" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "OdstrániÅ¥ príkazový riadok" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Príkazové riadky" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Používateľské mená." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "PridaÅ¥ používateľské meno" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "UpraviÅ¥ používateľské meno" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "OdstrániÅ¥ používateľské meno" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Používateľské mená" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "ID používateľov" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "PridaÅ¥ ID používateľa" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "UpraviÅ¥ ID používateľa" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "OdstrániÅ¥ ID používateľa" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "ID používateľov" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Aktuálna predvolená zóna systému." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Záznam zamietnutí:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Núdzový režim:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatický pomocníci:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Uzamknutie:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Predvolená zóna:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Rozhranie" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Základné nastavenia IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Prosím, nakonfigurujte základné nastavenia ipset:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Typ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "ÄŒasový limit:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "VeľkosÅ¥ hash:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Hodnota Äasového limitu v sekundách" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "PoÄiatoÄná veľkosÅ¥ hash, Å¡tandardná 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maximálny poÄet elementov, Å¡tandardný 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Prosím vyberte ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Záznam zamietnurí" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Prosím vyberte hodnotu pre záznam zamietnutí." #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "ZnaÄka" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Prosím, zadajte znaÄku s voliteľnou maskou." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Polia znaÄka a maska sú obe 32-bitové Äísla bez znamienka." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "ZnaÄka:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Maska:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Prosím vyberte pomocníka netfilter conntrack:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Vyberte -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "ÄŽalÅ¡ie moduly:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port a Protokol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Prosím, zadajte port a protokol." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Priame pravidlo" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Prosím vyberte ipv a tabuľku, reÅ¥az a zadajte parametre." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Priorita:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Prosím zadajte protokol." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Iný protokol:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Pravidlo rich" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Prosím zadajte pravidlo rich." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Pre whitelistovanie alebo blacklistovanie hostiteľa alebo siete deaktivujte " "element." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Zdroj:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Cieľ:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Záznam: " #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Audit:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 a ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "invertované" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Ak chcete toto povoliÅ¥, akcia musí byÅ¥ 'reject' a rodina buÄ 'ipv4' alebo " "'ipv6' (nie obe)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "s typom:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "S limitom:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Úroveň:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Akcia:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Základné nastavenia služby" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Prosím, nakonfigurujte základné nastavenia služby:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Prosím vyberte službu." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "ID používateľa" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Prosím zadajte ID používateľa." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Používateľské meno" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Prosím zadajte používateľské meno." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "menovka" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Základné nastavenia zóny" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Prosím, nakonfigurujte základné nastavenia zóny:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Predvolený cieľ" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Cieľ:" firewalld-0.4.4.6/po/sq.po000066400000000000000000001233551320241217000152360ustar00rootroot00000000000000# Enea Jahollari , 2017. #zanata # Sidorela Uku , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-04-20 11:51-0400\n" "Last-Translator: Sidorela Uku \n" "Language-Team: Albanian\n" "Language: sq\n" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Firewall" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Konfigurimi i Firewall" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Zgjidh zonën për ndërfaqen '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Zona e parazgjedhur" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Selektoni zonën për lidhjen '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Dështim në vendosjen e zonës {zone} për lidhjen {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Selektoni zonën për burimin '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Përreth %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Autorët" #: ../src/firewall-applet:396 msgid "License" msgstr "Licensa" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Mundëso njoftimet" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blloko të gjithë trafikun në rrjet" #: ../src/firewall-applet:492 msgid "About" msgstr "Rreth" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Lidhjet" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Ndërfaqet" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Burimet" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Autorizimi dështoi" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Emër i pavlefshëm" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Emri tashmë ekziston" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zona '{zone}' aktive për burimin {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktivizuar" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "çaktivizuar" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zona '%s' aktivizuar për ndërfaqen '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zona '%s' aktivizuar për burimin '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Ndryshimet u aplikuan." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "I përhershëm" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Shërbim" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Portë" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoll" #: ../src/firewall-config:560 msgid "To Port" msgstr "Në Portën" #: ../src/firewall-config:562 msgid "To Address" msgstr "Në Adresën" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Lidhjet" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Hyrje" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "" #: ../src/firewall-config:817 msgid "Family" msgstr "Familje" #: ../src/firewall-config:819 msgid "Action" msgstr "Veprim" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "" #: ../src/firewall-config:1612 msgid "Error" msgstr "" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "pranoj" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "refuzoj" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "shënoj" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "limit" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "shërbim" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "portë" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokoll" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "portë-burim" #: ../src/firewall-config:2071 msgid "level" msgstr "nivel" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "po" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zonë" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zona: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Fshij" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Injoro" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "sekonda" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minuta" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "orë" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "ditë" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "emergjencë" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "alarm" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritik" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "gabim" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "njoftim" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Ju lutem zgjidhni një skedar" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Skedarët Tekst" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Të gjithë Skedarët" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Të gjithë" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adresa" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Konteksti" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Burim" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destinacion" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Ndihmuesi" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Shërbimet" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Shto Portë" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Edito Portë" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Fshij Portë" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portat" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Shto Protokoll" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokollet" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Portat burim" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Shto Ndërfaqe" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Porta Burim" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modulet" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Objektivi i paracaktuar" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Objektiv" firewalld-0.4.4.6/po/sr.po000066400000000000000000001647221320241217000152420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Igor Miletic , 2008 # MiloÅ¡ KomarÄević , 2005 # Milos Mijatovic , 2008 # Momcilo Medic , 2015. #zanata # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:42-0500\n" "Last-Translator: Momcilo Medic \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/firewalld/" "language/sr/)\n" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Ðплет заштитног зида" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Заштитни зид" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Подешавање заштитног зида" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "заштитни зид;мрежа;ÑигурноÑÑ‚;iptables;мрежни филтер;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Одаберите зону за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ '%s'" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Подразумевана зона" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Одаберите зону за везу '%s'" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Одаберите зону за извор '%s'" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ПодеÑи зоне за подигнуте/Ñпуштене штитове" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Овде можете подеÑити зоне које Ñе кориÑте за подигнуте и Ñпуштене штитове." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Ова могућноÑÑ‚ је кориÑна људима који највише кориÑте подразумевану зону. За " "кориÑнике, који мењају зоне веза, она може бити делимично кориÑна." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Зона подигнутих штитова:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Зона Ñпуштених штитова:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "О %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Подигни штитове" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Омогући обавештења" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Измени подешавања заштитног зида..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Промени зоне веза..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ПодеÑи зоне за подигнуте/Ñпуштене штитове..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "ЗауÑтави Ñав мрежни Ñаобраћај" #: ../src/firewall-applet:492 msgid "About" msgstr "О програму" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "Везе" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "<Ñпрега>" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Извори" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ÐеуÑпешно овлашћење." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "ÐеиÑправан аргумент %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Име већ поÑтоји" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Зона: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ðема везе до ÑервиÑа заштитног зида" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Сав мрежни Ñаобраћај је блокиран." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Подразумевана зона: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Зона '{zone}' је активна за везу '{connection}' на интерфејÑу '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Зона '{zone}' је активна за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ '{interface}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Зона '{zone}' је активна за извор {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Ðема активних зона." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "УпоÑтављена веза Ñа FirewallD-ом." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Изгубљена веза Ñа FirewallD-ом." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD је поново учитан." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Подразумевана зона промењена на '%s'." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Мрежни Ñаобраћај више није блокиран." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "активирана" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "деактивирана" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Зона '{zone}' је {activated_deactivated} за везу '{connection}' на " "интерфејÑу '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Зона '{zone}' је {activated_deactivated} за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Зона '%s' је активирана за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Зона '{zone}' је {activated_deactivated} за извор '{source}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Зона '%s' је активирана за извор '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Промене Ñу примењене." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "У употреби на мрежној вези '%s'" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "омогућено" #: ../src/firewall-config:97 msgid "disabled" msgstr "онемогућено" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "ÐеуÑпешно учитавање иконица." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "У току извршавања" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Трајно" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "СервиÑ" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Порт" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Протокол" #: ../src/firewall-config:560 msgid "To Port" msgstr "Ðа порт" #: ../src/firewall-config:562 msgid "To Address" msgstr "Ðа адреÑу" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp врÑта" #: ../src/firewall-config:817 msgid "Family" msgstr "Породица" #: ../src/firewall-config:819 msgid "Action" msgstr "Ðкција" #: ../src/firewall-config:821 msgid "Element" msgstr "Елемент" #: ../src/firewall-config:823 msgid "Src" msgstr "Извор" #: ../src/firewall-config:825 msgid "Dest" msgstr "Одредиште" #: ../src/firewall-config:827 msgid "log" msgstr "запиÑ" #: ../src/firewall-config:829 msgid "Audit" msgstr "Провера" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Упозорење" #: ../src/firewall-config:1612 msgid "Error" msgstr "Грешка" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "прихвати" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "одби" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "иÑпуÑти" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "ограничи" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "ÑервиÑ" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "порт" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "протокол" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "маÑкарада" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "ниво" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "да" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Зона" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Зона '%s': Ð¡ÐµÑ€Ð²Ð¸Ñ '%s' није доÑтупан." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Уклони" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Занемари" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Зона '%s': ICMP врÑта '%s' није доÑтупна." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Уграђена зона, промена имена није подржана." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "Ñекунд" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "минут" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "Ñат" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "дан" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "хитно" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "упозорење" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "критично" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "грешка" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "упозорење" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "обавештење" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "информација" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "отклањање грешака" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "проÑлеђивање-порта" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ПреуÑмеравање на други ÑиÑтем је кориÑно Ñамо ако је Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ Ð¼Ð°Ñкиран.\n" "Да ли желите маÑкирати ову зону?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Уграђени ÑервиÑ, промена имена није подржана." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Уграђени icmp, промена имена није подржана." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Одаберите зону за извор %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ÐдреÑа" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Молим унеÑите командну линију." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Молим унеÑите контекÑÑ‚." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Молим одаберите подразумевану зону Ñа доњег ÑпиÑка." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Директан ланац" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Молим изаберите ipv и табелу и унеÑите име ланца." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Ланац:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "ÑигурноÑÑ‚" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Табела:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Директно правило пропуштања" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Молим изаберите ipv и унеÑите параметре." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Параметри:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ПроÑлеђивање портова" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Изаберите опције за извор и одредиште у завиÑноÑти од потреба." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Порт / опÑег портова:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP адреÑа:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Протокол:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Извор" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Одредиште" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Ðко укључите локално проÑлеђивање, морате навеÑти порт. Тај порт Ñе мора " "разликовати од изворног порта." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Локално проÑлеђивање" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "ПроÑледи на неки други порт" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Подебљана поља Ñу обавезна, Ñве оÑтало је опционо." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Име:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Верзија:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Кратко:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ОпиÑ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Породица:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ОÑновна ICMP подешавања" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Молим подеÑите оÑновна ICMP подешавања:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP врÑта" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Молим изаберите ICMP врÑту" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Додај Ñтавку" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "Да_тотека" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "Опциј_е" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Поново учитај Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Поново учитај правила заштитног зида. Тренутна трајна подешавања ће поÑтати " "нова подешавања за време извршавања. нпр. Ñве поÑтављене измене Ñамо за " "време извршавања ће бити изгубљене при поновном учитавању ако ниÑу такође " "биле у трајним подешавањима." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Промени којој зони припада мрежна веза." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Промени подразумевану зону" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Промени подразумевану зону за везе или интерфејÑе." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "Мод панике значи да ће Ñав долазни и одлазни пакети бити иÑпуштени." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Мод панике" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Закључавање закључава подешавање заштитног зида тако да Ñамо програми на " "белој лиÑти закључавања Ñмеју да је мењају." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Закључавање" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Претвори подешавања током извршавања у трајна" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Радна у трајна" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Преглед" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP врÑте" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Директна подешавања" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Бела лиÑта закључавања" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Помоћ" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Подешавање:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Тренутно видљива подешавања. Подешавања у току извршавања Ñу актуелна " "активна подешавања. Трајна подешавања ће бити активна након поновног " "учитавања или покретања ÑервиÑа или ÑиÑтема." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Firewalld зона дефинише ниво поверења у мрежним везама, интерфејÑима и " "изворним адреÑама везаним за зоне. Зона обједињује ÑервиÑе, портове, " "протоколе, маÑкараде, порт/пакет проÑлеђивање, icmp филтере и обогаћена " "правила. Зона може бити повезана Ñа интерфејÑима и изворним адреÑама." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Додај зону" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Измени зону" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Уклони зону" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Учитај подразумеване вредноÑти за зону" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Овде можете одредити којим ÑервиÑима Ñе верује у зони. Ти ÑервиÑи Ñу " "доÑтупни Ñа Ñвих хоÑтова и мрежа који могу доÑегнути до машине кроз везе, " "интерфејÑе и изворе повезане Ñа овом зоном." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "СервиÑи" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Додај додатни порт или опÑег портова, који треба да буду доÑтупни Ñвим " "хоÑтовима или мрежама који могу да Ñе повежу на машину." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Ðа порт" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Измени порт" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Уклони порт" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Портови" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "МаÑкирање дозвољава да поÑтавите домаћина или рутер који повезује вашу " "локалну мрежу на интернет. Локална мрежа неће бити видљива и домаћини ће Ñе " "појавити као једна адреÑа на интернету. МаÑкирање је Ñамо за IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "МаÑкирај зону" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Ðко омогућите маÑкараду, IP проÑлеђивање ће бити омогућено за ваше IPv4 " "мреже." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "МаÑкирање" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Додајте Ñтавке за проÑлеђене портове или Ñа једног порта на неки други на " "локалном ÑиÑтему, или Ñа локалног ÑиÑтема на други ÑиÑтем. ПроÑлеђивање на " "други ÑиÑтем је кориÑно Ñамо ако је Ñпрега маÑкирана. ПроÑлеђивање портова " "је Ñамо за IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Додај порт за проÑлеђивање" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Измени порт за проÑлеђивање" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Уклони порт за проÑлеђивање" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Протокол за контролиÑање интернет порука (ICMP — Internet Control Message " "Protocol) Ñе углавном кориÑти за Ñлање порука о грешкама између умрежених " "рачунара, али и додатно за информативне поруке попут пинг захтева и одговора." "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Означите ICMP врÑте на ÑпиÑку које желите одбити. Свим оÑталим ICMP врÑтама " "је дозвољено да прођу кроз заштитни зид. Подразумевана опција је без " "ограничења." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Филтер за ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Овде можете подешавати правила у обогаћеном језику за зону." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Додај обогаћено правило" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Измени обогаћено правило" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Уклони обогаћено правило" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Обогаћена правила" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Додајте уноÑе да Ñе повежу интерфејÑи Ñа зоном. Ðко ће веза кориÑтити " "интерфејÑ, зона ће бити поÑтављена на зону подешену у вези." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Додај интерфејÑ" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Измени интерфејÑ" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Уклони интерфејÑ" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Додај извор" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Измени извор" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Уклони извор" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Зоне" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "Firewalld ÑÐµÑ€Ð²Ð¸Ñ Ñ˜Ðµ обједињење портова, протокола, модула и одредишних " "адреÑа." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Додај ÑервиÑ" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Измени ÑервиÑ" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Уклони ÑервиÑ" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Учитај подразумеване вредноÑти ÑервиÑа" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Уреди Ñтавку" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Уклони Ñтавку" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Модули" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Ðко назначите одредишне адреÑе, ÑƒÐ½Ð¾Ñ ÑервиÑа ће бити ограничен Ñамо на " "одредишну адреÑу и врÑту. Ðко Ñу оба уноÑа празна, нема ограничења." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "СервиÑи Ñе могу мењати Ñамо у прегледу трајних подешавања. Подешавање " "ÑервиÑа у време извршавања је Ñтатично." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Firewalld icmptype пружа информације о врÑти протокола интернет контролних " "порука (ICMP - Internet Control Message Protocol) за firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Додај ICMP врÑту" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Измени ICMP врÑту" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Уклони ICMP врÑту" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Учитај подразумеване вредноÑти ICMP врÑта" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Одредите да ли ће ICMP врÑта бити доÑтупна за IPv4 и/или IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP врÑте Ñе могу мењати Ñамо у прегледу трајних подешавања. Подешавање " "ICMP врÑта у време извршавања је Ñтатично." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Диреткна подешавања дају директнији приÑтуп заштитном зиду. Ове опције " "захтевају да кориÑник познаје оÑновне iptables концепте, нпр. табеле, ланце, " "команде, параметре и циљеве. Директно подешавање би требало кориÑтити Ñамо " "као поÑледњу опцију када није могуће кориÑтити оÑтале firewalld могућноÑти." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" " ipv параметар Ñваке опције мора бити IPv4 или IPv6 или eb. Са IPv4 биће за " "iptables, Ñа IPv6 за ip6tables и Ñа eb за мрежне моÑтове (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Додатни ланци у употреби Ñа правилима." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Додај ланац" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Измени ланац" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Уклони ланац" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Ланци" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "Додај правило ланцу Ñа аргументима args у табели Ñа приоритетом." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Приоритет Ñлужи за редоÑлед правила. Приоритет 0 значи да Ñе правило додаје " "на врх ланца, Ñа већим приоритетом правило ће бити додато ниже. Правила Ñа " "иÑтим приоритетом Ñу на иÑтом нивоу и редоÑлед тих правила није Ñтално и " "може бити промењено. Ðко желите да Ñе оÑигурате да ће правило бити додато " "након другог, кориÑтите низак приоритет за прво и виÑок за Ñледеће." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Додај правило" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Измени правило" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Уклони правило" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Правила" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ПропуÑна правила Ñу директно пружена кроз заштитни зид и ниÑу Ñмештена у " "поÑебне ланце. Све iptables, ip6tables и ebtables опције могу бити " "употребљене." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Молимо да будете пажљиви Ñа пропуÑним правилима да не оштетите заштитни зид." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Додај пропуÑно правило" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Измени пропуÑно правило" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Уклони пропуÑно правило" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ПропуÑна правила" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "МогућноÑÑ‚ закључавања је лагана верзија полиÑа кориÑника и програма за " "firewalld. Оно ограничава промене на заштитном зиду. Бела лиÑта за " "закључавање може Ñадржати команде, контекÑте, кориÑнике и кориÑничке ID-ове." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Додај контекÑÑ‚" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Измени контекÑÑ‚" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Уклони контекÑÑ‚" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "КонтекÑти" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Ðко ÑƒÐ½Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ у белу лиÑту завршава Ñа аÑтериÑком '*', онда ће Ñе Ñве " "командне линије које почињу Ñа командом подударати. Ðко '*' није ту " "апÑолутна команда Ñа аргументима мора да Ñе подудара." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Додај командну линију" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Измени командну линију" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Уклони командну линију" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Командне линије" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "КориÑничка имена." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Додај кориÑничко име" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Измени кориÑничко име" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Уклони кориÑничко име" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "КориÑничка имена" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "КориÑнички ID-ови." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Додај кориÑнички ID" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Измени кориÑнички ID" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Уклони кориÑнички ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "КориÑнички ID-ови" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Тренутна подразумевана зона за ÑиÑтем." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Мод панике:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Закључавање:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Подразумевана зона:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Порт и протокол" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Молим унеÑите порт и протокол." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Директно правило" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Молим одаберите ipv и табелу, приоритет ланца и унеÑите аргументе." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Приоритет:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Молим унеÑите протокол." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Други протокол:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Обогаћено правило" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Молим унеÑите обогаћено правило." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "За белу или црну лиÑту домаћина или мреже деактивирајте елемент." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Извор:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Одредиште:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "ЗапиÑ:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Провера:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 и ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "обрнуто" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Да омогућите ово Ðкција мора бити 'одбиј' и Породица или 'ipv4' или 'ipv6' " "(не оба)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "Ñа Ð’Ñ€Ñтом:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Са ограничењем:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ПрефикÑ:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Ðиво:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Елемент:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Ðкција:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "ОÑновна подешавања ÑервиÑа" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Молим поÑтавите оÑновна подешавања ÑервиÑа:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Молим одаберите ÑервиÑ." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "КориÑнички ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Молим унеÑите кориÑнички ID." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "КориÑничко име" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Молим унеÑите кориÑничко име." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ОÑновна подешавања зоне" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Молим поÑтавите оÑновна подешавања зоне:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Подразумевани циљ" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Циљ:" firewalld-0.4.4.6/po/sr@latin.po000066400000000000000000001246741320241217000163740ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Igor Miletic , 2008 # MiloÅ¡ KomarÄević , 2005 # Milos Mijatovic , 2008 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 10:03-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/" "firewalld/language/sr@latin/)\n" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ZaÅ¡titni zid" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "PodeÅ¡avanje zaÅ¡titnog zida" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Neispravan argument %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "" #: ../src/firewall-config:97 msgid "disabled" msgstr "" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servis" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokol" #: ../src/firewall-config:560 msgid "To Port" msgstr "Na port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Na adresu" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Upozorenje" #: ../src/firewall-config:1612 msgid "Error" msgstr "GreÅ¡ka" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ProsleÄ‘ivanje portova" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Izaberite opcije za izvor i odrediÅ¡te u zavisnosti od potreba." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / opseg portova:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP adresa:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Ako ukljuÄite lokalno prosleÄ‘ivanje, morate navesti port. Taj port se mora " "razlikovati od izvornog porta." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokalno prosleÄ‘ivanje" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Prosledi na neki drugi port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP vrsta" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Dodaj stavku" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "Da_toteka" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "Opcij_e" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Pomoć" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Na port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Maskiranje dozvoljava da postavite domaćina ili ruter koji povezuje vaÅ¡u " "lokalnu mrežu na internet. Lokalna mreža neće biti vidljiva i domaćini će se " "pojaviti kao jedna adresa na internetu. Maskiranje je samo za IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskiranje" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Dodajte stavke za prosleÄ‘ene portove ili sa jednog porta na neki drugi na " "lokalnom sistemu, ili sa lokalnog sistema na drugi sistem. ProsleÄ‘ivanje na " "drugi sistem je korisno samo ako je sprega maskirana. ProsleÄ‘ivanje portova " "je samo za IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Protokol za kontrolisanje internet poruka (ICMP — Internet Control Message " "Protocol) se uglavnom koristi za slanje poruka o greÅ¡kama izmeÄ‘u umreženih " "raÄunara, ali i dodatno za informativne poruke poput ping zahteva i odgovora." "" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "OznaÄite ICMP vrste na spisku koje želite odbiti. Svim ostalim ICMP vrstama " "je dozvoljeno da proÄ‘u kroz zaÅ¡titni zid. Podrazumevana opcija je bez " "ograniÄenja." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Filter za ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Uredi stavku" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Ukloni stavku" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port i protokol" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "" firewalld-0.4.4.6/po/sv.po000066400000000000000000001602141320241217000152360ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # denka , 2014 # denka , 2014 # Göran Uddeborg , 2012-2014 # Göran Uddeborg , 2015. #zanata # Göran Uddeborg , 2016. #zanata # Göran Uddeborg , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-06-02 03:59-0400\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/firewalld/" "language/sv/)\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Panelprogram för brandvägg" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Brandvägg" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Brandväggskonfiguration" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "brandvägg;nätverk;säkerhet;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Välj zon för gränssnittet â€%sâ€" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Standardzon" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Välj zon för anslutningen â€%sâ€" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Kunde inte sätta zonen {zone} för anslutningen {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Välj zon för källan â€%sâ€" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Konfigurera sköldar upp-/ner-zoner" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Här kan du välja zonerna som skall användas för sköldar upp och sköldar ner." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Denna funktion är användbar för folk som använder standardzoner för det " "mesta. För användare som byter zoner med anslutningar kan det vara av " "begränsad nytta." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Sköldar upp-zon:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Ã…terställ till standard" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Sköldar ner-zon:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Om %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Författare" #: ../src/firewall-applet:396 msgid "License" msgstr "Licens" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Sköldarna uppe" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Aktivera notifieringar" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Redigera brandväggsinställningar …" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Ändra zoner för anslutningar…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Konfigurera sköld upp-/nerzoner …" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Blockera all nätverkstrafik" #: ../src/firewall-applet:492 msgid "About" msgstr "Om" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "Anslutningar" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "Gränssnitt" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Källor" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Auktorisering misslyckades." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ogiltigt namn" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Namnet finns redan" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Zon: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Standardzon: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Misslyckades att hämta anslutningar frÃ¥n Nätverkshanteraren" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Inga importer frÃ¥n Nätverkshanteraren tillgängliga" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ingen anslutning till brandväggsdemonen" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "All nätverkstrafik är blockerad." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Standardzon: â€%sâ€" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Standardzonen â€{default_zone}†är aktiv för anslutningen â€{connection}†pÃ¥ " "gränssnittet â€{interface}â€" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Zonen â€{zone}†aktiv för anslutningen â€{connection}†pÃ¥ gränssnittet " "â€{interface}â€" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Zonen â€{zone}†aktiv för gränssnittet â€{interface}â€" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Zonen â€{zone}†aktiv för källa {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Inga aktiva zoner." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Anslutning till FirewallD etablerad." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Anslutning till FirewallD förlorad." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD har lästs om." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Standardzon ändrad till â€%sâ€." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Nätverkstrafik är inte längre blockerad." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "aktiverad" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "inaktiverad" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Standardzonen â€{default_zone}†{activated_deactivated} för anslutningen " "â€{connection}†pÃ¥ gränssnittet â€{interface}â€" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Zonen â€{zone}†{activated_deactivated} för anslutningen â€{connection}†pÃ¥ " "gränssnittet â€{interface}â€" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Zonen â€{zone}†{activated_deactivated} för gränssnittet â€{interface}â€" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Zonen â€%s†aktiverad för gränssnittet â€%sâ€" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Zonen â€{zone}†{activated_deactivated} för källa â€{source}â€" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Zonen â€%s†aktiverad för källa â€%sâ€" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Anslutningen till firewalld etablerad." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "Försöker ansluta till firewalld, väntar …" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Ändringar tillämpade." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "Används av nätverksanslutningen â€%sâ€" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Standardzonen används av nätverksanslutningen â€%sâ€" #: ../src/firewall-config:96 msgid "enabled" msgstr "aktiverad" #: ../src/firewall-config:97 msgid "disabled" msgstr "inaktiverad" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Misslyckades att läsa in ikoner." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "Körtillfälle" #: ../src/firewall-config:398 msgid "Permanent" msgstr "Permanent" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Tjänst" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protokoll" #: ../src/firewall-config:560 msgid "To Port" msgstr "Till port" #: ../src/firewall-config:562 msgid "To Address" msgstr "Till adress" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Bindningar" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "Post" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp-typ" #: ../src/firewall-config:817 msgid "Family" msgstr "Familj" #: ../src/firewall-config:819 msgid "Action" msgstr "Ã…tgärd" #: ../src/firewall-config:821 msgid "Element" msgstr "Element" #: ../src/firewall-config:823 msgid "Src" msgstr "Källa" #: ../src/firewall-config:825 msgid "Dest" msgstr "Dest" #: ../src/firewall-config:827 msgid "log" msgstr "logg" #: ../src/firewall-config:829 msgid "Audit" msgstr "Granskning" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Varning" #: ../src/firewall-config:1612 msgid "Error" msgstr "Fel" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "acceptera" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "avvisa" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "kasta" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "märk" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "gräns" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "tjänst" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "port" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "protokoll" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "maskera" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "källport" #: ../src/firewall-config:2071 msgid "level" msgstr "nivÃ¥" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ja" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Zon" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Standardzon: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Zon: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Zon â€%sâ€: Tjänsten â€%s†är inte tillgänglig." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Radera" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ignorera" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Zon â€%sâ€: ICMP-typen â€%s†är inte tillgänglig." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Inbyggd zon, namnbyte stödjs inte." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "sekund" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "minut" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "timme" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "dag" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "nödläge" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "larm" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "kritisk" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "fel" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "varning" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "meddelande" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "info" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "felsökning" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-typ" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "port för vidarebefordran" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "Vidarebefordran till ett annat system är endast användbart om gränssnittet " "är\n" "maskerat. Vill du maskera denna zon?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Inbyggd tjänst, namnbyte stödjs inte." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Ange en ipv4-adress pÃ¥ formen adress[/mask]." #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "Masken kan vara en nätverksmask eller ett tal." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Ange en ipv6-adress pÃ¥ formen adress[/mask]." #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "Masken är ett tal." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Ange en ipv4- eller ipv6-adress pÃ¥ formen adress[/mask]." #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Masken kan vara en nätverksmask eller ett tal för ipv4.\n" "Masken är ett tal för ipv6." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Inbyggd ipset, byte av namn stödjs inte." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Välj en fil" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "Textfiler" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "Alla filer" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "Alla" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "Inbyggd hjälpare, namnbyte stödjs inte." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Inbyggd icmp, namnbyte stödjs inte." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Misslyckades att läsa filen â€%sâ€: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Välj zon för källan %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adress" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Automatiska hjälpare" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Välj den automatiska väljaren värde:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Kommandorad" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Ange kommandoraden." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "Kontext" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Ange kontexten." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Välj standardzon frÃ¥n listan nedan." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "Direkt kedja" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "Välj ipv och tabell och ange kedjenamnet." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Kedja:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "rÃ¥" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "säkerhet" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "Tabell:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "Direkt passageregel" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Ange ipv och skriv in argumenten." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Arg:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Vidarebefordran av port" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Välj de käll- och destinationsalternativ som du behöver." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Portintervall:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP-adress:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokoll:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Källa" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Destination" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Om du aktiverar lokal vidarebefordran sÃ¥ mÃ¥ste du ange en port. Denna port " "kan inte vara samma port som källporten." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Lokal vidarebefordran" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Vidarebefordra till en annan port" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Inställningar för bashjälpare" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Konfigurera inställningar för bashjälpare" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "Poster i fetstil är obligatoriska, alla andra är frivilliga." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Namn:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Version:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Kort:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Beskrivning:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "Familj:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Modul:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Hjälpare" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Välj en hjälpare:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Grundinställningar för ICMP-typ" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Konfigurera grundinställningar för ICMP-typ:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP-typ" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Välj en ICMP-typ" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Lägg till post" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Lägg till poster frÃ¥n en fil" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Ta bort den valda posten" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Ta bort alla poster" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Ta bort poster frÃ¥n en fil" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Fil" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Alternativ" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Läs om Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Läser om brandväggsregler. Nuvarande permanenta konfiguration kommer bli ny " "körtidskonfiguration. D.v.s., alla ändringar som bara gjorts i det körande " "systemet fram till omläsningen gÃ¥r förlorade vid en omläsning om de inte " "även har gjorts i den permanenta konfigurationen." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Ändra vilken zon en nätverksanslutning hör till." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Ändra standardzon" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Ändra standardzon för anslutningar eller gränssnitt." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Ändra nekningslogg" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Ändra nekningsloggvärde." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "Konfigurera tilldelning av automatiska hjälpare" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "Konfigurera inställningar för tilldelning av automatiska hjälpare" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "Panikläge betyder att alla inkommande och utgÃ¥ende paket slängs." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Panikläge" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "Isolering lÃ¥ser brandväggskonfigurationen sÃ¥ att endast program pÃ¥ " "isoleringens vitlista kan ändra den." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "Isolering" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Gör körtidskonfigurationen permanent" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "Körtid till permanent" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "_Vy" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPMängder" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP-typer" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Hjälpare" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "Direkt konfiguration" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "Isoleringens vitlista" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Aktiva bindningar" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Hjälp" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Ändra bindningszon" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Dölj aktiva körtidsbindningar över anslutningar, gränssnitt och källor till " "zoner" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Visa aktiva körtidsbindningar över anslutningar, gränssnitt och källor till " "zoner" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "Konfiguration:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Nu synlig konfiguration. Körtidskonfigurationen är den aktiva " "konfigurationen. Permanent konfiguration kommer vara aktiv efter omläsning " "eller omstart av tjänsten eller systemet." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "En firewalld-zon definierar nivÃ¥n av tillit pÃ¥ nätverksförbindelser, " "gränssnitt och källadresser bundna till zonen. Zonen kombinerar tjänster, " "portar, protokoll, maskering, vidarebefordran av portar/paket, icmp-filter " "och rika regler. Zonen kan bindas till gränssnitt och källadresser." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Lägg till zon" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Redigera zon" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Radera zon" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Läs in standardinställningar för zon" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Här kan du definiera vilka tjänster som är betrodda i zonen. Betrodda " "tjänster är Ã¥tkomliga frÃ¥n alla värdar och nätverk som kan nÃ¥ maskinen frÃ¥n " "förbindelser, gränssnitt och källor bundna till denna zon." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Tjänster" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Lägg till ytterligare portar eller portintervall, vilka behöver vara " "Ã¥tkomliga för alla värdar eller nätverk som kan ansluta till maskinen." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Lägg till port" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Redigera port" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Radera port" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portar" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Lägg till protokoll, som behöver vara Ã¥tkomliga för alla värdar eller " "nätverk." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Lägg till protokoll" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Redigera protokoll" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Ta bort protokoll" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Protokoll" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Lägg till ytterligare källportar eller portintervall, vilka behöver vara " "Ã¥tkomliga för alla värdar eller nätverk som kan ansluta till maskinen." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Källportar" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Maskering gör att du kan sätta upp en värd eller router som ansluter till " "ditt lokala nätverket till internet. Ditt lokala nätverk syns inte och " "värdarna ser ut som de har en enda adress pÃ¥ internet. Maskering är endast " "för IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Maskerad zon" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Om du aktiverar maskering kommer IP-vidarebefordran aktiveras för dina IPv4-" "nätverk." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskering" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Lägg till poster för att vidarebefordra portar antingen frÃ¥n en port till en " "annan pÃ¥ det lokala systemet eller frÃ¥n det lokala systemet till ett annat " "system. Vidarebefordra till ett annat system är bara användbart om " "gränssnittet är maskerat. Vidarebefordran av portar är endast för IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Lägg till vidarebefordrad port" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Redigera vidarebefordrad port" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Radera vidarebefordrad port" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message Protocol (ICMP) används mest för att skicka " "felmeddelanden mellan nätverksdatorer, men ocksÃ¥ för informationsmeddelanden " "som ping-förfrÃ¥gningar och svar." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Markera i listan de ICMP-typer som skall nekas tillträde. Alla andra ICMP-" "typer tillÃ¥ts passera brandväggen. Standardvärdet är ingen begränsning av " "tillträde." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Om inverterat filter är aktivt accepteras märkta ICMP-poster och andra " "avvisas. I en zon med mÃ¥let DROP kastas de." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Invertera filter" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP-filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Här kan du ange regler i rikt sprÃ¥k för zonen." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Lägg till en rik regel" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Redigera en rik regel" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Ta bort en rik regel" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Rika regler" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Lägg till poster för att binda gränssnitt till zonen. Om gränssnittet " "kommer användas av en förbindelse kommer zonen att sättas till zonen som är " "angiven i förbindelsen." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Lägg till gränssnitt" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Redigera gränssnitt" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Radera gränssnitt" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Lägg till poster för att binda källadresser eller omrÃ¥den till zonen. Du " "kan ocksÃ¥ binda till en MAC-källadress, men med begränsningar. " "Vidarebefordran av portar och maskering kommer inte fungera för MAC-" "källbindningar." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Lägg till källa" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Redigera källa" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Radera källa" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Zoner" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "En firewalld-tjänst är en kombination av portar, protokoll, moduler och " "destinationsadresser." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Lägg till tjänst" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Redigera tjänst" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Radera tjänst" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Läs in standardvärden för tjänster" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Lägg till ytterligare portar eller portintervall, vilka behöver vara " "Ã¥tkomliga för alla värdar eller nätverk." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Redigera post" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "Radera post" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Lägg till ytterligare källportar eller portintervall, vilka behöver vara " "Ã¥tkomliga för alla värdar eller nätverk." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Källport" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "Netfilter-hjälpmoduler behövs för vissa tjänster." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Moduler" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Om du anger destinationsadresser kommer tjänsteposten vara begränsad till " "destinationsadressen och typ. Om bÃ¥da posterna är tomma finns det ingen " "sÃ¥dan begränsning." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "Tjänster kan endast ändras i vyn över permanent konfiguration. " "Konfigurationen av tjänster i det körande systemet är fast." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "En IPMängd kan användas för att skapa vit- eller svartlistningar och kan " "lagra till exempel IP-adresser, portnummer eller MAC-adresser." #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPMängd" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Lägg till IPMängd" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Redigera IPMängd" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Ta bort IPMängd" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Läs in IPMängd-standardvärden" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "Poster i IPMängden. Du kommer bara kunna se poster i ipmängder som inte " "använder alternativet tidsgräns, och endast posterna som har lagts till av " "firewalld. Poster som har lagts till direkt med kommandot ipset kommer inte " "listas här." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "Denna IPMängd använder alternativet tidsgräns, därför är inga poster synliga " "här. Posterna skall tas om hand direkt med kommandot ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Lägg till" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "Poster" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPMängder kan endast skapas eller tas bort i vyn med permanent konfiguration." "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "En firewalld icmp-typ ger information för en Internet Control Message " "Protocol (ICMP)-typ för firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Lägg till ICMP-typ" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Redigera ICMP-typ" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Radera ICMP-typ" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Läs in standardvärden för ICMP-typer" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Ange huruvida denna ICMP-typ är tillgänglig för IPv4 och/eller IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP-typer kan endast ändras i vyn över permanent konfiguration. " "Konfigurationen av ICMP-typer i det körande systemet är fast." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "En hjälpare som följer förbindelser assisterar för att fÃ¥ protokoll som " "använder olika flöden för signalering och dataöverföringar fungera. " "Dataöverföringarna använder portar som är orelaterade till " "signaleringsförbindelsen och blockeras därför av brandväggen utan hjälparen." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "Definiera portar eller portintervall som övervakas av hjälparen." #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "Den direkta konfigurationen ger en mer direkt Ã¥tkomst till brandväggen. " "Dessa alternativ förutsätter att användaren känner till grundläggande " "begrepp i iptables, t.ex. tabeller, kedjor, kommandon, parametrar och mÃ¥l. " "Direkt konfiguration bör bara användas som en sista utväg när det inte är " "möjligt att använda andra funktioner i firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Argumentet ipv i varje alternativ mÃ¥ste vara ipv4 eller ipv6 eller eb. Med " "ipv4 som stÃ¥r för iptables, med ipv6 för ip6tables och med eb för " "ethernätsbryggor (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Ytterligare kedjor att använda med regler." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Lägg till kedja" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Redigera kedja" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Ta bort kedja" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Kedjor" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Lägg till en regel med argumenten arg till en kedja i en tabell med en " "prioritet." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "Prioriteten används för att sortera regler. Prioritet 0 betyder lägg till " "en regel först i kedjan, med en högre prioritet kommer regeln läggas till " "längre ned. Regler med samma prioritet ligger pÃ¥ samma nivÃ¥ och ordningen " "mellan dessa regler är inte bestämd och kan ändras. Om du vill vara säker " "pÃ¥ att en regel kommer läggas till efter en annan, använd en lägre prioritet " "för den första och en högre för den följande." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Lägg till regel" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Redigera regel" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Radera regel" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Regler" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "Passageregler skickas direkt vidare till brandväggen och placeras inte i " "speciella kedjor. Alla flaggor till iptables, ip6tables och ebtables kan " "användas." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "Var försiktig med passageregler för att inte skada brandväggen." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Lägg till en passageregel" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Redigera passageregel" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Ta bort passageregel" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "Passageregel" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "Funktionen isolering är en lättversion av policyer för användare och program " "för firewalld. Det begränsar ändringar av brandväggen. Isoleringens " "vitlista kan innehÃ¥lla kommandon, kontexter, användare och användar-id:n." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "Kontexten är säkerhetskontexten (SELinux) av ett körande program eller " "tjänst. För att fÃ¥ kontexten för ett körande program använd ps -e --" "context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Lägg till kontext" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Redigera kontext" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Ta bort kontext" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "Kontexter" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Om en kommandopost pÃ¥ vitlistan slutar med en asterisk â€*†kommer alla " "kommandorader som startar med kommandot att matcha. Om en â€*†inte finns " "där mÃ¥ste det precisa kommandot inklusive argument matcha." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Lägg till kommandorad" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Redigera kommandorad" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Ta bort kommandorad" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Kommandorader" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Användarnamn." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Lägg till användarnamn" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Redigera användarnamn" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Radera användarnamn" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Användarnamn" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Användar-id:n." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Lägg till användar-id" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Redigera användar-id" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Radera användar-id" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Användar-id:n" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Systemets nuvarande standardzon." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Nekningslogg:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Panikläge:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Automatiska hjälpare:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Isolering:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Standardzon:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "Gränssnitt" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Bas-IPMängd-inställningar" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Konfigurera bas-ipmängd-inställningar:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Typ:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Tidsgräns:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Hash-storlek:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelement:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Tidsgränsvärde i sekunder" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Initial hash-storlek, standard 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "Maximalt antal element, standar 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Välj en ipmängd:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Nekningslogg" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Välj värdet pÃ¥ nekningsloggen:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Märk" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Ange ett märke och eventuellt en mask." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "Märkes- och maskfälten är bÃ¥da 32 bitar breda teckenlösa tal." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Märke:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "Mask:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "Välj en netfilter conntrack-hjälpare:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Välj -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Annan modul:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Port och protokoll" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Ange en port och ett protokoll." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "Direkt regel" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "Välj ipv och tabell, kedjeprioritet och ange argumenten." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "Prioritet:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Ange ett protokoll." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Andra protokoll:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Rik regel" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Ange en rik regel." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "För vit- eller svartlistning av värdar eller nätverk deaktivera elementet." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Källa:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "Destination:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Logg:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Granskning:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 och IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "inverterad" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "För att aktivera detta mÃ¥ste Ã…tgärd vara â€avvisa†och Familj antingen â€ipv4†" "eller â€ipv6†(inte bÃ¥da)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "med typ:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "Med gräns:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "Prefix:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "NivÃ¥:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Element:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "Ã…tgärd:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Grundinställningar för tjänster" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Konfigurera grundinställningar för tjänster:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Välj en tjänst." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Användar-id" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Ange användar-id." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Användarnamn" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Ange användarnamnet." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "etikett" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Inställningar för baszon" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Konfigurera inställningar för baszon:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "StandardmÃ¥l" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "MÃ¥l:" firewalld-0.4.4.6/po/ta.po000066400000000000000000002136661320241217000152240ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Felix , 2006-2007 # I felix , 2007 # I Felix , 2010-2011 # I. Felix , 2008-2009 # Jayaradha N , 2004 # Jayaradha N , 2004-2005 # Priyadharsini , 2008,2010 # shkumar , 2013-2014 # shkumar , 2013-2014 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-02-26 10:04-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Tamil (http://www.transifex.com/projects/p/firewalld/language/" "ta/)\n" "Language: ta\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ஃபயரà¯à®µà®¾à®²à¯ அபà¯à®ªà®²à¯†à®Ÿà¯" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ஃபயரà¯à®µà®¾à®²à¯" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ஃபயரà¯à®µà®¾à®²à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "இடைமà¯à®•ம௠'%s' கà¯à®•௠மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®®à¯" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "இணைபà¯à®ªà¯ %s கà¯à®•௠மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ஷீலà¯à®Ÿà¯à®•ள௠மேலே/கீழே மணà¯à®Ÿà®²à®™à¯à®•ளை அமைவாகà¯à®•ம௠" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "இஙà¯à®•௠நீஙà¯à®•ள௠ஷீலà¯à®Ÿà¯à®•ள௠மேலே மறà¯à®±à¯à®®à¯ ஷீலà¯à®Ÿà¯à®•ள௠கீழே எனà¯à®ªà®µà®±à¯à®±à¯à®•à¯à®•à¯à®ªà¯ " "பயனà¯à®ªà®Ÿà¯à®®à¯ மணà¯à®Ÿà®²à®™à¯à®•ளைத௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•லாமà¯." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "இநà¯à®¤ à®…à®®à¯à®šà®®à¯ பெரà¯à®®à¯à®ªà®¾à®²à¯à®®à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®™à¯à®•ளைப௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ " "நபரà¯à®•ளà¯à®•à¯à®•à¯à®ªà¯ பயனà¯à®³à¯à®³à®¤à¯. இணைபà¯à®ªà¯à®•ளின௠மணà¯à®Ÿà®²à®™à¯à®•ளை மாறà¯à®±à¯à®®à¯ பயனரà¯à®•ளà¯à®•à¯à®•௠இத௠" "வரமà¯à®ªà¯à®•à¯à®•à¯à®Ÿà¯à®ªà®Ÿà¯à®Ÿ பயனà¯à®³à¯à®³à®¤à®¾à®• இரà¯à®•à¯à®•à¯à®®à¯." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "ஷீலà¯à®Ÿà¯à®•ள௠மேலே மணà¯à®Ÿà®²à®®à¯:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "ஷீலà¯à®Ÿà¯à®•ள௠கீழே மணà¯à®Ÿà®²à®®à¯:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "ஷீலà¯à®Ÿà¯à®•ள௠மேலே" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "அறிவிபà¯à®ªà¯à®•ளை செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ஃபயரà¯à®µà®¾à®²à¯ அமைவà¯à®•ளைத௠திரà¯à®¤à¯à®¤à¯..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "இணைபà¯à®ªà¯à®•ளின௠மணà¯à®Ÿà®²à®™à¯à®•ளை மாறà¯à®±à¯..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "ஷீலà¯à®Ÿà¯à®•ள௠மேலே/கீழே மணà¯à®Ÿà®²à®™à¯à®•ளை அமைவாகà¯à®•ம௠செயà¯..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "அனைதà¯à®¤à¯ பிணைய போகà¯à®•à¯à®µà®°à®¤à¯à®¤à¯ˆà®¯à¯à®®à¯ தடà¯" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "இணைபà¯à®ªà¯à®•ளà¯" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "மூலஙà¯à®•ளà¯" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "à®…à®™à¯à®•ீகாரம௠தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "தவறான அளவà¯à®°à¯ %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "பெயர௠à®à®±à¯à®•னவே உளà¯à®³à®¤à¯" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ஃபயரà¯à®µà®¾à®²à¯ டீமனà¯à®Ÿà®©à¯ இணைபà¯à®ªà¯ எதà¯à®µà¯à®®à¯ இலà¯à®²à¯ˆ" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "அனைதà¯à®¤à¯ பிணைய போகà¯à®•à¯à®µà®°à®¤à¯à®¤à¯à®®à¯ தடà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®®à¯: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "இடைமà¯à®•ம௠'{interface}' இல௠உளà¯à®³ இணைபà¯à®ªà¯ '{connection}' கà¯à®•௠மணà¯à®Ÿà®²à®®à¯ '{zone}' " "செயலில௠" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "இடைமà¯à®•ம௠'{interface}' கà¯à®•௠மணà¯à®Ÿà®²à®®à¯ '{zone}' செயலில௠உளà¯à®³à®¤à¯" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "மூலம௠{source} கà¯à®•௠மணà¯à®Ÿà®²à®®à¯ '{zone}' செயலில௠உளà¯à®³à®¤à¯" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "செயலில௠உளà¯à®³ மணà¯à®Ÿà®²à®™à¯à®•ள௠எதà¯à®µà¯à®®à¯ இலà¯à®²à¯ˆ." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD கà¯à®•ான இணைபà¯à®ªà¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD கà¯à®•ான இணைபà¯à®ªà¯ இழகà¯à®•பபà¯à®Ÿà¯à®Ÿà®¤à¯." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD மீளேறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®®à¯ '%s' என மா." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "பிணைய போகà¯à®•à¯à®µà®°à®¤à¯à®¤à¯ இபà¯à®ªà¯‹à®¤à¯ தடà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¿à®²à¯à®²à¯ˆ." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "இடைமà¯à®•ம௠'{interface}' இல௠உளà¯à®³ இணைபà¯à®ªà¯ '{connection}' கà¯à®•ான மணà¯à®Ÿà®²à®®à¯ " "'{zone}' {activated_deactivated}" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "இடைமà¯à®•ம௠'{interface}' கà¯à®•ான மணà¯à®Ÿà®²à®®à¯ '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "இடைமà¯à®•ம௠'%s' கà¯à®•ான மணà¯à®Ÿà®²à®®à¯ '%s' செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "மூலம௠'{source}' கà¯à®•௠மணà¯à®Ÿà®²à®®à¯ '{zone}' {activated_deactivated}" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "மூலம௠'%s' கà¯à®•௠மணà¯à®Ÿà®²à®®à¯ '%s' செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "மாறà¯à®±à®™à¯à®•ள௠செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®©." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "பிணைய இணைபà¯à®ªà¯ '%s' ஆல௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®µà®¤à¯" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../src/firewall-config:97 msgid "disabled" msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "சினà¯à®©à®™à¯à®•ளை à®à®±à¯à®±à®¤à¯à®¤à®¿à®²à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "நிகழà¯à®¨à¯‡à®°à®®à¯" #: ../src/firewall-config:398 msgid "Permanent" msgstr "நிரநà¯à®¤à®°à®®à®¾à®©" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "சேவை" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "தà¯à®±à¯ˆ" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "நெறிமà¯à®±à¯ˆ" #: ../src/firewall-config:560 msgid "To Port" msgstr "தà¯à®±à¯ˆà®•à¯à®•à¯" #: ../src/firewall-config:562 msgid "To Address" msgstr "à®®à¯à®•வரிகà¯à®•à¯" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp வகை" #: ../src/firewall-config:817 msgid "Family" msgstr "கà¯à®Ÿà¯à®®à¯à®ªà®®à¯" #: ../src/firewall-config:819 msgid "Action" msgstr "செயலà¯" #: ../src/firewall-config:821 msgid "Element" msgstr "கூ" #: ../src/firewall-config:823 msgid "Src" msgstr "Src" #: ../src/firewall-config:825 msgid "Dest" msgstr "இலகà¯à®•à¯" #: ../src/firewall-config:827 msgid "log" msgstr "பதிவà¯" #: ../src/firewall-config:829 msgid "Audit" msgstr "தணிகà¯à®•ை" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "எசà¯à®šà®°à®¿à®•à¯à®•ை" #: ../src/firewall-config:1612 msgid "Error" msgstr "பிழை" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "à®" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "நிரா" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "விடà¯à®•" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "வரமà¯à®ªà¯" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "சேவை" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "தà¯à®±à¯ˆ" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "நெறிமà¯à®±à¯ˆ" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "போ" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "நிலை" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "ஆமà¯" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "மணà¯à®Ÿà®²à®®à¯" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "மணà¯à®Ÿà®²à®®à¯ '%s': சேவை '%s' கிடைகà¯à®•விலà¯à®²à¯ˆ." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "நீகà¯à®•à¯" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "பà¯à®±à®•à¯à®•ணி" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "மணà¯à®Ÿà®²à®®à¯ '%s': ICMP வகை '%s' கிடைகà¯à®•விலà¯à®²à¯ˆ." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "உளà¯à®³à®®à¯ˆà®¨à¯à®¤ மணà¯à®Ÿà®²à®®à¯. மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿ ஆதரவிலà¯à®²à¯ˆ." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "வினா" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "நிமிடமà¯" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "மணி" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "நாளà¯" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "அவசரமà¯" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "எசà¯à®šà®°à®¿à®•à¯à®•ை" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "மிக " #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "பிழை" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "எசà¯à®šà®°à®¿à®•à¯à®•ை" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "அறிகà¯à®•ை" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "தகவலà¯" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "வழ௠நீகà¯à®•à¯" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà®²à¯ தà¯à®±à¯ˆ" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "இடைமà¯à®•ம௠போலிதà¯à®¤à¯‹à®±à¯à®±à®®à®¾à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®¨à¯à®¤à®¾à®²à¯ மடà¯à®Ÿà¯à®®à¯‡ மறà¯à®±à¯Šà®°à¯ கணினிகà¯à®•௠" "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯ எனà¯à®ªà®¤à¯ பயனà¯à®³à¯à®³à®¤à®¾à®• இரà¯à®•à¯à®•à¯à®®à¯.\n" "இநà¯à®¤ மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆ போலிதà¯à®¤à¯‹à®±à¯à®±à®®à®¾à®•à¯à®• வேணà¯à®Ÿà¯à®®à®¾ ?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "உளà¯à®³à®®à¯ˆà®¨à¯à®¤ சேவை. மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿ ஆதரவிலà¯à®²à¯ˆ." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "உளà¯à®³à®®à¯ˆà®¨à¯à®¤ icmp, மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿ ஆதரவிலà¯à®²à¯ˆ." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "மூலம௠%s கà¯à®•௠மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "à®®à¯à®•வரி" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "கடà¯à®Ÿà®³à¯ˆ வரியை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "சூழலை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" "கீழே உளà¯à®³ படà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ இரà¯à®¨à¯à®¤à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "நேரடி சஙà¯à®•ிலி" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "ipv மறà¯à®±à¯à®®à¯ அடà¯à®Ÿà®µà®©à¯ˆà®¯à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à¯ சஙà¯à®•ிலி பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "சஙà¯à®•ிலி:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "அசலà¯" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "பாதà¯à®•ாபà¯à®ªà¯" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "அடà¯à®Ÿà®µà®£à¯ˆ:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "நேரடி பாஸà¯à®¤à¯à®°à¯‚ விதி" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ipv à®à®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à¯ மதிபà¯à®ªà¯à®°à¯à®•à¯à®•ளை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "மதிபà¯à®ªà¯à®°à¯à®•à¯à®•ளà¯:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "தà¯à®±à¯ˆ à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "உஙà¯à®•ள௠தேவைகà¯à®•ேறà¯à®ª மூல மறà¯à®±à¯à®®à¯ இலகà¯à®•௠விரà¯à®ªà¯à®ªà®™à¯à®•ளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "தà¯à®±à¯ˆ / தà¯à®±à¯ˆ வரமà¯à®ªà¯:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP à®®à¯à®•வரி:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "நெறிமà¯à®±à¯ˆ:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "மூலமà¯" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "இலகà¯à®•à¯" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "நீஙà¯à®•ள௠உளà¯à®³à®®à¯ˆ à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯ˆ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯, நீஙà¯à®•ள௠ஒர௠தà¯à®±à¯ˆà®¯à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ " "வேணà¯à®Ÿà¯à®®à¯. இநà¯à®¤ தà¯à®±à¯ˆ மூல தà¯à®±à¯ˆà®•à¯à®•௠வேறாக இரà¯à®•à¯à®•à¯à®®à¯." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "உளà¯à®³à®®à¯ˆ à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "வேற௠தà¯à®±à¯ˆà®•à¯à®•௠திரà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®•ிறதà¯" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "தடிமனாக உளà¯à®³ உளà¯à®³à¯€à®Ÿà¯à®•ள௠கடà¯à®Ÿà®¾à®¯à®®à¯ தேவை, மறà¯à®± அனைதà¯à®¤à¯à®®à¯ கடà¯à®Ÿà®¾à®¯à®®à®²à¯à®²." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "பெயரà¯:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "பதிபà¯à®ªà¯:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "சிறிய:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "விளகà¯à®•à®®à¯:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "கà¯à®Ÿà¯à®®à¯à®ªà®®à¯:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ ICMP வகை அமைவà¯à®•ளà¯" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ ICMP வகை அமைவà¯à®•ளை அமைவாகà¯à®•ம௠செயà¯à®¯à®µà¯à®®à¯:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP வகை" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "ஒர௠ICMP வகையைத௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "உளà¯à®³à¯€à®Ÿà¯à®Ÿà¯ˆà®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "கோபà¯à®ªà¯ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "விரà¯à®ªà¯à®ªà®™à¯à®•ள௠(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld ஠மீளேறà¯à®±à¯" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ஃபயரà¯à®µà®¾à®²à¯ விதிகளை மீளேறà¯à®±à¯à®®à¯. நடபà¯à®ªà¯ நிரநà¯à®¤à®° அமைவாகà¯à®•ம௠பà¯à®¤à®¿à®¯ நிகழ௠நேர " "அமைவாகà¯à®•மாக மாறà¯à®®à¯. அதாவதà¯, மீளேறà¯à®±à®®à¯ வரை செயà¯à®¤ நிகழ௠நேரதà¯à®¤à®¿à®±à¯à®•௠மடà¯à®Ÿà¯à®®à®¾à®© " "மாறà¯à®±à®™à¯à®•ள௠அனைதà¯à®¤à¯à®®à¯, அவை நிரநà¯à®¤à®° அமைவாகà¯à®•தà¯à®¤à®¿à®²à¯à®®à¯ இலà¯à®²à®¾à®®à®²à¯ இரà¯à®¨à¯à®¤à®¾à®²à¯, " "மீளேறà¯à®±à¯à®®à¯ போத௠இழகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "ஒர௠பிணைய இணைபà¯à®ªà¯ சாரà¯à®¨à¯à®¤à¯à®³à¯à®³ மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆ மாறà¯à®±à®µà¯à®®à¯." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆ மாறà¯à®±à¯" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "இணைபà¯à®ªà¯à®•ள௠அலà¯à®²à®¤à¯ இடைமà¯à®•à®™à¯à®•ளà¯à®•à¯à®•ான à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆ மாறà¯à®±à®µà¯à®®à¯." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "பேனிக௠பயனà¯à®®à¯à®±à¯ˆ எனà¯à®ªà®¤à¯, உளà¯à®µà®°à¯à®®à¯ மறà¯à®±à¯à®®à¯ வெளிசà¯à®šà¯†à®²à¯à®²à¯à®®à¯ சிபà¯à®ªà®™à¯à®•ள௠அனைதà¯à®¤à¯à®®à¯ " "கைவிடபà¯à®ªà®Ÿà¯à®Ÿà®© எனà¯à®ªà®¤à¯ˆà®•௠கà¯à®±à®¿à®•à¯à®•ிறதà¯." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "பேனிக௠பயனà¯à®®à¯à®±à¯ˆ" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "லாகà¯à®Ÿà®µà¯à®©à¯ எனà¯à®ªà®¤à¯ ஃபயரà¯à®µà®¾à®²à¯ அமைவாகà¯à®•தà¯à®¤à¯ˆà®ªà¯ பூடà¯à®Ÿà¯à®®à¯, இதனால௠லாகà¯à®Ÿà®µà¯à®©à¯ " "வெணà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ உளà¯à®³ பயனà¯à®ªà®¾à®Ÿà¯à®•ள௠மடà¯à®Ÿà¯à®®à¯‡ இதை மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à¯à®®à¯." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "லாகà¯à®Ÿà®µà¯à®©à¯" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "இயகà¯à®•நேர அமைவாகà¯à®•தà¯à®¤à¯ˆ நிரநà¯à®¤à®°à®®à®¾à®©à®¤à®¾" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "இயகà¯à®• நேரதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நிரநà¯à®¤à®° அமைவà¯à®•à¯à®•à¯" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "பாரà¯à®µà¯ˆ (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP வகை" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "நேரடி அமைவாகà¯à®•à®®à¯" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "லாகà¯à®Ÿà®µà¯à®©à¯ வெணà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à¯" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "உதவி (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "அமைவாகà¯à®•à®®à¯:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "தறà¯à®ªà¯‹à®¤à¯ பà¯à®²à®©à®¾à®•à¯à®®à¯ அமைவாகà¯à®•à®®à¯. நிகழà¯à®¨à¯‡à®° அமைவாகà¯à®•மானத௠உணà¯à®®à¯ˆà®¯à®¿à®²à¯ செயலில௠உளà¯à®³ " "அமைவாகà¯à®•மாகà¯à®®à¯. சேவை அலà¯à®²à®¤à¯ கணினி மீளேறà¯à®±à®¿à®¯à®¤à¯à®®à¯ அலà¯à®²à®¤à¯ மறà¯à®¤à¯Šà®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯à®®à¯ " "நிரநà¯à®¤ அமைவாகà¯à®•ம௠செயலாகà¯à®®à¯." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "ஒர௠firewalld மணà¯à®Ÿà®²à®®à®¾à®©à®¤à¯ அநà¯à®¤ மணà¯à®Ÿà®²à®¤à¯à®¤à¯à®•à¯à®•à¯à®°à®¿à®¯ பிணைய இணைபà¯à®ªà¯à®•ளà¯, இடைமà¯à®•à®™à¯à®•ள௠" "மறà¯à®±à¯à®®à¯ மூல à®®à¯à®•வரிகளின௠நமà¯à®ªà®•தà¯à®¤à®©à¯à®®à¯ˆà®¯à®¿à®©à¯ நிலையை வரையறà¯à®•à¯à®•ிறதà¯. மணà¯à®Ÿà®²à®®à®¾à®©à®¤à¯ " "சேவைகளà¯, à®®à¯à®©à¯ˆà®¯à®™à¯à®•ளà¯, நெறிமà¯à®±à¯ˆà®•ளà¯, masquerading, à®®à¯à®©à¯ˆà®¯à®®à¯/பேகà¯à®•ெட௠பகிரà¯à®¤à®²à¯, " "icmp வடிகடà¯à®Ÿà®¿à®•ள௠மறà¯à®±à¯à®®à¯ உயர௠விதிகள௠ஆகியவறà¯à®±à¯ˆ உளà¯à®³à®Ÿà®•à¯à®•ியதà¯. மணà¯à®Ÿà®²à®®à®¾à®©à®¤à¯ " "இடைமà¯à®•à®™à¯à®•ள௠மறà¯à®±à¯à®®à¯ மூல à®®à¯à®•வரிகளà¯à®•à¯à®•௠கடà¯à®Ÿà¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®µà¯ˆà®¯à®¾à®• இரà¯à®•à¯à®•லாமà¯." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "மணà¯à®Ÿà®²à®¤à¯à®¤à¯ˆ நீ" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "மணà¯à®Ÿà®²à®¤à¯à®¤à®¿à®©à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•ளை à®" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "இஙà¯à®•௠மணà¯à®Ÿà®²à®¤à¯à®¤à®¿à®²à¯ எநà¯à®¤ சேவைகளை நமà¯à®ªà®²à®¾à®®à¯ என நீஙà¯à®•ள௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à®¾à®®à¯. நமà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿ " "சேவைகள௠இநà¯à®¤ மணà¯à®Ÿà®²à®¤à¯à®¤à¯à®•à¯à®•à¯à®°à®¿à®¯ இணைபà¯à®ªà¯à®•ளà¯, இடைமà¯à®•à®™à¯à®•ள௠மறà¯à®±à¯à®®à¯ " "மூலஙà¯à®•ளிலிரà¯à®¨à¯à®¤à¯ கணினியை அணà¯à®•கà¯à®•ூடிய அனைதà¯à®¤à¯ பà¯à®°à®µà®²à®©à¯à®•ள௠மறà¯à®±à¯à®®à¯ " "பிணையஙà¯à®•ளிலிரà¯à®¨à¯à®¤à¯ அணà¯à®•பà¯à®ªà®Ÿ à®®à¯à®Ÿà®¿à®¯à¯à®®à¯." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "சேவைகளà¯" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "கணினியà¯à®Ÿà®©à¯ இணைகà¯à®• à®®à¯à®Ÿà®¿à®•ினà¯à®± அனைதà¯à®¤à¯ வழஙà¯à®•ிகள௠அலà¯à®²à®¤à¯ பிணையஙà¯à®•ளà¯à®•à¯à®•à¯à®®à¯ " "அணà¯à®•கà¯à®•ூடியதாக இரà¯à®•à¯à®• வேணà¯à®Ÿà®¿à®¯ கூடà¯à®¤à®²à¯ à®®à¯à®©à¯ˆà®¯à®™à¯à®•ள௠அலà¯à®²à®¤à¯ à®®à¯à®©à¯ˆà®¯ வரமà¯à®ªà¯à®•ளைச௠" "சேரà¯à®•à¯à®•வà¯à®®à¯." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "தà¯à®±à¯ˆà®•à¯à®•à¯" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "தà¯à®±à¯ˆà®¯à¯ˆ திரà¯à®¤à¯à®¤à®µà¯à®®à¯" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "தà¯à®±à¯ˆà®¯à¯ˆ நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "தà¯à®±à¯ˆà®•ளà¯" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading உஙà¯à®•ளை ஒர௠பà¯à®°à®µà®²à®©à¯ அலà¯à®²à®¤à¯ ரௌடà¯à®Ÿà®°à¯ˆ அமைகà¯à®•ிறதà¯, இத௠இணையதà¯à®¤à®¿à®²à¯ " "உஙà¯à®•ள௠உளà¯à®³à®®à¯ˆ பிணையதà¯à®¤à®¿à®²à¯ இணைகà¯à®•ிறதà¯. உஙà¯à®•ள௠உளà¯à®³à®®à¯ˆ பிணையம௠தெரியாத௠மறà¯à®±à¯à®®à¯ " "பà¯à®°à®µà®²à®©à¯à®•ள௠ஒர௠ஒறà¯à®±à¯ˆ à®®à¯à®•வரியில௠இணையதà¯à®¤à®¿à®²à¯ தோனà¯à®±à¯à®®à¯ Masquerading IPv4 " "மடà¯à®Ÿà¯à®®à¯‡." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "போலி மணà¯à®Ÿà®²à®®à¯" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "நீஙà¯à®•ள௠masquerading ஠செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯, உஙà¯à®•ள௠IPv4 பிணையஙà¯à®•ளà¯à®•à¯à®•௠IP " "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯à®®à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "உளà¯à®³à¯€à®Ÿà¯à®•ளை சேரà¯à®•à¯à®• ஒர௠தà¯à®±à¯ˆà®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ மறà¯à®±à¯Šà®©à¯à®±à®¿à®±à¯à®•௠உளà¯à®³à®®à¯ˆ கணினி அலà¯à®²à®¤à¯ வேற௠" "கணினியிலிரà¯à®¨à¯à®¤ சேரà¯à®•à¯à®•வà¯à®®à¯. வேற௠கணினியை à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®µà®¤à¯ à®®à¯à®•பà¯à®ªà¯ சரியாக " "இரà¯à®¨à¯à®¤à®¾à®²à¯ மடà¯à®Ÿà¯à®®à¯‡ பயனாக இரà¯à®•à¯à®•à¯à®®à¯. தà¯à®±à¯ˆ à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà¯à®¤à®²à¯ IPv4 இல௠மடà¯à®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà®²à¯ தà¯à®±à¯ˆà®¯à¯ˆà®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà®²à¯ தà¯à®±à¯ˆà®¯à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "à®®à¯à®©à¯à®©à®©à¯à®ªà¯à®ªà®²à¯ தà¯à®±à¯ˆà®¯à¯ˆ நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Internet Control Message Protocol (ICMP) எனà¯à®ªà®¤à¯ à®®à¯à®•à¯à®•ியமாக பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®®à¯ " "பிணையபà¯à®ªà®Ÿà¯à®Ÿ கணினிகளà¯à®•à¯à®•ிடையே அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®®à¯ பிழை செயà¯à®¤à®¿à®•ள௠ஆனால௠கூடà¯à®¤à®²à®¾à®• " "தகவல௠செயà¯à®¤à®¿à®•ளே வரà¯à®•ிறதà¯." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "படà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ ICMP வகைகளை கà¯à®±à®¿à®•à¯à®•வà¯à®®à¯, அத௠நிராகரிகà¯à®•பà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯. மறà¯à®± " "அனைதà¯à®¤à¯ ICMP வகைகளà¯à®®à¯ ஃபயரà¯à®µà®¾à®²à®¿à®©à¯ வழியாக செலà¯à®²à¯à®®à¯. à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯à®•à¯à®•௠வரமà¯à®ªà¯ " "இலà¯à®²à¯ˆ." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP வடிபà¯à®ªà®¿" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "மணà¯à®Ÿà®²à®¤à¯à®¤à®¿à®±à¯à®•ான உயர௠மொழி விதிகளை இஙà¯à®•௠நீஙà¯à®•ள௠அமைகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "உயர௠விதியைச௠சேரà¯" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "உயர௠விதியைத௠திரà¯à®¤à¯à®¤à®µà¯à®®à¯" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "உயர௠விதியை நீகà¯à®•வà¯à®®à¯" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "உயர௠விதிகளà¯" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "மணà¯à®Ÿà®²à®¤à¯à®¤à®¿à®±à¯à®•௠இடைமà¯à®•à®™à¯à®•ளைப௠பிணைகà¯à®• உளà¯à®³à¯€à®Ÿà¯à®•ளைச௠சேரà¯à®•à¯à®•வà¯à®®à¯. இடைமà¯à®•ம௠ஒர௠" "இணைபà¯à®ªà®¾à®²à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®®à¯ எனிலà¯, மணà¯à®Ÿà®²à®®à®¾à®©à®¤à¯ இணைபà¯à®ªà®¿à®²à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ " "மணà¯à®Ÿà®²à®®à®¾à®• அமைகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "இடைமà¯à®•தà¯à®¤à¯ˆà®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "இடைமà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "இடைமà¯à®•தà¯à®¤à¯ˆ நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "மூலதà¯à®¤à¯ˆà®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "மூலதà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "மூலதà¯à®¤à¯ˆ நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "மணà¯à®Ÿà®²à®™à¯à®•ளà¯" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "ஒர௠firewalld சேவையானத௠மà¯à®©à¯ˆà®¯à®™à¯à®•ளà¯, நெறிமà¯à®±à¯ˆà®•ளà¯, தொகà¯à®¤à®¿à®•à¯à®•ூறà¯à®•ள௠மறà¯à®±à¯à®®à¯ " "இலகà¯à®•௠மà¯à®•வரிகள௠ஆகியவறà¯à®±à®¿à®©à¯ சேரà¯à®•à¯à®•ையாகà¯à®®à¯." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "சேவையைச௠சேரà¯" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "சேவையைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "சேவையை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "சேவை à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•ளை à®à®±à¯à®±à¯" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "உளà¯à®³à¯€à®Ÿà¯à®Ÿà¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "உளà¯à®³à¯€à®Ÿà¯à®Ÿà¯ˆ நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "தொகà¯à®¤à®¿à®•à¯à®•ூ" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "நீஙà¯à®•ள௠இலகà¯à®•௠மà¯à®•வரிகளைக௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿà®¾à®²à¯, சேவையின௠நà¯à®´à¯ˆà®µà®¾à®©à®¤à¯ அநà¯à®¤ இலகà¯à®•௠" "à®®à¯à®•வரி மறà¯à®±à¯à®®à¯ வகைகà¯à®•௠மடà¯à®Ÿà¯à®®à¯ என வரமà¯à®ªà¯à®Ÿà¯ˆà®¯à®¤à®¾à®• இரà¯à®•à¯à®•à¯à®®à¯. இரணà¯à®Ÿà¯ " "உளà¯à®³à¯€à®Ÿà¯à®•ளà¯à®®à¯ காலியாக இரà¯à®¨à¯à®¤à®¾à®²à¯ வரமà¯à®ªà¯ à®à®¤à¯à®®à¯ இலà¯à®²à¯ˆ." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "சேவைகளை நிரநà¯à®¤à®° அமைவாகà¯à®•க௠காடà¯à®šà®¿à®¯à®¿à®²à¯ மடà¯à®Ÿà¯à®®à¯‡ மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à¯à®®à¯. சேவைகளின௠" "நிகழà¯à®¨à¯‡à®° அமைவாகà¯à®•ம௠நிலையானதà¯. " #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmptype ஆனத௠firewalld இன௠இணைய கடà¯à®Ÿà¯à®ªà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ செயà¯à®¤à®¿ " "நெறிமà¯à®±à¯ˆà®•à¯à®•ான (ICMP) தகவலை வழஙà¯à®•à¯à®•ிறதà¯." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP வகையை சேரà¯à®•à¯à®•வà¯à®®à¯" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP வகையைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "தொலைநிலை ICMP வகை" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP வகை à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•ளை à®" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" "இநà¯à®¤ ICMP வகை IPv4 மறà¯à®±à¯à®®à¯/அலà¯à®²à®¤à¯ IPv6 கà¯à®•à¯à®•௠கிடைகà¯à®•à¯à®®à®¾ எனà¯à®ªà®¤à¯ˆà®•௠" "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP வகைகளை நிரநà¯à®¤à®° அமைவாகà¯à®•க௠காடà¯à®šà®¿à®¯à®¿à®²à¯ மடà¯à®Ÿà¯à®®à¯‡ மாறà¯à®±à®šà¯ à®®à¯à®Ÿà®¿à®¯à¯à®®à¯. ICMP " "வகைகளின௠நிகழà¯à®¨à¯‡à®° அமைவாகà¯à®•ம௠நிலையானதà¯." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "நேரடி அமைவாகà¯à®•மானத௠ஃபயரà¯à®µà®¾à®²à¯à®•à¯à®•ான கூடà¯à®¤à®²à¯ நேரடி அணà¯à®•லைக௠கொடà¯à®•à¯à®•ிறதà¯. இநà¯à®¤ " "விரà¯à®ªà¯à®ªà®™à¯à®•ளைப௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤, பயனரà¯à®•à¯à®•௠அடிபà¯à®ªà®Ÿà¯ˆ iptables கரà¯à®¤à¯à®¤à¯à®•ள௠" "தெரிநà¯à®¤à®¿à®°à¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯ அதாவதà¯, அடà¯à®Ÿà®µà®£à¯ˆà®•ளà¯, சஙà¯à®•ிலிகளà¯, கடà¯à®Ÿà®³à¯ˆà®•ளà¯, " "அளவà¯à®°à¯à®•à¯à®•ள௠மறà¯à®±à¯à®®à¯ இலகà¯à®•à¯à®•ள௠போனà¯à®±à®µà¯ˆ தெரிநà¯à®¤à®¿à®°à¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯. மறà¯à®± ஃபயரà¯à®µà®¾à®²à¯ " "à®…à®®à¯à®šà®™à¯à®•ளை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ போகà¯à®®à¯ போத௠கடைசி விரà¯à®ªà¯à®ªà®®à®¾à®•வே நேரடி " "அமைவாகà¯à®•மானத௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "ஒவà¯à®µà¯Šà®°à¯ விரà¯à®ªà¯à®ªà®¤à¯à®¤à®¿à®©à¯ ipv மதிபà¯à®ªà¯à®°à¯à®µà¯à®®à¯ ipv4 அலà¯à®²à®¤à¯ ipv6 அலà¯à®²à®¤à¯ eb ஆக இரà¯à®•à¯à®• " "வேணà¯à®Ÿà¯à®®à¯. ipv4 உடன௠அத௠iptables கà¯à®•ாக இரà¯à®•à¯à®•à¯à®®à¯, ipv6 உடன௠ip6tables கà¯à®•ாக " "இரà¯à®•à¯à®•à¯à®®à¯, eb உடன௠ஈதà¯à®¤à®°à¯à®¨à¯†à®Ÿà¯ பாலஙà¯à®•ளà¯à®•à¯à®•ாக (ebtables) இரà¯à®•à¯à®•à¯à®®à¯." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "விதிகளà¯à®Ÿà®©à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®µà®¤à®±à¯à®•ான கூடà¯à®¤à®²à¯ சஙà¯à®•ிலிகளà¯." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "சஙà¯à®•ிலியைச௠சேரà¯" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "சஙà¯à®•ிலியைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "சஙà¯à®•ிலியை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "சஙà¯à®•ிலிகளà¯" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "ஒர௠அடà¯à®Ÿà®µà®£à¯ˆà®¯à®¿à®²à¯ உளà¯à®³ ஒர௠சஙà¯à®•ிலிகà¯à®•௠மதிபà¯à®ªà¯à®°à¯à®•à¯à®•ளà¯à®Ÿà®©à¯ à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆà®¯à¯à®Ÿà®©à¯ ஒர௠" "விதியைச௠சேரà¯à®•à¯à®•வà¯à®®à¯." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à®¾à®©à®¤à¯ விதிகளை வரிசைபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯ பயனà¯à®ªà®Ÿà¯à®•ிறதà¯. à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆ 0 எனà¯à®±à®¾à®²à¯, " "விதியை சஙà¯à®•ிலியின௠மேலà¯à®®à®Ÿà¯à®Ÿà®¤à¯à®¤à®¿à®²à¯ சேரà¯à®•à¯à®•வà¯à®®à¯ எனà¯à®±à¯ பொரà¯à®³à¯, à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆ " "அதிகம௠எனில௠விதியானத௠சஙà¯à®•ிலியின௠கீழ௠பகà¯à®¤à®¿à®•à¯à®•à¯à®šà¯ செலà¯à®²à¯à®®à¯. ஒரே à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆ " "கொணà¯à®Ÿ விதிகளà¯, ஒரே நிலையில௠இரà¯à®•à¯à®•à¯à®®à¯, இநà¯à®¤ விதிகளின௠வரிசை நிலையானதாக " "இரà¯à®•à¯à®•ாதà¯, மாறகà¯à®•ூடà¯à®®à¯. ஒர௠விதியானத௠மறà¯à®±à¯Šà®©à¯à®±à¯à®•à¯à®ªà¯ பிறக௠சேரà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®µà®¤à¯ˆ " "நீஙà¯à®•ள௠உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà®¿à®©à®¾à®²à¯, à®®à¯à®¤à®²à¯ விதிகà¯à®•௠கà¯à®±à¯ˆà®¨à¯à®¤ à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆà®¯à¯à®®à¯ " "அடà¯à®¤à¯à®¤à®¤à®±à¯à®•௠அதிக à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆà®¯à¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "விதியைச௠சேரà¯" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "விதியைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "விதியை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "விதிகளà¯" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "பாஸà¯à®¤à¯à®°à¯‚ விதிகளà¯, நேரடியாக ஃபயரà¯à®µà®¾à®²à¯à®•à¯à®•௠அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©, இவை சிறபà¯à®ªà¯ " "சஙà¯à®•ிலிகளில௠வைகà¯à®•பà¯à®ªà®Ÿà¯à®µà®¤à®¿à®²à¯à®²à¯ˆ. iptables, ip6tables மறà¯à®±à¯à®®à¯ ebtables " "விரà¯à®ªà¯à®ªà®™à¯à®•ள௠அனைதà¯à®¤à¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®²à®¾à®®à¯." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "ஃபயரà¯à®µà®¾à®²à¯ˆ சேதபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¾à®¤à®ªà®Ÿà®¿à®•à¯à®•௠பாஸà¯à®¤à¯à®°à¯‚ விதிகளில௠கவனமாக செயலà¯à®ªà®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "பாஸà¯à®¤à¯à®°à¯‚வைச௠சேரà¯" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "பாஸà¯à®¤à¯à®°à¯‚வைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "பாஸà¯à®¤à¯à®°à¯‚வை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "பாஸà¯à®¤à¯à®°à¯‚" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "லாகà¯à®Ÿà®µà¯à®©à¯ வசதியானத௠firewalld கà¯à®•ான பயனர௠மறà¯à®±à¯à®®à¯ பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯à®•௠கொளà¯à®•ைகளின௠" "லேசான பதிபà¯à®ªà®¾à®•à¯à®®à¯. இத௠ஃபயரà¯à®µà®¾à®²à¯à®•à¯à®•ான மாறà¯à®±à®™à¯à®•ளை வரமà¯à®ªà¯à®•à¯à®•à¯à®Ÿà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯. " "லாகà¯à®Ÿà®µà¯à®©à¯ வெணà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ கடà¯à®Ÿà®³à¯ˆà®•ளà¯, சூழலà¯à®•ளà¯, பயனரà¯à®•ள௠மறà¯à®±à¯à®®à¯ பயனர௠idகள௠" "ஆகியவை இரà¯à®•à¯à®•லாமà¯." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "சூழலைச௠சேரà¯" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "சூழலைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "சூழலை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "சூழலà¯à®•ளà¯" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "வெணà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ உளà¯à®³ ஒர௠கடà¯à®Ÿà®³à¯ˆ உளà¯à®³à¯€à®Ÿà¯ நடà¯à®šà®¤à¯à®¤à®¿à®°à®•à¯à®•à¯à®±à®¿à®¯à¯à®Ÿà®©à¯ '*' à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¾à®²à¯, " "கடà¯à®Ÿà®³à¯ˆà®¯à¯à®Ÿà®©à¯ தொடஙà¯à®•à¯à®®à¯ அனைதà¯à®¤à¯ கடà¯à®Ÿà®³à¯ˆ வரிகளà¯à®®à¯ பொரà¯à®¨à¯à®¤à¯à®®à¯. '*' இலà¯à®²à®¾à®µà®¿à®Ÿà¯à®Ÿà®¾à®²à¯, " "மதிபà¯à®ªà¯à®°à¯à®•à¯à®•ள௠உடà¯à®ªà®Ÿ கடà¯à®Ÿà®³à¯ˆ மடà¯à®Ÿà¯à®®à¯ தà¯à®²à¯à®²à®¿à®¯à®®à®¾à®•ப௠பொரà¯à®¨à¯à®¤ வேணà¯à®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "கடà¯à®Ÿà®³à¯ˆ-வரியைச௠சேரà¯" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "கடà¯à®Ÿà®³à¯ˆ-வரியைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "கடà¯à®Ÿà®³à¯ˆ-வரியை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "கடà¯à®Ÿà®³à¯ˆ வரிகளà¯" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "பயனர௠பெயரà¯à®•ளà¯." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "பயனர௠பெயரைச௠சேரà¯" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "பயனர௠பெயரைத௠திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "பயனர௠பெயரை நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "பயனர௠பெயரà¯à®•ளà¯" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "பயனர௠idகளà¯" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "பயனர௠id à®à®šà¯ சேரà¯" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "பயனர௠id à®à®¤à¯ திரà¯à®¤à¯à®¤à¯" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "பயனர௠id ஠நீகà¯à®•à¯" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "பயனர௠Idகளà¯" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "கணினியின௠தறà¯à®ªà¯‹à®¤à¯ˆà®¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®®à¯." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "பானிக௠பயனà¯à®®à¯à®±à¯ˆ:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "லாகà¯à®Ÿà®µà¯à®©à¯:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மணà¯à®Ÿà®²à®®à¯:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "தà¯à®±à¯ˆ மறà¯à®±à¯à®®à¯ நெறிமà¯à®±à¯ˆ" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "ஒர௠தà¯à®±à¯ˆ மறà¯à®±à¯à®®à¯ நெறிமà¯à®±à¯ˆà®¯à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "நேரடி விதி" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "ipv மறà¯à®±à¯à®®à¯ அடà¯à®Ÿà®µà®£à¯ˆ, சஙà¯à®•ிலி à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆà®¯à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à¯ மதிபà¯à®ªà¯à®°à¯à®•à¯à®•ளை " "உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "à®®à¯à®©à¯à®©à¯à®°à®¿à®®à¯ˆ:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "ஒர௠நெறிமà¯à®±à¯ˆà®¯à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "பிற நெறிமà¯à®±à¯ˆ:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "உயர௠விதி" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "ஒர௠உயர௠விதியை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "பà¯à®°à®µà®²à®©à¯ அலà¯à®²à®¤à¯ பிணைய வெண௠அலà¯à®²à®¤à¯ கரà¯à®ªà¯à®ªà¯à®ªà¯ படà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿà¯à®¤à®²à¯à®•à¯à®•௠கூறை à®®à¯à®Ÿà®•à¯à®•வà¯à®®à¯." "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "மூலமà¯:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "இலகà¯à®•à¯:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "பதிவà¯:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "தணிகà¯à®•ை:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 மறà¯à®±à¯à®®à¯ ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "தலைகீழà¯" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "இதைச௠செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤ செயல௠'நிராகரி' எனà¯à®±à¯à®®à¯ கà¯à®Ÿà¯à®®à¯à®ªà®®à¯ 'ipv4' அலà¯à®²à®¤à¯ 'ipv6' " "எனà¯à®±à¯(இரணà¯à®Ÿà¯à®®à®²à¯à®²) இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "இநà¯à®¤ வகையà¯à®Ÿà®©à¯:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "இநà¯à®¤ வரமà¯à®ªà¯à®Ÿà®©à¯:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "à®®à¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "நிலை:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "கூறà¯:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "செயலà¯:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ சேவை அமைவà¯à®•ளà¯" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ சேவை அமைவà¯à®•ளை அமைவாகà¯à®•ம௠செயà¯à®¯à®µà¯à®®à¯:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "ஒர௠சேவையைத௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "பயனர௠ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "ஒர௠பயனர௠id ஠உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "பயனர௠பெயரà¯" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "பயனர௠பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ மணà¯à®Ÿà®² அமைவà¯à®•ளà¯" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "அடிபà¯à®ªà®Ÿà¯ˆ மணà¯à®Ÿà®² அமைவà¯à®•ளை அமைவாகà¯à®•ம௠செயà¯à®¯à®µà¯à®®à¯:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ இலகà¯à®•à¯" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "இலகà¯à®•à¯:" firewalld-0.4.4.6/po/te.po000066400000000000000000002064601320241217000152220ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Krishnababu Krothapalli , 2007-2010 # Krishnababu Krothapalli , 2013 # Krishnababu Krothapalli , 2013 # Krishnababu Krothapalli , 2014 # Sree Ganesh , 2006 # Sudheesh Singanamalla , 2013 # Sudheesh Singanamalla , 2013 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:44-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Telugu (http://www.transifex.com/projects/p/firewalld/" "language/te/)\n" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "ఫైరà±à°µà°¾à°²à± ఆపà±à°²à±†à°Ÿà±" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "ఫైరà±â€Œà°µà°¾à°²à±" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Firewall ఆకృతీకరణ" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ఇంటరà±à°«à±‡à°¸à± '%s' కొరకౠజోనౠఎంపికచేయి" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°•à±à°·à±‡à°¤à±à°°à°‚" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "à°…à°¨à±à°¸à°‚ధానం '%s' కొరకౠకà±à°·à±‡à°¤à±à°°à°‚ ఎంపికచేయి" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "అపౠ/ జోనà±à°¸à± డౌనౠషీలà±à°¡à±à°¸à± à°•à°¨à±à°«à°¿à°—రౠచెయà±à°¯à°¿" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "ఇకà±à°•à°¡ మీరౠటాపౠషీలà±à°¡à±à°¸à± మరియౠడౌనౠషీలà±à°¡à±à°¸à± ఉపయోగించే మండలాలౠఎంచà±à°•ోవచà±à°šà±." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "à°ˆ ఫీచరౠఎకà±à°•à±à°µà°—à°¾ డిఫాలà±à°Ÿà± మండలాలà±à°²à±‹ ఉపయోగించడం à°ªà±à°°à°œà°²à± కోసం ఉపయోగపడà±à°¤à±à°‚ది. " "వినియోగదారà±à°²à± కోసం, కనెకà±à°·à°¨à±à°² మండలాలౠమారà±à°¤à±à°¨à±à°¨, అది పరిమిత వినియోగం కావచà±à°šà±." "" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "అపౠషీలà±à°¡à±à°¸à± జోనà±:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "డౌనౠషీలà±à°¡à±à°¸à± జోనà±:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "షీలà±à°¡à± చేయి" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "నోటిఫికేషనà±à°²à°¨à± à°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà±" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "ఫైరà±à°µà°¾à°²à± సెటà±à°Ÿà°¿à°‚à°—à±à°²à°¨à± సవరించండి..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "à°…à°¨à±à°¸à°‚ధానాల జోనౠమారà±à°šà±..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "అపౠ/ జోనà±à°¸à± డౌనౠషీలà±à°¡à±à°¸à± à°•à°¨à±à°«à°¿à°—రౠచెయà±à°¯à°¿..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "à°…à°¨à±à°¨à±€ నెటà±à°µà°°à±à°•à± à°Ÿà±à°°à°¾à°«à°¿à°•ౠనిరోధించà±" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "à°…à°¨à±à°¸à°‚ధానాలà±" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "మూలాలà±" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "ధృవీకరణ విఫలమైంది." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "చెలà±à°²à°¨à°¿ ఆరà±à°—à±à°®à±†à°‚à°Ÿà± %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "పేరౠయిపà±à°ªà°Ÿà°¿à°•ే à°µà±à°‚ది" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "ఫైరà±à°µà°¾à°²à± డెమోనౠకోసం కనెకà±à°·à°¨à± లేదà±" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "నెటà±à°µà°°à±à°•à± à°Ÿà±à°°à°¾à°«à°¿à°•à± à°…à°‚à°šà°¾ నిరోధించబడెనà±." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ జోనà±: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "ఇంటరà±à°«à±‡à°¸à± '{interface}' పైన à°…à°¨à±à°¸à°‚ధానం '{connection}' కొరకౠజోనౠ'{zone}' " "à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°ªà°°à°šà°¬à°¡à±†à°¨à±" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "ఇంటరà±à°«à±‡à°¸à± '{interface}' కొరకౠజోనౠ'{zone}' à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°ªà°°à°šà°¬à°¡à±†à°¨à±" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "జోనౠ'{zone}' మూలం {source} కొరకౠకà±à°°à°¿à°¯à°¾à°¶à±€à°²à°ªà°°à°šà°¬à°¡à±†à°¨à±" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "à°•à±à°°à°¿à°¯à°¾à°¶à±€à°² జోనà±à°¸à± లేవà±." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD కనెకà±à°·à°¨à± à°¸à±à°¥à°¾à°ªà°¿à°‚చబడింది." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD కనెకà±à°·à°¨à± కోలà±à°ªà±‹à°¯à°¿à°‚ది." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD తిరిగిలోడైంది." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "à°…à°ªà±à°°à°®à±‡à°¯ జోనౠ'%s' కౠమారà±à°šà°¬à°¡à±†à°¨à±." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "నెటà±à°µà°°à±à°•à± à°Ÿà±à°°à°¾à°«à°¿à°•ౠనిరోధించబడà±à°Ÿà°²à±‡à°¦à±." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°‚" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "à°•à±à°°à°¿à°¯à°¾à°¹à±€à°¨à°‚" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "జోనౠ'{zone}' {activated_deactivated} à°…à°¨à±à°¸à°‚ధానం '{connection}' కొరకౠ" "ఇంటరà±à°«à±‡à°¸à± '{interface}' పైన" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "జోనౠ'{zone}' {activated_deactivated} ఇంటరà±à°«à±‡à°¸à± '{interface}' కొరకà±" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "జోనౠ'%s' ఇంటరà±à°«à±‡à°¸à± '%s' కొరకౠకà±à°°à°¿à°¯à°¾à°¶à±€à°²à°®à±ˆà°‚ది" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "జోనౠ'{zone}' {activated_deactivated} వనరౠ'{source}' కొరకà±" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "జోనౠ'%s' మూలం '%s' కొరకౠకà±à°°à°¿à°¯à°¾à°¶à±€à°²à°®à±ˆà°‚ది" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "మారà±à°ªà±à°²à± à°…à°¨à±à°µà°°à±à°¤à°¿à°‚చబడెనà±." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "నెటà±à°µà°°à±à°•à± à°…à°¨à±à°¸à°‚ధానం '%s' చేత à°µà±à°ªà°¯à±‹à°—ించబడింది" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "చేతనమైన" #: ../src/firewall-config:97 msgid "disabled" msgstr "అచేతనమైన" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "à°ªà±à°°à°¤à°¿à°®à°²à± లోడà±à°šà±‡à°¯à±à°Ÿà°•ౠవిఫలమైంది." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "à°°à°¨à±â€Œà°Ÿà±ˆà°®à±" #: ../src/firewall-config:398 msgid "Permanent" msgstr "శాశà±à°µà°¤" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "సేవ" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "పోరà±à°Ÿà±à°¨à±" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "à°šà°Ÿà±à°Ÿà°‚" #: ../src/firewall-config:560 msgid "To Port" msgstr "à°ˆ పోరà±à°Ÿà±â€â€Œà°•à±" #: ../src/firewall-config:562 msgid "To Address" msgstr "పంపవలిసిన à°šà°¿à°°à±à°¨à°¾à°®à°¾" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp à°°à°•à°‚" #: ../src/firewall-config:817 msgid "Family" msgstr "à°«à±à°¯à°¾à°®à°¿à°²à±€" #: ../src/firewall-config:819 msgid "Action" msgstr "à°šà°°à±à°¯" #: ../src/firewall-config:821 msgid "Element" msgstr "మూలకం" #: ../src/firewall-config:823 msgid "Src" msgstr "మూలం" #: ../src/firewall-config:825 msgid "Dest" msgstr "à°—à°®à±à°¯à°‚" #: ../src/firewall-config:827 msgid "log" msgstr "లాగà±" #: ../src/firewall-config:829 msgid "Audit" msgstr "ఆడిటà±" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "హెచà±à°šà°¿à°°à°•" #: ../src/firewall-config:1612 msgid "Error" msgstr "దోషమà±" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "ఆమోదించà±" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "తిరసà±à°•à°°à°¿à°‚à°šà±" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "విడà±à°µà±" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "పరిమితి" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "సేవ" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "పోరà±à°Ÿà±" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "à°ªà±à°°à±Šà°Ÿà±‹à°•ాలà±" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "మాసà±à°•à±à°µà°°à±‡à°¡à±" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "à°¸à±à°¥à°¾à°¯à°¿" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "à°…à°µà±à°¨à±" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "జోనà±" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "జోనౠ'%s': సేవ '%s' à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ లేదà±." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "తీసివేయి" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "విసà±à°®à°°à°¿à°‚à°šà±" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "జోనౠ'%s': ICMP à°°à°•à°‚ '%s' à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ లేదà±." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "బిలà±à°Ÿà±-ఇనౠజోనà±, తిరిగిపేరౠపెటà±à°Ÿà±à°Ÿà°•ౠతోడà±à°ªà°¾à°Ÿà±à°²à±‡à°¦à±." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "à°•à±à°·à°£à°‚" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "నిమిషం" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "à°—à°‚à°Ÿ" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "రోజà±" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "à°…à°¤à±à°¯à°µà°¸à°°" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "జాగరూకత" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "సంకà±à°²à°¿à°·à±à°Ÿ" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "దోషం" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "హెచà±à°šà°°à°¿à°•" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "సూచన" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "సమాచారం" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "డీబగà±" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-à°¬à±à°²à°¾à°•à±" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "ఫారà±à°µà°¾à°°à±à°¡à±-పోరà±à°Ÿà±" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ఇంటరà±à°«à±‡à°¸à± మారà±à°µà±‡à°·à°‚లో à°µà±à°‚టేనే వేరొక à°µà±à°¯à°µà°¸à±à°¥à°•ౠపంపà±à°Ÿ à°µà±à°ªà°¯à±‹à°—à°•à°°à°‚à°—à°¾ à°µà±à°‚à°Ÿà±à°‚ది.\n" "à°ˆ à°•à±à°·à±‡à°¤à±à°°à°¾à°¨à±à°¨à°¿ మారà±à°µà±‡à°·à°‚లో à°µà±à°‚చాలనà±à°•ొంటà±à°¨à±à°¨à°¾à°°à°¾?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "బిలà±à°Ÿà±-ఇనౠసేవ, తిరిగిపేరౠపెటà±à°Ÿà±à°Ÿà°•ౠతోడà±à°ªà°¾à°Ÿà±à°²à±‡à°¦à±." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "బిలà±à°Ÿà±-ఇనౠicmp, తిరిగిపేరౠపెటà±à°Ÿà±à°Ÿà°•ౠతోడà±à°ªà°¾à°Ÿà±à°²à±‡à°¦à±." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "మూలం %s కొరకౠజోనౠఎంపికచేయి" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "ఆదేశ వరà±à°¸ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "సందరà±à°­à°‚ à°ªà±à°°à°µà±‡à°¶ పెటà±à°Ÿà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "కింది జాబితా à°¨à±à°‚à°¡à°¿ à°…à°ªà±à°°à°®à±‡à°¯ à°•à±à°·à±‡à°¤à±à°°à°‚ ఎంపికచేయండి." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "డైరెకà±à°Ÿà± చైనà±" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "దయచేసి ipv మరియౠపటà±à°Ÿà°¿à°• ఎంపికచేసి చైనౠపేరౠపà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±." #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "చైనà±:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "à°°à°•à±à°·à°£" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "పటà±à°Ÿà°¿à°•:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "సూటి పాసà±â€Œà°¤à±à°°à±‚ నియమం" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "ipv ఎంపికచేసి ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¸à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à±:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "పోరà±à°Ÿà± ఫారà±à°µà°¾à°°à±à°¡à°¿à°‚à°—à±" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "మీ అవసరమà±à°²à°•ౠతగినటà±à°²à± à°®à±à°²à°‚ మరియౠగమà±à°¯à°‚ à°à°šà±à°šà°¿à°•ాలనౠదయచేసి ఎంపికచేసికొనà±à°®à±." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "పోరà±à°Ÿà±/పోరà±à°Ÿà± పరిమితి:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP à°šà°¿à°°à±à°¨à°¾à°®à°¾:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "à°šà°Ÿà±à°Ÿà°‚:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "మూలం" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "à°—à°®à±à°¯à°‚" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "మీరౠసà±à°¥à°¾à°¨à°¿à°• ఫారà±à°µà°¾à°°à±à°¡à°¿à°‚à°—à±â€Œà°¨à± చేతనం చేసà±à°¤à±‡, మీరౠపోరà±à°Ÿà±â€â€Œà°¨à± తెలà±à°ªà°µà°²à°¸à°¿ " "à°µà±à°‚à°Ÿà±à°‚ది. మూలం పోరà±à°Ÿà±â€â€Œà°•à± à°ˆ పోరà±à°Ÿà±â€ à°­à°¿à°¨à±à°¨à°‚à°—à°¾ à°µà±à°‚డాలి." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "à°¸à±à°¥à°¾à°¨à°¿à°• ఫారà±à°µà°¾à°°à±à°¡à°¿à°‚à°—à±" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "వేరొక పోరà±à°Ÿà±â€â€Œà°•ౠపంపà±à°®à±" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "బోలà±à°¡à± à°—à°¾ à°µà±à°¨à±à°¨ à°ªà±à°°à°µà±‡à°¶à°¾à°²à± తపà±à°ªà°¨à°¿à°¸à°°à°¿, మిగతావి à°…à°¨à±à°¨à±€ à°à°šà±à°šà°¿à°•ాలà±." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "పేరà±:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "వరà±à°·à°¨à±:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "షారà±à°Ÿà±:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "వివరణ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "à°«à±à°¯à°¾à°®à°¿à°²à°¿:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "ఆధార ICMP à°°à°•à°‚ అమరికలà±" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "దయచేసి ఆధార ICMP à°°à°•à°‚ అమరికలౠఆకృతీకరించà±:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP à°°à°•à°®à±" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "దయచేసి ICMP à°°à°•à°‚ యెంపికచేయి" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "à°ªà±à°°à°µà±‡à°¶à°®à±à°¨à± జతపరచà±à°®à±" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "దసà±à°¤à±à°°à°‚ (_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "à°à°šà±à°šà°¿à°•ాలౠ(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld తిరిగిలోడà±à°šà±‡à°¯à°¿" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "ఫైరà±â€Œà°µà°¾à°²à± నియమాలౠతిరిగిలోడà±à°šà±‡à°¯à°¿. à°ªà±à°°à°¸à±à°¤à±à°¤ శాశà±à°µà°¤ ఆకృతీకరణ కొతà±à°¤ à°°à°¨à±â€Œà°Ÿà±ˆà°®à± " "ఆకృతీకరణగా ఆగà±à°¨à±. అనగా తిరిగిలోడౠచేసే వరకౠచేసిన à°…à°¨à±à°¨à°¿ à°°à°¨à±â€Œà°Ÿà±ˆà°®à± మారà±à°ªà±à°²à±‚ " "శాశà±à°µà°¤ ఆకృతీకరణనందౠలేకపోతే తిరిగిలోడౠచేయగానే పోతాయి." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "నెటà±à°µà°°à±à°•à± à°…à°¨à±à°¸à°‚ధానం à° à°•à±à°·à±‡à°¤à±à°°à°®à±à°¨à°•ౠచెందà±à°¨à±‹ మారà±à°šà±à°®à±." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ జోనౠమారà±à°šà±" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "à°…à°¨à±à°¸à°‚ధానాలౠలేదా ఇంటరà±à°«à±‡à°¸à±à°² కొరకౠఅపà±à°°à°®à±‡à°¯ à°•à±à°·à±‡à°¤à±à°°à°‚ మారà±à°šà±à°®à±." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "పానికౠరీతి అనగా లోనికివచà±à°šà± మరియౠబయటకిపోవౠఅనà±à°¨à°¿ పాకెటà±à°²à± వదిలివేయబడà±à°¨à±." #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "పానికౠరీతి" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "లాకà±â€Œà°¡à±Œà°¨à± à°…à°¨à±à°¨à°¦à°¿ ఫైరà±â€Œà°µà°¾à°²à± ఆకృతీకరణనౠలాకౠచేయà±à°¨à± అలా లాకà±â€Œà°¡à±Œà°¨à± వైటà±â€Œà°²à°¿à°¸à±à°Ÿà± " "పైని à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°²à± మాతà±à°°à°®à±‡ దానిని మారà±à°šà°—లవà±." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "లాకà±â€Œà°¡à±Œà°¨à±" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "à°°à°¨à±â€Œà°Ÿà±ˆà°®à± ఆకృతీకరణనౠశాశà±à°µà°¤à°‚ చేయà±à°®à±" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "à°°à°¨à±â€Œà°Ÿà±ˆà°®à± à°¨à±à°‚à°¡à°¿ శాశà±à°µà°¤à°‚" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "దరà±à°¶à°¿à°‚à°šà± (_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP రకాలà±" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "సూటి ఆకృతీకరణ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "లాకà±â€Œà°¡à±Œà°¨à± వైటà±â€Œà°²à°¿à°¸à±à°Ÿà±" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "సహాయం (_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "ఆకృతీకరణ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "à°ªà±à°°à°¸à±à°¤à±à°¤à°‚ దరà±à°¶à°¨à±€à°¯à°®à±ˆà°¨ ఆకృతీకరణ. à°°à°¨à±â€Œà°Ÿà±ˆà°®à± ఆకృతీకరణ à°…à°¨à±à°¨à°¦à°¿ యథారà±à°§ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°² " "ఆకృతీకరణ. శాశà±à°µà°¤ ఆకృతీకరణ à°…à°¨à±à°¨à°¦à°¿ సేవ తరà±à°µà°¾à°¤ లేదా à°µà±à°¯à°µà°¸à±à°¥ తిరిగిలోడైన తరà±à°µà°¾à°¤ " "లేదా à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚à°­à°‚ తరà±à°µà°¾à°¤ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°®à°—à±à°¨à±." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld జోనౠఅనà±à°¨à°¦à°¿ జోనà±â€Œà°•ౠబందనమైన నెటà±à°µà°°à±à°•à± à°…à°¨à±à°¸à°‚ధానాలà±, ఇంటరà±à°«à±‡à°¸à±à°²à± " "మరియౠమూలపౠచిరà±à°¨à°¾à°®à°¾à°² నమà±à°®à°¿à°• à°¸à±à°¥à°¾à°¯à°¿à°¨à± నిరà±à°µà°šà°¿à°‚à°šà±à°¨à±. జోనౠఅనà±à°¨à°¦à°¿ సేవలనà±, " "పోరà±à°Ÿà±à°²à°¨à±, à°ªà±à°°à±Šà°Ÿà±‹à°•ాలà±à°¸à±à°¨à±, మాసà±à°•à±à°µà°¾à°°à±‡à°¡à°¿à°‚à°—à±â€Œà°¨à±, పోరà±à°Ÿà±/పాకెటౠ" "ఫారà±à°µà°¾à°°à±à°¡à°¿à°‚à°—à±â€Œà°¨à±, icmp à°«à°¿à°²à±à°Ÿà°°à±à°²à°¨à± మరియౠరిచౠనియమాలనౠకలà±à°ªà±à°¨à±. జోనౠఅనà±à°¨à°¦à°¿ " "ఇంటరà±à°«à±‡à°¸à±à°²à°•ౠమరియౠమూలపౠచిరà±à°¨à°¾à°®à°¾à°²à°•ౠబందనం కాగలదà±." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "జోనౠజతచేయి" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "జోనౠసరికూరà±à°šà±" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "జోనౠతీసివేయి" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "జోనౠఅపà±à°°à°®à±‡à°¯à°¾à°²à± లోడà±à°šà±‡à°¯à°¿" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "జోనౠనందౠఠసేవలౠనమà±à°®à°¦à°—ినవో మీరౠయికà±à°•à°¡ నిరà±à°µà°šà°¿à°‚చవచà±à°šà±. à°ˆ జోనà±â€Œà°•ౠబందనం " "అయిన à°…à°¨à±à°¸à°‚ధానాలà±, ఇంటరà±à°«à±‡à°¸à±à°²à± మరియౠమూలాల à°¨à±à°‚à°¡à°¿ మిషనà±â€Œà°¨à± చేరగల à°…à°¨à±à°¨à°¿ " "అతిధేయలౠమరియౠనెటà±à°µà°°à±à°•à±à°² à°¨à±à°‚à°¡à°¿ నమà±à°®à°¦à°—à°¿à°¨ సేవలౠà°à°•à±à°¸à±†à°¸à± చేయవచà±à°šà±." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "సేవలà±" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "మిషనà±â€Œà°•à± à°…à°¨à±à°¸à°‚ధానం కాగల à°…à°¨à±à°¨à°¿ అతిధేయలౠలేదా నెటà±à°µà°°à±à°•à±à°² à°¨à±à°‚à°¡à°¿ à°à°•à±à°¸à±†à°¸à± " "కావలసిన, పోరà±à°Ÿà±à°²à± లేదా పోరà±à°Ÿà±à°² విసà±à°¤à±ƒà°¤à°¿à°¨à°¿ జతచేయి." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "à°ˆ పోరà±à°Ÿà±â€â€Œà°•à±" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "పోరà±à°Ÿà± సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "పోరà±à°Ÿà± తీసివేయి" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "పోరà±à°Ÿà±à°²à±" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "మీరౠఅతిధేయ à°¨à±à°—ాని లేదా రూటరౠనౠగాని మీ à°¸à±à°¥à°¾à°¨à°¿à°• నెటà±à°µà°°à±à°•à±à°¨à± ఇంటరà±â€Œà°¨à±†à°Ÿà± à°•à± " "à°…à°¨à±à°¸à°‚ధానించà±à°Ÿà°•ౠమారà±à°µà±‡à°·à°¦à°¾à°°à°£ ఉపయోగకరంగా ఉంటà±à°‚ది.మీ à°¸à±à°¥à°¾à°¨à°¿à°• నెటà±à°µà°°à±à°•à± " "కనిపించదౠమరియౠఇంటరà±â€Œà°¨à±†à°Ÿà± à°•à± à°’à°• అతిధేయ లాగా కనబడà±à°¤à±à°‚ది. మారà±à°µà±‡à°·à°¦à°¾à°°à°£ IPv4 " "మాతà±à°°à°®à±‡." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "మాసà±à°•à±à°µà°°à±‡à°¡à± జోనà±" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "మీరౠమాసà±à°•à±à°µà°°à±‡à°¡à°¿à°‚గౠచేతనంచేసà±à°¤à±‡, à°à°ªà°¿ ఫారà±à°µà°¾à°°à±à°¡à°¿à°‚à°—à± à°…à°¨à±à°¨à°¦à°¿ మీ IPv4 నెటà±à°µà°°à±à°•à±à°² " "కొరకౠచేతనమగà±à°¨à±." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Masquerading" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "à°’à°• పరà±à°Ÿà±â€ à°¨à±à°‚à°¡à°¿ వేరక పోరà±à°Ÿà±â€â€Œà°•à± à°¸à±à°¥à°¾à°¨à°¿à°• సిసà±à°Ÿà°®à± నందౠపంపà±à°Ÿà°•ౠలేదా à°¸à±à°¥à°¾à°¨à°¿à°• " "సిసà±à°Ÿà°®à± à°¨à±à°‚à°¡à°¿ వేరొక సిసà±à°Ÿà°®à±â€Œà°•ౠపంపà±à°Ÿà°•à± à°ªà±à°°à°µà±‡à°¶à°¾à°²à°¨à± పోరà±à°Ÿà±à°¸à±â€â€Œà°•ౠజతచేయà±à°®à±. " "వేరొక సిసà±à°Ÿà°®à±â€Œà°•ౠపంపà±à°Ÿ ఇంటరà±â€Œà°«à±‡à°¸à± మారà±à°µà±‡à°·à°‚లోవà±à°‚టేనే ఉపయోగకరంగా à°µà±à°‚à°Ÿà±à°‚ది. " "పోరà±à°Ÿà±â€ పంపà±à°Ÿ IPv4 మాతà±à°°à°®à±‡." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "ఫారà±à°µà°¾à°°à±à°¡à± పోరà±à°Ÿà± జతచేయి" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "ఫారà±à°µà°¾à°°à±à°¡à± పోరà±à°Ÿà± సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "ఫారà±à°µà°¾à°°à±à°¡à± పోరà±à°Ÿà± తీసివేయి" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "ఇంటరà±à°¨à±†à°Ÿà± à°•à°‚à°Ÿà±à°°à±‹à°²à± మెసేజౠపà±à°°à±‹à°Ÿà±‹à°•ాలౠ(ICMP) à°®à±à°–à±à°¯à°‚à°—à°¾ నెటà±à°µà°°à±à°•à±â€â€Œà°¡à± " "à°•à°‚à°ªà±à°¯à±‚à°Ÿà°°à±à°¸à±â€ మదà±à°¯ దోషపౠసందేశాలనౠపంపà±à°Ÿà°•ౠఉపయోగించబడà±à°¤à±à°‚ది, అయితే అదనంగా " "పింగౠఅభà±à°¯à°°à±à°¦à°¨à°²à± మరియౠపà±à°°à°¤à±à°¯à±à°¤à±à°¤à°°à°¾à°²à± వంటి సమాచార సందేశాలౠకà±." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "జాబితానందౠICMP రకాలనౠగà±à°°à±à°¤à±à°‚à°šà±à°®à±, à°à°µà±ˆà°¤à±‡ తిరసà±à°•రించాలో. à°…à°¨à±à°¨à°¿ ఇతర ICMP " "à°°à°•à°®à±à°²à± ఫైరà±â€Œà°µà°¾à°²à± దాటà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚చబడినవి. à°…à°ªà±à°°à°®à±‡à°¯à°‚à°—à°¾ ఠపరిమితి లేదà±." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP వడపోత" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "జోనౠకొరకౠఇకà±à°•à°¡ మీరౠరిచౠభాషా నియమాలనౠఅమరà±à°šà°µà°šà±à°šà±." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "రిచౠనియమం జతచేయి" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "రిచౠనియమం సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "రిచౠనియమం తీసివేయి" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "రిచౠనియమాలà±" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "ఇంటరà±à°«à±‡à°¸à±à°²à°¨à± జోనà±â€Œà°•ౠబందనం చేయà±à°Ÿà°•à± à°ªà±à°°à°µà±‡à°¶à°¾à°²à°¨à± జతచేయి. ఒకవేళ ఇంటరà±à°«à±‡à°¸à± à°…à°¨à±à°¨à°¦à°¿ " "à°…à°¨à±à°¸à°‚ధానం చేత à°µà±à°ªà°¯à±‹à°—ించబడితే, జోనౠఅనà±à°¨à°¦à°¿ à°…à°¨à±à°¸à°‚ధానం నందౠతెలిపిన జోనà±â€Œà°•à± " "అమరà±à°šà°¬à°¡à±à°¨à±." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "ఇంటరà±à°«à±‡à°¸à± జతచేయి" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "ఇంటరà±à°«à±‡à°¸à± సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "ఇంటరà±à°«à±‡à°¸à± తీసివేయి" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "మూలం జతచేయి" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "మూలం సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "మూలం తీసివేయి" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "జోనà±à°¸à±" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "firewalld సేవ à°…à°¨à±à°¨à°¦à°¿ పోరà±à°Ÿà±à°²à±, à°ªà±à°°à±Šà°Ÿà±‹à°•ాలà±à°¸à±, మాడà±à°¯à±‚à°³à±à°³à± మరియౠగమà±à°¯à°ªà± " "à°šà°¿à°°à±à°¨à°¾à°®à°¾à°² సమà±à°®à±‡à°³à°¨à°‚." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "సేవ జతచేయి" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "సేవ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "సేవ తీసివేయి" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "సేవా à°…à°ªà±à°°à°®à±‡à°¯à°¾à°²à± లోడà±à°šà±‡à°¯à°¿" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "à°ªà±à°°à°µà±‡à°¶à°®à±à°¨à± సరిచేయà±à°®à±" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "à°ªà±à°°à°µà±‡à°¶à°®à±à°¨à± తీసివేయి" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "మాడà±à°¯à±‚à°³à±à°³à±" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "ఒకవేళ మీరౠగమà±à°¯à°ªà± à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à°¨à± తెలిపితే, సేవా à°ªà±à°°à°µà±‡à°¶à°‚ à°…à°¨à±à°¨à°¦à°¿ à°—à°®à±à°¯à°ªà± à°šà°¿à°°à±à°¨à°¾à°®à°¾ " "మరియౠరకమà±à°¨à°•ౠపరిమితం à°…à°—à±à°¨à±. ఒకవేళ రెండౠపà±à°°à°µà±‡à°¶à°¾à°²à± ఖాళీ అయితే, à°…à°ªà±à°ªà±à°¡à± à° " "పరిమితి à°µà±à°‚à°¡à°¦à±." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "సేవలౠఅనà±à°¨à°µà°¿ శాశà±à°µà°¤ ఆకృతీకరణ దరà±à°¶à°¨à°¿ నందౠమాతà±à°°à°®à±‡ మారగలవà±. సేవల యొకà±à°• " "à°°à°¨à±â€Œà°Ÿà±ˆà°®à± ఆకృతీకరణ à°…à°¨à±à°¨à°¦à°¿ నిరà±à°§à°¿à°·à±à°Ÿà°‚." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmptype à°…à°¨à±à°¨à°¦à°¿ firewalld కొరకౠఇంటరà±à°¨à±†à°Ÿà± à°•à°‚à°Ÿà±à°°à±‹à°²à± మెసేజౠ" "à°ªà±à°°à±Šà°Ÿà±‹à°•ాలౠ(ICMP) కౠచెందిన సమాచారం ఇచà±à°šà±à°¨à±." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP à°°à°•à°‚ జతచేయి" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP à°°à°•à°‚ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP à°°à°•à°‚ తీసివేయి" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "ICMP à°°à°•à°‚ à°…à°ªà±à°°à°®à±‡à°¯à°¾à°²à± లోడà±à°šà±‡à°¯à°¿" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "IPv4 మరియà±/లేదా IPv6 కొరకౠఈ ICMP à°°à°•à°‚ à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ à°µà±à°‚దో లేదో తెలà±à°ªà±à°®à±." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "ICMP రకాలౠఅనà±à°¨à°µà°¿ శాశà±à°µà°¤ ఆకృతీకరణ దరà±à°¶à°¨à°¿ నందౠమాతà±à°°à°®à±‡ మారగలవà±. ICMP రకాల " "యొకà±à°• à°°à°¨à±â€Œà°Ÿà±ˆà°®à± ఆకృతీకరణ à°…à°¨à±à°¨à°¦à°¿ నిరà±à°§à°¿à°·à±à°Ÿà°‚." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "సూటి ఆకృతీకరణ à°…à°¨à±à°¨à°¦à°¿ ఫైరà±â€Œà°µà°¾à°²à±â€Œà°•ౠమరింత సూటిగా à°à°•à±à°¸à±†à°¸à± ఇచà±à°šà±à°¨à±. à°ˆ à°à°šà±à°šà°¿à°•ాలౠ" "à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°Ÿà°•ౠవాడà±à°•à°°à°¿à°•à°¿ à°ªà±à°°à°¾à°¥à°®à°¿à°• à°à°ªà°¿à°ªà°Ÿà±à°Ÿà°¿à°•à°² విషయాలౠతెలవాలి, అనగా పటà±à°Ÿà°¿à°•à°²à±, " "చైనà±à°¸à±, ఆదేశాలà±, పారామితà±à°²à± మరియౠలకà±à°·à±à°¯à°¾à°²à±. ఇతర firewalld విశేషణాలౠà°à°µà±€ " "à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°Ÿà°•ౠసాధà±à°¯à°•ానపà±à°ªà±à°¡à± మాతà±à°°à°®à±‡ సూటి ఆకృతీకరణనౠవà±à°ªà°¯à±‹à°—ించాలి." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "à°ªà±à°°à°¤à°¿ à°à°šà±à°šà°¿à°•à°‚ యొకà±à°• ipv ఆరà±à°—à±à°®à±†à°‚à°Ÿà± ipv4 లేదా ipv6 లేదా eb కావాలి. ipv4 తో " "అది à°à°ªà°¿à°ªà°Ÿà±à°Ÿà°¿à°•à°² కొరకà±, ipv6 కొరకౠà°à°ªà°¿6పటà±à°Ÿà°¿à°•à°² కొరకౠమరియౠeb తో ఈథరà±à°¨à±†à°Ÿà± " "à°¬à±à°°à°¿à°¡à±à°œà±à°²à± (ఈబిపటà±à°Ÿà°¿à°•à°²à±) కొరకà±." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "నియమాలతో à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°Ÿà°•ౠఅదనపౠచైనà±à°¸à±." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "చైనౠజతచేయి" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "చైనౠసరికూరà±à°šà±" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "చైనౠతీసివేయి" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "చైనà±à°¸à±" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "పటà±à°Ÿà°¿à°• నందలి చైనà±â€Œà°•à± à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤à°¤à±‹ ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°¸à± args à°µà±à°ªà°¯à±‹à°—à°¿à°‚à°šà°¿ నియమం జతచేయి." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ఆరà±à°¡à°°à± నియమాలనౠవà±à°ªà°¯à±‹à°—ించటమే à°ªà±à°°à°¾à°®à±à°–à±à°¯à°‚. à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤ 0 అనగా నియమానà±à°¨à°¿ చైనౠ" "పైన జతచేయమని, à°…à°¤à±à°¯à°§à°¿à°• à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤à°¤à±‹ నియమం à°…à°¨à±à°¨à°¦à°¿ ఇంకా కిందకౠచేరà±à°šà°¬à°¡à±à°¨à±. ఒకే " "à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤à°¤à±‹ à°µà±à°¨à±à°¨ నియమాలౠఒకే à°¸à±à°¥à°¾à°¯à°¿à°²à±‹ à°µà±à°‚టాయి మరియౠఈ నియమాల à°•à±à°°à°®à°‚ " "నిరà±à°¦à°¿à°·à±à°Ÿà°‚కాదౠమారవచà±à°šà±. ఒకదాని తరà±à°µà°¾à°¤ మళà±à°³à±€ à°’à°• నియమం జతచేయబడà±à°¨à± అనేది " "నిరà±à°¥à°¾à°°à°¿à°‚à°šà±à°•ొనà±à°Ÿà°•à±, ఒకదానికి తకà±à°•à±à°µ à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤ ఇచà±à°šà°¿ తరà±à°µà°¾à°¤à°¦à°¾à°¨à°¿à°•à°¿ à°Žà°•à±à°•à±à°µ " "à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤ ఇవà±à°µà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "నియమం జతచేయి" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "నియమం సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "నియమం తీసివేయి" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "నియమాలà±" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "పాసà±â€Œà°¤à±à°°à±‚ నియమాలౠఅనà±à°¨à°µà°¿ నేరà±à°—à°¾ ఫైరà±â€Œà°µà°¾à°²à±â€Œà°•ౠపంపà±à°¬à°¡à±à°¨à± మరియౠపà±à°°à°¤à±à°¯à±‡à°• చైనà±à°¸à± " "నందౠవà±à°‚చబడవà±. à°…à°¨à±à°¨à°¿ à°à°ªà°¿à°ªà°Ÿà±à°Ÿà°¿à°•à°²à±, à°à°ªà°¿6పటà±à°Ÿà°¿à°•లౠమరియౠఈబిపటà±à°Ÿà°¿à°•à°² à°à°šà±à°šà°¿à°•ాలౠ" "à°µà±à°ªà°¯à±‹à°—ించవచà±à°šà±." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "ఫైరà±â€Œà°µà°¾à°²à±â€Œà°•ౠనషà±à°Ÿà°‚వాటిలà±à°²à°•à±à°‚à°¡à°¾ à°µà±à°‚à°¡à±à°Ÿà°•ౠపాసà±â€Œà°¤à±à°°à±‚ నియమాలతో జాగà±à°°à°¤à±à°¤à°—à°¾ " "à°µà±à°‚à°¡à°‚à°¡à°¿." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "పాసà±â€Œà°¤à±à°°à±‚ జతచేయి" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "పాసà±â€Œà°¤à±à°°à±‚ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "పాసà±â€Œà°¤à±à°°à±‚ తీసివేయి" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "పాసà±â€Œà°¤à±à°°à±‚" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "లాకà±â€Œà°¡à±Œà°¨à± విశేషణం à°…à°¨à±à°¨à°¦à°¿ firewalld కొరకౠవాడà±à°•à°°à°¿ మరియౠఅనà±à°µà°°à±à°¤à°¨à°‚ విధానాల " "లైటౠవరà±à°·à°¨à±. ఇది మారà±à°ªà±à°²à°¨à± ఫైరà±â€Œà°µà°¾à°²à±â€Œà°•ౠపరిమితం చేయà±à°¨à±. లాకà±â€Œà°¡à±Œà°¨à± " "వైటà±â€Œà°²à°¿à°¸à±à°Ÿà± à°…à°¨à±à°¨à°¦à°¿ ఆదేశాలనà±, సందరà±à°­à°¾à°²à°¨à±, వాడà±à°•à°°à±à°²à°¨à± మరియౠవాడà±à°•à°°à°¿ à°à°¡à°¿à°²à°¨à± " "కలిగివà±à°‚డవచà±à°šà±." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "సందరà±à°­à°‚ జతచేయి" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "సందరà±à°­à°‚ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "సందరà±à°­à°‚ తీసివేయి" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "సందరà±à°­à°¾à°²à±" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "వైటà±â€Œà°²à°¿à°¸à±à°Ÿà± పైన ఆదేశం à°ªà±à°°à°µà±‡à°¶à°‚ à°à°¸à±à°Ÿà±à°°à°¿à°•à± '*' తో à°®à±à°—à°¿à°¸à±à°¤à±‡, à°…à°ªà±à°ªà±à°¡à± à°† ఆదేశంతో " "à°ªà±à°°à°¾à°°à°‚భమయà±à°¯à±‡ à°…à°¨à±à°¨à°¿ ఆదేశ వరà±à°¸à°²à± సరిపోలà±à°¨à±. ఒకవేళ '*' లేకపోతే à°…à°ªà±à°ªà±à°¡à± ఆదేశం " "à°…à°¨à±à°¨à°¦à°¿ ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à°¤à±‹ సహా à°–à°šà±à°šà°¿à°¤à°‚à°—à°¾ సరిపోలాలి." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "ఆదేశ వరà±à°¸ జతచేయి" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "ఆదేశ వరà±à°¸ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "ఆదేశ వరà±à°¸ తీసివేయి" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "ఆదేశ వరà±à°¸à°²à±" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "వాడà±à°•à°°à°¿ పేరà±à°²à±." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "వాడà±à°•à°°à°¿ పేరౠజతచేయి" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "వాడà±à°•à°°à°¿ పేరౠజతచేయి" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "వాడà±à°•à°°à°¿ పేరౠతీసివేయి" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "వాడà±à°•à°°à°¿ పేరà±à°²à±" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿à°²à±." #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿ జతచేయి" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿ సరికూరà±à°šà±" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿ తీసివేయి" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿à°²à±" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "à°µà±à°¯à°µà°¸à±à°¥ యొకà±à°• à°ªà±à°°à°¸à±à°¤à±à°¤ à°…à°ªà±à°°à°®à±‡à°¯ జోనà±." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "పానికౠమోడà±:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "లాకà±â€Œà°¡à±Œà°¨à±:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ జోనà±:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "పోరà±à°Ÿà±â€ మరియౠనియమం" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "దయచేసి పోరà±à°Ÿà± మరియౠపà±à°°à±Šà°Ÿà±‹à°•ాలౠపà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "సూటి నియమం" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "దయచేసి ipv మరియౠపటà±à°Ÿà°¿à°•, చైనౠపà±à°°à°¾à°®à±à°–à±à°¯à°¤ ఎంపికచేసి ఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±." "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "à°ªà±à°°à°¾à°®à±à°–à±à°¯à°¤:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "దయచేసి à°ªà±à°°à±Šà°Ÿà±‹à°•ాలౠపà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "ఇతర à°ªà±à°°à±Šà°Ÿà±‹à°•ాలà±:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "రిచౠనియమం" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "దయచేసి రిటౠనియమం à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "అతిధేయ లేదా నెటà±à°µà°°à±à°•à±à°¨à°•ౠవైటౠలేదా à°¬à±à°²à°¾à°•à±â€Œà°²à°¿à°¸à±à°Ÿà°¿à°‚à°—à± à°…à°¨à±à°¨à°¦à°¿ మూలకం à°•à±à°°à°¿à°¯à°¾à°¹à±€à°¨à°‚ " "చేయà±à°¨à±." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "మూలం:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "à°—à°®à±à°¯à°‚:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "లాగà±:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "ఆడిటà±:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 మరియౠipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "తిరగతిపà±à°ªà°¿à°¨" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "దీనిని చేతనం చేయà±à°Ÿà°•à± à°šà°°à±à°¯ అనేది 'తిరసà±à°•à°°à°¿à°‚à°šà±' à°…à°µà±à°µà°¾à°²à°¿ మరియౠఫà±à°¯à°¾à°®à°¿à°²à±€ 'ipv4' " "లేదా 'ipv6' à°…à°µà±à°µà°¾à°²à°¿ (రెండూ కాదà±)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "à°°à°•à°‚ తో:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "పరిమితి తో:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "à°ªà±à°°à°¿à°«à°¿à°•à±à°¸à±:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "à°¸à±à°¥à°¾à°¯à°¿:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "మూలకం:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "à°šà°°à±à°¯:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "à°ªà±à°°à°¾à°§à°®à°¿à°• సేవ అమరికలà±" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "దయచేసి à°ªà±à°°à°¾à°§à°®à°¿à°• సేవ అమరికలౠఆకృతీకరించà±:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "దయచేసి సేవనౠఎంపికచేయి." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "వాడà±à°•à°°à°¿ à°à°¡à°¿" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "దయచేసి వాడà±à°•à°°à°¿ à°à°¡à°¿à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "వాడà±à°•à°°à°¿ పేరà±" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "దయచేసి వాడà±à°•à°°à°¿ పేరౠపà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "ఆధార జోనౠఅమరికలà±" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "దయచేసి ఆధార జోనౠఅమరికలౠఆకృతీకరించà±:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ లకà±à°·à±à°¯à°‚" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "లకà±à°·à±à°¯à°‚:" firewalld-0.4.4.6/po/tr.po000066400000000000000000001325221320241217000152340ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Automatically generated, 2004 # Hasan Alp İNAN, 2011 # Irmak Bıçakçıgil , 2014 # Onuralp SEZER , 2012 # Thomas Woerner , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-01-04 12:45-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/firewalld/" "language/tr/)\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Güvenlik Duvarı uygulamacığı" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Güvenlik Duvarı" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "Güvenlik Duvarı Yapılandırması" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "Artan/Azalan alanların kalkanlarını yapılandır" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "" "Burda seçtiÄŸiniz alan için kalkanları etkin veya kalkanları etkisiz " "kılabilirsiniz." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Bu insanların en çok kullandığı varsayılan alan özelliÄŸidir. Kullanıcılar " "için ,\n" "alan baÄŸlantı ayarlarını deÄŸiÅŸtirmek kullanımda sınır getirebilir." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Alan kalkanı açıldı." #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Alan kalkanı kapatıldı." #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "" #: ../src/firewall-applet:386 msgid "Authors" msgstr "" #: ../src/firewall-applet:396 msgid "License" msgstr "" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Kalkanlar açık" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Bildirimler açık" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Güvenlik Duvarı ayarlarını deÄŸiÅŸtir..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Artan/Azalan alanların kalkanlarını yapılandır..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Bütün aÄŸ trafiÄŸini bloke et" #: ../src/firewall-applet:492 msgid "About" msgstr "" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 #, fuzzy msgid "Connections" msgstr "BaÄŸlantı yok" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Kaynaklar" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Yetkilendirme baÅŸarısız" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Argumento inválido %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Bu isim zaten kullanılıyor" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "AteÅŸ Duvarı artalan sürecine baÄŸlantı yok" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "Bütün aÄŸ trafiÄŸi bloke edildi." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Alanı '{zone}' etkin baÄŸlantısı '{connection}' arayüzünde '{interface}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Alan '{zone}' arayüz'{interface}' için etkin" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Aktif alan yok" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "FirewallD ile baÄŸlantı saÄŸlandı." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "FirewallD ile baÄŸlantı kaybedildi." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD yeniden yüklendi." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Varsayılan alan '%s'. olarak deÄŸiÅŸtirildi." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Artık AÄŸ trafÄŸi bloke edilmiyor." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "AktifleÅŸtirildi." #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "EtkisizleÅŸtirildi." #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Alanı '{zone}' {activated_deactivated} baÄŸlantısı için '{connection}' " "arayüzde '{interface}'" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Alanı '{zone}' {activated_deactivated} arayüzünde '{interface}'" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Alan '%s' arayüzü için '%s' etkinleÅŸtirildi." #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "'%s' baÄŸlantısı tarafından kullanılıyor" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "" #: ../src/firewall-config:96 msgid "enabled" msgstr "etkin" #: ../src/firewall-config:97 msgid "disabled" msgstr "devre dışı" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Ikonların yüklenmesi baÅŸarısız." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "" #: ../src/firewall-config:398 msgid "Permanent" msgstr "" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Servis" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Port" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Protocolo" #: ../src/firewall-config:560 msgid "To Port" msgstr "Porta" #: ../src/firewall-config:562 msgid "To Address" msgstr "Para Endereço:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp tipi" #: ../src/firewall-config:817 msgid "Family" msgstr "" #: ../src/firewall-config:819 msgid "Action" msgstr "" #: ../src/firewall-config:821 msgid "Element" msgstr "" #: ../src/firewall-config:823 msgid "Src" msgstr "" #: ../src/firewall-config:825 msgid "Dest" msgstr "" #: ../src/firewall-config:827 msgid "log" msgstr "" #: ../src/firewall-config:829 msgid "Audit" msgstr "" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "Uyarı" #: ../src/firewall-config:1612 msgid "Error" msgstr "Erro" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "kabul et" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "reddet" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "" #: ../src/firewall-config:2071 msgid "level" msgstr "" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Alan" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Alanı sil" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Dahili Alan, Yeniden isimlendirme desteklenmiyor." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Dahili servis, Yeniden isimlendirme desteklenmiyor." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Dahili icmp, Yeniden isimlendirme desteklenmiyor." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "Adres" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "Port Yönlendirme" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "" "Por favor, seleccione as opções de origem e destino de acordo com as suas " "necessidades." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Port / Port Aralığı:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "Endereço IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Protokol:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Kaynak" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "Hedef" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Se activar reencaminhamento local, tem de especificar um porto. Este porto " "tem de ser diferente do porto de origem." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Yerel Yönlendirme" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Reencaminhar para outro porto" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" "Kalın giriÅŸlerin hepsi zorunludur. DiÄŸer tüm giriÅŸler isteÄŸe baÄŸlıdır." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "İsim" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "Sürüm" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "Kısa:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "Açıklama" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Temel ICMP Tip Ayarları" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Lütfen temel ICMP tipi ayarlarınızı yapılandırınız." #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP Tipi" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Adicionar Entrada" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Dosya" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Seçenekler" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Firewalld 'yi yeniden yükle" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Varsayılan alanı deÄŸiÅŸtir." #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Yardım" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "EÄŸer belirli bir adres belirlediyseniz, ICMP tipi giriÅŸi bu hedefle sınırlı " "olacaktır." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Alan Ekle" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Alan DeÄŸiÅŸtir" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Alanı sil" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Varsayılan Alanı yükle" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Servisler" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Porta" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Alan DeÄŸiÅŸtir" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Alanı sil" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Portlar" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "Masquerading permite configurar uma máquina ou router que liga a sua rede " "local à Internet. A sua rede local não será visível e as máquinas aparecem " "na Internet com um único endereço. Masquerading é válido apenas em IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "Masquerade alanı" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "EÄŸer masquerading etkileleÅŸtirirseniz, IP yönlendirmesi IPv4 ağınız için " "etkinleÅŸtirilecektir." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "Maskeleme" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Adicione entradas ao reencaminhamento de portos de um porto para outro no " "sistema local ou do sistema local para outro sistema. O reencaminhamento " "para outro sistema só é útil se o interface estiver configurado como " "masqueraded. O reencaminhamento de portos só é suportado em IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "İnternet Kontrol Mesaj Protokolü \"The Internet Control Message Protocol\" " "(ICMP) genellikle bilgisayarlar arasındaki hata mesajları için kullanılır, " "fakat ek olarak bilgi mesajları ping istek ve cevapları içinde kullanılır." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Reddedilmesi gereken ICMP tiplerini listeden iÅŸaretleyin. DiÄŸer bütün ICMP " "tipleri güvenlik duvarından geçebilecektir. Varsayılan olanda herhangi bir " "sınırlama yoktur." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP Filter" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Servis ekle" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Servisi deÄŸiÅŸtir." #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Servisi sil" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Varsayılan servisi yükle" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Editar Entrada" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "GiriÅŸi sil" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Modüller" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "EÄŸer belirli bir hedef adres belirledi iseniz, servis giriÅŸi hedef adres ve " "tipi ile sınırlı olacaktır. EÄŸer ikisi de boÅŸ ise , herhangi bir sınırlama " "yoktur." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "ICMP Tipi Ekle" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "ICMP Tipini DeÄŸiÅŸtir" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "ICMP Tipini Sil" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Varsayılan ICMP Tipini yükle" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "Komut satırları" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Kullanıcı isimleri" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Kullanıcı Kimlikleri" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Sistemin varsayılan geçerli alanı" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Varsayılan Alan" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Porto e Protocolo" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Lütfen port ve protkolü giriniz." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "DiÄŸer Protokol" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Kaynak:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Temel Servis Ayarları" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Lütfen temel servis ayarlarınızı yapılandırınız." #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Temel Alan Seçenekleri" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Lütfen temel alan ayarlarnızı yapılandırınız" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Varsayılan Hedef:" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "Hedef:" firewalld-0.4.4.6/po/uk.po000066400000000000000000002133301320241217000152230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Maxim Dubovoy , 2003 # Yuri Chornoivan , 2010-2014 # Yuri Chornoivan , 2012 # Yuri Chornoivan , 2015. #zanata # Yuri Chornoivan , 2016. #zanata # Yuri Chornoivan , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-13 03:12-0400\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/firewalld/" "language/uk/)\n" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "Ðплет брандмауера" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "Мережний екран" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¾Ð³Ð¾ екрану" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "" "firewall;network;security;iptables;netfilter;брандмауер;файрвол;екран;мережа;безпека;захиÑÑ‚;айпітейблÑ;нетфільтр;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "Виберіть зону Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу «%s»" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "Типова зона" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "Виберіть зону Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«%s»" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "Ðе вдалоÑÑ Ð²Ñтановити зону {zone} Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ {connection}" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "Виберіть зону Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° «%s»" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¾Ñ— Ñ– закритої зон" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "Тут ви можете вибрати відкриту Ñ– закриту зони." #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "" "Ð¦Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–Ñть буде кориÑною Ð´Ð»Ñ Ñ‚Ð¸Ñ…, хто переважно викориÑтовує типові зони. " "ДоцільніÑть Ñ—Ñ— викориÑÑ‚Ð°Ð½Ð½Ñ Ñƒ ÑиÑтемах, де зони змінюютьÑÑ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ від " "з’єднань, Ñ” доволі Ñумнівною." #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "Відкрита зона:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "Скинути до типового" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "Закрита зона:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "Про %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "Ðвтори" #: ../src/firewall-applet:396 msgid "License" msgstr "Умови ліцензуваннÑ" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "Відкрити" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "Увімкнути ÑповіщеннÑ" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "Змінити параметри брандмауера…" #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "Змінити зони з’єднань…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "Ðалаштувати відкриту Ñ– закриту зони…" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "Заблокувати веÑÑŒ обмін даними мережею" #: ../src/firewall-applet:492 msgid "About" msgstr "ВідомоÑті" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "З’єднаннÑ" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "<інтерфейÑ>" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "Джерела" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "Спроба ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі." #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "Ðеправильний аргумент %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "Ðазва вже Ñ–Ñнує" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (Зона: {zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (Типова зона: {default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑпиÑок з’єднань від NetworkManager" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "Ðемає доÑтупних джерел Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· NetworkManager" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "Ðемає зв’Ñзку з фоновою Ñлужбою брандмауера" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "ВеÑÑŒ обмін даними мережею заблоковано." #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "Типова зона: «%s»" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "" "Типова зона «{default_zone}» активна Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«{connection}» на " "інтерфейÑÑ– «{interface}»" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "" "Зона «{zone}» викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«{connection}» на інтерфейÑÑ– " "«{interface}»" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "Ðа інтерфейÑÑ– «{interface}» працює зона «{zone}»" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "Зону «{zone}» задіÑно Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "Ðемає активних зон." #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "Ð’Ñтановлено зв’Ñзок з FirewallD." #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "Зв’Ñзок з FirewallD втрачено." #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD перезавантажено." #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "Типову зону змінено на «%s»." #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "Обмін даними мережею повніÑтю розблоковано." #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "увімкнено" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "вимкнено" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "Типову зону «{default_zone}» {activated_deactivated} Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ " "«{connection}» на інтерфейÑÑ– «{interface}»" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "Зону «{zone}» {activated_deactivated} Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«{connection}» на " "інтерфейÑÑ– «{interface}»" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "Зону «{zone}» {activated_deactivated} Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу «{interface}»" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "Ð”Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу «%2$s» задіÑно зону «%1$s»" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "Зону «{zone}» {activated_deactivated} Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° «{source}»" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "Зону «%s» задіÑно Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° «%s»" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "Ð’Ñтановлено Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· firewalld." #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "ÐамагаємоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· firewalld, зачекайте…" #: ../src/firewall-config:92 msgid "Changes applied." msgstr "Зміни заÑтоÑовано." #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "ВикориÑтано мережевим з’єднаннÑм «%s»" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "Типова зона, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«%s»" #: ../src/firewall-config:96 msgid "enabled" msgstr "увімкнено" #: ../src/firewall-config:97 msgid "disabled" msgstr "вимкнено" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ піктограми." #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "ТимчаÑові" #: ../src/firewall-config:398 msgid "Permanent" msgstr "ОÑтаточні" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "Служба" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "Порт" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "Протокол" #: ../src/firewall-config:560 msgid "To Port" msgstr "Ðа порт" #: ../src/firewall-config:562 msgid "To Address" msgstr "Ðа адреÑу:" #: ../src/firewall-config:612 msgid "Bindings" msgstr "Прив’Ñзки" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "ЗапиÑ" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Тип ICMP" #: ../src/firewall-config:817 msgid "Family" msgstr "СімейÑтво" #: ../src/firewall-config:819 msgid "Action" msgstr "ДіÑ" #: ../src/firewall-config:821 msgid "Element" msgstr "Елемент" #: ../src/firewall-config:823 msgid "Src" msgstr "Дж." #: ../src/firewall-config:825 msgid "Dest" msgstr "Призн." #: ../src/firewall-config:827 msgid "log" msgstr "журнал" #: ../src/firewall-config:829 msgid "Audit" msgstr "Ðудит" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "ПопередженнÑ" #: ../src/firewall-config:1612 msgid "Error" msgstr "Помилка" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "прийманнÑ" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "відмова" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "відкиданнÑ" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "позначка" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "обмеженнÑ" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "Ñлужба" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "порт" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "протокол" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "підробка" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "порт джерела" #: ../src/firewall-config:2071 msgid "level" msgstr "рівень" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "так" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "Зона" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "Типова зона: %s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "Зона: %s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "Зона «%s»: немає доÑтупу до Ñлужби «%s»." #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "Вилучити зону" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "Ігнорувати" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "Зона «%s»: тип ICMP «%s» недоÑтупний." #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "Вбудована зона, підтримки Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено." #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "Ñекунда" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "хвилина" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "година" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "день" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "надзвичайний Ñтан" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "нагадуваннÑ" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "критичний" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "помилка" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "попередженнÑ" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "зауваженнÑ" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "інформаціÑ" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "діагноÑтика" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-блокуваннÑ" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-тип" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð²" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "" "ПереÑпрÑÐ¼Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ іншої ÑиÑтеми працюватиме, лише Ñкщо Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ " "замаÑковано.\n" "Хочете увімкнути маÑÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— зони?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "Вбудована Ñлужба, підтримки Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено." #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "Будь лаÑка, введіть адреÑу IPv4 у форматі «адреÑа[/маÑка]»" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "МаÑку можна вказати у форматі маÑки мережі або чиÑла." #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "Будь лаÑка, введіть адреÑу IPv6 у форматі «адреÑа[/маÑка]»" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "МаÑку Ñлід вказати у форматі чиÑла." #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "Будь лаÑка, введіть адреÑу IPv4 або IPv6 у форматі «адреÑа[/маÑка]»" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "" "Ð”Ð»Ñ IPv4 маÑку можна вказати у форматі маÑки мережі або чиÑла.\n" "Ð”Ð»Ñ IPv6 маÑку Ñлід вказати у форматі чиÑла." #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "Вбудований ipset, підтримки Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено." #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "Будь лаÑка, виберіть файл" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "текÑтові файли" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "уÑÑ– файли" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "УÑе" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "" "Вбудований допоміжний заÑіб, підтримки Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено." #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "Вбудований ICMP, підтримки Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено." #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл «%s»: %s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "Виберіть зону Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° %s" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ÐдреÑа" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "Ðвтоматичні допоміжні заÑоби" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "Будь лаÑка, вибреіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… допоміжних заÑобів:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "Командний Ñ€Ñдок" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "Будь лаÑка, вкажіть Ñ€Ñдок команди." #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "КонтекÑÑ‚" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "Будь лаÑка, вкажіть контекÑÑ‚." #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "Будь лаÑка, виберіть типову зону ÑиÑтеми з наведеного нижче ÑпиÑку." #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "БезпоÑередній ланцюжок" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "" "Будь лаÑка виберіть верÑÑ–ÑŽ протоколу IP та таблицю та введіть назву ланцюжка." "" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "Ланцюжок:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "без захиÑту" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "з захиÑтом" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "ТаблицÑ:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "БезпоÑереднє правило транÑлÑції" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "Будь лаÑка виберіть верÑÑ–ÑŽ протоколу IP та введіть аргументи." #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "Ðргументи:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð²" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "Виберіть параметри джерела та цілі." #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "Порт / діапазон портів:" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "ÐдреÑа IP:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "Протокол:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "Джерело" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "ПризначеннÑ" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "" "Якщо ви увімкнете перенаправленнÑ, треба вказати порт. Цей порт має " "відрізнÑтиÑÑ Ð²Ñ–Ð´ порту джерела." #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "Локальне перенаправленнÑ" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "Ðаправити іншому порту" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "Параметри базового допоміжного заÑобу" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "Будь лаÑка, налаштуйте параметри базового допоміжного заÑобу:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "" "Пункти, позначені жирним, Ñлід визначити обов’Ñзково. Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… " "пунктів Ñ” необов’Ñзковим." #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "Ðазва:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "ВерÑÑ–Ñ:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "СкороченнÑ:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "ОпиÑ:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "СімейÑтво:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "Модуль:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "Допоміжний заÑіб" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "Будь лаÑка, виберіть допоміжний заÑіб:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "Параметри оÑновного типу ICMP" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "Будь лаÑка, налаштуйте параметри оÑновного типу ICMP:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "Тип ICMP" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "Будь лаÑка, виберіть тип ICMP" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "Додати запиÑ" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "Додати запиÑи з файла" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "Вилучити позначений запиÑ" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "Вилучити уÑÑ– запиÑи" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "Вилучити запиÑи з файла" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "_Файл" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "_Параметри" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "Перезавантажити Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "Перезавантажити правила брандмауера. Поточні збережені Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтануть " "новими робочими налаштуваннÑми, тобто уÑÑ– зміни у робочому проÑторі, внеÑені " "до Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð», буде втрачено, Ñкщо Ñ—Ñ… не було у збережених " "налаштуваннÑÑ…." #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "Змінити зону, до Ñкої належить Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею." #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "Змінити типову зону" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "Змінити типову зону Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ або інтерфейÑів." #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ð¸ журналюваннÑ" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ LogDenied." #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… заÑобів" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° автоматичного Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… заÑобів." #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "" "Режим Ñупербезпеки означає, що уÑÑ–Ñ… вхідні та вихідні пакети відкидатимутьÑÑ." "" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "Режим Ñупербезпеки" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "" "У режимі Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ заблоковано Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°Ð½Ð´Ð¼Ð°ÑƒÐµÑ€Ð° так, щоб лише " "програми з «білого» ÑпиÑку Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð³Ð»Ð¸ вноÑити до них зміни." #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "БлокуваннÑ" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "Зробити тимчаÑові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñтійними" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "ТимчаÑові на поÑтійні" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "П_ереглÑд" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSet" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "Типи ICMP" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "Допоміжні заÑоби" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "БезпоÑереднє налаштовуваннÑ" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "«Білий» ÑпиÑок блокуваннÑ" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "Ðктивні прив’Ñзки" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "_Довідка" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "Змінити зону прив’Ñзки" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Приховати активні динамічні прив’Ñзки з’єднань, інтерфейÑів або джерел до " "зон" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "" "Показати активні динамічні прив’Ñзки з’єднань, інтерфейÑів або джерел до зон" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "ÐалаштуваннÑ:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "" "Поточні видимі налаштуваннÑ. ТимчаÑові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ â€” це поточні активні " "налаштуваннÑ. Сталі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ викориÑтано піÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ " "Ñлужби або ÑиÑтеми." #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "Зона firewalld визначає рівень довіри до з’єднань у мережі, інтерфейÑів та " "Ð°Ð´Ñ€ÐµÑ Ð´Ð¶ÐµÑ€ÐµÐ», пов’Ñзаних із зоною. У запиÑÑ– зони поєднуютьÑÑ Ð´Ð°Ð½Ñ– щодо " "Ñлужб, портів, протоколів, підробки адреÑ, переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð² та " "пакетів, фільтрів icmp та розширених правил. Зону можна пов’Ñзати з " "інтерфейÑами або адреÑами джерел." #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "Додати зону" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "Змінити зону" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "Вилучити зону" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "Завантажити типові параметри зони" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "" "Тут можна визначити, Ñкі Ñлужби Ñ” довіреними у зоні. Довірені Ñлужби будуть " "доÑтупними з уÑÑ–Ñ… вузлів чи мереж, Ñкі мають доÑтуп до комп’ютера за " "допомогою з’єднань, інтерфейÑів та прив’Ñзок джерел до цієї зони." #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "Служби" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "" "Додати додаткові порти або діапазон портів, Ñкі мають бути доÑтупні Ð´Ð»Ñ Ð²ÑÑ–Ñ… " "вузлів чи мереж, з Ñкими може з’єднуватиÑÑ ÐºÐ¾Ð¼Ð¿â€™ÑŽÑ‚ÐµÑ€." #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "Ðа порт" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "Змінити зону" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "Вилучити зону" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "Порти" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "" "Додати протоколи, доÑтуп до Ñких має бути забезпечено Ð´Ð»Ñ ÑƒÑÑ–Ñ… вузлів або " "мереж." #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "Додати протокол" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "Змінити протокол" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "Вилучити протокол" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "Протоколи" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "" "Додати додаткові порти або діапазони портів джерела, доÑтуп до Ñких має бути " "забезпечено Ð´Ð»Ñ ÑƒÑÑ–Ñ… вузлів або мереж, Ñкі вÑтановлюють Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· " "комп’ютером." #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "Порти походженнÑ" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "МаÑкарад кориÑний Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° чи маршрутизатора, що з'єднує " "локальну мережу з Інтернет. Локальна мережа не буде видимою, у Інтернет буде " "видимий лише один вузол. МаÑкарад заÑтоÑовуєтьÑÑ Ð»Ð¸ÑˆÐµ до IPv4." #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "ЗамаÑкувати зону" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "" "Якщо ви увімкнете маÑкарад, буде увімкнено переÑпрÑÐ¼Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ IP Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… " "мереж IPv4." #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "МаÑкарад" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "Додайте запиÑи Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð² або з одного порту другому в " "локальній ÑиÑтемі, або з локальної ÑиÑтеми іншій ÑиÑтемі. ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ " "іншій ÑиÑтемі має ÑÐµÐ½Ñ Ð¿Ñ€Ð¸ маÑкараді інтерфейÑу. ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð² " "викориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ IPv4." #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "Додати порт переÑпрÑмовуваннÑ" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "Змінити порт переÑпрÑмовуваннÑ" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "Вилучити порт переÑпрÑмовуваннÑ" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "Протокол ICMP (Internet Control Message Protocol) зазвичай викориÑтовуєтьÑÑ " "Ð´Ð»Ñ Ð¾Ð±Ð¼Ñ–Ð½Ñƒ повідомленнÑми про помилки між комп'ютерами у мережі, але також " "можна надÑилати інформаційні повідомленнÑ, такі Ñк запити та відповіді ping." #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "" "Позначте у ÑпиÑку типи ICMP, Ñким Ñлід відмовити у проходженні через " "мережний екран. Типово обмежень немає." #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "Якщо увімкнено Ñ–Ð½Ð²ÐµÑ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ, позначені запиÑи ICMP " "вважатимутьÑÑ Ð¿Ñ€Ð¸Ð¹Ð½Ñтними, а інші відхилÑтимутьÑÑ. У зоні із ціллю DROP, " "такі запити проÑто відкидатимутьÑÑ." #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "Інвертувати фільтруваннÑ" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "Фільтр ICMP" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "Тут ви можете вÑтановити розширені правила мови Ð´Ð»Ñ Ð·Ð¾Ð½Ð¸." #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "Додати розширене правило" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "Змінити розширене правило" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "Вилучити розширене правило" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "Розширені правила" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "" "Додайте запиÑи Ð´Ð»Ñ Ð¿Ð¾Ð²â€™ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð· зоною інтерфейÑів. Якщо у з’єднанні буде " "викориÑтано вказаний інтерфейÑ, зону буде вÑтановлено відповідно до зони, " "вказаної у запиÑÑ– з’єднаннÑ." #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "Додати інтерфейÑ" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "Змінити інтерфейÑ" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "Вилучити інтерфейÑ" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "Додати запиÑи Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²â€™ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° або облаÑтей до зони. Можна " "також виконати прив’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ MAC-адреÑи джерела, але із обмеженнÑми. Ð”Ð»Ñ " "прив’Ñзок MAC-джерел не працюватимуть переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð² та маÑкарад." #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "Додати джерело" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "Змінити джерело" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "Вилучити джерело" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "Зони" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "" "У запиÑÑ– Ñлужби firewalld поєднуютьÑÑ Ð´Ð°Ð½Ñ– щодо портів, протоколів, модулів " "та Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ." #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "Додати Ñлужбу" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "Змінити Ñлужбу" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "Вилучити Ñлужбу" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "Завантажити типові параметри Ñлужби" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "" "Додати додаткові порти або діапазон портів, Ñкі мають бути доÑтупні Ð´Ð»Ñ Ð²ÑÑ–Ñ… " "вузлів чи мереж." #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "Змінити запиÑ" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "ВИдалити запиÑ" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "" "Додати додаткові порти або діапазони портів джерела, доÑтуп до Ñких має бути " "забезпечено Ð´Ð»Ñ ÑƒÑÑ–Ñ… вузлів або мереж." #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "Порт джерела" #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "" "Модулі допоміжних заÑобів Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ– потребують певних Ñлужб." #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "Модулі" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "" "Якщо вами вказано адреÑу призначеннÑ, Ð·Ð°Ð¿Ð¸Ñ Ñлужби діÑтиме лише Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ñ— " "адреÑи Ñ– типу призначеннÑ. Якщо не буде вказано ні адреÑи, ні типу, Ð·Ð°Ð¿Ð¸Ñ " "Ñлужби діÑтиме Ð´Ð»Ñ Ð²ÑÑ–Ñ… Ð°Ð´Ñ€ÐµÑ Ñ– типів." #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "" "ЗапиÑи Ñлужб можна змінювати лише у оÑтаточних налаштуваннÑÑ…. Динамічні " "Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñлужб змінювати не можна." #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "" "IPSet може бути викориÑтано Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Â«Ð±Ñ–Ð»Ð¸Ñ…Â» або «чорних» ÑпиÑків, у " "ньому можуть зберігатиÑÑ, наприклад, IP-адреÑи, номери портів або MAC-адреÑи." " " #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "Додати IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "Змінити IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "Вилучити IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "Завантажити типові параметри IPSet" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "ЗапиÑи IPSet. Видимими будуть лише запиÑи, у Ñких не викориÑтовуєтьÑÑ " "параметр чаÑу очікуваннÑ, а також лише запиÑи, Ñкі було додано firewalld. " "ЗапиÑи, Ñкі було додано безпоÑередньо командою ipset, у цьому ÑпиÑку " "показано не буде." #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "" "У цьому IPSet викориÑтано параметр чаÑу очікуваннÑ, тому запиÑи тут не " "показуютьÑÑ. Про Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑку запиÑів має безпоÑередньо подбати команда " "ipset." #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "Додати" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "ЗапиÑи" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "" "IPSet можна Ñтворювати або вилучати лише за допомогою панелі поÑтійних " "налаштувань." #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "Тип ICMP firewalld міÑтить дані щодо типу Internet Control Message Protocol " "(ICMP) Ð´Ð»Ñ firewalld." #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "Додати тип ICMP" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "Змінити тип ICMP" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "Вилучити тип ICMP" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "Завантажити типові параметри типу ICMP" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "Вкажіть, чи цей тип ICMP доÑтупний Ð´Ð»Ñ IPv4 Ñ–/або IPv6." #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "" "Ð—Ð°Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñ–Ð² ICMP можна змінювати лише у оÑтаточних налаштуваннÑÑ…. Динамічні " "Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ñ–Ð² ICMP змінювати не можна." #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" "Допоміжний заÑіб ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° з’єднаннÑм призначено Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ " "працездатноÑті протоколів, у Ñких викориÑтовуютьÑÑ Ñ€Ñ–Ð·Ð½Ñ– потоки Ð´Ð»Ñ " "Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñигналів та даних. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… викориÑтовуютьÑÑ Ð¿Ð¾Ñ€Ñ‚Ð¸, " "Ñкі не пов’Ñзано із з’єднаннÑм Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñигналів, тому без " "допоміжного заÑобу Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… такими портами блокуватиметьÑÑ " "брандмауером." #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð² або діапазонів портів, за Ñкими Ñтежитиме допоміжний заÑіб." "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "БезпоÑереднє Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ð°Ñ” ширший доÑтуп до брандмауера. Ð”Ð»Ñ " "ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувач має бути ознайомлений з " "базовими елементами роботи iptables, зокрема таблицÑми, ланцюжками, " "командами, параметрами та призначеннÑми фільтрів. БезпоÑереднім " "налаштовуваннÑм Ñлід кориÑтуватиÑÑ Ð»Ð¸ÑˆÐµ, Ñкщо бажаного не можна доÑÑгти за " "допомогою інших можливоÑтей firewalld." #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "Ðргументом верÑÑ–Ñ— протоколу IP (ipv) Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ параметра має бути ipv4, " "ipv6 або eb. Ðргументу ipv4 відповідає iptables, аргументу ipv6 — ip6tables, " "а аргументу eb — міÑтки ethernet (ebtables)." #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "Додаткові ланцюжки, Ñкі Ñлід викориÑтати з правилами." #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "Додати ланцюжок" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "Змінити ланцюжок" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "Вилучити ланцюжок" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "Ланцюжки" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "" "Додати правило з аргументами до ланцюжка у таблицю з рівнем пріоритетноÑті." #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "ПріоритетніÑть викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð». Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " "пріоритетноÑті 0 відповідає додаванню правила на початок ланцюжка, правила з " "більшими значеннÑми пріоритетноÑті розташовуютьÑÑ Ð´Ð°Ð»Ñ– за ланцюжком. Правила " "з одним рівнем пріоритетноÑті перебувають на одному рівні, порÑдок таких " "правил не Ñ” фікÑованим Ñ– може змінюватиÑÑ. Якщо ви хочете забезпечити певну " "поÑлідовніÑть правил, ÑкориÑтайтеÑÑ Ð¼ÐµÐ½ÑˆÐ¸Ð¼ значеннÑм пріоритетноÑті Ð´Ð»Ñ " "першого з правил Ñ– більшим Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾." #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "Додати правило" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "Змінити правило" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "Вилучити правило" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "Правила" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "" "ТранÑлÑційні правила буде безпоÑередньо передано брандмауеру без " "Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñпеціальних ланцюжках. Можна викориÑтовувати уÑÑ– параметри " "iptables, ip6tables та ebtables." #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "" "Будь лаÑка, будьте обережні з правилами транÑлÑції, щоб не зашкодити роботі " "брандмауера." #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "Додати транÑлÑцію" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "Змінити транÑлÑцію" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "Вилучити транÑлÑцію" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "ТранÑлÑціÑ" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "МожливіÑть з Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ” Ñпрощеною верÑією правил firewalld Ð´Ð»Ñ " "кориÑтувачів Ñ– програм. Вона обмежує зміни, Ñкі можна вноÑити до параметрів " "роботи брандмауера. «Білий» ÑпиÑок Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ міÑтити команди, " "контекÑти, імена та ідентифікатори кориÑтувачів." #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "КонтекÑÑ‚ — контекÑÑ‚ безпеки (SELinux) запущеної програми або Ñлужби. Ð”Ð»Ñ " "Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо контекÑту запущеної програми ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ " "ps -e --context." #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "Додати контекÑÑ‚" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "Змінити контекÑÑ‚" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "Вилучити контекÑÑ‚" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "КонтекÑти" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "" "Якщо Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ у «білому» ÑпиÑку завершуєтьÑÑ Ð·Ñ–Ñ€Ð¾Ñ‡ÐºÐ¾ÑŽ, «*», його буде " "викориÑтано Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ уÑÑ–Ñ… Ñ€Ñдків команд, що починаютьÑÑ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¼ чином." " Якщо у запиÑÑ– немає «*», обробка виконуватиметьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ разом з " "аргументами команди." #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "Додати Ñ€Ñдок команди" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "Змінити Ñ€Ñдок команди" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "Вилучити Ñ€Ñдок команди" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "РÑдки команд" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "Імена кориÑтувачів." #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "Додати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "Змінити Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "Вилучити Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "Імена кориÑтувачів" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "Ід. кориÑтувачів" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "Додати ідентифікатор кориÑтувача" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "Змінити ідентифікатор кориÑтувача" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "Вилучити ідентифікатор кориÑтувача" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "Ід. кориÑтувачів" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "Поточна типова зона ÑиÑтеми." #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "Заборона журналюваннÑ:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "Режим Ñупербезпеки:" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "Ðвтоматичні допоміжні заÑоби:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "БлокуваннÑ:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "Типова зона:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "ІнтерфейÑ" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "Параметри оÑновного IPSet" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "Будь лаÑка, вкажіть параметри оÑновного ipset:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "Тип:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Розмір хешу:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "МакÑ. ел.:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñекундах" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "Початковий розмір хешу, типово 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "МакÑимальна кількіÑть елементів, типово 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "Будь лаÑка, виберіть ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Ð–ÑƒÑ€Ð½Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "Будь лаÑка, виберіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ð¸ журналюваннÑ:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "Позначка" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "Будь лаÑка, вкажіть позначку із додатковою маÑкою." #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "" "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð² позначки Ñ– маÑки мають бути 32-бітовими широкими цілими " "чиÑлами без знаку." #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "Позначка:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "МаÑка:" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" "Будь лаÑка, виберіть допоміжний заÑіб ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° з’єднаннÑм фільтра мережі:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- Вибір -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "Інший модуль:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "Порт та протокол:" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "Будь лаÑка, вкажіть порт Ñ– протокол." #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "БезпоÑереднє правило" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "" "Будь лаÑка виберіть верÑÑ–ÑŽ протоколу IP та таблицю, пріоритетніÑть ланцюжка " "та введіть аргументи." #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "ПріоритетніÑть:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "Будь лаÑка, вкажіть протокол." #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "Інший протокол:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "Розширене правило" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "Будь лаÑка, вкажіть розширене правило." #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "" "Ð”Ð»Ñ Ð²ÑƒÐ·Ð»Ð° або мережі Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾ «білого» або «чорного» ÑпиÑку виключає " "елемент з правила." #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "Джерело:" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "ПризначеннÑ:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "Журнал:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "Ðудит:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 та ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "інвертуваннÑ" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "" "Щоб можна було ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Ð”Ñ–Ñ» має бути «відмова», а " "«СімейÑтвом» має бути «ipv4» або «ipv6» (не обидва)." #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "з типом:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "З обмеженнÑм:" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "ПрефікÑ:" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "Рівень:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "Елемент:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "ДіÑ:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "Параметри оÑновної Ñлужби" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "Будь лаÑка, налаштуйте параметри оÑновної Ñлужби:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "Будь лаÑка, виберіть Ñлужбу." #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "Ід. кориÑтувача" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "Будь лаÑка, вкажіть ідентифікатор кориÑтувача." #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "Будь лаÑка, вкажіть Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача." #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "мітка" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "Параметри оÑновної зони" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "Будь лаÑка, налаштуйте параметри оÑновної зони:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "Типове призначеннÑ" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "ПризначеннÑ:" firewalld-0.4.4.6/po/zh_CN.po000066400000000000000000001515421320241217000156130ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Alick Zhao , 2013 # Christopher Meng , 2012-2013 # Leah Liu , 2007-2010 # Leah Liu , 2005-2006 # Sarah Wang , 2003-2005 # Tommy He , 2012-2013 # Wei Liu , 2014 # Zamir SUN , 2013-2014 # Zamir SUN , 2013 # Zamir SUN , 2015. #zanata # Leah Liu , 2016. #zanata # Zamir SUN , 2016. #zanata # xhuang , 2016. #zanata # Zamir SUN , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-04-20 09:26-0400\n" "Last-Translator: Zamir SUN \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/" "firewalld/language/zh_CN/)\n" "Language: zh-CN\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "防ç«å¢™å°ç¨‹åº" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "防ç«å¢™" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "防ç«å¢™é…ç½®" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "firewall;network;security;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "ä¸ºæŽ¥å£ '%s' 选择区域" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "默认区域" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "为连接 '%s' 选择区域" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "设置 {connection} 的区 {zone} 失败" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "ä¸ºæ¥æº '%s' 选择区域" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "é…ç½®ä¿æŠ¤å¼€å¯/关闭区域" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "在这里您å¯ä»¥é€‰æ‹©å¼€å¯ä¿æŠ¤å’Œå…³é—­ä¿æŠ¤çš„区域。" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "这项功能对于在ç»å¤§å¤šæ•°æ—¶é—´é‡Œä½¿ç”¨é»˜è®¤åŒºåŸŸçš„人有用。对于ç»å¸¸æ”¹å˜è¿žæŽ¥åŒºåŸŸçš„用户æ¥è¯´ï¼Œç”¨å¤„有é™ã€‚" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "å¼€å¯ä¿æŠ¤åŒºåŸŸ:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "é‡è®¾ä¸ºé»˜è®¤è®¾ç½®" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "å…³é—­ä¿æŠ¤åŒºåŸŸ:" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "关于 %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "作者" #: ../src/firewall-applet:396 msgid "License" msgstr "许å¯è¯" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "å¯åŠ¨ä¿æŠ¤" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "å¯ç”¨é€šçŸ¥" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "编辑防ç«å¢™è®¾ç½®..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "更改连接区域…" #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "é…ç½®ä¿æŠ¤å¼€å¯/关闭区域…" #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "阻止所有网络传输" #: ../src/firewall-applet:492 msgid "About" msgstr "关于" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "连接" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "接å£" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "æ¥æº" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "认è¯å¤±è´¥ã€‚" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "无效的åç§°" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "å称已存在" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (区域:{zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (默认区:{default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "从 NetworkManager 获å–连接失败" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "没有å¯ç”¨çš„ NetworkManager 导入" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "没有到防ç«å¢™å®ˆæŠ¤è¿›ç¨‹çš„连接" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "阻挡所有网络传输。" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "默认区域: '%s'" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "æŽ¥å£ '{interface}' 上连接 '{connection}' 的活动默认区 '{default_zone}'" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "åœ¨æŽ¥å£ '{interface}' å¯ç”¨è¿žæŽ¥ '{connection}' 的区域 '{zone}'" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "åœ¨æŽ¥å£ '{interface}' å¯ç”¨åŒºåŸŸ '{zone}'" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "åœ¨æ¥æº {source} å¯ç”¨åŒºåŸŸ '{zone}'" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "没有å¯ç”¨åŒºåŸŸã€‚" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "建立至 FirewallD 的连接。" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "丢失至 FirewallD 的连接。" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD å·²ç»é‡è½½ã€‚" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "é»˜è®¤åŒºåŸŸå˜æ›´è‡³ '%s'。" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "ä¸å†é˜»æŒ¡ç½‘络传输。" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "å·²å¯ç”¨" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "å·²ç¦ç”¨" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "æŽ¥å£ '{interface}' 上连接 '{connection}' 的默认区 '{default_zone}' " "{activated_deactivated}" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "" "åœ¨æŽ¥å£ '{interface}' {activated_deactivated} 连接 '{connection}' 的区域 '{zone}' " #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "åœ¨æŽ¥å£ '{interface}' {activated_deactivated} 区域 '{zone}' " #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "åœ¨æŽ¥å£ '%s' å¯ç”¨åŒºåŸŸ '%s'" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "åœ¨æ¥æº '{source}' {activated_deactivated} 区域 '{zone}'" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "åœ¨æ¥æº '%s' å·²å¯ç”¨åŒºåŸŸ '%s'" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "已建立至 firewalld 的连接。" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "试图连接至 firewalld,等待中..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "å˜æ›´å·²ç”Ÿæ•ˆã€‚" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "被网络连接 '%s' 使用" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "网络连接 '%s' 使用的默认区" #: ../src/firewall-config:96 msgid "enabled" msgstr "å¯ç”¨" #: ../src/firewall-config:97 msgid "disabled" msgstr "ç¦ç”¨" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "载入图标失败。" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "è¿è¡Œæ—¶" #: ../src/firewall-config:398 msgid "Permanent" msgstr "永久" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "æœåŠ¡" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "端å£" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "åè®®" #: ../src/firewall-config:560 msgid "To Port" msgstr "目的端å£" #: ../src/firewall-config:562 msgid "To Address" msgstr "目的地å€" #: ../src/firewall-config:612 msgid "Bindings" msgstr "绑定" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "æ¡ç›®" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "ICMP 类型" #: ../src/firewall-config:817 msgid "Family" msgstr "å®¶æ—" #: ../src/firewall-config:819 msgid "Action" msgstr "æ“作" #: ../src/firewall-config:821 msgid "Element" msgstr "元素" #: ../src/firewall-config:823 msgid "Src" msgstr "æ¥æº" #: ../src/firewall-config:825 msgid "Dest" msgstr "目的" #: ../src/firewall-config:827 msgid "log" msgstr "日志" #: ../src/firewall-config:829 msgid "Audit" msgstr "审计" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "警告" #: ../src/firewall-config:1612 msgid "Error" msgstr "错误" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "接å—" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "æ‹’ç»" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "丢弃" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "标记" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "é™åˆ¶" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "æœåŠ¡" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "端å£" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "åè®®" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "伪装" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "等级" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "是" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "区域" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "默认区:%s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "区:%s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "区域 '%s': æœåŠ¡ '%s' ä¸å¯ç”¨ã€‚" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "移除" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "忽略" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "区域 '%s': ICMP 类型 '%s' ä¸å¯ç”¨ã€‚" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "é¢„ç½®åŒºåŸŸï¼Œä¸æ”¯æŒé‡å‘½å。" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ç§’" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "分" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "å°æ—¶" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "天" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "紧急" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "警告" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "严é‡" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "错误" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "警告" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "æé†’" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "ä¿¡æ¯" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "除错" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "ICMP 阻拦" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "转å‘端å£" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "转å‘至其他系统ç´åœ¨ç«¯å£ä¼ªè£…æ—¶æ‰æœ‰ç”¨ã€‚\n" "您想è¦ä¼ªè£…该区域å—?" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "预置æœåŠ¡ï¼Œä¸æ”¯æŒé‡å‘½å。" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "请输入 ipv4 地å€ï¼Œæ ¼å¼ä¸º address[/mask]。" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "该掩ç å¿…é¡»ä¸ºç½‘ç»œæŽ©ç æˆ–一个数字。" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "请输入 ipv6 地å€ï¼Œæ ¼å¼ä¸º address[/mask]。" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "该掩ç ä¸ºä¸€ä¸ªæ•°å­—。" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "请输入 ipv4 或者 ipv6 地å€ï¼Œæ ¼å¼ä¸º address[/mask]。" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "对于 ipv4 地å€ï¼Œè¯¥æŽ©ç å¿…é¡»ä¸ºç½‘ç»œæŽ©ç æˆ–一个数字。\n" "对于 ipv6 地å€ï¼Œåˆ™è¯¥æŽ©ç ä¸ºä¸€ä¸ªæ•°å­—。" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "内置 ipsetï¼Œä¸æ”¯æŒé‡å‘½å。" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "请选择一个文件" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "文本文件" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "所有文件" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "全部" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 #, fuzzy msgid "Built-in helper, rename not supported." msgstr "内置辅助模å—ï¼Œä¸æ”¯æŒé‡å‘½å。" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "预置 ICMPï¼Œä¸æ”¯æŒé‡å‘½å。" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "è¯»å–æ–‡ä»¶ %s 失败:%s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "é€‰æ‹©æ¥æº %s 的区域" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "地å€" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "命令行" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "请输入命令行。" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "上下文" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "请输入上下文。" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "请从下é¢åˆ—表选择默认区域。" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "直接链" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "请选择 IPV åŠè¡¨å¹¶è¾“入链å。" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "链:" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "raw" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "security" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "表:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "直接穿通规则" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "请选择 IPV å¹¶è¾“å…¥å‚æ•°ã€‚" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "傿•°ï¼š" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "端å£è½¬å‘" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "è¯·æ ¹æ®æ‚¨çš„需è¦é€‰æ‹©æ¥æºå’Œç›®çš„选项。" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "端å£ï¼ç«¯å£èŒƒå›´ï¼š" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP 地å€:" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "å议:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "æ¥æº" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "目标地å€" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "如果您å…许本地转å‘,您必须指定一个端å£ã€‚ 这个端å£ä¸èƒ½å’Œæºç«¯å£ç›¸åŒã€‚" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "本地转å‘" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "转å‘到å¦ä¸€ç«¯å£" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "粗体项目为必需,其余为å¯é€‰ã€‚" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "åç§°:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "版本:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "简称:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "æè¿°:" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "产å“线:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "模å—: " #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "基本 ICMP 类型设定" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "请é…置基本 ICMP 类型设定:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP 类型" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "请选择ICMP类型" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "添加æ¡ç›®" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "以文件添加æ¡ç›®" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "移除所选æ¡ç›®" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "移除全部项" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "从文件中移除æ¡ç›®" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "文件(_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "选项(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "é‡è½½é˜²ç«å¢™" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "é‡è½½é˜²ç«å¢™è§„åˆ™ã€‚å½“å‰æ°¸ä¹…é…ç½®å°†å˜æˆæ–°çš„è¿è¡Œæ—¶é…置。例如所有仅在è¿è¡Œæ—¶é…置所åšçš„å˜æ›´è‹¥æœªåœ¨æ°¸ä¹…é…置中æ“作,将在é‡è½½åŽä¸¢å¤±ã€‚" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "更改网络连接所属的区域。" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "改å˜é»˜è®¤åŒºåŸŸ" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "更改连接或接å£çš„默认区域。" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "修改 LogDenied" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "修改 LogDenied 值。" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "åº”æ€¥æ¨¡å¼æ„味ç€å°†ä¸¢å¼ƒæ‰€æœ‰ä¼ å…¥å’Œä¼ å‡ºçš„包。" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "应急模å¼" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "é”定å¯ä»¥å¯¹é˜²ç«å¢™é…置进行加é”,åªå…许é”定白åå•上的应用程åºè¿›è¡Œæ”¹åŠ¨ã€‚" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "é”定" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "永久设置è¿è¡Œæ—¶é…ç½®" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "å°† Runtime 设定为永久é…ç½®" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "查看(V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSets" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP 类型" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "直接é…ç½®" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "é”定白åå•" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "活动的绑定" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "帮助(_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "修改绑定的区" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "对区éšè—è¿žæŽ¥ã€æŽ¥å£å’ŒæºæœåŠ¡å™¨çš„ runtime 绑定" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "å¯¹åŒºæ˜¾ç¤ºè¿žæŽ¥ã€æŽ¥å£å’ŒæºæœåŠ¡å™¨çš„ runtime 绑定" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "é…置:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "当å‰å¯è§é…置。è¿è¡Œæ—¶é…置为实际å¯ç”¨çš„é…置。永久é…置则会在æœåŠ¡æˆ–ç³»ç»Ÿé‡è½½æˆ–é‡å¯æ—¶å¯ç”¨ã€‚" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "FirewallD åŒºåŸŸå®šä¹‰äº†ç»‘å®šçš„ç½‘ç»œè¿žæŽ¥ã€æŽ¥å£ä»¥åŠæºåœ°å€çš„å¯ä¿¡ç¨‹åº¦ã€‚区域是æœåŠ¡ã€ç«¯å£ã€åè®®ã€IP伪装ã€ç«¯å£/" "报文转å‘ã€ICMP过滤以åŠå¯Œè§„则的组åˆã€‚区域å¯ä»¥ç»‘定到接å£ä»¥åŠæºåœ°å€ã€‚" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "添加区域" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "编辑区域" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "移除区域" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "载入默认区域" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "å¯ä»¥åœ¨è¿™é‡Œå®šä¹‰åŒºåŸŸä¸­å“ªäº›æœåŠ¡æ˜¯å¯ä¿¡çš„。å¯è¿žæŽ¥è‡³ç»‘å®šåˆ°è¿™ä¸ªåŒºåŸŸçš„è¿žæŽ¥ã€æŽ¥å£å’Œæºçš„æ‰€æœ‰ä¸»æœºå’Œç½‘络åŠä¸¶å¯ä»¥è®¿é—®å¯ä¿¡æœåŠ¡ã€‚" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "æœåŠ¡" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "添加å¯è®©å…è®¸è®¿é—®çš„ä¸»æœºæˆ–è€…ç½‘ç»œè®¿é—®çš„é™„åŠ ç«¯å£æˆ–者端å£èŒƒå›´ã€‚" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "添加端å£" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "编辑端å£" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "移除端å£" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "端å£" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "添加所有主机或网络å‡å¯è®¿é—®çš„å议。" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "添加åè®®" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "编辑åè®®" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "删除åè®®" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "åè®®" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "添加é¢å¤–çš„æºç«¯å£æˆ–范围,它们对于所有å¯ä»¥è¿žæŽ¥è‡³è¿™å°ä¸»æœºçš„æ‰€æœ‰ä¸»æœºæˆ–ç½‘ç»œéƒ½éœ€è¦æ˜¯å¯ä»¥è®¿é—®çš„。" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "æºç«¯å£" #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "如果您è¦è®¾ç½®ä¸€å°å°†æ‚¨çš„æœ¬åœ°ç½‘络连接到互è”网的主机或者路由器,伪装是很有用的。您的本地网络将ä¸å¯è§ï¼Œä¸”该主机是以å•一地å€çš„å½¢å¼å‡ºçŽ°åœ¨äº’è”网中。伪装仅适用于 " "IPv4。" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "伪装区域" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "如果您å¯ç”¨ä¼ªè£…,将会为您的 IPv4 网络å¯ç”¨ IP 转å‘。" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "伪装" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "添加æ¡ç›®æ¥è½¬å‘端å£ï¼Œå¯ä»¥æ˜¯ä»Žæœ¬åœ°ç³»ç»Ÿçš„一个端å£åˆ°å¦ä¸€ä¸ªç«¯å£ï¼Œä¹Ÿå¯ä»¥æ˜¯ä»Žæœ¬åœ°ç³»ç»Ÿåˆ°å¦ä¸€ä¸ªç³»ç»Ÿã€‚转å‘到å¦ä¸€ä¸ªç³»ç»Ÿåªåœ¨æŽ¥å£æ˜¯ä¼ªè£…的时候有用。端å£è½¬å‘åªé€‚用于 " "IPv4。" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "添加转å‘端å£" #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "编辑转å‘端å£" #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "移除转å‘端å£" #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "互è”网控制报文å议(ICMP)主è¦ç”¨äºŽåœ¨è”网的计算机间å‘é€å‡ºé”™ä¿¡æ¯ï¼Œä½†ä¹Ÿå‘é€ç±»ä¼¼ ping 请求以åŠå›žåº”等信æ¯ã€‚" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "在列表中标记应该被拒ç»çš„ ICMP 类型。所有其它 ICMP 类型则被å…许通过防ç«å¢™ã€‚默认设置是没有é™åˆ¶ã€‚" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "" "如果å¯ç”¨äº†åå‘过滤器(Invert Filter),作了标记的 ICMP æ¡ç›®éƒ½è¢«ä¼šè¢«æŽ¥å—,而其他æ¡ç›®åˆ™ä¼šè¢«æ‹’ç»ã€‚在带有目标 DROP " "的区里,它们会被丢弃。" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "åå‘过滤器" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP 过滤器" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "å¯ä»¥åœ¨è¿™é‡Œä¸ºåŒºåŸŸè®¾å®šå¯Œè¯­è¨€è§„则。" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "添加富规则" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "编辑富规则" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "移除富规则" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "富规则" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "增加入å£ä»¥å°†æŽ¥å£åŠ å…¥åŒºåŸŸã€‚è‹¥æŽ¥å£å·²ç»è¢«è¿žæŽ¥å ç”¨ï¼ŒåŒºåŸŸå°†è¢«è®¾å®šä¸ºè¿žæŽ¥æ‰€æŒ‡å®šçš„区域。" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "添加接å£" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "编辑接å£" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "移除接å£" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "添加æ¡ç›®ä»¥ä¾¿åœ¨è¯¥åŒºåŸŸç»‘定æºåœ°å€æˆ–范围。还å¯ä»¥ç»‘定到 MAC æºåœ°å€ï¼Œä½†ä¼šæœ‰æ‰€é™åˆ¶ã€‚端å£è½¬å‘åŠä¼ªè£…ä¸é€‚用于 MAC æºç»‘定。" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "æ·»åŠ æ¥æº" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "ç¼–è¾‘æ¥æº" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "ç§»é™¤æ¥æº" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "区域" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "FirewallD æœåŠ¡æ˜¯ç«¯å£ã€åè®®ã€æ¨¡å—和目的地å€çš„组åˆã€‚" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "添加æœåŠ¡" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "编辑æœåŠ¡" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "移除æœåŠ¡" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "载入默认æœåŠ¡" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "添加å¯è®©æ‰€æœ‰ä¸»æœºæˆ–è€…ç½‘ç»œè®¿é—®çš„é™„åŠ ç«¯å£æˆ–者端å£èŒƒå›´ã€‚" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "编辑æ¡ç›®" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "删除æ¡ç›®" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "添加å¯è®©æ‰€æœ‰ä¸»æœºæˆ–者网络访问的其他æºç«¯å£æˆ–者端å£èŒƒå›´ã€‚" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "æºç«¯å£" #: ../src/firewall-config.glade.h:147 #, fuzzy msgid "Netfilter helper modules are needed for some services." msgstr "æŸäº›æœåŠ¡éœ€è¦ç½‘络过滤辅助模å—" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "模å—" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "如果您指定了目的地å€ï¼ŒæœåŠ¡é¡¹ç›®å°†ä»…é™äºŽç›®çš„地å€å’Œç±»åž‹ã€‚如果两个项目å‡ä¸ºç©ºï¼Œåˆ™æ²¡æœ‰é™åˆ¶ã€‚" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "ä»…å¯ä»¥åœ¨æ°¸ä¹…é…置视图中修改æœåŠ¡ã€‚è¿è¡Œæ—¶é…置中的æœåŠ¡æ˜¯ä¸å¯ä¿®æ”¹çš„。" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "å¯ä½¿ç”¨ IPSet 创建白å啿ˆ–黑åå•,以便ä¿å­˜ IP 地å€ã€ç«¯å£å·æˆ–者 MAC 地å€ã€‚" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "添加 IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "编辑 IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "删除 IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "载入 IPSet 默认设置" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "IPSet æ¡ç›®ã€‚åªèƒ½çœ‹åˆ°ä¸ä½¿ç”¨ timeout 选项的 ipset æ¡ç›®ä»¥åŠå·²ç»ç”± firewalld 添加的æ¡ç›®ã€‚这里ä¸ä¼šåˆ—出直接由 ipset " "命令添加的æ¡ç›®ã€‚" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "这个 IPSet 使用 timeout 选项,因此在这个看ä¸åˆ°ã€‚应直接使用 ipset 命令处ç†è¯¥æ¡ç›®ã€‚" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "新增" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "æ¡ç›®" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "åªèƒ½åœ¨æ°¸ä¹…é…置视图中创建或删除 IPSet。" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "FirewallD ICMP 类型为 firewallD æä¾›å› ç‰¹ç½‘控制报文åè®® (ICMP) 的信æ¯" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "添加 ICMP 类型" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "编辑 ICMP 类型" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "移除 ICMP 类型" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "载入默认 ICMP 类型" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "指定是å¦è¯¥ ICMP 类型å¯ç”¨äºŽ IPv4 å’Œ/或 IPv6。" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "ä»…å¯ä»¥åœ¨æ°¸ä¹…é…置视图中修改 ICMP 类型。è¿è¡Œæ—¶é…置中的 ICMP 类型是固定的。" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "直接é…置给予直接访问防ç«å¢™æ–¹å¼ã€‚这些选项需è¦ç”¨æˆ·äº†è§£åŸºæœ¬çš„ iptables 概念,比如表ã€é“¾ã€å‘½ä»¤ã€å‚数和目标。直接é…置应该仅用于当其他 " "firewalld 功能都ä¸å¯ç”¨æ—¶çš„æœ€åŽæ‰‹æ®µã€‚" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "æ¯ä¸ªæ“作的 IPV 傿•°åº”为 ipv4 或 ipv6 或 eb。ipv4 用于 iptables,ipv6 用于 ip6tables,eb " "用于以太网桥接(ebtables)。" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "与规则共åŒç”Ÿæ•ˆçš„附加链" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "添加链" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "编辑链" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "移除链" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "链" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "添加一个包å«å‚数的规则至具备优先级信æ¯çš„表中。" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "优先级用于规则排åºã€‚优先级0 " "代表在链顶端添加规则,更大的优先级将添加到链下方。优先级相åŒçš„规则将具备相åŒçš„级别,排åºå¹¶ä¸å›ºå®šå¹¶æœ‰å¯èƒ½å˜åŒ–。如果您想è¦ç¡®ä¿ä¸€ä¸ªè§„则会在å¦å¤–ä¸€ä¸ªåŽæ·»åŠ ï¼Œéœ€ä¸ºå‰è€…指定低优先级而为åŽè€…指定高优先级。" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "添加规则" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "编辑规则" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "移除规则" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "规则" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "穿通规则将被直接传递给防ç«å¢™è€Œä¸ä¼šæ”¾ç½®åˆ°ç‰¹æ®Šé“¾ä¸­ã€‚å¯ä»¥ä½¿ç”¨æ‰€æœ‰ iptablesã€ip6tables å’Œ ebtables 选项。" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "请å°å¿ƒä½¿ç”¨ç©¿é€šè§„则,ä¸è¦æŸå®³é˜²ç«å¢™ã€‚" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "添加穿通" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "编辑穿通" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "移除穿通" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "穿通" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "é”定功能是适用于 firewalld 的轻é‡çº§ç”¨æˆ·å’Œåº”用程åºè§„范。它ä¿è¯å˜æ›´ä»…é™äºŽé˜²ç«å¢™ã€‚é”定白åå•å¯ä»¥åŒ…å«å‘½ä»¤ã€ä¸Šä¸‹æ–‡ã€ç”¨æˆ·å’Œç”¨æˆ· ID。" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "上下文是正在è¿è¡Œçš„åº”ç”¨ç¨‹åºæˆ–æœåŠ¡çš„å®‰å…¨ï¼ˆSELinux)上下文。请使用 ps -e --context " "èŽ·å–æ­£åœ¨è¿è¡Œçš„应用程åºçš„上下文。" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "添加上下文" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "编辑上下文" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "移除上下文" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "上下文" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "如果在白åå•输入的命令以 '*' 星å·ç»“å°¾ï¼Œåˆ™åŒ¹é…æ‰€æœ‰ä»¥å…¶å¼€å¤´çš„命令。如果ä¸å« '*' åˆ™å‘½ä»¤å’Œå…¶ä¸­çš„å‚æ•°å¿…é¡»ç»å¯¹åŒ¹é…。" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "添加命令行" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "编辑命令行" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "移除命令行" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "命令行" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "用户å。" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "添加用户å" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "编辑用户å" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "移除用户å" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "用户å" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "用户 ID。" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "添加用户 ID" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "编辑用户 ID" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "移除用户 ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "用户 ID" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "当å‰ç³»ç»Ÿçš„默认区域。" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "LogDenied:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "应急模å¼ï¼š" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "Lockdown:" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "默认区域:" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "基础 IPSet 设置" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "请é…置基础 ipset 设置:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "类型:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "超时:" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "哈希大å°ï¼š" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "最大元素数:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "以秒为å•ä½çš„超时值" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "起始哈希大å°ï¼Œé»˜è®¤ä¸º 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "最大元素数,默认为 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "请选择 ipset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "Log Denied" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "请选择 Log Denied 值:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "掩ç " #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "请输入具有å¯é€‰æŽ©ç çš„æŽ©ç ã€‚" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "掩ç å’ŒæŽ©ç å­—段都是 32 ä½å®½çš„æœªç­¾å数字。" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "掩ç ï¼š" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "掩ç ï¼š" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- 选择 -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "å…¶ä»–æ¨¡å— : " #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "端å£å’Œåè®®" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "请输入端å£å’Œå议。" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "直接规则" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "请选择 IPV åŠè¡¨ã€é“¾ä¼˜å…ˆçº§å¹¶è¾“入傿•°ã€‚" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "优先级:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "请输入å议。" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "å…¶ä»–åè®®:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "富规则" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "请输入富规则(rich rule)。" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "为主机或网络白或黑åå•ç¦ç”¨æ­¤å…ƒç´ ã€‚" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "æºï¼š" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "目标:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "日志:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "审计:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "IPv4 åŠ IPv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "å转" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "è‹¥å¯ç”¨è¯¥é¡¹ï¼Œæ“作需为'reject'并且家æ—选择'ipv4'或'ipv6'(但ä¸èƒ½åŒæ—¶é€‰æ‹©)" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "åŠç±»åž‹ï¼š" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "包å«é™åˆ¶ï¼š" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "å‰ç¼€ï¼š" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "等级:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "元素:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "æ“作:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "基本æœåŠ¡è®¾å®š" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "请é…置基本æœåŠ¡è®¾å®š:" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "请选择一个æœåŠ¡ã€‚" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "用户 ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "请输入用户 ID。" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "用户å" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "请输入用户å。" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "标签" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "基本区域设定:" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "请é…置基本区域设定:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "默认目标" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "目标:" firewalld-0.4.4.6/po/zh_TW.po000066400000000000000000001544671320241217000156560ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Ben Wu , 2002-2004 # Chester Cheng , 2004-2006,2010,2014 # Chester Cheng , 2004 # Chester Cheng , 2010 # Chester Cheng , 2010 # Terry Chuang , 2008-2009,2014 # Waika Liu , 2005 # Walter Cheuk , 2005 # Cheng-Chia Tseng , 2016. #zanata # Chester Cheng , 2016. #zanata # Terry Chuang , 2016. #zanata # Cheng-Chia Tseng , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-31 13:12+0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-09-05 07:48-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/" "firewalld/language/zh_TW/)\n" "Language: zh-TW\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.9.6\n" #: ../config/firewall-applet.desktop.in.h:1 ../src/firewall-applet:411 msgid "Firewall Applet" msgstr "防ç«ç‰†é¢æ¿ç¨‹å¼" #: ../config/firewall-config.desktop.in.h:1 msgid "Firewall" msgstr "防ç«ç‰†" #: ../config/firewall-config.desktop.in.h:2 ../src/firewall-config.glade.h:55 msgid "Firewall Configuration" msgstr "防ç«ç‰†çµ„æ…‹" #. Translators: These are searchable keywords for the firewall configuration tool #: ../config/firewall-config.desktop.in.h:4 msgid "firewall;network;security;iptables;netfilter;" msgstr "防ç«ç‰†;網路;安全性;iptables;netfilter;" #: ../src/firewall-applet:88 ../src/firewall-config:8028 #, c-format msgid "Select zone for interface '%s'" msgstr "é¸å–「%sã€ä»‹é¢çš„界域" #: ../src/firewall-applet:128 ../src/firewall-applet:135 #: ../src/firewall-applet:141 ../src/firewall-config:2421 #: ../src/firewall-config:8073 ../src/firewall-config:8081 #: ../src/firewall-config:8113 ../src/firewall-config.glade.h:8 msgid "Default Zone" msgstr "é è¨­ç•ŒåŸŸ" #: ../src/firewall-applet:161 ../src/firewall-config:8106 #, c-format msgid "Select zone for connection '%s'" msgstr "é¸å–「%sã€é€£ç·šçš„界域" #: ../src/firewall-applet:171 ../src/firewall-config:3891 msgid "Failed to set zone {zone} for connection {connection}" msgstr "為連線 {connection} 設定å€åŸŸ {zone} 失敗" #: ../src/firewall-applet:185 #, c-format msgid "Select zone for source '%s'" msgstr "é¸å–「%sã€ä¾†æºçš„界域" #: ../src/firewall-applet:202 msgid "Configure Shields Up/Down Zones" msgstr "設定防禦展開/å¸ä¸‹ç•ŒåŸŸ" #: ../src/firewall-applet:215 msgid "Here you can select the zones used for Shields Up and Shields Down." msgstr "您å¯ä»¥åœ¨é€™è£¡é¸å–「防禦展開ã€èˆ‡ã€Œé˜²ç¦¦å¸ä¸‹ã€æ‰€è¦ä½¿ç”¨çš„界域。" #: ../src/firewall-applet:221 msgid "" "This feature is useful for people using the default zones mostly. For users, " "that are changing zones of connections, it might be of limited use." msgstr "æ­¤åŠŸèƒ½å°æ–¼å¤§å¤šæ•¸ä½¿ç”¨é è¨­ç•ŒåŸŸçš„人來說很有用處。至於更改連線的界域之使用者,這å¯èƒ½ç”¨è™•ä¸å¤§ã€‚" #: ../src/firewall-applet:230 msgid "Shields Up Zone:" msgstr "防禦展開界域:" #: ../src/firewall-applet:239 ../src/firewall-applet:252 msgid "Reset To Default" msgstr "é‡è¨­å›žé è¨­å€¼" #: ../src/firewall-applet:243 msgid "Shields Down Zone:" msgstr "防禦å¸ä¸‹ç•ŒåŸŸï¼š" #: ../src/firewall-applet:335 #, c-format msgid "About %s" msgstr "關於 %s" #: ../src/firewall-applet:386 msgid "Authors" msgstr "作者" #: ../src/firewall-applet:396 msgid "License" msgstr "æŽˆæ¬Šæ¢æ¬¾" #: ../src/firewall-applet:462 msgid "Shields Up" msgstr "防禦展開" #: ../src/firewall-applet:469 msgid "Enable Notifications" msgstr "啟用通知" #: ../src/firewall-applet:475 msgid "Edit Firewall Settings..." msgstr "編輯防ç«ç‰†è¨­å®š..." #: ../src/firewall-applet:479 ../src/firewall-config.glade.h:61 msgid "Change Zones of Connections..." msgstr "變更連線的界域..." #: ../src/firewall-applet:483 msgid "Configure Shields UP/Down Zones..." msgstr "設定防禦展開/å¸ä¸‹ç•ŒåŸŸ..." #: ../src/firewall-applet:487 msgid "Block all network traffic" msgstr "å°éŽ–æ‰€æœ‰ç¶²è·¯äº¤é€š" #: ../src/firewall-applet:492 msgid "About" msgstr "關於" #: ../src/firewall-applet:500 ../src/firewall-config:614 #: ../src/firewall-config:2363 ../src/firewall-config:2643 #: ../src/firewall-config:2669 msgid "Connections" msgstr "連線" #: ../src/firewall-applet:504 ../src/firewall-config:616 #: ../src/firewall-config:2450 ../src/firewall-config:2646 #: ../src/firewall-config:2671 ../src/firewall-config.glade.h:129 msgid "Interfaces" msgstr "介é¢" #: ../src/firewall-applet:508 ../src/firewall-config:618 #: ../src/firewall-config:2481 ../src/firewall-config:2649 #: ../src/firewall-config:2673 ../src/firewall-config.glade.h:134 msgid "Sources" msgstr "來æº" #: ../src/firewall-applet:584 ../src/firewall-config:2262 msgid "Authorization failed." msgstr "授權失敗。" #: ../src/firewall-applet:586 ../src/firewall-config:2265 msgid "Invalid name" msgstr "無效的引數 %s" #: ../src/firewall-applet:590 ../src/firewall-config:2269 msgid "Name already exists" msgstr "å稱已經存在" #: ../src/firewall-applet:675 msgid "{entry} (Zone: {zone})" msgstr "{entry} (界域:{zone})" #: ../src/firewall-applet:681 msgid "{entry} (Default Zone: {default_zone})" msgstr "{entry} (é è¨­ç•ŒåŸŸï¼š{default_zone})" #: ../src/firewall-applet:762 ../src/firewall-config:1564 msgid "Failed to get connections from NetworkManager" msgstr "從 NetworkManager å–得連線失敗" #: ../src/firewall-applet:774 ../src/firewall-config:1376 msgid "No NetworkManager imports available" msgstr "ç„¡å¯ç”¨çš„ NetworkManager 匯入" #: ../src/firewall-applet:852 msgid "No connection to firewall daemon" msgstr "未有連接防ç«ç‰†å¹•後程å¼çš„連線" #: ../src/firewall-applet:860 ../src/firewall-applet:997 msgid "All network traffic is blocked." msgstr "所有網路交通已å°éŽ–ã€‚" #: ../src/firewall-applet:864 #, c-format msgid "Default Zone: '%s'" msgstr "é è¨­ç•ŒåŸŸï¼šã€Œ%sã€" #: ../src/firewall-applet:870 msgid "" "Default Zone '{default_zone}' active for connection '{connection}' on " "interface '{interface}'" msgstr "é è¨­ç•ŒåŸŸã€Œ{default_zone}ã€ä½¿ç”¨ä¸­ï¼šé€£ç·šã€Œ{connection}ã€ï¼Œä»‹é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:873 msgid "" "Zone '{zone}' active for connection '{connection}' on interface " "'{interface}'" msgstr "界域「{zone}ã€ä½¿ç”¨ä¸­ï¼šé€£ç·šã€Œ{connection}ã€ï¼Œä»‹é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:885 msgid "Zone '{zone}' active for interface '{interface}'" msgstr "界域「{zone}ã€ä½¿ç”¨ä¸­ï¼šä»‹é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:893 msgid "Zone '{zone}' active for source {source}" msgstr "界域「{zone}ã€ä½¿ç”¨ä¸­ï¼šä¾†æº {source}" #: ../src/firewall-applet:897 msgid "No Active Zones." msgstr "無使用中界域。" #: ../src/firewall-applet:955 msgid "Connection to FirewallD established." msgstr "與 FirewallD 的連線已建立。" #: ../src/firewall-applet:967 msgid "Connection to FirewallD lost." msgstr "與 FirewallD 的連線已中斷。" #: ../src/firewall-applet:972 msgid "FirewallD has been reloaded." msgstr "FirewallD 已釿–°è¼‰å…¥ã€‚" #: ../src/firewall-applet:979 #, c-format msgid "Default zone changed to '%s'." msgstr "é è¨­ç•ŒåŸŸè®Šæ›´ç‚ºã€Œ%sã€ã€‚" #: ../src/firewall-applet:998 msgid "Network traffic is not blocked anymore." msgstr "網路交通已ä¸å†å°éŽ–ã€‚" #: ../src/firewall-applet:1024 ../src/firewall-applet:1078 msgid "activated" msgstr "已啟動" #: ../src/firewall-applet:1025 ../src/firewall-applet:1079 msgid "deactivated" msgstr "å·²åœæ­¢" #: ../src/firewall-applet:1030 msgid "" "Default zone '{default_zone}' {activated_deactivated} for connection " "'{connection}' on interface '{interface}'" msgstr "" "é è¨­ç•ŒåŸŸã€Œ{default_zone}ã€{activated_deactivated}:連線「{connection}ã€ï¼Œä»‹é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:1035 msgid "" "Zone '{zone}' {activated_deactivated} for connection '{connection}' on " "interface '{interface}'" msgstr "界域「{zone}ã€{activated_deactivated}:連線「{connection}ã€ï¼Œä»‹é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:1040 msgid "Zone '{zone}' {activated_deactivated} for interface '{interface}'" msgstr "界域「{zone}ã€{activated_deactivated}:介é¢ã€Œ{interface}ã€" #: ../src/firewall-applet:1063 #, c-format msgid "Zone '%s' activated for interface '%s'" msgstr "界域「%sã€å·²å•Ÿå‹•:介é¢ã€Œ%sã€" #: ../src/firewall-applet:1081 msgid "Zone '{zone}' {activated_deactivated} for source '{source}'" msgstr "界域「{zone}ã€{activated_deactivated}:來æºã€Œ{source}ã€" #: ../src/firewall-applet:1105 #, c-format msgid "Zone '%s' activated for source '%s'" msgstr "界域「%sã€å·²å•Ÿå‹•:來æºã€Œ%sã€" #: ../src/firewall-config:89 msgid "Connection to firewalld established." msgstr "連至 firewalld 的連線已建立。" #: ../src/firewall-config:91 msgid "Trying to connect to firewalld, waiting..." msgstr "正在嘗試連上 firewalld,等待中..." #: ../src/firewall-config:92 msgid "Changes applied." msgstr "變更已套用。" #: ../src/firewall-config:93 #, c-format msgid "Used by network connection '%s'" msgstr "由「%sã€ç¶²è·¯é€£ç·šä½¿ç”¨" #: ../src/firewall-config:94 #, c-format msgid "Default zone used by network connection '%s'" msgstr "網路連線 '%s' 所使用的é è¨­ç•ŒåŸŸ" #: ../src/firewall-config:96 msgid "enabled" msgstr "已啟用" #: ../src/firewall-config:97 msgid "disabled" msgstr "å·²åœç”¨" #: ../src/firewall-config:121 msgid "Failed to load icons." msgstr "無法載入圖示。" #: ../src/firewall-config:397 ../src/firewall-config:2312 msgid "Runtime" msgstr "執行時期" #: ../src/firewall-config:398 msgid "Permanent" msgstr "永久" #: ../src/firewall-config:477 ../src/firewall-config.glade.h:137 msgid "Service" msgstr "æœå‹™" #: ../src/firewall-config:484 ../src/firewall-config:531 #: ../src/firewall-config:556 ../src/firewall-config:798 #: ../src/firewall-config:986 ../src/firewall-config:1020 msgid "Port" msgstr "連接埠" #: ../src/firewall-config:486 ../src/firewall-config:506 #: ../src/firewall-config:533 ../src/firewall-config:558 #: ../src/firewall-config:800 ../src/firewall-config:988 #: ../src/firewall-config:1003 ../src/firewall-config:1022 #: ../src/firewall-config.glade.h:247 msgid "Protocol" msgstr "å”定" #: ../src/firewall-config:560 msgid "To Port" msgstr "至連接埠" #: ../src/firewall-config:562 msgid "To Address" msgstr "至ä½å€" #: ../src/firewall-config:612 msgid "Bindings" msgstr "ç¶å®š" #: ../src/firewall-config:647 ../src/firewall-config.glade.h:231 msgid "Entry" msgstr "æ¢ç›®" #: ../src/firewall-config:773 msgid "Icmp Type" msgstr "Icmp 類型" #: ../src/firewall-config:817 msgid "Family" msgstr "家庭" #: ../src/firewall-config:819 msgid "Action" msgstr "動作" #: ../src/firewall-config:821 msgid "Element" msgstr "元素" #: ../src/firewall-config:823 msgid "Src" msgstr "來æº" #: ../src/firewall-config:825 msgid "Dest" msgstr "目標" #: ../src/firewall-config:827 msgid "log" msgstr "記錄" #: ../src/firewall-config:829 msgid "Audit" msgstr "稽核" #: ../src/firewall-config:1603 ../src/firewall-config:2784 #: ../src/firewall-config:2832 msgid "Warning" msgstr "警告" #: ../src/firewall-config:1612 msgid "Error" msgstr "錯誤" #: ../src/firewall-config:2018 ../src/firewall-config:3674 msgid "accept" msgstr "接å—" #: ../src/firewall-config:2020 ../src/firewall-config:3676 #: ../src/firewall-config:3824 msgid "reject" msgstr "拒絕" #: ../src/firewall-config:2024 ../src/firewall-config:3681 msgid "drop" msgstr "丟è½" #: ../src/firewall-config:2026 ../src/firewall-config:3683 #: ../src/firewall-config:3825 msgid "mark" msgstr "標記" #: ../src/firewall-config:2029 ../src/firewall-config:2073 #: ../src/firewall-config:2078 msgid "limit" msgstr "é™åˆ¶" #: ../src/firewall-config:2045 ../src/firewall-config:3135 #: ../src/firewall-config:3315 ../src/firewall-config:3621 #: ../src/firewall-config.glade.h:277 msgid "service" msgstr "æœå‹™" #: ../src/firewall-config:2047 ../src/firewall-config:3141 #: ../src/firewall-config:3317 ../src/firewall-config:3624 #: ../src/firewall-config.glade.h:278 msgid "port" msgstr "接埠" #: ../src/firewall-config:2050 ../src/firewall-config:3146 #: ../src/firewall-config:3326 ../src/firewall-config:3634 #: ../src/firewall-config.glade.h:279 msgid "protocol" msgstr "å”定" #: ../src/firewall-config:2052 ../src/firewall-config:3151 #: ../src/firewall-config:3651 ../src/firewall-config:3837 #: ../src/firewall-config.glade.h:284 msgid "masquerade" msgstr "å½è£" #: ../src/firewall-config:2062 ../src/firewall-config:3173 #: ../src/firewall-config:3334 ../src/firewall-config:3653 #: ../src/firewall-config.glade.h:283 msgid "source-port" msgstr "source-port" #: ../src/firewall-config:2071 msgid "level" msgstr "等級" #: ../src/firewall-config:2075 ../src/firewall-config:2080 msgid "yes" msgstr "是" #: ../src/firewall-config:2425 ../src/firewall-config:2465 #: ../src/firewall-config:2495 ../src/firewall-config.glade.h:88 msgid "Zone" msgstr "界域" #: ../src/firewall-config:2438 #, c-format msgid "Default Zone: %s" msgstr "é è¨­ç•ŒåŸŸï¼š%s" #: ../src/firewall-config:2445 ../src/firewall-config:2476 #: ../src/firewall-config:2506 #, c-format msgid "Zone: %s" msgstr "界域:%s" #: ../src/firewall-config:2781 #, c-format msgid "Zone '%s': Service '%s' is not available." msgstr "界域「%sã€ï¼šæœå‹™ã€Œ%sã€ç„¡æ³•使用。" #: ../src/firewall-config:2785 ../src/firewall-config:2833 #: ../src/firewall-config.glade.h:162 msgid "Remove" msgstr "移除" #: ../src/firewall-config:2785 ../src/firewall-config:2833 msgid "Ignore" msgstr "忽略" #: ../src/firewall-config:2829 #, c-format msgid "Zone '%s': ICMP type '%s' is not available." msgstr "界域「%sã€ï¼šICMP 類型「%sã€ç„¡æ³•使用。" #: ../src/firewall-config:2984 msgid "Built-in zone, rename not supported." msgstr "å…§å»ºç•ŒåŸŸï¼Œä¸æ”¯æ´é‡æ–°å‘½å。" #: ../src/firewall-config:3098 ../src/firewall-config:3596 #: ../src/firewall-config.glade.h:263 msgid "second" msgstr "ç§’" #: ../src/firewall-config:3099 ../src/firewall-config:3597 #: ../src/firewall-config.glade.h:264 msgid "minute" msgstr "分é˜" #: ../src/firewall-config:3100 ../src/firewall-config:3598 #: ../src/firewall-config.glade.h:265 msgid "hour" msgstr "å°æ™‚" #: ../src/firewall-config:3101 ../src/firewall-config:3599 #: ../src/firewall-config.glade.h:266 msgid "day" msgstr "æ—¥" #: ../src/firewall-config:3102 ../src/firewall-config:3600 #: ../src/firewall-config.glade.h:269 msgid "emergency" msgstr "緊急" #: ../src/firewall-config:3103 ../src/firewall-config:3601 #: ../src/firewall-config.glade.h:270 msgid "alert" msgstr "警示" #: ../src/firewall-config:3104 ../src/firewall-config:3602 #: ../src/firewall-config.glade.h:271 msgid "critical" msgstr "åš´é‡" #: ../src/firewall-config:3105 ../src/firewall-config:3603 #: ../src/firewall-config.glade.h:272 msgid "error" msgstr "錯誤" #: ../src/firewall-config:3106 ../src/firewall-config:3604 #: ../src/firewall-config.glade.h:273 msgid "warning" msgstr "警告" #: ../src/firewall-config:3107 ../src/firewall-config:3605 #: ../src/firewall-config.glade.h:274 msgid "notice" msgstr "注æ„" #: ../src/firewall-config:3108 ../src/firewall-config:3606 #: ../src/firewall-config.glade.h:275 msgid "info" msgstr "資訊" #: ../src/firewall-config:3109 ../src/firewall-config:3607 #: ../src/firewall-config.glade.h:276 msgid "debug" msgstr "除錯" #: ../src/firewall-config:3154 ../src/firewall-config:3328 #: ../src/firewall-config:3637 ../src/firewall-config:3852 #: ../src/firewall-config.glade.h:280 msgid "icmp-block" msgstr "icmp-block" #: ../src/firewall-config:3159 ../src/firewall-config:3330 #: ../src/firewall-config:3640 ../src/firewall-config.glade.h:281 msgid "icmp-type" msgstr "icmp-type" #: ../src/firewall-config:3164 ../src/firewall-config:3332 #: ../src/firewall-config:3643 ../src/firewall-config:3845 #: ../src/firewall-config.glade.h:282 msgid "forward-port" msgstr "forward-port" #: ../src/firewall-config:3307 ../src/firewall-config:3532 #: ../src/firewall-config:3556 ../src/firewall-config:3611 #: ../src/firewall-config:3741 ../src/firewall-config:3788 msgid "ipv4" msgstr "ipv4" #: ../src/firewall-config:3309 ../src/firewall-config:3534 #: ../src/firewall-config:3558 ../src/firewall-config:3613 #: ../src/firewall-config:3743 ../src/firewall-config:3790 msgid "ipv6" msgstr "ipv6" #: ../src/firewall-config:5057 msgid "" "Forwarding to another system is only useful if the interface is masqueraded.\n" "Do you want to masquerade this zone ?" msgstr "轉é€è‡³å…¶ä»–系統的功能僅在介é¢ç‚ºå½è£ä¹‹æ™‚æ‰æœƒæœ‰ç”¨ã€‚\n" "æ‚¨æ˜¯å¦æƒ³è¦å½è£æ­¤ç•ŒåŸŸï¼Ÿ" #: ../src/firewall-config:5420 msgid "Built-in service, rename not supported." msgstr "內建æœå‹™ï¼Œä¸æ”¯æ´é‡æ–°å‘½å。" #: ../src/firewall-config:5629 msgid "Please enter an ipv4 address with the form address[/mask]." msgstr "請從格å¼ä½å€ï¼ˆæˆ–é®ç½©ï¼‰è¼¸å…¥ IPV4 ä½å€" #: ../src/firewall-config:5630 msgid "The mask can be a network mask or a number." msgstr "é®ç½©å¯ä»¥æ˜¯ç¶²è·¯é®ç½©æˆ–數字。" #: ../src/firewall-config:5632 msgid "Please enter an ipv6 address with the form address[/mask]." msgstr "請從格å¼ä½å€ï¼ˆæˆ–é®ç½©ï¼‰è¼¸å…¥ IPV6 ä½å€" #: ../src/firewall-config:5633 msgid "The mask is a number." msgstr "é®ç½©ç‚ºæ•¸å­—。" #: ../src/firewall-config:5635 msgid "Please enter an ipv4 or ipv6 address with the form address[/mask]." msgstr "請從格å¼ä½å€ï¼ˆæˆ–é®ç½©ï¼‰è¼¸å…¥ IPV4 或 IPV6 ä½å€ã€‚" #: ../src/firewall-config:5636 msgid "" "The mask can be a network mask or a number for ipv4.\n" "The mask is a number for ipv6." msgstr "IPv4 é®ç½©å¯ä»¥æ˜¯ç¶²è·¯é®ç½©æˆ–數字。\n" "IPv6 é®ç½©æ˜¯æ•¸å­—。" #: ../src/firewall-config:5820 msgid "Built-in ipset, rename not supported." msgstr "內建 ipsetï¼Œä¸æ”¯æ´é‡æ–°å‘½å。" #: ../src/firewall-config:5912 ../src/firewall-config:5994 msgid "Please select a file" msgstr "è«‹é¸æ“‡ä¸€å€‹æª”案" #: ../src/firewall-config:5919 ../src/firewall-config:6001 msgid "Text Files" msgstr "文字檔案" #: ../src/firewall-config:5924 ../src/firewall-config:6006 msgid "All Files" msgstr "所有檔案" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:40 msgid "All" msgstr "全部" #: ../src/firewall-config:6427 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:41 msgid "IPv4" msgstr "IPv4" #: ../src/firewall-config:6428 ../src/firewall-config:6456 #: ../src/firewall-config.glade.h:42 msgid "IPv6" msgstr "IPv6" #: ../src/firewall-config:6433 msgid "Built-in helper, rename not supported." msgstr "å…§å»ºè¼”åŠ©å™¨ï¼Œä¸æ”¯æ´é‡æ–°å‘½å。" #: ../src/firewall-config:6923 msgid "Built-in icmp, rename not supported." msgstr "內建 icmpï¼Œä¸æ”¯æ´é‡æ–°å‘½å。" #: ../src/firewall-config:7996 #, c-format msgid "Failed to read file '%s': %s" msgstr "è®€å–æª”案 '%s' 失敗:%s" #: ../src/firewall-config:8128 #, c-format msgid "Select zone for source %s" msgstr "é¸å– %s 來æºçš„界域" #: ../src/firewall-config.glade.h:1 msgid "Address" msgstr "ä½å€" #: ../src/firewall-config.glade.h:2 msgid "Automatic Helpers" msgstr "自動輔助器" #: ../src/firewall-config.glade.h:3 msgid "Please select the automatic helpers value:" msgstr "è«‹é¸å–自動輔助器之值:" #: ../src/firewall-config.glade.h:4 msgid "Command line" msgstr "指令列" #: ../src/firewall-config.glade.h:5 msgid "Please enter the command line." msgstr "請輸入指令列。" #: ../src/firewall-config.glade.h:6 msgid "Context" msgstr "情境" #: ../src/firewall-config.glade.h:7 msgid "Please enter the context." msgstr "請輸入情境。" #: ../src/firewall-config.glade.h:9 msgid "Please select default zone from the list below." msgstr "請從下列清單中é¸å–é è¨­ç•ŒåŸŸã€‚" #: ../src/firewall-config.glade.h:10 msgid "Direct Chain" msgstr "ç›´æŽ¥éˆæ¢" #: ../src/firewall-config.glade.h:11 msgid "Please select ipv and table and enter the chain name." msgstr "è«‹é¸å– ipv èˆ‡è¡¨æ ¼ï¼Œä¸¦è¼¸å…¥éˆæ¢å稱" #: ../src/firewall-config.glade.h:12 msgid "ipv:" msgstr "ipv:" #: ../src/firewall-config.glade.h:13 msgid "eb" msgstr "eb" #: ../src/firewall-config.glade.h:14 msgid "Chain:" msgstr "éˆæ¢ï¼š" #: ../src/firewall-config.glade.h:15 msgid "nat" msgstr "nat" #: ../src/firewall-config.glade.h:16 msgid "raw" msgstr "原始" #: ../src/firewall-config.glade.h:17 msgid "security" msgstr "安全性" #: ../src/firewall-config.glade.h:18 msgid "Table:" msgstr "表格:" #: ../src/firewall-config.glade.h:19 msgid "Direct Passthrough Rule" msgstr "直接通é€è¦å‰‡" #: ../src/firewall-config.glade.h:20 msgid "Please select ipv and enter the args." msgstr "è«‹é¸å– ipv 並輸入引數。" #: ../src/firewall-config.glade.h:21 msgid "Args:" msgstr "引數:" #: ../src/firewall-config.glade.h:22 msgid "Port Forwarding" msgstr "連接埠轉é€" #: ../src/firewall-config.glade.h:23 msgid "" "Please select the source and destination options according to your needs." msgstr "è«‹æ ¹æ“šæ‚¨çš„éœ€æ±‚é¸æ“‡ä¾†æºä»¥åŠç›®çš„地é¸é …。" #: ../src/firewall-config.glade.h:24 msgid "Port / Port Range:" msgstr "連接埠 / 連接埠範åœï¼š" #: ../src/firewall-config.glade.h:25 msgid "IP address:" msgstr "IP ä½å€ï¼š" #: ../src/firewall-config.glade.h:26 msgid "Protocol:" msgstr "通訊å”定:" #: ../src/firewall-config.glade.h:27 msgid "Source" msgstr "來æº" #: ../src/firewall-config.glade.h:28 msgid "Destination" msgstr "目的地" #: ../src/firewall-config.glade.h:29 msgid "" "If you enable local forwarding, you have to specify a port. This port has to " "be different to the source port." msgstr "若您啟用本地端轉é€ï¼Œæ‚¨å°±å¿…é ˆè¦æŒ‡å®šé€£æŽ¥åŸ ã€‚這個連接埠必須和來æºé€£æŽ¥åŸ ä¸åŒã€‚" #: ../src/firewall-config.glade.h:30 msgid "Local forwarding" msgstr "本地端轉é€" #: ../src/firewall-config.glade.h:31 msgid "Forward to another port" msgstr "轉é€è‡³å…¶ä»–連接埠" #: ../src/firewall-config.glade.h:32 msgid "Base Helper Settings" msgstr "基礎輔助器設定" #: ../src/firewall-config.glade.h:33 msgid "Please configure base helper settings:" msgstr "請設定基礎輔助器設定值:" #: ../src/firewall-config.glade.h:34 msgid "Bold entries are mandatory, all others are optional." msgstr "粗體的æ¢ç›®ç‚ºå¼·åˆ¶é …目,其他æ¢ç›®å‰‡ç‚ºé¸ç”¨é …目。" #: ../src/firewall-config.glade.h:35 msgid "Name:" msgstr "å稱:" #: ../src/firewall-config.glade.h:36 msgid "Version:" msgstr "版本:" #: ../src/firewall-config.glade.h:37 msgid "Short:" msgstr "簡短:" #: ../src/firewall-config.glade.h:38 msgid "Description:" msgstr "æè¿°ï¼š" #: ../src/firewall-config.glade.h:39 msgid "Family:" msgstr "家庭:" #: ../src/firewall-config.glade.h:43 msgid "Module:" msgstr "模組:" #: ../src/firewall-config.glade.h:44 msgid "Helper" msgstr "輔助器" #: ../src/firewall-config.glade.h:45 msgid "Please select a helper:" msgstr "è«‹é¸å–輔助器:" #: ../src/firewall-config.glade.h:46 msgid "Base ICMP Type Settings" msgstr "基礎 ICMP 類型設定" #: ../src/firewall-config.glade.h:47 msgid "Please configure base ICMP type settings:" msgstr "請調整基礎 ICMP 類型設定:" #: ../src/firewall-config.glade.h:48 msgid "ICMP Type" msgstr "ICMP 類型" #: ../src/firewall-config.glade.h:49 msgid "Please select an ICMP type" msgstr "è«‹é¸å– ICMP 類型" #: ../src/firewall-config.glade.h:50 msgid "Add Entry" msgstr "加入æ¢ç›®" #: ../src/firewall-config.glade.h:51 msgid "Add Entries From File" msgstr "從檔案新增項目" #: ../src/firewall-config.glade.h:52 msgid "Remove Selected Entry" msgstr "ç§»é™¤é¸æ“‡çš„é …ç›®" #: ../src/firewall-config.glade.h:53 msgid "Remove All Entries" msgstr "移除所有項目" #: ../src/firewall-config.glade.h:54 msgid "Remove Entries From File" msgstr "從檔案中移除項目" #: ../src/firewall-config.glade.h:56 msgid "_File" msgstr "檔案(_F)" #: ../src/firewall-config.glade.h:57 msgid "_Options" msgstr "é¸é …(_O)" #: ../src/firewall-config.glade.h:58 msgid "Reload Firewalld" msgstr "釿–°è¼‰å…¥ Firewalld" #: ../src/firewall-config.glade.h:59 msgid "" "Reloads firewall rules. Current permanent configuration will become new " "runtime configuration. i.e. all runtime only changes done until reload are " "lost with reload if they have not been also in permanent configuration." msgstr "" "釿–°è¼‰å…¥é˜²ç«ç‰†è¦å‰‡ã€‚ç›®å‰çš„æ°¸ä¹…çµ„æ…‹æœƒè®Šæˆæ–°çš„åŸ·è¡Œæ™‚æœŸçµ„æ…‹ã€‚èˆ‰ä¾‹ï¼Œæ‰€æœ‰çš„åŸ·è¡Œæ™‚æœŸä¸‹çš„è®Šå‹•ç›´åˆ°é‡æ–°è¼‰å…¥å‰éƒ½æœƒæœ‰æ•ˆï¼šåªè¦æ”¹è®Šä¸æ˜¯è¨­åœ¨æ°¸ä¹…çµ„æ…‹ä¸­ï¼Œé‚£éº¼ä¸€æ—¦é‡æ–°è¼‰å…¥å¾Œæ‰€æœ‰æ”¹å‹•都會消失。" #: ../src/firewall-config.glade.h:60 msgid "Change which zone a network connection belongs to." msgstr "變更網路連線所屬的界域。" #: ../src/firewall-config.glade.h:62 msgid "Change Default Zone" msgstr "變更é è¨­ç•ŒåŸŸ" #: ../src/firewall-config.glade.h:63 msgid "Change default zone for connections or interfaces." msgstr "變更連線或介é¢çš„é è¨­ç•ŒåŸŸã€‚" #: ../src/firewall-config.glade.h:64 msgid "Change Log Denied" msgstr "變更日誌被拒" #: ../src/firewall-config.glade.h:65 msgid "Change LogDenied value." msgstr "變更 LogDenied 值。" #: ../src/firewall-config.glade.h:66 msgid "Configure Automatic Helper Assigment" msgstr "設定自動輔助器指派" #: ../src/firewall-config.glade.h:67 msgid "Configure Automatic Helper Assignment setting." msgstr "設定自動輔助器指派設定。" #: ../src/firewall-config.glade.h:68 msgid "Panic mode means that all incoming and outgoing packets are dropped." msgstr "ææ…Œæ¨¡å¼ä»£è¡¨æ‰€æœ‰é€£å…¥èˆ‡å‚³å‡ºå°åŒ…都會直接丟棄。" #: ../src/firewall-config.glade.h:69 msgid "Panic Mode" msgstr "ææ…Œæ¨¡å¼" #: ../src/firewall-config.glade.h:70 msgid "" "Lockdown locks firewall configuration so that only applications on lockdown " "whitelist are able to change it." msgstr "å°éŽ–ç®¡åˆ¶æœƒéŽ–ä¸Šé˜²ç«ç‰†çµ„æ…‹ï¼Œåªæœ‰å°éŽ–ç®¡åˆ¶ç™½å單中列出的應用程å¼å¯ä»¥æ”¹å‹•組態。" #: ../src/firewall-config.glade.h:71 msgid "Lockdown" msgstr "å°éŽ–ç®¡åˆ¶" #: ../src/firewall-config.glade.h:72 msgid "Make runtime configuration permanent" msgstr "使 runtime é…置永久化" #: ../src/firewall-config.glade.h:73 msgid "Runtime To Permanent" msgstr "使 Runtime 永久化" #: ../src/firewall-config.glade.h:74 msgid "_View" msgstr "檢視(_V)" #: ../src/firewall-config.glade.h:75 msgid "IPSets" msgstr "IPSet" #: ../src/firewall-config.glade.h:76 msgid "ICMP Types" msgstr "ICMP 類型" #: ../src/firewall-config.glade.h:77 msgid "Helpers" msgstr "輔助器" #: ../src/firewall-config.glade.h:78 msgid "Direct Configuration" msgstr "直接組態" #: ../src/firewall-config.glade.h:79 msgid "Lockdown Whitelist" msgstr "å°éŽ–ç®¡åˆ¶ç™½åå–®" #: ../src/firewall-config.glade.h:80 msgid "Active Bindings" msgstr "使用中的ç¶å®š" #: ../src/firewall-config.glade.h:81 msgid "_Help" msgstr "求助(_H)" #: ../src/firewall-config.glade.h:82 msgid "Change zone of binding" msgstr "變更ç¶å®šçš„界域" #: ../src/firewall-config.glade.h:83 msgid "" "Hide active runtime bindings of connections, interfaces and sources to zones" msgstr "在界域中隱è—連線ã€ä»‹é¢åŠä¾†æºçš„使用中執行時期ç¶å®š" #: ../src/firewall-config.glade.h:84 msgid "" "Show active runtime bindings of connections, interfaces and sources to zones" msgstr "在界域中顯示連線ã€ä»‹é¢åŠä¾†æºçš„使用中執行時期ç¶å®š" #: ../src/firewall-config.glade.h:85 msgid "Configuration:" msgstr "組態:" #: ../src/firewall-config.glade.h:86 msgid "" "Currently visible configuration. Runtime configuration is the actual active " "configuration. Permanent configuration will be active after service or " "system reload or restart." msgstr "ç›®å‰å¯è¦‹çš„組態。執行時期組態為實際使用中組態。永久組態將在æœå‹™æˆ–ç³»çµ±é‡æ–°è¼‰å…¥æˆ–釿–°å•Ÿå‹•之後啟動。" #: ../src/firewall-config.glade.h:87 msgid "" "A firewalld zone defines the level of trust for network connections, " "interfaces and source addresses bound to the zone. The zone combines " "services, ports, protocols, masquerading, port/packet forwarding, icmp " "filters and rich rules. The zone can be bound to interfaces and source " "addresses." msgstr "" "firewalld 界域所定義的是ç¶å®šè©²ç•ŒåŸŸä¹‹ç¶²è·¯é€£ç·šã€ä»‹é¢ã€ä¾†æºä½å€çš„信任等級。界域能çµåˆæœå‹™ã€é€£æŽ¥åŸ ã€å”定ã€å½è£ã€é€£æŽ¥åŸ /å°åŒ…轉é€ã€icmp " "éŽæ¿¾ã€è±å¯Œè¦å‰‡ç­‰ã€‚界域å¯ä»¥èˆ‡ä»‹é¢ã€ä¾†æºä½å€ç­‰ç¶å®šã€‚" #: ../src/firewall-config.glade.h:89 msgid "Add Zone" msgstr "加入界域" #: ../src/firewall-config.glade.h:90 msgid "Edit Zone" msgstr "編輯界域" #: ../src/firewall-config.glade.h:91 msgid "Remove Zone" msgstr "移除界域" #: ../src/firewall-config.glade.h:92 msgid "Load Zone Defaults" msgstr "載入界域é è¨­å€¼" #: ../src/firewall-config.glade.h:93 msgid "" "Here you can define which services are trusted in the zone. Trusted services " "are accessible from all hosts and networks that can reach the machine from " "connections, interfaces and sources bound to this zone." msgstr "ä½ å¯ä»¥åœ¨æ­¤è™•定義該界域中有哪些æœå‹™å€¼å¾—信任。åªè¦æ­¤ç•ŒåŸŸæ‰€ç¶å®šä¹‹é€£ç·šã€ä»‹é¢ã€ä¾†æºçš„ä¸»æ©Ÿèˆ‡ç¶²è·¯èƒ½è§¸åŠæœ¬æ©Ÿï¼Œå‰‡çš†å¯å­˜å–這些信任的æœå‹™ã€‚" #: ../src/firewall-config.glade.h:94 msgid "Services" msgstr "æœå‹™" #: ../src/firewall-config.glade.h:95 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks that can connect to the machine." msgstr "請添加其他連接埠或連接埠範åœï¼Œè®“所有å¯é€£æŽ¥è‡³æœ¬æ©Ÿçš„主機或網路存å–。" #: ../src/firewall-config.glade.h:96 msgid "Add Port" msgstr "加入連接埠" #: ../src/firewall-config.glade.h:97 msgid "Edit Port" msgstr "編輯連接埠" #: ../src/firewall-config.glade.h:98 msgid "Remove Port" msgstr "移除連接埠" #: ../src/firewall-config.glade.h:99 msgid "Ports" msgstr "連接埠" #: ../src/firewall-config.glade.h:100 msgid "Add protocols, which need to be accessible for all hosts or networks." msgstr "新增通訊å”定,並且必須能被所有主機或網路存å–。" #: ../src/firewall-config.glade.h:101 msgid "Add Protocol" msgstr "加入å”定" #: ../src/firewall-config.glade.h:102 msgid "Edit Protocol" msgstr "編輯å”定" #: ../src/firewall-config.glade.h:103 msgid "Remove Protocol" msgstr "移除å”定" #: ../src/firewall-config.glade.h:104 msgid "Protocols" msgstr "å”定" #: ../src/firewall-config.glade.h:105 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks that can connect to the machine." msgstr "加入其他來æºé€£æŽ¥åŸ æˆ–連接埠範åœï¼Œè®“所有å¯é€£æŽ¥è‡³æœ¬æ©Ÿçš„主機或網路存å–。" #: ../src/firewall-config.glade.h:106 msgid "Source Ports" msgstr "來æºé€£æŽ¥åŸ " #: ../src/firewall-config.glade.h:107 msgid "" "Masquerading allows you to set up a host or router that connects your local " "network to the internet. Your local network will not be visible and the " "hosts appear as a single address on the internet. Masquerading is IPv4 only." msgstr "" "å½è£å¯è®“æ‚¨è¨­ç½®å€‹èƒ½è®“æ‚¨æœ¬æœ¬åœ°ç«¯ç¶²è·¯é€£è‡³ç¶²éš›ç¶²è·¯çš„ä¸»æ©Ÿæˆ–è·¯ç”±å™¨ã€‚æ‚¨çš„æœ¬åœ°ç«¯ç¶²è·¯ä¸æœƒè¢«çœ‹è¦‹ï¼Œä¸”眾主機在網際網路上會顯示æˆå–®ä¸€ä½å€ã€‚å½è£åŠŸèƒ½åƒ…é©ç”¨æ–¼ " "IPv4。" #: ../src/firewall-config.glade.h:108 msgid "Masquerade zone" msgstr "å½è£ç•ŒåŸŸ" #: ../src/firewall-config.glade.h:109 msgid "" "If you enable masquerading, IP forwarding will be enabled for your IPv4 " "networks." msgstr "若您啟用å½è£ï¼Œå°‡ç‚ºæ‚¨çš„ IPv4 網路啟用 IP 轉é€åŠŸèƒ½ã€‚" #: ../src/firewall-config.glade.h:110 msgid "Masquerading" msgstr "å½è£" #: ../src/firewall-config.glade.h:111 msgid "" "Add entries to forward ports either from one port to another on the local " "system or from the local system to another system. Forwarding to another " "system is only useful if the interface is masqueraded. Port forwarding is " "IPv4 only." msgstr "" "新增æ¢ç›®ä¾†å¾žæœ¬åœ°ç«¯ç³»çµ±ä¸Šçš„一個連接埠轉é€è‡³å¦ä¸€å€‹é€£æŽ¥åŸ ï¼Œæˆ–由本地端系統轉é€è‡³å¦ä¸€éƒ¨ç³»çµ±ã€‚僅在介é¢å¡å½è£æ™‚æ‰èƒ½è½‰é€è‡³å¦ä¸€éƒ¨ç³»çµ±ã€‚連接埠轉é€åŠŸèƒ½åƒ…é©ç”¨æ–¼ " "IPv4。" #: ../src/firewall-config.glade.h:112 msgid "Add Forward Port" msgstr "加入轉é€é€£æŽ¥åŸ " #: ../src/firewall-config.glade.h:113 msgid "Edit Forward Port" msgstr "編輯轉é€é€£æŽ¥åŸ " #: ../src/firewall-config.glade.h:114 msgid "Remove Forward Port" msgstr "移除轉é€é€£æŽ¥åŸ " #: ../src/firewall-config.glade.h:115 msgid "" "The Internet Control Message Protocol (ICMP) is mainly used to send error " "messages between networked computers, but additionally for informational " "messages like ping requests and replies." msgstr "" "網際網路控制訊æ¯é€šè¨Šå”定 (Internet Control Message Protocol, ICMP) " "主è¦ç”¨åœ¨é€£ç¶²é›»è…¦é–“錯誤訊æ¯çš„傳é€ï¼Œä¸éŽä¹Ÿèƒ½è¢«ç”¨ä¾†å‚³é€åƒæ˜¯ ping 請求和回應的資訊訊æ¯ã€‚" #: ../src/firewall-config.glade.h:116 msgid "" "Mark the ICMP types in the list, which should be rejected. All other ICMP " "types are allowed to pass the firewall. The default is no limitation." msgstr "將清單中應被拒絕的 ICMP 類型標記起來。其他所有 ICMP 則å…許通éŽé˜²ç«ç‰†ã€‚é è¨­å€¼ç‚ºç„¡é™åˆ¶ã€‚" #: ../src/firewall-config.glade.h:117 msgid "" "If Invert Filter is enabled, marked ICMP entries are accepted and the others " "are rejected. In a zone with the target DROP, they are dropped." msgstr "如果啟用了å轉篩é¸å™¨ï¼Œç³»çµ±æœƒæŽ¥å—已標示的 ICMP 項目,但拒絕其他項目。在目標為 DROP 的界域中,它們會被丟棄。" #: ../src/firewall-config.glade.h:118 msgid "Invert Filter" msgstr "å轉篩é¸å™¨" #: ../src/firewall-config.glade.h:119 msgid "ICMP Filter" msgstr "ICMP éŽæ¿¾å™¨" #: ../src/firewall-config.glade.h:120 msgid "Here you can set rich language rules for the zone." msgstr "您å¯ä»¥åœ¨é€™è£¡è¨­å®šç•ŒåŸŸçš„è±å¯Œèªžè¨€è¦å‰‡ã€‚" #: ../src/firewall-config.glade.h:121 msgid "Add Rich Rule" msgstr "加入è±å¯Œè¦å‰‡" #: ../src/firewall-config.glade.h:122 msgid "Edit Rich Rule" msgstr "編輯è±å¯Œè¦å‰‡" #: ../src/firewall-config.glade.h:123 msgid "Remove Rich Rule" msgstr "移除è±å¯Œè¦å‰‡" #: ../src/firewall-config.glade.h:124 msgid "Rich Rules" msgstr "è±å¯Œè¦å‰‡" #: ../src/firewall-config.glade.h:125 msgid "" "Add entries to bind interfaces to the zone. If the interface will be used by " "a connection, the zone will be set to the zone specified in the connection." msgstr "請添加æ¢ç›®ä¾†å°‡ä»‹é¢èˆ‡æ­¤ç•ŒåŸŸç¶å®šã€‚å¦‚æžœä»‹é¢æœƒè¢«æŸé€£ç·šä½¿ç”¨ï¼Œå‰‡ç•ŒåŸŸå°‡è¢«è¨­ç‚ºé€£ç·šä¸­æ‰€æŒ‡å®šçš„界域。" #: ../src/firewall-config.glade.h:126 msgid "Add Interface" msgstr "加入介é¢" #: ../src/firewall-config.glade.h:127 msgid "Edit Interface" msgstr "編輯介é¢" #: ../src/firewall-config.glade.h:128 msgid "Remove Interface" msgstr "移除介é¢" #: ../src/firewall-config.glade.h:130 msgid "" "Add entries to bind source addresses or areas to the zone. You can also bind " "to a MAC source address, but with limitations. Port forwarding and " "masquerading will not work for MAC source bindings." msgstr "" "請添加æ¢ç›®ä¾†å°‡ä¾†æºä½å€æˆ–å€åŸŸèˆ‡æ­¤ç•ŒåŸŸç¶å®šã€‚您也å¯ä»¥ç¶å®šè‡³ MAC 來æºä½å€ï¼Œä½†æœ‰é™åˆ¶ã€‚port forwarding 與 masquerading " "都無法在 MAC 來æºç¶å®šä¸Šé‹ä½œã€‚" #: ../src/firewall-config.glade.h:131 msgid "Add Source" msgstr "加入來æº" #: ../src/firewall-config.glade.h:132 msgid "Edit Source" msgstr "編輯來æº" #: ../src/firewall-config.glade.h:133 msgid "Remove Source" msgstr "移除來æº" #: ../src/firewall-config.glade.h:135 msgid "Zones" msgstr "界域" #: ../src/firewall-config.glade.h:136 msgid "" "A firewalld service is a combination of ports, protocols, modules and " "destination addresses." msgstr "firewalld æœå‹™å¯ç”±é€£æŽ¥åŸ ã€å”å®šã€æ¨¡çµ„ã€ç›®çš„地ä½å€ç­‰çµ„åˆè€Œæˆã€‚" #: ../src/firewall-config.glade.h:138 msgid "Add Service" msgstr "加入æœå‹™" #: ../src/firewall-config.glade.h:139 msgid "Edit Service" msgstr "編輯æœå‹™" #: ../src/firewall-config.glade.h:140 msgid "Remove Service" msgstr "移除æœå‹™" #: ../src/firewall-config.glade.h:141 msgid "Load Service Defaults" msgstr "載入æœå‹™é è¨­å€¼" #: ../src/firewall-config.glade.h:142 msgid "" "Add additional ports or port ranges, which need to be accessible for all " "hosts or networks." msgstr "新增é¡å¤–的通訊埠或通訊埠範åœï¼Œä¸¦ä¸”必須能被所有主機或網路存å–。" #: ../src/firewall-config.glade.h:143 msgid "Edit Entry" msgstr "編輯æ¢ç›®" #: ../src/firewall-config.glade.h:144 msgid "Remove Entry" msgstr "移除æ¢ç›®" #: ../src/firewall-config.glade.h:145 msgid "" "Add additional source ports or port ranges, which need to be accessible for " "all hosts or networks." msgstr "加入其他來æºé€£è¨ŠåŸ æˆ–連接埠範åœï¼Œè®“所有主機或網路å‡å¯å­˜å–。" #: ../src/firewall-config.glade.h:146 msgid "Source Port" msgstr "來æºé€£æŽ¥åŸ " #: ../src/firewall-config.glade.h:147 msgid "Netfilter helper modules are needed for some services." msgstr "有些æœå‹™å¿…須有 Netfilter 輔助器模組。" #: ../src/firewall-config.glade.h:148 msgid "Modules" msgstr "模組" #: ../src/firewall-config.glade.h:149 msgid "" "If you specify destination addresses, the service entry will be limited to " "the destination address and type. If both entries are empty, there is no " "limitation." msgstr "若您指定目標ä½å€ï¼Œæœå‹™æ¢ç›®å°‡é™æ–¼ç›®çš„地ä½å€èˆ‡é¡žåž‹ã€‚若兩æ¢ç›®çš†ç©ºï¼Œå‰‡æ²’有é™åˆ¶ã€‚" #: ../src/firewall-config.glade.h:150 msgid "IPv4:" msgstr "IPv4:" #: ../src/firewall-config.glade.h:151 msgid "IPv6:" msgstr "IPv6:" #: ../src/firewall-config.glade.h:152 msgid "" "Services can only be changed in the permanent configuration view. The " "runtime configuration of services is fixed." msgstr "æœå‹™åƒ…å¯ä»¥åœ¨æ°¸ä¹…組態檢視下更動。æœå‹™çš„執行時期組態是固定ä¸è®Šçš„。" #: ../src/firewall-config.glade.h:153 msgid "" "An IPSet can be used to create white or black lists and is able to store for " "example IP addresses, port numbers or MAC addresses. " msgstr "IPSet å¯ä»¥ç”¨ä¾†å»ºç«‹ç™½å單或黑å單,且å¯ä»¥å„²å­˜ä¾‹å¦‚ IP ä½å€ã€é€£æŽ¥åŸ è™Ÿã€æˆ– MAC ä½å€ç­‰ã€‚" #: ../src/firewall-config.glade.h:154 msgid "IPSet" msgstr "IPSet" #: ../src/firewall-config.glade.h:155 msgid "Add IPSet" msgstr "加入 IPSet" #: ../src/firewall-config.glade.h:156 msgid "Edit IPSet" msgstr "編輯 IPSet" #: ../src/firewall-config.glade.h:157 msgid "Remove IPSet" msgstr "移除 IPSet" #: ../src/firewall-config.glade.h:158 msgid "Load IPSet Defaults" msgstr "載入 IPSet é è¨­å€¼" #: ../src/firewall-config.glade.h:159 msgid "" "Entries of the IPSet. You will only be able to see entries of ipsets that " "are not using the timeout option, also only the entries, that have been " "added by firewalld. Entries, that have been directly added with the ipset " "command wil not be listed here." msgstr "" "IPSet çš„æ¢ç›®ã€‚您åªèƒ½çœ‹åˆ°æœªä½¿ç”¨é€¾æ™‚é¸é …çš„ IPset æ¢ç›®ï¼Œä»¥åŠåŠ å…¥ firewalld çš„æ¢ç›®ã€‚已經é€éŽ ipset " "指令直接加入的æ¢ç›®ä¸æœƒåœ¨æ­¤åˆ—出。" #: ../src/firewall-config.glade.h:160 msgid "" "This IPSet uses the timeout option, therefore no entries are visible here. " "The entries should be taken care directly with the ipset command." msgstr "這 IPSet 使用逾時值,因此此處看ä¸åˆ°ä»»ä½•æ¢ç›®ã€‚這些æ¢ç›®æ‡‰è©²ç›´æŽ¥é€éŽ ipset 指令來處ç†ã€‚" #: ../src/firewall-config.glade.h:161 msgid "Add" msgstr "加入" #: ../src/firewall-config.glade.h:163 msgid "Entries" msgstr "æ¢ç›®" #: ../src/firewall-config.glade.h:164 msgid "" "IPSets can only be created or deleted in the permanent configuration view." msgstr "IPSet åªèƒ½åœ¨æ°¸ä¹…é…置檢視下建立或刪除。" #: ../src/firewall-config.glade.h:165 msgid "" "A firewalld icmptype provides the information for an Internet Control " "Message Protocol (ICMP) type for firewalld." msgstr "" "firewalld icmptype 為 firewalld æä¾›ç¶²éš›ç¶²è·¯æŽ§åˆ¶è¨Šæ¯å”定 (ICMP,Internet Control Message " "Protocol) 類型資訊。" #: ../src/firewall-config.glade.h:166 msgid "Add ICMP Type" msgstr "加入 ICMP 類型" #: ../src/firewall-config.glade.h:167 msgid "Edit ICMP Type" msgstr "編輯 ICMP 類型" #: ../src/firewall-config.glade.h:168 msgid "Remove ICMP Type" msgstr "移除 ICMP 類型" #: ../src/firewall-config.glade.h:169 msgid "Load ICMP Type Defaults" msgstr "載入 ICMP 類型é è¨­å€¼" #: ../src/firewall-config.glade.h:170 msgid "Specify whether this ICMP Type is available for IPv4 and/or IPv6." msgstr "指明此 ICMP 類型在 IPv4 與/或 IPv6 中是å¦å¯ç”¨ã€‚" #: ../src/firewall-config.glade.h:171 msgid "" "ICMP Types can only be changed in the permanent configuration view. The " "runtime configuration of ICMP Types is fixed." msgstr "ICMP 類型僅å¯ä»¥åœ¨æ°¸ä¹…組態檢視下更動。ICMP 類型的執行時期組態是固定ä¸è®Šçš„。" #: ../src/firewall-config.glade.h:172 msgid "" "A connection tracking helper is assisting to make protocols work that are " "using different flows for signaling and data transfers. The data transfers " "are using ports that are unrelated to the signaling connection and are " "therefore blocked by the firewall without the helper." msgstr "連線追蹤輔助器是è¦è¼”助使用ä¸åŒè¨Šè™Ÿã€è³‡æ–™å‚³è¼¸æµå‘çš„å”定é‹ä½œã€‚資料傳輸若使用無關訊號連線的連接埠,在沒有輔助器的情æ³ä¸‹æœƒè¢«é˜²ç«ç‰†å°éŽ–ã€‚" #: ../src/firewall-config.glade.h:173 msgid "Define ports or port ranges, which are monitored by the helper." msgstr "定義連接埠或連接埠範åœï¼Œç”±è¼”助器監控。" #: ../src/firewall-config.glade.h:174 msgid "" "The direct configuration gives a more direct access to the firewall. These " "options require user to know basic iptables concepts, i.e. tables, chains, " "commands, parameters and targets. Direct configuration should be used only " "as a last resort when it is not possible to use other firewalld features." msgstr "" "直接組態讓您å¯ä»¥æ›´ç›´æŽ¥åœ°å­˜å–防ç«ç‰†ã€‚這些é¸é …需è¦ä½¿ç”¨è€…知曉基礎的 iptables " "概念,例如表格ã€éˆæ¢ã€æŒ‡ä»¤ã€åƒæ•¸ã€ç›®æ¨™ç­‰ã€‚直接組態應該謹以「最後的é¿é¢¨æ¸¯ã€çš„心態å°å¾…,åªåœ¨ç„¡æ³•使用其他 firewalld 功能時æ‰ä½¿ç”¨ã€‚" #: ../src/firewall-config.glade.h:175 msgid "" "The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it " "will be for iptables, with ipv6 for ip6tables and with eb for ethernet " "bridges (ebtables)." msgstr "" "æ¯å€‹é¸é …çš„ ipv 引數必須是 ipv4 或 ipv6 或 eb。ipv4 用於 iptables,ipv6 用於 ip6tables,而 eb " "用於乙太網路接橋 (ebtables)。" #: ../src/firewall-config.glade.h:176 msgid "Additional chains for use with rules." msgstr "è¦ä½¿ç”¨çš„è¦å‰‡çš„é¡å¤–éˆæ¢ã€‚" #: ../src/firewall-config.glade.h:177 msgid "Add Chain" msgstr "åŠ å…¥éˆæ¢" #: ../src/firewall-config.glade.h:178 msgid "Edit Chain" msgstr "ç·¨è¼¯éˆæ¢" #: ../src/firewall-config.glade.h:179 msgid "Remove Chain" msgstr "ç§»é™¤éˆæ¢" #: ../src/firewall-config.glade.h:180 msgid "Chains" msgstr "éˆæ¢" #: ../src/firewall-config.glade.h:181 msgid "" "Add a rule with the arguments args to a chain in a table with a priority." msgstr "加入有 args 引數的è¦å‰‡åˆ°æœ‰å„ªå…ˆç­‰ç´šçš„è¡¨æ ¼çš„éˆæ¢ä¸­ã€‚" #: ../src/firewall-config.glade.h:182 msgid "" "The priority is used to order rules. Priority 0 means add rule on top of the " "chain, with a higher priority the rule will be added further down. Rules " "with the same priority are on the same level and the order of these rules is " "not fixed and may change. If you want to make sure that a rule will be added " "after another one, use a low priority for the first and a higher for the " "following." msgstr "" "優先等級用來排åºè¦å‰‡ã€‚優先等級 0 " "代表將è¦å‰‡åŠ åˆ°éˆæ¢é ‚端;優先等級數字越高,è¦å‰‡æœƒè¶Šå¾€å¾Œæ“ºæ”¾ã€‚相åŒå„ªå…ˆç­‰ç´šçš„è¦å‰‡ä½åœ¨åŒå€‹ç­‰ç´šä¸­ï¼Œè€Œé€™äº›è¦å‰‡çš„é †åºä¸¦éžå›ºå®šè€Œå¯èƒ½è®Šå‹•。如果您想è¦ç¢ºä¿æŸè¦å‰‡åœ¨æŸå€‹è¦å‰‡ä¹‹å¾Œæ‰åŠ å…¥ï¼Œå‰è€…請使用較低的優先等級,後者請使用較高的優先等級。" #: ../src/firewall-config.glade.h:183 msgid "Add Rule" msgstr "加入è¦å‰‡" #: ../src/firewall-config.glade.h:184 msgid "Edit Rule" msgstr "編輯è¦å‰‡" #: ../src/firewall-config.glade.h:185 msgid "Remove Rule" msgstr "移除è¦å‰‡" #: ../src/firewall-config.glade.h:186 msgid "Rules" msgstr "è¦å‰‡" #: ../src/firewall-config.glade.h:187 msgid "" "The passthrough rules are directly passed through to the firewall and are " "not placed in special chains. All iptables, ip6tables and ebtables options " "can be used." msgstr "通é€è¦å‰‡æœƒç›´æŽ¥å‚³éžçµ¦é˜²ç«ç‰†ï¼Œè€Œä¸æœƒæ”¾å…¥ç‰¹æ®Šéˆæ¢ä¸­ã€‚所有的 iptablsã€ip6tables 與 ebtables é¸é …皆å¯ä½¿ç”¨ã€‚" #: ../src/firewall-config.glade.h:188 msgid "Please be careful with passthrough rules to not damage the firewall." msgstr "使用通é€è¦å‰‡æ™‚請務必å°å¿ƒä»¥å…æå£žé˜²ç«ç‰†ã€‚" #: ../src/firewall-config.glade.h:189 msgid "Add Passthrough" msgstr "加入通é€" #: ../src/firewall-config.glade.h:190 msgid "Edit Passthrough" msgstr "編輯通é€" #: ../src/firewall-config.glade.h:191 msgid "Remove Passthrough" msgstr "移除通é€" #: ../src/firewall-config.glade.h:192 msgid "Passthrough" msgstr "通é€" #: ../src/firewall-config.glade.h:193 msgid "" "The lockdown feature is a light version of user and application policies for " "firewalld. It limits changes to the firewall. The lockdown whitelist can " "contain commands, contexts, users and user ids." msgstr "" "å°éŽ–ç®¡åˆ¶åŠŸèƒ½æ˜¯ firewalld å…¶ä½¿ç”¨è€…èˆ‡æ‡‰ç”¨ç¨‹å¼æ–¹é‡çš„輕é‡ç‰ˆã€‚它會é™åˆ¶é˜²ç«ç‰†çš„æ›´å‹•。å°éŽ–ç®¡åˆ¶ç™½åå–®å¯ä»¥åŒ…嫿Œ‡ä»¤ã€æƒ…境ã€ä½¿ç”¨è€…與使用者 ID。" #: ../src/firewall-config.glade.h:194 msgid "" "The context is the security (SELinux) context of a running application or " "service. To get the context of a running application use ps -e --" "context." msgstr "" "æƒ…å¢ƒæ˜¯æŒ‡åŸ·è¡Œä¸­æ‡‰ç”¨ç¨‹å¼æˆ–æœå‹™çš„安全情境 (SELinux 情境)。若è¦å–得執行中應用程å¼çš„æƒ…境,請使用指令 ps -e --context。" #: ../src/firewall-config.glade.h:195 msgid "Add Context" msgstr "加入情境" #: ../src/firewall-config.glade.h:196 msgid "Edit Context" msgstr "編輯情境" #: ../src/firewall-config.glade.h:197 msgid "Remove Context" msgstr "移除情境" #: ../src/firewall-config.glade.h:198 msgid "Contexts" msgstr "情境" #: ../src/firewall-config.glade.h:199 msgid "" "If a command entry on the whitelist ends with an asterisk '*', then all " "command lines starting with the command will match. If the '*' is not there " "the absolute command inclusive arguments must match." msgstr "如果白å單中的指令æ¢ç›®æ˜¯ä»¥ç±³å­—號「*ã€çµå°¾ï¼Œå‰‡æ‰€æœ‰ä»¥è©²æŒ‡ä»¤åˆ—開頭的任何指令皆會匹é…。如果「*ã€ä¸¦éžçµå°¾ï¼Œå‰‡å¿…須精確符åˆè©²æŒ‡ä»¤èˆ‡ç›¸é—œå¼•數。" #: ../src/firewall-config.glade.h:200 msgid "Add Command Line" msgstr "加入指令列" #: ../src/firewall-config.glade.h:201 msgid "Edit Command Line" msgstr "編輯指令列" #: ../src/firewall-config.glade.h:202 msgid "Remove Command Line" msgstr "移除指令列" #: ../src/firewall-config.glade.h:203 msgid "Command lines" msgstr "指令列" #: ../src/firewall-config.glade.h:204 msgid "User names." msgstr "使用者å稱。" #: ../src/firewall-config.glade.h:205 msgid "Add User Name" msgstr "加入使用者å稱" #: ../src/firewall-config.glade.h:206 msgid "Edit User Name" msgstr "編輯使用者å稱" #: ../src/firewall-config.glade.h:207 msgid "Remove User Name" msgstr "移除使用者å稱" #: ../src/firewall-config.glade.h:208 msgid "User names" msgstr "使用者å稱" #: ../src/firewall-config.glade.h:209 msgid "User ids." msgstr "使用者 ID。" #: ../src/firewall-config.glade.h:210 msgid "Add User Id" msgstr "加入使用者 ID" #: ../src/firewall-config.glade.h:211 msgid "Edit User Id" msgstr "編輯使用者 ID" #: ../src/firewall-config.glade.h:212 msgid "Remove User Id" msgstr "移除使用者 ID" #: ../src/firewall-config.glade.h:213 msgid "User Ids" msgstr "使用者 ID" #: ../src/firewall-config.glade.h:214 msgid "Current default zone of the system." msgstr "系統的目å‰é è¨­ç•ŒåŸŸã€‚" #: ../src/firewall-config.glade.h:215 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Log Denied:" msgstr "已拒絕的日誌:" #: ../src/firewall-config.glade.h:216 msgid "Panic Mode:" msgstr "ææ…Œæ¨¡å¼ï¼š" #: ../src/firewall-config.glade.h:217 msgctxt "" "Meaning: Log of denied packets. But this is too long. LogDenied is also the " "parameter used in firewalld.conf." msgid "Automatic Helpers:" msgstr "自動輔助器:" #: ../src/firewall-config.glade.h:218 msgid "Lockdown:" msgstr "å°éŽ–ç®¡åˆ¶ï¼š" #: ../src/firewall-config.glade.h:219 msgid "Default Zone:" msgstr "é è¨­åŸŸï¼š" #: ../src/firewall-config.glade.h:220 msgid "Interface" msgstr "介é¢" #: ../src/firewall-config.glade.h:221 msgid "Base IPSet Settings" msgstr "基礎 IPSet 設定值" #: ../src/firewall-config.glade.h:222 msgid "Please configure base ipset settings:" msgstr "請調整基礎 IPSet 設定值組態:" #: ../src/firewall-config.glade.h:223 msgid "Type:" msgstr "類型:" #: ../src/firewall-config.glade.h:224 msgid "Timeout:" msgstr "時é™ï¼š" #: ../src/firewall-config.glade.h:225 msgid "Hashsize:" msgstr "Hashsize:" #: ../src/firewall-config.glade.h:226 msgid "Maxelem:" msgstr "Maxelem:" #: ../src/firewall-config.glade.h:227 msgid "Timeout value in seconds" msgstr "時é™å€¼ï¼Œå–®ä½ç‚ºç§’" #: ../src/firewall-config.glade.h:228 msgid "Initial hash size, default 1024" msgstr "åˆå§‹é›œæ¹Šå¤§å°ï¼Œé è¨­ 1024" #: ../src/firewall-config.glade.h:229 msgid "Max number of elements, default 65536" msgstr "元素最大數,é è¨­ 65536" #: ../src/firewall-config.glade.h:230 msgid "Please select an ipset:" msgstr "è«‹é¸å– IPset:" #: ../src/firewall-config.glade.h:232 msgid "Log Denied" msgstr "已拒絕的日誌" #: ../src/firewall-config.glade.h:233 msgid "Please select the log denied value:" msgstr "è«‹é¸æ“‡å·²æ‹’絕的日誌值:" #: ../src/firewall-config.glade.h:234 msgid "Mark" msgstr "標記" #: ../src/firewall-config.glade.h:235 msgid "Please enter a mark with an optional mask." msgstr "請輸入標記與é¸ç”¨çš„é®ç½©ã€‚" #: ../src/firewall-config.glade.h:236 msgid "The mark and the mask fields are both 32 bits wide unsigned numbers." msgstr "標記與é®ç½©æ¬„ä½éƒ½æ˜¯ 32 ä½å…ƒå¯¬çš„無正負號數字。" #: ../src/firewall-config.glade.h:237 msgid "Mark:" msgstr "標記:" #: ../src/firewall-config.glade.h:238 msgid "Mask:" msgstr "é®ç½©ï¼š" #: ../src/firewall-config.glade.h:239 msgid "Please select a netfilter conntrack helper:" msgstr "è«‹é¸å– netfilter 連接追蹤輔助器:" #: ../src/firewall-config.glade.h:240 msgid "- Select -" msgstr "- é¸å– -" #: ../src/firewall-config.glade.h:241 msgid "Other Module:" msgstr "其他模組:" #: ../src/firewall-config.glade.h:242 msgid "Port and Protocol" msgstr "連接埠與通訊å”定" #: ../src/firewall-config.glade.h:243 msgid "Please enter a port and protocol." msgstr "請輸入連接埠與å”定。" #: ../src/firewall-config.glade.h:244 msgid "Direct Rule" msgstr "直接è¦å‰‡" #: ../src/firewall-config.glade.h:245 msgid "Please select ipv and table, chain priority and enter the args." msgstr "è«‹é¸å– ipv 與表格ã€éˆæ¢å„ªå…ˆç­‰ç´šï¼Œä¸¦è¼¸å…¥å¼•數。" #: ../src/firewall-config.glade.h:246 msgid "Priority:" msgstr "優先等級:" #: ../src/firewall-config.glade.h:248 msgid "Please enter a protocol." msgstr "請輸入å”定。" #: ../src/firewall-config.glade.h:249 msgid "Other Protocol:" msgstr "å…¶ä»–å”定:" #: ../src/firewall-config.glade.h:250 msgid "Rich Rule" msgstr "è±å¯Œè¦å‰‡" #: ../src/firewall-config.glade.h:251 msgid "Please enter a rich rule." msgstr "請輸入è±å¯Œè¦å‰‡ã€‚" #: ../src/firewall-config.glade.h:252 msgid "For host or network white or blacklisting deactivate the element." msgstr "主機或網路白åå–®ã€é»‘å單來åœç”¨å…ƒç´ ã€‚" #: ../src/firewall-config.glade.h:253 msgid "Source:" msgstr "來æºï¼š" #: ../src/firewall-config.glade.h:254 msgid "Destination:" msgstr "目標:" #: ../src/firewall-config.glade.h:255 msgid "Log:" msgstr "記錄:" #: ../src/firewall-config.glade.h:256 msgid "Audit:" msgstr "稽核:" #: ../src/firewall-config.glade.h:257 msgid "ipv4 and ipv6" msgstr "ipv4 與 ipv6" #: ../src/firewall-config.glade.h:258 msgid "inverted" msgstr "å轉" #: ../src/firewall-config.glade.h:259 msgid "" "To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' " "(not both)." msgstr "è¦å•Ÿç”¨æ­¤åŠŸèƒ½ï¼Œã€Œå‹•ä½œã€å¿…須是「拒絕ã€è€Œã€Œå®¶æ—ã€å¿…須是「ipv4ã€æˆ–「ipv6ã€ï¼ˆè€Œéžå…©è€…)。" #: ../src/firewall-config.glade.h:260 msgid "with Type:" msgstr "此類型:" #: ../src/firewall-config.glade.h:261 msgid "With limit:" msgstr "有é™åˆ¶ï¼š" #: ../src/firewall-config.glade.h:262 msgid "/" msgstr "/" #: ../src/firewall-config.glade.h:267 msgid "Prefix:" msgstr "å‰ç¶´ï¼š" #: ../src/firewall-config.glade.h:268 msgid "Level:" msgstr "等級:" #: ../src/firewall-config.glade.h:285 msgid "Element:" msgstr "元素:" #: ../src/firewall-config.glade.h:286 msgid "Action:" msgstr "動作:" #: ../src/firewall-config.glade.h:287 msgid "Base Service Settings" msgstr "基礎æœå‹™è¨­å®š" #: ../src/firewall-config.glade.h:288 msgid "Please configure base service settings:" msgstr "請設定基礎æœå‹™è¨­å®šï¼š" #: ../src/firewall-config.glade.h:289 msgid "Please select a service." msgstr "è«‹é¸å–æœå‹™ã€‚" #: ../src/firewall-config.glade.h:290 msgid "User ID" msgstr "使用者 ID" #: ../src/firewall-config.glade.h:291 msgid "Please enter the user id." msgstr "請輸入使用者 ID。" #: ../src/firewall-config.glade.h:292 msgid "User name" msgstr "使用者å稱" #: ../src/firewall-config.glade.h:293 msgid "Please enter the user name." msgstr "請輸入使用者å稱。" #: ../src/firewall-config.glade.h:294 msgid "label" msgstr "標籤" #: ../src/firewall-config.glade.h:295 msgid "Base Zone Settings" msgstr "基礎界域設定" #: ../src/firewall-config.glade.h:296 msgid "Please configure base zone settings:" msgstr "請設定基礎界域設定:" #: ../src/firewall-config.glade.h:297 msgid "Default Target" msgstr "é è¨­ç›®æ¨™" #: ../src/firewall-config.glade.h:298 msgid "Target:" msgstr "目標:" firewalld-0.4.4.6/py-compile000077500000000000000000000100561320241217000156320ustar00rootroot00000000000000#!/bin/sh # py-compile - Compile a Python program scriptversion=2005-05-14.22 # Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . if [ -z "$PYTHON" ]; then PYTHON=python fi basedir= destdir= files= while test $# -ne 0; do case "$1" in --basedir) basedir=$2 if test -z "$basedir"; then echo "$0: Missing argument to --basedir." 1>&2 exit 1 fi shift ;; --destdir) destdir=$2 if test -z "$destdir"; then echo "$0: Missing argument to --destdir." 1>&2 exit 1 fi shift ;; -h|--h*) cat <<\EOF Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." Byte compile some python scripts FILES. Use --destdir to specify any leading directory path to the FILES that you don't want to include in the byte compiled file. Specify --basedir for any additional path information you do want to be shown in the byte compiled file. Example: py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py Report bugs to . EOF exit $? ;; -v|--v*) echo "py-compile $scriptversion" exit $? ;; *) files="$files $1" ;; esac shift done if test -z "$files"; then echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 exit 1 fi # if basedir was given, then it should be prepended to filenames before # byte compilation. if [ -z "$basedir" ]; then pathtrans="path = file" else pathtrans="path = os.path.join('$basedir', file)" fi # if destdir was given, then it needs to be prepended to the filename to # byte compile but not go into the compiled file. if [ -z "$destdir" ]; then filetrans="filepath = path" else filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" fi $PYTHON -c " import sys, os, string, py_compile files = '''$files''' print 'Byte-compiling python modules...' for file in string.split(files): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue print file, sys.stdout.flush() py_compile.compile(filepath, filepath + 'c', path) print" || exit $? # this will fail for python < 1.5, but that doesn't matter ... $PYTHON -O -c " import sys, os, string, py_compile files = '''$files''' print 'Byte-compiling python modules (optimized versions) ...' for file in string.split(files): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue print file, sys.stdout.flush() py_compile.compile(filepath, filepath + 'o', path) print" 2>/dev/null || : # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: firewalld-0.4.4.6/shell-completion/000077500000000000000000000000001320241217000171025ustar00rootroot00000000000000firewalld-0.4.4.6/shell-completion/Makefile.am000066400000000000000000000001601320241217000211330ustar00rootroot00000000000000bashcompletiondir=@BASHCOMPLETIONDIR@ dist_bashcompletion_DATA = \ bash/firewall-cmd CLEANFILES = *~ *\# .\#* firewalld-0.4.4.6/shell-completion/bash/000077500000000000000000000000001320241217000200175ustar00rootroot00000000000000firewalld-0.4.4.6/shell-completion/bash/firewall-cmd000066400000000000000000000242251320241217000223150ustar00rootroot00000000000000# bash completion for firewall-cmd -*- shell-script -*- # Copyright (C) 2013 Red Hat, Inc. # # Authors: # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # TODO: find a way how to get the following options from firewall-cmd OPTIONS_LOCKDOWN="--add-lockdown-whitelist-command= --remove-lockdown-whitelist-command= \ --query-lockdown-whitelist-command= --list-lockdown-whitelist-commands \ --add-lockdown-whitelist-context= --remove-lockdown-whitelist-context= \ --query-lockdown-whitelist-context= --list-lockdown-whitelist-contexts \ --add-lockdown-whitelist-uid= --remove-lockdown-whitelist-uid= \ --query-lockdown-whitelist-uid= --list-lockdown-whitelist-uids \ --add-lockdown-whitelist-user= --remove-lockdown-whitelist-user= \ --query-lockdown-whitelist-user= --list-lockdown-whitelist-users" # can be used as standalone or with --permanent OPTIONS_CONFIG="--get-zones --get-services --get-icmptypes --get-helpers \ ${OPTIONS_LOCKDOWN} --list-all-zones \ --info-zone= --info-service= --info-icmptype= \ --info-ipset= --info-helper=" OPTIONS_ZONE_INTERFACES_SOURCES="\ --add-interface= --remove-interface= --query-interface= \ --list-interfaces --change-interface= --change-zone= \ --add-source= --remove-source= --query-source= \ --change-source= --list-sources" OPTIONS_ZONE_ACTION_ACTION="--add-service= --remove-service= --query-service= \ --add-port= --remove-port= --query-port= \ --add-source-port= --remove-source-port= --query-source-port= \ --add-protocol= --remove-protocol= --query-protocol= \ --add-icmp-block= --remove-icmp-block= --query-icmp-block= \ --add-forward-port= --remove-forward-port= --query-forward-port=" OPTIONS_ZONE_ADAPT_QUERY="--add-rich-rule= --remove-rich-rule= --query-rich-rule= \ --add-icmp-block-inversion --remove-icmp-block-inversion \ --query-icmp-block-inversion \ --add-masquerade --remove-masquerade --query-masquerade \ --list-services --list-ports --list-protocols \ --list-source-ports --list-icmp-blocks \ --list-forward-ports --list-rich-rules --list-all" OPTIONS_ZONE_PERMANENT_ONLY="--get-description --get-short \ --set-description= --set-short=" OPTIONS_IPSET_ACTION_ACTION="--add-entry= --remove-entry= --query-entry= --add-entries-from-file= --remove-entries-from-file" OPTIONS_IPSET_ADAPT_QUERY="--list-entries" # can be used with/without preceding --zone= OPTIONS_ZONE="${OPTIONS_ZONE_INTERFACES_SOURCES} \ ${OPTIONS_ZONE_ACTION_ACTION} ${OPTIONS_ZONE_ADAPT_QUERY} ${OPTIONS_ZONE_PERMANENT_ONLY}" OPTIONS_IPSET="${OPTIONS_IPSETACTION_ACTION} ${OPTIONS_IPSET_ADAPT_QUERY}" OPTIONS_PERMANENT_ONLY="--new-icmptype= --new-icmptype-from-file= --delete-icmptype= \ --new-service= --new-service-from-file= --delete-service= \ --new-zone= --new-zone-from-file= --delete-zone= \ --new-ipset= --new-helper-from-file= --delete-ipset= \ --new-helper= --new-helper-from-file= --delete-helper= \ --get-target --set-target= \ --path-zone= --path-service= --path-icmptype= \ --path-ipset= --path-helper=" OPTIONS_NEW_IPSET="--type= --option=" OPTIONS_NEW_HELPER="--module= --family=" OPTIONS_HELPER="" # can be used after --permanent OPTIONS_PERMANENT="${OPTIONS_CONFIG} --zone= ${OPTIONS_ZONE} \ ${OPTIONS_PERMANENT_ONLY}" OPTIONS_DIRECT="--passthrough \ --add-chain --remove-chain --query-chain --get-chains --get-all-chains \ --add-rule --remove-rule --remove-rules --query-rule --get-rules --get-all-rules \ --add-passthrough --remove-passthrough \ --query-passthrough --get-passthroughs --get-all-passthroughs" # these all can be used as a "first" option OPTIONS_GENERAL="--help --version \ --state --reload --complete-reload \ --panic-on --panic-off --query-panic \ --get-log-denied --set-log-denied= --get-ipset-types \ --lockdown-on --lockdown-off --query-lockdown \ --get-default-zone --set-default-zone= --get-active-zones \ --get-zone-of-interface= --get-zone-of-interface= \ ${OPTIONS_CONFIG} \ --zone= ${OPTIONS_ZONE} \ --permanent --direct" _firewall_cmd() { local cur prev words cword split _init_completion -s || return firewall-cmd --state 1> /dev/null || return case $prev in --*-entries-from-file|--new-*-from-file) _filedir return ;; --new-ipset*) if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "${OPTIONS_NEW_IPSET}" -- "$cur") ) fi ;; --new-helper*) if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W "${OPTIONS_NEW_HELPER}" -- "$cur") ) fi ;; --new-*) ;; --zone|--set-default-zone|--info-zone|--path-zone) if [[ ${words[@]} == *--permanent* ]]; then COMPREPLY=( $( compgen -W '`firewall-cmd --permanent --get-zones`' -- "$cur" ) ) else COMPREPLY=( $( compgen -W '`firewall-cmd --get-zones`' -- "$cur" ) ) fi ;; --zone=*) COMPREPLY=( $( compgen -W "${OPTIONS_ZONE}" -- "$cur" ) ) ;; --ipset=*) COMPREPLY=( $( compgen -W "${OPTIONS_IPSET}" -- "$cur" ) ) ;; --*-ipset) if [[ ${words[@]} == *--permanent* ]]; then COMPREPLY=( $( compgen -W '`firewall-cmd --permanent --get-ipsets`' -- "$cur" ) ) else COMPREPLY=( $( compgen -W '`firewall-cmd --get-ipsets`' -- "$cur" ) ) fi ;; --*-service) if [[ ${words[@]} == *--permanent* ]]; then COMPREPLY=( $( compgen -W '`firewall-cmd --permanent --get-services`' -- "$cur" ) ) else COMPREPLY=( $( compgen -W '`firewall-cmd --get-services`' -- "$cur" ) ) fi ;; --helper|--info-helper|--path-helper) if [[ ${words[@]} == *--permanent* ]]; then COMPREPLY=( $( compgen -W '`firewall-cmd --permanent --get-helpers`' -- "$cur" ) ) else COMPREPLY=( $( compgen -W '`firewall-cmd --get-helpers`' -- "$cur" ) ) fi ;; --helper=*) COMPREPLY=( $( compgen -W "${OPTIONS_HELPER}" -- "$cur" ) ) ;; --*-icmp-block|--info-icmptype|--path-icmptype) if [[ ${words[@]} == *--permanent* ]]; then COMPREPLY=( $( compgen -W '`firewall-cmd --permanent --get-icmptypes`' -- "$cur" ) ) else COMPREPLY=( $( compgen -W '`firewall-cmd --get-icmptypes`' -- "$cur" ) ) fi ;; --list-services|--add-service=*|--remove-service=*|--query-service=*|\ --list-ports|--add-port=*|--remove-port=*|--query-port=*|\ --list-source-ports|--add-source-port=*|--remove-source-port=*|--query-source-port=*|\ --list-protocols|--add-protocol=*|--remove-protocol=*|--query-protocol=*|\ --list-icmp-blocks|--add-icmp-block=*|--remove-icmp-block=*|--query-icmp-block=*|\ --list-forward-ports|--add-forward-port=*|--remove-forward-port=*|--query-forward-port=*|\ --list-interfaces|--add-interface=*|--remove-interface=*|--query-interface=*|\ --list-sources|--add-source=*|--remove-source=*|--query-source=*|\ --add-masquerade|--remove-masquerade|--query-masquerade|--list-all|\ --get-description|--get-short|--set-description=*|--set-short=*) opts="" # --add and --remove can be used multiple times if [[ ( ${prev} == --add-* ) || ( ${prev} == --remove-* ) ]]; then [[ ${prev} == *=* ]] && opts="${prev%=*}=" || opts="${prev}" fi if [[ ! ${words[@]} == *--permanent* ]]; then opts="${opts} --permanent" [[ ${prev} == --add-* ]] && opts="${opts} --timeout=" fi [[ ! ${words[@]} == *--zone=* ]] && opts="${opts} --zone=" if [ -n "${opts}" ]; then COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) fi ;; --*-interface|--change-zone) _available_interfaces ;; --permanent) [[ ${words[@]} == *--direct* ]] && opts="${OPTIONS_DIRECT}" || opts="${OPTIONS_PERMANENT} --direct" COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) ;; --direct) [[ ${words[@]} == *--permanent* ]] && opts="${OPTIONS_DIRECT}" || opts="${OPTIONS_DIRECT} --permanent" COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) ;; --*-rich-rule) # to not be matched with --*-rule below return 0 ;; --passthrough|--*-chain|--get-chains|--*-rule|--get-rules|--remove-rules) COMPREPLY=( $( compgen -W 'ipv4 ipv6 eb' -- "$cur" ) ) ;; ipv4|ipv6|eb) if [[ ${words[@]} == *--passthrough* ]]; then return 0 else COMPREPLY=( $( compgen -W 'nat filter mangle' -- "$cur" ) ) fi ;; *) if [[ "$cur" == -* ]]; then if [[ ${words[@]} == *--new-ipset* ]]; then COMPREPLY=( $( compgen -W "${OPTIONS_NEW_IPSET}" -- "$cur") ) else COMPREPLY=( $( compgen -W "${OPTIONS_GENERAL}" -- "$cur") ) fi fi ;; esac # do not append a space to words that end with = [[ $COMPREPLY == *= ]] && compopt -o nospace } && complete -F _firewall_cmd firewall-cmd firewalld-0.4.4.6/src/000077500000000000000000000000001320241217000144135ustar00rootroot00000000000000firewalld-0.4.4.6/src/.gitignore000066400000000000000000000000411320241217000163760ustar00rootroot00000000000000*.pyc *.png *.*~* *.patch *.py.* firewalld-0.4.4.6/src/Makefile.am000066400000000000000000000056471320241217000164630ustar00rootroot00000000000000SUBDIRS = icons dist_bin_SCRIPTS = firewall-applet firewall-cmd firewall-offline-cmd firewall-config firewallctl dist_sbin_SCRIPTS = firewalld gladedir = $(pkgdatadir) dist_glade_DATA = firewall-config.glade gtkextradir = $(pkgdatadir) dist_gtkextra_DATA = gtk3_chooserbutton.py gtk3_niceexpander.py testsdir = $(pkgdatadir)/tests dist_tests_DATA = \ tests/firewall-cmd_test.sh \ tests/firewall-offline-cmd_test.sh nobase_dist_python_DATA = \ firewall/client.py \ firewall/command.py \ firewall/config/dbus.py \ firewall/config/__init__.py \ firewall/core/base.py \ firewall/core/ebtables.py \ firewall/core/fw_config.py \ firewall/core/fw_direct.py \ firewall/core/fw_helper.py \ firewall/core/fw_icmptype.py \ firewall/core/fw_ifcfg.py \ firewall/core/fw_ipset.py \ firewall/core/fw_nm.py \ firewall/core/fw_policies.py \ firewall/core/fw.py \ firewall/core/fw_service.py \ firewall/core/fw_test.py \ firewall/core/fw_transaction.py \ firewall/core/fw_zone.py \ firewall/core/helper.py \ firewall/core/icmp.py \ firewall/core/__init__.py \ firewall/core/io/direct.py \ firewall/core/io/firewalld_conf.py \ firewall/core/io/helper.py \ firewall/core/io/icmptype.py \ firewall/core/io/ifcfg.py \ firewall/core/io/__init__.py \ firewall/core/io/io_object.py \ firewall/core/io/ipset.py \ firewall/core/io/lockdown_whitelist.py \ firewall/core/io/service.py \ firewall/core/io/zone.py \ firewall/core/ipset.py \ firewall/core/ipXtables.py \ firewall/core/logger.py \ firewall/core/modules.py \ firewall/core/prog.py \ firewall/core/rich.py \ firewall/core/watcher.py \ firewall/dbus_utils.py \ firewall/errors.py \ firewall/functions.py \ firewall/fw_types.py \ firewall/__init__.py \ firewall/server/config_helper.py \ firewall/server/config_icmptype.py \ firewall/server/config_ipset.py \ firewall/server/config.py \ firewall/server/config_service.py \ firewall/server/config_zone.py \ firewall/server/decorators.py \ firewall/server/firewalld.py \ firewall/server/__init__.py \ firewall/server/server.py EXTRA_DIST = \ firewall/config/__init__.py.in CLEANFILES = *~ *\# .\#* *.py? install-data-local: install-dist_sbinSCRIPTS install-dist_binSCRIPTS install-dist_testsDATA @echo "Fixing python shebang" @list='$(dist_bin_SCRIPTS)'; \ for p in $$list; do \ echo $(top_srcdir)/fix_python_shebang.sh "$(DESTDIR)$(bindir)/$$p"; \ $(top_srcdir)/fix_python_shebang.sh "$(DESTDIR)$(bindir)/$$p"; \ done @list='$(dist_sbin_SCRIPTS)'; \ for p in $$list; do \ echo $(top_srcdir)/fix_python_shebang.sh "$(DESTDIR)$(sbindir)/$$p"; \ $(top_srcdir)/fix_python_shebang.sh "$(DESTDIR)$(sbindir)/$$p"; \ done @echo "Fixing path for test suite scripts" @list='$(dist_tests_DATA)'; \ for p in $$list; do \ echo sed -i -e 's@^readonly path=.*@readonly path=\"$(bindir)/\"@' "$(DESTDIR)$(pkgdatadir)/$$p"; \ sed -i -e 's@^readonly path=.*@readonly path=\"$(bindir)/\"@' "$(DESTDIR)$(pkgdatadir)/$$p"; \ done firewalld-0.4.4.6/src/firewall-applet000077500000000000000000001202671320241217000174410ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2010-2015 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import sys from PyQt5 import QtGui, QtCore, QtWidgets import gi gi.require_version('Notify', '0.7') from gi.repository import Notify import os from dbus.mainloop.pyqt5 import DBusQtMainLoop import functools from firewall.config import * from firewall.config.dbus import * from firewall.core.fw_nm import * from firewall.core.watcher import Watcher from firewall.client import FirewallClient from firewall.dbus_utils import dbus_to_python from firewall.errors import * import slip.dbus import dbus import signal PATH = [ ] for p in os.getenv("PATH").split(":"): if p not in PATH: PATH.append(p) def search_app(app): for p in PATH: _app = "%s/%s" % (p, app) if os.path.exists(_app): return _app return None NM_CONNECTION_EDITOR = "" for binary in [ "/usr/bin/nm-connection-editor", "/bin/nm-connection-editor", "/usr/bin/kde5-nm-connection-editor", "/bin/kde5-nm-connection-editor", "/usr/bin/kde-nm-connection-editor", "/bin/kde-nm-connection-editor" ]: if os.path.exists(binary): NM_CONNECTION_EDITOR = binary break PY2 = sys.version < '3' def escape(text): text = text.replace('&', '&') text = text.replace('>', '>') text = text.replace('<', '<') return text def fromUTF8(text): if PY2 and QtCore.QT_VERSION < 0x050000: return QtCore.QString.fromUtf8(text) return text # ZoneInterfaceEditor ######################################################### class ZoneInterfaceEditor(QtWidgets.QDialog): def __init__(self, fw, interface, zone): self.fw = fw self.interface = interface self.zone = None self.title = _("Select zone for interface '%s'") % self.interface QtWidgets.QDialog.__init__(self) self.create_ui(zone) def create_ui(self, zone): self.setWindowTitle(fromUTF8(escape(self.title))) self.rejected.connect(self.hide) self.resize(100, 50) vbox = QtWidgets.QVBoxLayout() vbox.setSpacing(6) label = QtWidgets.QLabel(fromUTF8(escape(self.title))) vbox.addWidget(label) self.combo = QtWidgets.QComboBox() self.fill_zone_combo() vbox.addWidget(self.combo) buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.ok_button = buttonBox.button(QtWidgets.QDialogButtonBox.Ok) buttonBox.accepted.connect(self.ok) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) self.ok_button.setDisabled(True) self.combo.activated.connect(self.combo_changed) self.setLayout(vbox) self.set_zone(zone) def combo_changed(self): self.ok_button.setDisabled(self.get_zone() == self.zone) def set_zone(self, zone): self.zone = zone if zone == "": self.combo.setCurrentIndex(self.combo.findText( escape(_("Default Zone")))) else: self.combo.setCurrentIndex(self.combo.findText(self.zone)) self.combo_changed() def get_zone(self): text = str(self.combo.currentText()) if text == escape(_("Default Zone")): text = "" return text def fill_zone_combo(self): self.combo.clear() self.combo.addItem(fromUTF8(escape(_("Default Zone")))) for z in self.fw.getZones(): self.combo.addItem(z) def zones_changed(self): zone = self.get_zone() self.fill_zone_combo() self.set_zone(zone) def ok(self): self.fw.changeZoneOfInterface(self.get_zone(), self.interface) self.hide() # ZoneConnectionEditor ######################################################## class ZoneConnectionEditor(ZoneInterfaceEditor): def __init__(self, fw, connection, zone): self.fw = fw self.connection = connection self.zone = None self.title = _("Select zone for connection '%s'") % self.connection QtWidgets.QDialog.__init__(self) self.create_ui(zone) def ok(self): # apply changes try: nm_set_zone_of_connection(self.get_zone(), self.connection) except Exception as msg: text = _("Failed to set zone {zone} for connection {connection}") QtWidgets.QMessageBox.warning(None, fromUTF8(escape(self.title)), escape(text.format( zone=self.get_zone(), connection=self.connection))) self.hide() # ZoneSourceEditor ############################################################ class ZoneSourceEditor(ZoneInterfaceEditor): def __init__(self, fw, source, zone): self.fw = fw self.source = source self.zone = None self.title = _("Select zone for source '%s'") % self.source QtWidgets.QDialog.__init__(self) self.create_ui(zone) def ok(self): self.fw.changeZoneOfSource(self.get_zone(), self.source) self.hide() # ShieldsEditor ######################################################### class ShieldsEditor(QtWidgets.QDialog): def __init__(self, fw, settings, shields_up, shields_down): self.fw = fw self.settings = settings self.shields_up = shields_up self.shields_down = shields_down self.title = _("Configure Shields Up/Down Zones") QtWidgets.QDialog.__init__(self) self.create_ui() def create_ui(self): self.setWindowTitle(fromUTF8(escape(self.title))) self.rejected.connect(self.hide) vbox = QtWidgets.QVBoxLayout() vbox.setSpacing(6) label = QtWidgets.QLabel(fromUTF8(escape( _("Here you can select the zones used for Shields Up and " "Shields Down.")))) label.setWordWrap(True) vbox.addWidget(label) label = QtWidgets.QLabel(fromUTF8(escape( _("This feature is useful for people using the default zones " "mostly. For users, that are changing zones of connections, it " "might be of limited use.")))) label.setWordWrap(True) vbox.addWidget(label) grid = QtWidgets.QGridLayout() grid.setSpacing(6) label = QtWidgets.QLabel(fromUTF8(escape(_("Shields Up Zone:")))) label.setWordWrap(True) grid.addWidget(label, 0, 0, 1, 1) self.shields_up_combo = QtWidgets.QComboBox() #self.fill_combo(self.shields_up_combo) #self.set_shields_up(self.shields_up) grid.addWidget(self.shields_up_combo, 0, 1, 1, 1) button = QtWidgets.QPushButton(_("Reset To Default")) button.clicked.connect(self.reset_shields_up) grid.addWidget(button, 0, 2, 1, 1) label = QtWidgets.QLabel(fromUTF8(escape(_("Shields Down Zone:")))) label.setWordWrap(True) grid.addWidget(label, 1, 0, 1, 1) self.shields_down_combo = QtWidgets.QComboBox() #self.fill_combo(self.shields_down_combo) #self.set_shields_down(self.shields_down) grid.addWidget(self.shields_down_combo, 1, 1, 1, 1) button = QtWidgets.QPushButton(_("Reset To Default")) button.clicked.connect(self.reset_shields_down) grid.addWidget(button, 1, 2, 1, 1) vbox.addLayout(grid) buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.ok_button = buttonBox.button(QtWidgets.QDialogButtonBox.Ok) buttonBox.accepted.connect(self.ok) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) self.ok_button.setDisabled(True) self.shields_up_combo.activated.connect(self.shields_combo_changed) self.shields_down_combo.activated.connect(self.shields_combo_changed) self.setLayout(vbox) def shields_combo_changed(self): self.ok_button.setDisabled( self.get_shields_up() == self.shields_up and \ self.get_shields_down() == self.shields_down) def set_shields_up(self, zone): self.shields_up = zone if self.shields_up_combo.count() > 0: self.shields_up_combo.setCurrentIndex( self.shields_up_combo.findText(self.shields_up)) self.shields_combo_changed() def set_shields_down(self, zone): self.shields_down = zone if self.shields_down_combo.count() > 0: self.shields_down_combo.setCurrentIndex( self.shields_down_combo.findText(self.shields_down)) self.shields_combo_changed() def reset_shields_up(self): self.set_shields_up(self.shields_up) # remove user key to get fallback again self.settings.remove("shields-up") def reset_shields_down(self): self.set_shields_down(self.shields_down) # remove user key to get fallback again self.settings.remove("shields-down") def get_shields_up(self): return str(self.shields_up_combo.currentText()) def get_shields_down(self): return str(self.shields_down_combo.currentText()) def zones_changed(self): up_zone = self.shields_up if self.get_shields_up(): up_zone = self.get_shields_up() down_zone = self.shields_down if self.get_shields_down(): down_zone = self.get_shields_down() for z in self.fw.getZones(): self.shields_up_combo.addItem(z) self.shields_down_combo.addItem(z) self.set_shields_up(up_zone) self.set_shields_down(down_zone) def ok(self): if self.shields_up != self.get_shields_up(): self.settings.setValue("shields-up", self.get_shields_up()) if self.shields_down != self.get_shields_down(): self.settings.setValue("shields-down", self.get_shields_down()) self.settings.sync() self.hide() # AboutDialog ################################################################# class AboutDialog(QtWidgets.QDialog): def __init__(self, name, icon, version, url, copyright, authors, license): QtWidgets.QDialog.__init__(self) self.setWindowIcon(icon) self.setWindowTitle(fromUTF8(escape(_("About %s" % name)))) self.resize(500, 250) vbox = QtWidgets.QVBoxLayout() vbox.setSpacing(6) hbox = QtWidgets.QHBoxLayout() hbox.setSpacing(24) label = QtWidgets.QLabel() label.setPixmap(icon.pixmap(96)) label.setMinimumSize(96, 96) label.setMaximumSize(96, 96) hbox.addWidget(label) vbox2 = QtWidgets.QVBoxLayout() vbox2.setSpacing(3) label = QtWidgets.QLabel(name) font = label.font() font.setPointSize(font.pointSize()*2) font.setBold(True) label.setFont(font) vbox2.addWidget(label) vbox2.addWidget(QtWidgets.QLabel(version)) label = QtWidgets.QLabel("%s" % (url, url)) label.setTextFormat(QtCore.Qt.RichText) label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) label.setOpenExternalLinks(True) vbox2.addWidget(label) vbox2.addWidget(QtWidgets.QLabel(copyright)) hbox.addLayout(vbox2) vbox.addLayout(hbox) tabs = QtWidgets.QTabWidget() tabs.setStyleSheet("QTabWidget::tab { padding: 1px 1px 1px 1px; }") tab = QtWidgets.QWidget() vbox3 = QtWidgets.QVBoxLayout() textedit = QtWidgets.QPlainTextEdit() #textedit.setStyleSheet("QPlainTextEdit { border: 0; padding: 0; }") textedit.setReadOnly(True) textedit.setPlainText(fromUTF8("\n".join(authors))) vbox3.addWidget(textedit) tab.setLayout(vbox3) tabs.addTab(tab, fromUTF8(escape(_("Authors")))) tab = QtWidgets.QWidget() vbox3 = QtWidgets.QVBoxLayout() textedit = QtWidgets.QPlainTextEdit() #textedit.setStyleSheet("QPlainTextEdit { border: 0; padding: 0; }") textedit.setReadOnly(True) textedit.setPlainText(license) vbox3.addWidget(textedit) tab.setLayout(vbox3) tabs.addTab(tab, fromUTF8(escape(_("License")))) vbox.addWidget(tabs) buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Close) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) self.setLayout(vbox) # TrayApplet ################################################################## class TrayApplet(QtWidgets.QSystemTrayIcon): def __init__(self): super(TrayApplet, self).__init__() self.name = _("Firewall Applet") self.prog = "firewall-applet" self.icon_name = "firewall-applet" self.icons = { "normal": QtGui.QIcon.fromTheme(self.icon_name), "error": QtGui.QIcon.fromTheme(self.icon_name+"-error"), "panic": QtGui.QIcon.fromTheme(self.icon_name+"-panic"), } self.timer = None self.mode = None self.blink = False self.blink_count = 0 self._blink = False self._blink_count = 0 self.show_inactive = False self.tooltip_messages = [ ] self.active_zones = { } self.connections = { } self.connections_uuid = { } self.default_zone = None self.zone_connection_editors = { } self.zone_interface_editors = { } self.zone_source_editors = { } # settings self.settings = QtCore.QSettings("firewall", "applet") # file system watcher self.watcher = Watcher(self.load_settings, 2) self.watcher.add_watch_file("/etc/firewall/applet.conf") self.watcher.add_watch_file(str(self.settings.fileName())) # about dialog self.about_dialog = AboutDialog(self.name, self.icons["normal"], VERSION, WEBSITE, COPYRIGHT, AUTHORS, LICENSE) # urgencies self.urgencies = { "noicon": QtWidgets.QSystemTrayIcon.NoIcon, "information": QtWidgets.QSystemTrayIcon.Information, "warning": QtWidgets.QSystemTrayIcon.Warning, "critical": QtWidgets.QSystemTrayIcon.Critical } # actions self.shieldsupAction = QtWidgets.QAction(fromUTF8(escape(_("Shields Up"))), self) self.shieldsupAction.setCheckable(True) self.shieldsupAction.setChecked(False) self.shieldsupAction.triggered.connect(self.shieldsup_changed_cb) self.notificationsAction = QtWidgets.QAction( fromUTF8(escape(_("Enable Notifications"))), self) self.notificationsAction.setCheckable(True) self.notificationsAction.setChecked(False) self.notificationsAction.triggered.connect(self.notification_changed_cb) self.settingsAction = QtWidgets.QAction( fromUTF8(escape(_("Edit Firewall Settings..."))), self) self.settingsAction.triggered.connect(self.configure_cb) self.changeZonesAction = QtWidgets.QAction( fromUTF8(escape(_("Change Zones of Connections..."))), self) self.changeZonesAction.triggered.connect(self.nm_connection_editor) self.shieldsAction = QtWidgets.QAction( fromUTF8(escape(_("Configure Shields UP/Down Zones..."))), self) self.shieldsAction.triggered.connect(self.configure_shields) self.panicAction = QtWidgets.QAction( fromUTF8(escape(_("Block all network traffic"))), self) self.panicAction.setCheckable(True) self.panicAction.setChecked(False) self.panicAction.triggered.connect(self.panic_mode_cb) self.aboutAction = QtWidgets.QAction(fromUTF8(escape(_("About"))), self) self.aboutAction.triggered.connect(self.about_dialog.exec_) #self.quitAction = QtWidgets.QAction(fromUTF8(escape(_("Quit"))), self, # triggered=self.quit) self.connectionsAction = QtWidgets.QWidgetAction(self) self.connectionsAction.setDefaultWidget(QtWidgets.QLabel( fromUTF8(""+escape(_("Connections"))+" "))) self.interfacesAction = QtWidgets.QWidgetAction(self) self.interfacesAction.setDefaultWidget(QtWidgets.QLabel( fromUTF8(""+escape(_("Interfaces"))+" "))) self.sourcesAction = QtWidgets.QWidgetAction(self) self.sourcesAction.setDefaultWidget(QtWidgets.QLabel( fromUTF8(""+escape(_("Sources"))+" "))) # init self.left_menu = QtWidgets.QMenu() self.left_menu.setStyleSheet('QMenu { margin: 5px; }') self.right_menu = QtWidgets.QMenu() self.right_menu.addAction(self.shieldsupAction) self.right_menu.addAction(self.notificationsAction) self.right_menu.addSeparator() self.right_menu.addAction(self.settingsAction) self.right_menu.addAction(self.changeZonesAction) self.right_menu.addAction(self.shieldsAction) self.right_menu.addSeparator() self.right_menu.addAction(self.panicAction) self.right_menu.addSeparator() self.right_menu.addAction(self.aboutAction) #self.right_menu.addSeparator() #self.right_menu.addAction(self.quitAction) self.setContextMenu(self.right_menu) self.activated.connect(self.activated_cb) self.set_mode("error") self.set_icon(self.mode) self.setVisible(self.show_inactive) # init notification Notify.init(self.prog) # connect to firewalld DBusQtMainLoop(set_as_default=True) try: self.bus = slip.dbus.SystemBus() self.bus.default_timeout = None except Exception as msg: print("Not using slip", msg) self.bus = dbus.SystemBus() if nm_is_imported(): self.bus.add_signal_receiver( self.nm_signal_receiver, dbus_interface=nm_get_dbus_interface(), signal_name='PropertiesChanged', member_keyword='member') self.nm_signal_receiver() self.fw = FirewallClient(self.bus, wait=1) self.fw.setExceptionHandler(self._exception_handler) self.fw.connect("connection-established", self.connection_established) self.fw.connect("connection-lost", self.connection_lost) self.fw.connect("reloaded", self.reloaded), self.fw.connect("default-zone-changed", self.default_zone_changed) self.fw.connect("panic-mode-enabled", self.panic_mode_enabled) self.fw.connect("panic-mode-disabled", self.panic_mode_disabled) self.fw.connect("interface-added", self.interface_added) self.fw.connect("interface-removed", self.interface_removed) self.fw.connect("zone-of-interface-changed", self.zone_of_interface_changed) self.fw.connect("source-added", self.source_added) self.fw.connect("source-removed", self.source_removed) self.fw.connect("zone-of-source-changed", self.zone_of_source_changed) self.shields_editor = ShieldsEditor(self.fw, self.settings, None, None) self.load_settings() def _exception_handler(self, exception_message): if "NotAuthorizedException" in exception_message: self.error(fromUTF8(escape(_("Authorization failed.")))) elif "INVALID_NAME" in exception_message: msg = exception_message.replace("INVALID_NAME", _("Invalid name")) self.warning(fromUTF8(escape(msg))) elif "NAME_CONFLICT" in exception_message: msg = exception_message.replace("NAME_CONFLICT", _("Name already exists")) self.warning(fromUTF8(escape(msg))) elif "NO_DEFAULTS" in exception_message: pass else: self.error(fromUTF8(exception_message)) def quit(self): sys.exit(1) def set_icon(self, mode): self.setIcon(self.icons[mode]) def load_settings(self, name=None): self.settings.sync() notifications = self.settings.value("notifications", False, type=bool) self.notificationsAction.setChecked(notifications) self.show_inactive = self.settings.value("show-inactive", False, type=bool) self.blink = self.settings.value("blink", False, type=bool) self.blink_count = self.settings.value("blink-count", 5, type=int) self.shields_up = self.settings.value("shields-up", "block", type=str) if self.default_zone: self.shieldsupAction.setChecked( self.default_zone == self.shields_up) self.shields_editor.set_shields_up(self.shields_up) self.shields_down = self.settings.value("shields-down", "public", type=str) self.shields_editor.set_shields_down(self.shields_down) #print("shields-up=%s" % self.shields_up) #print("notifications=%s" % notifications) #print("blink=%s" % self.blink) #print("blink-count=%s" % self.blink_count) #print("show-inactive=%s" % self.show_inactive) if not self.fw.connected: self.setVisible(self.show_inactive) else: self.setVisible(True) def activated_cb(self, reason): if reason == QtWidgets.QSystemTrayIcon.Trigger: self.left_menu.popup(QtGui.QCursor.pos()) def update_active_zones(self): self.active_zones.clear() # remove all entries for the left menu self.left_menu.clear() # add connections entry self.left_menu.addAction(self.connectionsAction) if not self.fw.connected: return active_zones = self.fw.getActiveZones() if active_zones: self.active_zones = active_zones # get all active connections (NM) and interfaces connections = { } interfaces = { } sources = { } for zone in sorted(self.active_zones): if "interfaces" in self.active_zones[zone]: for interface in sorted(self.active_zones[zone]["interfaces"]): if interface not in self.connections: interfaces[interface] = zone if "sources" in self.active_zones[zone]: for source in sorted(self.active_zones[zone]["sources"]): sources[source] = zone # NM controlled connections for interface in self.connections: connection = self.connections[interface] if connection not in self.connections_uuid: uuid = None else: uuid = self.connections_uuid[connection] zone = nm_get_zone_of_connection(connection) connections[connection] = [ zone, uuid ] binding = _("{entry} (Zone: {zone})") # add NM controlled bindings for connection in sorted(connections): zone = connections[connection][0] if zone == "": _binding = _("{entry} (Default Zone: {default_zone})") action = QtWidgets.QAction( fromUTF8(escape( _binding.format(default_zone=self.default_zone, entry=connection))), self) else: action = QtWidgets.QAction( fromUTF8(escape(binding.format(zone=zone, entry=connection))), self) action.triggered.connect(functools.partial( self.zone_connection_editor, connection, zone)) self.left_menu.addAction(action) # add interfaces entry self.left_menu.addAction(self.interfacesAction) # add other interfaces for interface in sorted(interfaces): zone = interfaces[interface] action = QtWidgets.QAction( fromUTF8(escape(binding.format(zone=zone, entry=interface))), self) action.triggered.connect(functools.partial( self.zone_interface_editor, interface, zone)) self.left_menu.addAction(action) # add interfaces entry self.left_menu.addAction(self.sourcesAction) for source in sorted(sources): zone = sources[source] action = QtWidgets.QAction( fromUTF8(escape(binding.format(zone=zone, entry=source))), self) action.triggered.connect(functools.partial( self.zone_source_editor, source, zone)) self.left_menu.addAction(action) def zone_interface_editor(self, interface, zone): if interface in self.zone_interface_editors: self.zone_interface_editors[interface].set_zone(zone) self.zone_interface_editors[interface].show() return self.zone_interface_editors[interface].raise_() editor = ZoneInterfaceEditor(self.fw, interface, zone) self.zone_interface_editors[interface] = editor editor.show() editor.raise_() editor.show() def zone_connection_editor(self, connection, zone): if connection in self.zone_connection_editors: self.zone_connection_editors[connection].set_zone(zone) self.zone_connection_editors[connection].show() return self.zone_connection_editors[connection].raise_() editor = ZoneConnectionEditor(self.fw, connection, zone) self.zone_connection_editors[connection] = editor editor.show() editor.raise_() editor.show() def zone_source_editor(self, source, zone): if source in self.zone_source_editors: self.zone_source_editors[source].set_zone(zone) self.zone_source_editors[source].show() return self.zone_source_editors[source].raise_() editor = ZoneSourceEditor(self.fw, source, zone) self.zone_source_editors[source] = editor editor.show() editor.raise_() editor.show() def nm_signal_receiver(self, *args, **kwargs): self.connections.clear() self.connections_uuid.clear() # do not use NMClient could result in python core dump if nm_is_imported(): text = _("Failed to get connections from NetworkManager") try: nm_get_connections(self.connections, self.connections_uuid) except Exception as msg: self.notify(escape(text), urgency=Notify.Urgency.CRITICAL) if text not in self.tooltip_messages: self.tooltip_messages.append(text) else: if text in self.tooltip_messages: self.tooltip_messages.remove(text) else: text = _("No NetworkManager imports available") self.notify(escape(text), urgency=Notify.Urgency.CRITICAL) if text not in self.tooltip_messages: self.tooltip_messages.append(text) self.update_tooltip() def notify(self, msg, urgency="noicon", timeout=5): #self.showMessage(fromUTF8(escape(self.name)), msg, self.urgencies[urgency], timeout*1000) n = Notify.Notification.new(escape(self.name), msg, self.icon_name) n.set_urgency(Notify.Urgency.NORMAL) try: n.show() except: return def shieldsup_changed_cb(self): if self.shieldsupAction.isChecked(): zone = str(self.shields_up) else: zone = str(self.shields_down) if self.fw.connected and self.default_zone != zone: try: self.fw.setDefaultZone(zone) except dbus.exceptions.DBusException as e: print("Error: %s" % e.get_dbus_message()) def notification_changed_cb(self): self.settings.setValue("notifications", self.notificationsAction.isChecked()) self.settings.sync() def __blink(self, arg=None): if self._blink_count != 0: if self._blink_count > 0 and self._blink: self._blink_count -= 1 self._blink = not self._blink if not self.timer: self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.__blink) self.timer.setInterval(1000) self.timer.start() if not self._blink: self.set_icon(self.mode) else: self.set_icon("normal") def get_mode(self): return self.mode def set_mode(self, mode): if self.mode != mode: if self.timer and self.timer.isActive(): self.timer.stop() self._blink = False self.mode = mode elif self.mode == mode and self.timer: if self._blink_count == 0: self._blink_count += 1 return if mode == "normal": self.set_icon(mode) return if self.blink: if self.blink_count != 0: self._blink = True self._blink_count = self.blink_count self.__blink() else: self.set_icon(mode) def update_tooltip(self): if self.get_mode() == "error": self.setToolTip(fromUTF8("" + \ _("No connection to firewall daemon") + \ "")) return messages = [ ] if self.panicAction.isChecked(): messages.append("" + \ _("All network traffic is blocked.") + \ "") if self.default_zone: messages.append(_("Default Zone: '%s'") % self.default_zone) for interface in self.connections: connection = self.connections[interface] zone = nm_get_zone_of_connection(connection) if zone == "": text = _("Default Zone '{default_zone}' active for connection " "'{connection}' on interface '{interface}'") else: text = _("Zone '{zone}' active for connection " "'{connection}' on interface '{interface}'") messages.append(text.format(zone=zone, default_zone=self.default_zone, connection=connection, interface=interface)) if len(self.active_zones) > 0: for zone in sorted(self.active_zones): if "interfaces" in self.active_zones[zone]: for interface in sorted(self.active_zones[zone]["interfaces"]): if interface not in self.connections: text = _("Zone '{zone}' active for interface " "'{interface}'") connection = None messages.append(text.format(zone=zone, connection=connection, interface=interface)) if "sources" in self.active_zones[zone]: for source in sorted(self.active_zones[zone]["sources"]): text = _("Zone '{zone}' active for source {source}") connection = None messages.append(text.format(zone=zone, source=source)) else: messages.append(_("No Active Zones.")) messages.extend(self.tooltip_messages) tooltip = ""+"
".join(messages)+"" self.setToolTip(fromUTF8(""+tooltip+"")) def show(self): # do not automatically show the applet pass def panic_mode_cb(self): if not self.fw or not self.fw.connected: return if self.panicAction.isChecked(): self.fw.enablePanicMode() else: self.fw.disablePanicMode() self.panicAction.setChecked(not self.panicAction.isChecked()) def configure_shields(self): self.shields_editor.show() self.shields_editor.raise_() def nm_connection_editor(self, item, uuid=None): if NM_CONNECTION_EDITOR == "": self.warning("NetworkManager connection editor is missing.") return if uuid: if "kde-" in NM_CONNECTION_EDITOR: os.system("%s %s &" % (NM_CONNECTION_EDITOR, uuid)) else: os.system("%s --edit=%s &" % (NM_CONNECTION_EDITOR, uuid)) else: os.system("%s &" % NM_CONNECTION_EDITOR) def warning(self, text): QtWidgets.QMessageBox.warning(None, fromUTF8(escape(self.name)), text) def error(self, text): QtWidgets.QMessageBox.critical(None, fromUTF8(escape(self.name)), text) def configure_cb(self, widget): os.system("firewall-config &") # firewallClient signal receivers def connection_established(self, first=False): self.default_zone = self.fw.getDefaultZone() self.panicAction.setChecked(self.fw.queryPanicMode()) self.update_active_zones() self.shields_editor.zones_changed() if self.shields_up: self.shieldsupAction.setChecked( self.default_zone == self.shields_up) if self.notificationsAction.isChecked(): self.notify(escape(_("Connection to FirewallD established."))) self.setVisible(True) self.set_mode("normal") self.update_tooltip() def connection_lost(self): self.default_zone = None self.set_mode("error") self.update_active_zones() self.update_tooltip() self.panicAction.setChecked(False) if self.notificationsAction.isChecked(): self.notify(escape(_("Connection to FirewallD lost."))) self.setVisible(self.show_inactive) def reloaded(self): if self.notificationsAction.isChecked(): self.notify(escape(_("FirewallD has been reloaded."))) self.update_active_zones() self.update_tooltip() def default_zone_changed(self, zone): self.default_zone = zone if self.notificationsAction.isChecked(): self.notify(escape(_("Default zone changed to '%s'.") % zone)) if self.shields_up: self.shieldsupAction.setChecked( self.default_zone == self.shields_up) self.update_active_zones() self.update_tooltip() def _panic_mode(self, enable): self.panicAction.setChecked(enable) self.update_tooltip() if enable: self.set_mode("panic") else: self.set_mode("normal") if self.notificationsAction.isChecked(): ed = { 1: _("All network traffic is blocked."), 0: _("Network traffic is not blocked anymore.") } self.notify(escape(ed[enable])) def panic_mode_enabled(self): self._panic_mode(True) def panic_mode_disabled(self): self._panic_mode(False) def _interface(self, zone, interface, enable): self.update_active_zones() self.update_tooltip() # close dialog of removed interface if not enable: if interface in self.connections: connection = self.connections[interface] if connection in self.zone_connection_editors: self.zone_connection_editors[connection].hide() del self.zone_connection_editors[connection] elif interface in self.zone_interface_editors: self.zone_interface_editors[interface].hide() del self.zone_interface_editors[interface] # send notification if enabled if self.notificationsAction.isChecked(): ed = { 1: _("activated"), 0: _("deactivated") } if interface in self.connections: connection = self.connections[interface] zone = nm_get_zone_of_connection(connection) if zone == "": text = _("Default zone '{default_zone}' " "{activated_deactivated} for " "connection '{connection}' on " "interface '{interface}'") else: text = _("Zone '{zone}' {activated_deactivated} for " "connection '{connection}' on " "interface '{interface}'") else: connection = None text = _("Zone '{zone}' {activated_deactivated} for " "interface '{interface}'") self.notify(escape(text.format( zone=zone, default_zone=self.default_zone, activated_deactivated=ed[enable], connection=connection, interface=interface))) def interface_added(self, zone, interface): self._interface(zone, interface, True) def interface_removed(self, zone, interface): self._interface(zone, interface, False) def zone_of_interface_changed(self, zone, interface): # update zone editor if interface in self.zone_interface_editors: self.zone_interface_editors[interface].set_zone(zone) self.update_active_zones() self.update_tooltip() if self.notificationsAction.isChecked(): self.notify(escape(_("Zone '%s' activated for interface '%s'") % \ (zone, interface))) def _source(self, zone, source, enable): self.update_active_zones() self.update_tooltip() # close dialog of removed source if not enable: if source in self.zone_source_editors: self.zone_source_editors[source].hide() del self.zone_source_editors[source] # send notification if enabled if self.notificationsAction.isChecked(): ed = { 1: _("activated"), 0: _("deactivated") } connection = None text = _("Zone '{zone}' {activated_deactivated} for " "source '{source}'") self.notify(escape(text.format( zone=zone, activated_deactivated=ed[enable], source=source))) def source_added(self, zone, source): self._source(zone, source, True) def source_removed(self, zone, source): self._source(zone, source, False) def zone_of_source_changed(self, zone, source): index = source if source in self.zone_source_editors: self.zone_source_editors[source].set_zone(zone) # update zone editor if index in self.zone_interface_editors: self.zone_interface_editors[index].set_zone(zone) self.update_active_zones() self.update_tooltip() if self.notificationsAction.isChecked(): self.notify(escape(_("Zone '%s' activated for source '%s'") % \ (zone, source))) # MAIN ######################################################################## if len(sys.argv) > 1: print("""Usage: %s [options] Options: -h, --help show this help message and exit """ % sys.argv[0]) sys.exit(1) # reset SIGINT signal to default signal.signal(signal.SIGINT, signal.SIG_DFL) app = QtWidgets.QApplication(sys.argv) app.setQuitOnLastWindowClosed(False) applet = TrayApplet() applet.show() sys.exit(app.exec_()) firewalld-0.4.4.6/src/firewall-applet-icons.svg000066400000000000000000006535401320241217000213520ustar00rootroot00000000000000 image/svg+xml Lapo Calamandrei Firewall image/svg+xml firewalld-0.4.4.6/src/firewall-cmd000077500000000000000000003406061320241217000167200ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2009-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from gi.repository import GObject import sys sys.modules['gobject'] = GObject import argparse import os from firewall.client import FirewallClient, FirewallClientIPSetSettings, \ FirewallClientZoneSettings, FirewallClientServiceSettings, \ FirewallClientIcmpTypeSettings, FirewallClientHelperSettings from firewall.errors import FirewallError from firewall import errors from firewall.functions import joinArgs, splitArgs from firewall.core.fw_nm import nm_is_imported, \ nm_get_connection_of_interface, nm_get_zone_of_connection, \ nm_set_zone_of_connection from firewall.core.io.zone import zone_reader from firewall.core.io.service import service_reader from firewall.core.io.ipset import ipset_reader from firewall.core.io.icmptype import icmptype_reader from firewall.core.io.helper import helper_reader from firewall.command import FirewallCommand def __usage(): sys.stdout.write(""" Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration Log Denied Options --get-log-denied Print the log denied value --set-log-denied= Set log denied value Automatic Helpers Options --get-automatic-helpers Print the automatic helpers value --set-automatic-helpers= Set automatic helpers value Permanent Options --permanent Set an option permanently Usable for options marked with [P] Zone Options --get-default-zone Print default zone for connections and interfaces --set-default-zone= Set default zone --get-active-zones Print currently active zones --get-zones Print predefined zones [P] --get-services Print predefined services [P] --get-icmptypes Print predefined icmptypes [P] --get-zone-of-interface= Print name of the zone the interface is bound to [P] --get-zone-of-source=[/]||ipset: Print name of the zone the source is bound to [P] --list-all-zones List everything added for or enabled in all zones [P] --new-zone= Add a new zone [P only] --new-zone-from-file= [--name=] Add a new zone from file with optional name [P only] --delete-zone= Delete an existing zone [P only] --load-zone-defaults= Load zone default settings [P only] [Z] --zone= Use this zone to set or query options, else default zone Usable for options marked with [Z] --get-target Get the zone target [P only] [Z] --set-target= Set the zone target [P only] [Z] --info-zone= Print information about a zone --path-zone= Print file path of a zone [P only] IPSet Options --get-ipset-types Print the supported ipset types --new-ipset= --type= [--option=[=]].. Add a new ipset [P only] --new-ipset-from-file= [--name=] Add a new ipset from file with optional name [P only] --delete-ipset= Delete an existing ipset [P only] --load-ipset-defaults= Load ipset default settings [P only] --info-ipset= Print information about an ipset --path-ipset= Print file path of an ipset [P only] --get-ipsets Print predefined ipsets --ipset= --set-description= Set new description to ipset [P only] --ipset= --get-description Print description for ipset [P only] --ipset= --set-short= Set new short description to ipset [P only] --ipset= --get-short Print short description for ipset [P only] --ipset= --add-entry= Add a new entry to an ipset [P] --ipset= --remove-entry= Remove an entry from an ipset [P] --ipset= --query-entry= Return whether ipset has an entry [P] --ipset= --get-entries List entries of an ipset [P] --ipset= --add-entries-from-file= Add a new entries to an ipset [P] --ipset= --remove-entries-from-file= Remove entries from an ipset [P] IcmpType Options --new-icmptype= Add a new icmptype [P only] --new-icmptype-from-file= [--name=] Add a new icmptype from file with optional name [P only] --delete-icmptype= Delete an existing icmptype [P only] --load-icmptype-defaults= Load icmptype default settings [P only] --info-icmptype= Print information about an icmptype --path-icmptype= Print file path of an icmptype [P only] --icmptype= --set-description= Set new description to icmptype [P only] --icmptype= --get-description Print description for icmptype [P only] --icmptype= --set-short= Set new short description to icmptype [P only] --icmptype= --get-short Print short description for icmptype [P only] --icmptype= --add-destination= Enable destination for ipv in icmptype [P only] --icmptype= --remove-destination= Disable destination for ipv in icmptype [P only] --icmptype= --query-destination= Return whether destination ipv is enabled in icmptype [P only] --icmptype= --get-destinations List destinations in icmptype [P only] Service Options --new-service= Add a new service [P only] --new-service-from-file= [--name=] Add a new service from file with optional name [P only] --delete-service= Delete an existing service [P only] --load-service-defaults= Load icmptype default settings [P only] --info-service= Print information about a service --path-service= Print file path of a service [P only] --service= --set-description= Set new description to service [P only] --service= --get-description Print description for service [P only] --service= --set-short= Set new short description to service [P only] --service= --get-short Print short description for service [P only] --service= --add-port=[-]/ Add a new port to service [P only] --service= --remove-port=[-]/ Remove a port from service [P only] --service= --query-port=[-]/ Return whether the port has been added for service [P only] --service= --get-ports List ports of service [P only] --service= --add-protocol= Add a new protocol to service [P only] --service= --remove-protocol= Remove a protocol from service [P only] --service= --query-protocol= Return whether the protocol has been added for service [P only] --service= --get-protocols List protocols of service [P only] --service= --add-source-port=[-]/ Add a new source port to service [P only] --service= --remove-source-port=[-]/ Remove a source port from service [P only] --service= --query-source-port=[-]/ Return whether the source port has been added for service [P only] --service= --get-source-ports List source ports of service [P only] --service= --add-module= Add a new module to service [P only] --service= --remove-module= Remove a module from service [P only] --service= --query-module= Return whether the module has been added for service [P only] --service= --get-modules List modules of service [P only] --service= --set-destination=:
[/] Set destination for ipv to address in service [P only] --service= --remove-destination= Disable destination for ipv i service [P only] --service= --query-destination=:
[/] Return whether destination ipv is set for service [P only] --service= --get-destinations List destinations in service [P only] Options to Adapt and Query Zones --list-all List everything added for or enabled in a zone [P] [Z] --list-services List services added for a zone [P] [Z] --timeout= Enable an option for timeval time, where timeval is a number followed by one of letters 's' or 'm' or 'h' Usable for options marked with [T] --set-description= Set new description to zone [P only] [Z] --get-description Print description for zone [P only] [Z] --set-short= Set new short description to zone [P only] [Z] --get-short Print short description for zone [P only] [Z] --add-service= Add a service for a zone [P] [Z] [T] --remove-service= Remove a service from a zone [P] [Z] --query-service= Return whether service has been added for a zone [P] [Z] --list-ports List ports added for a zone [P] [Z] --add-port=[-]/ Add the port for a zone [P] [Z] [T] --remove-port=[-]/ Remove the port from a zone [P] [Z] --query-port=[-]/ Return whether the port has been added for zone [P] [Z] --list-protocols List protocols added for a zone [P] [Z] --add-protocol= Add the protocol for a zone [P] [Z] [T] --remove-protocol= Remove the protocol from a zone [P] [Z] --query-protocol= Return whether the protocol has been added for zone [P] [Z] --list-source-ports List source ports added for a zone [P] [Z] --add-source-port=[-]/ Add the source port for a zone [P] [Z] [T] --remove-source-port=[-]/ Remove the source port from a zone [P] [Z] --query-source-port=[-]/ Return whether the source port has been added for zone [P] [Z] --list-icmp-blocks List Internet ICMP type blocks added for a zone [P] [Z] --add-icmp-block= Add an ICMP block for a zone [P] [Z] [T] --remove-icmp-block= Remove the ICMP block from a zone [P] [Z] --query-icmp-block= Return whether an ICMP block has been added for a zone [P] [Z] --add-icmp-block-inversion Enable inversion of icmp blocks for a zone [P] [Z] --remove-icmp-block-inversion Disable inversion of icmp blocks for a zone [P] [Z] --query-icmp-block-inversion Return whether inversion of icmp blocks has been enabled for a zone [P] [Z] --list-forward-ports List IPv4 forward ports added for a zone [P] [Z] --add-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Add the IPv4 forward port for a zone [P] [Z] [T] --remove-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Remove the IPv4 forward port from a zone [P] [Z] --query-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Return whether the IPv4 forward port has been added for a zone [P] [Z] --add-masquerade Enable IPv4 masquerade for a zone [P] [Z] [T] --remove-masquerade Disable IPv4 masquerade for a zone [P] [Z] --query-masquerade Return whether IPv4 masquerading has been enabled for a zone [P] [Z] --list-rich-rules List rich language rules added for a zone [P] [Z] --add-rich-rule= Add rich language rule 'rule' for a zone [P] [Z] [T] --remove-rich-rule= Remove rich language rule 'rule' from a zone [P] [Z] --query-rich-rule= Return whether a rich language rule 'rule' has been added for a zone [P] [Z] Options to Handle Bindings of Interfaces --list-interfaces List interfaces that are bound to a zone [P] [Z] --add-interface= Bind the to a zone [P] [Z] --change-interface= Change zone the is bound to [Z] --query-interface= Query whether is bound to a zone [P] [Z] --remove-interface= Remove binding of from a zone [P] [Z] Options to Handle Bindings of Sources --list-sources List sources that are bound to a zone [P] [Z] --add-source=[/]||ipset: Bind the source to a zone [P] [Z] --change-source=[/]||ipset: Change zone the source is bound to [Z] --query-source=[/]||ipset: Query whether the source is bound to a zone [P] [Z] --remove-source=[/]||ipset: Remove binding of the source from a zone [P] [Z] Helper Options --new-helper= --module= [--family=] Add a new helper [P only] --new-helper-from-file= [--name=] Add a new helper from file with optional name [P only] --delete-helper= Delete an existing helper [P only] --load-helper-defaults= Load helper default settings [P only] --info-helper= Print information about an helper --path-helper= Print file path of an helper [P only] --get-helpers Print predefined helpers --helper= --set-description= Set new description to helper [P only] --helper= --get-description Print description for helper [P only] --helper= --set-short= Set new short description to helper [P only] --helper= --get-short Print short description for helper [P only] --helper= --add-port=[-]/ Add a new port to helper [P only] --helper= --remove-port=[-]/ Remove a port from helper [P only] --helper= --query-port=[-]/ Return whether the port has been added for helper [P only] --helper= --get-ports List ports of helper [P only] --helper= --set-module= Set module to helper [P only] --helper= --get-module Get module from helper [P only] --helper= --set-family={ipv4|ipv6|} Set family for helper [P only] --helper= --get-family Get module from helper [P only] Direct Options --direct First option for all direct options --get-all-chains Get all chains [P] --get-chains {ipv4|ipv6|eb} Get all chains added to the table [P] --add-chain {ipv4|ipv6|eb}
Add a new chain to the table [P] --remove-chain {ipv4|ipv6|eb}
Remove the chain from the table [P] --query-chain {ipv4|ipv6|eb}
Return whether the chain has been added to the table [P] --get-all-rules Get all rules [P] --get-rules {ipv4|ipv6|eb}
Get all rules added to chain in table [P] --add-rule {ipv4|ipv6|eb}
... Add rule to chain in table [P] --remove-rule {ipv4|ipv6|eb}
... Remove rule with priority from chain in table [P] --remove-rules {ipv4|ipv6|eb}
Remove rules from chain in table [P] --query-rule {ipv4|ipv6|eb}
... Return whether a rule with priority has been added to chain in table [P] --passthrough {ipv4|ipv6|eb} ... Pass a command through (untracked by firewalld) --get-all-passthroughs Get all tracked passthrough rules [P] --get-passthroughs {ipv4|ipv6|eb} ... Get tracked passthrough rules [P] --add-passthrough {ipv4|ipv6|eb} ... Add a new tracked passthrough rule [P] --remove-passthrough {ipv4|ipv6|eb} ... Remove a tracked passthrough rule [P] --query-passthrough {ipv4|ipv6|eb} ... Return whether the tracked passthrough rule has been added [P] Lockdown Options --lockdown-on Enable lockdown. --lockdown-off Disable lockdown. --query-lockdown Query whether lockdown is enabled Lockdown Whitelist Options --list-lockdown-whitelist-commands List all command lines that are on the whitelist [P] --add-lockdown-whitelist-command= Add the command to the whitelist [P] --remove-lockdown-whitelist-command= Remove the command from the whitelist [P] --query-lockdown-whitelist-command= Query whether the command is on the whitelist [P] --list-lockdown-whitelist-contexts List all contexts that are on the whitelist [P] --add-lockdown-whitelist-context= Add the context context to the whitelist [P] --remove-lockdown-whitelist-context= Remove the context from the whitelist [P] --query-lockdown-whitelist-context= Query whether the context is on the whitelist [P] --list-lockdown-whitelist-uids List all user ids that are on the whitelist [P] --add-lockdown-whitelist-uid= Add the user id uid to the whitelist [P] --remove-lockdown-whitelist-uid= Remove the user id uid from the whitelist [P] --query-lockdown-whitelist-uid= Query whether the user id uid is on the whitelist [P] --list-lockdown-whitelist-users List all user names that are on the whitelist [P] --add-lockdown-whitelist-user= Add the user name user to the whitelist [P] --remove-lockdown-whitelist-user= Remove the user name user from the whitelist [P] --query-lockdown-whitelist-user= Query whether the user name user is on the whitelist [P] Panic Options --panic-on Enable panic mode --panic-off Disable panic mode --query-panic Query whether panic mode is enabled """) def try_set_zone_of_interface(_zone, interface): if nm_is_imported(): try: connection = nm_get_connection_of_interface(interface) except Exception: pass else: if connection is not None: if _zone == nm_get_zone_of_connection(connection): if _zone == "": cmd.print_warning("The interface is under control of NetworkManager and already bound to the default zone") else: cmd.print_warning("The interface is under control of NetworkManager and already bound to '%s'" % _zone) if _zone == "": cmd.print_msg("The interface is under control of NetworkManager, setting zone to default.") else: cmd.print_msg("The interface is under control of NetworkManager, setting zone to '%s'." % _zone) nm_set_zone_of_connection(_zone, connection) return True return False parser = argparse.ArgumentParser(usage="see firewall-cmd man page", add_help=False) parser_group_output = parser.add_mutually_exclusive_group() parser_group_output.add_argument("-v", "--verbose", action="store_true") parser_group_output.add_argument("-q", "--quiet", action="store_true") parser_group_standalone = parser.add_mutually_exclusive_group() parser_group_standalone.add_argument("-h", "--help", action="store_true") parser_group_standalone.add_argument("-V", "--version", action="store_true") parser_group_standalone.add_argument("--state", action="store_true") parser_group_standalone.add_argument("--reload", action="store_true") parser_group_standalone.add_argument("--complete-reload", action="store_true") parser_group_standalone.add_argument("--runtime-to-permanent", action="store_true") parser_group_standalone.add_argument("--get-ipset-types", action="store_true") parser_group_standalone.add_argument("--get-log-denied", action="store_true") parser_group_standalone.add_argument("--set-log-denied", metavar="") parser_group_standalone.add_argument("--get-automatic-helpers", action="store_true") parser_group_standalone.add_argument("--set-automatic-helpers", metavar="") parser_group_standalone.add_argument("--panic-on", action="store_true") parser_group_standalone.add_argument("--panic-off", action="store_true") parser_group_standalone.add_argument("--query-panic", action="store_true") parser_group_standalone.add_argument("--lockdown-on", action="store_true") parser_group_standalone.add_argument("--lockdown-off", action="store_true") parser_group_standalone.add_argument("--query-lockdown", action="store_true") parser_group_standalone.add_argument("--get-default-zone", action="store_true") parser_group_standalone.add_argument("--set-default-zone", metavar="") parser_group_standalone.add_argument("--get-zones", action="store_true") parser_group_standalone.add_argument("--get-services", action="store_true") parser_group_standalone.add_argument("--get-icmptypes", action="store_true") parser_group_standalone.add_argument("--get-active-zones", action="store_true") parser_group_standalone.add_argument("--get-zone-of-interface", metavar="", action='append') parser_group_standalone.add_argument("--get-zone-of-source", metavar="", action='append') parser_group_standalone.add_argument("--list-all-zones", action="store_true") parser_group_standalone.add_argument("--info-zone", metavar="") parser_group_standalone.add_argument("--info-service", metavar="") parser_group_standalone.add_argument("--info-icmptype", metavar="") parser_group_standalone.add_argument("--info-ipset", metavar="") parser_group_standalone.add_argument("--info-helper", metavar="") parser_group_config = parser.add_mutually_exclusive_group() parser_group_config.add_argument("--new-icmptype", metavar="") parser_group_config.add_argument("--new-icmptype-from-file", metavar="") parser_group_config.add_argument("--delete-icmptype", metavar="") parser_group_config.add_argument("--load-icmptype-defaults", metavar="") parser_group_config.add_argument("--new-service", metavar="") parser_group_config.add_argument("--new-service-from-file", metavar="") parser_group_config.add_argument("--delete-service", metavar="") parser_group_config.add_argument("--load-service-defaults", metavar="") parser_group_config.add_argument("--new-zone", metavar="") parser_group_config.add_argument("--new-zone-from-file", metavar="") parser_group_config.add_argument("--delete-zone", metavar="") parser_group_config.add_argument("--load-zone-defaults", metavar="") parser_group_config.add_argument("--new-ipset", metavar="") parser_group_config.add_argument("--new-ipset-from-file", metavar="") parser_group_config.add_argument("--delete-ipset", metavar="") parser_group_config.add_argument("--load-ipset-defaults", metavar="") parser_group_config.add_argument("--new-helper", metavar="") parser_group_config.add_argument("--new-helper-from-file", metavar="") parser_group_config.add_argument("--delete-helper", metavar="") parser_group_config.add_argument("--load-helper-defaults", metavar="") parser_group_config.add_argument("--path-zone", metavar="") parser_group_config.add_argument("--path-service", metavar="") parser_group_config.add_argument("--path-icmptype", metavar="") parser_group_config.add_argument("--path-ipset", metavar="") parser_group_config.add_argument("--path-helper", metavar="") parser.add_argument("--name", default="", metavar="") parser_group_lockdown_whitelist = parser.add_mutually_exclusive_group() parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-commands", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-contexts", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-uids", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-users", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-user", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-user", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-user", metavar="", action='append') parser.add_argument("--permanent", action="store_true") parser.add_argument("--zone", default="", metavar="") parser.add_argument("--timeout", default="0", metavar="") parser_group_zone = parser.add_mutually_exclusive_group() parser_group_zone.add_argument("--add-interface", metavar="", action='append') parser_group_zone.add_argument("--remove-interface", metavar="", action='append') parser_group_zone.add_argument("--query-interface", metavar="", action='append') parser_group_zone.add_argument("--change-interface", "--change-zone", metavar="", action='append') parser_group_zone.add_argument("--list-interfaces", action="store_true") parser_group_zone.add_argument("--add-source", metavar="", action='append') parser_group_zone.add_argument("--remove-source", metavar="", action='append') parser_group_zone.add_argument("--query-source", metavar="", action='append') parser_group_zone.add_argument("--change-source", metavar="", action='append') parser_group_zone.add_argument("--list-sources", action="store_true") parser_group_zone.add_argument("--add-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--remove-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--query-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--add-service", metavar="", action='append') parser_group_zone.add_argument("--remove-service", metavar="", action='append') parser_group_zone.add_argument("--query-service", metavar="", action='append') parser_group_zone.add_argument("--add-port", metavar="", action='append') parser_group_zone.add_argument("--remove-port", metavar="", action='append') parser_group_zone.add_argument("--query-port", metavar="", action='append') parser_group_zone.add_argument("--add-protocol", metavar="", action='append') parser_group_zone.add_argument("--remove-protocol", metavar="", action='append') parser_group_zone.add_argument("--query-protocol", metavar="", action='append') parser_group_zone.add_argument("--add-source-port", metavar="", action='append') parser_group_zone.add_argument("--remove-source-port", metavar="", action='append') parser_group_zone.add_argument("--query-source-port", metavar="", action='append') parser_group_zone.add_argument("--add-masquerade", action="store_true") parser_group_zone.add_argument("--remove-masquerade", action="store_true") parser_group_zone.add_argument("--query-masquerade", action="store_true") parser_group_zone.add_argument("--add-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--remove-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--query-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--add-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--remove-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--query-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--add-forward-port", metavar="", action='append') parser_group_zone.add_argument("--remove-forward-port", metavar="", action='append') parser_group_zone.add_argument("--query-forward-port", metavar="", action='append') parser_group_zone.add_argument("--list-rich-rules", action="store_true") parser_group_zone.add_argument("--list-services", action="store_true") parser_group_zone.add_argument("--list-ports", action="store_true") parser_group_zone.add_argument("--list-protocols", action="store_true") parser_group_zone.add_argument("--list-icmp-blocks", action="store_true") parser_group_zone.add_argument("--list-forward-ports", action="store_true") parser_group_zone.add_argument("--list-source-ports", action="store_true") parser_group_zone.add_argument("--list-all", action="store_true") parser_group_zone.add_argument("--get-target", action="store_true") parser_group_zone.add_argument("--set-target", metavar="") parser.add_argument("--option", metavar="[=]", action='append') parser.add_argument("--type", metavar="") parser.add_argument("--ipset", metavar="") parser_ipset = parser.add_mutually_exclusive_group() #parser_ipset.add_argument("--add-option", metavar="[=]") #parser_ipset.add_argument("--remove-option", metavar="[=]") #parser_ipset.add_argument("--query-option", metavar="[=]") #parser_ipset.add_argument("--get-options", action="store_true") parser_ipset.add_argument("--get-ipsets", action="store_true") parser_ipset.add_argument("--add-entry", metavar="", action='append') parser_ipset.add_argument("--remove-entry", metavar="", action='append') parser_ipset.add_argument("--query-entry", metavar="", action='append') parser_ipset.add_argument("--get-entries", action="store_true") parser_ipset.add_argument("--add-entries-from-file", metavar="", action='append') parser_ipset.add_argument("--remove-entries-from-file", metavar="", action='append') parser.add_argument("--icmptype", metavar="") parser_icmptype = parser.add_mutually_exclusive_group() parser_icmptype.add_argument("--add-destination", metavar="", action='append') parser_icmptype.add_argument("--remove-destination", metavar="", action='append') parser_icmptype.add_argument("--query-destination", metavar="", action='append') parser_icmptype.add_argument("--get-destinations", action="store_true") parser.add_argument("--service", metavar="") parser_service = parser.add_mutually_exclusive_group() parser_service.add_argument("--get-ports", action="store_true") parser_service.add_argument("--get-source-ports", action="store_true") parser_service.add_argument("--get-protocols", action="store_true") parser_service.add_argument("--add-module", metavar="", action='append') parser_service.add_argument("--remove-module", metavar="", action='append') parser_service.add_argument("--query-module", metavar="", action='append') parser_service.add_argument("--get-modules", action="store_true") parser_service.add_argument("--set-destination", metavar="", action='append') parser_service.add_argument("--get-destination", action="store_true") parser_service.add_argument("--set-description", metavar="") parser_service.add_argument("--get-description", action="store_true") parser_service.add_argument("--set-short", metavar="") parser_service.add_argument("--get-short", action="store_true") parser.add_argument("--helper", metavar="") parser.add_argument("--family", metavar="") parser.add_argument("--module", metavar="") parser_helper = parser.add_mutually_exclusive_group() #parser_helper.add_argument("--get-ports", action="store_true") parser_helper.add_argument("--get-helpers", action="store_true") parser_helper.add_argument("--set-module", metavar="") parser_helper.add_argument("--get-module", action="store_true") #parser_helper.add_argument("--query-module", metavar="") parser_helper.add_argument("--set-family", metavar="|''", nargs="*") parser_helper.add_argument("--get-family", action="store_true") parser.add_argument("--direct", action="store_true") # not possible to have sequences of options here parser_direct = parser.add_mutually_exclusive_group() parser_direct.add_argument("--passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--add-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--remove-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--query-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--get-passthroughs", nargs=1, metavar=("{ ipv4 | ipv6 | eb }")) parser_direct.add_argument("--get-all-passthroughs", action="store_true") parser_direct.add_argument("--add-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--remove-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--query-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--get-all-chains", action="store_true") parser_direct.add_argument("--get-chains", nargs=2, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--add-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--remove-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--remove-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--query-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--get-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--get-all-rules", action="store_true") ############################################################################## args = sys.argv[1:] if len(sys.argv) > 1: i = -1 if '--passthrough' in args: i = args.index('--passthrough') + 1 elif '--add-passthrough' in args: i = args.index('--add-passthrough') + 1 elif '--remove-passthrough' in args: i = args.index('--remove-passthrough') + 1 elif '--query-passthrough' in args: i = args.index('--query-passthrough') + 1 elif '--add-rule' in args: i = args.index('--add-rule') + 4 elif '--remove-rule' in args: i = args.index('--remove-rule') + 4 elif '--query-rule' in args: i = args.index('--query-rule') + 4 # join into one argument to prevent parser from parsing each iptables # option, because they can conflict with firewall-cmd options # # e.g. --delete (iptables) and --delete-* (firewall-cmd) if (i > -1) and (i < len(args) - 1): aux_args = args[:] args = aux_args[:i+1] # all but not args.append(joinArgs(aux_args[i+1:])) # add as one arg a = parser.parse_args(args) options_standalone = a.help or a.version or \ a.state or a.reload or a.complete_reload or a.runtime_to_permanent or \ a.panic_on or a.panic_off or a.query_panic or \ a.lockdown_on or a.lockdown_off or a.query_lockdown or \ a.get_default_zone or a.set_default_zone or \ a.get_active_zones or a.get_ipset_types or \ a.get_log_denied or a.set_log_denied or \ a.get_automatic_helpers or a.set_automatic_helpers options_desc_xml_file = a.set_description or a.get_description or \ a.set_short or a.get_short options_lockdown_whitelist = \ a.list_lockdown_whitelist_commands or a.add_lockdown_whitelist_command or \ a.remove_lockdown_whitelist_command or \ a.query_lockdown_whitelist_command or \ a.list_lockdown_whitelist_contexts or a.add_lockdown_whitelist_context or \ a.remove_lockdown_whitelist_context or \ a.query_lockdown_whitelist_context or \ a.list_lockdown_whitelist_uids or a.add_lockdown_whitelist_uid is not None or \ a.remove_lockdown_whitelist_uid is not None or \ a.query_lockdown_whitelist_uid is not None or \ a.list_lockdown_whitelist_users or a.add_lockdown_whitelist_user or \ a.remove_lockdown_whitelist_user or \ a.query_lockdown_whitelist_user options_config = a.get_zones or a.get_services or a.get_icmptypes or \ options_lockdown_whitelist or a.list_all_zones or \ a.get_zone_of_interface or a.get_zone_of_source or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.info_helper or \ a.get_helpers options_zone_action_action = \ a.add_service or a.remove_service or a.query_service or \ a.add_port or a.remove_port or a.query_port or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.add_source_port or a.remove_source_port or a.query_source_port or \ a.add_icmp_block or a.remove_icmp_block or a.query_icmp_block or \ a.add_forward_port or a.remove_forward_port or a.query_forward_port options_zone_interfaces_sources = \ a.list_interfaces or a.change_interface or \ a.add_interface or a.remove_interface or a.query_interface or \ a.list_sources or a.change_source or \ a.add_source or a.remove_source or a.query_source options_zone_adapt_query = \ a.add_rich_rule or a.remove_rich_rule or a.query_rich_rule or \ a.add_masquerade or a.remove_masquerade or a.query_masquerade or \ a.list_services or a.list_ports or a.list_protocols or \ a.list_source_ports or \ a.list_icmp_blocks or a.list_forward_ports or a.list_rich_rules or \ a.add_icmp_block_inversion or a.remove_icmp_block_inversion or \ a.query_icmp_block_inversion or \ a.list_all or a.get_target or a.set_target options_zone_ops = options_zone_interfaces_sources or \ options_zone_action_action or options_zone_adapt_query options_zone = a.zone or a.timeout != "0" or options_zone_ops or \ options_desc_xml_file options_ipset = a.add_entry or a.remove_entry or a.query_entry or \ a.get_entries or a.add_entries_from_file or \ a.remove_entries_from_file or options_desc_xml_file options_icmptype = a.add_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_service = a.add_port or a.remove_port or a.query_port or \ a.get_ports or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.get_protocols or \ a.add_source_port or a.remove_source_port or \ a.query_source_port or a.get_source_ports or \ a.add_module or a.remove_module or a.query_module or \ a.get_modules or \ a.set_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_helper = a.add_port or a.remove_port or a.query_port or \ a.get_ports or a.set_module or a.get_module or \ a.set_family or a.get_family or \ options_desc_xml_file options_permanent = a.permanent or options_config or \ a.zone or options_zone_ops or \ a.ipset or options_ipset or \ a.helper or options_helper options_permanent_only = a.new_icmptype or a.delete_icmptype or \ a.new_icmptype_from_file or \ a.load_icmptype_defaults or \ a.new_service or a.delete_service or \ a.new_service_from_file or \ a.load_service_defaults or \ a.new_zone or a.delete_zone or \ a.new_zone_from_file or \ a.load_zone_defaults or \ a.new_ipset or a.delete_ipset or \ a.new_ipset_from_file or \ a.load_ipset_defaults or \ a.new_helper or a.delete_helper or \ a.new_helper_from_file or \ a.load_helper_defaults or \ (a.icmptype and options_icmptype) or \ (a.service and options_service) or \ (a.helper and options_helper) or \ a.path_zone or a.path_icmptype or a.path_service or \ a.path_ipset or a.path_helper or options_desc_xml_file options_direct = a.passthrough or \ a.add_chain or a.remove_chain or a.query_chain or \ a.get_chains or a.get_all_chains or \ a.add_rule or a.remove_rule or a.remove_rules or a.query_rule or \ a.get_rules or a.get_all_rules or \ a.add_passthrough or a.remove_passthrough or a.query_passthrough or \ a.get_passthroughs or a.get_all_passthroughs options_require_permanent = options_permanent_only or \ a.get_target or a.set_target # these are supposed to only write out some output options_list_get = a.help or a.version or a.list_all or a.list_all_zones or \ a.list_lockdown_whitelist_commands or a.list_lockdown_whitelist_contexts or \ a.list_lockdown_whitelist_uids or a.list_lockdown_whitelist_users or \ a.list_services or a.list_ports or a.list_protocols or a.list_icmp_blocks or \ a.list_forward_ports or a.list_rich_rules or a.list_interfaces or \ a.list_sources or a.get_default_zone or a.get_active_zones or \ a.get_zone_of_interface or a.get_zone_of_source or a.get_zones or \ a.get_services or a.get_icmptypes or a.get_target or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.get_entries or \ a.info_helper or a.get_helpers or \ a.get_destinations or a.get_description # Set quiet and verbose cmd = FirewallCommand(a.quiet, a.verbose) def myexcepthook(exctype, value, traceback): cmd.exception_handler(str(value)) sys.excepthook = myexcepthook # Check various impossible combinations of options if not (options_standalone or options_ipset or \ options_icmptype or options_service or options_helper or \ options_config or options_zone_ops or \ options_direct or options_permanent_only): cmd.fail(parser.format_usage() + "No option specified.") if options_standalone and (options_zone or options_permanent or \ options_direct or options_permanent_only or\ options_ipset): cmd.fail(parser.format_usage() + "Can't use stand-alone options with other options.") if options_ipset and not options_desc_xml_file and not a.ipset: cmd.fail(parser.format_usage() + "No ipset specified.") if (options_icmptype and not a.icmptype) and \ not (options_service and a.service) and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No icmptype specified.") if (options_helper and not a.helper) and \ not (options_service and a.service) and \ not options_zone and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No helper specified.") if (options_direct or options_permanent_only) and \ (options_zone and not a.zone) and (options_service and not a.service) and \ (options_icmptype and a.icmptype) and not options_desc_xml_file: cmd.fail(parser.format_usage() + "Can't be used with --zone.") if (a.direct and not options_direct) or (options_direct and not a.direct): cmd.fail(parser.format_usage() + "Wrong usage of 'direct' options.") if a.name and not (a.new_zone_from_file or a.new_service_from_file or \ a.new_ipset_from_file or a.new_icmptype_from_file or \ a.new_helper_from_file): cmd.fail(parser.format_usage() + "Wrong usage of '--name' option.") if options_require_permanent and not a.permanent: cmd.fail(parser.format_usage() + "Option can be used only with --permanent.") if options_config and options_zone: cmd.fail(parser.format_usage() + "Wrong usage of --get-zones | --get-services | --get-icmptypes.") if a.timeout != "0": value = 0 unit = 's' if len(a.timeout) < 1: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) elif len(a.timeout) == 1: if a.timeout.isdigit(): value = int (a.timeout[0]) else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) elif len(a.timeout) > 1: if a.timeout.isdigit(): value = int(a.timeout) unit = 's' else: if a.timeout[:-1].isdigit(): value = int (a.timeout[:-1]) else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) unit = a.timeout[-1:].lower() if unit == 's': a.timeout = value elif unit == 'm': a.timeout = value * 60 elif unit == 'h': a.timeout = value * 60 * 60 else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) else: a.timeout = 0 if a.timeout and not (a.add_service or a.add_port or a.add_protocol or \ a.add_icmp_block or a.add_forward_port or \ a.add_source_port or a.add_masquerade or a.add_rich_rule): cmd.fail(parser.format_usage() + "Wrong --timeout usage") if a.permanent: if a.timeout: cmd.fail(parser.format_usage() + "Can't specify timeout for permanent action.") if options_config and not a.zone: pass elif options_permanent: pass else: cmd.fail(parser.format_usage() + "Wrong --permanent usage.") if a.quiet and options_list_get: # it makes no sense to use --quiet with these options a.quiet = False cmd.set_quiet(a.quiet) cmd.fail("-q/--quiet can't be used with this option(s)") if a.help: __usage() sys.exit(0) zone = a.zone try: fw = FirewallClient() except FirewallError as msg: code = FirewallError.get_code(str(msg)) cmd.print_and_exit("Error: %s" % msg, code) fw.setExceptionHandler(cmd.exception_handler) if fw.connected == False: if a.state: cmd.print_and_exit ("not running", errors.NOT_RUNNING) else: cmd.print_and_exit ("FirewallD is not running", errors.NOT_RUNNING) cmd.set_fw(fw) if options_zone_ops and not zone and not \ (a.service and options_service) and not \ (a.helper and options_helper): default = fw.getDefaultZone() cmd.print_if_verbose("No zone specified, using default zone, i.e. '%s'" % default) active = list(fw.getActiveZones().keys()) if active and default not in active: cmd.print_msg("""You're performing an operation over default zone ('%s'), but your connections/interfaces are in zone '%s' (see --get-active-zones) You most likely need to use --zone=%s option.\n""" % (default, ",".join(active), active[0])) if a.permanent: if a.get_ipsets: cmd.print_and_exit(" ".join(fw.config().getIPSetNames())) elif a.new_ipset: if not a.type: cmd.fail(parser.format_usage() + "No type specified.") settings = FirewallClientIPSetSettings() settings.setType(a.type) if a.option: for opt in a.option: settings.addOption(*cmd.parse_ipset_option(opt)) if a.family: settings.addOption("family", a.family) config = fw.config() config.addIPSet(a.new_ipset, settings) elif a.new_ipset_from_file: filename = os.path.basename(a.new_ipset_from_file) dirname = os.path.dirname(a.new_ipset_from_file) if dirname == "": dirname = "./" try: obj = ipset_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load ipset file '%s': %s" % \ (a.new_ipset_from_file, msg)) except IOError as msg: cmd.fail("Failed to load ipset file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addIPSet(obj.name, obj.export_config()) elif a.delete_ipset: ipset = fw.config().getIPSetByName(a.delete_ipset) ipset.remove() elif a.load_ipset_defaults: ipset = fw.config().getIPSetByName(a.load_ipset_defaults) ipset.loadDefaults() elif a.info_ipset: ipset = fw.config().getIPSetByName(a.info_ipset) cmd.print_ipset_info(a.info_ipset, ipset.getSettings()) sys.exit(0) elif a.path_ipset: ipset = fw.config().getIPSetByName(a.path_ipset) cmd.print_and_exit("%s/%s" % (ipset.get_property("path"), ipset.get_property("filename"))) elif a.ipset: ipset = fw.config().getIPSetByName(a.ipset) settings = ipset.getSettings() if a.add_entry: cmd.add_sequence(a.add_entry, settings.addEntry, settings.queryEntry, None, "'%s'") ipset.update(settings) elif a.remove_entry: cmd.remove_sequence(a.remove_entry, settings.removeEntry, settings.queryEntry, None, "'%s'") ipset.update(settings) elif a.query_entry: cmd.query_sequence(a.query_entry, settings.queryEntry, None, "'%s'") elif a.get_entries: l = settings.getEntries() cmd.print_and_exit("\n".join(l)) elif a.add_entries_from_file: changed = False for filename in a.add_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.add_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose( "Warning: ALREADY_ENABLED: %s" % entry) if changed: settings.setEntries(old_entries) if changed: ipset.update(settings) elif a.remove_entries_from_file: changed = False for filename in a.remove_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.remove_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose("Warning: NOT_ENABLED: %s" % entry) if changed: settings.setEntries(old_entries) if changed: ipset.update(settings) elif a.set_description: settings.setDescription(a.set_description) ipset.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) ipset.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.get_zones: cmd.print_and_exit(" ".join(fw.config().getZoneNames())) elif a.new_zone: config = fw.config() config.addZone(a.new_zone, FirewallClientZoneSettings()) elif a.new_zone_from_file: filename = os.path.basename(a.new_zone_from_file) dirname = os.path.dirname(a.new_zone_from_file) if dirname == "": dirname = "./" try: obj = zone_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load zone file '%s': %s" % \ (a.new_zone_from_file, msg)) except IOError as msg: cmd.fail("Failed to load zone file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addZone(obj.name, obj.export_config()) elif a.delete_zone: zone = fw.config().getZoneByName(a.delete_zone) zone.remove() elif a.load_zone_defaults: zone = fw.config().getZoneByName(a.load_zone_defaults) zone.loadDefaults() elif a.info_zone: zone = fw.config().getZoneByName(a.info_zone) cmd.print_zone_info(a.info_zone, zone.getSettings(), True) sys.exit(0) elif a.path_zone: zone = fw.config().getZoneByName(a.path_zone) cmd.print_and_exit("%s/%s" % (zone.get_property("path"), zone.get_property("filename"))) elif a.get_services: cmd.print_and_exit(" ".join(fw.config().getServiceNames())) elif a.new_service: config = fw.config() config.addService(a.new_service, FirewallClientServiceSettings()) elif a.new_service_from_file: filename = os.path.basename(a.new_service_from_file) dirname = os.path.dirname(a.new_service_from_file) if dirname == "": dirname = "./" try: obj = service_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load service file '%s': %s" % \ (a.new_service_from_file, msg)) except IOError as msg: cmd.fail("Failed to load service file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addService(obj.name, obj.export_config()) elif a.delete_service: service = fw.config().getServiceByName(a.delete_service) service.remove() elif a.load_service_defaults: service = fw.config().getServiceByName(a.load_service_defaults) service.loadDefaults() elif a.info_service: service = fw.config().getServiceByName(a.info_service) cmd.print_service_info(a.info_service, service.getSettings()) sys.exit(0) elif a.path_service: service = fw.config().getServiceByName(a.path_service) cmd.print_and_exit("%s/%s" % (service.get_property("path"), service.get_property("filename"))) elif a.get_helpers: cmd.print_and_exit(" ".join(fw.config().getHelperNames())) elif a.new_helper: if not a.module: cmd.fail(parser.format_usage() + "No module specified.") settings = FirewallClientHelperSettings() settings.setModule(a.module) if a.family: settings.setFamily(a.family) config = fw.config() config.addHelper(a.new_helper, settings) elif a.new_helper_from_file: filename = os.path.basename(a.new_helper_from_file) dirname = os.path.dirname(a.new_helper_from_file) if dirname == "": dirname = "./" try: obj = helper_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load helper file '%s': %s" % \ (a.new_helper_from_file, msg)) except IOError as msg: cmd.fail("Failed to load helper file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addHelper(obj.name, obj.export_config()) elif a.delete_helper: helper = fw.config().getHelperByName(a.delete_helper) helper.remove() elif a.load_helper_defaults: helper = fw.config().getHelperByName(a.load_helper_defaults) helper.loadDefaults() elif a.info_helper: helper = fw.config().getHelperByName(a.info_helper) cmd.print_helper_info(a.info_helper, helper.getSettings()) sys.exit(0) elif a.path_helper: helper = fw.config().getHelperByName(a.path_helper) cmd.print_and_exit("%s/%s" % (helper.get_property("path"), helper.get_property("filename"))) elif a.helper: helper = fw.config().getHelperByName(a.helper) settings = helper.getSettings() if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") helper.update(settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") helper.update(settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = helper.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.get_module: cmd.print_and_exit(settings.getModule()) elif a.set_module: settings.setModule(cmd.check_module(a.set_module)) helper.update(settings) elif a.get_family: cmd.print_and_exit(settings.getFamily()) elif a.set_family: settings.setFamily(cmd.check_helper_family(a.set_family[0])) helper.update(settings) elif a.set_description: settings.setDescription(a.set_description) helper.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) helper.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.get_icmptypes: cmd.print_and_exit(" ".join(fw.config().getIcmpTypeNames())) elif a.new_icmptype: config = fw.config() config.addIcmpType(a.new_icmptype, FirewallClientIcmpTypeSettings()) elif a.new_icmptype_from_file: filename = os.path.basename(a.new_icmptype_from_file) dirname = os.path.dirname(a.new_icmptype_from_file) if dirname == "": dirname = "./" try: obj = icmptype_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load icmptype file '%s': %s" % \ (a.new_icmptype_from_file, msg)) except IOError as msg: cmd.fail("Failed to load icmptype file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addIcmpType(obj.name, obj.export_config()) elif a.delete_icmptype: icmptype = fw.config().getIcmpTypeByName(a.delete_icmptype) icmptype.remove() elif a.load_icmptype_defaults: icmptype = fw.config().getIcmpTypeByName(a.load_icmptype_defaults) icmptype.loadDefaults() elif a.info_icmptype: icmptype = fw.config().getIcmpTypeByName(a.info_icmptype) cmd.print_icmptype_info(a.info_icmptype, icmptype.getSettings()) sys.exit(0) elif a.path_icmptype: icmptype = fw.config().getIcmpTypeByName(a.path_icmptype) cmd.print_and_exit("%s/%s" % (icmptype.get_property("path"), icmptype.get_property("filename"))) elif a.icmptype: icmptype = fw.config().getIcmpTypeByName(a.icmptype) settings = icmptype.getSettings() if a.add_destination: cmd.add_sequence(a.add_destination, settings.addDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") icmptype.update(settings) elif a.remove_destination: cmd.remove_sequence(a.remove_destination, settings.removeDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") icmptype.update(settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.check_destination_ipv , "'%s'") elif a.get_destinations: l = settings.getDestinations() if len(l) == 0: l = [ "ipv4", "ipv6" ] cmd.print_and_exit("\n".join(l)) elif a.set_description: settings.setDescription(a.set_description) icmptype.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) icmptype.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.service: service = fw.config().getServiceByName(a.service) settings = service.getSettings() if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") service.update(settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") service.update(settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = settings.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_protocol: cmd.add_sequence(a.add_protocol, settings.addProtocol, settings.queryProtocol, None, "'%s'") service.update(settings) elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, settings.removeProtocol, settings.queryProtocol, None, "'%s'") service.update(settings) elif a.query_protocol: cmd.query_sequence(a.query_protocol, settings.queryProtocol, None, "'%s'") elif a.get_protocols: l = settings.getProtocols() cmd.print_and_exit(" ".join(["%s" % protocol for protocol in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, settings.addSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") service.update(settings) elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, settings.removeSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") service.update(settings) elif a.query_source_port: cmd.query_sequence(a.query_source_port, settings.querySourcePort, cmd.parse_port, "%s/%s") elif a.get_source_ports: l = settings.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_module: cmd.add_sequence(a.add_module, settings.addModule, settings.queryModule, None, "'%s'") service.update(settings) elif a.remove_module: cmd.remove_sequence(a.remove_module, settings.removeModule, settings.queryModule, None, "'%s'") service.update(settings) elif a.query_module: cmd.query_sequence(a.query_module, settings.queryModule, None, "'%s'") elif a.get_modules: l = settings.getModules() cmd.print_and_exit(" ".join(["%s" % module for module in l])) elif a.set_destination: cmd.add_sequence(a.set_destination, settings.setDestination, settings.queryDestination, cmd.parse_service_destination, "%s:%s") service.update(settings) elif a.remove_destination: # special case for removeDestination: Only ipv, no address for ipv in a.remove_destination: cmd.check_destination_ipv(ipv) if ipv not in settings.getDestinations(): if len(a.remove_destination) > 1: cmd.print_warning("Warning: NOT_ENABLED: '%s'" % ipv) else: code = FirewallError.get_code("NOT_ENABLED") cmd.print_and_exit("Error: NOT_ENABLED: '%s'" % ipv, code) else: settings.removeDestination(ipv) service.update(settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.parse_service_destination, "'%s'") elif a.get_destinations: l = settings.getDestinations() cmd.print_and_exit(" ".join(["%s:%s" % (dest[0], dest[1]) for dest in l.items()])) elif a.set_description: settings.setDescription(a.set_description) service.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) service.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") # lockdown whitelist elif options_lockdown_whitelist: policies = fw.config().policies() # commands if a.list_lockdown_whitelist_commands: l = policies.getLockdownWhitelistCommands() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_command: cmd.add_sequence(a.add_lockdown_whitelist_command, policies.addLockdownWhitelistCommand, policies.queryLockdownWhitelistCommand, None, "'%s'") elif a.remove_lockdown_whitelist_command: cmd.remove_sequence(a.remove_lockdown_whitelist_command, policies.removeLockdownWhitelistCommand, policies.queryLockdownWhitelistCommand, None, "'%s'") elif a.query_lockdown_whitelist_command: cmd.query_sequence(a.query_lockdown_whitelist_command, policies.queryLockdownWhitelistCommand, None, "'%s'") # contexts elif a.list_lockdown_whitelist_contexts: l = policies.getLockdownWhitelistContexts() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_context: cmd.add_sequence(a.add_lockdown_whitelist_context, policies.addLockdownWhitelistContext, policies.queryLockdownWhitelistContext, None, "'%s'") elif a.remove_lockdown_whitelist_context: cmd.remove_sequence(a.remove_lockdown_whitelist_context, policies.removeLockdownWhitelistContext, policies.queryLockdownWhitelistContext, None, "'%s'") elif a.query_lockdown_whitelist_context: cmd.query_sequence(a.query_lockdown_whitelist_context, policies.queryLockdownWhitelistContext, None, "'%s'") # uids elif a.list_lockdown_whitelist_uids: l = policies.getLockdownWhitelistUids() cmd.print_and_exit(" ".join(map(str, l))) elif a.add_lockdown_whitelist_uid is not None: cmd.add_sequence(a.add_lockdown_whitelist_uid, policies.addLockdownWhitelistUid, policies.queryLockdownWhitelistUid, None, "%s") elif a.remove_lockdown_whitelist_uid is not None: cmd.remove_sequence(a.remove_lockdown_whitelist_uid, policies.removeLockdownWhitelistUid, policies.queryLockdownWhitelistUid, None, "%s") elif a.query_lockdown_whitelist_uid is not None: cmd.query_sequence(a.query_lockdown_whitelist_uid, policies.queryLockdownWhitelistUid, None, "%s") # users elif a.list_lockdown_whitelist_users: l = policies.getLockdownWhitelistUsers() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_user: cmd.add_sequence(a.add_lockdown_whitelist_user, policies.addLockdownWhitelistUser, policies.queryLockdownWhitelistUser, None, "%s") elif a.remove_lockdown_whitelist_user: cmd.remove_sequence(a.remove_lockdown_whitelist_user, policies.removeLockdownWhitelistUser, policies.queryLockdownWhitelistUser, None, "%s") elif a.query_lockdown_whitelist_user: cmd.query_sequence(a.query_lockdown_whitelist_user, policies.queryLockdownWhitelistUser, None, "'%s'") elif options_direct: direct = fw.config().direct() if a.passthrough: if len(a.passthrough) < 2: cmd.fail("usage: --permanent --direct --passthrough { ipv4 | ipv6 | eb } ") cmd.print_msg(direct.addPassthrough(cmd.check_ipv(a.passthrough[0]), splitArgs(a.passthrough[1]))) if a.add_passthrough: if len(a.add_passthrough) < 2: cmd.fail("usage: --permanent --direct --add-passthrough { ipv4 | ipv6 | eb } ") cmd.print_msg(direct.addPassthrough(cmd.check_ipv(a.add_passthrough[0]), splitArgs(a.add_passthrough[1]))) elif a.remove_passthrough: if len(a.remove_passthrough) < 2: cmd.fail("usage: --permanent --direct --remove-passthrough { ipv4 | ipv6 | eb } ") direct.removePassthrough(cmd.check_ipv(a.remove_passthrough[0]), splitArgs(a.remove_passthrough[1])) elif a.query_passthrough: if len(a.query_passthrough) < 2: cmd.fail("usage: --permanent --direct --query-passthrough { ipv4 | ipv6 | eb } ") cmd.print_query_result( direct.queryPassthrough(cmd.check_ipv(a.query_passthrough[0]), splitArgs(a.query_passthrough[1]))) sys.exit(0) elif a.get_passthroughs: rules = direct.getPassthroughs(cmd.check_ipv(a.get_passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) elif a.get_all_passthroughs: for (ipv, rule) in direct.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif a.add_chain: direct.addChain(cmd.check_ipv(a.add_chain[0]), a.add_chain[1], a.add_chain[2]) elif a.remove_chain: direct.removeChain(cmd.check_ipv(a.remove_chain[0]), a.remove_chain[1], a.remove_chain[2]) elif a.query_chain: cmd.print_query_result( direct.queryChain(cmd.check_ipv(a.query_chain[0]), a.query_chain[1], a.query_chain[2])) sys.exit(0) elif a.get_chains: cmd.print_and_exit( " ".join(direct.getChains(cmd.check_ipv(a.get_chains[0]), a.get_chains[1]))) sys.exit(0) elif a.get_all_chains: chains = direct.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) elif a.add_rule: if len(a.add_rule) < 5: cmd.fail("usage: --permanent --direct --add-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.add_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --add-rule { ipv4 | ipv6 | eb }
") direct.addRule(cmd.check_ipv(a.add_rule[0]), a.add_rule[1], a.add_rule[2], priority, splitArgs(a.add_rule[4])) elif a.remove_rule: if len(a.remove_rule) < 5: cmd.fail("usage: --permanent --direct --remove-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.remove_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --remove-rule { ipv4 | ipv6 | eb }
") direct.removeRule(cmd.check_ipv(a.remove_rule[0]), a.remove_rule[1], a.remove_rule[2], priority, splitArgs(a.remove_rule[4])) elif a.remove_rules: if len(a.remove_rules) < 3: cmd.fail("usage: --permanent --direct --remove-rules { ipv4 | ipv6 | eb }
") direct.removeRules(cmd.check_ipv(a.remove_rules[0]), a.remove_rules[1], a.remove_rules[2]) elif a.query_rule: if len(a.query_rule) < 5: cmd.fail("usage: --permanent --direct --query-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.query_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --query-rule { ipv4 | ipv6 | eb }
") cmd.print_query_result( direct.queryRule(cmd.check_ipv(a.query_rule[0]), a.query_rule[1], a.query_rule[2], priority, splitArgs(a.query_rule[4]))) sys.exit(0) elif a.get_rules: rules = direct.getRules(cmd.check_ipv(a.get_rules[0]), a.get_rules[1], a.get_rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif a.get_all_rules: rules = direct.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) else: if zone == "": zone = fw.getDefaultZone() fw_zone = fw.config().getZoneByName(zone) # interface if a.list_interfaces: l = fw_zone.getInterfaces() cmd.print_and_exit(" ".join(l)) elif a.get_zone_of_interface: for interface in a.get_zone_of_interface: zone = fw.config().getZoneOfInterface(interface) if zone: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: %s" % (interface, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: no zone" % interface) else: cmd.fail("no zone") elif a.change_interface: interfaces = [ ] for interface in a.change_interface: if not try_set_zone_of_interface(zone, interface): interfaces.append(interface) for interface in interfaces: old_zone_name = fw.config().getZoneOfInterface(interface) if old_zone_name != zone: if old_zone_name: old_zone_obj = fw.config().getZoneByName(old_zone_name) old_zone_obj.removeInterface(interface)# remove from old fw_zone.addInterface(interface) # add to new elif a.add_interface: interfaces = [ ] for interface in a.add_interface: if not try_set_zone_of_interface(a.zone, interface): interfaces.append(interface) cmd.add_sequence(interfaces, fw_zone.addInterface, fw_zone.queryInterface, None, "'%s'") elif a.remove_interface: interfaces = [ ] for interface in a.remove_interface: if not try_set_zone_of_interface("", interface): interfaces.append(interface) cmd.remove_sequence(interfaces, fw_zone.removeInterface, fw_zone.queryInterface, None, "'%s'") elif a.query_interface: cmd.query_sequence(a.query_interface, fw_zone.queryInterface, None, "'%s'") # source if a.list_sources: sources = fw_zone.getSources() cmd.print_and_exit(" ".join(sources)) elif a.get_zone_of_source: for source in a.get_zone_of_source: zone = fw.config().getZoneOfSource(source) if zone: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: %s" % (source, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: no zone" % source) else: cmd.fail("no zone") elif a.change_source: for source in a.change_source: old_zone_name = fw.config().getZoneOfSource(source) if old_zone_name != zone: if old_zone_name: old_zone_obj = fw.config().getZoneByName(old_zone_name) old_zone_obj.removeSource(source) # remove from old fw_zone.addSource(source) # add to new elif a.add_source: cmd.add_sequence(a.add_source, fw_zone.addSource, fw_zone.querySource, None, "'%s'") elif a.remove_source: cmd.remove_sequence(a.remove_source, fw_zone.removeSource, fw_zone.querySource, None, "'%s'") elif a.query_source: cmd.query_sequence(a.query_source, fw_zone.querySource, None, "'%s'") # rich rules if a.list_rich_rules: l = fw_zone.getRichRules() cmd.print_and_exit("\n".join(l)) elif a.add_rich_rule: cmd.add_sequence(a.add_rich_rule, fw_zone.addRichRule, fw_zone.queryRichRule, None, "'%s'") elif a.remove_rich_rule: cmd.remove_sequence(a.remove_rich_rule, fw_zone.removeRichRule, fw_zone.queryRichRule, None, "'%s'") elif a.query_rich_rule: cmd.query_sequence(a.query_rich_rule, fw_zone.queryRichRule, None, "'%s'") # service if a.list_services: l = fw_zone.getServices() cmd.print_and_exit(" ".join(l)) elif a.add_service: cmd.add_sequence(a.add_service, fw_zone.addService, fw_zone.queryService, None, "'%s'") elif a.remove_service: cmd.remove_sequence(a.remove_service, fw_zone.removeService, fw_zone.queryService, None, "'%s'") elif a.query_service: cmd.query_sequence(a.query_service, fw_zone.queryService, None, "'%s'") # port elif a.list_ports: l = fw_zone.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_port: cmd.add_sequence(a.add_port, fw_zone.addPort, fw_zone.queryPort, cmd.parse_port, "%s/%s") elif a.remove_port: cmd.remove_sequence(a.remove_port, fw_zone.removePort, fw_zone.queryPort, cmd.parse_port, "%s/%s") elif a.query_port: cmd.query_sequence(a.query_port, fw_zone.queryPort, cmd.parse_port, "%s/%s") # protocol elif a.list_protocols: l = fw_zone.getProtocols() cmd.print_and_exit(" ".join(["%s" % protocol for protocol in l])) elif a.add_protocol: cmd.add_sequence(a.add_protocol, fw_zone.addProtocol, fw_zone.queryProtocol, None, "'%s'") elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, fw_zone.removeProtocol, fw_zone.queryProtocol, None, "'%s'") elif a.query_protocol: cmd.query_sequence(a.query_protocol, fw_zone.queryProtocol, None, "'%s'") # source port elif a.list_source_ports: l = fw_zone.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, fw_zone.addSourcePort, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, fw_zone.removeSourcePort, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") elif a.query_source_port: cmd.query_sequence(a.query_source_port, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") # masquerade elif a.add_masquerade: fw_zone.addMasquerade() elif a.remove_masquerade: fw_zone.removeMasquerade() elif a.query_masquerade: cmd.print_query_result(fw_zone.queryMasquerade()) # forward port elif a.list_forward_ports: l = fw_zone.getForwardPorts() cmd.print_and_exit("\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l])) elif a.add_forward_port: cmd.add_sequence(a.add_forward_port, fw_zone.addForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.remove_forward_port: cmd.remove_sequence(a.remove_forward_port, fw_zone.removeForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.query_forward_port: cmd.query_sequence(a.query_forward_port, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") # block icmp elif a.list_icmp_blocks: l = fw_zone.getIcmpBlocks() cmd.print_and_exit(" ".join(l)) elif a.add_icmp_block: cmd.add_sequence(a.add_icmp_block, fw_zone.addIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") elif a.remove_icmp_block: cmd.remove_sequence(a.remove_icmp_block, fw_zone.removeIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") elif a.query_icmp_block: cmd.query_sequence(a.query_icmp_block, fw_zone.queryIcmpBlock, None, "'%s'") # icmp block inversion elif a.add_icmp_block_inversion: fw_zone.addIcmpBlockInversion() elif a.remove_icmp_block_inversion: fw_zone.removeIcmpBlockInversion() elif a.query_icmp_block_inversion: cmd.print_query_result(fw_zone.queryIcmpBlockInversion()) # zone target elif a.get_target: target = fw_zone.getTarget() cmd.print_and_exit(target if target != "%%REJECT%%" else "REJECT") elif a.set_target: fw_zone.setTarget(a.set_target if a.set_target != "REJECT" else "%%REJECT%%") # list all zone settings elif a.list_all: cmd.print_zone_info(zone, fw_zone.getSettings()) sys.exit(0) # list everything elif a.list_all_zones: names = fw.config().getZoneNames() for zone in sorted(names): settings = fw.config().getZoneByName(zone).getSettings() cmd.print_zone_info(zone, settings) cmd.print_msg("") sys.exit(0) # set zone description elif a.set_description: settings = fw.config().getZoneByName(zone).getSettings() settings.setDescription(a.set_description) fw_zone.update(settings) # get zone description elif a.get_description: settings = fw.config().getZoneByName(zone).getSettings() cmd.print_and_exit(settings.getDescription()) # set zone short description elif a.set_short: settings = fw.config().getZoneByName(zone).getSettings() settings.setShort(a.set_short) fw_zone.update(settings) # get zone short description elif a.get_short: settings = fw.config().getZoneByName(zone).getSettings() cmd.print_and_exit(settings.getShort()) elif a.version: cmd.print_and_exit(fw.get_property("version")) elif a.state: state = fw.get_property("state") if state == "RUNNING": cmd.print_and_exit ("running") else: cmd.print_and_exit ("not running", errors.NOT_RUNNING) elif a.get_log_denied: cmd.print_and_exit(fw.getLogDenied()) elif a.set_log_denied: fw.setLogDenied(a.set_log_denied) elif a.get_automatic_helpers: cmd.print_and_exit(fw.getAutomaticHelpers()) elif a.set_automatic_helpers: fw.setAutomaticHelpers(a.set_automatic_helpers) elif a.get_ipset_types: types = fw.get_property("IPSetTypes") cmd.print_and_exit(" ".join(sorted(types))) elif a.reload: fw.reload() elif a.complete_reload: fw.complete_reload() elif a.runtime_to_permanent: fw.runtimeToPermanent() elif a.direct: if a.passthrough: if len(a.passthrough) < 2: cmd.fail("usage: --direct --passthrough { ipv4 | ipv6 | eb } ") msg = fw.passthrough(cmd.check_ipv(a.passthrough[0]), splitArgs(a.passthrough[1])) if msg: sys.stdout.write(msg + "\n") elif a.add_passthrough: if len(a.add_passthrough) < 2: cmd.fail("usage: --direct --add-passthrough { ipv4 | ipv6 | eb } ") fw.addPassthrough(cmd.check_ipv(a.add_passthrough[0]), splitArgs(a.add_passthrough[1])) elif a.remove_passthrough: if len(a.remove_passthrough) < 2: cmd.fail("usage: --direct --remove-passthrough { ipv4 | ipv6 | eb } ") fw.removePassthrough(cmd.check_ipv(a.remove_passthrough[0]), splitArgs(a.remove_passthrough[1])) elif a.query_passthrough: if len(a.query_passthrough) < 2: cmd.fail("usage: --direct --query-passthrough { ipv4 | ipv6 | eb } ") cmd.print_query_result( fw.queryPassthrough(cmd.check_ipv(a.query_passthrough[0]), splitArgs(a.query_passthrough[1]))) elif a.get_passthroughs: rules = fw.getPassthroughs(cmd.check_ipv(a.get_passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) elif a.get_all_passthroughs: for (ipv, rule) in fw.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif a.add_chain: fw.addChain(cmd.check_ipv(a.add_chain[0]), a.add_chain[1], a.add_chain[2]) elif a.remove_chain: fw.removeChain(cmd.check_ipv(a.remove_chain[0]), a.remove_chain[1], a.remove_chain[2]) elif a.query_chain: cmd.print_query_result(fw.queryChain(cmd.check_ipv(a.query_chain[0]), a.query_chain[1], a.query_chain[2])) elif a.get_chains: cmd.print_and_exit(" ".join(fw.getChains(cmd.check_ipv(a.get_chains[0]), a.get_chains[1]))) elif a.get_all_chains: chains = fw.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) elif a.add_rule: if len(a.add_rule) < 5: cmd.fail("usage: --direct --add-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.add_rule[3]) except ValueError: cmd.fail("usage: --direct --add-rule { ipv4 | ipv6 | eb }
") fw.addRule(cmd.check_ipv(a.add_rule[0]), a.add_rule[1], a.add_rule[2], priority, splitArgs(a.add_rule[4])) elif a.remove_rule: if len(a.remove_rule) < 5: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.remove_rule[3]) except ValueError: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb }
") fw.removeRule(cmd.check_ipv(a.remove_rule[0]), a.remove_rule[1], a.remove_rule[2], priority, splitArgs(a.remove_rule[4])) elif a.remove_rules: if len(a.remove_rules) < 3: cmd.fail("usage: --direct --remove-rules { ipv4 | ipv6 | eb }
") fw.removeRules(cmd.check_ipv(a.remove_rules[0]), a.remove_rules[1], a.remove_rules[2]) elif a.query_rule: if len(a.query_rule) < 5: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.query_rule[3]) except ValueError: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb }
") cmd.print_query_result( fw.queryRule(cmd.check_ipv(a.query_rule[0]), a.query_rule[1], a.query_rule[2], priority, splitArgs(a.query_rule[4]))) elif a.get_rules: rules = fw.getRules(cmd.check_ipv(a.get_rules[0]), a.get_rules[1], a.get_rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif a.get_all_rules: rules = fw.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) elif a.get_default_zone: cmd.print_and_exit(fw.getDefaultZone()) elif a.set_default_zone: fw.setDefaultZone(a.set_default_zone) elif a.get_zones: cmd.print_and_exit(" ".join(fw.getZones())) elif a.get_active_zones: zones = fw.getActiveZones() for zone in zones: cmd.print_msg("%s" % zone) for x in [ "interfaces", "sources" ]: if x in zones[zone]: cmd.print_msg(" %s: %s" % (x, " ".join(zones[zone][x]))) sys.exit(0) elif a.get_services: l = fw.listServices() cmd.print_and_exit(" ".join(l)) elif a.get_icmptypes: l = fw.listIcmpTypes() cmd.print_and_exit(" ".join(l)) # panic elif a.panic_on: fw.enablePanicMode() elif a.panic_off: fw.disablePanicMode() elif a.query_panic: cmd.print_query_result(fw.queryPanicMode()) # ipset elif a.get_ipsets: ipsets = fw.getIPSets() cmd.print_and_exit(" ".join(sorted(ipsets))) elif a.info_ipset: cmd.print_ipset_info(a.info_ipset, fw.getIPSetSettings(a.info_ipset)) sys.exit(0) elif a.add_entry: cmd.x_add_sequence(a.ipset, a.add_entry, fw.addEntry, fw.queryEntry, None, "'%s'") elif a.remove_entry: cmd.x_remove_sequence(a.ipset, a.remove_entry, fw.removeEntry, fw.queryEntry, None, "'%s'") elif a.query_entry: cmd.x_query_sequence(a.ipset, a.query_entry, fw.queryEntry, None, "'%s'") elif a.get_entries: l = fw.getEntries(a.ipset) cmd.print_and_exit("\n".join(l)) elif a.add_entries_from_file: old_entries = fw.getEntries(a.ipset) changed = False for filename in a.add_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.add_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose("Warning: ALREADY_ENABLED: %s" % entry) if changed: fw.setEntries(a.ipset, old_entries) elif a.remove_entries_from_file: old_entries = fw.getEntries(a.ipset) changed = False for filename in a.remove_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.remove_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose("Warning: NOT_ENABLED: %s" % entry) if changed: fw.setEntries(a.ipset, old_entries) # helper elif a.get_helpers: helpers = fw.getHelpers() cmd.print_and_exit(" ".join(sorted(helpers))) elif a.info_helper: cmd.print_helper_info(a.info_helper, fw.getHelperSettings(a.info_helper)) sys.exit(0) # lockdown elif a.lockdown_on: fw.config().set_property("Lockdown", "yes") # permanent fw.enableLockdown() # runtime elif a.lockdown_off: fw.config().set_property("Lockdown", "no") # permanent fw.disableLockdown() # runtime elif a.query_lockdown: cmd.print_query_result(fw.queryLockdown()) # runtime #lockdown = fw.config().get_property("Lockdown") #cmd.print_query_result(lockdown.lower() in [ "yes", "true" ]) # lockdown whitelist # commands elif a.list_lockdown_whitelist_commands: l = fw.getLockdownWhitelistCommands() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_command: cmd.add_sequence(a.add_lockdown_whitelist_command, fw.addLockdownWhitelistCommand, fw.queryLockdownWhitelistCommand, None, "'%s'") elif a.remove_lockdown_whitelist_command: cmd.remove_sequence(a.remove_lockdown_whitelist_command, fw.removeLockdownWhitelistCommand, fw.queryLockdownWhitelistCommand, None, "'%s'") elif a.query_lockdown_whitelist_command: cmd.query_sequence(a.query_lockdown_whitelist_command, fw.queryLockdownWhitelistCommand, None, "'%s'") # contexts elif a.list_lockdown_whitelist_contexts: l = fw.getLockdownWhitelistContexts() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_context: cmd.add_sequence(a.add_lockdown_whitelist_context, fw.addLockdownWhitelistContext, fw.queryLockdownWhitelistContext, None, "'%s'") elif a.remove_lockdown_whitelist_context: cmd.remove_sequence(a.remove_lockdown_whitelist_context, fw.removeLockdownWhitelistContext, fw.queryLockdownWhitelistContext, None, "'%s'") elif a.query_lockdown_whitelist_context: cmd.query_sequence(a.query_lockdown_whitelist_context, fw.queryLockdownWhitelistContext, None, "'%s'") # uids elif a.list_lockdown_whitelist_uids: l = fw.getLockdownWhitelistUids() cmd.print_and_exit(" ".join(map(str, l))) elif a.add_lockdown_whitelist_uid is not None: cmd.add_sequence(a.add_lockdown_whitelist_uid, fw.addLockdownWhitelistUid, fw.queryLockdownWhitelistUid, None, "'%s'") elif a.remove_lockdown_whitelist_uid is not None: cmd.remove_sequence(a.remove_lockdown_whitelist_uid, fw.removeLockdownWhitelistUid, fw.queryLockdownWhitelistUid, None, "'%s'") elif a.query_lockdown_whitelist_uid is not None: cmd.query_sequence(a.query_lockdown_whitelist_uid, fw.queryLockdownWhitelistUid, None, "'%s'") # users elif a.list_lockdown_whitelist_users: l = fw.getLockdownWhitelistUsers() cmd.print_and_exit(" ".join(l)) elif a.add_lockdown_whitelist_user: cmd.add_sequence(a.add_lockdown_whitelist_user, fw.addLockdownWhitelistUser, fw.queryLockdownWhitelistUser, None, "'%s'") elif a.remove_lockdown_whitelist_user: cmd.remove_sequence(a.remove_lockdown_whitelist_user, fw.removeLockdownWhitelistUser, fw.queryLockdownWhitelistUser, None, "'%s'") elif a.query_lockdown_whitelist_user: cmd.query_sequence(a.query_lockdown_whitelist_user, fw.queryLockdownWhitelistUser, None, "'%s'") # interface elif a.list_interfaces: l = fw.getInterfaces(zone) cmd.print_and_exit(" ".join(l)) elif a.get_zone_of_interface: for interface in a.get_zone_of_interface: zone = fw.getZoneOfInterface(interface) if zone: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: %s" % (interface, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: no zone" % interface) else: cmd.fail("no zone") elif a.add_interface: interfaces = [ ] for interface in a.add_interface: if not try_set_zone_of_interface(zone, interface): interfaces.append(interface) cmd.x_add_sequence(zone, interfaces, fw.addInterface, fw.queryInterface, None, "'%s'") elif a.change_interface: interfaces = [ ] for interface in a.change_interface: if not try_set_zone_of_interface(zone, interface): interfaces.append(interface) cmd.x_add_sequence(zone, interfaces, fw.changeZoneOfInterface, fw.queryInterface, None, "'%s'") elif a.remove_interface: interfaces = [ ] for interface in a.remove_interface: if not try_set_zone_of_interface("", interface): interfaces.append(interface) cmd.x_remove_sequence(zone, interfaces, fw.removeInterface, fw.queryInterface, None, "'%s'") elif a.query_interface: cmd.x_query_sequence(zone, a.query_interface, fw.queryInterface, None, "'%s'") # source elif a.list_sources: sources = fw.getSources(zone) cmd.print_and_exit(" ".join(sources)) elif a.get_zone_of_source: for source in a.get_zone_of_source: zone = fw.getZoneOfSource(source) if zone: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: %s" % (source, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: no zone" % source) else: cmd.fail("no zone") sys.exit(0) elif a.add_source: cmd.x_add_sequence(zone, a.add_source, fw.addSource, fw.querySource, None, "'%s'") elif a.change_source: cmd.x_add_sequence(zone, a.change_source, fw.changeZoneOfSource, fw.querySource, None, "'%s'") elif a.remove_source: cmd.x_remove_sequence(zone, a.remove_source, fw.removeSource, fw.querySource, None, "'%s'") elif a.query_source: cmd.x_query_sequence(zone, a.query_source, fw.querySource, None, "'%s'") # rich rules elif a.list_rich_rules: l = fw.getRichRules(zone) cmd.print_and_exit("\n".join(l)) elif a.add_rich_rule: cmd.zone_add_timeout_sequence(zone, a.add_rich_rule, fw.addRichRule, fw.queryRichRule, None, "'%s'", a.timeout) elif a.remove_rich_rule: cmd.x_remove_sequence(zone, a.remove_rich_rule, fw.removeRichRule, fw.queryRichRule, None, "'%s'") elif a.query_rich_rule: cmd.x_query_sequence(zone, a.query_rich_rule, fw.queryRichRule, None, "'%s'") # service elif a.list_services: l = fw.getServices(zone) cmd.print_and_exit(" ".join(l)) elif a.add_service: cmd.zone_add_timeout_sequence(zone, a.add_service, fw.addService, fw.queryService, None, "'%s'", a.timeout) elif a.remove_service: cmd.x_remove_sequence(zone, a.remove_service, fw.removeService, fw.queryService, None, "'%s'") elif a.query_service: cmd.x_query_sequence(zone, a.query_service, fw.queryService, None, "'%s'") # port elif a.list_ports: l = fw.getPorts(zone) cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_port: cmd.zone_add_timeout_sequence(zone, a.add_port, fw.addPort, fw.queryPort, cmd.parse_port, "'%s/%s'", a.timeout) elif a.remove_port: cmd.x_remove_sequence(zone, a.remove_port, fw.removePort, fw.queryPort, cmd.parse_port, "'%s/%s'") elif a.query_port: cmd.x_query_sequence(zone, a.query_port, fw.queryPort, cmd.parse_port, "'%s/%s'") # protocol elif a.list_protocols: l = fw.getProtocols(zone) cmd.print_and_exit(" ".join(["%s" % protocol for protocol in l])) elif a.add_protocol: cmd.zone_add_timeout_sequence(zone, a.add_protocol, fw.addProtocol, fw.queryProtocol, None, "'%s'", a.timeout) elif a.remove_protocol: cmd.x_remove_sequence(zone, a.remove_protocol, fw.removeProtocol, fw.queryProtocol, None, "'%s'") elif a.query_protocol: cmd.x_query_sequence(zone, a.query_protocol, fw.queryProtocol, None, "'%s'") # source port elif a.list_source_ports: l = fw.getSourcePorts(zone) cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_source_port: cmd.zone_add_timeout_sequence(zone, a.add_source_port, fw.addSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'", a.timeout) elif a.remove_source_port: cmd.x_remove_sequence(zone, a.remove_source_port, fw.removeSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'") elif a.query_source_port: cmd.x_query_sequence(zone, a.query_source_port, fw.querySourcePort, cmd.parse_port, "'%s/%s'") # masquerade elif a.add_masquerade: fw.addMasquerade(zone, a.timeout) elif a.remove_masquerade: fw.removeMasquerade(zone) elif a.query_masquerade: cmd.print_query_result(fw.queryMasquerade(zone)) # forward port elif a.list_forward_ports: l = fw.getForwardPorts(zone) cmd.print_and_exit("\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l])) elif a.add_forward_port: cmd.zone_add_timeout_sequence(zone, a.add_forward_port, fw.addForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'", a.timeout) elif a.remove_forward_port: cmd.x_remove_sequence(zone, a.remove_forward_port, fw.removeForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") elif a.query_forward_port: cmd.x_query_sequence(zone, a.query_forward_port, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") # block icmp elif a.list_icmp_blocks: l = fw.getIcmpBlocks(zone) cmd.print_and_exit(" ".join(l)) elif a.add_icmp_block: cmd.zone_add_timeout_sequence(zone, a.add_icmp_block, fw.addIcmpBlock, fw.queryIcmpBlock, None, "'%s'", a.timeout) elif a.remove_icmp_block: cmd.x_remove_sequence(zone, a.remove_icmp_block, fw.removeIcmpBlock, fw.queryIcmpBlock, None, "'%s'") elif a.query_icmp_block: cmd.x_query_sequence(zone, a.query_icmp_block, fw.queryIcmpBlock, None, "'%s'") # icmp block inversion elif a.add_icmp_block_inversion: fw.addIcmpBlockInversion(zone) elif a.remove_icmp_block_inversion: fw.removeIcmpBlockInversion(zone) elif a.query_icmp_block_inversion: cmd.print_query_result(fw.queryIcmpBlockInversion(zone)) # list all elif a.list_all: z = zone if zone else fw.getDefaultZone() cmd.print_zone_info(z, fw.getZoneSettings(z)) sys.exit(0) # list everything elif a.list_all_zones: for zone in fw.getZones(): cmd.print_zone_info(zone, fw.getZoneSettings(zone)) cmd.print_msg("") sys.exit(0) elif a.info_zone: cmd.print_zone_info(a.info_zone, fw.getZoneSettings(a.info_zone), True) sys.exit(0) elif a.info_service: cmd.print_service_info(a.info_service, fw.getServiceSettings(a.info_service)) sys.exit(0) elif a.info_icmptype: cmd.print_icmptype_info(a.info_icmptype, fw.getIcmpTypeSettings(a.info_icmptype)) sys.exit(0) cmd.print_and_exit("success") firewalld-0.4.4.6/src/firewall-config000077500000000000000000012141011320241217000174110ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2011-2015 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import sys import string import gi try: gi.require_version('Gtk', '3.0') from gi.repository import Gtk, Gdk, Pango, Gio Gtk.init(sys.argv) except RuntimeError as e: print("firewall-config: %s" % e) print("This is a graphical application and requires DISPLAY to be set.") sys.exit(1) from gi.repository import GObject, GLib sys.modules['gobject'] = GObject import os datadir = None if os.getenv("FIREWALLD_DEVEL_ENV") is not None: datadir = os.getenv("FIREWALLD_DEVEL_ENV") sys.path.insert(0, datadir) import dbus from dbus.exceptions import DBusException from firewall import config from firewall import client from firewall import functions from firewall.dbus_utils import dbus_to_python from firewall.core.base import DEFAULT_ZONE_TARGET, REJECT_TYPES, \ ZONE_SOURCE_IPSET_TYPES from firewall.core.ipset import IPSET_MAXNAMELEN from firewall.core.helper import HELPER_MAXNAMELEN from firewall.core.io.zone import Zone from firewall.core.io.service import Service from firewall.core.io.icmptype import IcmpType from firewall.core.io.ipset import IPSet from firewall.core.io.helper import Helper from firewall.core import rich from firewall.core.fw_nm import * from firewall import errors from firewall.errors import FirewallError import gettext gettext.textdomain(config.DOMAIN) _ = gettext.gettext if not datadir: datadir = config.DATADIR sys.path.insert(0, datadir) from gtk3_chooserbutton import ChooserButton from gtk3_niceexpander import NiceExpander def escape(text): text = text.replace('&', '&') text = text.replace('>', '>') text = text.replace('<', '<') return text FIREWALL_CONFIG_SCHEMA = "org.fedoraproject.FirewallConfig" class FirewallConfig(object): def __init__(self): builder = Gtk.Builder() builder.set_translation_domain("firewalld") builder.add_from_file("%s/%s" % (datadir, config.CONFIG_GLADE_NAME)) builder.connect_signals(self) self.connected_label = _("Connection to firewalld established.") self.trying_to_connect_label = \ _("Trying to connect to firewalld, waiting...") self.changes_applied_label = _("Changes applied.") self.used_by_label = _("Used by network connection '%s'") self.default_zone_used_by_label = _("Default zone used by network " "connection '%s'") self.enabled = _("enabled") self.disabled = _("disabled") self.settings = Gio.Settings.new(FIREWALL_CONFIG_SCHEMA) self.modified_timer = None self.zone_connection_editors = { } self.zone_interface_editors = { } self.zone_source_editors = { } self.default_zone = "" self.nf_conntrack_helpers = { } # point to the visible dialogs self.visible_dialogs = [ ] self.connection_lost = False # get icon and logo (foo, width, height) = Gtk.icon_size_lookup(Gtk.IconSize.BUTTON) size = min(width, height) self.icon_theme = Gtk.IconTheme.get_default() try: self.icon = self.icon_theme.load_icon(config.CONFIG_NAME, size, 0) self.logo = self.icon_theme.load_icon(config.CONFIG_NAME, 48, 0) except: print(_("Failed to load icons.")) self.icon = self.logo = None # get widgets self.mainWindow = builder.get_object("mainWindow") self.mainWindow.set_icon(self.icon) self.mainOverlay = builder.get_object("mainOverlay") self.mainPaned = builder.get_object("mainPaned") self.statusLabel = builder.get_object("statusLabel") self.modifiedLabel = builder.get_object("modifiedLabel") self.lockdownLabel = builder.get_object("lockdownLabel") self.panicLabel = builder.get_object("panicLabel") self.waitingWindow = builder.get_object("waitingWindow") self.waitingWindowLabel = builder.get_object("waitingWindowLabel") self.waitingWindowSpinner = builder.get_object("waitingWindowSpinner") self.waitingWindowQuitButton = \ builder.get_object("waitingWindowQuitButton") self.mainOverlay.add_overlay(self.waitingWindow) self.waitingWindow.set_valign(Gtk.Align.CENTER) self.waitingWindow.set_halign(Gtk.Align.CENTER) self.mainNotebook = builder.get_object("mainNotebook") self.ipsetsBox = builder.get_object("ipsetsBox") self.ipsetsMenuitem = builder.get_object("ipsetsMenuitem") self.icmpTypesBox = builder.get_object("icmpTypesBox") self.icmpTypesMenuitem = builder.get_object("icmpTypesMenuitem") self.helpersBox = builder.get_object("helpersBox") self.helpersMenuitem = builder.get_object("helpersMenuitem") self.directBox = builder.get_object("directBox") self.directMenuitem = builder.get_object("directMenuitem") self.lockdownWhitelistBox = builder.get_object("lockdownWhitelistBox") self.lockdownWhitelistMenuitem = \ builder.get_object("lockdownWhitelistMenuitem") self.activeBindingsMenuitem = \ builder.get_object("activeBindingsMenuitem") self.changeZonesConnectionMenuitem = \ builder.get_object("changeZonesConnectionMenuitem") self.left_menu = Gtk.Menu.new() self.left_menu.set_reserve_toggle_size(False) self.changeZonesConnectionMenuitem.set_submenu(self.left_menu) self.changeZonesConnectionMenuitem.connect( "activate", self.left_menu_cb, self.left_menu) self.active_zones = { } self.panicMenuitem = builder.get_object("panicMenuitem") self.panic_check_id = \ self.panicMenuitem.connect_after("toggled", self.panic_check_cb) self.lockdownMenuitem = builder.get_object("lockdownMenuitem") self.lockdown_check_id = \ self.lockdownMenuitem.connect_after("toggled", self.lockdown_check_cb) self.lockdownContextView = builder.get_object("lockdownContextView") self.lockdownContextStore = Gtk.ListStore(GObject.TYPE_STRING) self.lockdownContextView.append_column( Gtk.TreeViewColumn("Context", Gtk.CellRendererText(), text=0)) self.lockdownContextView.set_model(self.lockdownContextStore) self.lockdownContextView.get_selection().connect( \ "changed", self.change_lockdown_context_selection_cb) self.editLockdownContextButton = \ builder.get_object("editLockdownContextButton") self.removeLockdownContextButton = \ builder.get_object("removeLockdownContextButton") self.contextDialog = builder.get_object("contextDialog") self.contextDialogOkButton = builder.get_object("contextDialogOkButton") self.contextDialogCancelButton = \ builder.get_object("contextDialogCancelButton") self.contextDialogContextEntry = \ builder.get_object("contextDialogContextEntry") self.lockdownCommandView = builder.get_object("lockdownCommandView") self.lockdownCommandStore = Gtk.ListStore(GObject.TYPE_STRING) self.lockdownCommandView.append_column( Gtk.TreeViewColumn("Command line", Gtk.CellRendererText(), text=0)) self.lockdownCommandView.set_model(self.lockdownCommandStore) self.lockdownCommandView.get_selection().connect( \ "changed", self.change_lockdown_command_selection_cb) self.editLockdownCommandButton = \ builder.get_object("editLockdownCommandButton") self.removeLockdownCommandButton = \ builder.get_object("removeLockdownCommandButton") self.commandDialog = builder.get_object("commandDialog") self.commandDialogOkButton = builder.get_object("commandDialogOkButton") self.commandDialogCancelButton = \ builder.get_object("commandDialogCancelButton") self.commandDialogCommandEntry = \ builder.get_object("commandDialogCommandEntry") self.lockdownUserView = builder.get_object("lockdownUserView") self.lockdownUserStore = Gtk.ListStore(GObject.TYPE_STRING) self.lockdownUserView.append_column( Gtk.TreeViewColumn("User name", Gtk.CellRendererText(), text=0)) self.lockdownUserView.set_model(self.lockdownUserStore) self.lockdownUserView.get_selection().connect( \ "changed", self.change_lockdown_user_selection_cb) self.editLockdownUserButton = \ builder.get_object("editLockdownUserButton") self.removeLockdownUserButton = \ builder.get_object("removeLockdownUserButton") self.userDialog = builder.get_object("userDialog") self.userDialogOkButton = builder.get_object("userDialogOkButton") self.userDialogCancelButton = \ builder.get_object("userDialogCancelButton") self.userDialogUserEntry = \ builder.get_object("userDialogUserEntry") self.lockdownUidView = builder.get_object("lockdownUidView") self.lockdownUidStore = Gtk.ListStore(GObject.TYPE_INT) self.lockdownUidView.append_column( Gtk.TreeViewColumn("User id", Gtk.CellRendererText(), text=0)) self.lockdownUidView.set_model(self.lockdownUidStore) self.lockdownUidView.get_selection().connect( \ "changed", self.change_lockdown_uid_selection_cb) self.editLockdownUidButton = \ builder.get_object("editLockdownUidButton") self.removeLockdownUidButton = \ builder.get_object("removeLockdownUidButton") self.uidDialog = builder.get_object("uidDialog") self.uidDialogOkButton = builder.get_object("uidDialogOkButton") self.uidDialogCancelButton = \ builder.get_object("uidDialogCancelButton") self.uidDialogUidEntry = \ builder.get_object("uidDialogUidEntry") self.serviceConfServicesEditBox = \ builder.get_object("serviceConfServicesEditBox") self.serviceConfPortBox = \ builder.get_object("serviceConfPortBox") self.serviceConfProtocolBox = \ builder.get_object("serviceConfProtocolBox") self.serviceConfSourcePortBox = \ builder.get_object("serviceConfSourcePortBox") self.serviceConfModuleBox = \ builder.get_object("serviceConfModuleBox") self.serviceConfDestinationGrid = \ builder.get_object("serviceConfDestinationGrid") self.icmpDialogIcmpEditBox = \ builder.get_object("icmpDialogIcmpEditBox") self.directChainView = builder.get_object("directChainView") self.directChainStore = Gtk.ListStore(GObject.TYPE_STRING, # ipv GObject.TYPE_STRING, # table GObject.TYPE_STRING) # chain self.directChainView.append_column( Gtk.TreeViewColumn("ipv", Gtk.CellRendererText(), text=0)) self.directChainView.append_column( Gtk.TreeViewColumn("Table", Gtk.CellRendererText(), text=1)) self.directChainView.append_column( Gtk.TreeViewColumn("Chain", Gtk.CellRendererText(), text=2)) self.directChainView.set_model(self.directChainStore) self.directChainView.get_selection().connect( \ "changed", self.change_chain_selection_cb) self.editDirectChainButton = \ builder.get_object("editDirectChainButton") self.removeDirectChainButton = \ builder.get_object("removeDirectChainButton") self.directChainDialog = builder.get_object("directChainDialog") self.directChainDialogOkButton = \ builder.get_object("directChainDialogOkButton") self.directChainDialogCancelButton = \ builder.get_object("directChainDialogCancelButton") self.directChainDialogIPVCombobox = \ builder.get_object("directChainDialogIPVCombobox") self.directChainDialogTableCombobox = \ builder.get_object("directChainDialogTableCombobox") self.directChainDialogChainEntry = \ builder.get_object("directChainDialogChainEntry") self.directRuleView = builder.get_object("directRuleView") self.directRuleStore = Gtk.ListStore(GObject.TYPE_STRING, # ipv GObject.TYPE_STRING, # table GObject.TYPE_STRING, # chain GObject.TYPE_INT, # priority GObject.TYPE_STRING) # args self.directRuleView.append_column( Gtk.TreeViewColumn("ipv", Gtk.CellRendererText(), text=0)) self.directRuleView.append_column( Gtk.TreeViewColumn("Table", Gtk.CellRendererText(), text=1)) self.directRuleView.append_column( Gtk.TreeViewColumn("Chain", Gtk.CellRendererText(), text=2)) self.directRuleView.append_column( Gtk.TreeViewColumn("Priority", Gtk.CellRendererText(), text=3)) self.directRuleView.append_column( Gtk.TreeViewColumn("Args", Gtk.CellRendererText(), text=4)) self.directRuleView.set_model(self.directRuleStore) self.directRuleView.get_selection().connect( \ "changed", self.change_rule_selection_cb) self.editDirectRuleButton = \ builder.get_object("editDirectRuleButton") self.removeDirectRuleButton = \ builder.get_object("removeDirectRuleButton") self.directRuleDialog = builder.get_object("directRuleDialog") self.directRuleDialogOkButton = \ builder.get_object("directRuleDialogOkButton") self.directRuleDialogCancelButton = \ builder.get_object("directRuleDialogCancelButton") self.directRuleDialogIPVCombobox = \ builder.get_object("directRuleDialogIPVCombobox") self.directRuleDialogTableCombobox = \ builder.get_object("directRuleDialogTableCombobox") self.directRuleDialogChainEntry = \ builder.get_object("directRuleDialogChainEntry") self.directRuleDialogPrioritySpinbutton = \ builder.get_object("directRuleDialogPrioritySpinbutton") self.directRuleDialogArgsEntry = \ builder.get_object("directRuleDialogArgsEntry") self.directPassthroughBox = builder.get_object("directPassthroughBox") self.directPassthroughView = builder.get_object("directPassthroughView") self.directPassthroughStore = Gtk.ListStore( GObject.TYPE_STRING, # ipv GObject.TYPE_STRING) # passthrough self.directPassthroughView.append_column( Gtk.TreeViewColumn("ipv", Gtk.CellRendererText(), text=0)) self.directPassthroughView.append_column( Gtk.TreeViewColumn("Args", Gtk.CellRendererText(), text=1)) self.directPassthroughView.set_model(self.directPassthroughStore) self.directPassthroughView.get_selection().connect( \ "changed", self.change_passthrough_selection_cb) self.editDirectPassthroughButton = \ builder.get_object("editDirectPassthroughButton") self.removeDirectPassthroughButton = \ builder.get_object("removeDirectPassthroughButton") self.directPassthroughDialog = \ builder.get_object("directPassthroughDialog") self.directPassthroughDialogOkButton = \ builder.get_object("directPassthroughDialogOkButton") self.directPassthroughDialogCancelButton = \ builder.get_object("directPassthroughDialogCancelButton") self.directPassthroughDialogIPVCombobox = \ builder.get_object("directPassthroughDialogIPVCombobox") self.directPassthroughDialogArgsEntry = \ builder.get_object("directPassthroughDialogArgsEntry") self.mainVBox = builder.get_object("mainVBox") self.optionsMenuitem = builder.get_object("optionsMenuitem") self.viewMenuitem = builder.get_object("viewMenuitem") self.aboutDialog = builder.get_object("aboutDialog") self.aboutDialog.set_program_name(config.CONFIG_NAME) self.aboutDialog.set_version(config.VERSION) self.aboutDialog.set_authors(config.AUTHORS) self.aboutDialog.set_license(config.LICENSE) self.aboutDialog.set_wrap_license(True) self.aboutDialog.set_copyright(config.COPYRIGHT) self.aboutDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.aboutDialog.set_transient_for(self.mainWindow) self.aboutDialog.set_modal(True) self.aboutDialog.set_icon(self.icon) self.aboutDialog.set_logo(self.logo) self.aboutDialog.set_website(config.WEBSITE) self.currentViewCombobox = builder.get_object("currentViewCombobox") self.currentViewCombobox.append_text(_("Runtime")) self.currentViewCombobox.append_text(_("Permanent")) self.runtime_view = True self.zoneView = builder.get_object("zoneView") self.zoneStore = Gtk.ListStore(GObject.TYPE_STRING, # name GObject.TYPE_INT) # weight self.zoneView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0, weight=1)) self.zoneView.set_model(self.zoneStore) self.zoneStore.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.zoneView.get_selection().connect("changed", self.onChangeZone) self.zoneNotebook = builder.get_object("zoneNotebook") self.defaultZoneLabel = builder.get_object("defaultZoneLabel") self.defaultZoneDialog = builder.get_object("defaultZoneDialog") self.defaultZoneDialogOkButton = \ builder.get_object("defaultZoneDialogOkButton") self.defaultZoneView = builder.get_object("defaultZoneView") self.defaultZoneStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_INT) self.defaultZoneView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0, weight=1)) self.defaultZoneView.set_model(self.defaultZoneStore) self.defaultZoneView.get_selection().connect(\ "changed", self.on_defaultZoneViewSelection_changed) self.logDeniedLabel = builder.get_object("logDeniedLabel") self.logDeniedDialog = builder.get_object("logDeniedDialog") self.logDeniedDialogOkButton = \ builder.get_object("logDeniedDialogOkButton") self.logDeniedDialogValueCombobox = \ builder.get_object("logDeniedDialogValueCombobox") for value in config.LOG_DENIED_VALUES: self.logDeniedDialogValueCombobox.append_text(value) self.automaticHelpersLabel = builder.get_object("automaticHelpersLabel") self.automaticHelpersDialog = builder.get_object("automaticHelpersDialog") self.automaticHelpersDialogOkButton = \ builder.get_object("automaticHelpersDialogOkButton") self.automaticHelpersDialogValueCombobox = \ builder.get_object("automaticHelpersDialogValueCombobox") for value in config.AUTOMATIC_HELPERS_VALUES: self.automaticHelpersDialogValueCombobox.append_text(value) self.zoneEditBox = builder.get_object("zoneEditBox") self.zoneEditBox.hide() self.zoneEditLoadDefaultsButton = \ builder.get_object("zoneEditLoadDefaultsButton") self.zoneEditEditButton = builder.get_object("zoneEditEditButton") self.zoneEditRemoveButton = builder.get_object("zoneEditRemoveButton") self.zoneBaseDialog = builder.get_object("zoneBaseDialog") self.zoneBaseDialogOkButton = \ builder.get_object("zoneBaseDialogOkButton") self.zoneBaseDialogNameEntry = \ builder.get_object("zoneBaseDialogNameEntry") self.zoneBaseDialogVersionEntry = \ builder.get_object("zoneBaseDialogVersionEntry") self.zoneBaseDialogShortEntry = \ builder.get_object("zoneBaseDialogShortEntry") self.zoneBaseDialogDescText = \ builder.get_object("zoneBaseDialogDescText") self.zoneBaseDialogDescText.get_buffer().connect(\ "changed", self.onZoneBaseDialogChanged) self.zoneBaseDialogTargetCheck = \ builder.get_object("zoneBaseDialogTargetCheck") self.zoneBaseDialogTargetCombobox = \ builder.get_object("zoneBaseDialogTargetCombobox") self.serviceView = builder.get_object("serviceView") self.serviceStore = Gtk.ListStore(GObject.TYPE_BOOLEAN, # checked GObject.TYPE_STRING) # name toggle = Gtk.CellRendererToggle() toggle.connect("toggled", self.service_toggle_cb, self.serviceStore, 0) self.serviceView.append_column(Gtk.TreeViewColumn("", toggle, active=0)) self.serviceView.append_column( Gtk.TreeViewColumn(_("Service"), Gtk.CellRendererText(), text=1)) self.serviceView.set_model(self.serviceStore) self.serviceStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.portView = builder.get_object("portView") self.portStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.portView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.portView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.portView.set_model(self.portStore) self.portStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.portView.get_selection().connect("changed", self.change_port_selection_cb) self.editPortButton = builder.get_object("editPortButton") self.removePortButton = builder.get_object("removePortButton") self.portDialog = builder.get_object("portDialog") self.portDialogOkButton = builder.get_object("portDialogOkButton") self.portDialogCancelButton = \ builder.get_object("portDialogCancelButton") self.portDialogPortEntry = builder.get_object("portDialogPortEntry") self.portDialogProtoCombobox = \ builder.get_object("portDialogProtoCombobox") self.protocolView = builder.get_object("protocolView") self.protocolStore = Gtk.ListStore(GObject.TYPE_STRING) self.protocolView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=0)) self.protocolView.set_model(self.protocolStore) self.protocolStore.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.protocolView.get_selection().connect( "changed", self.change_protocol_selection_cb) self.editProtocolButton = builder.get_object("editProtocolButton") self.removeProtocolButton = builder.get_object("removeProtocolButton") self.protoDialog = builder.get_object("protoDialog") self.protoDialogOkButton = builder.get_object("protoDialogOkButton") self.protoDialogCancelButton = \ builder.get_object("protoDialogCancelButton") self.protoDialogProtoLabel = builder.get_object("protoDialogProtoLabel") self.protoDialogProtoCombobox = \ builder.get_object("protoDialogProtoCombobox") self.protoDialogOtherProtoCheck = \ builder.get_object("protoDialogOtherProtoCheck") self.protoDialogOtherProtoEntry = \ builder.get_object("protoDialogOtherProtoEntry") self.sourcePortView = builder.get_object("sourcePortView") self.sourcePortStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.sourcePortView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.sourcePortView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.sourcePortView.set_model(self.sourcePortStore) self.sourcePortStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.sourcePortView.get_selection().connect( "changed", self.change_source_port_selection_cb) self.editSourcePortButton = builder.get_object("editSourcePortButton") self.removeSourcePortButton = \ builder.get_object("removeSourcePortButton") self.masqueradeCheck = builder.get_object("masqueradeCheck") self.masqueradeEventbox = builder.get_object("masqueradeEventbox") self.masqueradeEventbox.connect("button-press-event", self.masquerade_check_cb) self.forwardView = builder.get_object("forwardView") self.forwardStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING) self.forwardView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.forwardView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.forwardView.append_column( Gtk.TreeViewColumn(_("To Port"), Gtk.CellRendererText(), text=2)) self.forwardView.append_column( Gtk.TreeViewColumn(_("To Address"), Gtk.CellRendererText(), text=3)) self.forwardView.set_model(self.forwardStore) self.forwardStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.forwardView.get_selection().connect(\ "changed", self.change_forward_selection_cb) self.editForwardButton = builder.get_object("editForwardButton") self.removeForwardButton = builder.get_object("removeForwardButton") self.forwardDialog = builder.get_object("forwardDialog") self.forwardDialogOkButton = builder.get_object("forwardDialogOkButton") self.forwardDialogCancelButton = \ builder.get_object("forwardDialogCancelButton") self.forwardDialogPortEntry = \ builder.get_object("forwardDialogPortEntry") self.forwardDialogProtoCombobox = \ builder.get_object("forwardDialogProtoCombobox") self.forwardDialogLocalCheck = \ builder.get_object("forwardDialogLocalCheck") self.forwardDialogToPortCheck = \ builder.get_object("forwardDialogToPortCheck") self.forwardDialogToPortLabel = \ builder.get_object("forwardDialogToPortLabel") self.forwardDialogToPortEntry = \ builder.get_object("forwardDialogToPortEntry") self.forwardDialogToAddrLabel = \ builder.get_object("forwardDialogToAddrLabel") self.forwardDialogToAddrEntry = \ builder.get_object("forwardDialogToAddrEntry") # bindings Expander self.bindingsBox = builder.get_object("bindingsBox") self.bindingsExpanderButton = \ builder.get_object("bindingsExpanderButton") self.bindingsUnexpanderButton = \ builder.get_object("bindingsUnexpanderButton") self.bindingsExpander = NiceExpander( self.bindingsExpanderButton, self.bindingsUnexpanderButton, self.mainPaned, self.bindingsBox) self.bindingsExpander.connect("notify::expanded", self.bindings_expander_changed) # bindings View self.bindingsView = builder.get_object("bindingsView") self.bindingsStore = Gtk.TreeStore(GObject.TYPE_STRING, # label GObject.TYPE_STRING, # connection/interface/source GObject.TYPE_STRING) # real zone self.bindingsView.set_model(self.bindingsStore) self.bindingsView.append_column( Gtk.TreeViewColumn(_("Bindings"), Gtk.CellRendererText(), markup=0)) self.connectionsIter = self.bindingsStore.append( None, [ _("Connections"), "", "" ]) self.interfacesIter = self.bindingsStore.append( None, [ _("Interfaces"), "", "" ]) self.sourcesIter = self.bindingsStore.append( None, [ _("Sources"), "", "" ]) self.bindingsView.get_selection().connect("changed", self.onSelectBinding) self.bindingsView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.bindingsView.set_show_expanders(False) self.bindingsView.set_level_indentation(10) self.changeBindingsButton = builder.get_object("changeBindingsButton") self.changeBindingsButton.connect("clicked", self.onChangeBinding) #self.editBindingsButton = builder.get_object("editBindingsButton") #self.editBindingsButton.connect("clicked", self.onEditBinding) self.ipsetConfIPSetView = builder.get_object("ipsetConfIPSetView") self.ipsetConfIPSetStore = Gtk.ListStore(GObject.TYPE_STRING) # name self.ipsetConfIPSetView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) self.ipsetConfIPSetView.set_model(self.ipsetConfIPSetStore) self.ipsetConfIPSetStore.set_sort_column_id( 0, Gtk.SortType.ASCENDING) self.ipsetConfIPSetView.get_selection().connect("changed", self.onChangeIPSet) self.ipsetConfNotebook = builder.get_object("ipsetConfNotebook") self.ipsetConfEntryLabel = builder.get_object("ipsetConfEntryLabel") self.ipsetConfTimeoutLabel = builder.get_object("ipsetConfTimeoutLabel") self.ipsetConfEntrySW = builder.get_object("ipsetConfEntrySW") self.ipsetConfEntryView = builder.get_object("ipsetConfEntryView") self.ipsetConfEntryStore = Gtk.ListStore(GObject.TYPE_STRING) self.ipsetConfEntryView.append_column( Gtk.TreeViewColumn(_("Entry"), Gtk.CellRendererText(), text=0)) self.ipsetConfEntryView.set_model(self.ipsetConfEntryStore) self.ipsetConfEntryStore.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.ipsetConfEntryView.get_selection().connect(\ "changed", self.change_ipset_conf_entry_selection_cb) self.ipsetConfIPSetEditBox = \ builder.get_object("ipsetConfIPSetEditBox") self.ipsetConfEntryBox = \ builder.get_object("ipsetConfEntryBox") self.ipsetConfEditIPSetButton = \ builder.get_object("ipsetConfEditIPSetButton") self.ipsetConfRemoveIPSetButton = \ builder.get_object("ipsetConfRemoveIPSetButton") self.ipsetConfLoadDefaultsIPSetButton = \ builder.get_object("ipsetConfLoadDefaultsIPSetButton") self.ipsetConfAddEntryBox = \ builder.get_object("ipsetConfAddEntryBox") self.ipsetConfAddEntryMenu = \ builder.get_object("ipsetConfAddEntryMenu") self.ipsetConfAddEntryMenubutton = \ builder.get_object("ipsetConfAddEntryMenubutton") self.ipsetConfEditEntryButton = \ builder.get_object("ipsetConfEditEntryButton") self.ipsetConfRemoveEntryBox = \ builder.get_object("ipsetConfRemoveEntryBox") self.ipsetConfRemoveEntryMenu = \ builder.get_object("ipsetConfRemoveEntryMenu") self.ipsetConfRemoveEntryMenubutton = \ builder.get_object("ipsetConfRemoveEntryMenubutton") self.ipsetConfRemoveEntryMenuitem = \ builder.get_object("ipsetConfRemoveEntryMenuitem") self.ipsetConfRemoveEntryMenuitem.set_sensitive(False) self.ipsetEntryDialog = \ builder.get_object("ipsetEntryDialog") self.ipsetEntryDialogCancelButton = \ builder.get_object("ipsetEntryDialogCancelButton") self.ipsetEntryDialogOkButton = \ builder.get_object("ipsetEntryDialogOkButton") self.ipsetEntryDialogEntryEntry = \ builder.get_object("ipsetEntryDialogEntryEntry") self.ipsetEntryDialogTypeLabel = \ builder.get_object("ipsetEntryDialogTypeLabel") self.ipsetBaseDialog = builder.get_object("ipsetBaseDialog") self.ipsetBaseDialogOkButton = \ builder.get_object("ipsetBaseDialogOkButton") self.ipsetBaseDialogNameEntry = \ builder.get_object("ipsetBaseDialogNameEntry") self.ipsetBaseDialogVersionEntry = \ builder.get_object("ipsetBaseDialogVersionEntry") self.ipsetBaseDialogShortEntry = \ builder.get_object("ipsetBaseDialogShortEntry") self.ipsetBaseDialogDescText = \ builder.get_object("ipsetBaseDialogDescText") self.ipsetBaseDialogDescText.get_buffer().connect(\ "changed", self.onIPSetBaseDialogChanged) self.ipsetBaseDialogTypeCombobox = \ builder.get_object("ipsetBaseDialogTypeCombobox") self.ipsetBaseDialogBadTypeLabel = \ builder.get_object("ipsetBaseDialogBadTypeLabel") self.ipsetBaseDialogFamilyLabel = \ builder.get_object("ipsetBaseDialogFamilyLabel") self.ipsetBaseDialogFamilyCombobox = \ builder.get_object("ipsetBaseDialogFamilyCombobox") self.ipsetBaseDialogTimeoutEntry = \ builder.get_object("ipsetBaseDialogTimeoutEntry") self.ipsetBaseDialogHashsizeEntry = \ builder.get_object("ipsetBaseDialogHashsizeEntry") self.ipsetBaseDialogMaxelemEntry = \ builder.get_object("ipsetBaseDialogMaxelemEntry") self.helperConfHelperNotebook = \ builder.get_object("helperConfHelperNotebook") self.helperConfHelperEditBox = \ builder.get_object("helperConfHelperEditBox") self.helperConfPortBox = \ builder.get_object("helperConfPortBox") self.helperConfEditHelperButton = \ builder.get_object("helperConfEditHelperButton") self.helperConfRemoveHelperButton = \ builder.get_object("helperConfRemoveHelperButton") self.helperConfLoadDefaultsHelperButton = \ builder.get_object("helperConfLoadDefaultsHelperButton") self.helperConfAddPortButton = \ builder.get_object("helperConfAddPortButton") self.helperConfEditPortButton = \ builder.get_object("helperConfEditPortButton") self.helperConfRemovePortButton = \ builder.get_object("helperConfRemovePortButton") self.helperBaseDialog = builder.get_object("helperBaseDialog") self.helperBaseDialogOkButton = \ builder.get_object("helperBaseDialogOkButton") self.helperBaseDialogNameEntry = \ builder.get_object("helperBaseDialogNameEntry") self.helperBaseDialogVersionEntry = \ builder.get_object("helperBaseDialogVersionEntry") self.helperBaseDialogShortEntry = \ builder.get_object("helperBaseDialogShortEntry") self.helperBaseDialogDescText = \ builder.get_object("helperBaseDialogDescText") self.helperBaseDialogDescText.get_buffer().connect(\ "changed", self.onHelperBaseDialogChanged) self.helperBaseDialogModuleChooser = \ ChooserButton(builder.get_object("helperBaseDialogModuleChooser")) self.helperBaseDialogFamilyCombobox = \ builder.get_object("helperBaseDialogFamilyCombobox") self.icmpView = builder.get_object("icmpView") self.icmpStore = Gtk.ListStore(GObject.TYPE_BOOLEAN, # checked GObject.TYPE_STRING) # name toggle = Gtk.CellRendererToggle() toggle.connect("toggled", self.icmp_toggle_cb, self.icmpStore, 0) self.icmpView.append_column(Gtk.TreeViewColumn("", toggle, active=0)) self.icmpView.append_column( Gtk.TreeViewColumn(_("Icmp Type"), Gtk.CellRendererText(), text=1)) self.icmpView.set_model(self.icmpStore) self.icmpStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.icmpBlockInversionCheck = \ builder.get_object("icmpBlockInversionCheck") self.icmpBlockInversionEventbox = \ builder.get_object("icmpBlockInversionEventbox") self.icmpBlockInversionEventbox.connect( "button-press-event", self.icmp_block_inversion_check_cb) self.helperConfHelperView = builder.get_object("helperConfHelperView") self.helperConfHelperStore = Gtk.ListStore(GObject.TYPE_STRING) # name self.helperConfHelperView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) self.helperConfHelperView.set_model(self.helperConfHelperStore) self.helperConfHelperStore.set_sort_column_id( 0, Gtk.SortType.ASCENDING) self.helperConfHelperView.get_selection().connect("changed", self.onChangeHelper) self.helperConfPortView = builder.get_object("helperConfPortView") self.helperConfPortStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.helperConfPortView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.helperConfPortView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.helperConfPortView.set_model(self.helperConfPortStore) self.helperConfPortStore.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.helperConfPortView.get_selection().connect(\ "changed", self.change_helper_conf_port_selection_cb) self.richRuleView = builder.get_object("richRuleView") self.richRuleStore = Gtk.ListStore(GObject.TYPE_PYOBJECT, # the rule obj GObject.TYPE_STRING, # ipv4/ipv6 GObject.TYPE_STRING, # action GObject.TYPE_STRING, # element GObject.TYPE_STRING, # source GObject.TYPE_STRING, # destination GObject.TYPE_STRING, # log GObject.TYPE_STRING) # audit self.richRuleView.append_column( Gtk.TreeViewColumn(_("Family"), Gtk.CellRendererText(), text=1)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("Action"), Gtk.CellRendererText(), text=2)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("Element"), Gtk.CellRendererText(), text=3)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("Src"), Gtk.CellRendererText(), text=4)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("Dest"), Gtk.CellRendererText(), text=5)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("log"), Gtk.CellRendererText(), text=6)) self.richRuleView.append_column( Gtk.TreeViewColumn(_("Audit"), Gtk.CellRendererText(), text=7)) self.richRuleView.set_model(self.richRuleStore) self.richRuleView.get_selection().connect( \ "changed", self.change_rich_rule_selection_cb) self.addRichRuleButton = builder.get_object("addRichRuleButton") self.editRichRuleButton = builder.get_object("editRichRuleButton") self.removeRichRuleButton = builder.get_object("removeRichRuleButton") self.richRuleDialog = builder.get_object("richRuleDialog") self.richRuleDialogOkButton = builder.get_object( \ "richRuleDialogOkButton") self.richRuleDialogCancelButton = builder.get_object( \ "richRuleDialogCancelButton") self.richRuleDialogFamilyCombobox = builder.get_object( \ "richRuleDialogFamilyCombobox") self.richRuleDialogElementCheck = builder.get_object( \ "richRuleDialogElementCheck") self.richRuleDialogElementBox = builder.get_object( \ "richRuleDialogElementBox") self.richRuleDialogElementCombobox = builder.get_object( \ "richRuleDialogElementCombobox") self.richRuleDialogElementChooser = ChooserButton(builder.get_object( \ "richRuleDialogElementChooser")) self.richRuleDialogActionCheck = builder.get_object( \ "richRuleDialogActionCheck") self.richRuleDialogActionBox = builder.get_object( \ "richRuleDialogActionBox") self.richRuleDialogActionCombobox = builder.get_object( \ "richRuleDialogActionCombobox") self.richRuleDialogActionRejectBox = builder.get_object( \ "richRuleDialogActionRejectBox") self.richRuleDialogActionRejectTypeCheck = builder.get_object( \ "richRuleDialogActionRejectTypeCheck") self.richRuleDialogActionRejectTypeCombobox = builder.get_object( \ "richRuleDialogActionRejectTypeCombobox") self.richRuleDialogActionMarkBox = builder.get_object( \ "richRuleDialogActionMarkBox") self.richRuleDialogActionMarkChooser = ChooserButton(builder.get_object( \ "richRuleDialogActionMarkChooser")) self.richRuleDialogActionLimitCheck = builder.get_object( \ "richRuleDialogActionLimitCheck") self.richRuleDialogActionLimitBox = builder.get_object( \ "richRuleDialogActionLimitBox") self.richRuleDialogActionLimitRateEntry = builder.get_object( \ "richRuleDialogActionLimitRateEntry") self.richRuleDialogActionLimitDurationCombobox = builder.get_object( \ "richRuleDialogActionLimitDurationCombobox") self.richRuleDialogSourceLabel = builder.get_object( \ "richRuleDialogSourceLabel") self.richRuleDialogSourceInvertCheck = builder.get_object( \ "richRuleDialogSourceInvertCheck") self.richRuleDialogSourceTypeCombobox = builder.get_object( \ "richRuleDialogSourceTypeCombobox") self.richRuleDialogSourceChooser = ChooserButton(builder.get_object( \ "richRuleDialogSourceChooser")) self.richRuleDialogDestinationLabel = builder.get_object( \ "richRuleDialogDestinationLabel") self.richRuleDialogDestinationBox = builder.get_object( \ "richRuleDialogDestinationBox") self.richRuleDialogDestinationInvertCheck = builder.get_object( \ "richRuleDialogDestinationInvertCheck") self.richRuleDialogDestinationChooser = \ ChooserButton(builder.get_object( \ "richRuleDialogDestinationChooser")) self.richRuleDialogLogCheck = builder.get_object( \ "richRuleDialogLogCheck") self.richRuleDialogLogGrid = builder.get_object( \ "richRuleDialogLogGrid") self.richRuleDialogLogPrefixEntry = builder.get_object( \ "richRuleDialogLogPrefixEntry") self.richRuleDialogLogLevelCombobox = builder.get_object( \ "richRuleDialogLogLevelCombobox") self.richRuleDialogLogLimitCheck = builder.get_object( \ "richRuleDialogLogLimitCheck") self.richRuleDialogLogLimitBox = builder.get_object( \ "richRuleDialogLogLimitBox") self.richRuleDialogLogLimitRateEntry = builder.get_object( \ "richRuleDialogLogLimitRateEntry") self.richRuleDialogLogLimitDurationCombobox = builder.get_object( \ "richRuleDialogLogLimitDurationCombobox") self.richRuleDialogAuditCheck = builder.get_object( \ "richRuleDialogAuditCheck") self.richRuleDialogAuditBox = builder.get_object( \ "richRuleDialogAuditBox") self.richRuleDialogAuditLimitBox = builder.get_object( \ "richRuleDialogAuditLimitBox") self.richRuleDialogAuditLimitCheck = builder.get_object( \ "richRuleDialogAuditLimitCheck") self.richRuleDialogAuditLimitRateEntry = builder.get_object( \ "richRuleDialogAuditLimitRateEntry") self.richRuleDialogAuditLimitDurationCombobox = builder.get_object( \ "richRuleDialogAuditLimitDurationCombobox") self.interfaceView = builder.get_object("interfaceView") self.interfaceStore = Gtk.ListStore(GObject.TYPE_STRING, # interface GObject.TYPE_STRING) # comment self.interfaceView.append_column( Gtk.TreeViewColumn("Interface", Gtk.CellRendererText(), text=0)) self.interfaceView.append_column( Gtk.TreeViewColumn("Comment", Gtk.CellRendererText(), text=1)) self.interfaceView.set_model(self.interfaceStore) self.interfaceView.get_selection().connect( "changed", self.change_interface_selection_cb) self.interfaceDialog = builder.get_object("interfaceDialog") self.interfaceDialogOkButton = builder.get_object( "interfaceDialogOkButton") self.interfaceDialogCancelButton = builder.get_object( "interfaceDialogCancelButton") self.interfaceDialogInterfaceEntry = builder.get_object( "interfaceDialogInterfaceEntry") self.editInterfaceButton = builder.get_object("editInterfaceButton") self.removeInterfaceButton = builder.get_object("removeInterfaceButton") self.sourceView = builder.get_object("sourceView") self.sourceStore = Gtk.ListStore(GObject.TYPE_STRING) # source self.sourceView.append_column( Gtk.TreeViewColumn("Source", Gtk.CellRendererText(), text=0)) self.sourceView.set_model(self.sourceStore) self.sourceView.get_selection().connect( "changed", self.change_source_selection_cb) self.editSourceButton = builder.get_object("editSourceButton") self.removeSourceButton = builder.get_object("removeSourceButton") self.serviceConfServiceNotebook = \ builder.get_object("serviceConfServiceNotebook") self.serviceConfServiceEditBox = \ builder.get_object("serviceConfServiceEditBox") self.serviceConfEditServiceButton = \ builder.get_object("serviceConfEditServiceButton") self.serviceConfRemoveServiceButton = \ builder.get_object("serviceConfRemoveServiceButton") self.serviceConfLoadDefaultsServiceButton = \ builder.get_object("serviceConfLoadDefaultsServiceButton") self.serviceConfServiceView = \ builder.get_object("serviceConfServiceView") self.serviceConfServiceStore = Gtk.ListStore(GObject.TYPE_STRING) self.serviceConfServiceView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) self.serviceConfServiceView.set_model(self.serviceConfServiceStore) self.serviceConfServiceStore.set_sort_column_id( 0, Gtk.SortType.ASCENDING) self.serviceConfServiceView.get_selection().connect(\ "changed", self.onChangeService) self.serviceConfPortView = builder.get_object("serviceConfPortView") self.serviceConfPortStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.serviceConfPortView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.serviceConfPortView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.serviceConfPortView.set_model(self.serviceConfPortStore) self.serviceConfPortStore.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.serviceConfPortView.get_selection().connect(\ "changed", self.change_service_dialog_port_selection_cb) self.serviceConfEditPortButton = \ builder.get_object("serviceConfEditPortButton") self.serviceConfRemovePortButton = \ builder.get_object("serviceConfRemovePortButton") self.serviceConfProtocolView = \ builder.get_object("serviceConfProtocolView") self.serviceConfProtocolStore = Gtk.ListStore(GObject.TYPE_STRING) self.serviceConfProtocolView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=0)) self.serviceConfProtocolView.set_model(self.serviceConfProtocolStore) self.serviceConfProtocolStore.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.serviceConfProtocolView.get_selection().connect(\ "changed", self.change_service_dialog_protocol_selection_cb) self.serviceConfEditProtocolButton = \ builder.get_object("serviceConfEditProtocolButton") self.serviceConfRemoveProtocolButton = \ builder.get_object("serviceConfRemoveProtocolButton") self.serviceConfSourcePortView = \ builder.get_object("serviceConfSourcePortView") self.serviceConfSourcePortStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.serviceConfSourcePortView.append_column( Gtk.TreeViewColumn(_("Port"), Gtk.CellRendererText(), text=0)) self.serviceConfSourcePortView.append_column( Gtk.TreeViewColumn(_("Protocol"), Gtk.CellRendererText(), text=1)) self.serviceConfSourcePortView.set_model(self.serviceConfSourcePortStore) self.serviceConfSourcePortStore.set_sort_column_id( 1, Gtk.SortType.ASCENDING) self.serviceConfSourcePortView.get_selection().connect(\ "changed", self.change_service_dialog_source_port_selection_cb) self.serviceConfEditSourcePortButton = \ builder.get_object("serviceConfEditSourcePortButton") self.serviceConfRemoveSourcePortButton = \ builder.get_object("serviceConfRemoveSourcePortButton") self.serviceConfModuleView = \ builder.get_object("serviceConfModuleView") self.serviceConfModuleStore = Gtk.ListStore(GObject.TYPE_STRING) self.serviceConfModuleView.append_column( Gtk.TreeViewColumn("Module", Gtk.CellRendererText(), text=0)) self.serviceConfModuleView.set_model(self.serviceConfModuleStore) self.serviceConfModuleStore.set_sort_column_id( 0, Gtk.SortType.ASCENDING) self.serviceConfModuleView.get_selection().connect(\ "changed", self.change_service_dialog_module_selection_cb) self.serviceConfEditModuleButton = \ builder.get_object("serviceConfEditModuleButton") self.serviceConfRemoveModuleButton = \ builder.get_object("serviceConfRemoveModuleButton") self.serviceConfDestIpv4Chooser = ChooserButton( builder.get_object("serviceConfDestIpv4Chooser"), "") self.serviceConfDestIpv6Chooser = ChooserButton( builder.get_object("serviceConfDestIpv6Chooser"), "") self.addressDialog = builder.get_object("addressDialog") self.addressDialogLabel = builder.get_object("addressDialogLabel") self.addressDialogLabel2 = builder.get_object("addressDialogLabel2") self.addressDialogOkButton = \ builder.get_object("addressDialogOkButton") self.addressDialogCancelButton = \ builder.get_object("addressDialogCancelButton") self.addressDialogAddressEntry = \ builder.get_object("addressDialogAddressEntry") self.macDialog = builder.get_object("macDialog") self.macDialogOkButton = \ builder.get_object("macDialogOkButton") self.macDialogCancelButton = \ builder.get_object("macDialogCancelButton") self.macDialogMacEntry = \ builder.get_object("macDialogMacEntry") self.ipsetDialog = builder.get_object("ipsetDialog") self.ipsetDialogOkButton = \ builder.get_object("ipsetDialogOkButton") self.ipsetDialogCancelButton = \ builder.get_object("ipsetDialogCancelButton") self.ipsetDialogIPSetView = \ builder.get_object("ipsetDialogIPSetView") self.ipsetDialogIPSetStore = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.ipsetDialogIPSetView.append_column( Gtk.TreeViewColumn("IPSet", Gtk.CellRendererText(), text=0)) self.ipsetDialogIPSetView.append_column( Gtk.TreeViewColumn("Type", Gtk.CellRendererText(), text=1)) self.ipsetDialogIPSetView.set_model(self.ipsetDialogIPSetStore) self.ipsetDialogIPSetView.get_selection().connect( \ "changed", self.change_ipset_selection_cb) self.helperDialog = builder.get_object("helperDialog") self.helperDialogOkButton = \ builder.get_object("helperDialogOkButton") self.helperDialogCancelButton = \ builder.get_object("helperDialogCancelButton") self.helperDialogHelperView = \ builder.get_object("helperDialogHelperView") self.helperDialogHelperStore = Gtk.ListStore(GObject.TYPE_STRING) self.helperDialogHelperView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) self.helperDialogHelperView.set_model(self.helperDialogHelperStore) self.helperDialogHelperView.get_selection().connect( \ "changed", self.change_helper_selection_cb) self.moduleDialog = builder.get_object("moduleDialog") self.moduleDialogOkButton = builder.get_object("moduleDialogOkButton") self.moduleDialogCancelButton = \ builder.get_object("moduleDialogCancelButton") self.moduleDialogModuleLabel = builder.get_object("moduleDialogModuleLabel") self.moduleDialogModuleCombobox = \ builder.get_object("moduleDialogModuleCombobox") self.moduleDialogOtherModuleCheck = \ builder.get_object("moduleDialogOtherModuleCheck") self.moduleDialogOtherModuleEntry = \ builder.get_object("moduleDialogOtherModuleEntry") self.sourceDialog = builder.get_object("sourceDialog") self.sourceDialogOkButton = \ builder.get_object("sourceDialogOkButton") self.sourceDialogCancelButton = \ builder.get_object("sourceDialogCancelButton") self.sourceDialogSourceTypeCombobox = \ builder.get_object("sourceDialogSourceTypeCombobox") self.sourceDialogSourceChooser = ChooserButton(builder.get_object( \ "sourceDialogSourceChooser")) self.markDialog = builder.get_object("markDialog") self.markDialogOkButton = \ builder.get_object("markDialogOkButton") self.markDialogCancelButton = \ builder.get_object("markDialogCancelButton") self.markDialogMarkEntry = \ builder.get_object("markDialogMarkEntry") self.markDialogMaskEntry = \ builder.get_object("markDialogMaskEntry") self.serviceBaseDialog = builder.get_object("serviceBaseDialog") self.serviceBaseDialogOkButton = \ builder.get_object("serviceBaseDialogOkButton") self.serviceBaseDialogNameEntry = \ builder.get_object("serviceBaseDialogNameEntry") self.serviceBaseDialogVersionEntry = \ builder.get_object("serviceBaseDialogVersionEntry") self.serviceBaseDialogShortEntry = \ builder.get_object("serviceBaseDialogShortEntry") self.serviceBaseDialogDescText = \ builder.get_object("serviceBaseDialogDescText") self.serviceBaseDialogDescText.get_buffer().connect(\ "changed", self.onServiceBaseDialogChanged) self.icmpDialogIcmpNotebook = \ builder.get_object("icmpDialogIcmpNotebook") self.icmpDialogIcmpEditBox = \ builder.get_object("icmpDialogIcmpEditBox") self.icmpDialogEditIcmpButton = \ builder.get_object("icmpDialogEditIcmpButton") self.icmpDialogRemoveIcmpButton = \ builder.get_object("icmpDialogRemoveIcmpButton") self.icmpDialogLoadDefaultsIcmpButton = \ builder.get_object("icmpDialogLoadDefaultsIcmpButton") self.icmpDialogIcmpView = \ builder.get_object("icmpDialogIcmpView") self.icmpDialogIcmpStore = Gtk.ListStore(GObject.TYPE_STRING) self.icmpDialogIcmpView.append_column( Gtk.TreeViewColumn("", Gtk.CellRendererText(), text=0)) self.icmpDialogIcmpView.set_model(self.icmpDialogIcmpStore) self.icmpDialogIcmpStore.set_sort_column_id( 0, Gtk.SortType.ASCENDING) self.icmpDialogIcmpView.get_selection().connect(\ "changed", self.onChangeIcmp) self.icmpDialogDestIpv4Check = \ builder.get_object("icmpDialogDestIpv4Check") self.icmpDialogDestIpv6Check = \ builder.get_object("icmpDialogDestIpv6Check") self.icmpDialogDestIpv4Eventbox = \ builder.get_object("icmpDialogDestIpv4Eventbox") self.icmpDialogDestIpv4Eventbox.connect(\ "button-press-event", self.icmp_dialog_dest_ipv4_check_cb) self.icmpDialogDestIpv6Eventbox = \ builder.get_object("icmpDialogDestIpv6Eventbox") self.icmpDialogDestIpv6Eventbox.connect(\ "button-press-event", self.icmp_dialog_dest_ipv6_check_cb) self.icmpBaseDialog = builder.get_object("icmpBaseDialog") self.icmpBaseDialogOkButton = \ builder.get_object("icmpBaseDialogOkButton") self.icmpBaseDialogNameEntry = \ builder.get_object("icmpBaseDialogNameEntry") self.icmpBaseDialogVersionEntry = \ builder.get_object("icmpBaseDialogVersionEntry") self.icmpBaseDialogShortEntry = \ builder.get_object("icmpBaseDialogShortEntry") self.icmpBaseDialogDescText = \ builder.get_object("icmpBaseDialogDescText") self.icmpBaseDialogDescText.get_buffer().connect(\ "changed", self.onIcmpBaseDialogChanged) # service dialog self.serviceDialog = builder.get_object("serviceDialog") self.serviceDialogOkButton = builder.get_object("serviceDialogOkButton") self.serviceDialogCancelButton = \ builder.get_object("serviceDialogCancelButton") self.serviceDialogServiceView = \ builder.get_object("serviceDialogServiceView") self.serviceDialogServiceStore = Gtk.ListStore(GObject.TYPE_STRING) self.serviceDialogServiceView.append_column( Gtk.TreeViewColumn("Service", Gtk.CellRendererText(), text=0)) self.serviceDialogServiceView.set_model(self.serviceDialogServiceStore) self.serviceDialogServiceView.get_selection().connect( \ "changed", self.change_service_selection_cb) # icmptype dialog self.icmptypeDialog = builder.get_object("icmptypeDialog") self.icmptypeDialogOkButton = \ builder.get_object("icmptypeDialogOkButton") self.icmptypeDialogCancelButton = \ builder.get_object("icmptypeDialogCancelButton") self.icmptypeDialogIcmptypeView = \ builder.get_object("icmptypeDialogIcmptypeView") self.icmptypeDialogIcmptypeStore = Gtk.ListStore(GObject.TYPE_STRING) self.icmptypeDialogIcmptypeView.append_column( Gtk.TreeViewColumn("ICMP Type", Gtk.CellRendererText(), text=0)) self.icmptypeDialogIcmptypeView.set_model( self.icmptypeDialogIcmptypeStore) self.icmptypeDialogIcmptypeView.get_selection().connect( \ "changed", self.change_icmptype_selection_cb) # firewall client self.fw = client.FirewallClient(wait=1) self.__use_exception_handler = True self.fw.setExceptionHandler(self._exception_handler) self.fw.setNotAuthorizedLoop(True) self.fw.connect("panic-mode-enabled", self.panic_mode_enabled_cb) self.fw.connect("panic-mode-disabled", self.panic_mode_disabled_cb) self.fw.connect("connection-changed", self.connection_changed) self.fw.connect("default-zone-changed", self.default_zone_changed_cb) self.fw.connect("reloaded", self.reload_cb) self.fw.connect("lockdown-enabled", self.lockdown_enabled_cb) self.fw.connect("lockdown-disabled", self.lockdown_disabled_cb) self.fw.connect("log-denied-changed", self.log_denied_changed_cb) self.fw.connect("service-added", self.service_added_cb) self.fw.connect("service-removed", self.service_removed_cb) self.fw.connect("port-added", self.port_added_cb) self.fw.connect("port-removed", self.port_removed_cb) self.fw.connect("protocol-added", self.protocol_added_cb) self.fw.connect("protocol-removed", self.protocol_removed_cb) self.fw.connect("source-port-added", self.source_port_added_cb) self.fw.connect("source-port-removed", self.source_port_removed_cb) self.fw.connect("masquerade-added", self.masquerade_added_cb) self.fw.connect("masquerade-removed", self.masquerade_removed_cb) self.fw.connect("forward-port-added", self.forward_port_added_cb) self.fw.connect("forward-port-removed", self.forward_port_removed_cb) self.fw.connect("icmp-block-added", self.icmp_added_cb) self.fw.connect("icmp-block-removed", self.icmp_removed_cb) self.fw.connect("icmp-block-inversion-added", self.icmp_inversion_added_cb) self.fw.connect("icmp-block-inversion-removed", self.icmp_inversion_removed_cb) self.fw.connect("richrule-added", self.richrule_added_cb) self.fw.connect("richrule-removed", self.richrule_removed_cb) self.fw.connect("interface-added", self.interface_added_cb) self.fw.connect("interface-removed", self.interface_removed_cb) self.fw.connect("zone-of-interface-changed", self.zone_of_interface_changed_cb) self.fw.connect("source-added", self.source_added_cb) self.fw.connect("source-removed", self.source_removed_cb) self.fw.connect("zone-of-source-changed", self.zone_of_source_changed_cb) self.fw.connect("ipset-entry-added", self.ipset_entry_added_cb) self.fw.connect("ipset-entry-removed", self.ipset_entry_removed_cb) self.fw.connect("lockdown-whitelist-command-added", self.lockdown_whitelist_command_added_cb) self.fw.connect("lockdown-whitelist-command-removed", self.lockdown_whitelist_command_removed_cb) self.fw.connect("lockdown-whitelist-context-added", self.lockdown_whitelist_context_added_cb) self.fw.connect("lockdown-whitelist-context-removed", self.lockdown_whitelist_context_removed_cb) self.fw.connect("lockdown-whitelist-uid-added", self.lockdown_whitelist_uid_added_cb) self.fw.connect("lockdown-whitelist-uid-removed", self.lockdown_whitelist_uid_removed_cb) self.fw.connect("lockdown-whitelist-user-added", self.lockdown_whitelist_user_added_cb) self.fw.connect("lockdown-whitelist-user-removed", self.lockdown_whitelist_user_removed_cb) self.fw.connect("direct:chain-added", self.direct_chain_added_cb) self.fw.connect("direct:chain-removed", self.direct_chain_removed_cb) self.fw.connect("direct:rule-added", self.direct_rule_added_cb) self.fw.connect("direct:rule-removed", self.direct_rule_removed_cb) self.fw.connect("direct:passthrough-added", self.direct_passthrough_added_cb) self.fw.connect("direct:passthrough-removed", self.direct_passthrough_removed_cb) self.fw.connect("config:direct:updated", self.direct_updated_cb) self.fw.connect("config:zone-added", self.conf_zone_added_cb) self.fw.connect("config:zone-updated", self.conf_zone_updated_cb) self.fw.connect("config:zone-removed", self.conf_zone_removed_cb) self.fw.connect("config:zone-renamed", self.conf_zone_renamed_cb) self.fw.connect("config:ipset-added", self.conf_ipset_added_cb) self.fw.connect("config:ipset-updated", self.conf_ipset_updated_cb) self.fw.connect("config:ipset-removed", self.conf_ipset_removed_cb) self.fw.connect("config:ipset-renamed", self.conf_ipset_renamed_cb) self.fw.connect("config:service-added", self.conf_service_added_cb) self.fw.connect("config:service-updated", self.conf_service_updated_cb) self.fw.connect("config:service-removed", self.conf_service_removed_cb) self.fw.connect("config:service-renamed", self.conf_service_renamed_cb) self.fw.connect("config:icmptype-added", self.conf_icmp_added_cb) self.fw.connect("config:icmptype-updated", self.conf_icmp_updated_cb) self.fw.connect("config:icmptype-removed", self.conf_icmp_removed_cb) self.fw.connect("config:icmptype-renamed", self.conf_icmp_renamed_cb) self.fw.connect("config:helper-added", self.conf_helper_added_cb) self.fw.connect("config:helper-updated", self.conf_helper_updated_cb) self.fw.connect("config:helper-removed", self.conf_helper_removed_cb) self.fw.connect("config:helper-renamed", self.conf_helper_renamed_cb) self.fw.connect("config:policies:lockdown-whitelist-updated", self.lockdown_whitelist_updated_cb) # settings self.settings.connect("changed::show-ipsets", self.settings_show_ipsets_changed) self.settings_show_ipsets_changed(self.settings, "show-ipsets") self.settings.connect("changed::show-icmp-types", self.settings_show_icmp_types_changed) self.settings_show_icmp_types_changed(self.settings, "show-icmp-types") self.settings.connect("changed::show-direct", self.settings_show_direct_changed) self.settings_show_direct_changed(self.settings, "show-direct") self.settings.connect("changed::show-helpers", self.settings_show_helpers_changed) self.settings_show_helpers_changed(self.settings, "show-helpers") self.settings.connect("changed::show-lockdown-whitelist", self.settings_show_lockdown_whitelist_changed) self.settings_show_lockdown_whitelist_changed(self.settings, "show-lockdown-whitelist") self.settings.connect("changed::show-active-bindings", self.settings_show_active_bindings_changed) self.settings_show_active_bindings_changed(self.settings, "show-active-bindings") # connect self.connections = { } self.connections_uuid = { } if nm_is_imported(): self.fw.bus.add_signal_receiver( self.nm_signal_receiver, dbus_interface=nm_get_dbus_interface(), signal_name='PropertiesChanged', member_keyword='member') else: text = _("No NetworkManager imports available") self._warning(text) self.nm_signal_receiver() # start with no connection self.connection_changed() # mainloop self.mainWindow.show() self.mainloop = GLib.MainLoop() try: self.mainloop.run() except KeyboardInterrupt: self.onQuit() def add_visible_dialog(self, dialog): self.visible_dialogs.append(dialog) def remove_visible_dialog(self, dialog): self.visible_dialogs.append(dialog) def hide_and_remove_visible_dialogs(self): while len(self.visible_dialogs) > 0: dialog = self.visible_dialogs.pop() dialog.hide() def left_menu_cb(self, widget, menu): menu.show_all() def no_select(self, item): item.deselect() def change_zone_interface_editor(self, item, interface, zone): if interface in self.zone_interface_editors: return self.zone_interface_editors[interface].present() editor = ZoneInterfaceEditor(self.fw, interface, zone) editor.set_icon(self.icon) editor.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) editor.set_transient_for(self.mainWindow) self.zone_interface_editors[interface] = editor editor.show_all() result = editor.run() editor.hide() if result == 2: self.fw.changeZoneOfInterface(editor.get_zone(), interface) del self.zone_interface_editors[interface] def change_zone_connection_editor(self, item, connection, zone): if connection in self.zone_connection_editors: return self.zone_connection_editors[connection].present() editor = ZoneConnectionEditor(self.fw, connection, zone) editor.set_icon(self.icon) editor.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) editor.set_transient_for(self.mainWindow) self.zone_connection_editors[connection] = editor editor.show_all() editor.run() editor.hide() del self.zone_connection_editors[connection] def change_zone_source_editor(self, item, source, zone): if source in self.zone_source_editors: return self.zone_source_editors[source].present() editor = ZoneSourceEditor(self.fw, source, zone) editor.set_icon(self.icon) editor.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) editor.set_transient_for(self.mainWindow) self.zone_source_editors[source] = editor editor.show_all() result = editor.run() editor.hide() if result == 2: self.fw.changeZoneOfSource(editor.get_zone(), source) del self.zone_source_editors[source] def onViewIPSet_toggled(self, button): self.settings.set_boolean("show-ipsets", button.get_active()) def settings_show_ipsets_changed(self, settings, key): self.show_ipsets = settings.get_boolean(key) self.ipsetsBox.set_visible(self.show_ipsets) self.ipsetsMenuitem.set_active(self.show_ipsets) if self.show_ipsets: if self.fw.connected: self.load_ipsets() else: self.ipsetConfIPSetStore.clear() def onViewICMPTypes_toggled(self, button): self.settings.set_boolean("show-icmp-types", button.get_active()) def settings_show_icmp_types_changed(self, settings, key): self.show_icmp_types = settings.get_boolean(key) self.icmpTypesBox.set_visible(self.show_icmp_types) self.icmpTypesMenuitem.set_active(self.show_icmp_types) if self.show_icmp_types: if self.fw.connected: self.load_icmps() else: self.icmpDialogIcmpStore.clear() def onViewHelpers_toggled(self, button): self.settings.set_boolean("show-helpers", button.get_active()) def settings_show_helpers_changed(self, settings, key): self.show_helpers = settings.get_boolean(key) self.helpersBox.set_visible(self.show_helpers) self.helpersMenuitem.set_active(self.show_helpers) if self.show_helpers: if self.fw.connected: self.load_helpers() else: self.helperConfHelperStore.clear() def onViewDirect_toggled(self, button): self.settings.set_boolean("show-direct", button.get_active()) def settings_show_direct_changed(self, settings, key): self.show_direct = settings.get_boolean(key) self.directBox.set_visible(self.show_direct) self.directMenuitem.set_active(self.show_direct) if self.show_direct: if self.fw.connected: self.load_direct() else: self.directChainStore.clear() self.directRuleStore.clear() self.directPassthroughStore.clear() def onViewLockdownWhitelist_toggled(self, button): self.settings.set_boolean("show-lockdown-whitelist", button.get_active()) def settings_show_lockdown_whitelist_changed(self, settings, key): self.show_lockdown_whitelist = settings.get_boolean(key) self.lockdownWhitelistBox.set_visible(self.show_lockdown_whitelist) self.lockdownWhitelistMenuitem.set_active(self.show_lockdown_whitelist) if self.show_lockdown_whitelist: if self.fw.connected: self.load_lockdown_whitelist() else: self.lockdownContextStore.clear() self.lockdownCommandStore.clear() self.lockdownUserStore.clear() self.lockdownUidStore.clear() def settings_show_active_bindings_changed(self, settings, key): self.show_active_bindings = settings.get_boolean(key) self.activeBindingsMenuitem.set_active(self.show_active_bindings) if self.show_active_bindings != self.bindingsExpander.get_expanded(): self.bindingsExpander.set_expanded(self.show_active_bindings) def onViewActiveBindings_toggled(self, button): self.settings.set_boolean("show-active-bindings", button.get_active()) def bindings_expander_changed(self, *args): self.show_active_bindings = self.bindingsExpander.get_expanded() self.settings.set_boolean("show-active-bindings", self.show_active_bindings) self.activeBindingsMenuitem.set_active(self.show_active_bindings) def nm_signal_receiver(self, *args, **kwargs): #print("nm_signal_receiver", args, kwargs) self.update_active_zones() self.connections.clear() self.connections_uuid.clear() # do not use NMClient could result in python core dump if nm_is_imported(): try: nm_get_connections(self.connections, self.connections_uuid) except Exception as msg: text = _("Failed to get connections from NetworkManager") self._warning(text) iter = self.interfaceStore.get_iter_first() while iter: interface = self.interfaceStore.get_value(iter, 0) if interface in self.connections: zone = nm_get_zone_of_connection(self.connections[interface]) if zone == "": comment = self.default_zone_used_by_label % \ self.connections[interface] else: comment = self.used_by_label % self.connections[interface] self.interfaceStore.set_value(iter, 1, comment) iter = self.interfaceStore.iter_next(iter) self.change_interface_selection_cb(self.interfaceView.get_selection()) def _dialog(self, text, msg=None, title=None, message_type=Gtk.MessageType.INFO, buttons=("gtk-close", 1)): dialog = Gtk.MessageDialog(parent=None, flags=0, message_type=message_type) dialog.set_markup(text) if title: dialog.set_title(title) if msg: dialog.format_secondary_markup(msg) if len(buttons) > 0: for button,id in buttons: dialog.add_button(button, id) dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) dialog.set_transient_for(self.mainWindow) result = dialog.run() dialog.hide() return result def _warning(self, msg): dialog = Gtk.MessageDialog(parent=None, flags=0, message_type=Gtk.MessageType.WARNING) dialog.set_markup("" + _("Warning") + "") dialog.format_secondary_markup(msg) dialog.add_button("gtk-close", 1) dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) dialog.set_transient_for(self.mainWindow) dialog.run() dialog.hide() def _error(self, msg): if self._dialog(""+_("Error")+"", message_type=Gtk.MessageType.ERROR, msg=msg, buttons=(("gtk-ok", 0),("gtk-quit", 1))) == 1: self.onQuit() def connection_changed(self): if self.fw.connected: self.fw.authorizeAll() self.statusLabel.set_text(self.connected_label) self.default_zone = self.fw.getDefaultZone() self.defaultZoneLabel.set_text(self.default_zone) self.log_denied = self.fw.getLogDenied() self.logDeniedLabel.set_text(self.log_denied) self.automatic_helpers = self.fw.getAutomaticHelpers() self.set_automaticHelpersLabel(self.automatic_helpers) lockdown = self.fw.queryLockdown() if lockdown: self.lockdownLabel.set_text(self.enabled) else: self.lockdownLabel.set_text(self.disabled) panic = self.fw.queryPanicMode() if panic: self.panicLabel.set_text(self.enabled) else: self.panicLabel.set_text(self.disabled) self.modifiedLabel.set_text("") self.lockdownMenuitem.handler_block(self.lockdown_check_id) self.lockdownMenuitem.set_active(lockdown) self.lockdownMenuitem.handler_unblock(self.lockdown_check_id) self.panicMenuitem.handler_block(self.panic_check_id) self.panicMenuitem.set_active(panic) self.panicMenuitem.handler_unblock(self.panic_check_id) self.nf_conntrack_helpers = \ self.fw.get_property("nf_conntrack_helpers") for x in self.nf_conntrack_helpers.keys(): self.moduleDialogModuleCombobox.append_text(x) if self.connection_lost: self.onChangeView() else: self.currentViewCombobox.set_active(0) self.waitingWindow.hide() self.waitingWindowSpinner.stop() else: if self.statusLabel.get_text() == self.connected_label: self.connection_lost = True self.statusLabel.set_text(self.trying_to_connect_label) self.defaultZoneLabel.set_text("-") self.lockdownLabel.set_text("-") self.panicLabel.set_text("-") self.moduleDialogModuleCombobox.remove_all() self.nf_conntrack_helpers.clear() self.hide_and_remove_visible_dialogs() self.waitingWindow.show() self.waitingWindowLabel.set_text(self.trying_to_connect_label) self.waitingWindowSpinner.start() self.update_active_zones() self.mainPaned.set_sensitive(self.fw.connected) # make all entries in options menu (in)sensitive for child in self.optionsMenuitem.get_submenu().get_children(): child.set_sensitive(self.fw.connected) # make all entries in view menu (in)sensitive for child in self.viewMenuitem.get_submenu().get_children(): child.set_sensitive(self.fw.connected) def changes_applied(self): self.modifiedLabel.set_text(self.changes_applied_label) if self.modified_timer: GLib.source_remove(self.modified_timer) self.modified_timer = GLib.timeout_add_seconds( 5, self.clear_changes_applied, None) def clear_changes_applied(self, *args): self.modifiedLabel.set_text("") self.modified_timer = None def panic_mode_enabled_cb(self): self.panicLabel.set_text(self.enabled) self.panicMenuitem.handler_block(self.panic_check_id) self.panicMenuitem.set_active(True) self.panicMenuitem.handler_unblock(self.panic_check_id) def panic_mode_disabled_cb(self): self.panicLabel.set_text(self.disabled) self.panicMenuitem.handler_block(self.panic_check_id) self.panicMenuitem.set_active(False) self.panicMenuitem.handler_unblock(self.panic_check_id) def reload_cb(self): self.default_zone = self.fw.getDefaultZone() self.defaultZoneLabel.set_text(self.default_zone) self.log_denied = self.fw.getLogDenied() self.logDeniedLabel.set_text(self.log_denied) self.automatic_helpers = self.fw.getAutomaticHelpers() self.set_automaticHelpersLabel(self.automatic_helpers) self.load_ipsets() self.load_zones() self.load_services() self.load_icmps() self.load_helpers() self.load_direct() self.load_lockdown_whitelist() self.update_active_zones() def load_zones(self): selected_zone = self.get_selected_zone() if self.runtime_view: zones = self.fw.getZones() else: zones = self.fw.config().getZoneNames() # reset and fill notebook content according to view selection = self.zoneView.get_selection() selection.set_mode(Gtk.SelectionMode.NONE) self.zoneStore.clear() self.serviceStore.clear() self.portStore.clear() self.protocolStore.clear() self.forwardStore.clear() self.icmpStore.clear() self.richRuleStore.clear() self.interfaceStore.clear() self.sourceStore.clear() if self.runtime_view: for item in self.fw.listServices(): self.serviceStore.append([False, item]) for item in self.fw.listIcmpTypes(): self.icmpStore.append([False, item]) else: for item in self.fw.config().getServiceNames(): self.serviceStore.append([False, item]) for item in self.fw.config().getIcmpTypeNames(): self.icmpStore.append([False, item]) # zones active_zones = self.active_zones.keys() for zone in zones: if zone in active_zones: self.zoneStore.append([zone, Pango.Weight.BOLD]) else: self.zoneStore.append([zone, Pango.Weight.NORMAL]) if selected_zone in zones: _zone = selected_zone else: _zone = self.defaultZoneLabel.get_text() selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.zoneStore.get_iter_first() while iter: if self.zoneStore.get_value(iter, 0) == _zone: selection.select_iter(iter) return iter = self.zoneStore.iter_next(iter) # fallback selection.select_path(0) if not self.get_selected_zone(): self.zoneEditEditButton.set_sensitive(False) self.zoneEditRemoveButton.set_sensitive(False) self.zoneEditLoadDefaultsButton.set_sensitive(False) self.zoneNotebook.set_sensitive(False) def get_active_service(self): selection = self.serviceConfServiceView.get_selection() (model, iter) = selection.get_selected() if iter: return self.serviceConfServiceStore.get_value(iter, 0) return None def load_services(self): active_service = self.get_active_service() if self.runtime_view: services = self.fw.listServices() else: services = self.fw.config().getServiceNames() selection = self.serviceConfServiceView.get_selection() selection.set_mode(Gtk.SelectionMode.NONE) # reset and fill notebook content according to view self.serviceConfServiceStore.clear() # services for service in services: self.serviceConfServiceStore.append([service]) selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.serviceConfServiceStore.get_iter_first() while iter: if self.serviceConfServiceStore.get_value(iter, 0) == \ active_service: selection.select_iter(iter) return iter = self.serviceConfServiceStore.iter_next(iter) selection.select_path(0) if not self.get_active_service(): self.serviceConfEditServiceButton.set_sensitive(False) self.serviceConfRemoveServiceButton.set_sensitive(False) self.serviceConfLoadDefaultsServiceButton.set_sensitive(False) self.serviceConfServiceNotebook.set_sensitive(False) def change_rich_rule_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editRichRuleButton.set_sensitive(True) self.removeRichRuleButton.set_sensitive(True) else: self.editRichRuleButton.set_sensitive(False) self.removeRichRuleButton.set_sensitive(False) def service_added_cb(self, zone, service, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.serviceStore.get_iter_first() while iter: if self.serviceStore.get_value(iter, 1) == service: self.serviceStore.set_value(iter, 0, True) break iter = self.serviceStore.iter_next(iter) def service_removed_cb(self, zone, service): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.serviceStore.get_iter_first() while iter: if self.serviceStore.get_value(iter, 1) == service: self.serviceStore.set_value(iter, 0, False) break iter = self.serviceStore.iter_next(iter) def service_toggle_cb(self, toggle, row, model, col): iter = model.get_iter(row) old_val = model.get(iter, col)[0] name = model.get(iter, 1)[0] selected_zone = self.get_selected_zone() if self.runtime_view: if not old_val: self.fw.addService(selected_zone, name) else: self.fw.removeService(selected_zone, name) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not old_val: zone.addService(name) else: zone.removeService(name) self.changes_applied() def change_port_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editPortButton.set_sensitive(True) self.removePortButton.set_sensitive(True) else: self.editPortButton.set_sensitive(False) self.removePortButton.set_sensitive(False) def change_source_port_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editSourcePortButton.set_sensitive(True) self.removeSourcePortButton.set_sensitive(True) else: self.editSourcePortButton.set_sensitive(False) self.removeSourcePortButton.set_sensitive(False) def change_protocol_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editProtocolButton.set_sensitive(True) self.removeProtocolButton.set_sensitive(True) else: self.editProtocolButton.set_sensitive(False) self.removeProtocolButton.set_sensitive(False) def change_forward_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editForwardButton.set_sensitive(True) self.removeForwardButton.set_sensitive(True) else: self.editForwardButton.set_sensitive(False) self.removeForwardButton.set_sensitive(False) def masquerade_check_cb(self, *args): selected_zone = self.get_selected_zone() if self.runtime_view: if not self.masqueradeCheck.get_active(): if not self.fw.queryMasquerade(selected_zone): self.fw.addMasquerade(selected_zone) self.changes_applied() else: if self.fw.queryMasquerade(selected_zone): self.fw.removeMasquerade(selected_zone) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) zone.setMasquerade(not self.masqueradeCheck.get_active()) self.changes_applied() def masquerade_added_cb(self, zone, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return self.masqueradeCheck.set_active(True) def masquerade_removed_cb(self, zone): if not self.runtime_view or zone != self.get_selected_zone(): return self.masqueradeCheck.set_active(False) def icmp_toggle_cb(self, toggle, row, model, col): iter = model.get_iter(row) old_val = model.get(iter, col)[0] name = model.get(iter, 1)[0] selected_zone = self.get_selected_zone() if self.runtime_view: if not old_val: self.fw.addIcmpBlock(selected_zone, name) else: self.fw.removeIcmpBlock(selected_zone, name) else: zone = self.fw.config().getZoneByName(selected_zone) if not old_val: zone.addIcmpBlock(name) else: zone.removeIcmpBlock(name) self.changes_applied() def icmp_added_cb(self, zone, icmp, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.icmpStore.get_iter_first() while iter: if self.icmpStore.get_value(iter, 1) == icmp: self.icmpStore.set_value(iter, 0, True) break iter = self.icmpStore.iter_next(iter) def icmp_removed_cb(self, zone, icmp): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.icmpStore.get_iter_first() while iter: if self.icmpStore.get_value(iter, 1) == icmp: self.icmpStore.set_value(iter, 0, False) break iter = self.icmpStore.iter_next(iter) def icmp_block_inversion_check_cb(self, *args): selected_zone = self.get_selected_zone() if self.runtime_view: if not self.icmpBlockInversionCheck.get_active(): if not self.fw.queryIcmpBlockInversion(selected_zone): self.fw.addIcmpBlockInversion(selected_zone) self.changes_applied() else: if self.fw.queryIcmpBlockInversion(selected_zone): self.fw.removeIcmpBlockInversion(selected_zone) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) zone.setIcmpBlockInversion(not self.icmpBlockInversionCheck.get_active()) self.changes_applied() def icmp_inversion_added_cb(self, zone): if not self.runtime_view or zone != self.get_selected_zone(): return self.icmpBlockInversionCheck.set_active(True) def icmp_inversion_removed_cb(self, zone): if not self.runtime_view or zone != self.get_selected_zone(): return self.icmpBlockInversionCheck.set_active(False) def _add_rich_rule(self, obj): # family = "ipv4 & ipv6" family = "all" src = "" dest = "" elem = "" log = "" audit = "" action = "" if obj.family: family = obj.family if obj.action: if type(obj.action) == rich.Rich_Accept: action = _("accept") elif type(obj.action) == rich.Rich_Reject: action = _("reject") if obj.action.type is not None: action += "\n" + obj.action.type elif type(obj.action) == rich.Rich_Drop: action = _("drop") elif type(obj.action) == rich.Rich_Mark: action = _("mark") action += "\nset " + obj.action.set if obj.action.limit: action += "\n" + _("limit") + " " + obj.action.limit.value if obj.source: if obj.source.invert: src = "! " if obj.source.addr: src += "IP: %s" % obj.source.addr elif obj.source.mac: src += "MAC: %s" % obj.source.mac elif obj.source.ipset: src += "ipset:%s" % obj.source.ipset if obj.destination: dest = obj.destination.addr if obj.destination.invert: dest = "! %s" % dest if obj.element: if type(obj.element) == rich.Rich_Service: elem = _("service") + "\n" + obj.element.name elif type(obj.element) == rich.Rich_Port: elem = _("port") + "\n%s/%s" % (obj.element.port, obj.element.protocol) elif type(obj.element) == rich.Rich_Protocol: elem = _("protocol") + "\n" + obj.element.value elif type(obj.element) == rich.Rich_Masquerade: elem = _("masquerade") elif type(obj.element) == rich.Rich_IcmpBlock: elem = "icmp-block" + "\n%s" % obj.element.name elif type(obj.element) == rich.Rich_IcmpType: elem = "icmp-type" + "\n%s" % obj.element.name elif type(obj.element) == rich.Rich_ForwardPort: elem = "forward-port" + "\n%s" % self.create_fwp_string( obj.element.port, obj.element.protocol, obj.element.to_port, obj.element.to_address) elif type(obj.element) == rich.Rich_SourcePort: elem = _("source-port") + "\n%s/%s" % (obj.element.port, obj.element.protocol) else: elem = str(obj.element) if obj.log: if obj.log.prefix: log = '"%s"' % obj.log.prefix if obj.log.level: log += "\n" + _("level") + " " + obj.log.level if obj.log.limit: log += "\n" + _("limit") + " " + obj.log.limit.value if log == "": log = _("yes") if obj.audit: if obj.audit.limit: audit += "\n" + _("limit") + " " + obj.audit.limit.value if audit == "": audit = _("yes") self.richRuleStore.append([obj, family, action, elem, src, dest, log, audit]) def richrule_added_cb(self, zone, rule, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return obj = rich.Rich_Rule(rule_str=rule) iter = self.richRuleStore.get_iter_first() while iter: if str(self.richRuleStore.get_value(iter, 0)) == str(obj): # already there return iter = self.richRuleStore.iter_next(iter) # nothing found, so add it self._add_rich_rule(obj) def richrule_removed_cb(self, zone, rule): if not self.runtime_view or zone != self.get_selected_zone(): return obj = rich.Rich_Rule(rule_str=rule) iter = self.richRuleStore.get_iter_first() while iter: if str(self.richRuleStore.get_value(iter, 0)) == str(obj): self.richRuleStore.remove(iter) break iter = self.richRuleStore.iter_next(iter) def _add_interface(self, interface): comment = "" if interface in self.connections: zone = nm_get_zone_of_connection(self.connections[interface]) if zone == "": comment = self.default_zone_used_by_label % \ self.connections[interface] else: comment = self.used_by_label % self.connections[interface] self.interfaceStore.append([interface, comment]) def interface_added_cb(self, zone, interface): self.update_active_zones() if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.interfaceStore.get_iter_first() while iter: if self.interfaceStore.get_value(iter, 0) == interface: # already there return iter = self.interfaceStore.iter_next(iter) # nothing found, so add it self._add_interface(interface) def interface_removed_cb(self, zone, interface): self.update_active_zones() if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.interfaceStore.get_iter_first() while iter: if self.interfaceStore.get_value(iter, 0) == interface: self.interfaceStore.remove(iter) break iter = self.interfaceStore.iter_next(iter) def zone_of_interface_changed_cb(self, zone, interface): self.update_active_zones() if not self.runtime_view: return iter = self.interfaceStore.get_iter_first() while iter: if self.interfaceStore.get_value(iter, 0) == interface: # it is here, remove it self.interfaceStore.remove(iter) iter = self.interfaceStore.iter_next(iter) # add if zone is active_zone if zone == self.get_selected_zone(): self._add_interface(interface) def source_added_cb(self, zone, source): self.update_active_zones() if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.sourceStore.get_iter_first() while iter: if self.sourceStore.get_value(iter, 0) == source: # already there return iter = self.sourceStore.iter_next(iter) # nothing found, so add it self.sourceStore.append([source]) def source_removed_cb(self, zone, source): self.update_active_zones() if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.sourceStore.get_iter_first() while iter: if self.sourceStore.get_value(iter, 0) == source: self.sourceStore.remove(iter) break iter = self.sourceStore.iter_next(iter) def zone_of_source_changed_cb(self, zone, source): self.update_active_zones() if not self.runtime_view: return iter = self.sourceStore.get_iter_first() while iter: if self.sourceStore.get_value(iter, 0) == source: # it is here, remove it self.sourceStore.remove(iter) iter = self.sourceStore.iter_next(iter) # add if zone is active_zone if zone == self.get_selected_zone(): self.sourceStore.append([source]) def conf_zone_added_cb(self, zone): if self.runtime_view: return # check if zone is in store iter = self.zoneStore.get_iter_first() while iter: if self.zoneStore.get_value(iter, 0) == zone: return iter = self.zoneStore.iter_next(iter) # not in list, append if zone in self.active_zones: self.zoneStore.append([zone, Pango.Weight.BOLD]) else: self.zoneStore.append([zone, Pango.Weight.NORMAL]) selection = self.zoneView.get_selection() if selection.count_selected_rows() == 0: selection.select_path(0) def conf_zone_updated_cb(self, zone): if self.runtime_view or zone != self.get_selected_zone(): return self.onChangeZone() def conf_zone_removed_cb(self, zone): if self.runtime_view: return iter = self.zoneStore.get_iter_first() while iter: if self.zoneStore.get_value(iter, 0) == zone: self.zoneStore.remove(iter) break iter = self.zoneStore.iter_next(iter) def conf_zone_renamed_cb(self, zone): if self.runtime_view: return # Get all zones, renamed the one that is missing. # If more or less than one is missing, update zone store. zones = self.fw.config().getZoneNames() use_iter = None iter = self.zoneStore.get_iter_first() while iter: if self.zoneStore.get_value(iter, 0) not in zones: if use_iter is not None: return self.load_zones() use_iter = iter iter = self.zoneStore.iter_next(iter) if use_iter is None: return self.load_zones() self.zoneStore.set_value(use_iter, 0, zone) def deactivate_exception_handler(self): self.__use_exception_handler = False def activate_exception_handler(self): self.__use_exception_handler = True def _exception_handler(self, exception_message): if not self.__use_exception_handler: raise if "NotAuthorizedException" in exception_message: self._error(_("Authorization failed.")) elif "INVALID_NAME" in exception_message: msg = exception_message.replace("INVALID_NAME", functions.b2u(_("Invalid name"))) self._warning(msg) elif "NAME_CONFLICT" in exception_message: msg = exception_message.replace( "NAME_CONFLICT", functions.b2u(_("Name already exists"))) self._warning(msg) elif "NO_DEFAULTS" in exception_message: pass else: self._error(exception_message) def get_selected_zone(self): selection = self.zoneView.get_selection() (model, iter) = selection.get_selected() if iter: return self.zoneStore.get_value(iter, 0) return None def onQuit(self, *args): self.mainloop.quit() sys.exit() def onAbout(self, *args): self.aboutDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.aboutDialog.set_transient_for(self.mainWindow) self.aboutDialog.show_all() self.aboutDialog.run() self.aboutDialog.hide() def onReloadFirewalld(self, *args): self.fw.reload() def onChangeView(self, *args): # Fix interaction problem of changed event of gtk combobox with # polkit-kde by processing all remaining events. # # The changed callback is signaled before the popup window has been # destroyed and before the focus (keyboard and mouse) has been reset. # This results in a deadlock in KDE and Qt, because the polkit KDE # agent can not get the focus and the user has no chance to enter the # desired password into the agent and is also not able to close the # agent with the mouse. The focus is still on the combobox popup. Gdk.DisplayManager.get().get_default_display().flush() self.fw.authorizeAll() self.runtime_view = (self.currentViewCombobox.get_active_text() == \ _("Runtime")) self.zoneEditBox.set_sensitive(not self.runtime_view) self.serviceConfDestinationGrid.set_sensitive(not self.runtime_view) self.icmpDialogDestIpv4Check.set_sensitive(not self.runtime_view) self.icmpDialogDestIpv6Check.set_sensitive(not self.runtime_view) self.ipsetConfEntryBox.set_sensitive(False) if self.runtime_view: self.zoneEditBox.hide() self.ipsetConfIPSetEditBox.hide() self.serviceConfServiceEditBox.hide() self.serviceConfPortBox.hide() self.serviceConfProtocolBox.hide() self.serviceConfSourcePortBox.hide() self.serviceConfModuleBox.hide() self.icmpDialogIcmpEditBox.hide() self.helperConfHelperEditBox.hide() self.helperConfPortBox.hide() else: self.zoneEditBox.show() self.ipsetConfIPSetEditBox.show() self.serviceConfServiceEditBox.show() self.serviceConfPortBox.show() self.serviceConfProtocolBox.show() self.serviceConfSourcePortBox.show() self.serviceConfModuleBox.show() self.icmpDialogIcmpEditBox.show() self.helperConfHelperEditBox.show() self.helperConfPortBox.show() self.load_ipsets() self.load_zones() self.load_services() self.load_icmps() self.load_helpers() self.load_direct() self.load_lockdown_whitelist() def update_active_zones(self): self.active_zones.clear() # remove all entries for the left menu left_menu_children = self.left_menu.get_children() for child in left_menu_children: self.left_menu.remove(child) child.destroy() # add connecitons entry item = Gtk.MenuItem.new() label = Gtk.Label() label.set_markup(escape(_("Connections"))) label.set_alignment(0, 0.5) item.add(label) item.connect("select", self.no_select) self.left_menu.append(item) if self.fw.connected: self.active_zones = self.fw.getActiveZones() else: self.active_zones = { } # clean bindingsView, leave connections, interfaces and sources entries self.bindingsView.get_selection().set_mode(Gtk.SelectionMode.NONE) iter = self.bindingsStore.iter_children(self.connectionsIter) while iter: self.bindingsStore.remove(iter) iter = self.bindingsStore.iter_children(self.connectionsIter) iter = self.bindingsStore.iter_children(self.interfacesIter) while iter: self.bindingsStore.remove(iter) iter = self.bindingsStore.iter_children(self.interfacesIter) iter = self.bindingsStore.iter_children(self.sourcesIter) while iter: self.bindingsStore.remove(iter) iter = self.bindingsStore.iter_children(self.sourcesIter) self.changeBindingsButton.set_sensitive(False) # get all active connections (NM) and interfaces connections = { } interfaces = { } sources = { } for zone in sorted(self.active_zones): if "interfaces" in self.active_zones[zone]: for interface in sorted(self.active_zones[zone]["interfaces"]): if interface not in self.connections: interfaces[interface] = zone if "sources" in self.active_zones[zone]: for source in sorted(self.active_zones[zone]["sources"]): sources[source] = zone # NM controlled connections for interface in self.connections: connection = self.connections[interface] if connection not in connections: zone = nm_get_zone_of_connection(connection) connections[connection] = [ zone, [ interface, ] ] else: connections[connection][1].append(interface) # add NM controlled entries for connection in sorted(connections): [ zone, _interfaces ] = connections[connection] item = Gtk.MenuItem.new() hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) label = Gtk.Label() if zone == "": label.set_markup("%s (%s)\n%s: %s" % \ (connection, ",".join(_interfaces), escape(_("Default Zone")), self.default_zone)) else: label.set_markup("%s (%s)\n%s: %s" % \ (connection, ",".join(_interfaces), escape(_("Zone")), zone)) label.set_alignment(0, 0.5) label.set_padding(12, 0) hbox.pack_start(label, True, True, 0) item.add(hbox) item.connect("activate", self.change_zone_connection_editor, connection, zone) self.left_menu.append(item) if zone == "": self.bindingsStore.append( self.connectionsIter, [ "%s (%s)\n%s" % ( connection, ",".join(_interfaces), _("Default Zone: %s") % self.default_zone), connection, zone ]) else: self.bindingsStore.append( self.connectionsIter, [ "%s (%s)\n%s" % ( connection, ",".join(_interfaces), _("Zone: %s") % zone), connection, zone ]) item = Gtk.MenuItem.new() label = Gtk.Label() label.set_markup(escape(_("Interfaces"))) label.set_alignment(0, 0.5) item.add(label) item.connect("select", self.no_select) self.left_menu.append(item) if len(interfaces) > 0: # add other interfaces for interface in sorted(interfaces): zone = interfaces[interface] item = Gtk.MenuItem.new() hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) label = Gtk.Label() label.set_markup("%s\n%s: %s" % \ (interface, escape(_("Zone")), zone)) label.set_alignment(0, 0.5) label.set_padding(12, 0) hbox.pack_start(label, True, True, 0) item.add(hbox) item.connect("activate", self.change_zone_interface_editor, interface, zone) self.left_menu.append(item) self.bindingsStore.append( self.interfacesIter, [ "%s\n%s" % (interface, _("Zone: %s") % zone), interface, zone ]) item = Gtk.MenuItem.new() label = Gtk.Label() label.set_markup(escape(_("Sources"))) label.set_alignment(0, 0.5) item.add(label) item.connect("select", self.no_select) self.left_menu.append(item) if len(sources) > 0: for source in sorted(sources): zone = sources[source] item = Gtk.MenuItem.new() hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) label = Gtk.Label() label.set_markup("%s\n%s: %s" % \ (source, escape(_("Zone")), zone)) label.set_alignment(0, 0.5) label.set_padding(12, 0) hbox.pack_start(label, True, True, 0) item.add(hbox) item.connect("activate", self.change_zone_source_editor, source, zone) self.left_menu.append(item) self.bindingsStore.append( self.sourcesIter, [ "%s\n%s" % (source, _("Zone: %s") % zone), source, zone ]) self.bindingsView.expand_all() self.bindingsView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) iter = self.zoneStore.get_iter_first() while iter: if self.zoneStore.get_value(iter, 0) in self.active_zones.keys(): self.zoneStore.set_value(iter, 1, Pango.Weight.BOLD) else: self.zoneStore.set_value(iter, 1, Pango.Weight.NORMAL) iter = self.zoneStore.iter_next(iter) def onChangeDefaultZone(self, *args): self.defaultZoneStore.clear() zones = self.fw.getZones() # self.default_zone = self.fw.getDefaultZone() for zone in zones: if zone == self.default_zone: self.defaultZoneStore.append([zone, Pango.Weight.BOLD]) else: self.defaultZoneStore.append([zone, Pango.Weight.NORMAL]) selection = self.defaultZoneView.get_selection() if self.default_zone in zones: selection.select_path(zones.index(self.default_zone)) else: selection.set_mode(Gtk.SelectionMode.NONE) self.defaultZoneDialogOkButton.set_sensitive(False) self.defaultZoneDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.defaultZoneDialog.set_transient_for(self.mainWindow) self.defaultZoneDialog.show_all() self.add_visible_dialog(self.defaultZoneDialog) result = self.defaultZoneDialog.run() self.defaultZoneDialog.hide() self.remove_visible_dialog(self.defaultZoneDialog) if result == 1: (model, iter) = selection.get_selected() if not iter: return new_default_zone = model.get(iter, 0)[0] if new_default_zone != self.default_zone: self.fw.setDefaultZone(new_default_zone) self.default_zone = new_default_zone self.changes_applied() def on_logDeniedDialogValueCombobox_changed(self, combo): self.logDeniedDialogOkButton.set_sensitive( combo.get_active_text() != self.log_denied) def onChangeLogDenied(self, *args): combobox_select_text(self.logDeniedDialogValueCombobox, self.fw.getLogDenied()) self.logDeniedDialogOkButton.set_sensitive(False) self.logDeniedDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.logDeniedDialog.set_transient_for(self.mainWindow) self.logDeniedDialog.show_all() self.add_visible_dialog(self.logDeniedDialog) result = self.logDeniedDialog.run() self.logDeniedDialog.hide() self.remove_visible_dialog(self.logDeniedDialog) if result == 1: value = self.logDeniedDialogValueCombobox.get_active_text() if value != self.log_denied: self.fw.setLogDenied(value) self.log_denied = value self.changes_applied() def log_denied_changed_cb(self, value): self.logDeniedLabel.set_text(value) combobox_select_text(self.logDeniedDialogValueCombobox, value) def set_automaticHelpersLabel(self, value): if value == "system": self.automaticHelpersLabel.set_text( "%s (%s)" % (value, { 0:"off", 1:"on" }[ self.fw.get_property("nf_conntrack_helper_setting")])) else: self.automaticHelpersLabel.set_text(value) def on_automaticHelpersDialogValueCombobox_changed(self, combo): self.automaticHelpersDialogOkButton.set_sensitive( combo.get_active_text() != self.automatic_helpers) def onChangeAutomaticHelpers(self, *args): combobox_select_text(self.automaticHelpersDialogValueCombobox, self.fw.getAutomaticHelpers()) self.automaticHelpersDialogOkButton.set_sensitive(False) self.automaticHelpersDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.automaticHelpersDialog.set_transient_for(self.mainWindow) self.automaticHelpersDialog.show_all() self.add_visible_dialog(self.automaticHelpersDialog) result = self.automaticHelpersDialog.run() self.automaticHelpersDialog.hide() self.remove_visible_dialog(self.automaticHelpersDialog) if result == 1: value = self.automaticHelpersDialogValueCombobox.get_active_text() if value != self.automatic_helpers: self.fw.setAutomaticHelpers(value) self.automatic_helpers = value self.changes_applied() def automatic_helpers_changed_cb(self, value): self.set_automaticHelpersLabel(value) combobox_select_text(self.automaticHelpersDialogValueCombobox, value) def onRuntimeToPermanent(self, *args): self.fw.runtimeToPermanent() def on_defaultZoneViewSelection_changed(self, selection): (model, iter) = selection.get_selected() if not iter: return new_default_zone = model.get(iter, 0)[0] self.defaultZoneDialogOkButton.set_sensitive( \ new_default_zone != self.default_zone) def default_zone_changed_cb(self, zone): self.default_zone = zone self.defaultZoneLabel.set_text(zone) self.update_active_zones() def onSelectBinding(self, *args): selection = self.bindingsView.get_selection() (model, iter) = selection.get_selected() if not iter: self.changeBindingsButton.set_sensitive(False) return parent_iter = self.bindingsStore.iter_parent(iter) if parent_iter is None: selection.unselect_all() self.changeBindingsButton.set_sensitive(False) #self.editBindingsButton.set_sensitive(False) return if self.bindingsStore.get_value(parent_iter, 0) == _("Connections"): self.changeBindingsButton.set_sensitive(True) #self.editBindingsButton.set_sensitive(False) elif self.bindingsStore.get_value(parent_iter, 0) == _("Interfaces"): self.changeBindingsButton.set_sensitive(True) #self.editBindingsButton.set_sensitive(True) elif self.bindingsStore.get_value(parent_iter, 0) == _("Sources"): self.changeBindingsButton.set_sensitive(True) #self.editBindingsButton.set_sensitive(True) def onBindingClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.onChangeBinding() def onChangeBinding(self, *args): selection = self.bindingsView.get_selection() (model, iter) = selection.get_selected() if not iter: return parent_iter = self.bindingsStore.iter_parent(iter) if parent_iter is None: return item = self.bindingsStore.get_value(iter, 1) zone = self.bindingsStore.get_value(iter, 2) if self.bindingsStore.get_value(parent_iter, 0) == _("Connections"): self.change_zone_connection_editor(None, item, zone) elif self.bindingsStore.get_value(parent_iter, 0) == _("Interfaces"): self.change_zone_interface_editor(None, item, zone) elif self.bindingsStore.get_value(parent_iter, 0) == _("Sources"): self.change_zone_source_editor(None, item, zone) #def onEditBindingClicked(self, widget, event): # if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: # self.onEditBinding() #def onEditBinding(self, *args): # return def onChangeZone(self, *args): selected_zone = self.get_selected_zone() ### load zone settings self.portStore.clear() self.protocolStore.clear() self.forwardStore.clear() self.sourcePortStore.clear() self.richRuleStore.clear() self.interfaceStore.clear() self.sourceStore.clear() self.serviceView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.portView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.protocolView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.forwardView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.sourcePortView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.icmpView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.richRuleView.get_selection().set_mode(Gtk.SelectionMode.NONE) self.zoneNotebook.set_tooltip_markup("") if not selected_zone: self.zoneEditEditButton.set_sensitive(False) self.zoneEditRemoveButton.set_sensitive(False) self.zoneEditLoadDefaultsButton.set_sensitive(False) self.zoneNotebook.set_sensitive(False) iter = self.serviceStore.get_iter_first() while iter: self.serviceStore.set_value(iter, 0, False) iter = self.serviceStore.iter_next(iter) self.masqueradeCheck.set_active(False) iter = self.icmpStore.get_iter_first() while iter: self.icmpStore.set_value(iter, 0, False) iter = self.icmpStore.iter_next(iter) self.icmpBlockInversionCheck.set_active(False) return self.zoneEditEditButton.set_sensitive(True) self.zoneNotebook.set_sensitive(True) if self.runtime_view: # load runtime configuration try: settings = self.fw.getZoneSettings(selected_zone) except: return default = False builtin = False else: # load permanent configuration try: zone = self.fw.config().getZoneByName(selected_zone) except: return settings = zone.getSettings() props = zone.get_properties() default = props["default"] builtin = props["builtin"] services = settings.getServices() ports = settings.getPorts() protocols = settings.getProtocols() masquerade = settings.getMasquerade() forward_ports = settings.getForwardPorts() source_ports = settings.getSourcePorts() icmpblocks = settings.getIcmpBlocks() rules = settings.getRichRules() interfaces = settings.getInterfaces() sources = settings.getSources() icmp_block_inversion = settings.getIcmpBlockInversion() self.zoneNotebook.set_sensitive(True) self.zoneEditRemoveButton.set_sensitive(not builtin and default) self.zoneEditLoadDefaultsButton.set_sensitive(not default) # set services _services = services[:] iter = self.serviceStore.get_iter_first() while iter: name = self.serviceStore.get_value(iter, 1) if name in _services: self.serviceStore.set_value(iter, 0, True) _services.remove(name) else: self.serviceStore.set_value(iter, 0, False) iter = self.serviceStore.iter_next(iter) # handle unknown services for name in _services: text = _("Zone '%s': Service '%s' is not available.") % \ (selected_zone, name) result = self._dialog(text, message_type=Gtk.MessageType.WARNING, title=_("Warning"), buttons=((_("Remove"), 1), (_("Ignore"), 2))) if result == 1: if self.runtime_view: self.fw.removeService(selected_zone, name) else: settings.removeService(name) zone.update(settings) self.changes_applied() # set ports for item in ports: self.portStore.append(item) # set protocols for item in protocols: self.protocolStore.append([item]) # set masquerade self.masqueradeCheck.set_active(masquerade) # set forward ports for item in forward_ports: self.forwardStore.append(item) # set source ports for item in source_ports: self.sourcePortStore.append(item) # set icmpblocks _icmpblocks = icmpblocks[:] iter = self.icmpStore.get_iter_first() while iter: name = self.icmpStore.get_value(iter, 1) if name in _icmpblocks: self.icmpStore.set_value(iter, 0, True) _icmpblocks.remove(name) else: self.icmpStore.set_value(iter, 0, False) iter = self.icmpStore.iter_next(iter) self.icmpBlockInversionCheck.set_active(icmp_block_inversion) # handle unknown icmpblocks for name in _icmpblocks: text = _("Zone '%s': ICMP type '%s' is not available.") % \ (selected_zone, name) result = self._dialog(text, message_type=Gtk.MessageType.WARNING, title=_("Warning"), buttons=((_("Remove"), 1),(_("Ignore"), 2))) if result == 1: if self.runtime_view: self.fw.removeIcmpBlock(selected_zone, name) else: settings.removeIcmpBlock(name) zone.update(settings) self.changes_applied() # set rich rules for item in rules: rule = rich.Rich_Rule(rule_str=item) self._add_rich_rule(rule) # set interfaces for item in interfaces: self._add_interface(item) # set sources for item in sources: self.sourceStore.append([item]) self.serviceView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.portView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.protocolView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.forwardView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.sourcePortView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.icmpView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.richRuleView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.interfaceView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.sourceView.get_selection().set_mode(Gtk.SelectionMode.SINGLE) def onAddZone(self, *args): if self.runtime_view: return self.add_edit_zone(True) def onRemoveZone(self, *args): if self.runtime_view: return selected_zone = self.get_selected_zone() zone = self.fw.config().getZoneByName(selected_zone) zone.remove() self.changes_applied() self.load_zones() self.onChangeZone() def onEditZone(self, *args): if self.runtime_view: return self.add_edit_zone(False) def onLoadDefaultsZone(self, *args): if self.runtime_view: return selected_zone = self.get_selected_zone() zone = self.fw.config().getZoneByName(selected_zone) zone.loadDefaults() self.changes_applied() self.onChangeZone() def entry_changed(self, entry, allowed_chars, modify=None): "Remove all disallowed characters and truncate length." origtext = entry.get_text() newtext = origtext for char in origtext: if char not in allowed_chars: newtext = newtext.replace(char, "") OK = len(newtext) > 0 if modify: OK, newtext = modify(newtext) if newtext != origtext: entry.set_text(newtext) return OK def onZoneBaseDialogChanged(self, *args): def check_zone_name(zone): max_len = functions.max_zone_name_len() parts = zone.split('/') if len(parts) < 2: return (True, zone) if len(parts[0]) > max_len: parts[0] = parts[0][:max_len] zone = '/'.join(parts[:2]) OK = len(zone) > 1 and zone[0] != '/' and zone[-1] != '/' return (OK, zone) OK=True if args and (args[0] == self.zoneBaseDialogNameEntry): additional_chars = "".join(Zone.ADDITIONAL_ALNUM_CHARS) allowed_chars = string.ascii_letters+string.digits+additional_chars OK = self.entry_changed(args[0], allowed_chars, check_zone_name) self.zoneBaseDialogOkButton.set_sensitive(OK) def onZoneBaseDialogTargetCheckToggled(self, check): val = check.get_active() self.zoneBaseDialogTargetCombobox.set_sensitive(not val) def add_edit_zone(self, add): l = functions.max_zone_name_len() self.zoneBaseDialogNameEntry.set_max_length(l) self.zoneBaseDialogNameEntry.set_width_chars(l) self.zoneBaseDialogNameEntry.set_max_width_chars(l) if add: default = True builtin = False old_name = None old_version = None old_short = None old_desc = None old_target = None self.zoneBaseDialogNameEntry.set_text("") self.zoneBaseDialogVersionEntry.set_text("") self.zoneBaseDialogShortEntry.set_text("") self.zoneBaseDialogDescText.get_buffer().set_text("") self.zoneBaseDialogTargetCheck.set_active(True) self.zoneBaseDialogTargetCombobox.set_active(0) else: selected_zone = self.get_selected_zone() zone = self.fw.config().getZoneByName(selected_zone) settings = zone.getSettings() props = zone.get_properties() default = props["default"] builtin = props["builtin"] old_name = zone.get_property("name") old_version = settings.getVersion() old_short = settings.getShort() old_desc = settings.getDescription() old_target = settings.getTarget() self.zoneBaseDialogNameEntry.set_text(old_name) self.zoneBaseDialogVersionEntry.set_text(old_version) self.zoneBaseDialogShortEntry.set_text(old_short) self.zoneBaseDialogDescText.get_buffer().set_text(old_desc) if old_target == "default" or \ old_target == DEFAULT_ZONE_TARGET: self.zoneBaseDialogTargetCheck.set_active(True) self.zoneBaseDialogTargetCombobox.set_active(0) else: self.zoneBaseDialogTargetCheck.set_active(False) combobox_select_text(self.zoneBaseDialogTargetCombobox, old_target if old_target != "%%REJECT%%" else "REJECT") self.zoneBaseDialogOkButton.set_sensitive(False) if builtin: self.zoneBaseDialogNameEntry.set_tooltip_markup(\ _("Built-in zone, rename not supported.")) else: self.zoneBaseDialogNameEntry.set_tooltip_markup("") self.zoneBaseDialogNameEntry.set_sensitive(not builtin and default) self.zoneBaseDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.zoneBaseDialog.set_transient_for(self.mainWindow) self.zoneBaseDialog.show_all() self.add_visible_dialog(self.zoneBaseDialog) result = self.zoneBaseDialog.run() self.zoneBaseDialog.hide() self.remove_visible_dialog(self.zoneBaseDialog) if result != 1: return name = self.zoneBaseDialogNameEntry.get_text() version = self.zoneBaseDialogVersionEntry.get_text() short = self.zoneBaseDialogShortEntry.get_text() buffer = self.zoneBaseDialogDescText.get_buffer() desc = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), False) target = "default" # this has been DEFAULT_ZONE_TARGET before if not self.zoneBaseDialogTargetCheck.get_active(): target = self.zoneBaseDialogTargetCombobox.get_active_text() if target == "REJECT": target = "%%REJECT%%" if old_name == name and \ old_version == version and old_short == short and \ old_desc == desc and old_target == target: # no changes return if not add: selected_zone = self.get_selected_zone() zone = self.fw.config().getZoneByName(selected_zone) settings = zone.getSettings() else: settings = client.FirewallClientZoneSettings() if old_version != version or old_short != short or \ old_desc != desc or old_target != target: # settings settings.setVersion(version) settings.setShort(short) settings.setDescription(desc) settings.setTarget(target) if not add: zone.update(settings) if not add: if old_name == name: return zone.rename(name) else: self.fw.config().addZone(name, settings) self.changes_applied() def onAddRichRule(self, *args): self.add_edit_rich_rule(True) def onEditRichRule(self, *args): self.add_edit_rich_rule(False) def onRichRuleClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_rich_rule(False) def onRemoveRichRule(self, *args): selected_zone = self.get_selected_zone() selection = self.richRuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return obj = self.richRuleStore.get_value(iter, 0) if self.runtime_view: self.fw.removeRichRule(selected_zone, str(obj)) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeRichRule(str(obj)) self.changes_applied() def add_edit_rich_rule(self, add): self.richRuleDialogFamilyCombobox.set_active(0) self.richRuleDialogElementCheck.set_active(False) self.richRuleDialogElementCombobox.set_active(0) self.richRuleDialogElementChooser.set_text("") self.richRuleDialogActionCheck.set_active(False) self.richRuleDialogActionCombobox.set_active(0) self.richRuleDialogActionRejectTypeCheck.set_active(False) self.richRuleDialogActionRejectTypeCombobox.set_active(0) self.richRuleDialogActionMarkChooser.set_text("") self.richRuleDialogActionLimitCheck.set_active(False) self.richRuleDialogActionLimitRateEntry.set_text("") self.richRuleDialogActionLimitDurationCombobox.set_active(0) self.richRuleDialogSourceInvertCheck.set_active(False) self.richRuleDialogSourceTypeCombobox.set_active(0) self.richRuleDialogSourceChooser.set_text("") self.richRuleDialogDestinationInvertCheck.set_active(False) self.richRuleDialogDestinationChooser.set_text("") self.richRuleDialogLogCheck.set_active(False) self.richRuleDialogLogPrefixEntry.set_text("") self.richRuleDialogLogLevelCombobox.set_active(4) self.richRuleDialogLogLimitCheck.set_active(False) self.richRuleDialogLogLimitRateEntry.set_text("") self.richRuleDialogLogLimitDurationCombobox.set_active(0) self.richRuleDialogAuditCheck.set_active(False) self.richRuleDialogAuditLimitCheck.set_active(False) self.richRuleDialogAuditLimitRateEntry.set_text("") self.richRuleDialogAuditLimitDurationCombobox.set_active(0) smhd = { "s": _("second"), "m": _("minute"), "h": _("hour"), "d": _("day") } loglevel = { "emerg": _("emergency"), "alert": _("alert"), "crit": _("critical"), "error": _("error"), "warning": _("warning"), "notice": _("notice"), "info": _("info"), "debug": _("debug"), } selected_zone = self.get_selected_zone() old_obj = None iter = None if not add: selection = self.richRuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_obj = self.richRuleStore.get_value(iter, 0) self.richRuleDialog.old_obj = old_obj if old_obj: if old_obj.family in [ "ipv4", "ipv6" ]: combobox_select_text(self.richRuleDialogFamilyCombobox, old_obj.family, insensitive=True) if old_obj.element: self.richRuleDialogElementCheck.set_active(True) # element if type(old_obj.element) == rich.Rich_Service: combobox_select_text(self.richRuleDialogElementCombobox, _("service")) self.richRuleDialogElementChooser.set_text( \ old_obj.element.name) elif type(old_obj.element) == rich.Rich_Port: combobox_select_text(self.richRuleDialogElementCombobox, _("port")) self.richRuleDialogElementChooser.set_text( \ "%s/%s" % (old_obj.element.port, old_obj.element.protocol)) elif type(old_obj.element) == rich.Rich_Protocol: combobox_select_text(self.richRuleDialogElementCombobox, _("protocol")) self.richRuleDialogElementChooser.set_text( \ old_obj.element.value) elif type(old_obj.element) == rich.Rich_Masquerade: combobox_select_text(self.richRuleDialogElementCombobox, _("masquerade")) elif type(old_obj.element) == rich.Rich_IcmpBlock: combobox_select_text(self.richRuleDialogElementCombobox, _("icmp-block")) self.richRuleDialogElementChooser.set_text( \ old_obj.element.name) elif type(old_obj.element) == rich.Rich_IcmpType: combobox_select_text(self.richRuleDialogElementCombobox, _("icmp-type")) self.richRuleDialogElementChooser.set_text( \ old_obj.element.name) elif type(old_obj.element) == rich.Rich_ForwardPort: combobox_select_text(self.richRuleDialogElementCombobox, _("forward-port")) s = "%s/%s" % (old_obj.element.port, old_obj.element.protocol) if old_obj.element.to_port != "": s += " >%s" % old_obj.element.to_port if old_obj.element.to_address != "": s += " @%s" % old_obj.element.to_address self.richRuleDialogElementChooser.set_text(s) elif type(old_obj.element) == rich.Rich_SourcePort: combobox_select_text(self.richRuleDialogElementCombobox, _("source-port")) self.richRuleDialogElementChooser.set_text( \ "%s/%s" % (old_obj.element.port, old_obj.element.protocol)) # action if old_obj.action: self.richRuleDialogActionCheck.set_active(True) action = None if type(old_obj.action) == rich.Rich_Accept: action = "accept" elif type(old_obj.action) == rich.Rich_Reject: action = "reject" self.richRuleDialogActionRejectTypeCombobox.remove_all() if old_obj.family is not None: for icmp in REJECT_TYPES[old_obj.family]: self.richRuleDialogActionRejectTypeCombobox. \ append(icmp, icmp) if old_obj.action.type: self.richRuleDialogActionRejectTypeCheck. \ set_active(True) self.richRuleDialogActionRejectTypeCombobox. \ set_active_id(old_obj.action.type) else: self.richRuleDialogActionRejectTypeCombobox. \ set_active_id(REJECT_TYPES[old_obj.family][0]) elif type(old_obj.action) == rich.Rich_Drop: action = "drop" elif type(old_obj.action) == rich.Rich_Mark: action = "mark" self.richRuleDialogActionMarkChooser.set_text(old_obj.action.set) combobox_select_text(self.richRuleDialogActionCombobox, action) if old_obj.action.limit: self.richRuleDialogActionLimitCheck.set_active(True) (rate, duration) = old_obj.action.limit.value.split("/") self.richRuleDialogActionLimitRateEntry.set_text(rate) combobox_select_text( \ self.richRuleDialogActionLimitDurationCombobox, smhd[duration], insensitive=True) # source if old_obj.source: if old_obj.source.addr: combobox_select_text(self.richRuleDialogSourceTypeCombobox, "IP") self.richRuleDialogSourceChooser.set_text(old_obj.source.addr) elif old_obj.source.mac: combobox_select_text(self.richRuleDialogSourceTypeCombobox, "MAC") self.richRuleDialogSourceChooser.set_text(old_obj.source.mac) elif old_obj.source.ipset: combobox_select_text(self.richRuleDialogSourceTypeCombobox, "ipset") self.richRuleDialogSourceChooser.set_text(old_obj.source.ipset) self.richRuleDialogSourceInvertCheck.set_active( \ old_obj.source.invert == True) # destination if old_obj.destination: self.richRuleDialogDestinationChooser.set_text( \ old_obj.destination.addr) self.richRuleDialogDestinationInvertCheck.set_active( \ old_obj.destination.invert == True) # log if old_obj.log: self.richRuleDialogLogCheck.set_active(True) if old_obj.log.prefix: self.richRuleDialogLogPrefixEntry.set_text( \ old_obj.log.prefix) log_level = "warning" if old_obj.log.level and old_obj.log.level != log_level: log_level = old_obj.log.level combobox_select_text(self.richRuleDialogLogLevelCombobox, loglevel[log_level]) if old_obj.log.limit: self.richRuleDialogLogLimitCheck.set_active(True) (rate, duration) = old_obj.log.limit.value.split("/") self.richRuleDialogLogLimitRateEntry.set_text(rate) combobox_select_text( \ self.richRuleDialogLogLimitDurationCombobox, smhd[duration], insensitive=True) # audit if old_obj.audit: self.richRuleDialogAuditCheck.set_active(True) if old_obj.audit.limit: self.richRuleDialogAuditLimitCheck.set_active(True) (rate, duration) = old_obj.audit.limit.value.split("/") self.richRuleDialogAuditLimitRateEntry.set_text(rate) combobox_select_text( \ self.richRuleDialogAuditLimitDurationCombobox, smhd[duration], insensitive=True) self.richRuleDialogOkButton.set_sensitive(False) self.on_richRuleDialog_changed() self.richRuleDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.richRuleDialog.set_transient_for(self.mainWindow) self.richRuleDialog.show_all() self.add_visible_dialog(self.richRuleDialog) result = self.richRuleDialog.run() self.richRuleDialog.hide() self.remove_visible_dialog(self.richRuleDialog) if result != 1: return obj = self.richRuleDialog_getRule() old_rule = str(old_obj) rule = str(obj) if old_rule == rule: # nothing to change return if self.runtime_view: if not self.fw.queryRichRule(selected_zone, rule): self.fw.addRichRule(selected_zone, rule) if not add: self.fw.removeRichRule(selected_zone, old_rule) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.queryRichRule(rule): if not add: zone.removeRichRule(old_rule) zone.addRichRule(rule) self.changes_applied() def on_richRuleDialogElementChooser_clicked(self, *args): combolabel = self.richRuleDialogElementCombobox.get_active_text() old_value = self.richRuleDialogElementChooser.get_text() familylabel = self.richRuleDialogFamilyCombobox.get_active_text() if familylabel == _("ipv4"): family = "ipv4" elif familylabel == _("ipv6"): family = "ipv6" else: family = None value = None if combolabel == _("service"): value = self.service_select_dialog(old_value) elif combolabel == _("port"): old_port = None old_proto = None if old_value != "": try: (old_port,old_proto) = old_value.split("/") except: pass value = self.port_select_dialog(old_port, old_proto) elif combolabel == _("protocol"): value = self.protocol_select_dialog(old_value) elif combolabel == _("icmp-block"): value = self.icmptype_select_dialog(old_value) elif combolabel == _("icmp-type"): value = self.icmptype_select_dialog(old_value) elif combolabel == _("forward-port"): value = self.forwardport_select_dialog(family, old_value) elif combolabel == _("source-port"): old_port = None old_proto = None if old_value != "": try: (old_port,old_proto) = old_value.split("/") except: pass value = self.port_select_dialog(old_port, old_proto) if value is None: return self.richRuleDialogElementChooser.set_text(value) def port_select_dialog(self, old_port, old_proto): self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return None port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return None return "%s/%s" % (port, proto) def onProtoChanged(self, *args): if self.protoDialogOtherProtoCheck.get_active(): self.protoDialogProtoLabel.set_sensitive(False) self.protoDialogProtoCombobox.set_sensitive(False) self.protoDialogOtherProtoEntry.set_sensitive(True) proto = self.protoDialogOtherProtoEntry.get_text() else: self.protoDialogProtoLabel.set_sensitive(True) self.protoDialogProtoCombobox.set_sensitive(True) self.protoDialogOtherProtoEntry.set_sensitive(False) proto = self.protoDialogProtoCombobox.get_active_text() if functions.checkProtocol(proto): self.protoDialogOkButton.set_sensitive(True) else: self.protoDialogOkButton.set_sensitive(False) def protocol_select_dialog(self, old_proto): self.protoDialogProtoCombobox.set_active(0) self.protoDialogOtherProtoCheck.set_active(False) self.protoDialogOtherProtoEntry.set_text("") if old_proto: if not combobox_select_text(self.protoDialogProtoCombobox, old_proto): self.protoDialogOtherProtoCheck.set_active(True) self.protoDialogOtherProtoEntry.set_text(old_proto) self.protoDialogOkButton.set_sensitive(False) self.protoDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.protoDialog.set_transient_for(self.mainWindow) self.protoDialog.show_all() self.add_visible_dialog(self.protoDialog) result = self.protoDialog.run() self.protoDialog.hide() self.remove_visible_dialog(self.protoDialog) if result != 1: return None if self.protoDialogOtherProtoCheck.get_active(): proto = self.protoDialogOtherProtoEntry.get_text() else: proto = self.protoDialogProtoCombobox.get_active_text() if old_proto == proto: # nothing to change return None return proto def change_service_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.serviceDialogOkButton.set_sensitive(True) else: self.serviceDialogOkButton.set_sensitive(False) def service_select_dialog(self, old_service=""): self.serviceDialogServiceStore.clear() if self.runtime_view: services = self.fw.listServices() else: services = self.fw.config().getServiceNames() for service in services: self.serviceDialogServiceStore.append([service]) selection = self.serviceDialogServiceView.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) selection.select_path(0) iter = self.serviceDialogServiceStore.get_iter_first() while iter: if self.serviceDialogServiceStore.get_value(iter, 0) == \ old_service: selection.select_iter(iter) iter = self.serviceDialogServiceStore.iter_next(iter) self.serviceDialogOkButton.set_sensitive(False) self.serviceDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.serviceDialog.set_transient_for(self.mainWindow) self.serviceDialog.show_all() self.add_visible_dialog(self.serviceDialog) result = self.serviceDialog.run() self.serviceDialog.hide() self.remove_visible_dialog(self.serviceDialog) if result != 1: return None (model, iter) = selection.get_selected() if not iter: return None service = self.serviceDialogServiceStore.get_value(iter, 0) if old_service == service: return None return service def change_icmptype_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.icmptypeDialogOkButton.set_sensitive(True) else: self.icmptypeDialogOkButton.set_sensitive(False) def icmptype_select_dialog(self, old_icmptype=""): self.icmptypeDialogIcmptypeStore.clear() if self.runtime_view: icmptypes = self.fw.listIcmpTypes() else: icmptypes = self.fw.config().getIcmpTypeNames() for icmptype in icmptypes: self.icmptypeDialogIcmptypeStore.append([icmptype]) selection = self.icmptypeDialogIcmptypeView.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) selection.select_path(0) iter = self.icmptypeDialogIcmptypeStore.get_iter_first() while iter: if self.icmptypeDialogIcmptypeStore.get_value(iter, 0) == \ old_icmptype: selection.select_iter(iter) iter = self.icmptypeDialogIcmptypeStore.iter_next(iter) self.icmptypeDialogOkButton.set_sensitive(False) self.icmptypeDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.icmptypeDialog.set_transient_for(self.mainWindow) self.icmptypeDialog.show_all() self.add_visible_dialog(self.icmptypeDialog) result = self.icmptypeDialog.run() self.icmptypeDialog.hide() self.remove_visible_dialog(self.icmptypeDialog) if result != 1: return None (model, iter) = selection.get_selected() if not iter: return None icmptype = self.icmptypeDialogIcmptypeStore.get_value(iter, 0) if old_icmptype == icmptype: return None return icmptype def on_richRuleDialogSourceChooser_clicked(self, *args): old_address = self.richRuleDialogSourceChooser.get_text() _type = self.richRuleDialogSourceTypeCombobox.get_active_text() combolabel = self.richRuleDialogFamilyCombobox.get_active_text() if combolabel == _("ipv4"): family = "ipv4" elif combolabel == _("ipv6"): family = "ipv6" else: family = None if _type == "IP": address = self.address_select_dialog(family, old_address) if address is not None: self.richRuleDialogSourceChooser.set_text(address) elif _type == "MAC": address = self.mac_select_dialog(old_address) if address is not None: self.richRuleDialogSourceChooser.set_text(address.upper()) elif _type == "ipset": address = self.ipset_select_dialog(old_address, family) if address is not None: self.richRuleDialogSourceChooser.set_text(address) def on_richRuleDialogDestinationChooser_clicked(self, *args): combolabel = self.richRuleDialogFamilyCombobox.get_active_text() if combolabel == _("ipv4"): family = "ipv4" elif combolabel == _("ipv6"): family = "ipv6" else: family = None old_address = self.richRuleDialogDestinationChooser.get_text() address = self.address_select_dialog(family, old_address) if address is not None: self.richRuleDialogDestinationChooser.set_text(address) def create_fwp_string(self, port, proto, to_port, to_addr): _to_port = "" if to_port != "": _to_port = " >%s" % to_port _to_addr = "" if to_addr != "": _to_addr = " @%s" % to_addr return "%s/%s%s%s" % (port, proto, _to_port, _to_addr) def split_fwp_string(self, text): port = "" proto = "" to_port = "" to_addr = "" if ">" in text: # to_port splits = text.split(">") (port,proto) = splits[0].split("/") if "@" in splits[1]: (to_port,to_addr) = splits[1].split("@") else: to_port = splits[1] elif "@" in text: splits = text.split("@") (port,proto) = splits[0].split("/") to_addr = splits[1] return (port.strip(), proto.strip(), to_port.strip(), to_addr.strip()) def richRuleDialog_getRule(self): smhd = { _("second"): "s", _("minute"): "m", _("hour"): "h", _("day"): "d" } loglevel = { _("emergency"): "emerg", # 0, system is unusable _("alert"): "alert", # 1, action must be taken immediately _("critical"): "crit", # 2, critical conditions _("error"): "error", # 3, error conditions _("warning"): "warning", # 4, warning conditions _("notice"): "notice", # 5, normal but significant condition _("info"): "info", # 6, informational _("debug"): "debug", } # 7, debug-level messages # family combolabel = self.richRuleDialogFamilyCombobox.get_active_text() if combolabel == _("ipv4"): rule = rich.Rich_Rule("ipv4") # ipv4 rule elif combolabel == _("ipv6"): rule = rich.Rich_Rule("ipv6") # ipv6 rule else: rule = rich.Rich_Rule() # ipv4+ipv6 rule # element if self.richRuleDialogElementCheck.get_active(): combolabel = self.richRuleDialogElementCombobox.get_active_text() if combolabel == _("service"): rule.element = rich.Rich_Service( self.richRuleDialogElementChooser.get_text()) elif combolabel == _("port"): text = self.richRuleDialogElementChooser.get_text() port = "" proto = "" try: if '/' in text: (port, proto) = text.split("/") except: return None rule.element = rich.Rich_Port(port, proto) elif combolabel == _("protocol"): rule.element = rich.Rich_Protocol( self.richRuleDialogElementChooser.get_text()) elif combolabel == _("icmp-block"): rule.element = rich.Rich_IcmpBlock( self.richRuleDialogElementChooser.get_text()) elif combolabel == _("icmp-type"): rule.element = rich.Rich_IcmpType( self.richRuleDialogElementChooser.get_text()) elif combolabel == _("forward-port"): text = self.richRuleDialogElementChooser.get_text() try: (port, proto, to_port, to_addr) = \ self.split_fwp_string(text) except: return None rule.element = rich.Rich_ForwardPort(port, proto, to_port, to_addr) elif combolabel == _("masquerade"): rule.element = rich.Rich_Masquerade() elif combolabel == _("source-port"): text = self.richRuleDialogElementChooser.get_text() port = "" proto = "" try: if '/' in text: (port, proto) = text.split("/") except: return None rule.element = rich.Rich_SourcePort(port, proto) # action if self.richRuleDialogActionCheck.is_sensitive() and \ self.richRuleDialogActionCheck.get_active(): limit = None if self.richRuleDialogActionLimitCheck.get_active(): value = self.richRuleDialogActionLimitRateEntry.get_text() value += "/" value += smhd[self.richRuleDialogActionLimitDurationCombobox.get_active_text()] limit = rich.Rich_Limit(value) combolabel = self.richRuleDialogActionCombobox.get_active_text() if combolabel == _("accept"): rule.action = rich.Rich_Accept(limit) elif combolabel == _("reject"): _type = None if self.richRuleDialogActionRejectTypeCheck.get_active(): _type = self.richRuleDialogActionRejectTypeCombobox.get_active_text() rule.action = rich.Rich_Reject(_type, limit) elif combolabel == _("drop"): rule.action = rich.Rich_Drop(limit) elif combolabel == _("mark"): _set = self.richRuleDialogActionMarkChooser.get_text() rule.action = rich.Rich_Mark(_set, limit) # source if self.richRuleDialogSourceChooser.is_sensitive() and \ (self.richRuleDialogSourceChooser.get_text() != "" \ or self.richRuleDialogSourceInvertCheck.get_active()): txt = self.richRuleDialogSourceTypeCombobox.get_active_text() addr = mac = ipset = None if txt == "IP": addr = self.richRuleDialogSourceChooser.get_text() if txt == "MAC": mac = self.richRuleDialogSourceChooser.get_text() if txt == "ipset": ipset = self.richRuleDialogSourceChooser.get_text() rule.source = rich.Rich_Source( addr, mac, ipset, self.richRuleDialogSourceInvertCheck.get_active()) # destination if self.richRuleDialogDestinationBox.is_sensitive() and \ (self.richRuleDialogDestinationChooser.get_text() != "" \ or self.richRuleDialogDestinationInvertCheck.get_active()): rule.destination = rich.Rich_Destination( self.richRuleDialogDestinationChooser.get_text(), self.richRuleDialogDestinationInvertCheck.get_active()) # log if self.richRuleDialogLogCheck.is_sensitive() and \ self.richRuleDialogLogCheck.get_active(): limit = None if self.richRuleDialogLogLimitCheck.get_active(): value = self.richRuleDialogLogLimitRateEntry.get_text() value += "/" value += smhd[self.richRuleDialogLogLimitDurationCombobox.get_active_text()] limit = rich.Rich_Limit(value) level = self.richRuleDialogLogLevelCombobox.get_active_text() rule.log = rich.Rich_Log( self.richRuleDialogLogPrefixEntry.get_text(), loglevel[level], limit) # audit if self.richRuleDialogAuditCheck.is_sensitive() and \ self.richRuleDialogAuditCheck.get_active(): limit = None if self.richRuleDialogAuditLimitCheck.get_active(): value = self.richRuleDialogAuditLimitRateEntry.get_text() value += "/" value += smhd[self.richRuleDialogAuditLimitDurationCombobox.get_active_text()] limit = rich.Rich_Limit(value) rule.audit = rich.Rich_Audit(limit) return rule def on_richRuleDialogFamilyCombobox_changed(self, *args): combolabel = self.richRuleDialogFamilyCombobox.get_active_text() if combolabel == _("ipv4"): family = "ipv4" elif combolabel == _("ipv6"): family = "ipv6" else: family = None self.richRuleDialogActionRejectTypeCombobox.remove_all() if family is not None: for icmp in REJECT_TYPES[family]: self.richRuleDialogActionRejectTypeCombobox.append(icmp, icmp) old_obj = self.richRuleDialog.old_obj if old_obj and old_obj.family == family and \ hasattr(old_obj.action, 'type') and old_obj.action.type: self.richRuleDialogActionRejectTypeCombobox. \ set_active_id(old_obj.action.type) else: self.richRuleDialogActionRejectTypeCombobox. \ set_active_id(REJECT_TYPES[family][0]) def on_richRuleDialogElementCombobox_changed(self, *args): self.richRuleDialogElementChooser.set_text("") def on_richRuleDialogActionMarkChooser_clicked(self, *args): old_value = self.richRuleDialogActionMarkChooser.get_text() if "/" in old_value: try: (old_mark, old_mask) = old_value.split("/") except: return else: old_mark = old_value old_mask = "" _value = self.mark_select_dialog(old_mark, old_mask) if _value is None: return (mark, mask) = _value if mask != "": value = "%s/%s" % (mark, mask) else: value = mark self.richRuleDialogActionMarkChooser.set_text(value) def on_richRuleDialog_changed(self, *args): combolabel = self.richRuleDialogFamilyCombobox.get_active_text() if combolabel == _("ipv4"): family = "ipv4" elif combolabel == _("ipv6"): family = "ipv6" else: family = None v4v6_source = (self.richRuleDialogSourceTypeCombobox.get_active_text() == "MAC" or \ self.richRuleDialogSourceTypeCombobox.get_active_text() == "ipset") if family is None: self.richRuleDialogSourceChooser.set_sensitive(v4v6_source) self.richRuleDialogSourceInvertCheck.set_sensitive(v4v6_source) self.richRuleDialogDestinationLabel.set_sensitive(False) self.richRuleDialogDestinationBox.set_sensitive(False) else: self.richRuleDialogSourceChooser.set_sensitive(True) self.richRuleDialogSourceInvertCheck.set_sensitive(True) self.richRuleDialogDestinationLabel.set_sensitive(True) self.richRuleDialogDestinationBox.set_sensitive(True) self.richRuleDialogActionCheck.set_sensitive(True) self.richRuleDialogActionBox.set_sensitive( self.richRuleDialogActionCheck.get_active()) self.richRuleDialogElementChooser.set_sensitive(True) self.richRuleDialogElementBox.set_sensitive( self.richRuleDialogElementCheck.get_active()) self.richRuleDialogLogCheck.set_sensitive(True) self.richRuleDialogAuditCheck.set_sensitive(True) self.richRuleDialogActionLimitBox.set_sensitive( self.richRuleDialogActionLimitCheck.get_active()) self.richRuleDialogActionRejectTypeCombobox.set_sensitive( self.richRuleDialogActionRejectTypeCheck.get_active()) self.richRuleDialogActionRejectBox.set_sensitive(family is not None and \ self.richRuleDialogActionCombobox.get_active_text() == _("reject")) self.richRuleDialogActionMarkBox.set_sensitive(self.richRuleDialogActionCombobox.get_active_text() == _("mark")) self.richRuleDialogLogGrid.set_sensitive( self.richRuleDialogLogCheck.get_active()) self.richRuleDialogLogLimitBox.set_sensitive( self.richRuleDialogLogLimitCheck.get_active()) self.richRuleDialogAuditBox.set_sensitive( self.richRuleDialogAuditCheck.get_active()) self.richRuleDialogAuditLimitBox.set_sensitive( self.richRuleDialogAuditLimitCheck.get_active()) if self.richRuleDialogElementCheck.get_active(): combolabel = self.richRuleDialogElementCombobox.get_active_text() if combolabel == _("masquerade"): self.richRuleDialogElementChooser.set_sensitive(False) self.richRuleDialogActionCheck.set_sensitive(False) self.richRuleDialogActionBox.set_sensitive(False) self.richRuleDialogLogCheck.set_sensitive(False) self.richRuleDialogLogGrid.set_sensitive(False) self.richRuleDialogAuditCheck.set_sensitive(False) self.richRuleDialogAuditBox.set_sensitive(False) elif combolabel == _("forward-port"): self.richRuleDialogActionCheck.set_sensitive(False) self.richRuleDialogActionBox.set_sensitive(False) self.richRuleDialogLogCheck.set_sensitive(False) self.richRuleDialogLogGrid.set_sensitive(False) self.richRuleDialogAuditCheck.set_sensitive(False) self.richRuleDialogAuditBox.set_sensitive(False) elif combolabel == _("icmp-block"): self.richRuleDialogActionCheck.set_sensitive(False) self.richRuleDialogActionBox.set_sensitive(False) rule = self.richRuleDialog_getRule() try: rule.check() except Exception as msg: self.richRuleDialogOkButton.set_sensitive(False) self.richRuleDialogOkButton.set_tooltip_text(str(msg)) else: if str(self.richRuleDialog.old_obj) != str(rule): self.richRuleDialogOkButton.set_sensitive(True) else: self.richRuleDialogOkButton.set_sensitive(False) self.richRuleDialogOkButton.set_tooltip_text("") def onAddInterface(self, *args): self.add_edit_interface(True) def onEditInterface(self, *args): selected_zone = self.get_selected_zone() selection = self.interfaceView.get_selection() (model, iter) = selection.get_selected() if iter is None: return interface = self.interfaceStore.get_value(iter, 0) if interface in self.connections: connection = self.connections[interface] if selected_zone == self.default_zone: selected_zone = nm_get_zone_of_connection(connection) editor = ZoneConnectionEditor(self.fw, connection, selected_zone) editor.set_icon(self.icon) editor.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) editor.set_transient_for(self.mainWindow) editor.show_all() try: result = editor.run() except Exception: text = _("Failed to set zone {zone} " "for connection {connection}") self._warning(text.format(zone=editor.get_zone(), connection=editor.connection)) editor.hide() else: self.add_edit_interface(False) self.changes_applied() def onInterfaceClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.onEditInterface() def onRemoveInterface(self, *args): selected_zone = self.get_selected_zone() selection = self.interfaceView.get_selection() (model, iter) = selection.get_selected() if iter is None: return interface = self.interfaceStore.get_value(iter, 0) if self.runtime_view: self.fw.removeInterface(selected_zone, interface) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeInterface(interface) self.changes_applied() def change_interface_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editInterfaceButton.set_sensitive(True) interface = self.interfaceStore.get_value(iter, 0) if interface in self.connections: self.removeInterfaceButton.set_sensitive(False) else: self.removeInterfaceButton.set_sensitive(True) else: self.editInterfaceButton.set_sensitive(False) self.removeInterfaceButton.set_sensitive(False) def add_edit_interface(self, add): selected_zone = self.get_selected_zone() old_interface = None if add: self.interfaceDialogInterfaceEntry.set_text("") else: selection = self.interfaceView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_interface = self.interfaceStore.get_value(iter, 0) self.interfaceDialogInterfaceEntry.set_text(old_interface) self.interfaceDialogOkButton.set_sensitive(False) self.interfaceDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.interfaceDialog.set_transient_for(self.mainWindow) self.interfaceDialog.show_all() self.add_visible_dialog(self.interfaceDialog) result = self.interfaceDialog.run() self.interfaceDialog.hide() self.remove_visible_dialog(self.interfaceDialog) if result != 1: return interface = self.interfaceDialogInterfaceEntry.get_text() if old_interface == interface: # nothing to change return if self.runtime_view: if not self.fw.queryInterface(selected_zone, interface): self.fw.addInterface(selected_zone, interface) if not add: self.fw.removeInterface(selected_zone, old_interface) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.queryInterface(interface): if not add: zone.removeInterface(old_interface) zone.addInterface(interface) self.changes_applied() def onInterfaceChanged(self, *args): text = self.interfaceDialogInterfaceEntry.get_text() if text != "" and functions.checkInterface(text): self.interfaceDialogOkButton.set_sensitive(True) else: self.interfaceDialogOkButton.set_sensitive(False) def onAddSource(self, *args): self.add_edit_source(True) def onEditSource(self, *args): self.add_edit_source(False) def onSourceClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_source(False) def onRemoveSource(self, *args): selected_zone = self.get_selected_zone() selection = self.sourceView.get_selection() (model, iter) = selection.get_selected() if iter is None: return source = self.sourceStore.get_value(iter, 0) if self.runtime_view: self.fw.removeSource(selected_zone, source) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeSource(source) self.changes_applied() def change_source_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editSourceButton.set_sensitive(True) self.removeSourceButton.set_sensitive(True) else: self.editSourceButton.set_sensitive(False) self.removeSourceButton.set_sensitive(False) def add_edit_source(self, add): selected_zone = self.get_selected_zone() old_source = "" if not add: selection = self.sourceView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_source = self.sourceStore.get_value(iter, 0) #source = self.address_select_dialog(None, old_source, True, True) source = self.source_select_dialog(old_source) if not source: return if self.runtime_view: if not self.fw.querySource(selected_zone, source): self.fw.addSource(selected_zone, source) if not add: self.fw.removeSource(selected_zone, old_source) self.changes_applied() else: self._warning("Source '%s' already bound to zone '%s'" % \ (old_source, selected_zone)) else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.querySource(source): if not add: zone.removeSource(old_source) zone.addSource(source) self.changes_applied() else: self._warning("Source '%s' already bound to zone '%s'" % \ (old_source, selected_zone)) def on_markDialog_changed(self, entry, old_mark, old_mask): mark = self.markDialogMarkEntry.get_text() mask = self.markDialogMaskEntry.get_text() if not functions.checkUINT32(mark): self.markDialogOkButton.set_sensitive(False) else: if mask != "" and not functions.checkUINT32(mask): self.markDialogOkButton.set_sensitive(False) else: if old_mark != mark or old_mask != mask: self.markDialogOkButton.set_sensitive(True) def mark_select_dialog(self, old_mark, old_mask): self.markDialogMarkEntry.set_text(old_mark) self.markDialogMaskEntry.set_text(old_mask) handler_id1 = self.markDialogMarkEntry.connect( "changed", self.on_markDialog_changed, old_mark, old_mask) handler_id2 = self.markDialogMaskEntry.connect( "changed", self.on_markDialog_changed, old_mark, old_mask) self.markDialogOkButton.set_sensitive(False) self.markDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.markDialog.set_transient_for(self.mainWindow) self.markDialog.show_all() self.add_visible_dialog(self.markDialog) result = self.markDialog.run() self.markDialog.hide() self.remove_visible_dialog(self.markDialog) self.markDialogMarkEntry.disconnect(handler_id1) self.markDialogMaskEntry.disconnect(handler_id2) mark = self.markDialogMarkEntry.get_text() mask = self.markDialogMaskEntry.get_text() if result != 1 or (old_mark == mark and old_mask == mask): return None return (mark, mask) def on_macDialog_changed(self, entry, old_mac): text = entry.get_text() if text == "": self.macDialogOkButton.set_sensitive(True) return self.macDialogOkButton.set_sensitive(False) if functions.check_mac(text) and text != old_mac: self.macDialogOkButton.set_sensitive(True) def mac_select_dialog(self, old_mac): self.macDialogMacEntry.set_text(old_mac) handler_id = self.macDialogMacEntry.connect("changed", self.on_macDialog_changed, old_mac) self.macDialogOkButton.set_sensitive(False) self.macDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.macDialog.set_transient_for(self.mainWindow) self.macDialog.show_all() self.add_visible_dialog(self.macDialog) result = self.macDialog.run() self.macDialog.hide() self.remove_visible_dialog(self.macDialog) self.macDialogMacEntry.disconnect(handler_id) mac = self.macDialogMacEntry.get_text() if result != 1 or old_mac == mac: return None return mac.upper() def change_ipset_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.ipsetDialogOkButton.set_sensitive(True) else: self.ipsetDialogOkButton.set_sensitive(False) def ipset_select_dialog(self, old_ipset="", ipv=None): self.ipsetDialogIPSetStore.clear() ipsets = { } if self.runtime_view: for x in self.fw.getIPSets(): self.deactivate_exception_handler() try: settings = self.fw.getIPSetSettings(x) except (DBusException, Exception) as msg: self.activate_exception_handler() if isinstance(msg, DBusException): msg = msg.get_dbus_message() else: msg = str(msg) code = FirewallError.get_code(msg) if code == errors.NOT_APPLIED: continue raise self.activate_exception_handler() if settings.getType() not in ZONE_SOURCE_IPSET_TYPES: continue ipsets[x] = settings else: for i in self.fw.config().listIPSets(): obj = self.fw.config().getIPSet(i) ipsets[obj.get_property("name")] = obj.getSettings() for i in sorted(ipsets.keys()): # for all hash:ip and hash:net types, ipv has to match the family # of the set ipset_type = ipsets[i].getType() if ipset_type.startswith("hash:ip") or \ ipset_type.startswith("hash:net"): opts = ipsets[i].getOptions() if "family" in opts: if opts["family"] == "inet6" and \ (ipv != "ipv6" and ipv != "all"): continue else: if ipv == "ipv6" or ipv is None: continue self.ipsetDialogIPSetStore.append([i, ipset_type]) selection = self.ipsetDialogIPSetView.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) #selection.select_path(0) iter = self.ipsetDialogIPSetStore.get_iter_first() while iter: if self.ipsetDialogIPSetStore.get_value(iter, 0) == old_ipset: selection.select_iter(iter) iter = self.ipsetDialogIPSetStore.iter_next(iter) self.ipsetDialogOkButton.set_sensitive(False) self.ipsetDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.ipsetDialog.set_transient_for(self.mainWindow) self.ipsetDialog.show_all() self.add_visible_dialog(self.ipsetDialog) result = self.ipsetDialog.run() self.ipsetDialog.hide() self.remove_visible_dialog(self.ipsetDialog) #self.ipsetDialogIPSetEntry.disconnect(handler_id) #ipset = self.ipsetDialogIPSetEntry.get_text() if result != 1: return None (model, iter) = selection.get_selected() if not iter: return None ipset = self.ipsetDialogIPSetStore.get_value(iter, 0) if old_ipset == ipset: return None return ipset def change_helper_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.helperDialogOkButton.set_sensitive(True) else: self.helperDialogOkButton.set_sensitive(False) def helper_select_dialog(self, old_helper="", ipv=None): self.helperDialogHelperStore.clear() helpers = { } if self.runtime_view: for x in self.fw.getHelpers(): settings = self.fw.getHelperSettings(x) helpers[x] = settings else: for i in self.fw.config().listHelpers(): obj = self.fw.config().getHelper(i) helpers[obj.get_property("name")] = obj.getSettings() for i in sorted(helpers.keys()): # for all hash:ip and hash:net types, ipv has to match the family # of the set helper_type = helpers[i].getType() if helper_type in [ "hash:ip", "hash:net" ]: opts = helpers[i].getOptions() if "family" in opts: if opts["family"] == "inet6" and \ (ipv != "ipv6" and ipv != "all"): continue else: if ipv == "ipv6" or ipv is None: continue self.helperDialogHelperStore.append([i, helper_type]) selection = self.helperDialogHelperView.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) #selection.select_path(0) iter = self.helperDialogHelperStore.get_iter_first() while iter: if self.helperDialogHelperStore.get_value(iter, 0) == old_helper: selection.select_iter(iter) iter = self.helperDialogHelperStore.iter_next(iter) self.helperDialogOkButton.set_sensitive(False) self.helperDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.helperDialog.set_transient_for(self.mainWindow) self.helperDialog.show_all() self.add_visible_dialog(self.helperDialog) result = self.helperDialog.run() self.helperDialog.hide() self.remove_visible_dialog(self.helperDialog) #self.helperDialogHelperEntry.disconnect(handler_id) #helper = self.helperDialogHelperEntry.get_text() if result != 1: return None (model, iter) = selection.get_selected() if not iter: return None helper = self.helperDialogHelperStore.get_value(iter, 0) if old_helper == helper: return None return helper def on_sourceDialog_changed(self, arg, old_type, old_source): _type = self.sourceDialogSourceTypeCombobox.get_active_text() _source = self.sourceDialogSourceChooser.get_text() self.sourceDialogOkButton.set_sensitive(False) if old_source != _source: if _type == "MAC" and functions.check_mac(_source): self.sourceDialogOkButton.set_sensitive(True) elif _type == "IP" and (functions.checkIPnMask(_source) or \ functions.checkIP6nMask(_source)): self.sourceDialogOkButton.set_sensitive(True) elif _type == "ipset": self.sourceDialogOkButton.set_sensitive(True) def on_sourceDialogSourceChooser_clicked(self, *args): old_address = self.sourceDialogSourceChooser.get_text() _type = self.sourceDialogSourceTypeCombobox.get_active_text() if _type == "IP": address = self.address_select_dialog(None, old_address) if address is not None: self.sourceDialogSourceChooser.set_text(address) elif _type == "MAC": address = self.mac_select_dialog(old_address) if address is not None: self.sourceDialogSourceChooser.set_text(address.upper()) elif _type == "ipset": address = self.ipset_select_dialog(old_address, "all") if address is not None: self.sourceDialogSourceChooser.set_text(address) def source_select_dialog(self, old_source): if old_source: if old_source.startswith("ipset:"): old_type = "ipset" old_source = old_source[6:] elif functions.check_mac(old_source): old_type = "MAC" else: old_type = "IP" combobox_select_text(self.sourceDialogSourceTypeCombobox, old_type) else: old_type = None self.sourceDialogSourceTypeCombobox.set_active(0) self.sourceDialogSourceChooser.set_text(old_source) h_type_id = self.sourceDialogSourceTypeCombobox.connect( "changed", self.on_sourceDialog_changed, old_type, old_source) h_addr_id = self.sourceDialogSourceChooser.connect( "clicked", self.on_sourceDialog_changed, old_type, old_source) self.sourceDialogOkButton.set_sensitive(False) self.sourceDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.sourceDialog.set_transient_for(self.mainWindow) self.sourceDialog.show_all() self.add_visible_dialog(self.sourceDialog) result = self.sourceDialog.run() self.sourceDialog.hide() self.remove_visible_dialog(self.sourceDialog) self.sourceDialogSourceTypeCombobox.disconnect(h_type_id) self.sourceDialogSourceChooser.disconnect(h_addr_id) source = self.sourceDialogSourceChooser.get_text() if self.sourceDialogSourceTypeCombobox.get_active_text() == "ipset": source = "ipset:%s" % source if result != 1 or old_source == source: return None return source def onAddPort(self, *args): self.add_edit_port(True) def onEditPort(self, *args): self.add_edit_port(False) def onPortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_port(False) def onRemovePort(self, *args): selected_zone = self.get_selected_zone() selection = self.portView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.portStore.get_value(iter, 0) proto = self.portStore.get_value(iter, 1) if self.runtime_view: self.fw.removePort(selected_zone, port, proto) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removePort(port, proto) self.changes_applied() def onPortChanged(self, *args): ports = functions.getPortRange(self.portDialogPortEntry.get_text()) if not ports or not (isinstance(ports, list) or \ isinstance(ports, tuple)): self.portDialogOkButton.set_sensitive(False) else: self.portDialogOkButton.set_sensitive(True) def add_edit_port(self, add): selected_zone = self.get_selected_zone() old_port = None old_proto = None if not add: selection = self.portView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.portStore.get_value(iter, 0) old_proto = self.portStore.get_value(iter, 1) self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return if self.runtime_view: if not self.fw.queryPort(selected_zone, port, proto): self.fw.addPort(selected_zone, port, proto) if not add: self.fw.removePort(selected_zone, old_port, old_proto) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.queryPort(port, proto): if not add: zone.removePort(old_port, old_proto) zone.addPort(port, proto) self.changes_applied() def onPortProtoChanged(self, *args): ports = functions.getPortRange(self.portDialogPortEntry.get_text()) if not ports or not (isinstance(ports, list) or \ isinstance(ports, tuple)): self.portDialogOkButton.set_sensitive(False) else: self.portDialogOkButton.set_sensitive(True) def onPortProtoDialogOtherProtoCheckToggled(self, check, *args): self.portDialogPortEntry.set_sensitive(not check.get_active()) self.portDialogProtoCombobox.set_sensitive(not check.get_active()) def service_conf_add_edit_port(self, add): active_service = self.get_active_service() self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) old_port = None old_proto = None if not add: selection = self.serviceConfPortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.serviceConfPortStore.get_value(iter, 0) old_proto = self.serviceConfPortStore.get_value(iter, 1) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return service = self.fw.config().getServiceByName(active_service) if not service.queryPort(port, proto): if not add: service.removePort(old_port, old_proto) service.addPort(port, proto) self.changes_applied() def port_added_cb(self, zone, port, protocol, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.portStore.get_iter_first() while iter: if self.portStore.get_value(iter, 0) == port and \ self.portStore.get_value(iter, 1) == protocol: # already there return iter = self.portStore.iter_next(iter) # nothing found, so add it self.portStore.append([port, protocol]) def port_removed_cb(self, zone, port, protocol): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.portStore.get_iter_first() while iter: if self.portStore.get_value(iter, 0) == port and \ self.portStore.get_value(iter, 1) == protocol: self.portStore.remove(iter) break iter = self.portStore.iter_next(iter) def onAddSourcePort(self, *args): self.add_edit_source_port(True) def onEditSourcePort(self, *args): self.add_edit_source_port(False) def onSourcePortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_source_port(False) def onRemoveSourcePort(self, *args): selected_zone = self.get_selected_zone() selection = self.sourcePortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.sourcePortStore.get_value(iter, 0) proto = self.sourcePortStore.get_value(iter, 1) if self.runtime_view: self.fw.removeSourcePort(selected_zone, port, proto) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeSourcePort(port, proto) self.changes_applied() def add_edit_source_port(self, add): selected_zone = self.get_selected_zone() old_port = None old_proto = None if not add: selection = self.sourcePortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.sourcePortStore.get_value(iter, 0) old_proto = self.sourcePortStore.get_value(iter, 1) self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return if self.runtime_view: if not self.fw.querySourcePort(selected_zone, port, proto): self.fw.addSourcePort(selected_zone, port, proto) if not add: self.fw.removeSourcePort(selected_zone, old_port, old_proto) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.querySourcePort(port, proto): if not add: zone.removeSourcePort(old_port, old_proto) zone.addSourcePort(port, proto) self.changes_applied() def service_conf_add_edit_source_port(self, add): active_service = self.get_active_service() self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) old_port = None old_proto = None if not add: selection = self.serviceConfSourcePortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.serviceConfSourcePortStore.get_value(iter, 0) old_proto = self.serviceConfSourcePortStore.get_value(iter, 1) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return service = self.fw.config().getServiceByName(active_service) if not service.querySourcePort(port, proto): if not add: service.removeSourcePort(old_port, old_proto) service.addSourcePort(port, proto) self.changes_applied() def source_port_added_cb(self, zone, port, protocol, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.sourcePortStore.get_iter_first() while iter: if self.sourcePortStore.get_value(iter, 0) == port and \ self.sourcePortStore.get_value(iter, 1) == protocol: # already there return iter = self.sourcePortStore.iter_next(iter) # nothing found, so add it self.sourcePortStore.append([port, protocol]) def source_port_removed_cb(self, zone, port, protocol): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.sourcePortStore.get_iter_first() while iter: if self.sourcePortStore.get_value(iter, 0) == port and \ self.sourcePortStore.get_value(iter, 1) == protocol: self.sourcePortStore.remove(iter) break iter = self.sourcePortStore.iter_next(iter) def onAddProtocol(self, *args): self.add_edit_protocol(True) def onEditProtocol(self, *args): self.add_edit_protocol(False) def onProtocolClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_protocol(False) def onRemoveProtocol(self, *args): selected_zone = self.get_selected_zone() selection = self.protocolView.get_selection() (model, iter) = selection.get_selected() if iter is None: return proto = self.protocolStore.get_value(iter, 0) if self.runtime_view: self.fw.removeProtocol(selected_zone, proto) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeProtocol(proto) self.changes_applied() def add_edit_protocol(self, add): selected_zone = self.get_selected_zone() old_proto = None if not add: selection = self.protocolView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_proto = self.protocolStore.get_value(iter, 0) self.protoDialogProtoCombobox.set_active(0) self.protoDialogOtherProtoCheck.set_active(False) if old_proto: combobox_select_text(self.protoDialogProtoCombobox, old_proto) self.protoDialogOkButton.set_sensitive(False) self.protoDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.protoDialog.set_transient_for(self.mainWindow) self.protoDialog.show_all() self.add_visible_dialog(self.protoDialog) result = self.protoDialog.run() self.protoDialog.hide() self.remove_visible_dialog(self.protoDialog) if result != 1: return if self.protoDialogOtherProtoCheck.get_active(): proto = self.protoDialogOtherProtoEntry.get_text() else: proto = self.protoDialogProtoCombobox.get_active_text() if old_proto == proto: # nothing to change return if self.runtime_view: if not self.fw.queryProtocol(selected_zone, proto): self.fw.addProtocol(selected_zone, proto) if not add: self.fw.removeProtocol(selected_zone, old_proto) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.queryProtocol(proto): if not add: zone.removeProtocol(old_proto) zone.addProtocol(proto) self.changes_applied() def service_conf_add_edit_protocol(self, add): active_service = self.get_active_service() old_proto = None if not add: selection = self.serviceConfProtocolView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_proto = self.serviceConfProtocolStore.get_value(iter, 0) self.protoDialogProtoCombobox.set_active(0) self.protoDialogOtherProtoCheck.set_active(False) if old_proto: combobox_select_text(self.protoDialogProtoCombobox, old_proto) self.protoDialogOkButton.set_sensitive(False) self.protoDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.protoDialog.set_transient_for(self.mainWindow) self.protoDialog.show_all() self.add_visible_dialog(self.protoDialog) result = self.protoDialog.run() self.protoDialog.hide() self.remove_visible_dialog(self.protoDialog) if result != 1: return if self.protoDialogOtherProtoCheck.get_active(): proto = self.protoDialogOtherProtoEntry.get_text() else: proto = self.protoDialogProtoCombobox.get_active_text() if old_proto == proto: # nothing to change return service = self.fw.config().getServiceByName(active_service) if not service.queryProtocol(proto): if not add: service.removeProtocol(old_proto) service.addProtocol(proto) self.changes_applied() def protocol_added_cb(self, zone, protocol, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.protocolStore.get_iter_first() while iter: if self.protocolStore.get_value(iter, 0) == protocol: # already there return iter = self.protocolStore.iter_next(iter) # nothing found, so add it self.protocolStore.append([protocol]) def protocol_removed_cb(self, zone, protocol): if not self.runtime_view or zone != self.get_selected_zone(): return iter = self.protocolStore.get_iter_first() while iter: if self.protocolStore.get_value(iter, 0) == protocol: self.protocolStore.remove(iter) break iter = self.protocolStore.iter_next(iter) def onForwardDialogChecksToggled(self, check, *args): val1 = self.forwardDialogLocalCheck.get_active() val2 = self.forwardDialogToPortCheck.get_active() self.forwardDialogToAddrLabel.set_sensitive(not val1) self.forwardDialogToAddrEntry.set_sensitive(not val1) self.forwardDialogToPortCheck.set_sensitive(not val1) self.forwardDialogToPortLabel.set_sensitive(val1 or val2) self.forwardDialogToPortEntry.set_sensitive(val1 or val2) self.onForwardChanged(None) def onForwardDialogToPortCheckToggled(self, check, *args): toport = check.get_active() self.forwardDialogToPortLabel.set_sensitive(toport) self.forwardDialogToPortEntry.set_sensitive(toport) self.onForwardChanged(None) def _check_forward(self): ports = self.forwardDialogPortEntry.get_text() to_ports = self.forwardDialogToPortEntry.get_text() to_addr = self.forwardDialogToAddrEntry.get_text() local_check = self.forwardDialogLocalCheck.get_active() to_port_check = self.forwardDialogToPortCheck.get_active() ports = functions.getPortRange(ports) to_ports = functions.getPortRange(to_ports) ports_ok = False if ports and (isinstance(ports, list) or \ isinstance(ports, tuple)): ports_ok = True to_ports_ok = False if to_ports and (isinstance(to_ports, list) or \ isinstance(to_ports, tuple)): to_ports_ok = True to_addr_ok = False if to_addr != "": if self.forwardDialog.family == "ipv4" and \ functions.checkIP(to_addr): to_addr_ok = True if self.forwardDialog.family == "ipv6" and \ functions.checkIP6(to_addr): to_addr_ok = True if self.forwardDialog.family is None and \ (functions.checkIP(to_addr) or functions.checkIP6(to_addr)): to_addr_ok = True ok = False if ports_ok: if local_check: if to_ports_ok and ports != to_ports: ok = True elif to_addr_ok: if to_port_check: if to_ports_ok: ok = True else: ok = True return ok def onForwardChanged(self, arg): ok = False if arg == self.forwardDialogProtoCombobox: if self._check_forward(): ok = True else: ok = self._check_forward() self.forwardDialogOkButton.set_sensitive(ok) def onAddForwardPort(self, *args): self.add_edit_forward_port(True) def onEditForwardPort(self, *args): self.add_edit_forward_port(False) def onForwardPortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_forward_port(False) def forwardport_select_dialog(self, family, old_value=None): self.forwardDialogOkButton.set_sensitive(False) self.forwardDialogLocalCheck.set_active(True) self.forwardDialogLocalCheck.set_active(False) self.forwardDialogToPortCheck.set_active(False) self.forwardDialog.family = family (old_port, old_proto, old_to_port, old_to_addr) = \ self.split_fwp_string(old_value) self.forwardDialogPortEntry.set_text("") if old_port is not None: self.forwardDialogPortEntry.set_text(old_port) combobox_select_text(self.forwardDialogProtoCombobox, old_proto) self.forwardDialogToPortEntry.set_text("") if old_to_port is not None: self.forwardDialogToPortEntry.set_text(old_to_port) if old_to_addr: if old_to_port: self.forwardDialogToPortCheck.set_active(True) else: self.forwardDialogLocalCheck.set_active(True) self.forwardDialogToAddrEntry.set_text("") if old_to_addr is not None: self.forwardDialogToAddrEntry.set_text(old_to_addr) self.forwardDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.forwardDialog.set_transient_for(self.mainWindow) self.forwardDialog.show_all() self.add_visible_dialog(self.forwardDialog) result = self.forwardDialog.run() self.forwardDialog.hide() self.remove_visible_dialog(self.forwardDialog) if result != 1: return None port = self.forwardDialogPortEntry.get_text() proto = self.forwardDialogProtoCombobox.get_active_text() to_addr = self.forwardDialogToAddrEntry.get_text() to_port = self.forwardDialogToPortEntry.get_text() if not self.forwardDialogLocalCheck.get_active(): if not self.forwardDialogToPortCheck.get_active(): to_port = "" else: to_addr = "" value = self.create_fwp_string(port, proto, to_port, to_addr) if old_value == value: return None return value def add_edit_forward_port(self, add): selected_zone = self.get_selected_zone() self.forwardDialogOkButton.set_sensitive(False) self.forwardDialogLocalCheck.set_active(True) self.forwardDialogLocalCheck.set_active(False) self.forwardDialogToPortCheck.set_active(False) self.forwardDialog.family = None old_port = None old_proto = None old_to_port = None old_to_addr = None iter = None if add: self.forwardDialogPortEntry.set_text("") self.forwardDialogProtoCombobox.set_active(0) self.forwardDialogToPortEntry.set_text("") self.forwardDialogToAddrEntry.set_text("") else: selection = self.forwardView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.forwardStore.get_value(iter, 0) old_proto = self.forwardStore.get_value(iter, 1) old_to_port = self.forwardStore.get_value(iter, 2) old_to_addr = self.forwardStore.get_value(iter, 3) self.forwardDialogPortEntry.set_text(old_port) combobox_select_text(self.forwardDialogProtoCombobox, old_proto) self.forwardDialogToPortEntry.set_text(old_to_port) if old_to_addr: if old_to_port: self.forwardDialogToPortCheck.set_active(True) else: self.forwardDialogLocalCheck.set_active(True) self.forwardDialogToAddrEntry.set_text(old_to_addr) self.forwardDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.forwardDialog.set_transient_for(self.mainWindow) self.forwardDialog.show_all() self.add_visible_dialog(self.forwardDialog) result = self.forwardDialog.run() self.forwardDialog.hide() self.remove_visible_dialog(self.forwardDialog) if result != 1: return port = self.forwardDialogPortEntry.get_text() proto = self.forwardDialogProtoCombobox.get_active_text() to_addr = self.forwardDialogToAddrEntry.get_text() to_port = self.forwardDialogToPortEntry.get_text() if not self.forwardDialogLocalCheck.get_active(): if not self.forwardDialogToPortCheck.get_active(): to_port = "" else: to_addr = "" if not add and (old_port == port and old_proto == proto and \ old_to_port == to_port and old_to_addr == to_addr): # nothing to change return if self.runtime_view: if not self.fw.queryForwardPort(selected_zone, port, proto, to_port, to_addr): self.fw.addForwardPort(selected_zone, port, proto, to_port, to_addr) if not add: self.fw.removeForwardPort(selected_zone, old_port, old_proto, old_to_port, old_to_addr) if add and to_addr and not self.fw.queryMasquerade(selected_zone): if self.masqueradeQueryDialog() == Gtk.ResponseType.YES: self.fw.addMasquerade(selected_zone) self.changes_applied() else: zone = self.fw.config().getZoneByName(selected_zone) if not zone.queryForwardPort(port, proto, to_port, to_addr): if not add: zone.removeForwardPort(old_port, old_proto, old_to_port, old_to_addr) zone.addForwardPort(port, proto, to_port, to_addr) if add and to_addr and not zone.getMasquerade(): if self.masqueradeQueryDialog() == Gtk.ResponseType.YES: zone.setMasquerade(True) self.changes_applied() def masqueradeQueryDialog(self): text = _("Forwarding to another system is only useful if the interface is masqueraded.\nDo you want to masquerade this zone ?") return self._dialog(text=text, buttons=((Gtk.STOCK_YES, Gtk.ResponseType.YES), (Gtk.STOCK_NO, Gtk.ResponseType.NO))) def forward_port_added_cb(self, zone, port, protocol, to_port, to_address, timeout): if not self.runtime_view or zone != self.get_selected_zone(): return self._forward_port_added_cb(zone, port, protocol, to_port, to_address) def forward_port_removed_cb(self, zone, port, protocol, to_port, to_address): if not self.runtime_view or zone != self.get_selected_zone(): return self._forward_port_removed_cb(zone, port, protocol, to_port, to_address) def _forward_port_added_cb(self, zone, port, protocol, to_port, to_address): iter = self.forwardStore.get_iter_first() while iter: if self.forwardStore.get_value(iter, 0) == port and \ self.forwardStore.get_value(iter, 1) == protocol and \ self.forwardStore.get_value(iter, 2) == to_port and \ self.forwardStore.get_value(iter, 3) == to_address: # already there return iter = self.forwardStore.iter_next(iter) # nothing found, so add it self.forwardStore.append([port, protocol, to_port, to_address]) def _forward_port_removed_cb(self, zone, port, protocol, to_port, to_address): iter = self.forwardStore.get_iter_first() while iter: if self.forwardStore.get_value(iter, 0) == port and \ self.forwardStore.get_value(iter, 1) == protocol and \ self.forwardStore.get_value(iter, 2) == to_port and \ self.forwardStore.get_value(iter, 3) == to_address: self.forwardStore.remove(iter) break iter = self.forwardStore.iter_next(iter) def onRemoveForwardPort(self, *args): selected_zone = self.get_selected_zone() selection = self.forwardView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.forwardStore.get_value(iter, 0) proto = self.forwardStore.get_value(iter, 1) to_port = self.forwardStore.get_value(iter, 2) to_addr = self.forwardStore.get_value(iter, 3) if self.runtime_view: self.fw.removeForwardPort(selected_zone, port, proto, to_port, to_addr) else: zone = self.fw.config().getZoneByName(selected_zone) zone.removeForwardPort(port, proto, to_port, to_addr) self.changes_applied() def onChangeService(self, *args): active_service = self.get_active_service() ### load service settings self.serviceConfPortStore.clear() self.serviceConfProtocolStore.clear() self.serviceConfSourcePortStore.clear() self.serviceConfModuleStore.clear() self.serviceConfDestIpv4Chooser.set_text("") self.serviceConfDestIpv6Chooser.set_text("") self.serviceConfPortView.get_selection().set_mode( Gtk.SelectionMode.NONE) self.serviceConfProtocolView.get_selection().set_mode( Gtk.SelectionMode.NONE) self.serviceConfSourcePortView.get_selection().set_mode( Gtk.SelectionMode.NONE) self.serviceConfModuleView.get_selection().set_mode( Gtk.SelectionMode.NONE) if not active_service: self.serviceConfEditServiceButton.set_sensitive(False) self.serviceConfRemoveServiceButton.set_sensitive(False) self.serviceConfLoadDefaultsServiceButton.set_sensitive(False) self.serviceConfServiceNotebook.set_sensitive(False) return self.serviceConfEditServiceButton.set_sensitive(True) self.serviceConfServiceNotebook.set_sensitive(True) ports = [ ] protocols = [ ] source_ports = [ ] modules = [ ] destination = { } if self.runtime_view: # load runtime configuration settings = self.fw.getServiceSettings(active_service) ports = settings.getPorts() protocols = settings.getProtocols() source_ports = settings.getSourcePorts() modules = settings.getModules() destination = settings.getDestinations() default = False builtin = False else: try: service = self.fw.config().getServiceByName(active_service) except: return # load permanent configuration settings = service.getSettings() ports = settings.getPorts() protocols = settings.getProtocols() source_ports = settings.getSourcePorts() modules = settings.getModules() destination = settings.getDestinations() props = service.get_properties() default = props["default"] builtin = props["builtin"] self.serviceConfRemoveServiceButton.set_sensitive(not builtin and default) self.serviceConfLoadDefaultsServiceButton.set_sensitive(not default) # set ports for item in ports: self.serviceConfPortStore.append(item) # set protocols for item in protocols: self.serviceConfProtocolStore.append([item]) # set ports for item in source_ports: self.serviceConfSourcePortStore.append(item) # set modules for item in modules: self.serviceConfModuleStore.append([item]) # set destination if "ipv4" in destination: self.serviceConfDestIpv4Chooser.set_text(destination["ipv4"]) if "ipv6" in destination: self.serviceConfDestIpv6Chooser.set_text(destination["ipv6"]) self.serviceConfPortView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) self.serviceConfProtocolView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) self.serviceConfSourcePortView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) self.serviceConfModuleView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) def conf_service_added_cb(self, service): if self.runtime_view: return # check if service is in store iter = self.serviceConfServiceStore.get_iter_first() while iter: if self.serviceConfServiceStore.get_value(iter, 0) == service: return iter = self.serviceConfServiceStore.iter_next(iter) # not in list, append self.serviceConfServiceStore.append([service]) def conf_service_updated_cb(self, service): self.onChangeService() def conf_service_removed_cb(self, service): if self.runtime_view: return iter = self.serviceConfServiceStore.get_iter_first() while iter: if self.serviceConfServiceStore.get_value(iter, 0) == service: self.serviceConfServiceStore.remove(iter) break iter = self.serviceConfServiceStore.iter_next(iter) def conf_service_renamed_cb(self, service): if self.runtime_view: return # Get all services, renamed the one that is missing. # If more or less than one is missing, update service store. services = self.fw.config().getServiceNames() use_iter = None iter = self.serviceConfServiceStore.get_iter_first() while iter: if self.serviceConfServiceStore.get_value(iter, 0) not in services: if use_iter is not None: return self.load_services() use_iter = iter iter = self.serviceConfServiceStore.iter_next(iter) if use_iter is None: return self.load_services() self.serviceConfServiceStore.set_value(use_iter, 0, service) def onServiceConfAddService(self, *args): self.add_edit_service(True) def onServiceConfRemoveService(self, *args): active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) service.remove() self.changes_applied() self.load_services() self.onChangeService() def onServiceConfEditService(self, *args): self.add_edit_service(False) def onServiceBaseDialogChanged(self, *args): if args and (args[0] == self.serviceBaseDialogNameEntry): additional_chars = "".join(Service.ADDITIONAL_ALNUM_CHARS) allowed_chars = string.ascii_letters+string.digits+additional_chars self.entry_changed(args[0], allowed_chars) self.serviceBaseDialogOkButton.set_sensitive(True) def onServiceConfAddPort(self, *args): self.service_conf_add_edit_port(True) def onServiceConfEditPort(self, *args): self.service_conf_add_edit_port(False) def onServiceConfPortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.service_conf_add_edit_port(False) def onServiceConfRemovePort(self, *args): active_service = self.get_active_service() selection = self.serviceConfPortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.serviceConfPortStore.get_value(iter, 0) proto = self.serviceConfPortStore.get_value(iter, 1) service = self.fw.config().getServiceByName(active_service) service.removePort(port, proto) self.changes_applied() def change_service_dialog_port_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.serviceConfEditPortButton.set_sensitive(True) self.serviceConfRemovePortButton.set_sensitive(True) else: self.serviceConfEditPortButton.set_sensitive(False) self.serviceConfRemovePortButton.set_sensitive(False) def onServiceConfAddProtocol(self, *args): self.service_conf_add_edit_protocol(True) def onServiceConfEditProtocol(self, *args): self.service_conf_add_edit_protocol(False) def onServiceConfProtocolClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.service_conf_add_edit_protocol(False) def onServiceConfRemoveProtocol(self, *args): active_service = self.get_active_service() selection = self.serviceConfProtocolView.get_selection() (model, iter) = selection.get_selected() if iter is None: return proto = self.serviceConfProtocolStore.get_value(iter, 0) service = self.fw.config().getServiceByName(active_service) service.removeProtocol(proto) self.changes_applied() def change_service_dialog_protocol_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.serviceConfEditProtocolButton.set_sensitive(True) self.serviceConfRemoveProtocolButton.set_sensitive(True) else: self.serviceConfEditProtocolButton.set_sensitive(False) self.serviceConfRemoveProtocolButton.set_sensitive(False) def onServiceConfAddSourcePort(self, *args): self.service_conf_add_edit_source_port(True) def onServiceConfEditSourcePort(self, *args): self.service_conf_add_edit_source_port(False) def onServiceConfSourcePortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.service_conf_add_edit_source_port(False) def onServiceConfRemoveSourcePort(self, *args): active_service = self.get_active_service() selection = self.serviceConfSourcePortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.serviceConfSourcePortStore.get_value(iter, 0) proto = self.serviceConfSourcePortStore.get_value(iter, 1) service = self.fw.config().getServiceByName(active_service) service.removeSourcePort(port, proto) self.changes_applied() def change_service_dialog_source_port_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.serviceConfEditSourcePortButton.set_sensitive(True) self.serviceConfRemoveSourcePortButton.set_sensitive(True) else: self.serviceConfEditSourcePortButton.set_sensitive(False) self.serviceConfRemoveSourcePortButton.set_sensitive(False) def add_edit_service(self, add): if add: default = True builtin = False old_name = None old_version = None old_short = None old_desc = None old_target = None self.serviceBaseDialogNameEntry.set_text("") self.serviceBaseDialogVersionEntry.set_text("") self.serviceBaseDialogShortEntry.set_text("") self.serviceBaseDialogDescText.get_buffer().set_text("") else: active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) settings = service.getSettings() props = service.get_properties() default = props["default"] builtin = props["builtin"] old_name = service.get_property("name") old_version = settings.getVersion() old_short = settings.getShort() old_desc = settings.getDescription() self.serviceBaseDialogNameEntry.set_text(old_name) self.serviceBaseDialogVersionEntry.set_text(old_version) self.serviceBaseDialogShortEntry.set_text(old_short) self.serviceBaseDialogDescText.get_buffer().set_text(old_desc) self.serviceBaseDialogOkButton.set_sensitive(False) if builtin: self.serviceBaseDialogNameEntry.set_tooltip_markup(\ _("Built-in service, rename not supported.")) else: self.serviceBaseDialogNameEntry.set_tooltip_markup("") self.serviceBaseDialogNameEntry.set_sensitive(not builtin and default) self.serviceBaseDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.serviceBaseDialog.set_transient_for(self.mainWindow) self.serviceBaseDialog.show_all() self.add_visible_dialog(self.serviceBaseDialog) result = self.serviceBaseDialog.run() self.serviceBaseDialog.hide() self.remove_visible_dialog(self.serviceBaseDialog) if result != 1: return name = self.serviceBaseDialogNameEntry.get_text() version = self.serviceBaseDialogVersionEntry.get_text() short = self.serviceBaseDialogShortEntry.get_text() buffer = self.serviceBaseDialogDescText.get_buffer() desc = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), False) if old_name == name and \ old_version == version and old_short == short and \ old_desc == desc: # no changes return if not add: active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) settings = service.getSettings() else: settings = client.FirewallClientServiceSettings() if old_version != version or old_short != short or \ old_desc != desc: # settings settings.setVersion(version) settings.setShort(short) settings.setDescription(desc) if not add: service.update(settings) if not add: if old_name == name: return service.rename(name) else: self.fw.config().addService(name, settings) self.changes_applied() def onServiceConfLoadDefaultsService(self, *args): active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) service.loadDefaults() self.changes_applied() self.onChangeService() def onServiceConfAddModule(self, *args): self.add_edit_module(True) def onServiceConfEditModule(self, *args): self.add_edit_module(False) def onServiceConfModuleClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.add_edit_module(False) def onServiceConfRemoveModule(self, *args): active_service = self.get_active_service() selection = self.serviceConfModuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return module = self.serviceConfModuleStore.get_value(iter, 0) service = self.fw.config().getServiceByName(active_service) service.removeModule(module) self.changes_applied() def change_service_dialog_module_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.serviceConfEditModuleButton.set_sensitive(True) self.serviceConfRemoveModuleButton.set_sensitive(True) else: self.serviceConfEditModuleButton.set_sensitive(False) self.serviceConfRemoveModuleButton.set_sensitive(False) def helper_select_dialog(self, old_helper=""): self.helperDialogHelperStore.clear() helpers = [ ] if self.runtime_view: helpers = self.fw.getHelpers() else: helpers = self.fw.config().getHelperNames() for helper in sorted(helpers): self.helperDialogHelperStore.append([helper]) selection = self.helperDialogHelperView.get_selection() selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.helperDialogHelperStore.get_iter_first() while iter: if self.helperDialogHelperStore.get_value(iter, 0) == old_helper: selection.select_iter(iter) iter = self.helperDialogHelperStore.iter_next(iter) self.helperDialogOkButton.set_sensitive(False) self.helperDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.helperDialog.set_transient_for(self.mainWindow) self.helperDialog.show_all() self.add_visible_dialog(self.helperDialog) result = self.helperDialog.run() self.helperDialog.hide() self.remove_visible_dialog(self.helperDialog) if result != 1: return None (model, iter) = selection.get_selected() if not iter: return None helper = self.helperDialogHelperStore.get_value(iter, 0) if old_helper == helper: return None return helper def add_edit_module(self, add): active_service = self.get_active_service() old_helper = None if not add: selection = self.serviceConfModuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_helper = self.serviceConfModuleStore.get_value(iter, 0) helper = self.helper_select_dialog(old_helper) if helper is None: return if old_helper == helper: # nothing to change return service = self.fw.config().getServiceByName(active_service) if not service.queryModule(helper): if not add: service.removeModule(old_helper) service.addModule(helper) self.changes_applied() def onChangeServiceConfDestIpv4(self, *args): old_addr = self.serviceConfDestIpv4Chooser.get_text() addr = self.address_select_dialog("ipv4", old_addr) if addr is None: return active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) if not service.queryDestination("ipv4", addr): if addr != "": service.setDestination("ipv4", addr) else: service.removeDestination("ipv4") self.changes_applied() def onChangeServiceConfDestIpv6(self, *args): old_addr = self.serviceConfDestIpv6Chooser.get_text() addr = self.address_select_dialog("ipv6", old_addr) if addr is None: return active_service = self.get_active_service() service = self.fw.config().getServiceByName(active_service) if not service.queryDestination("ipv6", addr): if addr != "": service.setDestination("ipv6", addr) else: service.removeDestination("ipv6") self.changes_applied() def onAddressChanged(self, entry, addr_type, old_address): text = entry.get_text() if text == "": self.addressDialogOkButton.set_sensitive(True) return self.addressDialogOkButton.set_sensitive(False) if addr_type == "ipv4": if functions.checkIPnMask(text) and text != old_address: self.addressDialogOkButton.set_sensitive(True) elif addr_type == "ipv6": if functions.checkIP6nMask(text) and text != old_address: self.addressDialogOkButton.set_sensitive(True) else: if (functions.checkIPnMask(text) or \ functions.checkIP6nMask(text)) and text != old_address: self.addressDialogOkButton.set_sensitive(True) def address_select_dialog(self, addr_type, old_address): if addr_type == "ipv4": label1 = _("Please enter an ipv4 address with the form address[/mask].") label2 = _("The mask can be a network mask or a number.") elif addr_type == "ipv6": label1 = _("Please enter an ipv6 address with the form address[/mask].") label2 = _("The mask is a number.") else: label1 = _("Please enter an ipv4 or ipv6 address with the form address[/mask].") label2 = _("The mask can be a network mask or a number for ipv4.\nThe mask is a number for ipv6.") self.addressDialogLabel.set_markup(label1) self.addressDialogLabel2.set_markup(label2) self.addressDialogAddressEntry.set_text(old_address) handler_id = self.addressDialogAddressEntry.connect( "changed", self.onAddressChanged, addr_type, old_address) self.addressDialogOkButton.set_sensitive(False) self.addressDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.addressDialog.set_transient_for(self.mainWindow) self.addressDialog.show_all() self.add_visible_dialog(self.addressDialog) result = self.addressDialog.run() self.addressDialog.hide() self.remove_visible_dialog(self.addressDialog) self.addressDialogAddressEntry.disconnect(handler_id) address = self.addressDialogAddressEntry.get_text() if functions.check_mac(address): address = address.upper() if result != 1 or old_address == address: return None return address def get_active_ipset(self): selection = self.ipsetConfIPSetView.get_selection() (model, iter) = selection.get_selected() if iter: return self.ipsetConfIPSetStore.get_value(iter, 0) return None def load_ipsets(self): if not self.show_ipsets: return active_ipset = self.get_active_ipset() if self.runtime_view: ipsets = self.fw.getIPSets() else: ipsets = self.fw.config().getIPSetNames() selection = self.ipsetConfIPSetView.get_selection() selection.set_mode(Gtk.SelectionMode.NONE) # reset and fill notebook content according to view self.ipsetConfIPSetStore.clear() # ipsets for ipset in ipsets: self.ipsetConfIPSetStore.append([ipset]) selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.ipsetConfIPSetStore.get_iter_first() while iter: if self.ipsetConfIPSetStore.get_value(iter, 0) == \ active_ipset: selection.select_iter(iter) return iter = self.ipsetConfIPSetStore.iter_next(iter) selection.select_path(0) self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) if not self.get_active_ipset(): self.ipsetConfEditIPSetButton.set_sensitive(False) self.ipsetConfRemoveIPSetButton.set_sensitive(False) self.ipsetConfLoadDefaultsIPSetButton.set_sensitive(False) self.ipsetConfEntryBox.set_sensitive(False) def onIPSetConfAddIPSet(self, *args): self.add_edit_ipset(True) def onIPSetConfRemoveIPSet(self, *args): active_ipset = self.get_active_ipset() ipset = self.fw.config().getIPSetByName(active_ipset) ipset.remove() self.changes_applied() self.load_ipsets() self.onChangeIPSet() def onIPSetConfEditIPSet(self, *args): self.add_edit_ipset(False) def onIPSetConfLoadDefaultsIPSet(self, *args): active_ipset = self.get_active_ipset() ipset = self.fw.config().getIPSetByName(active_ipset) ipset.loadDefaults() self.changes_applied() self.onChangeIPSet() def onIPSetBaseDialogChanged(self, *args): def check_ipset_name(ipset): return (len(ipset) <= IPSET_MAXNAMELEN, ipset) OK=True if args and (args[0] == self.ipsetBaseDialogNameEntry): additional_chars = "".join(IPSet.ADDITIONAL_ALNUM_CHARS) allowed_chars = string.ascii_letters+string.digits+additional_chars OK = self.entry_changed(args[0], allowed_chars, check_ipset_name) self.ipsetBaseDialogOkButton.set_sensitive(OK) def add_edit_ipset(self, add): self.ipsetBaseDialogTypeCombobox.remove_all() ipset_types = self.fw.get_property("IPSetTypes") for x in ipset_types: self.ipsetBaseDialogTypeCombobox.append_text(x) self.ipsetBaseDialogBadTypeLabel.set_text("") if add: default = True builtin = False old_name = None old_version = None old_short = None old_desc = None old_ipset_type = None old_options = { } self.ipsetBaseDialogNameEntry.set_text("") self.ipsetBaseDialogVersionEntry.set_text("") self.ipsetBaseDialogShortEntry.set_text("") self.ipsetBaseDialogDescText.get_buffer().set_text("") combobox_select_text(self.ipsetBaseDialogTypeCombobox, "hash:ip") self.ipsetBaseDialogFamilyCombobox.set_active(0) self.ipsetBaseDialogTimeoutEntry.set_text("") self.ipsetBaseDialogHashsizeEntry.set_text("") self.ipsetBaseDialogMaxelemEntry.set_text("") else: active_ipset = self.get_active_ipset() ipset = self.fw.config().getIPSetByName(active_ipset) settings = ipset.getSettings() props = ipset.get_properties() default = props["default"] builtin = props["builtin"] old_name = ipset.get_property("name") old_version = settings.getVersion() old_short = settings.getShort() old_desc = settings.getDescription() old_ipset_type = settings.getType() old_options = settings.getOptions() self.ipsetBaseDialogNameEntry.set_text(old_name) self.ipsetBaseDialogVersionEntry.set_text(old_version) self.ipsetBaseDialogShortEntry.set_text(old_short) self.ipsetBaseDialogDescText.get_buffer().set_text(old_desc) if old_ipset_type not in ipset_types: self.ipsetBaseDialogBadTypeLabel.set_text(old_ipset_type) else: combobox_select_text(self.ipsetBaseDialogTypeCombobox, old_ipset_type) if "family" in old_options and \ old_options["family"] in [ "inet", "inet6" ]: combobox_select_text(self.ipsetBaseDialogFamilyCombobox, old_options["family"]) else: self.ipsetBaseDialogFamilyCombobox.set_active(0) if "timeout" in old_options: self.ipsetBaseDialogTimeoutEntry.set_text( old_options["timeout"]) else: self.ipsetBaseDialogTimeoutEntry.set_text("") if "hashsize" in old_options: self.ipsetBaseDialogHashsizeEntry.set_text( old_options["hashsize"]) else: self.ipsetBaseDialogHashsizeEntry.set_text("") if "maxelem" in old_options: self.ipsetBaseDialogMaxelemEntry.set_text( old_options["maxelem"]) else: self.ipsetBaseDialogMaxelemEntry.set_text("") self.ipsetBaseDialogOkButton.set_sensitive(False) if builtin: self.ipsetBaseDialogNameEntry.set_tooltip_markup(\ _("Built-in ipset, rename not supported.")) else: self.ipsetBaseDialogNameEntry.set_tooltip_markup("") self.ipsetBaseDialogNameEntry.set_sensitive(not builtin and default) self.ipsetBaseDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.ipsetBaseDialog.set_transient_for(self.mainWindow) self.ipsetBaseDialog.show_all() self.add_visible_dialog(self.ipsetBaseDialog) result = self.ipsetBaseDialog.run() self.ipsetBaseDialog.hide() self.remove_visible_dialog(self.ipsetBaseDialog) if result != 1: return name = self.ipsetBaseDialogNameEntry.get_text() version = self.ipsetBaseDialogVersionEntry.get_text() short = self.ipsetBaseDialogShortEntry.get_text() buffer = self.ipsetBaseDialogDescText.get_buffer() desc = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), False) ipset_type = self.ipsetBaseDialogBadTypeLabel.get_text() ipset_type = self.ipsetBaseDialogTypeCombobox.get_active_text() options = { } if self.ipsetBaseDialogFamilyCombobox.is_sensitive(): x = self.ipsetBaseDialogFamilyCombobox.get_active_text() if x != "inet": options["family"] = x if self.ipsetBaseDialogTimeoutEntry.is_sensitive(): x = self.ipsetBaseDialogTimeoutEntry.get_text() if x != "": options["timeout"] = x x = self.ipsetBaseDialogHashsizeEntry.get_text() if x != "": options["hashsize"] = x x = self.ipsetBaseDialogMaxelemEntry.get_text() if x != "": options["maxelem"] = x if old_name == name and \ old_version == version and old_short == short and \ old_desc == desc and old_ipset_type == ipset_type and \ old_options == options: # no changes return if not add: active_ipset = self.get_active_ipset() ipset = self.fw.config().getIPSetByName(active_ipset) settings = ipset.getSettings() else: settings = client.FirewallClientIPSetSettings() if old_version != version or old_short != short or \ old_desc != desc or old_ipset_type != ipset_type or \ old_options != options: # settings settings.setVersion(version) settings.setShort(short) settings.setDescription(desc) settings.setType(ipset_type) settings.setOptions(options) if not add: ipset.update(settings) if not add: if old_name == name: return ipset.rename(name) else: self.fw.config().addIPSet(name, settings) self.changes_applied() def onIPSetChanged(self, *args): if self.ipsetBaseDialogTypeCombobox.get_active_text() is None: # unsupported ipset type return if self.ipsetBaseDialogTypeCombobox.get_active_text() == "hash:mac": self.ipsetBaseDialogFamilyLabel.set_sensitive(False) self.ipsetBaseDialogFamilyCombobox.set_sensitive(False) else: self.ipsetBaseDialogFamilyLabel.set_sensitive(True) self.ipsetBaseDialogFamilyCombobox.set_sensitive(True) self.ipsetBaseDialogOkButton.set_sensitive(True) def onIPSetConfAddEntry(self, *args): self.add_edit_ipset_entry(True) def onIPSetConfAddEntriesFromFile(self, *args): dialog = Gtk.FileChooserDialog( _("Please select a file"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) dialog.set_transient_for(self.mainWindow) filefilter = Gtk.FileFilter() filefilter.set_name(_("Text Files")) filefilter.add_mime_type("text/plain") dialog.add_filter(filefilter) filefilter = Gtk.FileFilter() filefilter.set_name(_("All Files")) filefilter.add_pattern("*") dialog.add_filter(filefilter) result = dialog.run() dialog.hide() if result == Gtk.ResponseType.OK: filename = dialog.get_filename() else: return dialog.destroy() entries = self.get_ipset_entries_from_file(filename) active_ipset = self.get_active_ipset() if self.runtime_view: old_entries = self.fw.getEntries(active_ipset) changed = False for entry in entries: if entry not in old_entries: old_entries.append(entry) changed = True if changed: self.fw.setEntries(active_ipset, old_entries) else: ipset = self.fw.config().getIPSetByName(active_ipset) settings = ipset.getSettings() changed = False for entry in entries: if not settings.queryEntry(entry): settings.addEntry(entry) changed = True if changed: ipset.update(settings) def onIPSetConfEditEntry(self, *args): self.add_edit_ipset_entry(False) def onIPSetConfEntryClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.add_edit_ipset_entry(False) def onIPSetConfRemoveEntry(self, *args): active_ipset = self.get_active_ipset() selection = self.ipsetConfEntryView.get_selection() (model, iter) = selection.get_selected() if iter is None: return entry = self.ipsetConfEntryStore.get_value(iter, 0) if self.runtime_view: if self.fw.queryEntry(active_ipset, entry): self.fw.removeEntry(active_ipset, entry) self.changes_applied() else: ipset = self.fw.config().getIPSetByName(active_ipset) ipset.removeEntry(entry) self.changes_applied() self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) def onIPSetConfRemoveEntriesFromFile(self, *args): dialog = Gtk.FileChooserDialog( _("Please select a file"), None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) dialog.set_transient_for(self.mainWindow) filefilter = Gtk.FileFilter() filefilter.set_name(_("Text Files")) filefilter.add_mime_type("text/plain") dialog.add_filter(filefilter) filefilter = Gtk.FileFilter() filefilter.set_name(_("All Files")) filefilter.add_pattern("*") dialog.add_filter(filefilter) result = dialog.run() dialog.hide() if result == Gtk.ResponseType.OK: filename = dialog.get_filename() else: return dialog.destroy() entries = self.get_ipset_entries_from_file(filename) active_ipset = self.get_active_ipset() if self.runtime_view: old_entries = self.fw.getEntries(active_ipset) changed = False for entry in entries: if entry in old_entries: old_entries.remove(entry) changed = True if changed: self.fw.setEntries(active_ipset, old_entries) else: ipset = self.fw.config().getIPSetByName(active_ipset) settings = ipset.getSettings() changed = False for entry in entries: if settings.queryEntry(entry): settings.removeEntry(entry) changed = True if changed: ipset.update(settings) def onIPSetConfRemoveAllEntries(self, *args): active_ipset = self.get_active_ipset() if self.runtime_view: self.fw.setEntries(active_ipset, [ ]) self.changes_applied() else: ipset = self.fw.config().getIPSetByName(active_ipset) ipset.setEntries([ ]) self.changes_applied() self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) def onIPSetEntryChanged(self, *args): settings = self.active_ipset_settings entry = self.ipsetEntryDialogEntryEntry.get_text() try: IPSet.check_entry(entry, settings.getOptions(), settings.getType()) except Exception as e: self.ipsetEntryDialogOkButton.set_sensitive(False) else: self.ipsetEntryDialogOkButton.set_sensitive(True) def change_ipset_conf_entry_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.ipsetConfEditEntryButton.set_sensitive(True) self.ipsetConfRemoveEntryMenuitem.set_sensitive(True) else: self.ipsetConfEditEntryButton.set_sensitive(False) self.ipsetConfRemoveEntryMenuitem.set_sensitive(False) def add_edit_ipset_entry(self, add): active_ipset = self.get_active_ipset() if self.runtime_view: settings = self.fw.getIPSetSettings(active_ipset) else: settings = self.fw.config().getIPSetByName(active_ipset).getSettings() self.active_ipset_settings = settings self.ipsetEntryDialogTypeLabel.set_text(settings.getType()) self.ipsetEntryDialogEntryEntry.set_text("") old_entry = None if not add: selection = self.ipsetConfEntryView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_entry = self.ipsetConfEntryStore.get_value(iter, 0) if old_entry: self.ipsetEntryDialogEntryEntry.set_text(old_entry) self.ipsetEntryDialogOkButton.set_sensitive(False) self.ipsetEntryDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.ipsetEntryDialog.set_transient_for(self.mainWindow) self.ipsetEntryDialog.show_all() self.add_visible_dialog(self.ipsetEntryDialog) result = self.ipsetEntryDialog.run() self.ipsetEntryDialog.hide() self.active_ipset_settings = None self.remove_visible_dialog(self.ipsetEntryDialog) if result != 1: return entry = self.ipsetEntryDialogEntryEntry.get_text() if old_entry == entry: # nothing to change return if self.runtime_view: if not self.fw.queryEntry(active_ipset, entry): self.fw.addEntry(active_ipset, entry) if not add: self.fw.removeEntry(active_ipset, old_entry) self.changes_applied() else: ipset = self.fw.config().getIPSetByName(active_ipset) if not ipset.queryEntry(entry): if not add: ipset.removeEntry(old_entry) ipset.addEntry(entry) self.changes_applied() def ipset_entry_added_cb(self, ipset, entry): if not self.runtime_view or ipset != self.get_active_ipset(): return iter = self.ipsetConfEntryStore.get_iter_first() while iter: if self.ipsetConfEntryStore.get_value(iter, 0) == entry: # already there return iter = self.ipsetConfEntryStore.iter_next(iter) # nothing found, so add it self.ipsetConfEntryStore.append([entry]) self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) def ipset_entry_removed_cb(self, ipset, entry): if not self.runtime_view or ipset != self.get_active_ipset(): return iter = self.ipsetConfEntryStore.get_iter_first() while iter: if self.ipsetConfEntryStore.get_value(iter, 0) == entry: self.ipsetConfEntryStore.remove(iter) break iter = self.ipsetConfEntryStore.iter_next(iter) self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) def conf_ipset_added_cb(self, ipset): if self.runtime_view: return # check if ipset is in store iter = self.ipsetConfIPSetStore.get_iter_first() while iter: if self.ipsetConfIPSetStore.get_value(iter, 0) == ipset: return iter = self.ipsetConfIPSetStore.iter_next(iter) # not in list, append self.ipsetConfIPSetStore.append([ipset]) selection = self.ipsetConfIPSetView.get_selection() if selection.count_selected_rows() == 0: selection.select_path(0) def conf_ipset_updated_cb(self, ipset): if self.runtime_view or ipset != self.get_active_ipset(): return self.onChangeIPSet() def conf_ipset_removed_cb(self, ipset): if self.runtime_view: return iter = self.ipsetConfIPSetStore.get_iter_first() while iter: if self.ipsetConfIPSetStore.get_value(iter, 0) == ipset: self.ipsetConfIPSetStore.remove(iter) break iter = self.ipsetConfIPSetStore.iter_next(iter) def conf_ipset_renamed_cb(self, ipset): if self.runtime_view: return # Get all ipsets, renamed the one that is missing. # If more or less than one is missing, update ipset store. ipsets = self.fw.config().getIPSetNames() use_iter = None iter = self.ipsetConfIPSetStore.get_iter_first() while iter: if self.ipsetConfIPSetStore.get_value(iter, 0) not in ipsets: if use_iter is not None: return self.load_ipsets() use_iter = iter iter = self.ipsetConfIPSetStore.iter_next(iter) if use_iter is None: return self.load_ipsets() self.ipsetConfIPSetStore.set_value(use_iter, 0, ipset) def onChangeIPSet(self, *args): active_ipset = self.get_active_ipset() self.ipsetConfEntryStore.clear() self.ipsetConfEntryView.get_selection().set_mode( Gtk.SelectionMode.NONE) if not active_ipset: self.ipsetConfEditIPSetButton.set_sensitive(False) self.ipsetConfRemoveIPSetButton.set_sensitive(False) self.ipsetConfLoadDefaultsIPSetButton.set_sensitive(False) self.ipsetConfEntryBox.set_sensitive(False) return self.ipsetConfEditIPSetButton.set_sensitive(True) self.ipsetConfEntryBox.set_sensitive(True) entries = [ ] if self.runtime_view: # load runtime configuration self.deactivate_exception_handler() try: settings = self.fw.getIPSetSettings(active_ipset) except (DBusException, Exception) as msg: self.activate_exception_handler() if isinstance(msg, DBusException): msg = msg.get_dbus_message() else: msg = str(msg) code = FirewallError.get_code(msg) if code == errors.NOT_APPLIED: self.ipsetConfNotebook.set_sensitive(False) return raise else: self.ipsetConfNotebook.set_sensitive(True) self.activate_exception_handler() entries = settings.getEntries() options = settings.getOptions() default = False builtin = False else: try: ipset = self.fw.config().getIPSetByName(active_ipset) except: return # load permanent configuration settings = ipset.getSettings() entries = settings.getEntries() options = settings.getOptions() props = ipset.get_properties() default = props["default"] builtin = props["builtin"] if "timeout" in options: self.ipsetConfEntrySW.hide() self.ipsetConfEntryBox.hide() self.ipsetConfEntryLabel.hide() self.ipsetConfTimeoutLabel.show() else: self.ipsetConfEntrySW.show() self.ipsetConfEntryBox.show() self.ipsetConfEntryLabel.show() self.ipsetConfTimeoutLabel.hide() # set entries for item in entries: self.ipsetConfEntryStore.append([item]) self.ipsetConfEntryView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) self.ipsetConfRemoveIPSetButton.set_sensitive(not builtin and default) self.ipsetConfLoadDefaultsIPSetButton.set_sensitive(not default) self.ipsetConfRemoveEntryMenubutton.set_sensitive( len(self.ipsetConfEntryStore) > 0) def get_active_helper(self): selection = self.helperConfHelperView.get_selection() (model, iter) = selection.get_selected() if iter: return self.helperConfHelperStore.get_value(iter, 0) return None def load_helpers(self): if not self.show_helpers: return active_helper = self.get_active_helper() if self.runtime_view: helpers = self.fw.getHelpers() else: helpers = self.fw.config().getHelperNames() selection = self.helperConfHelperView.get_selection() selection.set_mode(Gtk.SelectionMode.NONE) # reset and fill notebook content according to view self.helperConfHelperStore.clear() # helpers for helper in helpers: self.helperConfHelperStore.append([helper]) selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.helperConfHelperStore.get_iter_first() while iter: if self.helperConfHelperStore.get_value(iter, 0) == \ active_helper: selection.select_iter(iter) return iter = self.helperConfHelperStore.iter_next(iter) selection.select_path(0) if not self.get_active_helper(): self.helperConfEditHelperButton.set_sensitive(False) self.helperConfRemoveHelperButton.set_sensitive(False) self.helperConfLoadDefaultsHelperButton.set_sensitive(False) self.helperConfHelperNotebook.set_sensitive(False) def onHelperConfAddHelper(self, *args): self.add_edit_helper(True) def onHelperConfRemoveHelper(self, *args): active_helper = self.get_active_helper() helper = self.fw.config().getHelperByName(active_helper) helper.remove() self.changes_applied() self.load_helpers() self.onChangeHelper() def onHelperConfEditHelper(self, *args): self.add_edit_helper(False) def onHelperConfLoadDefaultsHelper(self, *args): active_helper = self.get_active_helper() helper = self.fw.config().getHelperByName(active_helper) helper.loadDefaults() self.changes_applied() self.onChangeHelper() def onHelperBaseDialogModuleChooserClicked(self, *args): old_module = self.helperBaseDialogModuleChooser.get_text() module = self.module_select_dialog(old_module) if module is not None: self.helperBaseDialogModuleChooser.set_text(module) def onHelperBaseDialogChanged(self, *args): def check_helper_name(helper): return (len(helper) <= HELPER_MAXNAMELEN, helper) OK=True if args and (args[0] == self.helperBaseDialogNameEntry): additional_chars = "".join(Helper.ADDITIONAL_ALNUM_CHARS) allowed_chars = string.ascii_letters+string.digits+additional_chars OK = self.entry_changed(args[0], allowed_chars, check_helper_name) module = self.helperBaseDialogModuleChooser.get_text() if module is None or not module.startswith("nf_conntrack_") or \ len(module.replace("nf_conntrack_", "")) < 1: OK = False self.helperBaseDialogOkButton.set_sensitive(OK) def add_edit_helper(self, add): if add: default = True builtin = False old_name = None old_version = None old_short = None old_desc = None old_module = None old_family = None self.helperBaseDialogNameEntry.set_text("") self.helperBaseDialogVersionEntry.set_text("") self.helperBaseDialogShortEntry.set_text("") self.helperBaseDialogDescText.get_buffer().set_text("") self.helperBaseDialogModuleChooser.set_text("") self.helperBaseDialogFamilyCombobox.set_active(0) else: active_helper = self.get_active_helper() helper = self.fw.config().getHelperByName(active_helper) settings = helper.getSettings() props = helper.get_properties() default = props["default"] builtin = props["builtin"] old_name = helper.get_property("name") old_version = settings.getVersion() old_short = settings.getShort() old_desc = settings.getDescription() old_module = settings.getModule() old_family = settings.getFamily() self.helperBaseDialogNameEntry.set_text(old_name) self.helperBaseDialogVersionEntry.set_text(old_version) self.helperBaseDialogShortEntry.set_text(old_short) self.helperBaseDialogDescText.get_buffer().set_text(old_desc) self.helperBaseDialogModuleChooser.set_text(old_module) self.helperBaseDialogFamilyCombobox.set_active(0) combobox_select_text(self.helperBaseDialogFamilyCombobox, { "": _("All") , "ipv4": _("IPv4"), "ipv6" : _("IPv6") }[old_family]) self.helperBaseDialogOkButton.set_sensitive(False) if builtin: self.helperBaseDialogNameEntry.set_tooltip_markup(\ _("Built-in helper, rename not supported.")) else: self.helperBaseDialogNameEntry.set_tooltip_markup("") self.helperBaseDialogNameEntry.set_sensitive(not builtin and default) self.helperBaseDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.helperBaseDialog.set_transient_for(self.mainWindow) self.helperBaseDialog.show_all() self.add_visible_dialog(self.helperBaseDialog) result = self.helperBaseDialog.run() self.helperBaseDialog.hide() self.remove_visible_dialog(self.helperBaseDialog) if result != 1: return name = self.helperBaseDialogNameEntry.get_text() version = self.helperBaseDialogVersionEntry.get_text() short = self.helperBaseDialogShortEntry.get_text() buffer = self.helperBaseDialogDescText.get_buffer() desc = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), False) module = self.helperBaseDialogModuleChooser.get_text() family = { _("All") : "", _("IPv4") : "ipv4", _("IPv6") : "ipv6" } \ [self.helperBaseDialogFamilyCombobox.get_active_text()] if old_name == name and \ old_version == version and old_short == short and \ old_desc == desc and old_module == module and \ old_family == family: # no changes return if not add: active_helper = self.get_active_helper() helper = self.fw.config().getHelperByName(active_helper) settings = helper.getSettings() else: settings = client.FirewallClientHelperSettings() if old_version != version or old_short != short or \ old_desc != desc or old_family != family: # settings settings.setVersion(version) settings.setShort(short) settings.setDescription(desc) settings.setModule(module) settings.setFamily(family) if not add: helper.update(settings) if not add: if old_name == name: return helper.rename(name) else: self.fw.config().addHelper(name, settings) self.changes_applied() def onHelperChanged(self, *args): self.helperBaseDialogOkButton.set_sensitive(True) def onHelperConfAddPort(self, *args): self.add_edit_helper_port(True) def onHelperConfEditPort(self, *args): self.add_edit_helper_port(False) def onHelperConfPortClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS and \ not self.runtime_view: self.add_edit_helper_port(False) def onHelperConfRemovePort(self, *args): active_helper = self.get_active_helper() selection = self.helperConfPortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return port = self.helperConfPortStore.get_value(iter, 0) proto = self.helperConfPortStore.get_value(iter, 1) if self.runtime_view: if self.fw.queryPort(active_helper, port, proto): self.fw.removePort(active_helper, port, proto) self.changes_applied() else: helper = self.fw.config().getHelperByName(active_helper) helper.removePort(port, proto) self.changes_applied() def onHelperPortChanged(self, *args): settings = self.active_helper_settings port = self.helperEntryDialogEntryEntry.get_text() try: Helper.check_entry(entry, settings.getOptions(), settings.getType()) except Exception as e: self.helperEntryDialogOkButton.set_sensitive(False) else: self.helperEntryDialogOkButton.set_sensitive(True) def change_helper_conf_port_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.helperConfEditPortButton.set_sensitive(True) self.helperConfRemovePortButton.set_sensitive(True) else: self.helperConfEditPortButton.set_sensitive(False) self.helperConfRemovePortButton.set_sensitive(False) def add_edit_helper_port(self, add): active_helper = self.get_active_helper() self.portDialogPortEntry.set_text("") self.portDialogProtoCombobox.set_active(0) old_port = None old_proto = None if not add: selection = self.helperConfPortView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_port = self.helperConfPortStore.get_value(iter, 0) old_proto = self.helperConfPortStore.get_value(iter, 1) if old_port: self.portDialogPortEntry.set_text(old_port) if old_proto: combobox_select_text(self.portDialogProtoCombobox, old_proto) self.portDialogOkButton.set_sensitive(False) self.portDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.portDialog.set_transient_for(self.mainWindow) self.portDialog.show_all() self.add_visible_dialog(self.portDialog) result = self.portDialog.run() self.portDialog.hide() self.remove_visible_dialog(self.portDialog) if result != 1: return port = self.portDialogPortEntry.get_text() proto = self.portDialogProtoCombobox.get_active_text() if old_port == port and old_proto == proto: # nothing to change return helper = self.fw.config().getHelperByName(active_helper) if not helper.queryPort(port, proto): if not add: helper.removePort(old_port, old_proto) helper.addPort(port, proto) self.changes_applied() def helper_port_added_cb(self, helper, entry): if not self.runtime_view or helper != self.get_active_helper(): return iter = self.helperConfPortStore.get_iter_first() while iter: if self.helperConfPortStore.get_value(iter, 0) == entry: # already there return iter = self.helperConfPortStore.iter_next(iter) # nothing found, so add it self.helperConfPortStore.append([entry]) def helper_port_removed_cb(self, helper, entry): if not self.runtime_view or helper != self.get_active_helper(): return iter = self.helperConfPortStore.get_iter_first() while iter: if self.helperConfPortStore.get_value(iter, 0) == entry: self.helperConfPortStore.remove(iter) break iter = self.helperConfPortStore.iter_next(iter) def conf_helper_added_cb(self, helper): if self.runtime_view: return # check if helper is in store iter = self.helperConfHelperStore.get_iter_first() while iter: if self.helperConfHelperStore.get_value(iter, 0) == helper: return iter = self.helperConfHelperStore.iter_next(iter) # not in list, append self.helperConfHelperStore.append([helper]) selection = self.helperConfHelperView.get_selection() if selection.count_selected_rows() == 0: selection.select_path(0) def conf_helper_updated_cb(self, helper): if self.runtime_view or helper != self.get_active_helper(): return self.onChangeHelper() def conf_helper_removed_cb(self, helper): if self.runtime_view: return iter = self.helperConfHelperStore.get_iter_first() while iter: if self.helperConfHelperStore.get_value(iter, 0) == helper: self.helperConfHelperStore.remove(iter) break iter = self.helperConfHelperStore.iter_next(iter) def conf_helper_renamed_cb(self, helper): if self.runtime_view: return # Get all helpers, renamed the one that is missing. # If more or less than one is missing, update helper store. helpers = self.fw.config().getHelperNames() use_iter = None iter = self.helperConfHelperStore.get_iter_first() while iter: if self.helperConfHelperStore.get_value(iter, 0) not in helpers: if use_iter is not None: return self.load_helpers() use_iter = iter iter = self.helperConfHelperStore.iter_next(iter) if use_iter is None: return self.load_helpers() self.helperConfHelperStore.set_value(use_iter, 0, helper) def onChangeHelper(self, *args): active_helper = self.get_active_helper() self.helperConfPortStore.clear() self.helperConfPortView.get_selection().set_mode( Gtk.SelectionMode.NONE) if not active_helper: self.helperConfEditHelperButton.set_sensitive(False) self.helperConfRemoveHelperButton.set_sensitive(False) self.helperConfLoadDefaultsHelperButton.set_sensitive(False) self.helperConfHelperNotebook.set_sensitive(False) return self.helperConfEditHelperButton.set_sensitive(True) self.helperConfHelperNotebook.set_sensitive(True) ports = [ ] if self.runtime_view: # load runtime configuration settings = self.fw.getHelperSettings(active_helper) ports = settings.getPorts() default = False builtin = False else: try: helper = self.fw.config().getHelperByName(active_helper) except: return # load permanent configuration settings = helper.getSettings() ports = settings.getPorts() props = helper.get_properties() default = props["default"] builtin = props["builtin"] # set entries for item in ports: self.helperConfPortStore.append(item) self.helperConfPortView.get_selection().set_mode( Gtk.SelectionMode.SINGLE) self.helperConfRemoveHelperButton.set_sensitive(not builtin and default) self.helperConfLoadDefaultsHelperButton.set_sensitive(not default) def onModuleChanged(self, *args): if self.moduleDialogOtherModuleCheck.get_active(): self.moduleDialogModuleLabel.set_sensitive(False) self.moduleDialogModuleCombobox.set_sensitive(False) self.moduleDialogOtherModuleEntry.set_sensitive(True) module = self.moduleDialogOtherModuleEntry.get_text() else: self.moduleDialogModuleLabel.set_sensitive(True) self.moduleDialogModuleCombobox.set_sensitive(True) self.moduleDialogOtherModuleEntry.set_sensitive(False) module = self.moduleDialogModuleCombobox.get_active_text() if module is not None and module.startswith("nf_conntrack_") and \ len(module.replace("nf_conntrack_", "")) > 1: self.moduleDialogOkButton.set_sensitive(True) else: self.moduleDialogOkButton.set_sensitive(False) def module_select_dialog(self, old_module): self.moduleDialogModuleCombobox.set_active(0) self.moduleDialogOtherModuleCheck.set_active(False) self.moduleDialogOtherModuleEntry.set_text("") if old_module: if not combobox_select_text(self.moduleDialogModuleCombobox, old_module): self.moduleDialogOtherModuleCheck.set_active(True) self.moduleDialogOtherModuleEntry.set_text(old_module) self.moduleDialogOkButton.set_sensitive(False) self.moduleDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.moduleDialog.set_transient_for(self.mainWindow) self.moduleDialog.show_all() self.add_visible_dialog(self.moduleDialog) result = self.moduleDialog.run() self.moduleDialog.hide() self.remove_visible_dialog(self.moduleDialog) if result != 1: return None if self.moduleDialogOtherModuleCheck.get_active(): module = self.moduleDialogOtherModuleEntry.get_text() else: module = self.moduleDialogModuleCombobox.get_active_text() if old_module == module: # nothing to change return None return module def get_active_icmp(self): selection = self.icmpDialogIcmpView.get_selection() (model, iter) = selection.get_selected() if iter: return self.icmpDialogIcmpStore.get_value(iter, 0) return None def load_icmps(self): if not self.show_icmp_types: return active_icmp = self.get_active_icmp() if self.runtime_view: icmps = self.fw.listIcmpTypes() else: icmps = self.fw.config().getIcmpTypeNames() selection = self.icmpDialogIcmpView.get_selection() selection.set_mode(Gtk.SelectionMode.NONE) # reset and fill notebook content according to view self.icmpDialogIcmpStore.clear() # icmps for icmp in icmps: self.icmpDialogIcmpStore.append([icmp]) selection.set_mode(Gtk.SelectionMode.SINGLE) iter = self.icmpDialogIcmpStore.get_iter_first() while iter: if self.icmpDialogIcmpStore.get_value(iter, 0) == \ active_icmp: selection.select_iter(iter) return iter = self.icmpDialogIcmpStore.iter_next(iter) selection.select_path(0) if not self.get_active_icmp(): self.icmpDialogEditIcmpButton.set_sensitive(False) self.icmpDialogRemoveIcmpButton.set_sensitive(False) self.icmpDialogLoadDefaultsIcmpButton.set_sensitive(False) self.icmpDialogIcmpNotebook.set_sensitive(False) def onChangeIcmp(self, *args): active_icmp = self.get_active_icmp() ### load service settings self.icmpDialogDestIpv4Check.set_active(True) self.icmpDialogDestIpv6Check.set_active(True) if not active_icmp: self.icmpDialogEditIcmpButton.set_sensitive(False) self.icmpDialogRemoveIcmpButton.set_sensitive(False) self.icmpDialogLoadDefaultsIcmpButton.set_sensitive(False) self.icmpDialogIcmpNotebook.set_sensitive(False) return self.icmpDialogEditIcmpButton.set_sensitive(True) self.icmpDialogIcmpNotebook.set_sensitive(True) destination = [ ] if self.runtime_view: # load runtime configuration settings = self.fw.getIcmpTypeSettings(active_icmp) destination = settings.getDestinations() default = False builtin = False else: try: icmp = self.fw.config().getIcmpTypeByName(active_icmp) except: return # load permanent configuration settings = icmp.getSettings() destination = settings.getDestinations() props = icmp.get_properties() default = props["default"] builtin = props["builtin"] self.icmpDialogRemoveIcmpButton.set_sensitive(not builtin and default) self.icmpDialogLoadDefaultsIcmpButton.set_sensitive(not default) ipv4 = "ipv4" in destination ipv6 = "ipv6" in destination # set destination if ipv4 != ipv6: if not ipv4: self.icmpDialogDestIpv4Check.set_active(False) if not ipv6: self.icmpDialogDestIpv6Check.set_active(False) def onIcmpDialogAddIcmp(self, *args): self.add_edit_icmp(True) def onIcmpDialogRemoveIcmp(self, *args): active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) icmp.remove() self.load_icmps() self.onChangeIcmp() def onIcmpDialogEditIcmp(self, *args): self.add_edit_icmp(False) def onIcmpBaseDialogChanged(self, *args): if args and (args[0] == self.icmpBaseDialogNameEntry): additional_chars = "".join(IcmpType.ADDITIONAL_ALNUM_CHARS) allowed_chars = string.ascii_letters+string.digits+additional_chars self.entry_changed(args[0], allowed_chars) self.icmpBaseDialogOkButton.set_sensitive(True) def add_edit_icmp(self, add): if add: default = True builtin = False old_name = None old_version = None old_short = None old_desc = None old_target = None self.icmpBaseDialogNameEntry.set_text("") self.icmpBaseDialogVersionEntry.set_text("") self.icmpBaseDialogShortEntry.set_text("") self.icmpBaseDialogDescText.get_buffer().set_text("") else: active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) settings = icmp.getSettings() props = icmp.get_properties() default = props["default"] builtin = props["builtin"] old_name = icmp.get_property("name") old_version = settings.getVersion() old_short = settings.getShort() old_desc = settings.getDescription() self.icmpBaseDialogNameEntry.set_text(old_name) self.icmpBaseDialogVersionEntry.set_text(old_version) self.icmpBaseDialogShortEntry.set_text(old_short) self.icmpBaseDialogDescText.get_buffer().set_text(old_desc) self.icmpBaseDialogOkButton.set_sensitive(False) if builtin: self.icmpBaseDialogNameEntry.set_tooltip_markup(\ _("Built-in icmp, rename not supported.")) else: self.icmpBaseDialogNameEntry.set_tooltip_markup("") self.icmpBaseDialogNameEntry.set_sensitive(not builtin and default) self.icmpBaseDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.icmpBaseDialog.set_transient_for(self.mainWindow) self.icmpBaseDialog.show_all() self.add_visible_dialog(self.icmpBaseDialog) result = self.icmpBaseDialog.run() self.icmpBaseDialog.hide() self.remove_visible_dialog(self.icmpBaseDialog) if result != 1: return name = self.icmpBaseDialogNameEntry.get_text() version = self.icmpBaseDialogVersionEntry.get_text() short = self.icmpBaseDialogShortEntry.get_text() buffer = self.icmpBaseDialogDescText.get_buffer() desc = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), False) if old_name == name and \ old_version == version and old_short == short and \ old_desc == desc: # no changes return if not add: active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) settings = icmp.getSettings() else: settings = client.FirewallClientIcmpTypeSettings() if old_version != version or old_short != short or \ old_desc != desc: # settings settings.setVersion(version) settings.setShort(short) settings.setDescription(desc) if not add: icmp.update(settings) if not add: if old_name == name: return icmp.rename(name) else: self.fw.config().addIcmpType(name, settings) self.changes_applied() def onIcmpDialogLoadDefaultsIcmp(self, *args): active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) icmp.loadDefaults() self.changes_applied() self.onChangeIcmp() def icmp_dialog_dest_ipv4_check_cb(self, *args): active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) settings = icmp.getSettings() if self.icmpDialogDestIpv4Check.get_active(): if icmp.queryDestination("ipv4"): icmp.removeDestination("ipv4") self.changes_applied() elif not icmp.queryDestination("ipv4"): icmp.addDestination("ipv4") self.changes_applied() def icmp_dialog_dest_ipv6_check_cb(self, *args): active_icmp = self.get_active_icmp() icmp = self.fw.config().getIcmpTypeByName(active_icmp) if self.icmpDialogDestIpv6Check.get_active(): if icmp.queryDestination("ipv6"): icmp.removeDestination("ipv6") self.changes_applied() elif not icmp.queryDestination("ipv6"): icmp.addDestination("ipv6") self.changes_applied() def conf_icmp_added_cb(self, icmp): if self.runtime_view: return if not self.show_icmp_types: return # check if icmp is in store iter = self.icmpDialogIcmpStore.get_iter_first() while iter: if self.icmpDialogIcmpStore.get_value(iter, 0) == icmp: return iter = self.icmpDialogIcmpStore.iter_next(iter) # not in list, append self.icmpDialogIcmpStore.append([icmp]) selection = self.icmpDialogIcmpView.get_selection() if selection.count_selected_rows() == 0: selection.select_path(0) def conf_icmp_updated_cb(self, zone): if self.runtime_view: return if not self.show_icmp_types: return self.onChangeIcmp() def conf_icmp_removed_cb(self, icmp): if self.runtime_view: return if not self.show_icmp_types: return iter = self.icmpDialogIcmpStore.get_iter_first() while iter: if self.icmpDialogIcmpStore.get_value(iter, 0) == icmp: self.icmpDialogIcmpStore.remove(iter) break iter = self.icmpDialogIcmpStore.iter_next(iter) def conf_icmp_renamed_cb(self, icmp): if self.runtime_view: return # Get all icmps, renamed the one that is missing. # If more or less than one is missing, update icmp store. icmps = self.fw.config().getIcmpTypeNames() use_iter = None iter = self.icmpDialogIcmpStore.get_iter_first() while iter: if self.icmpDialogIcmpStore.get_value(iter, 0) not in icmps: if use_iter is not None: return self.load_icmps() use_iter = iter iter = self.icmpDialogIcmpStore.iter_next(iter) if use_iter is None: return self.load_icmps() self.icmpDialogIcmpStore.set_value(use_iter, 0, icmp) def lockdown_check_cb(self, *args): if self.fw.queryLockdown(): self.fw.config().set_property("Lockdown", "no") # permanent self.fw.disableLockdown() # runtime else: self.fw.config().set_property("Lockdown", "yes") # permanent self.fw.enableLockdown() # runtime self.changes_applied() def panic_check_cb(self, *args): if self.fw.queryPanicMode(): self.fw.disablePanicMode() else: self.fw.enablePanicMode() self.changes_applied() def load_direct(self): if not self.show_direct: return if self.runtime_view: chains = self.fw.getAllChains() rules = self.fw.getAllRules() passthroughs = self.fw.getAllPassthroughs() else: direct = self.fw.config().direct() settings = direct.getSettings() chains = settings.getAllChains() rules = settings.getAllRules() passthroughs = settings.getAllPassthroughs() self.directChainStore.clear() self.directRuleStore.clear() self.directPassthroughStore.clear() for x in chains: self.directChainStore.append(x) for (ipv, table, chain, priority, args) in rules: self.directRuleStore.append((ipv, table, chain, priority, functions.joinArgs(args))) for (ipv, args) in passthroughs: self.directPassthroughStore.append((ipv, functions.joinArgs(args))) def load_lockdown_whitelist(self): if not self.show_lockdown_whitelist: return if self.runtime_view: contexts = self.fw.getLockdownWhitelistContexts() commands = self.fw.getLockdownWhitelistCommands() users = self.fw.getLockdownWhitelistUsers() uids = self.fw.getLockdownWhitelistUids() else: whitelist = self.fw.config().policies().getLockdownWhitelist() contexts = whitelist.getContexts() commands = whitelist.getCommands() users = whitelist.getUsers() uids = whitelist.getUids() self.lockdownContextStore.clear() self.lockdownCommandStore.clear() self.lockdownUserStore.clear() self.lockdownUidStore.clear() for context in contexts: self.lockdownContextStore.append([context]) self.lockdownContextView.get_selection().select_path(0) for command in commands: self.lockdownCommandStore.append([command]) self.lockdownCommandView.get_selection().select_path(0) for user in users: self.lockdownUserStore.append([user]) self.lockdownUserView.get_selection().select_path(0) for uid in uids: self.lockdownUidStore.append([uid]) self.lockdownUidView.get_selection().select_path(0) def lockdown_enabled_cb(self): self.lockdownLabel.set_text(self.enabled) self.lockdownMenuitem.handler_block(self.lockdown_check_id) self.lockdownMenuitem.set_active(True) self.lockdownMenuitem.handler_unblock(self.lockdown_check_id) def lockdown_disabled_cb(self): self.lockdownLabel.set_text(self.disabled) self.lockdownMenuitem.handler_block(self.lockdown_check_id) self.lockdownMenuitem.set_active(False) self.lockdownMenuitem.handler_unblock(self.lockdown_check_id) def change_lockdown_context_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editLockdownContextButton.set_sensitive(True) self.removeLockdownContextButton.set_sensitive(True) else: self.editLockdownContextButton.set_sensitive(False) self.removeLockdownContextButton.set_sensitive(False) def change_lockdown_command_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editLockdownCommandButton.set_sensitive(True) self.removeLockdownCommandButton.set_sensitive(True) else: self.editLockdownCommandButton.set_sensitive(False) self.removeLockdownCommandButton.set_sensitive(False) def change_lockdown_user_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editLockdownUserButton.set_sensitive(True) self.removeLockdownUserButton.set_sensitive(True) else: self.editLockdownUserButton.set_sensitive(False) self.removeLockdownUserButton.set_sensitive(False) def change_lockdown_uid_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editLockdownUidButton.set_sensitive(True) self.removeLockdownUidButton.set_sensitive(True) else: self.editLockdownUidButton.set_sensitive(False) self.removeLockdownUidButton.set_sensitive(False) def onAddContext(self, button): self.add_edit_context(True) def onEditContext(self, button): self.add_edit_context(False) def onContextClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_context(False) def onRemoveContext(self, button): selection = self.lockdownContextView.get_selection() (model, iter) = selection.get_selected() if iter is None: return context = self.lockdownContextStore.get_value(iter, 0) if self.runtime_view: self.fw.removeLockdownWhitelistContext(context) else: whitelist = self.fw.config().policies().getLockdownWhitelist() whitelist.removeContext(context) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def lockdown_whitelist_context_added_cb(self, context): if not self.show_lockdown_whitelist: return iter = self.lockdownContextStore.get_iter_first() while iter: if self.lockdownContextStore.get_value(iter, 0) == context: return iter = self.lockdownContextStore.iter_next(iter) self.lockdownContextStore.append([context]) def lockdown_whitelist_context_removed_cb(self, context): if not self.show_lockdown_whitelist: return iter = self.lockdownContextStore.get_iter_first() while iter: if self.lockdownContextStore.get_value(iter, 0) == context: self.lockdownContextStore.remove(iter) break iter = self.lockdownContextStore.iter_next(iter) def add_edit_context(self, add): if add: old_context = "" else: selection = self.lockdownContextView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_context = self.lockdownContextStore.get_value(iter, 0) self.contextDialogContextEntry.set_text(old_context) self.contextDialogOkButton.set_sensitive(False) self.contextDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.contextDialog.set_transient_for(self.mainWindow) self.contextDialog.show_all() self.add_visible_dialog(self.contextDialog) result = self.contextDialog.run() self.contextDialog.hide() self.remove_visible_dialog(self.contextDialog) if result != 1: return context = self.contextDialogContextEntry.get_text() if old_context == context: # nothing to change return if self.runtime_view: if not self.fw.queryLockdownWhitelistContext(context): self.fw.addLockdownWhitelistContext(context) if not add: self.fw.removeLockdownWhitelistContext(old_context) self.changes_applied() else: whitelist = self.fw.config().policies().getLockdownWhitelist() if not whitelist.queryContext(context): if not add: whitelist.removeContext(old_context) whitelist.addContext(context) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def onContextChanged(self, *args): text = self.contextDialogContextEntry.get_text() if text != "" and functions.checkContext(text): self.contextDialogOkButton.set_sensitive(True) else: self.contextDialogOkButton.set_sensitive(False) def onAddCommand(self, button): self.add_edit_command(True) def onEditCommand(self, button): self.add_edit_command(False) def onCommandClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_command(False) def onRemoveCommand(self, button): selection = self.lockdownCommandView.get_selection() (model, iter) = selection.get_selected() if iter is None: return command = self.lockdownCommandStore.get_value(iter, 0) if self.runtime_view: self.fw.removeLockdownWhitelistCommand(command) else: whitelist = self.fw.config().policies().getLockdownWhitelist() whitelist.removeCommand(command) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def lockdown_whitelist_command_added_cb(self, command): if not self.show_lockdown_whitelist: return iter = self.lockdownCommandStore.get_iter_first() while iter: if self.lockdownCommandStore.get_value(iter, 0) == command: return iter = self.lockdownCommandStore.iter_next(iter) self.lockdownCommandStore.append([command]) def lockdown_whitelist_command_removed_cb(self, command): if not self.show_lockdown_whitelist: return iter = self.lockdownCommandStore.get_iter_first() while iter: if self.lockdownCommandStore.get_value(iter, 0) == command: self.lockdownCommandStore.remove(iter) break iter = self.lockdownCommandStore.iter_next(iter) def add_edit_command(self, add): if add: old_command = "" else: selection = self.lockdownCommandView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_command = self.lockdownCommandStore.get_value(iter, 0) self.commandDialogCommandEntry.set_text(old_command) self.commandDialogOkButton.set_sensitive(False) self.commandDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.commandDialog.set_transient_for(self.mainWindow) self.commandDialog.show_all() self.add_visible_dialog(self.commandDialog) result = self.commandDialog.run() self.commandDialog.hide() self.remove_visible_dialog(self.commandDialog) if result != 1: return command = self.commandDialogCommandEntry.get_text() if old_command == command: # nothing to change return if self.runtime_view: if not self.fw.queryLockdownWhitelistCommand(command): self.fw.addLockdownWhitelistCommand(command) if not add: self.fw.removeLockdownWhitelistCommand(old_command) self.changes_applied() else: whitelist = self.fw.config().policies().getLockdownWhitelist() if not whitelist.queryCommand(command): if not add: whitelist.removeCommand(old_command) whitelist.addCommand(command) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def onCommandChanged(self, *args): text = self.commandDialogCommandEntry.get_text() if functions.checkCommand(text): self.commandDialogOkButton.set_sensitive(True) else: self.commandDialogOkButton.set_sensitive(False) def onAddUser(self, button): self.add_edit_user(True) def onEditUser(self, button): self.add_edit_user(False) def onUserClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_user(False) def onRemoveUser(self, button): selection = self.lockdownUserView.get_selection() (model, iter) = selection.get_selected() if iter is None: return user = self.lockdownUserStore.get_value(iter, 0) if self.runtime_view: self.fw.removeLockdownWhitelistUser(user) else: whitelist = self.fw.config().policies().getLockdownWhitelist() whitelist.removeUser(user) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def lockdown_whitelist_user_added_cb(self, user): if not self.show_lockdown_whitelist: return iter = self.lockdownUserStore.get_iter_first() while iter: if self.lockdownUserStore.get_value(iter, 0) == user: return iter = self.lockdownUserStore.iter_next(iter) self.lockdownUserStore.append([user]) def lockdown_whitelist_user_removed_cb(self, user): if not self.show_lockdown_whitelist: return iter = self.lockdownUserStore.get_iter_first() while iter: if self.lockdownUserStore.get_value(iter, 0) == user: self.lockdownUserStore.remove(iter) break iter = self.lockdownUserStore.iter_next(iter) def add_edit_user(self, add): if add: old_user = "" else: selection = self.lockdownUserView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_user = self.lockdownUserStore.get_value(iter, 0) self.userDialogUserEntry.set_text(old_user) self.userDialogOkButton.set_sensitive(False) self.userDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.userDialog.set_transient_for(self.mainWindow) self.userDialog.show_all() self.add_visible_dialog(self.userDialog) result = self.userDialog.run() self.userDialog.hide() self.remove_visible_dialog(self.userDialog) if result != 1: return user = self.userDialogUserEntry.get_text() if old_user == user: # nothing to change return if self.runtime_view: if not self.fw.queryLockdownWhitelistUser(user): self.fw.addLockdownWhitelistUser(user) if not add: self.fw.removeLockdownWhitelistUser(old_user) self.changes_applied() else: whitelist = self.fw.config().policies().getLockdownWhitelist() if not whitelist.queryUser(user): if not add: whitelist.removeUser(old_user) whitelist.addUser(user) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def onUserChanged(self, *args): text = self.userDialogUserEntry.get_text() if text != "" and functions.checkUser(text): self.userDialogOkButton.set_sensitive(True) else: self.userDialogOkButton.set_sensitive(False) def onAddUid(self, button): self.add_edit_uid(True) def onEditUid(self, button): self.add_edit_uid(False) def onUidClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_uid(False) def onRemoveUid(self, button): selection = self.lockdownUidView.get_selection() (model, iter) = selection.get_selected() if iter is None: return uid = self.lockdownUidStore.get_value(iter, 0) if self.runtime_view: self.fw.removeLockdownWhitelistUid(uid) else: whitelist = self.fw.config().policies().getLockdownWhitelist() whitelist.removeUid(uid) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def lockdown_whitelist_uid_added_cb(self, uid): if not self.show_lockdown_whitelist: return iter = self.lockdownUidStore.get_iter_first() while iter: if self.lockdownUidStore.get_value(iter, 0) == uid: return iter = self.lockdownUidStore.iter_next(iter) self.lockdownUidStore.append([uid]) def lockdown_whitelist_uid_removed_cb(self, uid): if not self.show_lockdown_whitelist: return iter = self.lockdownUidStore.get_iter_first() while iter: if self.lockdownUidStore.get_value(iter, 0) == uid: self.lockdownUidStore.remove(iter) break iter = self.lockdownUidStore.iter_next(iter) def add_edit_uid(self, add): if add: old_uid = "" else: selection = self.lockdownUidView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_uid = self.lockdownUidStore.get_value(iter, 0) self.uidDialogUidEntry.set_text("%s" % old_uid) self.uidDialogOkButton.set_sensitive(False) self.uidDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.uidDialog.set_transient_for(self.mainWindow) self.uidDialog.show_all() self.add_visible_dialog(self.uidDialog) result = self.uidDialog.run() self.uidDialog.hide() self.remove_visible_dialog(self.uidDialog) if result != 1: return uid = int(self.uidDialogUidEntry.get_text()) if old_uid == uid: # nothing to change return if self.runtime_view: if not self.fw.queryLockdownWhitelistUid(uid): self.fw.addLockdownWhitelistUid(uid) if not add: self.fw.removeLockdownWhitelistUid(old_uid) self.changes_applied() else: whitelist = self.fw.config().policies().getLockdownWhitelist() if not whitelist.queryUid(uid): if not add: whitelist.removeUid(old_uid) whitelist.addUid(uid) self.fw.config().policies().setLockdownWhitelist(whitelist) self.changes_applied() def onUidChanged(self, *args): text = self.uidDialogUidEntry.get_text() if text != "" and functions.checkUid(text): self.uidDialogOkButton.set_sensitive(True) else: self.uidDialogOkButton.set_sensitive(False) def lockdown_whitelist_updated_cb(self): self.load_lockdown_whitelist() def change_chain_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editDirectChainButton.set_sensitive(True) self.removeDirectChainButton.set_sensitive(True) else: self.editDirectChainButton.set_sensitive(False) self.removeDirectChainButton.set_sensitive(False) def onAddChain(self, button): self.add_edit_direct_chain(True) def onEditChain(self, button): self.add_edit_direct_chain(False) def onChainClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_direct_chain(False) def onRemoveChain(self, button): selection = self.directChainView.get_selection() (model, iter) = selection.get_selected() if iter is None: return ipv = self.directChainStore.get_value(iter, 0) table = self.directChainStore.get_value(iter, 1) chain = self.directChainStore.get_value(iter, 2) if self.runtime_view: self.fw.removeChain(ipv, table, chain) self.changes_applied() else: direct = self.fw.config().direct() if direct.queryChain(ipv, table, chain): direct.removeChain(ipv, table, chain) self.changes_applied() def direct_updated_cb(self): if not self.show_direct: return if self.runtime_view: return self.load_direct() def direct_chain_added_cb(self, ipv, table, chain): if not self.show_direct: return if not self.runtime_view: return iter = self.directChainStore.get_iter_first() while iter: if self.directChainStore.get_value(iter, 0) == ipv and \ self.directChainStore.get_value(iter, 1) == table and \ self.directChainStore.get_value(iter, 2) == chain: return iter = self.directChainStore.iter_next(iter) self.directChainStore.append([ipv, table, chain]) def direct_chain_removed_cb(self, ipv, table, chain): if not self.show_direct: return if not self.runtime_view: return iter = self.directChainStore.get_iter_first() while iter: if self.directChainStore.get_value(iter, 0) == ipv and \ self.directChainStore.get_value(iter, 1) == table and \ self.directChainStore.get_value(iter, 2) == chain: self.directChainStore.remove(iter) break iter = self.directChainStore.iter_next(iter) def add_edit_direct_chain(self, add): if add: old_ipv = "" old_table = "" old_chain = "" else: selection = self.directChainView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_ipv = self.directChainStore.get_value(iter, 0) old_table = self.directChainStore.get_value(iter, 1) old_chain = self.directChainStore.get_value(iter, 2) self.directChainDialogIPVCombobox.set_active(0) combobox_select_text(self.directChainDialogIPVCombobox, old_ipv) combobox_select_text(self.directChainDialogTableCombobox, old_table) self.directChainDialogChainEntry.set_text("%s" % old_chain) self.directChainDialogOkButton.set_sensitive(False) self.directChainDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.directChainDialog.set_transient_for(self.mainWindow) self.directChainDialog.show_all() self.add_visible_dialog(self.directChainDialog) result = self.directChainDialog.run() self.directChainDialog.hide() self.remove_visible_dialog(self.directChainDialog) if result != 1: return ipv = self.directChainDialogIPVCombobox.get_active_text() table = self.directChainDialogTableCombobox.get_active_text() chain = self.directChainDialogChainEntry.get_text() if self.runtime_view: if not self.fw.queryChain(ipv, table, chain): self.fw.addChain(ipv, table, chain) if not add: self.fw.removeChain(old_ipv, old_table, old_chain) self.changes_applied() else: direct = self.fw.config().direct() if not direct.queryChain(ipv, table, chain): if not add: direct.removeChain(old_ipv, old_table, old_chain) direct.addChain(ipv, table, chain) self.changes_applied() def onDirectChainDialogChanged(self, *args): self.directChainDialogOkButton.set_sensitive(True) def onDirectChainDialogIPVChanged(self, *args): old_table = self.directChainDialogTableCombobox.get_active_text() ipv = self.directChainDialogIPVCombobox.get_active_text() self.directChainDialogTableCombobox.remove_all() self.directChainDialogTableCombobox.append_text("filter") if ipv in [ "ipv4", "ipv6" ]: self.directChainDialogTableCombobox.append_text("nat") self.directChainDialogTableCombobox.append_text("mangle") self.directChainDialogTableCombobox.append_text("raw") self.directChainDialogTableCombobox.append_text("security") else: self.directChainDialogTableCombobox.append_text("broute") combobox_select_text(self.directChainDialogTableCombobox, old_table) def change_rule_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editDirectRuleButton.set_sensitive(True) self.removeDirectRuleButton.set_sensitive(True) else: self.editDirectRuleButton.set_sensitive(False) self.removeDirectRuleButton.set_sensitive(False) def onAddRule(self, button): self.add_edit_direct_rule(True) def onEditRule(self, button): self.add_edit_direct_rule(False) def onRuleClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_direct_rule(False) def onRemoveRule(self, button): selection = self.directRuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return ipv = self.directRuleStore.get_value(iter, 0) table = self.directRuleStore.get_value(iter, 1) chain = self.directRuleStore.get_value(iter, 2) priority = self.directRuleStore.get_value(iter, 3) args = self.directRuleStore.get_value(iter, 4) split_args = functions.splitArgs(args) if self.runtime_view: self.fw.removeRule(ipv, table, chain, priority, split_args) self.changes_applied() else: direct = self.fw.config().direct() if direct.queryRule(ipv, table, chain, priority, split_args): direct.removeRule(ipv, table, chain, priority, split_args) self.changes_applied() def direct_rule_added_cb(self, ipv, table, chain, priority, args): if not self.show_direct: return if not self.runtime_view: return joined_args = functions.joinArgs(args) iter = self.directRuleStore.get_iter_first() while iter: if self.directRuleStore.get_value(iter, 0) == ipv and \ self.directRuleStore.get_value(iter, 1) == table and \ self.directRuleStore.get_value(iter, 2) == chain and \ self.directRuleStore.get_value(iter, 3) == priority and \ self.directRuleStore.get_value(iter, 4) == joined_args: return iter = self.directRuleStore.iter_next(iter) self.directRuleStore.append([ipv, table, chain, priority, joined_args]) def direct_rule_removed_cb(self, ipv, table, chain, priority, args): if not self.show_direct: return if not self.runtime_view: return joined_args = functions.joinArgs(args) iter = self.directRuleStore.get_iter_first() while iter: if self.directRuleStore.get_value(iter, 0) == ipv and \ self.directRuleStore.get_value(iter, 1) == table and \ self.directRuleStore.get_value(iter, 2) == chain and \ self.directRuleStore.get_value(iter, 3) == priority and \ self.directRuleStore.get_value(iter, 4) == joined_args: self.directRuleStore.remove(iter) break iter = self.directRuleStore.iter_next(iter) def add_edit_direct_rule(self, add): if add: old_ipv = "" old_table = "" old_chain = "" old_priority = 0 old_args = "" else: selection = self.directRuleView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_ipv = self.directRuleStore.get_value(iter, 0) old_table = self.directRuleStore.get_value(iter, 1) old_chain = self.directRuleStore.get_value(iter, 2) old_priority = self.directRuleStore.get_value(iter, 3) old_args = self.directRuleStore.get_value(iter, 4) self.directRuleDialogIPVCombobox.set_active(0) combobox_select_text(self.directRuleDialogIPVCombobox, old_ipv) combobox_select_text(self.directRuleDialogTableCombobox, old_table) self.directRuleDialogChainEntry.set_text("%s" % old_chain) self.directRuleDialogPrioritySpinbutton.set_value(old_priority) self.directRuleDialogArgsEntry.set_text("%s" % old_args) self.directRuleDialogOkButton.set_sensitive(False) self.directRuleDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.directRuleDialog.set_transient_for(self.mainWindow) self.directRuleDialog.show_all() self.add_visible_dialog(self.directRuleDialog) result = self.directRuleDialog.run() self.directRuleDialog.hide() self.remove_visible_dialog(self.directRuleDialog) if result != 1: return ipv = self.directRuleDialogIPVCombobox.get_active_text() table = self.directRuleDialogTableCombobox.get_active_text() chain = self.directRuleDialogChainEntry.get_text() priority = self.directRuleDialogPrioritySpinbutton.get_value_as_int() args = self.directRuleDialogArgsEntry.get_text() split_args = functions.splitArgs(args) split_old_args = functions.splitArgs(old_args) if self.runtime_view: if not self.fw.queryRule(ipv, table, chain, priority, split_args): self.fw.addRule(ipv, table, chain, priority, split_args) if not add: self.fw.removeRule(old_ipv, old_table, old_chain, old_priority, split_old_args) self.changes_applied() else: direct = self.fw.config().direct() if not direct.queryRule(ipv, table, chain, priority, split_args): if not add: direct.removeRule(old_ipv, old_table, old_chain, old_priority, split_old_args) direct.addRule(ipv, table, chain, priority, split_args) self.changes_applied() def onDirectRuleDialogChanged(self, *args): self.directRuleDialogOkButton.set_sensitive(True) def onDirectRuleDialogIPVChanged(self, *args): old_table = self.directRuleDialogTableCombobox.get_active_text() ipv = self.directRuleDialogIPVCombobox.get_active_text() self.directRuleDialogTableCombobox.remove_all() self.directRuleDialogTableCombobox.append_text("filter") if ipv in [ "ipv4", "ipv6" ]: self.directRuleDialogTableCombobox.append_text("nat") self.directRuleDialogTableCombobox.append_text("mangle") self.directRuleDialogTableCombobox.append_text("raw") self.directRuleDialogTableCombobox.append_text("security") else: self.directRuleDialogTableCombobox.append_text("broute") combobox_select_text(self.directRuleDialogTableCombobox, old_table) def change_passthrough_selection_cb(self, selection): (model, iter) = selection.get_selected() if iter: self.editDirectPassthroughButton.set_sensitive(True) self.removeDirectPassthroughButton.set_sensitive(True) else: self.editDirectPassthroughButton.set_sensitive(False) self.removeDirectPassthroughButton.set_sensitive(False) def onAddPassthrough(self, button): self.add_edit_direct_passthrough(True) def onEditPassthrough(self, button): self.add_edit_direct_passthrough(False) def onPassthroughClicked(self, widget, event): if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS: self.add_edit_direct_passthrough(False) def onRemovePassthrough(self, button): selection = self.directPassthroughView.get_selection() (model, iter) = selection.get_selected() if iter is None: return ipv = self.directPassthroughStore.get_value(iter, 0) args = self.directPassthroughStore.get_value(iter, 1) split_args = functions.splitArgs(args) if self.runtime_view: self.fw.removePassthrough(ipv, split_args) self.changes_applied() else: direct = self.fw.config().direct() if direct.queryPassthrough(ipv, split_args): direct.removePassthrough(ipv, split_args) self.changes_applied() def direct_passthrough_added_cb(self, ipv, args): if not self.show_direct: return if not self.runtime_view: return joined_args = functions.joinArgs(args) iter = self.directPassthroughStore.get_iter_first() while iter: if self.directPassthroughStore.get_value(iter, 0) == ipv and \ self.directPassthroughStore.get_value(iter, 1) == joined_args: return iter = self.directPassthroughStore.iter_next(iter) self.directPassthroughStore.append([ipv, joined_args]) def direct_passthrough_removed_cb(self, ipv, args): if not self.show_direct: return if not self.runtime_view: return joined_args = functions.joinArgs(args) iter = self.directPassthroughStore.get_iter_first() while iter: if self.directPassthroughStore.get_value(iter, 0) == ipv and \ self.directPassthroughStore.get_value(iter, 1) == joined_args: self.directPassthroughStore.remove(iter) break iter = self.directPassthroughStore.iter_next(iter) def add_edit_direct_passthrough(self, add): if add: old_ipv = "" old_args = "" else: selection = self.directPassthroughView.get_selection() (model, iter) = selection.get_selected() if iter is None: return old_ipv = self.directPassthroughStore.get_value(iter, 0) old_args = self.directPassthroughStore.get_value(iter, 1) self.directPassthroughDialogIPVCombobox.set_active(0) combobox_select_text(self.directPassthroughDialogIPVCombobox, old_ipv) self.directPassthroughDialogArgsEntry.set_text("%s" % old_args) self.directPassthroughDialogOkButton.set_sensitive(False) self.directPassthroughDialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT) self.directPassthroughDialog.set_transient_for(self.mainWindow) self.directPassthroughDialog.show_all() self.add_visible_dialog(self.directPassthroughDialog) result = self.directPassthroughDialog.run() self.directPassthroughDialog.hide() self.remove_visible_dialog(self.directPassthroughDialog) if result != 1: return ipv = self.directPassthroughDialogIPVCombobox.get_active_text() args = self.directPassthroughDialogArgsEntry.get_text() split_args = functions.splitArgs(args) split_old_args = functions.splitArgs(old_args) if self.runtime_view: if not self.fw.queryPassthrough(ipv, split_args): self.fw.addPassthrough(ipv, split_args) if not add: self.fw.removePassthrough(old_ipv, split_old_args) self.changes_applied() else: direct = self.fw.config().direct() if not direct.queryPassthrough(ipv, split_args): if not add: direct.removePassthrough(old_ipv, split_old_args) direct.addPassthrough(ipv, split_args) self.changes_applied() def onDirectPassthroughDialogChanged(self, *args): self.directPassthroughDialogOkButton.set_sensitive(True) def get_ipset_entries_from_file(self, filename): entries = [ ] try: f = open(filename) except Exception as ex: self._error(_("Failed to read file '%s': %s") % (filename, ex)) else: for line in f: if not line: break line = line.strip() if len(line) < 1 or line[0] in ['#', ';']: continue if line not in entries: entries.append(line) f.close() return entries def combobox_select_text(combobox, value, insensitive=False): model = combobox.get_model() iter = model.get_iter_first() while iter: if (not insensitive and model.get_value(iter, 0) == value) or \ (insensitive and \ model.get_value(iter, 0).lower() == value.lower()): combobox.set_active_iter(iter) return True iter = model.iter_next(iter) combobox.set_active(0) return False class ZoneInterfaceEditor(Gtk.Dialog): def __init__(self, fw, interface, zone): self.fw = fw self.interface = interface self.zone = None self.title = _("Select zone for interface '%s'") % self.interface Gtk.Dialog.__init__(self, self.title) self.create_ui(zone) def create_ui(self, zone): self.set_property("width-request", 100) self.resize_to_geometry(100, 50) self.set_resizable(True) self.add_button("gtk-close", 1) self.ok_button = self.add_button("gtk-ok", 2) self.ok_button.set_sensitive(False) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) vbox.set_border_width(12) vbox.set_homogeneous(False) label = Gtk.Label() label.set_text(self.title) label.set_line_wrap(True) label.set_justify(Gtk.Justification.LEFT) label.set_alignment(0, 0.5) vbox.pack_start(label, True, True, 0) self.combo = Gtk.ComboBoxText() self.fill_zone_combo() vbox.pack_start(self.combo, True, True, 0) box = self.get_content_area() box.set_border_width(6) box.set_homogeneous(False) box.pack_start(vbox, False, True, 0) self.combo.connect("changed", self.combo_changed) self.set_zone(zone) def combo_changed(self, combo): self.ok_button.set_sensitive(self.get_zone() != self.zone) def set_zone(self, zone): old_zone = self.zone self.zone = zone if self.get_zone() == old_zone: if zone == "": combobox_select_text(self.combo, _("Default Zone")) else: combobox_select_text(self.combo, self.zone) else: self.combo_changed(None) def get_zone(self): text = self.combo.get_active_text() if text == _("Default Zone"): text = "" return text def fill_zone_combo(self): self.combo.remove_all() for zone in self.fw.getZones(): self.combo.append_text(zone) def zones_changed(self): zone = self.get_zone() self.fill_zone_combo() self.set_zone(zone) def run(self): if Gtk.Dialog.run(self) != 2: return self.fw.changeZoneOfInterface(self.get_zone(), self.interface) class ZoneConnectionEditor(ZoneInterfaceEditor): def __init__(self, fw, connection, zone): self.fw = fw self.connection = connection self.zone = None self.title = _("Select zone for connection '%s'") % self.connection Gtk.Dialog.__init__(self, self.title) self.create_ui(zone) def fill_zone_combo(self): self.combo.remove_all() self.combo.append_text(_("Default Zone")) for zone in self.fw.getZones(): self.combo.append_text(zone) def run(self): if Gtk.Dialog.run(self) != 2: return nm_set_zone_of_connection(self.get_zone(), self.connection) class ZoneSourceEditor(ZoneInterfaceEditor): def __init__(self, fw, source, zone): self.fw = fw self.source = source self.zone = None self.title = _("Select zone for source %s") % self.source Gtk.Dialog.__init__(self, self.title) self.create_ui(zone) def run(self): if Gtk.Dialog.run(self) != 2: return self.fw.changeZoneOfSource(self.get_zone(), self.source) # MAIN if len(sys.argv) > 1: print("""Usage: %s [options] Options: -h, --help show this help message and exit """ % sys.argv[0]) sys.exit(1) app = FirewallConfig() sys.exit(0) firewalld-0.4.4.6/src/firewall-config.glade000066400000000000000000025723751320241217000205060ustar00rootroot00000000000000 False 5 dialog Glade image-missing False vertical 2 False end False True end 0 False 5 Address True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter an %s address. True 0 0 False False 0 False start True 0 0 False False 1 True False 6 vertical True True start 60 • True 40 60 none False True 0 False True 2 True True 1 addressDialogCancelButton addressDialogOkButton False 5 Automatic Helpers True center-on-parent True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 5 vertical 6 False start start Please select the automatic helpers value: True 0 0 False False 0 True False vertical True False start True 6 False True 0 False True 1 True True 1 automaticHelpersDialogCancelButton automaticHelpersDialogOkButton False 5 Command line True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter the command line. True 0 0 False False 0 True False 6 vertical True True 1024 • True 50 False True 0 False True 1 True True 1 commandDialogCancelButton commandDialogOkButton False 5 Context True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter the context. True 0 0 False False 0 True False 6 vertical True True 1024 • True 50 False True 0 False True 1 True True 1 contextDialogCancelButton contextDialogOkButton 200 350 False 5 Default Zone True center-on-parent 200 350 True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 5 vertical 6 False start start Please select default zone from the list below. True 0 0 False False 0 True True 6 in True True False False True True 1 True True 1 portDialogCancelButton1 defaultZoneDialogOkButton False 5 Direct Chain True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select ipv and table and enter the chain name. True 0 0 False False 0 True False 6 6 6 True False end ipv: 1 0 0 True True start start True 31 ◠20 31 1 2 True False start ipv4 ipv6 eb 1 0 True False end Chain: middle 1 0 2 True False start filter nat mangle raw security 1 1 True False end Table: 1 0 1 True True 1 True True 1 directChainDialogCancelButton directChainDialogOkButton False 5 Direct Passthrough Rule True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select ipv and enter the args. True 0 0 False False 0 True False 6 6 6 True False end ipv: 1 0 0 True False start ipv4 ipv6 eb 1 0 True True start start 1024 ◠50 1 1 True False end Args: 1 0 1 False True 1 True True 1 directPassthroughDialogCancelButton directPassthroughDialogOkButton 200 350 False 5 Port Forwarding 200 350 dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 270 True False start Please select the source and destination options according to your needs. True 0 0 False False 0 True False 6 6 6 True False end Port / Port Range: 1 0 9 True False end IP address: 1 0 8 True False end Port / Port Range: 1 0 2 True False end Protocol: 1 0 1 True False start Source True 0 0 0 0 2 True False start Destination True 0 0 0 4 2 270 True False start If you enable local forwarding, you have to specify a port. This port has to be different to the source port. True True 0 0 0 5 2 Local forwarding True True False False start True 0.5 True 0 6 2 Forward to another port True True False False start True 0.5 True 0 7 2 True False 0 3 2 True False start start True tcp udp sctp dccp 1 1 True True start True 11 ◠11 11 1 2 True True start True 60 • True 25 60 1 8 True True start True 11 ◠11 11 1 9 False True 1 True True 1 button15 forwardDialogOkButton False 5 Base Helper Settings dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please configure base helper settings: True 0 0 False False 0 False start Bold entries are mandatory, all others are optional. True 0 0 False False 1 True False 6 6 6 True False end Name: 1 0 0 True True • True 1 2 250 80 True True True True in True True True word 1 3 True False end Version: 1 0 1 True True • True 1 1 True False end Short: 1 0 2 True False end Description: 1 0 3 True False Family: 1 0 5 True False start True All IPv4 IPv6 1 5 True False end Module: 1 0 4 True True False True True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 1 4 True True • True 1 0 True True 2 True True 1 helperBaseDialogCancelButton helperBaseDialogOkButton 300 False 5 Helper True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select a helper: True 0 0 False False 0 True True 6 in True True False True True 1 True True 1 helperDialogCancelButton helperDialogOkButton False 5 Base ICMP Type Settings dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please configure base ICMP type settings: True 0 0 False False 0 False start Bold entries are mandatory, all others are optional. True 0 0 False False 1 True False 6 6 6 True False end Name: 1 0 0 True True • True 1 0 True True • True 1 2 250 80 True True True True in True True True word 1 3 True False end Version: 1 0 1 True True • True 1 1 True False end Short: 1 0 2 True False end Description: 1 0 3 True True 2 True True 1 icmpBaseDialogCancelButton icmpBaseDialogOkButton 300 False 5 ICMP Type True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select an ICMP type True 0 0 False False 0 True True 6 in True True True True 1 True True 1 icmptypeDialogCancelButton icmptypeDialogOkButton True False gtk-refresh True False gtk-add True False gtk-preferences True False gtk-preferences True False gtk-add True False False Add Entry True False True image13 False Add Entries From File True False True image17 False True False gtk-remove True False gtk-remove True False gtk-preferences True False gtk-remove True False False Remove Selected Entry True False True image20 False Remove All Entries True False True image18 False Remove Entries From File True False True image19 False True False gtk-preferences True False gtk-preferences 870 600 True False Firewall Configuration 870 600 True False vertical True False True False _File True True False gtk-quit True False True True True False _Options True True False Reload Firewalld True False Reloads firewall rules. Current permanent configuration will become new runtime configuration. i.e. all runtime only changes done until reload are lost with reload if they have not been also in permanent configuration. image1 False True False True False Change which zone a network connection belongs to. Change Zones of Connections... Change Default Zone True False Change default zone for connections or interfaces. image15 False Change Log Denied True False Change LogDenied value. image16 False Configure Automatic Helper Assigment True False Configure Automatic Helper Assignment setting. image21 False True False True False Panic mode means that all incoming and outgoing packets are dropped. Panic Mode True True False Lockdown locks firewall configuration so that only applications on lockdown whitelist are able to change it. Lockdown True True False True False Make runtime configuration permanent Runtime To Permanent True True False _View True True False True False IPSets True True False ICMP Types True True False Helpers True True False Direct Configuration True True False Lockdown Whitelist True True False Active Bindings True True False _Help True True False gtk-about True False True True False True 0 True False True True True True 200 True True False 6 6 True False True True vertical 6 True True True True out True True False False True 0 True False 6 start Change Zone True True False True True Change zone of binding image8 False True 0 False True 1 1 1 True True True Hide active runtime bindings of connections, interfaces and sources to zones none 0 True False 6 True False down none False True 0 True False Active Bindings False True 1 1 0 True True True Show active runtime bindings of connections, interfaces and sources to zones start True none True False vertical 6 True False False True 0 True False Active Bindings 90 False True 1 0 0 2 False False True False 6 vertical 6 True False 6 True False Configuration: 0 False True 0 True False Currently visible configuration. Runtime configuration is the actual active configuration. Permanent configuration will be active after service or system reload or restart. False True 1 False True 0 True True True True False 6 vertical 6 True False start A firewalld zone defines the level of trust for network connections, interfaces and source addresses bound to the zone. The zone combines services, ports, protocols, masquerading, port/packet forwarding, icmp filters and rich rules. The zone can be bound to interfaces and source addresses. True 0 0 False True 0 True True 6 175 True True False vertical False Zone 0 False True 0 True True in 150 True True False True True 1 True False True True False 1 True False Add Zone True gtk-add False True True False Edit Zone True gtk-edit False True True False Remove Zone True gtk-remove False True True False Load Zone Defaults True gtk-revert-to-saved False True False True 2 False False True True 6 True True False 6 vertical 6 True False start Here you can define which services are trusted in the zone. Trusted services are accessible from all hosts and networks that can reach the machine from connections, interfaces and sources bound to this zone. True True 0 0 False False 0 True False 6 True True out True True True True 0 True True 1 True False Services False True False 6 vertical 6 True False Add additional ports or port ranges, which need to be accessible for all hosts or networks that can connect to the machine. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Port True False True 0 gtk-edit True False True False True True Edit Port True False True 1 gtk-remove True False True False True True Remove Port True False True 2 False True 2 1 True False Ports 1 False True False 6 vertical 6 True False Add protocols, which need to be accessible for all hosts or networks. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Protocol True False True 0 gtk-edit True False True False True True Edit Protocol True False True 1 gtk-remove True False True False True True Remove Protocol True False True 2 False True 2 2 True False Protocols 2 False True False 6 vertical 6 True False Add additional source ports or port ranges, which need to be accessible for all hosts or networks that can connect to the machine. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Port True False True 0 gtk-edit True False True False True True Edit Port True False True 1 gtk-remove True False True False True True Remove Port True False True 2 False True 2 3 True False Source Ports 3 False True False 6 vertical 6 True False Masquerading allows you to set up a host or router that connects your local network to the internet. Your local network will not be visible and the hosts appear as a single address on the internet. Masquerading is IPv4 only. True 0 0 False False 0 True False start False True Masquerade zone True True False start 0 True False True 1 True False If you enable masquerading, IP forwarding will be enabled for your IPv4 networks. True 0 0 False True 2 4 True False Masquerading 4 False True False 6 vertical 6 True False Add entries to forward ports either from one port to another on the local system or from the local system to another system. Forwarding to another system is only useful if the interface is masqueraded. Port forwarding is IPv4 only. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Forward Port True False True 0 gtk-edit True False True False True True Edit Forward Port True False True 1 gtk-remove True False True False True True Remove Forward Port True False True 2 False True 2 5 True False Port Forwarding 5 False True False 6 vertical 6 True False The Internet Control Message Protocol (ICMP) is mainly used to send error messages between networked computers, but additionally for informational messages like ping requests and replies. True 0 0 False False 0 True True 250 True True True out True True False False True False 6 True False vertical 6 True False Mark the ICMP types in the list, which should be rejected. All other ICMP types are allowed to pass the firewall. The default is no limitation. True 0 0 False False 0 True False If Invert Filter is enabled, marked ICMP entries are accepted and the others are rejected. In a zone with the target DROP, they are dropped. True True 0 0 False False 1 True False start False True Invert Filter True True False start 0 True False True 2 True False True True 2 6 True False ICMP Filter 6 False True False 6 vertical 6 True False Here you can set rich language rules for the zone. True True 0 0 False False 0 True False 6 True True out True True True True 0 True True 1 True False 6 start gtk-add True True False True True Add Rich Rule True False True 0 gtk-edit True False True False True True Edit Rich Rule True False True 1 gtk-remove True False True False True True Remove Rich Rule True False True 2 False True 2 7 True False Rich Rules 7 False True False 6 vertical 6 True False Add entries to bind interfaces to the zone. If the interface will be used by a connection, the zone will be set to the zone specified in the connection. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Interface True False True 0 gtk-edit True False True False True True Edit Interface True False True 1 gtk-remove True False True False True True Remove Interface True False True 2 False True 2 8 True False Interfaces 8 False True False 6 vertical 6 True False Add entries to bind source addresses or areas to the zone. You can also bind to a MAC source address, but with limitations. Port forwarding and masquerading will not work for MAC source bindings. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Source True False True 0 gtk-edit True False True False True True Edit Source True False True 1 gtk-remove True False True False True True Remove Source True False True 2 False True 2 9 True False Sources 9 False True False True True 1 True False Zones False True False 6 vertical 6 True False start A firewalld service is a combination of ports, protocols, modules and destination addresses. True 0 0 False True 0 True True 6 175 True True False vertical False Service 0 False True 0 True True in 150 True True False True True 1 True False True True False 1 True False True Add Service Add Service True gtk-add False True True False True Edit Service Edit Service True gtk-edit False True True False True Remove Service Remove Service True gtk-remove False True True False True Load Service Defaults Load Service Defaults True gtk-revert-to-saved False True False True 2 False False True True 6 True True False 6 vertical 6 True False start Add additional ports or port ranges, which need to be accessible for all hosts or networks. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Entry True False True 0 gtk-edit True False True False True True Edit Entry True False True 1 gtk-remove True False True False True True Remove Entry True False True 2 False True 2 True False Ports False True False 6 vertical 6 True False Add protocols, which need to be accessible for all hosts or networks. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Entry True False True 0 gtk-edit True False True False True True Edit Entry True False True 1 gtk-remove True False True False True True Remove Entry True False True 2 False True 2 1 True False Protocols 1 False True False 6 vertical 6 True False start Add additional source ports or port ranges, which need to be accessible for all hosts or networks. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Entry True False True 0 gtk-edit True False True False True True Edit Entry True False True 1 gtk-remove True False True False True True Remove Entry True False True 2 False True 2 2 True False Source Port 2 False True False 6 vertical 6 True False Netfilter helper modules are needed for some services. True 0 0 False False 0 True True out True True False False True True 1 True False 6 start gtk-add True True False True True Add Entry True False True 0 gtk-edit True False True False True True Edit Entry True False True 1 gtk-remove True False True False True True Remove Entry True False True 2 False True 2 3 True False Modules 3 False True False 6 vertical 6 True False If you specify destination addresses, the service entry will be limited to the destination address and type. If both entries are empty, there is no limitation. True 0 0 False False 1 True False 6 6 True False IPv4: 0 0 True False IPv6: 0 1 True True False True True False 4 True False 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 1 0 True True False True True False 4 True False 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 1 1 False True 2 4 True False Destination 4 False True False True True 1 True False Services can only be changed in the permanent configuration view. The runtime configuration of services is fixed. True 0 False True 2 1 True False Services 1 False True False 6 vertical 6 True False start An IPSet can be used to create white or black lists and is able to store for example IP addresses, port numbers or MAC addresses. True 0 0 False True 0 True True 6 175 True True False vertical False IPSet 0 False True 0 True True in 150 True True False True True 1 True False True True False 1 True False True Add IPSet Add IPSet True gtk-add False True True False True Edit IPSet Edit IPSet True gtk-edit False True True False True Remove IPSet Remove IPSet True gtk-remove False True True False True Load IPSet Defaults Load IPSet Defaults True gtk-revert-to-saved False True False True 2 False False True True 6 True True False 6 vertical 6 True False start Entries of the IPSet. You will only be able to see entries of ipsets that are not using the timeout option, also only the entries, that have been added by firewalld. Entries, that have been directly added with the ipset command wil not be listed here. True 0 0 False False 0 True False vertical 6 True True out True True False True True 0 False 12 12 This IPSet uses the timeout option, therefore no entries are visible here. The entries should be taken care directly with the ipset command. True 0 0 False False 1 True True 1 True False 6 start True True True True ipsetConfAddEntryMenu False True False center 3 True False gtk-add False True 0 True False Add False True 1 True False down False True 2 True True 0 gtk-edit True False True False True True Edit Entry True False True 1 True True True True ipsetConfRemoveEntryMenu False True False center 3 True False gtk-remove False True 0 True False Remove False True 1 True False down False True 2 True True 2 False True 2 True False Entries False True False True True 1 True False IPSets can only be created or deleted in the permanent configuration view. True 0 False True 2 2 True False IPSets 2 False True False 6 vertical 6 True False start A firewalld icmptype provides the information for an Internet Control Message Protocol (ICMP) type for firewalld. True 0 0 False True 0 True True 6 175 True True False vertical False ICMP Type 0 False True 0 True True in 150 True True False True True 1 True False True True False 1 True False True Add ICMP Type Add ICMP Type True gtk-add False True True False True Edit ICMP Type Edit ICMP Type True gtk-edit False True True False True Remove ICMP Type Remove ICMP Type True gtk-remove False True True False True Load ICMP Type Defaults Load ICMP Type Defaults True gtk-revert-to-saved False True False True 2 False False True True 6 True True False 6 vertical 6 True False Specify whether this ICMP Type is available for IPv4 and/or IPv6. True 0 0 False False 0 True False False True IPv4 True True False 0 True False True 1 True False False True IPv6 True True False 0 True False False 2 True False Destination False True False True True 1 True False ICMP Types can only be changed in the permanent configuration view. The runtime configuration of ICMP Types is fixed. True 0 False True 2 3 True False ICMP Types 3 False True False 6 vertical 6 True False start A connection tracking helper is assisting to make protocols work that are using different flows for signaling and data transfers. The data transfers are using ports that are unrelated to the signaling connection and are therefore blocked by the firewall without the helper. True 0 0 False True 0 True True 6 175 True True False vertical False Helper 0 False True 0 True True in 150 True True False True True 1 True False True True False 1 True False True Add Service Add Service True gtk-add False True True False True Edit Service Edit Service True gtk-edit False True True False True Remove Service Remove Service True gtk-remove False True True False True Load Service Defaults Load Service Defaults True gtk-revert-to-saved False True False True 2 False False True True 6 True True False 6 vertical 6 True False start Define ports or port ranges, which are monitored by the helper. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Entry True False True 0 gtk-edit True False True False True True Edit Entry True False True 1 gtk-remove True False True False True True Remove Entry True False True 2 False True 2 True False Ports False True False True True 1 True False Services can only be changed in the permanent configuration view. The runtime configuration of services is fixed. True 0 False True 2 4 True False Helpers 4 False False 6 vertical 6 True False start The direct configuration gives a more direct access to the firewall. These options require user to know basic iptables concepts, i.e. tables, chains, commands, parameters and targets. Direct configuration should be used only as a last resort when it is not possible to use other firewalld features. True 0 0 False True 0 True False start The ipv argument of each option has to be ipv4 or ipv6 or eb. With ipv4 it will be for iptables, with ipv6 for ip6tables and with eb for ethernet bridges (ebtables). True 0 0 False True 1 True False 6 vertical True True True False 6 vertical 6 True False start Additional chains for use with rules. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Chain True False True 0 gtk-edit True False True False True True Edit Chain True False True 1 gtk-remove True False True False True True Remove Chain True False True 2 False True 2 True False Chains False True False 6 vertical 6 True False start Add a rule with the arguments args to a chain in a table with a priority. True 0 0 False False 1 True False start The priority is used to order rules. Priority 0 means add rule on top of the chain, with a higher priority the rule will be added further down. Rules with the same priority are on the same level and the order of these rules is not fixed and may change. If you want to make sure that a rule will be added after another one, use a low priority for the first and a higher for the following. True 0 0 False False 2 True False 6 True True out True True False True True 0 True True 3 True False 6 start gtk-add True True False True True Add Rule True False True 0 gtk-edit True False True False True True Edit Rule True False True 1 gtk-remove True False True False True True Remove Rule True False True 2 False True 4 1 True False Rules 1 False True False 6 vertical 6 True False start The passthrough rules are directly passed through to the firewall and are not placed in special chains. All iptables, ip6tables and ebtables options can be used. True 0 0 False False 0 True False start Please be careful with passthrough rules to not damage the firewall. True 0 0 False False 2 True False 6 True True out True True False True True 0 True True 3 True False 6 start gtk-add True True False True True Add Passthrough True False True 0 gtk-edit True False True False True True Edit Passthrough True False True 1 gtk-remove True False True False True True Remove Passthrough True False True 2 False True 4 2 True False Passthrough 2 False True True 0 True True 3 5 True False Direct Configuration 5 False False 6 vertical 6 True False The lockdown feature is a light version of user and application policies for firewalld. It limits changes to the firewall. The lockdown whitelist can contain commands, contexts, users and user ids. True 0 0 False True 0 True False 6 vertical True True True False 6 vertical 6 True False The context is the security (SELinux) context of a running application or service. To get the context of a running application use <tt>ps -e --context</tt>. True True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Context True False True 0 gtk-edit True False True False True True Edit Context True False True 1 gtk-remove True False True False True True Remove Context True False True 2 False True 2 True False Contexts False True False 6 vertical 6 True False If a command entry on the whitelist ends with an asterisk '*', then all command lines starting with the command will match. If the '*' is not there the absolute command inclusive arguments must match. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add Command Line True False True 0 gtk-edit True False True False True True Edit Command Line True False True 1 gtk-remove True False True False True True Remove Command Line True False True 2 False True 2 1 True False Command lines 1 False True False 6 vertical 6 True False User names. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add User Name True False True 0 gtk-edit True False True False True True Edit User Name True False True 1 gtk-remove True False True False True True Remove User Name True False True 2 False True 2 2 True False User names 2 False True False 6 vertical 6 True False User ids. True 0 0 False False 0 True False 6 True True out True True False True True 0 True True 1 True False 6 start gtk-add True True False True True Add User Id True False True 0 gtk-edit True False True False True True Edit User Id True False True 1 gtk-remove True False True False True True Remove User Id True False True 2 False True 2 3 True False User Ids 3 False True True 0 True True 2 6 True False Lockdown Whitelist 6 False True True 1 True False -1 True True 1 True False False True 2 True False 6 6 3 3 6 True False True 0 False True 0 True False True 0 False True 1 False True 3 True False 6 6 3 3 3 3 True False True Current default zone of the system. Current default zone of the system. label 0 1 0 True False 6 Log Denied: right 1 2 0 True False True Current default zone of the system. Current default zone of the system. label 0 3 0 True False 6 Panic Mode: right 1 4 0 True False True Current default zone of the system. Current default zone of the system. label 0 5 0 True False 6 Automatic Helpers: right 1 6 0 True False True Current default zone of the system. Current default zone of the system. label 0 7 0 True False 6 Lockdown: right 1 8 0 True False True Current default zone of the system. Current default zone of the system. label 0 9 0 True False Default Zone: right 1 0 0 False True 4 True False False True 6 False 5 Interface True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter an interface name: True 0 0 False False 0 True False 6 vertical True True 60 • True 50 none False True 0 False True 1 True True 1 interfaceDialogCancelButton interfaceDialogOkButton False 5 Base IPSet Settings dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please configure base ipset settings: True 0 0 False False 0 False start Bold entries are mandatory, all others are optional. True 0 0 False False 1 True False True True 6 6 6 True True True • True 1 1 True True True • True 1 2 250 80 True True True True in True True True True word 1 3 True False Name: 1 0 0 True True True • True 1 0 True False Version: 1 0 1 True False Short: 1 0 2 True False Description: 1 0 3 True False Type: 1 0 4 True False start True inet inet6 1 5 True False Timeout: middle 1 0 6 True False Hashsize: middle 1 0 7 True False Maxelem: middle 1 0 8 True True Timeout value in seconds number 1 6 True True Initial hash size, default 1024 number 1 7 True True Max number of elements, default 65536 number 1 8 True False Family: True 1 0 5 True False start 3 True False start True False True 0 True False False True 1 1 4 False True 2 True True 1 ipsetBaseDialogCancelButton ipsetBaseDialogOkButton 300 300 False 5 IPSet True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select an ipset: True 0 0 False False 0 True True 6 in True True True True 1 True True 1 ipsetDialogCancelButton ipsetDialogOkButton False 5 Entry True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter an ipset entry: True 0 0 False False 0 True False start 6 vertical 6 True True start 1024 • True 50 60 none True True 0 True False 3 True False Type: False True 0 True False label False True 1 False True 1 True True 1 True True 1 ipsetEntryDialogCancelButton ipsetEntryDialogOkButton False 5 Log Denied True center-on-parent True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 5 vertical 6 False start start Please select the log denied value: True 0 0 False False 0 True False vertical True False start True 6 False True 0 False True 1 True True 1 logDeniedDialogCancelButton logDeniedDialogOkButton False 5 Address True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter a MAC address. True 0 0 False False 0 True False 6 vertical True True start 17 • True 17 17 none False True 0 False True 1 True True 1 macDialogCancelButton macDialogOkButton False 5 Mark True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter a mark with an optional mask. True 0 0 False False 0 False start The mark and the mask fields are both 32 bits wide unsigned numbers. True 0 0 False False 1 True False 6 6 6 True False end Mark: 1 0 0 True True start 10 • True 10 10 1 0 True False end Mask: 1 0 1 True True start 10 • True 10 10 1 1 False True 2 True True 1 markDialogCancelButton markDialogOkButton False 5 Helper True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select a netfilter conntrack helper: True 0 0 False False 0 True False 6 6 6 True False end Module: 1 0 0 True False start True - Select - 1 0 True True start True 50 ◠25 50 1 1 Other Module: True True False end 0 right True 0 1 True True 1 True True 1 moduleDialogCancelButton moduleDialogOkButton False 5 Port and Protocol True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter a port and protocol. True 0 0 False False 0 True False 6 6 6 True False end Port / Port Range: 1 0 0 True True start 32 • True 11 32 1 0 True False start tcp udp sctp dccp 1 1 True False end Protocol: 1 0 1 False True 1 True True 1 portDialogCancelButton portDialogOkButton -99999999 99999999 1 10 False 5 Direct Rule True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select ipv and table, chain priority and enter the args. True 0 0 False False 0 True False 6 6 6 True False ipv: 1 0 0 True False start 1 1 True True start start 31 ◠31 31 1 2 True False start ipv4 ipv6 eb 1 0 True True start True 1024 ◠50 1 4 True True start 8 ◠8 1 number priority_adjustment 1 True 1 3 True False Table: 1 0 1 True False Chain: 1 0 2 True False Priority: 1 0 3 True False Args: 1 0 4 True True 1 True True 1 directRuleDialogCancelButton directRuleDialogOkButton False 5 Protocol True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 3 False start Please enter a protocol. True 0 0 False False 0 True False 6 6 6 True False end Protocol: 1 0 0 True False start True - Select - ah esp dccp ddp icmp igmp mux sctp tcp udp 1 0 True True start True 50 ◠25 50 1 1 Other Protocol: True True False end 0.5 right True 0 1 True True 1 False True 1 protoDialogCancelButton protoDialogOkButton False 5 Rich Rule dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter a rich rule. True 0 0 False False 0 False start For host or network white or blacklisting deactivate the element. True 0 0 False False 1 True False 6 6 6 True False end Source: 1 0 6 True False end Destination: 1 0 8 Log: True True False end 1 True 0 10 Audit: True True False end 1 True 0 12 True False start ipv4 and ipv6 ipv4 ipv6 1 0 True False True 3 True False IP MAC ipset False True 0 True True False True True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 True True 1 inverted True True False start 0.5 True False True 2 1 6 True False True 3 True True False True True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 True True 0 inverted True True False start 0.5 True False True 1 1 8 True False True vertical 3 True False 5 True False start start accept reject drop mark False True 0 True False vertical 3 True False To enable this Action has to be 'reject' and Family either 'ipv4' or 'ipv6' (not both). True 6 with Type: True True False 0.5 True True False True 0 True True start True True 1 False True 0 True False True 6 True True False True True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 True True 0 False True 1 False True 1 True True 0 True False 3 With limit: True True False end 0.5 True True False True 0 True False 3 True True 8 ◠8 False True 0 True False / False True 2 True False second minute hour day False True 3 False True 1 False True 1 1 4 True False True 6 3 True False end Prefix: 1 0 0 True False end Level: 1 0 1 True True True 29 • True 29 1 0 True False start emergency alert critical error warning notice info debug 1 1 True False 3 With limit: True True False end 0.5 True False True 0 True False 3 True True 8 ◠8 False True 0 True False / False True 2 True False second minute hour day False True 3 False True 1 0 2 2 1 10 True False True 3 With limit: True True False end 0.5 True False True 0 True False 3 True True 8 ◠8 False True 0 True False / False True 2 True False second minute hour day False True 3 False True 1 1 12 True False True 6 True False start service port protocol icmp-block icmp-type forward-port source-port masquerade False True 0 True True False True start True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-properties 1 False True 2 True True 1 1 2 True False end Family: 1 0 0 Element: True True False end 1 True 0 2 True False 0 1 2 True False 0 3 2 True False 0 5 2 True False 0 7 2 True False 0 9 2 True False 0 11 2 Action: True True False end 1 True 0 4 False True 2 True True 1 richRuleDialogCancelButton richRuleDialogOkButton False 5 Base Service Settings dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please configure base service settings: True 0 0 False False 0 False start Bold entries are mandatory, all others are optional. True 0 0 False False 1 True False True True 6 6 6 True False Name: 1 0 0 True True • True 1 0 True True • True 1 2 250 80 True True True True in True True True True word 1 3 True False Short: 1 0 2 True False Description: 1 0 3 True False Version: 1 0 1 True True • True 1 1 False True 2 True True 1 serviceBaseDialogCancelButton serviceBaseDialogOkButton 300 False 5 Service True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please select a service. True 0 0 False False 0 True True 6 in True True True True 1 True True 1 serviceDialogCancelButton serviceDialogOkButton False 5 Source True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter a source. True 0 0 False False 0 True False True 6 3 True False IP MAC ipset False True 0 True True False True True False 4 True False 0 0 True True 0 True False vertical False True 1 True False gtk-network 1 False True 2 True True 1 False True 1 True True 1 sourceDialogCancelButton sourceDialogOkButton False 5 User ID True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter the user id. True 0 0 False False 0 True False 6 vertical True True start 5 • True 5 5 False True 0 False True 1 True True 1 uidDialogCancelButton uidDialogOkButton False 5 User name True dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please enter the user name. True 0 0 False False 0 True False 6 vertical True True True 256 • True 20 False True 0 False True 1 True True 1 userDialogCancelButton userDialogOkButton False popup popup-menu True False 0 in True False 6 vertical 6 True False label False True 0 200 50 True False True True 1 True True True center gtk-quit True True True True True True False True 0 False True end 2 False 5 Base Zone Settings dialog False vertical 2 False end gtk-cancel True True True True True False True 0 gtk-ok True True True True True True False True 1 False True end 0 True False 6 vertical 6 False start Please configure base zone settings: True 0 0 False False 0 False start Bold entries are mandatory, all others are optional. True 0 0 False False 1 True False True True 6 6 6 True True True • True 1 1 True True True • True 1 2 250 80 True True True True in True True True True word 1 3 Default Target True True False start 0.5 True 1 4 True False start True ACCEPT DROP REJECT 1 5 True False Name: 1 0 0 True True start True 17 • True 17 17 1 0 True False Version: 1 0 1 True False Short: 1 0 2 True False Description: 1 0 3 True False Target: 1 0 4 True False middle 1 0 5 False True 2 True True 1 zoneBaseDialogCancelButton zoneBaseDialogOkButton firewalld-0.4.4.6/src/firewall-offline-cmd000077500000000000000000003100671320241217000203360ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2009-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from gi.repository import GObject import sys sys.modules['gobject'] = GObject import argparse import os from firewall.client import FirewallClientIPSetSettings, \ FirewallClientZoneSettings, FirewallClientServiceSettings, \ FirewallClientIcmpTypeSettings, FirewallClientHelperSettings from firewall.errors import FirewallError from firewall import config from firewall.core.fw_test import Firewall_test from firewall.functions import joinArgs, splitArgs from firewall.core.io.zone import zone_reader from firewall.core.io.service import service_reader from firewall.core.io.ipset import ipset_reader from firewall.core.io.icmptype import icmptype_reader from firewall.core.io.helper import helper_reader from firewall.command import FirewallCommand # check for root user def assert_root(): if os.getuid() != 0: sys.stderr.write("You need to be root to run %s.\n" % sys.argv[0]) sys.exit(-1) SYSTEM_CONFIG_FIREWALL = config.SYSCONFIGDIR + '/system-config-firewall' def __usage(): sys.stdout.write(""" Usage: firewall-offline-cmd [OPTIONS...] If no options are given, configuration from '%s' will be migrated. General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Lokkit Compatibility Options --migrate-system-config-firewall= Import configuration data from the given configuration file. --enabled Enable firewall (default) --disabled Disable firewall --addmodule= Ignored option, was used to enable an iptables module --removemodule= Ignored option, was used to disable an iptables module -s , --service= Enable a service in the default zone (example: ssh) --remove-service= Disable a service in the default zone (example: ssh) -p [-]:, --port=[-]: Enable a port in the default zone (example: ssh:tcp) -t , --trust= Bind an interface to the trusted zone -m , --masq= Enables masquerading in the default zone, interface argument is ignored. This is IPv4 only. --custom-rules=[:][
:] Ignored option. Was used to add custom rules to the firewall (Example: ipv4:filter:%s/ipv4_filter_addon) --forward-port=if=:port=:proto=[:toport=][:toaddr=] Forward the port with protocol for the interface to either another local destination port (no destination address given) or to an other destination address with an optional destination port. This will be added to the default zone. This is IPv4 only. --block-icmp= Block this ICMP type in the default zone. The default is to accept all ICMP types. Log Denied Options --get-log-denied Print the log denied value --set-log-denied= Set log denied value Automatic Helpers Options --get-automatic-helpers Print the automatic helpers value --set-automatic-helpers= Set automatic helpers value Zone Options --get-default-zone Print default zone for connections and interfaces --set-default-zone= Set default zone --get-zones Print predefined zones --get-services Print predefined services --get-icmptypes Print predefined icmptypes --get-zone-of-interface= Print name of the zone the interface is bound to --get-zone-of-source=[/]||ipset: Print name of the zone the source is bound to --list-all-zones List everything added for or enabled in all zones --new-zone= Add a new empty zone --new-zone-from-file= [--name=] Add a new zone from file with optional name override [P only] --delete-zone= Delete an existing zone --load-zone-defaults= Load zone default settings [Z] --zone= Use this zone to set or query options, else default zone Usable for options marked with [Z] --set-description= Set new description to zone --get-description Print description for zone --get-target Get the zone target --set-target= Set the zone target --info-zone= Print information about a zone --path-zone= Print file path of a zone IPSet Options --new-ipset= --type= [--option=[=]].. Add a new empty ipset --new-ipset-from-file= [--name=] Add a new ipset from file with optional name override [P only] --delete-ipset= Delete an existing ipset --load-ipset-defaults= Load ipset default settings --info-ipset= Print information about an ipset --path-ipset= Print file path of an ipset --get-ipsets Print predefined ipsets --ipset= --set-description= Set new description to ipset --ipset= --get-description Print description for ipset --ipset= --set-short= Set new short description to ipset --ipset= --get-short Print short description for ipset --ipset= --add-entry= Add a new entry to an ipset --ipset= --remove-entry= Remove an entry from an ipset --ipset= --query-entry= Return whether ipset has an entry --ipset= --get-entries List entries of an ipset --ipset= --add-entries-from-file= Add a new entries to an ipset [P] --ipset= --remove-entries-from-file= Remove entries from an ipset [P] IcmpType Options --new-icmptype= Add a new empty icmptype --new-icmptype-from-file= [--name=] Add a new icmptype from file with optional name override [P only] --delete-icmptype= Delete an existing icmptype --load-icmptype-defaults= Load icmptype default settings --info-icmptype= Print information about an icmptype --path-icmptype= Print file path of an icmptype --icmptype= --set-description= Set new description to icmptype --icmptype= --get-description Print description for icmptype --icmptype= --set-short= Set new short description to icmptype --icmptype= --get-short Print short description for icmptype --icmptype= --add-destination= Enable destination for ipv in icmptype --icmptype= --remove-destination= Disable destination for ipv in icmptype --icmptype= --query-destination= Return whether destination ipv is enabled in icmptype --icmptype= --get-destinations List destinations in icmptype Service Options --new-service= Add a new empty service --new-service-from-file= [--name=] Add a new service from file with optional name override [P only] --delete-service= Delete an existing service --load-service-defaults= Load icmptype default settings --info-service= Print information about a service --path-service= Print file path of a service --service= --set-description= Set new description to service --service= --get-description Print description for service --service= --set-short= Set new short description to service --service= --get-short Print short description for service --service= --add-port=[-]/ Add a new port to service --service= --remove-port=[-]/ Remove a port from service --service= --query-port=[-]/ Return whether the port has been added for service --service= --get-ports List ports of service --service= --add-protocol= Add a new protocol to service --service= --remove-protocol= Remove a protocol from service --service= --query-protocol= Return whether the protocol has been added for service --service= --get-protocols List protocols of service --service= --add-source-port=[-]/ Add a new source port to service --service= --remove-source-port=[-]/ Remove a source port from service --service= --query-source-port=[-]/ Return whether the source port has been added for service [P only] --service= --get-source-ports List source ports of service --service= --add-module= Add a new module to service --service= --remove-module= Remove a module from service --service= --query-module= Return whether the module has been added for service --service= --get-modules List modules of service --service= --set-destination=:
[/] Set destination for ipv to address in service --service= --remove-destination= Disable destination for ipv i service --service= --query-destination=:
[/] Return whether destination ipv is set for service --service= --get-destinations List destinations in service Options to Adapt and Query Zones --list-all List everything added for or enabled in a zone [Z] --list-services List services added for a zone [Z] --add-service= Add a service for a zone [Z] --remove-service-from-zone= Remove a service from a zone [Z] --query-service= Return whether service has been added for a zone [Z] --list-ports List ports added for a zone [Z] --add-port=[-]/ Add the port for a zone [Z] --remove-port=[-]/ Remove the port from a zone [Z] --query-port=[-]/ Return whether the port has been added for zone [Z] --list-protocols List protocols added for a zone [Z] --add-protocol= Add the protocol for a zone [Z] --remove-protocol= Remove the protocol from a zone [Z] --query-protocol= Return whether the protocol has been added for zone [Z] --list-source-ports List source ports added for a zone [Z] --add-source-port=[-]/ Add the source port for a zone [Z] --remove-source-port=[-]/ Remove the source port from a zone [Z] --query-source-port=[-]/ Return whether the source port has been added for zone [Z] --list-icmp-blocks List Internet ICMP type blocks added for a zone [Z] --add-icmp-block= Add an ICMP block for a zone [Z] --remove-icmp-block= Remove the ICMP block from a zone [Z] --query-icmp-block= Return whether an ICMP block has been added for a zone [Z] --add-icmp-block-inversion Enable inversion of icmp blocks for a zone [Z] --remove-icmp-block-inversion Disable inversion of icmp blocks for a zone [Z] --query-icmp-block-inversion Return whether inversion of icmp blocks has been enabled for a zone [Z] --list-forward-ports List IPv4 forward ports added for a zone [Z] --add-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Add the IPv4 forward port for a zone [Z] --remove-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Remove the IPv4 forward port from a zone [Z] --query-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=
[/]] Return whether the IPv4 forward port has been added for a zone [Z] --add-masquerade Enable IPv4 masquerade for a zone [Z] --remove-masquerade Disable IPv4 masquerade for a zone [Z] --query-masquerade Return whether IPv4 masquerading has been enabled for a zone [Z] --list-rich-rules List rich language rules added for a zone [Z] --add-rich-rule= Add rich language rule 'rule' for a zone [Z] --remove-rich-rule= Remove rich language rule 'rule' from a zone [Z] --query-rich-rule= Return whether a rich language rule 'rule' has been added for a zone [Z] Options to Handle Bindings of Interfaces --list-interfaces List interfaces that are bound to a zone [Z] --add-interface= Bind the to a zone [Z] --change-interface= Change zone the is bound to [Z] --query-interface= Query whether is bound to a zone [Z] --remove-interface= Remove binding of from a zone [Z] Options to Handle Bindings of Sources --list-sources List sources that are bound to a zone [Z] --add-source=[/]||ipset: Bind the source to a zone [Z] --change-source=[/]||ipset: Change zone the source is bound to [Z] --query-source=[/]||ipset: Query whether the source is bound to a zone [Z] --remove-source=[/]||ipset: Remove binding of the source from a zone [Z] Helper Options --new-helper= --module= [--family=] Add a new helper --new-helper-from-file= [--name=] Add a new helper from file with optional name --delete-helper= Delete an existing helper --load-helper-defaults= Load helper default settings --info-helper= Print information about an helper --path-helper= Print file path of an helper --get-helpers Print predefined helpers --helper= --set-description= Set new description to helper --helper= --get-description Print description for helper --helper= --set-short= Set new short description to helper --helper= --get-short Print short description for helper --helper= --add-port=[-]/ Add a new port to helper --helper= --remove-port=[-]/ Remove a port from helper --helper= --query-port=[-]/ Return whether the port has been added for helper --helper= --get-ports List ports of helper --helper= --set-module= Set module to helper --helper= --get-module Get module from helper --helper= --set-family={ipv4|ipv6|} Set family for helper --helper= --get-family Get module from helper Direct Options --direct First option for all direct options --get-all-chains Get all chains --get-chains {ipv4|ipv6|eb}
Get all chains added to the table --add-chain {ipv4|ipv6|eb}
Add a new chain to the table --remove-chain {ipv4|ipv6|eb}
Remove the chain from the table --query-chain {ipv4|ipv6|eb}
Return whether the chain has been added to the table --get-all-rules Get all rules --get-rules {ipv4|ipv6|eb}
Get all rules added to chain in table --add-rule {ipv4|ipv6|eb}
... Add rule to chain in table --remove-rule {ipv4|ipv6|eb}
... Remove rule with priority from chain in table --remove-rules {ipv4|ipv6|eb}
Remove rules from chain in table --query-rule {ipv4|ipv6|eb}
... Return whether a rule with priority has been added to chain in table --get-all-passthroughs Get all passthrough rules --get-passthroughs {ipv4|ipv6|eb} ... Get passthrough rules --add-passthrough {ipv4|ipv6|eb} ... Add a new passthrough rule --remove-passthrough {ipv4|ipv6|eb} ... Remove a passthrough rule --query-passthrough {ipv4|ipv6|eb} ... Return whether the passthrough rule has been added Lockdown Options --lockdown-on Enable lockdown. --lockdown-off Disable lockdown. --query-lockdown Query whether lockdown is enabled Lockdown Whitelist Options --list-lockdown-whitelist-commands List all command lines that are on the whitelist --add-lockdown-whitelist-command= Add the command to the whitelist --remove-lockdown-whitelist-command= Remove the command from the whitelist --query-lockdown-whitelist-command= Query whether the command is on the whitelist --list-lockdown-whitelist-contexts List all contexts that are on the whitelist --add-lockdown-whitelist-context= Add the context context to the whitelist --remove-lockdown-whitelist-context= Remove the context from the whitelist --query-lockdown-whitelist-context= Query whether the context is on the whitelist --list-lockdown-whitelist-uids List all user ids that are on the whitelist --add-lockdown-whitelist-uid= Add the user id uid to the whitelist --remove-lockdown-whitelist-uid= Remove the user id uid from the whitelist --query-lockdown-whitelist-uid= Query whether the user id uid is on the whitelist --list-lockdown-whitelist-users List all user names that are on the whitelist --add-lockdown-whitelist-user= Add the user name user to the whitelist --remove-lockdown-whitelist-user= Remove the user name user from the whitelist --query-lockdown-whitelist-user= Query whether the user name user is on the whitelist Polkit Options --policy-server Change Polkit actions to 'server' (more restricted) --policy-desktop Change Polkit actions to 'desktop' (less restricted) """ % (SYSTEM_CONFIG_FIREWALL, config.SYSCONFIGDIR)) def parse_port_lokkit(value): try: (port, proto) = value.split(":") except Exception: cmd.fail("bad port (most likely missing protocol), correct syntax is portid[-portid]:protocol") return (port, proto) def pk_symlink(product='server'): _PK_DIR = '/usr/share/polkit-1/actions/' _PK_NAME = 'org.fedoraproject.FirewallD1.' os.chdir(_PK_DIR) if os.path.isfile(_PK_NAME+product+'.policy.choice'): if os.path.isfile(_PK_NAME+'policy'): os.remove(_PK_NAME+'policy') os.symlink(_PK_NAME+product+'.policy.choice', _PK_NAME+'policy') cmd.print_and_exit('symlink '+_PK_DIR+_PK_NAME+product+'.policy.choice -> '+_PK_NAME+'policy') else: cmd.fail('no such file '+_PK_DIR+_PK_NAME+product+'.policy.choice') # system-config-firewall def read_sysconfig_args(config_file=SYSTEM_CONFIG_FIREWALL): filename = None if os.path.exists(config_file) and os.path.isfile(config_file): filename = config_file try: f = open(filename, 'r') except Exception: return None argv = [ ] for line in f: if not line: break line = line.strip() if len(line) < 1 or line[0] == '#': continue argv.append(line) f.close() return argv parser = argparse.ArgumentParser(usage="see firewall-offline-cmd man page", add_help=False) parser_group_output = parser.add_mutually_exclusive_group() parser_group_output.add_argument("-v", "--verbose", action="store_true") parser_group_output.add_argument("-q", "--quiet", action="store_true") parser_group_lokkit = parser.add_argument_group() parser_group_lokkit.add_argument("--enabled", action="store_true") parser_group_lokkit.add_argument("--disabled", action="store_true") parser_group_lokkit.add_argument("--addmodule", metavar="", action='append') parser_group_lokkit.add_argument("--removemodule", metavar="", action='append') parser_group_lokkit.add_argument("--service", "-s", metavar="", action='append') parser_group_lokkit.add_argument("--remove-service", metavar="", action='append') parser_group_lokkit.add_argument("--port", "-p", metavar="", action='append') parser_group_lokkit.add_argument("--trust", "-t", metavar="", action='append') parser_group_lokkit.add_argument("--masq", "-m", metavar="", action='append') parser_group_lokkit.add_argument("--custom-rules", metavar="", action='append') parser_group_lokkit.add_argument("--forward-port", metavar="", action='append') parser_group_lokkit.add_argument("--block-icmp", metavar="", action='append') parser_group_standalone = parser.add_mutually_exclusive_group() parser_group_standalone.add_argument("-h", "--help", action="store_true") parser_group_standalone.add_argument("-V", "--version", action="store_true") parser_group_standalone.add_argument("--get-log-denied", action="store_true") parser_group_standalone.add_argument("--set-log-denied", metavar="") parser_group_standalone.add_argument("--get-automatic-helpers", action="store_true") parser_group_standalone.add_argument("--set-automatic-helpers", metavar="") parser_group_standalone.add_argument("--policy-server", action="store_true") parser_group_standalone.add_argument("--policy-desktop", action="store_true") parser_group_standalone.add_argument("--lockdown-on", action="store_true") parser_group_standalone.add_argument("--lockdown-off", action="store_true") parser_group_standalone.add_argument("--query-lockdown", action="store_true") parser_group_standalone.add_argument("--get-default-zone", action="store_true") parser_group_standalone.add_argument("--set-default-zone", metavar="") parser_group_standalone.add_argument("--get-zones", action="store_true") parser_group_standalone.add_argument("--get-services", action="store_true") parser_group_standalone.add_argument("--get-icmptypes", action="store_true") parser_group_standalone.add_argument("--get-zone-of-interface", metavar="", action='append') parser_group_standalone.add_argument("--get-zone-of-source", metavar="", action='append') parser_group_standalone.add_argument("--list-all-zones", action="store_true") parser_group_standalone.add_argument("--info-zone", metavar="") parser_group_standalone.add_argument("--info-service", metavar="") parser_group_standalone.add_argument("--info-icmptype", metavar="") parser_group_standalone.add_argument("--info-ipset", metavar="") parser_group_standalone.add_argument("--info-helper", metavar="") parser_group_config = parser.add_mutually_exclusive_group() parser_group_config.add_argument("--new-icmptype", metavar="") parser_group_config.add_argument("--new-icmptype-from-file", metavar="") parser_group_config.add_argument("--delete-icmptype", metavar="") parser_group_config.add_argument("--load-icmptype-defaults", metavar="") parser_group_config.add_argument("--new-service", metavar="") parser_group_config.add_argument("--new-service-from-file", metavar="") parser_group_config.add_argument("--delete-service", metavar="") parser_group_config.add_argument("--load-service-defaults", metavar="") parser_group_config.add_argument("--new-zone", metavar="") parser_group_config.add_argument("--new-zone-from-file", metavar="") parser_group_config.add_argument("--delete-zone", metavar="") parser_group_config.add_argument("--load-zone-defaults", metavar="") parser_group_config.add_argument("--new-ipset", metavar="") parser_group_config.add_argument("--new-ipset-from-file", metavar="") parser_group_config.add_argument("--delete-ipset", metavar="") parser_group_config.add_argument("--load-ipset-defaults", metavar="") parser_group_config.add_argument("--new-helper", metavar="") parser_group_config.add_argument("--new-helper-from-file", metavar="") parser_group_config.add_argument("--delete-helper", metavar="") parser_group_config.add_argument("--load-helper-defaults", metavar="") parser_group_config.add_argument("--path-zone", metavar="") parser_group_config.add_argument("--path-service", metavar="") parser_group_config.add_argument("--path-icmptype", metavar="") parser_group_config.add_argument("--path-ipset", metavar="") parser_group_config.add_argument("--path-helper", metavar="") parser.add_argument("--name", default="", metavar="") parser_group_lockdown_whitelist = parser.add_mutually_exclusive_group() parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-commands", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-command", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-contexts", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-context", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-uids", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-uid", metavar="", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-users", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-user", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-user", metavar="", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-user", metavar="", action='append') parser.add_argument("--zone", default="", metavar="") parser_group_zone = parser.add_mutually_exclusive_group() parser_group_zone.add_argument("--add-interface", metavar="", action='append') parser_group_zone.add_argument("--remove-interface", metavar="", action='append') parser_group_zone.add_argument("--query-interface", metavar="", action='append') parser_group_zone.add_argument("--change-interface", "--change-zone", metavar="", action='append') parser_group_zone.add_argument("--list-interfaces", action="store_true") parser_group_zone.add_argument("--add-source", metavar="", action='append') parser_group_zone.add_argument("--remove-source", metavar="", action='append') parser_group_zone.add_argument("--query-source", metavar="", action='append') parser_group_zone.add_argument("--change-source", metavar="", action='append') parser_group_zone.add_argument("--list-sources", action="store_true") parser_group_zone.add_argument("--add-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--remove-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--query-rich-rule", metavar="", action='append') parser_group_zone.add_argument("--add-service", metavar="", action='append') parser_group_zone.add_argument("--remove-service-from-zone", metavar="", action='append') parser_group_zone.add_argument("--query-service", metavar="", action='append') parser_group_zone.add_argument("--add-port", metavar="", action='append') parser_group_zone.add_argument("--remove-port", metavar="", action='append') parser_group_zone.add_argument("--query-port", metavar="", action='append') parser_group_zone.add_argument("--add-protocol", metavar="", action='append') parser_group_zone.add_argument("--remove-protocol", metavar="", action='append') parser_group_zone.add_argument("--query-protocol", metavar="", action='append') parser_group_zone.add_argument("--add-source-port", metavar="", action='append') parser_group_zone.add_argument("--remove-source-port", metavar="", action='append') parser_group_zone.add_argument("--query-source-port", metavar="", action='append') parser_group_zone.add_argument("--add-masquerade", action="store_true") parser_group_zone.add_argument("--remove-masquerade", action="store_true") parser_group_zone.add_argument("--query-masquerade", action="store_true") parser_group_zone.add_argument("--add-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--remove-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--query-icmp-block", metavar="", action='append') parser_group_zone.add_argument("--add-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--remove-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--query-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--add-forward-port", metavar="", action='append') parser_group_zone.add_argument("--remove-forward-port", metavar="", action='append') parser_group_zone.add_argument("--query-forward-port", metavar="", action='append') parser_group_zone.add_argument("--list-rich-rules", action="store_true") parser_group_zone.add_argument("--list-services", action="store_true") parser_group_zone.add_argument("--list-ports", action="store_true") parser_group_zone.add_argument("--list-protocols", action="store_true") parser_group_zone.add_argument("--list-icmp-blocks", action="store_true") parser_group_zone.add_argument("--list-forward-ports", action="store_true") parser_group_zone.add_argument("--list-source-ports", action="store_true") parser_group_zone.add_argument("--list-all", action="store_true") parser_group_zone.add_argument("--get-target", action="store_true") parser_group_zone.add_argument("--set-target", metavar="") parser.add_argument("--option", metavar="[=]", action='append') parser.add_argument("--type", metavar="") parser.add_argument("--ipset", metavar="") parser_ipset = parser.add_mutually_exclusive_group() #parser_ipset.add_argument("--add-option", metavar="[=]") #parser_ipset.add_argument("--remove-option", metavar="[=]") #parser_ipset.add_argument("--query-option", metavar="[=]") #parser_ipset.add_argument("--get-options", action="store_true") parser_ipset.add_argument("--get-ipsets", action="store_true") parser_ipset.add_argument("--add-entry", metavar="", action='append') parser_ipset.add_argument("--remove-entry", metavar="", action='append') parser_ipset.add_argument("--query-entry", metavar="", action='append') parser_ipset.add_argument("--get-entries", action="store_true") parser_ipset.add_argument("--add-entries-from-file", metavar="", action='append') parser_ipset.add_argument("--remove-entries-from-file", metavar="", action='append') parser.add_argument("--icmptype", metavar="") parser_icmptype = parser.add_mutually_exclusive_group() parser_icmptype.add_argument("--add-destination", metavar="", action='append') parser_icmptype.add_argument("--remove-destination", metavar="", action='append') parser_icmptype.add_argument("--query-destination", metavar="", action='append') parser_icmptype.add_argument("--get-destinations", action="store_true") parser_service = parser.add_mutually_exclusive_group() parser_service.add_argument("--get-ports", action="store_true") parser_service.add_argument("--get-source-ports", action="store_true") parser_service.add_argument("--get-protocols", action="store_true") parser_service.add_argument("--add-module", metavar="", action='append') parser_service.add_argument("--remove-module", metavar="", action='append') parser_service.add_argument("--query-module", metavar="", action='append') parser_service.add_argument("--get-modules", action="store_true") parser_service.add_argument("--set-destination", metavar="", action='append') parser_service.add_argument("--get-destination", action="store_true") parser_service.add_argument("--set-description", metavar="") parser_service.add_argument("--get-description", action="store_true") parser_service.add_argument("--set-short", metavar="") parser_service.add_argument("--get-short", action="store_true") parser.add_argument("--helper", metavar="") parser.add_argument("--family", metavar="") parser.add_argument("--module", metavar="") parser_helper = parser.add_mutually_exclusive_group() #parser_helper.add_argument("--get-ports", action="store_true") parser_helper.add_argument("--get-helpers", action="store_true") parser_helper.add_argument("--set-module", metavar="") parser_helper.add_argument("--get-module", action="store_true") #parser_helper.add_argument("--query-module", metavar="") parser_helper.add_argument("--set-family", metavar="|''", nargs="*") parser_helper.add_argument("--get-family", action="store_true") parser.add_argument("--direct", action="store_true") # not possible to have sequences of options here parser_direct = parser.add_mutually_exclusive_group() parser_direct.add_argument("--add-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--remove-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--query-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) parser_direct.add_argument("--get-passthroughs", nargs=1, metavar=("{ ipv4 | ipv6 | eb }")) parser_direct.add_argument("--get-all-passthroughs", action="store_true") parser_direct.add_argument("--add-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--remove-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--query-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--get-all-chains", action="store_true") parser_direct.add_argument("--get-chains", nargs=2, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--add-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--remove-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--remove-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--query-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) parser_direct.add_argument("--get-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) parser_direct.add_argument("--get-all-rules", action="store_true") ############################################################################## cmd = FirewallCommand() def myexcepthook(exctype, value, traceback): cmd.exception_handler(str(value)) sys.excepthook = myexcepthook if len(sys.argv) > 1 and \ any('--migrate-system-config-firewall' in arg for arg in sys.argv): args = sys.argv[1:] migration_parser = argparse.ArgumentParser( usage="see firewall-offline-cmd man page", add_help=False) migration_parser.add_argument("-h", "--help", action="store_true") migration_parser.add_argument("-v", "--verbose", action="store_true") migration_parser.add_argument("-q", "--quiet", action="store_true") migration_parser.add_argument("--migrate-system-config-firewall", metavar="", action='store') a,unknown = migration_parser.parse_known_args(args) cmd.set_quiet(a.quiet) cmd.set_verbose(a.verbose) if a.help: __usage() sys.exit(0) else: assert_root() if a.quiet: # it makes no sense to use --quiet with these options a.quiet = False cmd.set_quiet(a.quiet) cmd.fail("-q/--quiet can't be used with this option(s)") if a.migrate_system_config_firewall: args = read_sysconfig_args(a.migrate_system_config_firewall) if not args: cmd.fail("Opening of '%s' failed, exiting." % \ a.migrate_system_config_firewall) args += unknown elif len(sys.argv) > 1: i = -1 args = sys.argv[1:] if '--add-passthrough' in args: i = args.index('--add-passthrough') + 1 elif '--remove-passthrough' in args: i = args.index('--remove-passthrough') + 1 elif '--query-passthrough' in args: i = args.index('--query-passthrough') + 1 elif '--add-rule' in args: i = args.index('--add-rule') + 4 elif '--remove-rule' in args: i = args.index('--remove-rule') + 4 elif '--query-rule' in args: i = args.index('--query-rule') + 4 # join into one argument to prevent parser from parsing each iptables # option, because they can conflict with firewall-cmd options # # e.g. --delete (iptables) and --delete-* (firewall-cmd) if (i > -1) and (i < len(args) - 1): aux_args = args[:] args = aux_args[:i+1] # all but not args.append(joinArgs(aux_args[i+1:])) # add as one arg else: assert_root() # migrate configuration from SYSTEM_CONFIG_FIREWALL args = read_sysconfig_args() if not args: cmd.fail("Opening of '%s' failed, exiting." % SYSTEM_CONFIG_FIREWALL) a = parser.parse_args(args) options_lokkit = a.enabled or a.disabled or a.addmodule or a.removemodule or \ a.trust or a.masq or a.custom_rules or \ a.service or a.remove_service or a.port or \ a.trust or a.masq or a.forward_port or a.block_icmp options_standalone = a.help or a.version or \ a.policy_server or a.policy_desktop or \ a.lockdown_on or a.lockdown_off or a.query_lockdown or \ a.get_default_zone or a.set_default_zone or \ a.get_log_denied or a.set_log_denied or \ a.get_automatic_helpers or a.set_automatic_helpers options_desc_xml_file = a.set_description or a.get_description or \ a.set_short or a.get_short options_lockdown_whitelist = \ a.list_lockdown_whitelist_commands or a.add_lockdown_whitelist_command or \ a.remove_lockdown_whitelist_command or \ a.query_lockdown_whitelist_command or \ a.list_lockdown_whitelist_contexts or a.add_lockdown_whitelist_context or \ a.remove_lockdown_whitelist_context or \ a.query_lockdown_whitelist_context or \ a.list_lockdown_whitelist_uids or a.add_lockdown_whitelist_uid is not None or \ a.remove_lockdown_whitelist_uid is not None or \ a.query_lockdown_whitelist_uid is not None or \ a.list_lockdown_whitelist_users or a.add_lockdown_whitelist_user or \ a.remove_lockdown_whitelist_user or \ a.query_lockdown_whitelist_user options_config = a.get_zones or a.get_services or a.get_icmptypes or \ options_lockdown_whitelist or a.list_all_zones or \ a.get_zone_of_interface or a.get_zone_of_source or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.info_helper or \ a.get_helpers options_zone_action_action = \ a.add_service or a.remove_service_from_zone or a.query_service or \ a.add_port or a.remove_port or a.query_port or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.add_source_port or a.remove_source_port or a.query_source_port or \ a.add_icmp_block or a.remove_icmp_block or a.query_icmp_block or \ a.add_forward_port or a.remove_forward_port or a.query_forward_port options_zone_interfaces_sources = \ a.list_interfaces or a.change_interface or \ a.add_interface or a.remove_interface or a.query_interface or \ a.list_sources or a.change_source or \ a.add_source or a.remove_source or a.query_source options_zone_adapt_query = \ a.add_rich_rule or a.remove_rich_rule or a.query_rich_rule or \ a.add_masquerade or a.remove_masquerade or a.query_masquerade or \ a.list_services or a.list_ports or a.list_protocols or \ a.list_source_ports or \ a.list_icmp_blocks or a.list_forward_ports or a.list_rich_rules or \ a.add_icmp_block_inversion or a.remove_icmp_block_inversion or \ a.query_icmp_block_inversion or \ a.list_all or a.get_target or a.set_target options_zone_ops = options_zone_interfaces_sources or \ options_zone_action_action or options_zone_adapt_query options_zone = a.zone or options_zone_ops or options_desc_xml_file options_ipset = a.add_entry or a.remove_entry or a.query_entry or \ a.get_entries or a.add_entries_from_file or \ a.remove_entries_from_file or options_desc_xml_file options_icmptype = a.add_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_service = a.add_port or a.remove_port or a.query_port or \ a.get_ports or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.get_protocols or \ a.add_source_port or a.remove_source_port or \ a.query_source_port or a.get_source_ports or \ a.add_module or a.remove_module or a.query_module or \ a.get_modules or \ a.set_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_helper = a.add_port or a.remove_port or a.query_port or \ a.get_ports or a.set_module or a.get_module or \ a.set_family or a.get_family or \ options_desc_xml_file options_permanent = options_config or options_zone or \ a.new_icmptype or a.delete_icmptype or \ a.new_icmptype_from_file or \ a.load_icmptype_defaults or \ a.new_service or a.delete_service or \ a.new_service_from_file or \ a.load_service_defaults or \ a.new_zone or a.delete_zone or \ a.new_zone_from_file or \ a.load_zone_defaults or \ a.new_helper or a.delete_helper or \ a.new_helper_from_file or \ a.load_helper_defaults or \ a.new_ipset or a.delete_ipset or \ a.new_ipset_from_file or \ a.load_ipset_defaults or \ a.ipset or options_ipset or \ (a.icmptype and options_icmptype) or \ (a.service and options_service) or \ (a.helper and options_helper) or \ a.path_zone or a.path_icmptype or a.path_service or \ a.path_ipset or a.path_helper options_direct = \ a.add_chain or a.remove_chain or a.query_chain or \ a.get_chains or a.get_all_chains or \ a.add_rule or a.remove_rule or a.remove_rules or a.query_rule or \ a.get_rules or a.get_all_rules or \ a.add_passthrough or a.remove_passthrough or a.query_passthrough or \ a.get_passthroughs or a.get_all_passthroughs # these are supposed to only write out some output options_list_get = a.help or a.version or a.list_all or a.list_all_zones or \ a.list_lockdown_whitelist_commands or a.list_lockdown_whitelist_contexts or \ a.list_lockdown_whitelist_uids or a.list_lockdown_whitelist_users or \ a.list_services or a.list_ports or a.list_protocols or a.list_icmp_blocks or \ a.list_forward_ports or a.list_rich_rules or a.list_interfaces or \ a.list_sources or a.get_default_zone or \ a.get_zone_of_interface or a.get_zone_of_source or a.get_zones or \ a.get_services or a.get_icmptypes or a.get_target or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.get_entries or \ a.info_helper or a.get_helpers or \ a.get_destinations or a.get_description # Set quiet and verbose cmd.set_quiet(a.quiet) cmd.set_verbose(a.verbose) # Check various impossible combinations of options if not (options_standalone or options_ipset or \ options_lokkit or \ options_icmptype or options_service or options_helper or \ options_permanent or options_direct or options_desc_xml_file): cmd.fail(parser.format_usage() + "No option specified.") if options_lokkit and (options_standalone or \ options_permanent or options_direct) and \ not (options_service and a.service): cmd.fail(parser.format_usage() + "Can't use lokkit options with other options.") if options_standalone and (options_permanent or \ options_direct or options_ipset): cmd.fail(parser.format_usage() + "Can't use stand-alone options with other options.") if options_ipset and not options_desc_xml_file and not a.ipset: cmd.fail(parser.format_usage() + "No ipset specified.") if (options_icmptype and not a.icmptype) and \ not (options_service and a.service) and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No icmptype specified.") if options_service and a.service and len(a.service) > 0: if len(a.service) > 1: cmd.fail(parser.format_usage() + "More than one service specified.") # use the first entry in the array only a.service = a.service[0] if (options_helper and not a.helper) and \ not (options_service and a.service) and \ not options_zone and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No helper specified.") if options_direct and options_zone: cmd.fail(parser.format_usage() + "Can't use 'direct' options with other options.") if (a.direct and not options_direct) or (options_direct and not a.direct): cmd.fail(parser.format_usage() + "Wrong usage of 'direct' options.") if a.name and not (a.new_zone_from_file or a.new_service_from_file or \ a.new_ipset_from_file or a.new_icmptype_from_file or \ a.new_helper_from_file): cmd.fail(parser.format_usage() + "Wrong usage of '--name' option.") if options_config and options_zone: cmd.fail(parser.format_usage() + "Wrong usage of --get-zones | --get-services | --get-icmptypes.") if a.quiet and options_list_get: # it makes no sense to use --quiet with these options a.quiet = False cmd.set_quiet(a.quiet) cmd.fail("-q/--quiet can't be used with this option(s)") if a.help: __usage() sys.exit(0) assert_root() zone = a.zone fw = Firewall_test() fw.start() try: # Lokkit Compatibility Options if options_lokkit and not (options_service and a.service): trusted_zone = "trusted" default_zone = fw.get_default_zone() fw_zone = fw.config.get_zone(default_zone) fw_settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(fw_zone))) if a.enabled: # Enable firewall (default) os.system("systemctl enable firewalld.service") if a.disabled: # Disable firewall os.system("systemctl disable firewalld.service") if a.addmodule: for m in a.addmodule: cmd.print_msg("Ignoring addmodule '%s'" % m) if a.removemodule: for m in a.removemodule: cmd.print_msg("Ignoring removemodule '%s'" % m) if a.custom_rules: for c in a.custom_rules: cmd.print_msg("Ignoring custom-rule '%s'" % c) if a.service: for s in a.service: cmd.print_msg("Adding service '%s' to default zone." % s) if not fw_settings.queryService(s): fw_settings.addService(s) else: cmd.print_msg("ALREADY_ENABLED: %s" % s) if a.remove_service: for s in a.remove_service: cmd.print_msg("Removing service '%s' from default zone." % s) if fw_settings.queryService(s): fw_settings.removeService(s) else: cmd.print_msg("NOT_ENABLED: %s" % s) if a.port: for port_proto in a.port: (port, proto) = parse_port_lokkit(port_proto) cmd.print_msg("Adding port '%s/%s' to default zone." % (port, proto)) if not fw_settings.queryPort(port, proto): fw_settings.addPort(port, proto) else: cmd.print_msg("ALREADY_ENABLED: %s" % port_proto) if a.trust: if default_zone != trusted_zone: fw_trusted = fw.config.get_zone("trusted") fw_trusted_settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(fw_trusted))) # Bind an interface to the trusted zone for i in a.trust: cmd.print_msg("Interface '%s' will be bound to zone '%s'." % \ (i, trusted_zone)) if not fw_trusted_settings.queryInterface(i): fw_trusted_settings.addInterface(i) else: cmd.print_msg("ALREADY_ENABLED: %s" % i) fw.config.set_zone_config(fw_trusted, fw_trusted_settings.settings) else: for i in a.trust: cmd.print_msg("Interface '%s' will be bound to zone '%s'." % \ (i, trusted_zone)) if not fw_settings.queryInterface(i): fw_settings.addInterface(i) else: cmd.print_msg("ALREADY_ENABLED: %s" % i) if a.masq: # Enables masquerading in the default zone, interface argument is ignored cmd.print_msg("Enabling masquerade for the default zone.") fw_settings.setMasquerade(True) if a.forward_port: for fp in a.forward_port: (port, protocol, toport, toaddr) = cmd.parse_forward_port( fp, compat=True) cmd.print_msg("Adding forward port %s:%s:%s:%s to default zone." % \ (port, protocol, toport, toaddr)) if not fw_settings.queryForwardPort(port, protocol, toport, toaddr): fw_settings.addForwardPort(port, protocol, toport, toaddr) else: cmd.print_msg("ALREADY_ENABLED: %s" % fp) if a.block_icmp: for ib in a.block_icmp: cmd.print_msg("Adding icmpblock '%s' to default zone." % ib) if not fw_settings.queryIcmpBlock(ib): fw_settings.addIcmpBlock(ib) else: cmd.print_msg("ALREADY_ENABLED: %s" % ib) fw.config.set_zone_config(fw_zone, fw_settings.settings) elif a.version: cmd.print_and_exit(config.VERSION) elif a.get_log_denied: cmd.print_and_exit(fw.get_log_denied()) elif a.set_log_denied: fw.set_log_denied(a.set_log_denied) elif a.get_automatic_helpers: cmd.print_and_exit(fw.get_automatic_helpers()) elif a.set_automatic_helpers: fw.set_automatic_helpers(a.set_automatic_helpers) elif a.policy_server: pk_symlink('server') elif a.policy_desktop: pk_symlink('desktop') # options from firewall-cmd elif a.get_default_zone: cmd.print_and_exit(fw.get_default_zone()) elif a.set_default_zone: fw.set_default_zone(a.set_default_zone) # lockdown elif a.lockdown_on: fw.enable_lockdown() elif a.lockdown_off: fw.disable_lockdown() elif a.query_lockdown: cmd.print_query_result(fw.policies.query_lockdown()) # zones elif a.get_zones: zones = fw.config.get_zones() cmd.print_and_exit(" ".join(zones)) elif a.new_zone: fw.config.new_zone(a.new_zone, FirewallClientZoneSettings().settings) elif a.new_zone_from_file: filename = os.path.basename(a.new_zone_from_file) dirname = os.path.dirname(a.new_zone_from_file) if dirname == "": dirname = "./" try: obj = zone_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load zone file '%s': %s" % \ (a.new_zone_from_file, msg)) except IOError as msg: cmd.fail("Failed to load zone file: %s" % msg) if a.name: obj.name = a.name fw.config.new_zone(obj.name, obj.export_config()) elif a.delete_zone: obj = fw.config.get_zone(a.delete_zone) fw.config.remove_zone(obj) elif a.load_zone_defaults: obj = fw.config.get_zone(a.load_zone_defaults) fw.config.load_zone_defaults(obj) elif a.info_zone: zone = fw.config.get_zone(a.info_zone) settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(zone))) cmd.print_zone_info(a.info_zone, settings, True) sys.exit(0) elif a.path_zone: obj = fw.config.get_zone(a.path_zone) cmd.print_and_exit("%s/%s" % (obj.path, obj.filename)) # services elif a.get_services: services = fw.config.get_services() cmd.print_and_exit(" ".join(services)) elif a.new_service: fw.config.new_service(a.new_service, FirewallClientServiceSettings().settings) elif a.new_service_from_file: filename = os.path.basename(a.new_service_from_file) dirname = os.path.dirname(a.new_service_from_file) if dirname == "": dirname = "./" try: obj = service_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load service file '%s': %s" % \ (a.new_service_from_file, msg)) except IOError as msg: cmd.fail("Failed to load service file: %s" % msg) if a.name: obj.name = a.name fw.config.new_service(obj.name, obj.export_config()) elif a.delete_service: obj = fw.config.get_service(a.delete_service) fw.config.remove_service(obj) # remove service from all zones zones = fw.config.get_zones() for zone in zones: _zone = fw.config.get_zone(zone) _settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(_zone))) if _settings.queryService(a.delete_service): _settings.removeService(a.delete_service) fw.config.set_zone_config(_zone, _settings.settings) elif a.load_service_defaults: obj = fw.config.get_service(a.load_service_defaults) fw.config.load_service_defaults(obj) elif a.info_service: service = fw.config.get_service(a.info_service) settings = FirewallClientServiceSettings( list(fw.config.get_service_config(service))) cmd.print_service_info(a.info_service, settings) sys.exit(0) elif a.path_service: obj = fw.config.get_service(a.path_service) cmd.print_and_exit("%s/%s" % (obj.path, obj.filename)) # icmptypes elif a.get_icmptypes: icmptypes = fw.config.get_icmptypes() cmd.print_and_exit(" ".join(icmptypes)) elif a.new_icmptype: fw.config.new_icmptype(a.new_icmptype, FirewallClientIcmpTypeSettings().settings) elif a.new_icmptype_from_file: filename = os.path.basename(a.new_icmptype_from_file) dirname = os.path.dirname(a.new_icmptype_from_file) if dirname == "": dirname = "./" try: obj = icmptype_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load icmptype file '%s': %s" % \ (a.new_icmptype_from_file, msg)) except IOError as msg: cmd.fail("Failed to load icmptype file: %s" % msg) if a.name: obj.name = a.name fw.config.new_icmptype(obj.name, obj.export_config()) elif a.delete_icmptype: obj = fw.config.get_icmptype(a.delete_icmptype) fw.config.remove_icmptype(obj) # remove icmpyte from all zones zones = fw.config.get_zones() for zone in zones: _zone = fw.config.get_zone(zone) _settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(_zone))) if _settings.queryIcmpBlock(a.delete_icmptype): _settings.removeIcmpBlock(a.delete_icmptype) fw.config.set_zone_config(_zone, _settings.settings) elif a.load_icmptype_defaults: obj = fw.config.get_icmptype(a.load_icmptype_defaults) fw.config.load_icmptype_defaults(obj) elif a.info_icmptype: icmptype = fw.config.get_icmptype(a.info_icmptype) settings = FirewallClientIcmpTypeSettings( list(fw.config.get_icmptype_config(icmptype))) cmd.print_icmptype_info(a.info_icmptype, settings) sys.exit(0) elif a.path_icmptype: obj = fw.config.get_icmptype(a.path_icmptype) cmd.print_and_exit("%s/%s" % (obj.path, obj.filename)) elif a.icmptype and options_icmptype: icmptype = fw.config.get_icmptype(a.icmptype) settings = FirewallClientIcmpTypeSettings( list(fw.config.get_icmptype_config(icmptype))) if a.add_destination: cmd.add_sequence(a.add_destination, settings.addDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") fw.config.set_icmptype_config(icmptype, settings.settings) elif a.remove_destination: cmd.remove_sequence(a.remove_destination, settings.removeDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") fw.config.set_icmptype_config(icmptype, settings.settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.check_destination_ipv , "'%s'") elif a.get_destinations: l = settings.getDestinations() if len(l) == 0: l = [ "ipv4", "ipv6" ] cmd.print_and_exit("\n".join(l)) elif a.set_description: settings.setDescription(a.set_description) fw.config.set_icmptype_config(icmptype, settings.settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) fw.config.set_icmptype_config(icmptype, settings.settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") cmd.print_and_exit("success") elif a.service and options_service: service = fw.config.get_service(a.service) settings = FirewallClientServiceSettings( list(fw.config.get_service_config(service))) if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") fw.config.set_service_config(service, settings.settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") fw.config.set_service_config(service, settings.settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = settings.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_protocol: cmd.add_sequence(a.add_protocol, settings.addProtocol, settings.queryProtocol, None, "'%s'") fw.config.set_service_config(service, settings.settings) elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, settings.removeProtocol, settings.queryProtocol, None, "'%s'") fw.config.set_service_config(service, settings.settings) elif a.query_protocol: cmd.query_sequence(a.query_protocol, settings.queryProtocol, None, "'%s'") elif a.get_protocols: l = settings.getProtocols() cmd.print_and_exit(" ".join(["%s" % protocol for protocol in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, settings.addSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") fw.config.set_service_config(service, settings.settings) elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, settings.removeSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") fw.config.set_service_config(service, settings.settings) elif a.query_source_port: cmd.query_sequence(a.query_source_port, settings.querySourcePort, cmd.parse_port, "%s/%s") elif a.get_source_ports: l = settings.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_module: cmd.add_sequence(a.add_module, settings.addModule, settings.queryModule, None, "'%s'") fw.config.set_service_config(service, settings.settings) elif a.remove_module: cmd.remove_sequence(a.remove_module, settings.removeModule, settings.queryModule, None, "'%s'") fw.config.set_service_config(service, settings.settings) elif a.query_module: cmd.query_sequence(a.query_module, settings.queryModule, None, "'%s'") elif a.get_modules: l = settings.getModules() cmd.print_and_exit(" ".join(["%s" % module for module in l])) elif a.set_destination: cmd.add_sequence(a.set_destination, settings.setDestination, settings.queryDestination, cmd.parse_service_destination, "%s:%s") fw.config.set_service_config(service, settings.settings) elif a.remove_destination: # special case for removeDestination: Only ipv, no address for ipv in a.remove_destination: cmd.check_destination_ipv(ipv) if ipv not in settings.getDestinations(): if len(a.remove_destination) > 1: cmd.print_warning("Warning: NOT_ENABLED: '%s'" % ipv) else: code = FirewallError.get_code("NOT_ENABLED") cmd.print_and_exit("Error: NOT_ENABLED: '%s'" % ipv, code) else: settings.removeDestination(ipv) fw.config.set_service_config(service, settings.settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.parse_service_destination, "'%s'") elif a.get_destinations: l = settings.getDestinations() cmd.print_and_exit(" ".join(["%s:%s" % (dest[0], dest[1]) for dest in l.items()])) elif a.set_description: settings.setDescription(a.set_description) fw.config.set_service_config(service, settings.settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) fw.config.set_service_config(service, settings.settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") cmd.print_and_exit("success") # ipsets if a.get_ipsets: ipsets = fw.config.get_ipsets() cmd.print_and_exit(" ".join(sorted(ipsets))) elif a.new_ipset: if not a.type: cmd.fail(parser.format_usage() + "No type specified.") settings = FirewallClientIPSetSettings() settings.setType(a.type) if a.option: for opt in a.option: settings.addOption(*cmd.parse_ipset_option(opt)) fw.config.new_ipset(a.new_ipset, settings.settings) elif a.new_ipset_from_file: filename = os.path.basename(a.new_ipset_from_file) dirname = os.path.dirname(a.new_ipset_from_file) if dirname == "": dirname = "./" try: obj = ipset_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load ipset file '%s': %s" % \ (a.new_ipset_from_file, msg)) except IOError as msg: cmd.fail("Failed to load ipset file: %s" % msg) if a.name: obj.name = a.name fw.config.new_ipset(obj.name, obj.export_config()) elif a.delete_ipset: ipset = fw.config.get_ipset(a.delete_ipset) fw.config.remove_ipset(ipset) elif a.load_ipset_defaults: obj = fw.config.get_ipset(a.load_ipset_defaults) fw.config.load_ipset_defaults(obj) elif a.info_ipset: ipset = fw.config.get_ipset(a.info_ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.print_ipset_info(a.info_ipset, settings) sys.exit(0) elif a.path_ipset: obj = fw.config.get_ipset(a.path_ipset) cmd.print_and_exit("%s/%s" % (obj.path, obj.filename)) elif a.ipset: if a.add_entry: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.add_sequence(a.add_entry, settings.addEntry, settings.queryEntry, None, "'%s'") fw.config.set_ipset_config(ipset, settings.settings) elif a.remove_entry: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.remove_sequence(a.remove_entry, settings.removeEntry, settings.queryEntry, None, "'%s'") fw.config.set_ipset_config(ipset, settings.settings) elif a.query_entry: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.query_sequence(a.query_entry, settings.queryEntry, None, "'%s'") elif a.get_entries: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) l = settings.getEntries() cmd.print_and_exit("\n".join(l)) elif a.add_entries_from_file: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) changed = False for filename in a.add_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.add_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose( "Warning: ALREADY_ENABLED: %s" % entry) if changed: settings.setEntries(old_entries) if changed: fw.config.set_ipset_config(ipset, settings.settings) elif a.remove_entries_from_file: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) changed = False for filename in a.remove_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.remove_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose("Warning: NOT_ENABLED: %s" % \ entry) if changed: settings.setEntries(old_entries) if changed: fw.config.set_ipset_config(ipset, settings.settings) elif a.set_description: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) settings.setDescription(a.set_description) fw.config.set_ipset_config(ipset, settings.settings) elif a.get_description: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.print_and_exit(settings.getDescription()) elif a.set_short: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) settings.setShort(a.set_short) fw.config.set_ipset_config(ipset, settings.settings) elif a.get_short: ipset = fw.config.get_ipset(a.ipset) settings = FirewallClientIPSetSettings( list(fw.config.get_ipset_config(ipset))) cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") cmd.print_and_exit("success") # helper elif a.get_helpers: cmd.print_and_exit(" ".join(sorted(fw.config.get_helpers()))) elif a.new_helper: if not a.module: cmd.fail(parser.format_usage() + "No module specified.") settings = FirewallClientHelperSettings() settings.setModule(a.module) if a.family: settings.setFamily(a.family) fw.config.new_helper(a.new_helper, settings.settings) elif a.new_helper_from_file: filename = os.path.basename(a.new_helper_from_file) dirname = os.path.dirname(a.new_helper_from_file) if dirname == "": dirname = "./" try: obj = helper_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load helper file '%s': %s" % \ (a.new_helper_from_file, msg)) except IOError as msg: cmd.fail("Failed to load helper file: %s" % msg) if a.name: obj.name = a.name fw.config.new_helper(obj.name, obj.export_config()) elif a.delete_helper: obj = fw.config.get_helper(a.delete_helper) fw.config.remove_helper(obj) elif a.load_helper_defaults: obj = fw.config.get_helper(a.load_helper_defaults) fw.config.load_helper_defaults(obj) elif a.info_helper: obj = fw.config.get_helper(a.info_helper) settings = FirewallClientHelperSettings( list(fw.config.get_helper_config(obj))) cmd.print_helper_info(a.info_helper, settings) sys.exit(0) elif a.path_helper: obj = fw.config.get_helper(a.path_helper) cmd.print_and_exit("%s/%s" % (obj.path, obj.filename)) elif a.helper: obj = fw.config.get_helper(a.helper) settings = FirewallClientHelperSettings( list(fw.config.get_helper_config(obj))) if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") fw.config.set_helper_config(obj, settings.settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") fw.config.set_helper_config(obj, settings.settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = settings.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.get_module: cmd.print_and_exit(settings.getModule()) elif a.set_module: settings.setModule(cmd.check_module(a.set_module)) fw.config.set_helper_config(obj, settings.settings) elif a.get_family: cmd.print_and_exit(settings.getFamily()) elif a.set_family: settings.setFamily(cmd.check_helper_family(a.set_family[0])) fw.config.set_helper_config(obj, settings.settings) elif a.set_description: settings.setDescription(a.set_description) fw.config.set_helper_config(obj, settings.settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) fw.config.set_helper_config(obj, settings.settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") # lockdown whitelist elif options_lockdown_whitelist: whitelist = fw.config.get_policies().lockdown_whitelist # commands if a.list_lockdown_whitelist_commands: l = whitelist.get_commands() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_command: cmd.add_sequence(a.add_lockdown_whitelist_command, whitelist.add_command, whitelist.has_command, None, "'%s'") elif a.remove_lockdown_whitelist_command: cmd.remove_sequence(a.remove_lockdown_whitelist_command, whitelist.remove_command, whitelist.has_command, None, "'%s'") elif a.query_lockdown_whitelist_command: cmd.query_sequence(a.query_lockdown_whitelist_command, whitelist.has_command, None, "'%s'") # contexts elif a.list_lockdown_whitelist_contexts: l = whitelist.get_contexts() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_context: cmd.add_sequence(a.add_lockdown_whitelist_context, whitelist.add_context, whitelist.has_context, None, "'%s'") elif a.remove_lockdown_whitelist_context: cmd.remove_sequence(a.remove_lockdown_whitelist_context, whitelist.remove_context, whitelist.has_context, None, "'%s'") elif a.query_lockdown_whitelist_context: cmd.query_sequence(a.query_lockdown_whitelist_context, whitelist.has_context, None, "'%s'") # uids elif a.list_lockdown_whitelist_uids: l = whitelist.get_uids() cmd.print_and_exit(" ".join(map(str, l))) elif a.add_lockdown_whitelist_uid: cmd.add_sequence(a.add_lockdown_whitelist_uid, whitelist.add_uid, whitelist.has_uid, None, "'%s'") elif a.remove_lockdown_whitelist_uid: cmd.remove_sequence(a.remove_lockdown_whitelist_uid, whitelist.remove_uid, whitelist.has_uid, None, "'%s'") elif a.query_lockdown_whitelist_uid: cmd.query_sequence(a.query_lockdown_whitelist_uid, whitelist.has_uid, None, "'%s'") # users elif a.list_lockdown_whitelist_users: l = whitelist.get_users() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_user: cmd.add_sequence(a.add_lockdown_whitelist_user, whitelist.add_user, whitelist.has_user, None, "'%s'") elif a.remove_lockdown_whitelist_user: cmd.remove_sequence(a.remove_lockdown_whitelist_user, whitelist.remove_user, whitelist.has_user, None, "'%s'") elif a.query_lockdown_whitelist_user: cmd.query_sequence(a.query_lockdown_whitelist_user, whitelist.has_user, None, "'%s'") # apply whitelist changes whitelist.write() elif options_direct: obj = fw.config.get_direct() if a.add_passthrough: if len(a.add_passthrough) < 2: cmd.fail("usage: --direct --add-passthrough { ipv4 | ipv6 | eb } ") cmd.print_msg( obj.add_passthrough(cmd.check_ipv(a.add_passthrough[0]), splitArgs(a.add_passthrough[1]))) elif a.remove_passthrough: if len(a.remove_passthrough) < 2: cmd.fail("usage: --direct --remove-passthrough { ipv4 | ipv6 | eb } ") obj.remove_passthrough(cmd.check_ipv(a.remove_passthrough[0]), splitArgs(a.remove_passthrough[1])) elif a.query_passthrough: if len(a.query_passthrough) < 2: cmd.fail("usage: --direct --query-passthrough { ipv4 | ipv6 | eb } ") cmd.print_query_result( obj.query_passthrough(cmd.check_ipv(a.query_passthrough[0]), splitArgs(a.query_passthrough[1]))) sys.exit(0) elif a.get_passthroughs: rules = obj.get_passthroughs(cmd.check_ipv(a.get_passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) elif a.get_all_passthroughs: rules = obj.get_all_passthroughs() for ipv in rules: for rule in rules[ipv]: cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif a.add_chain: obj.add_chain(cmd.check_ipv(a.add_chain[0]), a.add_chain[1], a.add_chain[2]) elif a.remove_chain: obj.remove_chain(cmd.check_ipv(a.remove_chain[0]), a.remove_chain[1], a.remove_chain[2]) elif a.query_chain: cmd.print_query_result( obj.query_chain(cmd.check_ipv(a.query_chain[0]), a.query_chain[1], a.query_chain[2])) sys.exit(0) elif a.get_chains: cmd.print_and_exit( " ".join(obj.get_chains(cmd.check_ipv(a.get_chains[0]), a.get_chains[1]))) sys.exit(0) elif a.get_all_chains: chains = obj.get_all_chains() for (ipv, table) in chains: for chain in chains[(ipv, table)]: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) elif a.add_rule: if len(a.add_rule) < 5: cmd.fail("usage: --direct --add-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.add_rule[3]) except ValueError: cmd.fail("wrong priority\nusage: --direct --add-rule { ipv4 | ipv6 | eb }
") obj.add_rule(cmd.check_ipv(a.add_rule[0]), a.add_rule[1], a.add_rule[2], priority, splitArgs(a.add_rule[4])) elif a.remove_rule: if len(a.remove_rule) < 5: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.remove_rule[3]) except ValueError: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb }
") obj.remove_rule(cmd.check_ipv(a.remove_rule[0]), a.remove_rule[1], a.remove_rule[2], priority, splitArgs(a.remove_rule[4])) elif a.remove_rules: if len(a.remove_rules) < 3: cmd.fail("usage: --direct --remove-rules { ipv4 | ipv6 | eb }
") obj.remove_rules(cmd.check_ipv(a.remove_rules[0]), a.remove_rules[1], a.remove_rules[2]) elif a.query_rule: if len(a.query_rule) < 5: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb }
") try: priority = int(a.query_rule[3]) except ValueError: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb }
") cmd.print_query_result( obj.query_rule(cmd.check_ipv(a.query_rule[0]), a.query_rule[1], a.query_rule[2], priority, splitArgs(a.query_rule[4]))) sys.exit(0) elif a.get_rules: rules = obj.get_rules(cmd.check_ipv(a.get_rules[0]), a.get_rules[1], a.get_rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif a.get_all_rules: rules = obj.get_all_rules() for (ipv, table, chain) in rules: for (priority, rule) in rules[(ipv, table, chain)]: cmd.print_msg("%s %s %s %d %s" % \ (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) obj.write() else: if zone == "": zone = fw.get_default_zone() fw_zone = fw.config.get_zone(zone) fw_settings = FirewallClientZoneSettings( list(fw.config.get_zone_config(fw_zone))) # convert to list, for setMasquerade # interface if a.list_interfaces: l = fw_settings.getInterfaces() cmd.print_and_exit(" ".join(l)) elif a.get_zone_of_interface: for interface in a.get_zone_of_interface: ret = [ ] for zone in fw.config.get_zones(): obj = fw.config.get_zone(zone) if interface in obj.interfaces: ret.append(obj.name) if len(ret) > 1: # Even it shouldn't happen, it's actually possible that # the same interface is in several zone XML files cmd.print_warning(" ".join(ret) + " (ERROR: interface '%s' is in %s zone XML files, can be only in one)" % (interface, len(ret))) if len(ret) == 1: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: %s" % (interface, ret[0])) else: cmd.print_and_exit(ret[0]) else: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: no zone" % interface) else: cmd.print_and_exit("no zone", 2) elif a.change_interface: for interface in a.change_interface: for old_zone in fw.config.get_zones(): old_zone_obj = fw.config.get_zone(old_zone) if interface in old_zone_obj.interfaces: if old_zone_obj.name != zone: old_zone_settings = FirewallClientZoneSettings( fw.config.get_zone_config(old_zone_obj)) old_zone_settings.removeInterface(interface) # remove from old fw.config.set_zone_config(old_zone_obj, old_zone_settings.settings) fw_settings.addInterface(interface) # add to new elif a.add_interface: cmd.add_sequence(a.add_interface, fw_settings.addInterface, fw_settings.queryInterface, None, "'%s'") elif a.remove_interface: cmd.remove_sequence(a.remove_interface, fw_settings.removeInterface, fw_settings.queryInterface, None, "'%s'") elif a.query_interface: cmd.query_sequence(a.query_interface, fw_settings.queryInterface, None, "'%s'") # source if a.list_sources: sources = fw_settings.getSources() cmd.print_and_exit(" ".join(sources)) elif a.get_zone_of_source: for source in a.get_zone_of_source: ret = [ ] for zone in fw.config.get_zones(): obj = fw.config.get_zone(zone) if source in obj.sources: ret.append(obj.name) if len(ret) > 1: # Even it shouldn't happen, it's actually possible that # the same source is in several zone XML files cmd.print_warning(" ".join(ret) + " (ERROR: source '%s' is in %s zone XML files, can be only in one)" % (source, len(ret))) if len(ret) == 1: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: %s" % (source, ret[0])) else: cmd.print_and_exit(ret[0]) else: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: no zone" % source) else: cmd.print_and_exit("no zone", 2) elif a.change_source: for source in a.change_source: for old_zone in fw.config.get_zones(): old_zone_obj = fw.config.get_zone(old_zone) if source in old_zone_obj.sources: if old_zone_obj.name != zone: old_zone_settings = FirewallClientZoneSettings( fw.config.get_zone_config(old_zone_obj)) old_zone_settings.removeSource(source) # remove from old fw.config.set_zone_config(old_zone_obj, old_zone_settings.settings) fw_settings.addSource(source) # add to new elif a.add_source: cmd.add_sequence(a.add_source, fw_settings.addSource, fw_settings.querySource, None, "'%s'") elif a.remove_source: cmd.remove_sequence(a.remove_source, fw_settings.removeSource, fw_settings.querySource, None, "'%s'") elif a.query_source: cmd.query_sequence(a.query_source, fw_settings.querySource, None, "'%s'") # rich rules if a.list_rich_rules: l = fw_settings.getRichRules() cmd.print_and_exit("\n".join(l)) elif a.add_rich_rule: cmd.add_sequence(a.add_rich_rule, fw_settings.addRichRule, fw_settings.queryRichRule, None, "'%s'") elif a.remove_rich_rule: cmd.remove_sequence(a.remove_rich_rule, fw_settings.removeRichRule, fw_settings.queryRichRule, None, "'%s'") elif a.query_rich_rule: cmd.query_sequence(a.query_rich_rule, fw_settings.queryRichRule, None, "'%s'") # service if a.list_services: l = fw_settings.getServices() cmd.print_and_exit(" ".join(l)) elif a.add_service: cmd.add_sequence(a.add_service, fw_settings.addService, fw_settings.queryService, None, "'%s'") elif a.remove_service_from_zone: cmd.remove_sequence(a.remove_service_from_zone, fw_settings.removeService, fw_settings.queryService, None, "'%s'") elif a.query_service: cmd.query_sequence(a.query_service, fw_settings.queryService, None, "'%s'") # port elif a.list_ports: l = fw_settings.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_port: cmd.add_sequence(a.add_port, fw_settings.addPort, fw_settings.queryPort, cmd.parse_port, "%s/%s") elif a.remove_port: cmd.remove_sequence(a.remove_port, fw_settings.removePort, fw_settings.queryPort, cmd.parse_port, "%s/%s") elif a.query_port: cmd.query_sequence(a.query_port, fw_settings.queryPort, cmd.parse_port, "%s/%s") # protocol elif a.list_protocols: l = fw_settings.getProtocols() cmd.print_and_exit(" ".join(l)) elif a.add_protocol: cmd.add_sequence(a.add_protocol, fw_settings.addProtocol, fw_settings.queryProtocol, None, "'%s'") elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, fw_settings.removeProtocol, fw_settings.queryProtocol, None, "'%s'") elif a.query_protocol: cmd.query_sequence(a.query_protocol, fw_settings.queryProtocol, None, "'%s'") # source port elif a.list_source_ports: l = fw_settings.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, fw_settings.addSourcePort, fw_settings.querySourcePort, cmd.parse_port, "%s/%s") elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, fw_settings.removeSourcePort, fw_settings.querySourcePort, cmd.parse_port, "%s/%s") elif a.query_source_port: cmd.query_sequence(a.query_source_port, fw_settings.querySourcePort, cmd.parse_port, "%s/%s") # masquerade elif a.add_masquerade: fw_settings.setMasquerade(True) elif a.remove_masquerade: fw_settings.setMasquerade(False) elif a.query_masquerade: cmd.print_query_result(fw_settings.getMasquerade()) # forward port elif a.list_forward_ports: l = fw_settings.getForwardPorts() cmd.print_and_exit("\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l])) elif a.add_forward_port: cmd.add_sequence(a.add_forward_port, fw_settings.addForwardPort, fw_settings.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.remove_forward_port: cmd.remove_sequence(a.remove_forward_port, fw_settings.removeForwardPort, fw_settings.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.query_forward_port: cmd.query_sequence(a.query_forward_port, fw_settings.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") # block icmp elif a.list_icmp_blocks: l = fw_settings.getIcmpBlocks() cmd.print_and_exit(" ".join(l)) elif a.add_icmp_block: cmd.add_sequence(a.add_icmp_block, fw_settings.addIcmpBlock, fw_settings.queryIcmpBlock, None, "'%s'") elif a.remove_icmp_block: cmd.remove_sequence(a.remove_icmp_block, fw_settings.removeIcmpBlock, fw_settings.queryIcmpBlock, None, "'%s'") elif a.query_icmp_block: cmd.query_sequence(a.query_icmp_block, fw_settings.queryIcmpBlock, None, "'%s'") # icmp block inversion elif a.add_icmp_block_inversion: fw_settings.addIcmpBlockInversion() elif a.remove_icmp_block_inversion: fw_settings.removeIcmpBlockInversion() elif a.query_icmp_block_inversion: cmd.print_query_result(fw_settings.queryIcmpBlockInversion()) # zone target elif a.get_target: cmd.print_and_exit(fw_settings.getTarget()) elif a.set_target: fw_settings.setTarget(a.set_target) # list all zone settings elif a.list_all: cmd.print_zone_info(zone if zone else fw.get_default_zone(), fw_settings) sys.exit(0) # list everything elif a.list_all_zones: zones = fw.config.get_zones() for zone in zones: fw_zone = fw.config.get_zone(zone) fw_settings = FirewallClientZoneSettings(list(fw.config.get_zone_config(fw_zone))) cmd.print_zone_info(zone, fw_settings) cmd.print_msg("") sys.exit(0) elif a.set_description: fw_settings.setDescription(a.set_description) elif a.get_description: cmd.print_and_exit(fw_settings.getDescription()) elif a.set_short: fw_settings.setShort(a.set_short) elif a.get_short: cmd.print_and_exit(fw_settings.getShort()) fw.config.set_zone_config(fw_zone, fw_settings.settings) cmd.print_and_exit("success") except Exception as msg: cmd.fail("%s" % msg) else: cmd.print_and_exit("success") firewalld-0.4.4.6/src/firewall/000077500000000000000000000000001320241217000162205ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/__init__.py000066400000000000000000000000001320241217000203170ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/client.py000066400000000000000000003255241320241217000200630ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2009-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from gi.repository import GLib, GObject # force use of pygobject3 in python-slip import sys sys.modules['gobject'] = GObject import dbus.mainloop.glib import slip.dbus from decorator import decorator from firewall import config from firewall.core.base import DEFAULT_ZONE_TARGET from firewall.dbus_utils import dbus_to_python from firewall.functions import b2u from firewall.core.rich import Rich_Rule from firewall import errors from firewall.errors import FirewallError import dbus import traceback exception_handler = None not_authorized_loop = False @decorator def handle_exceptions(func, *args, **kwargs): """Decorator to handle exceptions """ authorized = False while not authorized: try: return func(*args, **kwargs) except dbus.exceptions.DBusException as e: dbus_message = e.get_dbus_message() # returns unicode dbus_name = e.get_dbus_name() if not exception_handler: raise if "NotAuthorizedException" in dbus_name: exception_handler("NotAuthorizedException") elif "org.freedesktop.DBus.Error" in dbus_name: # dbus error, try again exception_handler(dbus_message) else: authorized = True if dbus_message: exception_handler(dbus_message) else: exception_handler(b2u(str(e))) except FirewallError as e: if not exception_handler: raise else: exception_handler(b2u(str(e))) except Exception as e: if not exception_handler: raise else: exception_handler(b2u(traceback.format_exc())) if not not_authorized_loop: break # zone config setings class FirewallClientZoneSettings(object): @handle_exceptions def __init__(self, settings = None): if settings: self.settings = settings else: self.settings = ["", "", "", False, DEFAULT_ZONE_TARGET, [], [], [], False, [], [], [], [], [], [], False] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getVersion(self): return self.settings[0] @handle_exceptions def setVersion(self, version): self.settings[0] = version @handle_exceptions def getShort(self): return self.settings[1] @handle_exceptions def setShort(self, short): self.settings[1] = short @handle_exceptions def getDescription(self): return self.settings[2] @handle_exceptions def setDescription(self, description): self.settings[2] = description # self.settings[3] was used for 'immutable' @handle_exceptions def getTarget(self): return self.settings[4] if self.settings[4] != DEFAULT_ZONE_TARGET else "default" @handle_exceptions def setTarget(self, target): self.settings[4] = target if target != "default" else DEFAULT_ZONE_TARGET @handle_exceptions def getServices(self): return self.settings[5] @handle_exceptions def setServices(self, services): self.settings[5] = services @handle_exceptions def addService(self, service): if service not in self.settings[5]: self.settings[5].append(service) else: raise FirewallError(errors.ALREADY_ENABLED, service) @handle_exceptions def removeService(self, service): if service in self.settings[5]: self.settings[5].remove(service) else: raise FirewallError(errors.NOT_ENABLED, service) @handle_exceptions def queryService(self, service): return service in self.settings[5] @handle_exceptions def getPorts(self): return self.settings[6] @handle_exceptions def setPorts(self, ports): self.settings[6] = ports @handle_exceptions def addPort(self, port, protocol): if (port,protocol) not in self.settings[6]: self.settings[6].append((port,protocol)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def removePort(self, port, protocol): if (port,protocol) in self.settings[6]: self.settings[6].remove((port,protocol)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def queryPort(self, port, protocol): return (port,protocol) in self.settings[6] @handle_exceptions def getProtocols(self): return self.settings[13] @handle_exceptions def setProtocols(self, protocols): self.settings[13] = protocols @handle_exceptions def addProtocol(self, protocol): if protocol not in self.settings[13]: self.settings[13].append(protocol) else: raise FirewallError(errors.ALREADY_ENABLED, protocol) @handle_exceptions def removeProtocol(self, protocol): if protocol in self.settings[13]: self.settings[13].remove(protocol) else: raise FirewallError(errors.NOT_ENABLED, protocol) @handle_exceptions def queryProtocol(self, protocol): return protocol in self.settings[13] @handle_exceptions def getSourcePorts(self): return self.settings[14] @handle_exceptions def setSourcePorts(self, ports): self.settings[14] = ports @handle_exceptions def addSourcePort(self, port, protocol): if (port,protocol) not in self.settings[14]: self.settings[14].append((port,protocol)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def removeSourcePort(self, port, protocol): if (port,protocol) in self.settings[14]: self.settings[14].remove((port,protocol)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def querySourcePort(self, port, protocol): return (port,protocol) in self.settings[14] @handle_exceptions def getIcmpBlocks(self): return self.settings[7] @handle_exceptions def setIcmpBlocks(self, icmpblocks): self.settings[7] = icmpblocks @handle_exceptions def addIcmpBlock(self, icmptype): if icmptype not in self.settings[7]: self.settings[7].append(icmptype) else: raise FirewallError(errors.ALREADY_ENABLED, icmptype) @handle_exceptions def removeIcmpBlock(self, icmptype): if icmptype in self.settings[7]: self.settings[7].remove(icmptype) else: raise FirewallError(errors.NOT_ENABLED, icmptype) @handle_exceptions def queryIcmpBlock(self, icmptype): return icmptype in self.settings[7] @handle_exceptions def getIcmpBlockInversion(self): return self.settings[15] @handle_exceptions def setIcmpBlockInversion(self, flag): self.settings[15] = flag @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpBlockInversion(self): if not self.settings[15]: self.settings[15] = True else: FirewallError(errors.ALREADY_ENABLED, "icmp-block-inversion") @slip.dbus.polkit.enable_proxy @handle_exceptions def removeIcmpBlockInversion(self): if self.settings[15]: self.settings[15] = False else: FirewallError(errors.NOT_ENABLED, "icmp-block-inversion") @slip.dbus.polkit.enable_proxy @handle_exceptions def queryIcmpBlockInversion(self): return self.settings[15] @handle_exceptions def getMasquerade(self): return self.settings[8] @handle_exceptions def setMasquerade(self, masquerade): self.settings[8] = masquerade @slip.dbus.polkit.enable_proxy @handle_exceptions def addMasquerade(self): if not self.settings[8]: self.settings[8] = True else: FirewallError(errors.ALREADY_ENABLED, "masquerade") @slip.dbus.polkit.enable_proxy @handle_exceptions def removeMasquerade(self): if self.settings[8]: self.settings[8] = False else: FirewallError(errors.NOT_ENABLED, "masquerade") @slip.dbus.polkit.enable_proxy @handle_exceptions def queryMasquerade(self): return self.settings[8] @handle_exceptions def getForwardPorts(self): return self.settings[9] @handle_exceptions def setForwardPorts(self, ports): self.settings[9] = ports @handle_exceptions def addForwardPort(self, port, protocol, to_port, to_addr): if to_port is None: to_port = '' if to_addr is None: to_addr = '' if (port,protocol,to_port,to_addr) not in self.settings[9]: self.settings[9].append((port,protocol,to_port,to_addr)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s:%s:%s'" % \ (port, protocol, to_port, to_addr)) @handle_exceptions def removeForwardPort(self, port, protocol, to_port, to_addr): if to_port is None: to_port = '' if to_addr is None: to_addr = '' if (port,protocol,to_port,to_addr) in self.settings[9]: self.settings[9].remove((port,protocol,to_port,to_addr)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s:%s:%s'" % \ (port, protocol, to_port, to_addr)) @handle_exceptions def queryForwardPort(self, port, protocol, to_port, to_addr): if to_port is None: to_port = '' if to_addr is None: to_addr = '' return (port,protocol,to_port,to_addr) in self.settings[9] @handle_exceptions def getInterfaces(self): return self.settings[10] @handle_exceptions def setInterfaces(self, interfaces): self.settings[10] = interfaces @handle_exceptions def addInterface(self, interface): if interface not in self.settings[10]: self.settings[10].append(interface) else: raise FirewallError(errors.ALREADY_ENABLED, interface) @handle_exceptions def removeInterface(self, interface): if interface in self.settings[10]: self.settings[10].remove(interface) else: raise FirewallError(errors.NOT_ENABLED, interface) @handle_exceptions def queryInterface(self, interface): return interface in self.settings[10] @handle_exceptions def getSources(self): return self.settings[11] @handle_exceptions def setSources(self, sources): self.settings[11] = sources @handle_exceptions def addSource(self, source): if source not in self.settings[11]: self.settings[11].append(source) else: raise FirewallError(errors.ALREADY_ENABLED, source) @handle_exceptions def removeSource(self, source): if source in self.settings[11]: self.settings[11].remove(source) else: raise FirewallError(errors.NOT_ENABLED, source) @handle_exceptions def querySource(self, source): return source in self.settings[11] @handle_exceptions def getRichRules(self): return self.settings[12] @handle_exceptions def setRichRules(self, rules): rules = [ str(Rich_Rule(rule_str=r)) for r in rules ] self.settings[12] = rules @handle_exceptions def addRichRule(self, rule): rule = str(Rich_Rule(rule_str=rule)) if rule not in self.settings[12]: self.settings[12].append(rule) else: raise FirewallError(errors.ALREADY_ENABLED, rule) @handle_exceptions def removeRichRule(self, rule): rule = str(Rich_Rule(rule_str=rule)) if rule in self.settings[12]: self.settings[12].remove(rule) else: raise FirewallError(errors.NOT_ENABLED, rule) @handle_exceptions def queryRichRule(self, rule): rule = str(Rich_Rule(rule_str=rule)) return rule in self.settings[12] # zone config class FirewallClientConfigZone(object): def __init__(self, bus, path): self.bus = bus self.path = path self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, path) self.fw_zone = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_ZONE) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') #TODO: check interface version and revision (need to match client # version) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG_ZONE, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG_ZONE)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, prop, value) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientZoneSettings(list(dbus_to_python(\ self.fw_zone.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_zone.update(tuple(settings.settings)) @slip.dbus.polkit.enable_proxy @handle_exceptions def loadDefaults(self): self.fw_zone.loadDefaults() @slip.dbus.polkit.enable_proxy @handle_exceptions def remove(self): self.fw_zone.remove() @slip.dbus.polkit.enable_proxy @handle_exceptions def rename(self, name): self.fw_zone.rename(name) # version @slip.dbus.polkit.enable_proxy @handle_exceptions def getVersion(self): return self.fw_zone.getVersion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setVersion(self, version): self.fw_zone.setVersion(version) # short @slip.dbus.polkit.enable_proxy @handle_exceptions def getShort(self): return self.fw_zone.getShort() @slip.dbus.polkit.enable_proxy @handle_exceptions def setShort(self, short): self.fw_zone.setShort(short) # description @slip.dbus.polkit.enable_proxy @handle_exceptions def getDescription(self): return self.fw_zone.getDescription() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDescription(self, description): self.fw_zone.setDescription(description) # target @slip.dbus.polkit.enable_proxy @handle_exceptions def getTarget(self): return self.fw_zone.getTarget() @slip.dbus.polkit.enable_proxy @handle_exceptions def setTarget(self, target): self.fw_zone.setTarget(target) # service @slip.dbus.polkit.enable_proxy @handle_exceptions def getServices(self): return self.fw_zone.getServices() @slip.dbus.polkit.enable_proxy @handle_exceptions def setServices(self, services): self.fw_zone.setServices(services) @slip.dbus.polkit.enable_proxy @handle_exceptions def addService(self, service): self.fw_zone.addService(service) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeService(self, service): self.fw_zone.removeService(service) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryService(self, service): return self.fw_zone.queryService(service) # port @slip.dbus.polkit.enable_proxy @handle_exceptions def getPorts(self): return self.fw_zone.getPorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setPorts(self, ports): self.fw_zone.setPorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addPort(self, port, protocol): self.fw_zone.addPort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePort(self, port, protocol): self.fw_zone.removePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPort(self, port, protocol): return self.fw_zone.queryPort(port, protocol) # protocol @slip.dbus.polkit.enable_proxy @handle_exceptions def getProtocols(self): return self.fw_zone.getProtocols() @slip.dbus.polkit.enable_proxy @handle_exceptions def setProtocols(self, protocols): self.fw_zone.setProtocols(protocols) @slip.dbus.polkit.enable_proxy @handle_exceptions def addProtocol(self, protocol): self.fw_zone.addProtocol(protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeProtocol(self, protocol): self.fw_zone.removeProtocol(protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryProtocol(self, protocol): return self.fw_zone.queryProtocol(protocol) # source-port @slip.dbus.polkit.enable_proxy @handle_exceptions def getSourcePorts(self): return self.fw_zone.getSourcePorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setSourcePorts(self, ports): self.fw_zone.setSourcePorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addSourcePort(self, port, protocol): self.fw_zone.addSourcePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeSourcePort(self, port, protocol): self.fw_zone.removeSourcePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def querySourcePort(self, port, protocol): return self.fw_zone.querySourcePort(port, protocol) # icmp block @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpBlocks(self): return self.fw_zone.getIcmpBlocks() @slip.dbus.polkit.enable_proxy @handle_exceptions def setIcmpBlocks(self, icmptypes): self.fw_zone.setIcmpBlocks(icmptypes) @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpBlock(self, icmptype): self.fw_zone.addIcmpBlock(icmptype) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeIcmpBlock(self, icmptype): self.fw_zone.removeIcmpBlock(icmptype) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryIcmpBlock(self, icmptype): return self.fw_zone.queryIcmpBlock(icmptype) # icmp-block-inversion @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpBlockInversion(self): return self.fw_zone.getIcmpBlockInversion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setIcmpBlockInversion(self, inversion): self.fw_zone.setIcmpBlockInversion(inversion) @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpBlockInversion(self): self.fw_zone.addIcmpBlockInversion() @slip.dbus.polkit.enable_proxy @handle_exceptions def removeIcmpBlockInversion(self): self.fw_zone.removeIcmpBlockInversion() @slip.dbus.polkit.enable_proxy @handle_exceptions def queryIcmpBlockInversion(self): return self.fw_zone.queryIcmpBlockInversion() # masquerade @slip.dbus.polkit.enable_proxy @handle_exceptions def getMasquerade(self): return self.fw_zone.getMasquerade() @slip.dbus.polkit.enable_proxy @handle_exceptions def setMasquerade(self, masquerade): self.fw_zone.setMasquerade(masquerade) @slip.dbus.polkit.enable_proxy @handle_exceptions def addMasquerade(self): self.fw_zone.addMasquerade() @slip.dbus.polkit.enable_proxy @handle_exceptions def removeMasquerade(self): self.fw_zone.removeMasquerade() @slip.dbus.polkit.enable_proxy @handle_exceptions def queryMasquerade(self): return self.fw_zone.queryMasquerade() # forward port @slip.dbus.polkit.enable_proxy @handle_exceptions def getForwardPorts(self): return self.fw_zone.getForwardPorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setForwardPorts(self, ports): self.fw_zone.setForwardPorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addForwardPort(self, port, protocol, toport, toaddr): if toport is None: toport = '' if toaddr is None: toaddr = '' self.fw_zone.addForwardPort(port, protocol, toport, toaddr) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeForwardPort(self, port, protocol, toport, toaddr): if toport is None: toport = '' if toaddr is None: toaddr = '' self.fw_zone.removeForwardPort(port, protocol, toport, toaddr) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryForwardPort(self, port, protocol, toport, toaddr): if toport is None: toport = '' if toaddr is None: toaddr = '' return self.fw_zone.queryForwardPort(port, protocol, toport, toaddr) # interface @slip.dbus.polkit.enable_proxy @handle_exceptions def getInterfaces(self): return self.fw_zone.getInterfaces() @slip.dbus.polkit.enable_proxy @handle_exceptions def setInterfaces(self, interfaces): self.fw_zone.setInterfaces(interfaces) @slip.dbus.polkit.enable_proxy @handle_exceptions def addInterface(self, interface): self.fw_zone.addInterface(interface) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeInterface(self, interface): self.fw_zone.removeInterface(interface) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryInterface(self, interface): return self.fw_zone.queryInterface(interface) # source @slip.dbus.polkit.enable_proxy @handle_exceptions def getSources(self): return self.fw_zone.getSources() @slip.dbus.polkit.enable_proxy @handle_exceptions def setSources(self, sources): self.fw_zone.setSources(sources) @slip.dbus.polkit.enable_proxy @handle_exceptions def addSource(self, source): self.fw_zone.addSource(source) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeSource(self, source): self.fw_zone.removeSource(source) @slip.dbus.polkit.enable_proxy @handle_exceptions def querySource(self, source): return self.fw_zone.querySource(source) # rich rule @slip.dbus.polkit.enable_proxy @handle_exceptions def getRichRules(self): return self.fw_zone.getRichRules() @slip.dbus.polkit.enable_proxy @handle_exceptions def setRichRules(self, rules): self.fw_zone.setRichRules(rules) @slip.dbus.polkit.enable_proxy @handle_exceptions def addRichRule(self, rule): self.fw_zone.addRichRule(rule) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRichRule(self, rule): self.fw_zone.removeRichRule(rule) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryRichRule(self, rule): return self.fw_zone.queryRichRule(rule) # service config settings class FirewallClientServiceSettings(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = ["", "", "", [], [], {}, [], []] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getVersion(self): return self.settings[0] @handle_exceptions def setVersion(self, version): self.settings[0] = version @handle_exceptions def getShort(self): return self.settings[1] @handle_exceptions def setShort(self, short): self.settings[1] = short @handle_exceptions def getDescription(self): return self.settings[2] @handle_exceptions def setDescription(self, description): self.settings[2] = description @handle_exceptions def getPorts(self): return self.settings[3] @handle_exceptions def setPorts(self, ports): self.settings[3] = ports @handle_exceptions def addPort(self, port, protocol): if (port,protocol) not in self.settings[3]: self.settings[3].append((port,protocol)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def removePort(self, port, protocol): if (port,protocol) in self.settings[3]: self.settings[3].remove((port,protocol)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def queryPort(self, port, protocol): return (port,protocol) in self.settings[3] @handle_exceptions def getProtocols(self): return self.settings[6] @handle_exceptions def setProtocols(self, protocols): self.settings[6] = protocols @handle_exceptions def addProtocol(self, protocol): if protocol not in self.settings[6]: self.settings[6].append(protocol) else: raise FirewallError(errors.ALREADY_ENABLED, protocol) @handle_exceptions def removeProtocol(self, protocol): if protocol in self.settings[6]: self.settings[6].remove(protocol) else: raise FirewallError(errors.NOT_ENABLED, protocol) @handle_exceptions def queryProtocol(self, protocol): return protocol in self.settings[6] @handle_exceptions def getSourcePorts(self): return self.settings[7] @handle_exceptions def setSourcePorts(self, ports): self.settings[7] = ports @handle_exceptions def addSourcePort(self, port, protocol): if (port,protocol) not in self.settings[7]: self.settings[7].append((port,protocol)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def removeSourcePort(self, port, protocol): if (port,protocol) in self.settings[7]: self.settings[7].remove((port,protocol)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def querySourcePort(self, port, protocol): return (port,protocol) in self.settings[7] @handle_exceptions def getModules(self): return self.settings[4] @handle_exceptions def setModules(self, modules): self.settings[4] = modules @handle_exceptions def addModule(self, module): if module not in self.settings[4]: self.settings[4].append(module) else: raise FirewallError(errors.ALREADY_ENABLED, module) @handle_exceptions def removeModule(self, module): if module in self.settings[4]: self.settings[4].remove(module) else: raise FirewallError(errors.NOT_ENABLED, module) @handle_exceptions def queryModule(self, module): return module in self.settings[4] @handle_exceptions def getDestinations(self): return self.settings[5] @handle_exceptions def setDestinations(self, destinations): self.settings[5] = destinations @handle_exceptions def setDestination(self, dest_type, address): if dest_type not in self.settings[5] or \ self.settings[5][dest_type] != address: self.settings[5][dest_type] = address else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % \ (dest_type, address)) @handle_exceptions def removeDestination(self, dest_type, address=None): if dest_type in self.settings[5]: if address is not None and self.settings[5][dest_type] != address: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % \ (dest_type, address)) del self.settings[5][dest_type] else: raise FirewallError(errors.NOT_ENABLED, "'%s'" % dest_type) @handle_exceptions def queryDestination(self, dest_type, address): return (dest_type in self.settings[5] and \ address == self.settings[5][dest_type]) # ipset config settings class FirewallClientIPSetSettings(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = ["", "", "", "", {}, []] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getVersion(self): return self.settings[0] @handle_exceptions def setVersion(self, version): self.settings[0] = version @handle_exceptions def getShort(self): return self.settings[1] @handle_exceptions def setShort(self, short): self.settings[1] = short @handle_exceptions def getDescription(self): return self.settings[2] @handle_exceptions def setDescription(self, description): self.settings[2] = description @handle_exceptions def getType(self): return self.settings[3] @handle_exceptions def setType(self, ipset_type): self.settings[3] = ipset_type @handle_exceptions def getOptions(self): return self.settings[4] @handle_exceptions def setOptions(self, options): self.settings[4] = options @handle_exceptions def addOption(self, key, value): if key not in self.settings[4] or self.settings[4][key] != value: self.settings[4][key] = value else: raise FirewallError(errors.ALREADY_ENABLED, "'%s=%s'" % (key,value) if value else key) @handle_exceptions def removeOption(self, key): if key in self.settings[4]: del self.settings[4][key] else: raise FirewallError(errors.NOT_ENABLED, key) @handle_exceptions def queryOption(self, key, value): return key in self.settings[4] and self.settings[4][key] == value @handle_exceptions def getEntries(self): return self.settings[5] @handle_exceptions def setEntries(self, entries): if "timeout" in self.settings[4] and \ self.settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) self.settings[5] = entries @handle_exceptions def addEntry(self, entry): if "timeout" in self.settings[4] and \ self.settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) if entry not in self.settings[5]: self.settings[5].append(entry) else: raise FirewallError(errors.ALREADY_ENABLED, entry) @handle_exceptions def removeEntry(self, entry): if "timeout" in self.settings[4] and \ self.settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) if entry in self.settings[5]: self.settings[5].remove(entry) else: raise FirewallError(errors.NOT_ENABLED, entry) @handle_exceptions def queryEntry(self, entry): if "timeout" in self.settings[4] and \ self.settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) return entry in self.settings[5] # ipset config class FirewallClientConfigIPSet(object): @handle_exceptions def __init__(self, bus, path): self.bus = bus self.path = path self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, path) self.fw_ipset = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_IPSET) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG_IPSET, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG_IPSET)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, prop, value) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientIPSetSettings(list(dbus_to_python(\ self.fw_ipset.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_ipset.update(tuple(settings.settings)) @slip.dbus.polkit.enable_proxy @handle_exceptions def loadDefaults(self): self.fw_ipset.loadDefaults() @slip.dbus.polkit.enable_proxy @handle_exceptions def remove(self): self.fw_ipset.remove() @slip.dbus.polkit.enable_proxy @handle_exceptions def rename(self, name): self.fw_ipset.rename(name) # version @slip.dbus.polkit.enable_proxy @handle_exceptions def getVersion(self): return self.fw_ipset.getVersion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setVersion(self, version): self.fw_ipset.setVersion(version) # short @slip.dbus.polkit.enable_proxy @handle_exceptions def getShort(self): return self.fw_ipset.getShort() @slip.dbus.polkit.enable_proxy @handle_exceptions def setShort(self, short): self.fw_ipset.setShort(short) # description @slip.dbus.polkit.enable_proxy @handle_exceptions def getDescription(self): return self.fw_ipset.getDescription() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDescription(self, description): self.fw_ipset.setDescription(description) # entry @slip.dbus.polkit.enable_proxy @handle_exceptions def getEntries(self): return self.fw_ipset.getEntries() @slip.dbus.polkit.enable_proxy @handle_exceptions def setEntries(self, entries): self.fw_ipset.setEntries(entries) @slip.dbus.polkit.enable_proxy @handle_exceptions def addEntry(self, entry): self.fw_ipset.addEntry(entry) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeEntry(self, entry): self.fw_ipset.removeEntry(entry) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryEntry(self, entry): return self.fw_ipset.queryEntry(entry) # helper config settings class FirewallClientHelperSettings(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = ["", "", "", "", "", [ ]] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getVersion(self): return self.settings[0] @handle_exceptions def setVersion(self, version): self.settings[0] = version @handle_exceptions def getShort(self): return self.settings[1] @handle_exceptions def setShort(self, short): self.settings[1] = short @handle_exceptions def getDescription(self): return self.settings[2] @handle_exceptions def setDescription(self, description): self.settings[2] = description @handle_exceptions def getFamily(self): return self.settings[3] @handle_exceptions def setFamily(self, ipv): if ipv is None: self.settings[3] = "" self.settings[3] = ipv @handle_exceptions def getModule(self): return self.settings[4] @handle_exceptions def setModule(self, module): self.settings[4] = module @handle_exceptions def getPorts(self): return self.settings[5] @handle_exceptions def setPorts(self, ports): self.settings[5] = ports @handle_exceptions def addPort(self, port, protocol): if (port,protocol) not in self.settings[5]: self.settings[5].append((port,protocol)) else: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def removePort(self, port, protocol): if (port,protocol) in self.settings[5]: self.settings[5].remove((port,protocol)) else: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % (port, protocol)) @handle_exceptions def queryPort(self, port, protocol): return (port,protocol) in self.settings[5] # helper config class FirewallClientConfigHelper(object): @handle_exceptions def __init__(self, bus, path): self.bus = bus self.path = path self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, path) self.fw_helper = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_HELPER) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG_HELPER, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG_HELPER)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, prop, value) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientHelperSettings(list(dbus_to_python(\ self.fw_helper.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_helper.update(tuple(settings.settings)) @slip.dbus.polkit.enable_proxy @handle_exceptions def loadDefaults(self): self.fw_helper.loadDefaults() @slip.dbus.polkit.enable_proxy @handle_exceptions def remove(self): self.fw_helper.remove() @slip.dbus.polkit.enable_proxy @handle_exceptions def rename(self, name): self.fw_helper.rename(name) # version @slip.dbus.polkit.enable_proxy @handle_exceptions def getVersion(self): return self.fw_helper.getVersion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setVersion(self, version): self.fw_helper.setVersion(version) # short @slip.dbus.polkit.enable_proxy @handle_exceptions def getShort(self): return self.fw_helper.getShort() @slip.dbus.polkit.enable_proxy @handle_exceptions def setShort(self, short): self.fw_helper.setShort(short) # description @slip.dbus.polkit.enable_proxy @handle_exceptions def getDescription(self): return self.fw_helper.getDescription() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDescription(self, description): self.fw_helper.setDescription(description) # port @slip.dbus.polkit.enable_proxy @handle_exceptions def getPorts(self): return self.fw_helper.getPorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setPorts(self, ports): self.fw_helper.setPorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addPort(self, port, protocol): self.fw_helper.addPort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePort(self, port, protocol): self.fw_helper.removePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPort(self, port, protocol): return self.fw_helper.queryPort(port, protocol) # family @slip.dbus.polkit.enable_proxy @handle_exceptions def getFamily(self): return self.fw_helper.getFamily() @slip.dbus.polkit.enable_proxy @handle_exceptions def setFamily(self, ipv): if ipv is None: self.fw_helper.setFamily("") self.fw_helper.setFamily(ipv) # module @slip.dbus.polkit.enable_proxy @handle_exceptions def getModule(self): return self.fw_helper.getModule() @slip.dbus.polkit.enable_proxy @handle_exceptions def setModule(self, module): self.fw_helper.setModule(module) # service config class FirewallClientConfigService(object): @handle_exceptions def __init__(self, bus, path): self.bus = bus self.path = path self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, path) self.fw_service = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_SERVICE) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG_SERVICE)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, prop, value) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientServiceSettings(list(dbus_to_python(\ self.fw_service.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_service.update(tuple(settings.settings)) @slip.dbus.polkit.enable_proxy @handle_exceptions def loadDefaults(self): self.fw_service.loadDefaults() @slip.dbus.polkit.enable_proxy @handle_exceptions def remove(self): self.fw_service.remove() @slip.dbus.polkit.enable_proxy @handle_exceptions def rename(self, name): self.fw_service.rename(name) # version @slip.dbus.polkit.enable_proxy @handle_exceptions def getVersion(self): return self.fw_service.getVersion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setVersion(self, version): self.fw_service.setVersion(version) # short @slip.dbus.polkit.enable_proxy @handle_exceptions def getShort(self): return self.fw_service.getShort() @slip.dbus.polkit.enable_proxy @handle_exceptions def setShort(self, short): self.fw_service.setShort(short) # description @slip.dbus.polkit.enable_proxy @handle_exceptions def getDescription(self): return self.fw_service.getDescription() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDescription(self, description): self.fw_service.setDescription(description) # port @slip.dbus.polkit.enable_proxy @handle_exceptions def getPorts(self): return self.fw_service.getPorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setPorts(self, ports): self.fw_service.setPorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addPort(self, port, protocol): self.fw_service.addPort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePort(self, port, protocol): self.fw_service.removePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPort(self, port, protocol): return self.fw_service.queryPort(port, protocol) # protocol @slip.dbus.polkit.enable_proxy @handle_exceptions def getProtocols(self): return self.fw_service.getProtocols() @slip.dbus.polkit.enable_proxy @handle_exceptions def setProtocols(self, protocols): self.fw_service.setProtocols(protocols) @slip.dbus.polkit.enable_proxy @handle_exceptions def addProtocol(self, protocol): self.fw_service.addProtocol(protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeProtocol(self, protocol): self.fw_service.removeProtocol(protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryProtocol(self, protocol): return self.fw_service.queryProtocol(protocol) # source-port @slip.dbus.polkit.enable_proxy @handle_exceptions def getSourcePorts(self): return self.fw_service.getSourcePorts() @slip.dbus.polkit.enable_proxy @handle_exceptions def setSourcePorts(self, ports): self.fw_service.setSourcePorts(ports) @slip.dbus.polkit.enable_proxy @handle_exceptions def addSourcePort(self, port, protocol): self.fw_service.addSourcePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeSourcePort(self, port, protocol): self.fw_service.removeSourcePort(port, protocol) @slip.dbus.polkit.enable_proxy @handle_exceptions def querySourcePort(self, port, protocol): return self.fw_service.querySourcePort(port, protocol) # module @slip.dbus.polkit.enable_proxy @handle_exceptions def getModules(self): return self.fw_service.getModules() @slip.dbus.polkit.enable_proxy @handle_exceptions def setModules(self, modules): self.fw_service.setModules(modules) @slip.dbus.polkit.enable_proxy @handle_exceptions def addModule(self, module): self.fw_service.addModule(module) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeModule(self, module): self.fw_service.removeModule(module) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryModule(self, module): return self.fw_service.queryModule(module) # destination @slip.dbus.polkit.enable_proxy @handle_exceptions def getDestinations(self): return self.fw_service.getDestinations() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDestinations(self, destinations): self.fw_service.setDestinations(destinations) @slip.dbus.polkit.enable_proxy @handle_exceptions def getDestination(self, destination): return self.fw_service.getDestination(destination) @slip.dbus.polkit.enable_proxy @handle_exceptions def setDestination(self, destination, address): self.fw_service.setDestination(destination, address) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeDestination(self, destination, address=None): if address is not None and self.getDestination(destination) != address: raise FirewallError(errors.NOT_ENABLED, "'%s:%s'" % \ (destination, address)) self.fw_service.removeDestination(destination) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryDestination(self, destination, address): return self.fw_service.queryDestination(destination, address) # icmptype config settings class FirewallClientIcmpTypeSettings(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = ["", "", "", []] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getVersion(self): return self.settings[0] @handle_exceptions def setVersion(self, version): self.settings[0] = version @handle_exceptions def getShort(self): return self.settings[1] @handle_exceptions def setShort(self, short): self.settings[1] = short @handle_exceptions def getDescription(self): return self.settings[2] @handle_exceptions def setDescription(self, description): self.settings[2] = description @handle_exceptions def getDestinations(self): return self.settings[3] @handle_exceptions def setDestinations(self, destinations): self.settings[3] = destinations @handle_exceptions def addDestination(self, destination): # empty means all if not self.settings[3]: raise FirewallError(errors.ALREADY_ENABLED, destination) elif destination not in self.settings[3]: self.settings[3].append(destination) else: raise FirewallError(errors.ALREADY_ENABLED, destination) @handle_exceptions def removeDestination(self, destination): if destination in self.settings[3]: self.settings[3].remove(destination) # empty means all elif not self.settings[3]: self.setDestinations(list(set(['ipv4','ipv6']) - \ set([destination]))) else: raise FirewallError(errors.NOT_ENABLED, destination) @handle_exceptions def queryDestination(self, destination): # empty means all return not self.settings[3] or \ destination in self.settings[3] # icmptype config class FirewallClientConfigIcmpType(object): @handle_exceptions def __init__(self, bus, path): self.bus = bus self.path = path self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, path) self.fw_icmptype = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, prop, value) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientIcmpTypeSettings(list(dbus_to_python(\ self.fw_icmptype.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_icmptype.update(tuple(settings.settings)) @slip.dbus.polkit.enable_proxy @handle_exceptions def loadDefaults(self): self.fw_icmptype.loadDefaults() @slip.dbus.polkit.enable_proxy @handle_exceptions def remove(self): self.fw_icmptype.remove() @slip.dbus.polkit.enable_proxy @handle_exceptions def rename(self, name): self.fw_icmptype.rename(name) # version @slip.dbus.polkit.enable_proxy @handle_exceptions def getVersion(self): return self.fw_icmptype.getVersion() @slip.dbus.polkit.enable_proxy @handle_exceptions def setVersion(self, version): self.fw_icmptype.setVersion(version) # short @slip.dbus.polkit.enable_proxy @handle_exceptions def getShort(self): return self.fw_icmptype.getShort() @slip.dbus.polkit.enable_proxy @handle_exceptions def setShort(self, short): self.fw_icmptype.setShort(short) # description @slip.dbus.polkit.enable_proxy @handle_exceptions def getDescription(self): return self.fw_icmptype.getDescription() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDescription(self, description): self.fw_icmptype.setDescription(description) # destination @slip.dbus.polkit.enable_proxy @handle_exceptions def getDestinations(self): return self.fw_icmptype.getDestinations() @slip.dbus.polkit.enable_proxy @handle_exceptions def setDestinations(self, destinations): self.fw_icmptype.setDestinations(destinations) @slip.dbus.polkit.enable_proxy @handle_exceptions def addDestination(self, destination): self.fw_icmptype.addDestination(destination) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeDestination(self, destination): self.fw_icmptype.removeDestination(destination) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryDestination(self, destination): return self.fw_icmptype.queryDestination(destination) # config.policies lockdown whitelist class FirewallClientPoliciesLockdownWhitelist(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = [ [], [], [], [] ] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getCommands(self): return self.settings[0] @handle_exceptions def setCommands(self, commands): self.settings[0] = commands @handle_exceptions def addCommand(self, command): if command not in self.settings[0]: self.settings[0].append(command) @handle_exceptions def removeCommand(self, command): if command in self.settings[0]: self.settings[0].remove(command) @handle_exceptions def queryCommand(self, command): return command in self.settings[0] @handle_exceptions def getContexts(self): return self.settings[1] @handle_exceptions def setContexts(self, contexts): self.settings[1] = contexts @handle_exceptions def addContext(self, context): if context not in self.settings[1]: self.settings[1].append(context) @handle_exceptions def removeContext(self, context): if context in self.settings[1]: self.settings[1].remove(context) @handle_exceptions def queryContext(self, context): return context in self.settings[1] @handle_exceptions def getUsers(self): return self.settings[2] @handle_exceptions def setUsers(self, users): self.settings[2] = users @handle_exceptions def addUser(self, user): if user not in self.settings[2]: self.settings[2].append(user) @handle_exceptions def removeUser(self, user): if user in self.settings[2]: self.settings[2].remove(user) @handle_exceptions def queryUser(self, user): return user in self.settings[2] @handle_exceptions def getUids(self): return self.settings[3] @handle_exceptions def setUids(self, uids): self.settings[3] = uids @handle_exceptions def addUid(self, uid): if uid not in self.settings[3]: self.settings[3].append(uid) @handle_exceptions def removeUid(self, uid): if uid in self.settings[3]: self.settings[3].remove(uid) @handle_exceptions def queryUid(self, uid): return uid in self.settings[3] # config.policies class FirewallClientConfigPolicies(object): @handle_exceptions def __init__(self, bus): self.bus = bus self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH_CONFIG) self.fw_policies = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_POLICIES) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelist(self): return FirewallClientPoliciesLockdownWhitelist( \ list(dbus_to_python(self.fw_policies.getLockdownWhitelist()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def setLockdownWhitelist(self, settings): self.fw_policies.setLockdownWhitelist(tuple(settings.settings)) # command @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistCommand(self, command): self.fw_policies.addLockdownWhitelistCommand(command) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistCommand(self, command): self.fw_policies.removeLockdownWhitelistCommand(command) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistCommand(self, command): return dbus_to_python(self.fw_policies.queryLockdownWhitelistCommand(command)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistCommands(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistCommands()) # context @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistContext(self, context): self.fw_policies.addLockdownWhitelistContext(context) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistContext(self, context): self.fw_policies.removeLockdownWhitelistContext(context) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistContext(self, context): return dbus_to_python(self.fw_policies.queryLockdownWhitelistContext(context)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistContexts(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistContexts()) # user @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistUser(self, user): self.fw_policies.addLockdownWhitelistUser(user) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistUser(self, user): self.fw_policies.removeLockdownWhitelistUser(user) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistUser(self, user): return dbus_to_python(self.fw_policies.queryLockdownWhitelistUser(user)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistUsers(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistUsers()) # uid @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistUids(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistUids()) @slip.dbus.polkit.enable_proxy @handle_exceptions def setLockdownWhitelistUids(self, uids): self.fw_policies.setLockdownWhitelistUids(uids) @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistUid(self, uid): self.fw_policies.addLockdownWhitelistUid(uid) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistUid(self, uid): self.fw_policies.removeLockdownWhitelistUid(uid) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistUid(self, uid): return dbus_to_python(self.fw_policies.queryLockdownWhitelistUid(uid)) # config.direct class FirewallClientDirect(object): @handle_exceptions def __init__(self, settings=None): if settings: self.settings = settings else: self.settings = [ [], [], [], ] @handle_exceptions def __repr__(self): return '%s(%r)' % (self.__class__, self.settings) @handle_exceptions def getAllChains(self): return self.settings[0] @handle_exceptions def getChains(self, ipv, table): return [ entry[2] for entry in self.settings[0] \ if entry[0] == ipv and entry[1] == table ] @handle_exceptions def setAllChains(self, chains): self.settings[0] = chains @handle_exceptions def addChain(self, ipv, table, chain): idx = (ipv, table, chain) if idx not in self.settings[0]: self.settings[0].append(idx) @handle_exceptions def removeChain(self, ipv, table, chain): idx = (ipv, table, chain) if idx in self.settings[0]: self.settings[0].remove(idx) @handle_exceptions def queryChain(self, ipv, table, chain): idx = (ipv, table, chain) return idx in self.settings[0] @handle_exceptions def getAllRules(self): return self.settings[1] @handle_exceptions def getRules(self, ipv, table, chain): return [ entry[3:] for entry in self.settings[1] \ if entry[0] == ipv and entry[1] == table \ and entry[2] == chain ] @handle_exceptions def setAllRules(self, rules): self.settings[1] = rules @handle_exceptions def addRule(self, ipv, table, chain, priority, args): idx = (ipv, table, chain, priority, args) if idx not in self.settings[1]: self.settings[1].append(idx) @handle_exceptions def removeRule(self, ipv, table, chain, priority, args): idx = (ipv, table, chain, priority, args) if idx in self.settings[1]: self.settings[1].remove(idx) @handle_exceptions def removeRules(self, ipv, table, chain): for idx in list(self.settings[1]): if idx[0] == ipv and idx[1] == table and idx[2] == chain: self.settings[1].remove(idx) @handle_exceptions def queryRule(self, ipv, table, chain, priority, args): idx = (ipv, table, chain, priority, args) return idx in self.settings[1] @handle_exceptions def getAllPassthroughs(self): return self.settings[2] @handle_exceptions def setAllPassthroughs(self, passthroughs): self.settings[2] = passthroughs @handle_exceptions def removeAllPassthroughs(self): self.settings[2] = [] @handle_exceptions def getPassthroughs(self, ipv): return [ entry[1] for entry in self.settings[2] \ if entry[0] == ipv ] @handle_exceptions def addPassthrough(self, ipv, args): idx = (ipv, args) if idx not in self.settings[2]: self.settings[2].append(idx) @handle_exceptions def removePassthrough(self, ipv, args): idx = (ipv, args) if idx in self.settings[2]: self.settings[2].remove(idx) @handle_exceptions def queryPassthrough(self, ipv, args): idx = (ipv, args) return idx in self.settings[2] # config.direct class FirewallClientConfigDirect(object): @handle_exceptions def __init__(self, bus): self.bus = bus self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH_CONFIG) self.fw_direct = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG_DIRECT) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSettings(self): return FirewallClientDirect( \ list(dbus_to_python(self.fw_direct.getSettings()))) @slip.dbus.polkit.enable_proxy @handle_exceptions def update(self, settings): self.fw_direct.update(tuple(settings.settings)) # direct chain @slip.dbus.polkit.enable_proxy @handle_exceptions def addChain(self, ipv, table, chain): self.fw_direct.addChain(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeChain(self, ipv, table, chain): self.fw_direct.removeChain(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryChain(self, ipv, table, chain): return dbus_to_python(self.fw_direct.queryChain(ipv, table, chain)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getChains(self, ipv, table): return dbus_to_python(self.fw_direct.getChains(ipv, table)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllChains(self): return dbus_to_python(self.fw_direct.getAllChains()) # direct rule @slip.dbus.polkit.enable_proxy @handle_exceptions def addRule(self, ipv, table, chain, priority, args): self.fw_direct.addRule(ipv, table, chain, priority, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRule(self, ipv, table, chain, priority, args): self.fw_direct.removeRule(ipv, table, chain, priority, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRules(self, ipv, table, chain): self.fw_direct.removeRules(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryRule(self, ipv, table, chain, priority, args): return dbus_to_python(self.fw_direct.queryRule(ipv, table, chain, priority, args)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getRules(self, ipv, table, chain): return dbus_to_python(self.fw_direct.getRules(ipv, table, chain)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllRules(self): return dbus_to_python(self.fw_direct.getAllRules()) # tracked passthrough @slip.dbus.polkit.enable_proxy @handle_exceptions def addPassthrough(self, ipv, args): self.fw_direct.addPassthrough(ipv, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePassthrough(self, ipv, args): self.fw_direct.removePassthrough(ipv, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPassthrough(self, ipv, args): return dbus_to_python(self.fw_direct.queryPassthrough(ipv, args)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getPassthroughs(self, ipv): return dbus_to_python(self.fw_direct.getPassthroughs(ipv)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllPassthroughs(self): return dbus_to_python(self.fw_direct.getAllPassthroughs()) # config class FirewallClientConfig(object): @handle_exceptions def __init__(self, bus): self.bus = bus self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH_CONFIG) self.fw_config = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') self._policies = FirewallClientConfigPolicies(self.bus) self._direct = FirewallClientConfigDirect(self.bus) # properties @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE_CONFIG, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE_CONFIG)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE_CONFIG, prop, value) # ipset @slip.dbus.polkit.enable_proxy @handle_exceptions def getIPSetNames(self): return dbus_to_python(self.fw_config.getIPSetNames()) @slip.dbus.polkit.enable_proxy @handle_exceptions def listIPSets(self): return dbus_to_python(self.fw_config.listIPSets()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIPSet(self, path): return FirewallClientConfigIPSet(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIPSetByName(self, name): path = dbus_to_python(self.fw_config.getIPSetByName(name)) return FirewallClientConfigIPSet(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def addIPSet(self, name, settings): if isinstance(settings, FirewallClientIPSetSettings): path = self.fw_config.addIPSet(name, tuple(settings.settings)) else: path = self.fw_config.addIPSet(name, tuple(settings)) return FirewallClientConfigIPSet(self.bus, path) # zone @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneNames(self): return dbus_to_python(self.fw_config.getZoneNames()) @slip.dbus.polkit.enable_proxy @handle_exceptions def listZones(self): return dbus_to_python(self.fw_config.listZones()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZone(self, path): return FirewallClientConfigZone(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneByName(self, name): path = dbus_to_python(self.fw_config.getZoneByName(name)) return FirewallClientConfigZone(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneOfInterface(self, iface): return dbus_to_python(self.fw_config.getZoneOfInterface(iface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneOfSource(self, source): return dbus_to_python(self.fw_config.getZoneOfSource(source)) @slip.dbus.polkit.enable_proxy @handle_exceptions def addZone(self, name, settings): if isinstance(settings, FirewallClientZoneSettings): path = self.fw_config.addZone(name, tuple(settings.settings)) else: path = self.fw_config.addZone(name, tuple(settings)) return FirewallClientConfigZone(self.bus, path) # service @slip.dbus.polkit.enable_proxy @handle_exceptions def getServiceNames(self): return dbus_to_python(self.fw_config.getServiceNames()) @slip.dbus.polkit.enable_proxy @handle_exceptions def listServices(self): return dbus_to_python(self.fw_config.listServices()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getService(self, path): return FirewallClientConfigService(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getServiceByName(self, name): path = dbus_to_python(self.fw_config.getServiceByName(name)) return FirewallClientConfigService(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def addService(self, name, settings): if isinstance(settings, FirewallClientServiceSettings): path = self.fw_config.addService(name, tuple(settings.settings)) else: path = self.fw_config.addService(name, tuple(settings)) return FirewallClientConfigService(self.bus, path) # icmptype @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpTypeNames(self): return dbus_to_python(self.fw_config.getIcmpTypeNames()) @slip.dbus.polkit.enable_proxy @handle_exceptions def listIcmpTypes(self): return dbus_to_python(self.fw_config.listIcmpTypes()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpType(self, path): return FirewallClientConfigIcmpType(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpTypeByName(self, name): path = dbus_to_python(self.fw_config.getIcmpTypeByName(name)) return FirewallClientConfigIcmpType(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpType(self, name, settings): if isinstance(settings, FirewallClientIcmpTypeSettings): path = self.fw_config.addIcmpType(name, tuple(settings.settings)) else: path = self.fw_config.addIcmpType(name, tuple(settings)) return FirewallClientConfigIcmpType(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def policies(self): return self._policies @slip.dbus.polkit.enable_proxy @handle_exceptions def direct(self): return self._direct # helper @slip.dbus.polkit.enable_proxy @handle_exceptions def getHelperNames(self): return dbus_to_python(self.fw_config.getHelperNames()) @slip.dbus.polkit.enable_proxy @handle_exceptions def listHelpers(self): return dbus_to_python(self.fw_config.listHelpers()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getHelper(self, path): return FirewallClientConfigHelper(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def getHelperByName(self, name): path = dbus_to_python(self.fw_config.getHelperByName(name)) return FirewallClientConfigHelper(self.bus, path) @slip.dbus.polkit.enable_proxy @handle_exceptions def addHelper(self, name, settings): if isinstance(settings, FirewallClientHelperSettings): path = self.fw_config.addHelper(name, tuple(settings.settings)) else: path = self.fw_config.addHelper(name, tuple(settings)) return FirewallClientConfigHelper(self.bus, path) # class FirewallClient(object): @handle_exceptions def __init__(self, bus=None, wait=0, quiet=True): if not bus: dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) try: self.bus = slip.dbus.SystemBus() self.bus.default_timeout = None except Exception: try: self.bus = dbus.SystemBus() except dbus.exceptions.DBusException as e: raise FirewallError(errors.DBUS_ERROR, e.get_dbus_message()) else: print("Not using slip.dbus") else: self.bus = bus self.bus.add_signal_receiver( handler_function=self._dbus_connection_changed, signal_name="NameOwnerChanged", dbus_interface="org.freedesktop.DBus", arg0=config.dbus.DBUS_INTERFACE) for interface in [ config.dbus.DBUS_INTERFACE, config.dbus.DBUS_INTERFACE_IPSET, config.dbus.DBUS_INTERFACE_ZONE, config.dbus.DBUS_INTERFACE_DIRECT, config.dbus.DBUS_INTERFACE_POLICIES, config.dbus.DBUS_INTERFACE_CONFIG, config.dbus.DBUS_INTERFACE_CONFIG_IPSET, config.dbus.DBUS_INTERFACE_CONFIG_ZONE, config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, config.dbus.DBUS_INTERFACE_CONFIG_HELPER, config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, config.dbus.DBUS_INTERFACE_CONFIG_POLICIES ]: self.bus.add_signal_receiver(self._signal_receiver, dbus_interface=interface, interface_keyword='interface', member_keyword='member', path_keyword='path') # callbacks self._callback = { } self._callbacks = { # client callbacks "connection-changed": "connection-changed", "connection-established": "connection-established", "connection-lost": "connection-lost", # firewalld callbacks "log-denied-changed": "LogDeniedChanged", "default-zone-changed": "DefaultZoneChanged", "panic-mode-enabled": "PanicModeEnabled", "panic-mode-disabled": "PanicModeDisabled", "reloaded": "Reloaded", "service-added": "ServiceAdded", "service-removed": "ServiceRemoved", "port-added": "PortAdded", "port-removed": "PortRemoved", "source-port-added": "SourcePortAdded", "source-port-removed": "SourcePortRemoved", "protocol-added": "ProtocolAdded", "protocol-removed": "ProtocolRemoved", "masquerade-added": "MasqueradeAdded", "masquerade-removed": "MasqueradeRemoved", "forward-port-added": "ForwardPortAdded", "forward-port-removed": "ForwardPortRemoved", "icmp-block-added": "IcmpBlockAdded", "icmp-block-removed": "IcmpBlockRemoved", "icmp-block-inversion-added": "IcmpBlockInversionAdded", "icmp-block-inversion-removed": "IcmpBlockInversionRemoved", "richrule-added": "RichRuleAdded", "richrule-removed": "RichRuleRemoved", "interface-added": "InterfaceAdded", "interface-removed": "InterfaceRemoved", "zone-changed": "ZoneOfInterfaceChanged", # DEPRECATED, use zone-of-interface-changed instead "zone-of-interface-changed": "ZoneOfInterfaceChanged", "source-added": "SourceAdded", "source-removed": "SourceRemoved", "zone-of-source-changed": "ZoneOfSourceChanged", # ipset callbacks "ipset-entry-added": "EntryAdded", "ipset-entry-removed": "EntryRemoved", # direct callbacks "direct:chain-added": "ChainAdded", "direct:chain-removed": "ChainRemoved", "direct:rule-added": "RuleAdded", "direct:rule-removed": "RuleRemoved", "direct:passthrough-added": "PassthroughAdded", "direct:passthrough-removed": "PassthroughRemoved", "config:direct:updated": "config:direct:Updated", # policy callbacks "lockdown-enabled": "LockdownEnabled", "lockdown-disabled": "LockdownDisabled", "lockdown-whitelist-command-added": "LockdownWhitelistCommandAdded", "lockdown-whitelist-command-removed": "LockdownWhitelistCommandRemoved", "lockdown-whitelist-context-added": "LockdownWhitelistContextAdded", "lockdown-whitelist-context-removed": "LockdownWhitelistContextRemoved", "lockdown-whitelist-uid-added": "LockdownWhitelistUidAdded", "lockdown-whitelist-uid-removed": "LockdownWhitelistUidRemoved", "lockdown-whitelist-user-added": "LockdownWhitelistUserAdded", "lockdown-whitelist-user-removed": "LockdownWhitelistUserRemoved", # firewalld.config callbacks "config:policies:lockdown-whitelist-updated": "config:policies:LockdownWhitelistUpdated", "config:ipset-added": "config:IPSetAdded", "config:ipset-updated": "config:IPSetUpdated", "config:ipset-removed": "config:IPSetRemoved", "config:ipset-renamed": "config:IPSetRenamed", "config:zone-added": "config:ZoneAdded", "config:zone-updated": "config:ZoneUpdated", "config:zone-removed": "config:ZoneRemoved", "config:zone-renamed": "config:ZoneRenamed", "config:service-added": "config:ServiceAdded", "config:service-updated": "config:ServiceUpdated", "config:service-removed": "config:ServiceRemoved", "config:service-renamed": "config:ServiceRenamed", "config:icmptype-added": "config:IcmpTypeAdded", "config:icmptype-updated": "config:IcmpTypeUpdated", "config:icmptype-removed": "config:IcmpTypeRemoved", "config:icmptype-renamed": "config:IcmpTypeRenamed", "config:helper-added": "config:HelperAdded", "config:helper-updated": "config:HelperUpdated", "config:helper-removed": "config:HelperRemoved", "config:helper-renamed": "config:HelperRenamed", } # initialize variables used for connection self._init_vars() self.quiet = quiet if wait > 0: # connect in one second GLib.timeout_add_seconds(wait, self._connection_established) else: self._connection_established() @handle_exceptions def _init_vars(self): self.fw = None self.fw_ipset = None self.fw_zone = None self.fw_helper = None self.fw_direct = None self.fw_properties = None self._config = None self.connected = False @handle_exceptions def getExceptionHandler(self): return exception_handler @handle_exceptions def setExceptionHandler(self, handler): global exception_handler exception_handler = handler @handle_exceptions def getNotAuthorizedLoop(self): return not_authorized_loop @handle_exceptions def setNotAuthorizedLoop(self, enable): global not_authorized_loop not_authorized_loop = enable @handle_exceptions def connect(self, name, callback, *args): if name in self._callbacks: self._callback[self._callbacks[name]] = (callback, args) else: raise ValueError("Unknown callback name '%s'" % name) @handle_exceptions def _dbus_connection_changed(self, name, old_owner, new_owner): if name != config.dbus.DBUS_INTERFACE: return if new_owner: # connection established self._connection_established() else: # connection lost self._connection_lost() @handle_exceptions def _connection_established(self): try: self.dbus_obj = self.bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH) self.fw = dbus.Interface(self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE) self.fw_ipset = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_IPSET) self.fw_zone = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_ZONE) self.fw_direct = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_DIRECT) self.fw_policies = dbus.Interface( self.dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_POLICIES) self.fw_properties = dbus.Interface( self.dbus_obj, dbus_interface='org.freedesktop.DBus.Properties') except dbus.exceptions.DBusException as e: # ignore dbus errors if not self.quiet: print ("DBusException", e.get_dbus_message()) return except Exception as e: if not self.quiet: print ("Exception", e) return self._config = FirewallClientConfig(self.bus) self.connected = True self._signal_receiver(member="connection-established", interface=config.dbus.DBUS_INTERFACE) self._signal_receiver(member="connection-changed", interface=config.dbus.DBUS_INTERFACE) @handle_exceptions def _connection_lost(self): self._init_vars() self._signal_receiver(member="connection-lost", interface=config.dbus.DBUS_INTERFACE) self._signal_receiver(member="connection-changed", interface=config.dbus.DBUS_INTERFACE) @handle_exceptions def _signal_receiver(self, *args, **kwargs): if "member" not in kwargs or "interface" not in kwargs: return signal = kwargs["member"] interface = kwargs["interface"] # config signals need special treatment # pimp signal name if interface.startswith(config.dbus.DBUS_INTERFACE_CONFIG_ZONE): signal = "config:Zone" + signal elif interface.startswith(config.dbus.DBUS_INTERFACE_CONFIG_IPSET): signal = "config:IPSet" + signal elif interface.startswith(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE): signal = "config:Service" + signal elif interface.startswith(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE): signal = "config:IcmpType" + signal elif interface.startswith(config.dbus.DBUS_INTERFACE_CONFIG_HELPER): signal = "config:Helper" + signal elif interface == config.dbus.DBUS_INTERFACE_CONFIG: signal = "config:" + signal elif interface == config.dbus.DBUS_INTERFACE_CONFIG_POLICIES: signal = "config:policies:" + signal elif interface == config.dbus.DBUS_INTERFACE_CONFIG_DIRECT: signal = "config:direct:" + signal cb = None for callback in self._callbacks: if self._callbacks[callback] == signal and \ self._callbacks[callback] in self._callback: cb = self._callback[self._callbacks[callback]] if cb is None: return # call back with args converted to python types ... cb_args = [ dbus_to_python(arg) for arg in args ] try: if cb[1]: # add call data cb_args.extend(cb[1]) # call back cb[0](*cb_args) except Exception as msg: print(msg) @slip.dbus.polkit.enable_proxy @handle_exceptions def config(self): return self._config @slip.dbus.polkit.enable_proxy @handle_exceptions def reload(self): self.fw.reload() @slip.dbus.polkit.enable_proxy @handle_exceptions def complete_reload(self): self.fw.completeReload() @slip.dbus.polkit.enable_proxy @handle_exceptions def runtimeToPermanent(self): self.fw.runtimeToPermanent() @slip.dbus.polkit.enable_proxy @handle_exceptions def get_property(self, prop): return dbus_to_python(self.fw_properties.Get( config.dbus.DBUS_INTERFACE, prop)) @slip.dbus.polkit.enable_proxy @handle_exceptions def get_properties(self): return dbus_to_python(self.fw_properties.GetAll( config.dbus.DBUS_INTERFACE)) @slip.dbus.polkit.enable_proxy @handle_exceptions def set_property(self, prop, value): self.fw_properties.Set(config.dbus.DBUS_INTERFACE, prop, value) # panic mode @slip.dbus.polkit.enable_proxy @handle_exceptions def enablePanicMode(self): self.fw.enablePanicMode() @slip.dbus.polkit.enable_proxy @handle_exceptions def disablePanicMode(self): self.fw.disablePanicMode() @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPanicMode(self): return dbus_to_python(self.fw.queryPanicMode()) # list functions @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneSettings(self, zone): return FirewallClientZoneSettings(list(dbus_to_python(\ self.fw.getZoneSettings(zone)))) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIPSets(self): return dbus_to_python(self.fw_ipset.getIPSets()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIPSetSettings(self, ipset): return FirewallClientIPSetSettings(list(dbus_to_python(\ self.fw_ipset.getIPSetSettings(ipset)))) @slip.dbus.polkit.enable_proxy @handle_exceptions def addEntry(self, ipset, entry): self.fw_ipset.addEntry(ipset, entry) @slip.dbus.polkit.enable_proxy @handle_exceptions def getEntries(self, ipset): return self.fw_ipset.getEntries(ipset) @slip.dbus.polkit.enable_proxy @handle_exceptions def setEntries(self, ipset, entries): return self.fw_ipset.setEntries(ipset, entries) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeEntry(self, ipset, entry): self.fw_ipset.removeEntry(ipset, entry) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryEntry(self, ipset, entry): return dbus_to_python(self.fw_ipset.queryEntry(ipset, entry)) @slip.dbus.polkit.enable_proxy @handle_exceptions def listServices(self): return dbus_to_python(self.fw.listServices()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getServiceSettings(self, service): return FirewallClientServiceSettings(list(dbus_to_python(\ self.fw.getServiceSettings(service)))) @slip.dbus.polkit.enable_proxy @handle_exceptions def listIcmpTypes(self): return dbus_to_python(self.fw.listIcmpTypes()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpTypeSettings(self, icmptype): return FirewallClientIcmpTypeSettings(list(dbus_to_python(\ self.fw.getIcmpTypeSettings(icmptype)))) @slip.dbus.polkit.enable_proxy @handle_exceptions def getHelpers(self): return dbus_to_python(self.fw.getHelpers()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getHelperSettings(self, helper): return FirewallClientHelperSettings(list(dbus_to_python(\ self.fw.getHelperSettings(helper)))) # automatic helper setting @slip.dbus.polkit.enable_proxy @handle_exceptions def getAutomaticHelpers(self): return dbus_to_python(self.fw.getAutomaticHelpers()) @slip.dbus.polkit.enable_proxy @handle_exceptions def setAutomaticHelpers(self, value): self.fw.setAutomaticHelpers(value) # log denied @slip.dbus.polkit.enable_proxy @handle_exceptions def getLogDenied(self): return dbus_to_python(self.fw.getLogDenied()) @slip.dbus.polkit.enable_proxy @handle_exceptions def setLogDenied(self, value): self.fw.setLogDenied(value) # default zone @slip.dbus.polkit.enable_proxy @handle_exceptions def getDefaultZone(self): return dbus_to_python(self.fw.getDefaultZone()) @slip.dbus.polkit.enable_proxy @handle_exceptions def setDefaultZone(self, zone): self.fw.setDefaultZone(zone) # zone @slip.dbus.polkit.enable_proxy @handle_exceptions def getZones(self): return dbus_to_python(self.fw_zone.getZones()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getActiveZones(self): return dbus_to_python(self.fw_zone.getActiveZones()) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneOfInterface(self, interface): return dbus_to_python(self.fw_zone.getZoneOfInterface(interface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getZoneOfSource(self, source): return dbus_to_python(self.fw_zone.getZoneOfSource(source)) @slip.dbus.polkit.enable_proxy @handle_exceptions def isImmutable(self, zone): return dbus_to_python(self.fw_zone.isImmutable(zone)) # interfaces @slip.dbus.polkit.enable_proxy @handle_exceptions def addInterface(self, zone, interface): return dbus_to_python(self.fw_zone.addInterface(zone, interface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def changeZone(self, zone, interface): # DEPRECATED return dbus_to_python(self.fw_zone.changeZone(zone, interface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def changeZoneOfInterface(self, zone, interface): return dbus_to_python(self.fw_zone.changeZoneOfInterface(zone, interface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getInterfaces(self, zone): return dbus_to_python(self.fw_zone.getInterfaces(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryInterface(self, zone, interface): return dbus_to_python(self.fw_zone.queryInterface(zone, interface)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeInterface(self, zone, interface): return dbus_to_python(self.fw_zone.removeInterface(zone, interface)) # sources @slip.dbus.polkit.enable_proxy @handle_exceptions def addSource(self, zone, source): return dbus_to_python(self.fw_zone.addSource(zone, source)) @slip.dbus.polkit.enable_proxy @handle_exceptions def changeZoneOfSource(self, zone, source): return dbus_to_python(self.fw_zone.changeZoneOfSource(zone, source)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSources(self, zone): return dbus_to_python(self.fw_zone.getSources(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def querySource(self, zone, source): return dbus_to_python(self.fw_zone.querySource(zone, source)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeSource(self, zone, source): return dbus_to_python(self.fw_zone.removeSource(zone, source)) # rich rules @slip.dbus.polkit.enable_proxy @handle_exceptions def addRichRule(self, zone, rule, timeout=0): return dbus_to_python(self.fw_zone.addRichRule(zone, rule, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getRichRules(self, zone): return dbus_to_python(self.fw_zone.getRichRules(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryRichRule(self, zone, rule): return dbus_to_python(self.fw_zone.queryRichRule(zone, rule)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRichRule(self, zone, rule): return dbus_to_python(self.fw_zone.removeRichRule(zone, rule)) # services @slip.dbus.polkit.enable_proxy @handle_exceptions def addService(self, zone, service, timeout=0): return dbus_to_python(self.fw_zone.addService(zone, service, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getServices(self, zone): return dbus_to_python(self.fw_zone.getServices(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryService(self, zone, service): return dbus_to_python(self.fw_zone.queryService(zone, service)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeService(self, zone, service): return dbus_to_python(self.fw_zone.removeService(zone, service)) # ports @slip.dbus.polkit.enable_proxy @handle_exceptions def addPort(self, zone, port, protocol, timeout=0): return dbus_to_python(self.fw_zone.addPort(zone, port, protocol, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getPorts(self, zone): return dbus_to_python(self.fw_zone.getPorts(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPort(self, zone, port, protocol): return dbus_to_python(self.fw_zone.queryPort(zone, port, protocol)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePort(self, zone, port, protocol): return dbus_to_python(self.fw_zone.removePort(zone, port, protocol)) # protocols @slip.dbus.polkit.enable_proxy @handle_exceptions def addProtocol(self, zone, protocol, timeout=0): return dbus_to_python(self.fw_zone.addProtocol(zone, protocol, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getProtocols(self, zone): return dbus_to_python(self.fw_zone.getProtocols(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryProtocol(self, zone, protocol): return dbus_to_python(self.fw_zone.queryProtocol(zone, protocol)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeProtocol(self, zone, protocol): return dbus_to_python(self.fw_zone.removeProtocol(zone, protocol)) # masquerade @slip.dbus.polkit.enable_proxy @handle_exceptions def addMasquerade(self, zone, timeout=0): return dbus_to_python(self.fw_zone.addMasquerade(zone, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryMasquerade(self, zone): return dbus_to_python(self.fw_zone.queryMasquerade(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeMasquerade(self, zone): return dbus_to_python(self.fw_zone.removeMasquerade(zone)) # forward ports @slip.dbus.polkit.enable_proxy @handle_exceptions def addForwardPort(self, zone, port, protocol, toport, toaddr, timeout=0): if toport is None: toport = "" if toaddr is None: toaddr = "" return dbus_to_python(self.fw_zone.addForwardPort(zone, port, protocol, toport, toaddr, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getForwardPorts(self, zone): return dbus_to_python(self.fw_zone.getForwardPorts(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryForwardPort(self, zone, port, protocol, toport, toaddr): if toport is None: toport = "" if toaddr is None: toaddr = "" return dbus_to_python(self.fw_zone.queryForwardPort(zone, port, protocol, toport, toaddr)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeForwardPort(self, zone, port, protocol, toport, toaddr): if toport is None: toport = "" if toaddr is None: toaddr = "" return dbus_to_python(self.fw_zone.removeForwardPort(zone, port, protocol, toport, toaddr)) # source ports @slip.dbus.polkit.enable_proxy @handle_exceptions def addSourcePort(self, zone, port, protocol, timeout=0): return dbus_to_python(self.fw_zone.addSourcePort(zone, port, protocol, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getSourcePorts(self, zone): return dbus_to_python(self.fw_zone.getSourcePorts(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def querySourcePort(self, zone, port, protocol): return dbus_to_python(self.fw_zone.querySourcePort(zone, port, protocol)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeSourcePort(self, zone, port, protocol): return dbus_to_python(self.fw_zone.removeSourcePort(zone, port, protocol)) # icmpblock @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpBlock(self, zone, icmp, timeout=0): return dbus_to_python(self.fw_zone.addIcmpBlock(zone, icmp, timeout)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getIcmpBlocks(self, zone): return dbus_to_python(self.fw_zone.getIcmpBlocks(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryIcmpBlock(self, zone, icmp): return dbus_to_python(self.fw_zone.queryIcmpBlock(zone, icmp)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeIcmpBlock(self, zone, icmp): return dbus_to_python(self.fw_zone.removeIcmpBlock(zone, icmp)) # icmp block inversion @slip.dbus.polkit.enable_proxy @handle_exceptions def addIcmpBlockInversion(self, zone): return dbus_to_python(self.fw_zone.addIcmpBlockInversion(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryIcmpBlockInversion(self, zone): return dbus_to_python(self.fw_zone.queryIcmpBlockInversion(zone)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeIcmpBlockInversion(self, zone): return dbus_to_python(self.fw_zone.removeIcmpBlockInversion(zone)) # direct chain @slip.dbus.polkit.enable_proxy @handle_exceptions def addChain(self, ipv, table, chain): self.fw_direct.addChain(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeChain(self, ipv, table, chain): self.fw_direct.removeChain(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryChain(self, ipv, table, chain): return dbus_to_python(self.fw_direct.queryChain(ipv, table, chain)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getChains(self, ipv, table): return dbus_to_python(self.fw_direct.getChains(ipv, table)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllChains(self): return dbus_to_python(self.fw_direct.getAllChains()) # direct rule @slip.dbus.polkit.enable_proxy @handle_exceptions def addRule(self, ipv, table, chain, priority, args): self.fw_direct.addRule(ipv, table, chain, priority, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRule(self, ipv, table, chain, priority, args): self.fw_direct.removeRule(ipv, table, chain, priority, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeRules(self, ipv, table, chain): self.fw_direct.removeRules(ipv, table, chain) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryRule(self, ipv, table, chain, priority, args): return dbus_to_python(self.fw_direct.queryRule(ipv, table, chain, priority, args)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getRules(self, ipv, table, chain): return dbus_to_python(self.fw_direct.getRules(ipv, table, chain)) @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllRules(self): return dbus_to_python(self.fw_direct.getAllRules()) # direct passthrough @slip.dbus.polkit.enable_proxy @handle_exceptions def passthrough(self, ipv, args): return dbus_to_python(self.fw_direct.passthrough(ipv, args)) # tracked passthrough @slip.dbus.polkit.enable_proxy @handle_exceptions def getAllPassthroughs(self): return dbus_to_python(self.fw_direct.getAllPassthroughs()) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeAllPassthroughs(self): self.fw_direct.removeAllPassthroughs() @slip.dbus.polkit.enable_proxy @handle_exceptions def getPassthroughs(self, ipv): return dbus_to_python(self.fw_direct.getPassthroughs(ipv)) @slip.dbus.polkit.enable_proxy @handle_exceptions def addPassthrough(self, ipv, args): self.fw_direct.addPassthrough(ipv, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def removePassthrough(self, ipv, args): self.fw_direct.removePassthrough(ipv, args) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryPassthrough(self, ipv, args): return dbus_to_python(self.fw_direct.queryPassthrough(ipv, args)) # lockdown @slip.dbus.polkit.enable_proxy @handle_exceptions def enableLockdown(self): self.fw_policies.enableLockdown() @slip.dbus.polkit.enable_proxy @handle_exceptions def disableLockdown(self): self.fw_policies.disableLockdown() @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdown(self): return dbus_to_python(self.fw_policies.queryLockdown()) # policies # lockdown white list commands @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistCommand(self, command): self.fw_policies.addLockdownWhitelistCommand(command) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistCommands(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistCommands()) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistCommand(self, command): return dbus_to_python(self.fw_policies.queryLockdownWhitelistCommand(command)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistCommand(self, command): self.fw_policies.removeLockdownWhitelistCommand(command) # lockdown white list contexts @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistContext(self, context): self.fw_policies.addLockdownWhitelistContext(context) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistContexts(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistContexts()) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistContext(self, context): return dbus_to_python(self.fw_policies.queryLockdownWhitelistContext(context)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistContext(self, context): self.fw_policies.removeLockdownWhitelistContext(context) # lockdown white list uids @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistUid(self, uid): self.fw_policies.addLockdownWhitelistUid(uid) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistUids(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistUids()) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistUid(self, uid): return dbus_to_python(self.fw_policies.queryLockdownWhitelistUid(uid)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistUid(self, uid): self.fw_policies.removeLockdownWhitelistUid(uid) # lockdown white list users @slip.dbus.polkit.enable_proxy @handle_exceptions def addLockdownWhitelistUser(self, user): self.fw_policies.addLockdownWhitelistUser(user) @slip.dbus.polkit.enable_proxy @handle_exceptions def getLockdownWhitelistUsers(self): return dbus_to_python(self.fw_policies.getLockdownWhitelistUsers()) @slip.dbus.polkit.enable_proxy @handle_exceptions def queryLockdownWhitelistUser(self, user): return dbus_to_python(self.fw_policies.queryLockdownWhitelistUser(user)) @slip.dbus.polkit.enable_proxy @handle_exceptions def removeLockdownWhitelistUser(self, user): self.fw_policies.removeLockdownWhitelistUser(user) @slip.dbus.polkit.enable_proxy @handle_exceptions def authorizeAll(self): """ Authorize once for all polkit actions. """ self.fw.authorizeAll() firewalld-0.4.4.6/src/firewall/command.py000066400000000000000000000534001320241217000202120ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """FirewallCommand class for command line client simplification""" __all__ = [ "FirewallCommand" ] import sys from firewall import errors from firewall.errors import FirewallError from dbus.exceptions import DBusException from firewall.functions import checkIPnMask, checkIP6nMask, check_mac, \ check_port, check_single_address class FirewallCommand(object): def __init__(self, quiet=False, verbose=False): self.quiet = quiet self.verbose = verbose self.__use_exception_handler = True self.fw = None def set_fw(self, fw): self.fw = fw def set_quiet(self, flag): self.quiet = flag def get_quiet(self): return self.quiet def set_verbose(self, flag): self.verbose = flag def get_verbose(self): return self.verbose def print_msg(self, msg=None): if msg is not None and not self.quiet: sys.stdout.write(msg + "\n") def print_error_msg(self, msg=None): if msg is not None and not self.quiet: sys.stderr.write(msg + "\n") def print_warning(self, msg=None): FAIL = '\033[91m' END = '\033[00m' if sys.stderr.isatty(): msg = FAIL + msg + END self.print_error_msg(msg) def print_and_exit(self, msg=None, exit_code=0): #OK = '\033[92m' #END = '\033[00m' if exit_code > 1: self.print_warning(msg) else: #if sys.stdout.isatty(): # msg = OK + msg + END self.print_msg(msg) sys.exit(exit_code) def fail(self, msg=None): self.print_and_exit(msg, 2) def print_if_verbose(self, msg=None): if msg is not None and self.verbose: sys.stdout.write(msg + "\n") def __cmd_sequence(self, cmd_type, option, action_method, query_method, # pylint: disable=W0613, R0913, R0914 parse_method, message, start_args=None, end_args=None, # pylint: disable=W0613 no_exit=False): if self.fw is not None: self.fw.authorizeAll() items = [ ] _errors = 0 _error_codes = [ ] for item in option: if parse_method is not None: try: item = parse_method(item) except Exception as msg: code = FirewallError.get_code(str(msg)) if len(option) > 1: self.print_warning("Warning: %s" % msg) else: self.print_and_exit("Error: %s" % msg, code) if code not in _error_codes: _error_codes.append(code) _errors += 1 continue items.append(item) for item in items: call_item = [ ] if start_args is not None: call_item += start_args if not isinstance(item, list) and not isinstance(item, tuple): call_item.append(item) else: call_item += item if end_args is not None: call_item += end_args self.deactivate_exception_handler() try: action_method(*call_item) except (DBusException, Exception) as msg: if isinstance(msg, DBusException): self.fail_if_not_authorized(msg.get_dbus_name()) msg = msg.get_dbus_message() else: msg = str(msg) code = FirewallError.get_code(msg) if code in [ errors.ALREADY_ENABLED, errors.NOT_ENABLED, errors.ZONE_ALREADY_SET, errors.ALREADY_SET ]: code = 0 if len(option) > 1: self.print_warning("Warning: %s" % msg) elif code == 0: self.print_warning("Warning: %s" % msg) return else: self.print_and_exit("Error: %s" % msg, code) if code not in _error_codes: _error_codes.append(code) _errors += 1 self.activate_exception_handler() if not no_exit: if len(option) > _errors or 0 in _error_codes: # There have been more options than errors or there # was at least one error code 0, return. return elif len(_error_codes) == 1: # Exactly one error code, use it. sys.exit(_error_codes[0]) elif len(_error_codes) > 1: # There is more than error, exit using # UNKNOWN_ERROR. This could happen within sequences # where parsing failed with different errors like # INVALID_PORT and INVALID_PROTOCOL. sys.exit(errors.UNKNOWN_ERROR) def add_sequence(self, option, action_method, query_method, parse_method, # pylint: disable=R0913 message, no_exit=False): self.__cmd_sequence("add", option, action_method, query_method, parse_method, message, no_exit=no_exit) def x_add_sequence(self, x, option, action_method, query_method, # pylint: disable=R0913 parse_method, message, no_exit=False): self.__cmd_sequence("add", option, action_method, query_method, parse_method, message, start_args=[x], no_exit=no_exit) def zone_add_timeout_sequence(self, zone, option, action_method, # pylint: disable=R0913 query_method, parse_method, message, timeout, no_exit=False): self.__cmd_sequence("add", option, action_method, query_method, parse_method, message, start_args=[zone], end_args=[timeout], no_exit=no_exit) def remove_sequence(self, option, action_method, query_method, # pylint: disable=R0913 parse_method, message, no_exit=False): self.__cmd_sequence("remove", option, action_method, query_method, parse_method, message, no_exit=no_exit) def x_remove_sequence(self, x, option, action_method, query_method, # pylint: disable=R0913 parse_method, message, no_exit=False): self.__cmd_sequence("remove", option, action_method, query_method, parse_method, message, start_args=[x], no_exit=no_exit) def __query_sequence(self, option, query_method, parse_method, message, # pylint: disable=R0913 start_args=None, no_exit=False): items = [ ] for item in option: if parse_method is not None: try: item = parse_method(item) except Exception as msg: if len(option) > 1: self.print_warning("Warning: %s" % msg) continue else: code = FirewallError.get_code(str(msg)) self.print_and_exit("Error: %s" % msg, code) items.append(item) for item in items: call_item = [ ] if start_args is not None: call_item += start_args if not isinstance(item, list) and not isinstance(item, tuple): call_item.append(item) else: call_item += item self.deactivate_exception_handler() try: res = query_method(*call_item) except DBusException as msg: self.fail_if_not_authorized(msg.get_dbus_name()) code = FirewallError.get_code(msg.get_dbus_message()) if len(option) > 1: self.print_warning("Warning: %s" % msg.get_dbus_message()) continue else: self.print_and_exit("Error: %s" % msg.get_dbus_message(), code) except Exception as msg: code = FirewallError.get_code(str(msg)) if len(option) > 1: self.print_warning("Warning: %s" % msg) else: self.print_and_exit("Error: %s" % msg, code) self.activate_exception_handler() if len(option) > 1: self.print_msg("%s: %s" % (message % item, ("no", "yes")[res])) else: self.print_query_result(res) if not no_exit: sys.exit(0) def query_sequence(self, option, query_method, parse_method, message, # pylint: disable=R0913 no_exit=False): self.__query_sequence(option, query_method, parse_method, message, no_exit=no_exit) def x_query_sequence(self, x, option, query_method, parse_method, # pylint: disable=R0913 message, no_exit=False): self.__query_sequence(option, query_method, parse_method, message, start_args=[x], no_exit=no_exit) def parse_source(self, value): if not checkIPnMask(value) and not checkIP6nMask(value) \ and not check_mac(value) and not \ (value.startswith("ipset:") and len(value) > 6): raise FirewallError(errors.INVALID_ADDR, "'%s' is no valid IPv4, IPv6 or MAC address, nor an ipset" % value) return value def parse_port(self, value, separator="/"): try: (port, proto) = value.split(separator) except ValueError: raise FirewallError(errors.INVALID_PORT, "bad port (most likely " "missing protocol), correct syntax is " "portid[-portid]%sprotocol" % separator) if not check_port(port): raise FirewallError(errors.INVALID_PORT, port) if proto not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, "'%s' not in {'tcp'|'udp'|'sctp'|'dccp'}" % \ proto) return (port, proto) def parse_forward_port(self, value, compat=False): port = None protocol = None toport = None toaddr = None i = 0 while ("=" in value[i:]): opt = value[i:].split("=", 1)[0] i += len(opt) + 1 if "=" in value[i:]: val = value[i:].split(":", 1)[0] else: val = value[i:] i += len(val) + 1 if opt == "port": port = val elif opt == "proto": protocol = val elif opt == "toport": toport = val elif opt == "toaddr": toaddr = val elif opt == "if" and compat: # ignore if option in compat mode pass else: raise FirewallError(errors.INVALID_FORWARD, "invalid forward port arg '%s'" % (opt)) if not port: raise FirewallError(errors.INVALID_FORWARD, "missing port") if not protocol: raise FirewallError(errors.INVALID_FORWARD, "missing protocol") if not (toport or toaddr): raise FirewallError(errors.INVALID_FORWARD, "missing destination") if not check_port(port): raise FirewallError(errors.INVALID_PORT, port) if protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, "'%s' not in {'tcp'|'udp'|'sctp'|'dccp'}" % \ protocol) if toport and not check_port(toport): raise FirewallError(errors.INVALID_PORT, toport) if toaddr and not check_single_address("ipv4", toaddr): if compat or not check_single_address("ipv6", toaddr): raise FirewallError(errors.INVALID_ADDR, toaddr) return (port, protocol, toport, toaddr) def parse_ipset_option(self, value): args = value.split("=") if len(args) == 1: return (args[0], "") elif len(args) == 2: return args else: raise FirewallError(errors.INVALID_OPTION, "invalid ipset option '%s'" % (value)) def check_destination_ipv(self, value): ipvs = [ "ipv4", "ipv6", ] if value not in ipvs: raise FirewallError(errors.INVALID_IPV, "invalid argument: %s (choose from '%s')" % \ (value, "', '".join(ipvs))) return value def parse_service_destination(self, value): try: (ipv, destination) = value.split(":", 1) except ValueError: raise FirewallError(errors.INVALID_DESTINATION, "destination syntax is ipv:address[/mask]") return (self.check_destination_ipv(ipv), destination) def check_ipv(self, value): ipvs = [ "ipv4", "ipv6", "eb" ] if value not in ipvs: raise FirewallError(errors.INVALID_IPV, "invalid argument: %s (choose from '%s')" % \ (value, "', '".join(ipvs))) return value def check_helper_family(self, value): ipvs = [ "", "ipv4", "ipv6" ] if value not in ipvs: raise FirewallError(errors.INVALID_IPV, "invalid argument: %s (choose from '%s')" % \ (value, "', '".join(ipvs))) return value def check_module(self, value): if not value.startswith("nf_conntrack_"): raise FirewallError( errors.INVALID_MODULE, "'%s' does not start with 'nf_conntrack_'" % value) if len(value.replace("nf_conntrack_", "")) < 1: raise FirewallError(errors.INVALID_MODULE, "Module name '%s' too short" % value) return value def print_zone_info(self, zone, settings, default_zone=None): # pylint: disable=R0914 target = settings.getTarget() icmp_block_inversion = settings.getIcmpBlockInversion() interfaces = settings.getInterfaces() sources = settings.getSources() services = settings.getServices() ports = settings.getPorts() protocols = settings.getProtocols() masquerade = settings.getMasquerade() forward_ports = settings.getForwardPorts() source_ports = settings.getSourcePorts() icmp_blocks = settings.getIcmpBlocks() rules = settings.getRichRules() description = settings.getDescription() short_description = settings.getShort() attributes = [] if default_zone is not None: if zone == default_zone: attributes.append("default") if interfaces or sources: attributes.append("active") if attributes: zone = zone + " (%s)" % ", ".join(attributes) self.print_msg(zone) if self.verbose: self.print_msg(" summary: " + short_description) self.print_msg(" description: " + description) self.print_msg(" target: " + target) self.print_msg(" icmp-block-inversion: %s" % \ ("yes" if icmp_block_inversion else "no")) self.print_msg(" interfaces: " + " ".join(interfaces)) self.print_msg(" sources: " + " ".join(sources)) self.print_msg(" services: " + " ".join(services)) self.print_msg(" ports: " + " ".join(["%s/%s" % (port[0], port[1]) for port in ports])) self.print_msg(" protocols: " + " ".join(protocols)) self.print_msg(" masquerade: %s" % ("yes" if masquerade else "no")) self.print_msg(" forward-ports: " + "\n\t".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % \ (port, proto, toport, toaddr) for (port, proto, toport, toaddr) in \ forward_ports])) self.print_msg(" source-ports: " + " ".join(["%s/%s" % (port[0], port[1]) for port in source_ports])) self.print_msg(" icmp-blocks: " + " ".join(icmp_blocks)) self.print_msg(" rich rules: \n\t" + "\n\t".join(rules)) def print_service_info(self, service, settings): ports = settings.getPorts() protocols = settings.getProtocols() source_ports = settings.getSourcePorts() modules = settings.getModules() description = settings.getDescription() destinations = settings.getDestinations() short_description = settings.getShort() self.print_msg(service) if self.verbose: self.print_msg(" summary: " + short_description) self.print_msg(" description: " + description) self.print_msg(" ports: " + " ".join(["%s/%s" % (port[0], port[1]) for port in ports])) self.print_msg(" protocols: " + " ".join(protocols)) self.print_msg(" source-ports: " + " ".join(["%s/%s" % (port[0], port[1]) for port in source_ports])) self.print_msg(" modules: " + " ".join(modules)) self.print_msg(" destination: " + " ".join(["%s:%s" % (k, v) for k, v in destinations.items()])) def print_icmptype_info(self, icmptype, settings): destinations = settings.getDestinations() description = settings.getDescription() short_description = settings.getShort() if len(destinations) == 0: destinations = [ "ipv4", "ipv6" ] self.print_msg(icmptype) if self.verbose: self.print_msg(" summary: " + short_description) self.print_msg(" description: " + description) self.print_msg(" destination: " + " ".join(destinations)) def print_ipset_info(self, ipset, settings): ipset_type = settings.getType() options = settings.getOptions() entries = settings.getEntries() description = settings.getDescription() short_description = settings.getShort() self.print_msg(ipset) if self.verbose: self.print_msg(" summary: " + short_description) self.print_msg(" description: " + description) self.print_msg(" type: " + ipset_type) self.print_msg(" options: " + " ".join(["%s=%s" % (k, v) if v else k for k, v in options.items()])) self.print_msg(" entries: " + " ".join(entries)) def print_helper_info(self, helper, settings): ports = settings.getPorts() module = settings.getModule() family = settings.getFamily() description = settings.getDescription() short_description = settings.getShort() self.print_msg(helper) if self.verbose: self.print_msg(" summary: " + short_description) self.print_msg(" description: " + description) self.print_msg(" family: " + family) self.print_msg(" module: " + module) self.print_msg(" ports: " + " ".join(["%s/%s" % (port[0], port[1]) for port in ports])) def print_query_result(self, value): if value: self.print_and_exit("yes") else: self.print_and_exit("no", 1) def exception_handler(self, exception_message): if not self.__use_exception_handler: raise self.fail_if_not_authorized(exception_message) code = FirewallError.get_code(str(exception_message)) if code in [ errors.ALREADY_ENABLED, errors.NOT_ENABLED, errors.ZONE_ALREADY_SET, errors.ALREADY_SET ]: self.print_warning("Warning: %s" % exception_message) else: self.print_and_exit("Error: %s" % exception_message, code) def fail_if_not_authorized(self, exception_message): if "NotAuthorizedException" in exception_message: msg = """Authorization failed. Make sure polkit agent is running or run the application as superuser.""" self.print_and_exit(msg, errors.NOT_AUTHORIZED) def deactivate_exception_handler(self): self.__use_exception_handler = False def activate_exception_handler(self): self.__use_exception_handler = True def get_ipset_entries_from_file(self, filename): entries = [ ] entries_set = set() f = open(filename) for line in f: if not line: break line = line.strip() if len(line) < 1 or line[0] in ['#', ';']: continue if line not in entries_set: entries.append(line) entries_set.add(line) f.close() return entries firewalld-0.4.4.6/src/firewall/config/000077500000000000000000000000001320241217000174655ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/config/__init__.py.in000066400000000000000000000076261320241217000222160ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2016 Red Hat, Inc. # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from __future__ import absolute_import # translation import locale try: locale.setlocale(locale.LC_ALL, "") except locale.Error: import os os.environ['LC_ALL'] = 'C' locale.setlocale(locale.LC_ALL, "") DOMAIN = 'firewalld' import gettext gettext.install(domain=DOMAIN) from . import dbus # configuration DAEMON_NAME = 'firewalld' CONFIG_NAME = 'firewall-config' APPLET_NAME = 'firewall-applet' DATADIR = '/usr/share/' + DAEMON_NAME CONFIG_GLADE_NAME = CONFIG_NAME + '.glade' COPYRIGHT = '(C) 2010-2016 Red Hat, Inc.' VERSION = '@PACKAGE_VERSION@' AUTHORS = [ "Thomas Woerner ", "Jiri Popelka ", ] LICENSE = _( "This program is free software; you can redistribute it and/or modify " "it under the terms of the GNU General Public License as published by " "the Free Software Foundation; either version 2 of the License, or " "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful, " "but WITHOUT ANY WARRANTY; without even the implied warranty of " "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License " "along with this program. If not, see .") WEBSITE = 'http://www.firewalld.org' ETC_FIREWALLD = '/etc/firewalld' FIREWALLD_CONF = ETC_FIREWALLD + '/firewalld.conf' ETC_FIREWALLD_ZONES = ETC_FIREWALLD + '/zones' ETC_FIREWALLD_SERVICES = ETC_FIREWALLD + '/services' ETC_FIREWALLD_ICMPTYPES = ETC_FIREWALLD + '/icmptypes' ETC_FIREWALLD_IPSETS = ETC_FIREWALLD + '/ipsets' ETC_FIREWALLD_HELPERS = ETC_FIREWALLD + '/helpers' USR_LIB_FIREWALLD = '/usr/lib/firewalld' FIREWALLD_ZONES = USR_LIB_FIREWALLD + '/zones' FIREWALLD_SERVICES = USR_LIB_FIREWALLD + '/services' FIREWALLD_ICMPTYPES = USR_LIB_FIREWALLD + '/icmptypes' FIREWALLD_IPSETS = USR_LIB_FIREWALLD + '/ipsets' FIREWALLD_HELPERS = USR_LIB_FIREWALLD + '/helpers' FIREWALLD_LOGFILE = '/var/log/firewalld' FIREWALLD_PIDFILE = "/var/run/firewalld.pid" FIREWALLD_TEMPDIR = '/run/firewalld' FIREWALLD_DIRECT = ETC_FIREWALLD + '/direct.xml' LOCKDOWN_WHITELIST = ETC_FIREWALLD + '/lockdown-whitelist.xml' SYSCONFIGDIR = '/etc/sysconfig' IFCFGDIR = SYSCONFIGDIR + '/network-scripts' SYSCTL_CONFIG = '/etc/sysctl.conf' # commands used by backends COMMANDS = { "ipv4": "@IPTABLES@", "ipv4-restore": "@IPTABLES_RESTORE@", "ipv6": "@IP6TABLES@", "ipv6-restore": "@IP6TABLES_RESTORE@", "eb": "@EBTABLES@", "eb-restore": "@EBTABLES_RESTORE@", "ipset": "@IPSET@", "modinfo": "@MODINFO@", "modprobe": "@MODPROBE@", "rmmod": "@RMMOD@", } LOG_DENIED_VALUES = [ "all", "unicast", "broadcast", "multicast", "off" ] AUTOMATIC_HELPERS_VALUES = [ "yes", "no", "system" ] # fallbacks: will be overloaded by firewalld.conf FALLBACK_ZONE = "public" FALLBACK_MINIMAL_MARK = 100 FALLBACK_CLEANUP_ON_EXIT = True FALLBACK_LOCKDOWN = False FALLBACK_IPV6_RPFILTER = True FALLBACK_INDIVIDUAL_CALLS = False FALLBACK_LOG_DENIED = "off" FALLBACK_AUTOMATIC_HELPERS = "system" firewalld-0.4.4.6/src/firewall/config/dbus.py000066400000000000000000000045541320241217000210040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011,2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # DBUS_INTERFACE_VERSION = 1 DBUS_INTERFACE_REVISION = 12 DBUS_INTERFACE = "org.fedoraproject.FirewallD%d" % DBUS_INTERFACE_VERSION DBUS_INTERFACE_ZONE = DBUS_INTERFACE+".zone" DBUS_INTERFACE_DIRECT = DBUS_INTERFACE+".direct" DBUS_INTERFACE_POLICIES = DBUS_INTERFACE+".policies" DBUS_INTERFACE_IPSET = DBUS_INTERFACE+".ipset" DBUS_INTERFACE_CONFIG = DBUS_INTERFACE+".config" DBUS_INTERFACE_CONFIG_ZONE = DBUS_INTERFACE_CONFIG+".zone" DBUS_INTERFACE_CONFIG_SERVICE = DBUS_INTERFACE_CONFIG+".service" DBUS_INTERFACE_CONFIG_ICMPTYPE = DBUS_INTERFACE_CONFIG+".icmptype" DBUS_INTERFACE_CONFIG_POLICIES = DBUS_INTERFACE_CONFIG+".policies" DBUS_INTERFACE_CONFIG_DIRECT = DBUS_INTERFACE_CONFIG+".direct" DBUS_INTERFACE_CONFIG_IPSET = DBUS_INTERFACE_CONFIG+".ipset" DBUS_INTERFACE_CONFIG_HELPER = DBUS_INTERFACE_CONFIG+".helper" DBUS_PATH = "/org/fedoraproject/FirewallD%d" % DBUS_INTERFACE_VERSION DBUS_PATH_CONFIG = DBUS_PATH+"/config" DBUS_PATH_CONFIG_ICMPTYPE = DBUS_PATH+"/config/icmptype" DBUS_PATH_CONFIG_SERVICE = DBUS_PATH+"/config/service" DBUS_PATH_CONFIG_ZONE = DBUS_PATH+"/config/zone" DBUS_PATH_CONFIG_IPSET = DBUS_PATH+"/config/ipset" DBUS_PATH_CONFIG_HELPER = DBUS_PATH+"/config/helper" # Polkit actions _PK_ACTION = "org.fedoraproject.FirewallD%d" % DBUS_INTERFACE_VERSION PK_ACTION_POLICIES = _PK_ACTION+".policies" PK_ACTION_POLICIES_INFO = PK_ACTION_POLICIES+".info" PK_ACTION_CONFIG = _PK_ACTION+".config" PK_ACTION_CONFIG_INFO = PK_ACTION_CONFIG+".info" PK_ACTION_DIRECT = _PK_ACTION+".direct" PK_ACTION_DIRECT_INFO = PK_ACTION_DIRECT+".info" PK_ACTION_INFO = _PK_ACTION+".info" PK_ACTION_ALL = _PK_ACTION+".all" # implies all other actions firewalld-0.4.4.6/src/firewall/core/000077500000000000000000000000001320241217000171505ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/core/__init__.py000066400000000000000000000000001320241217000212470ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/core/base.py000066400000000000000000000036761320241217000204500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Base firewall settings""" DEFAULT_ZONE_TARGET = "{chain}_{zone}" ZONE_TARGETS = [ "ACCEPT", "%%REJECT%%", "DROP", DEFAULT_ZONE_TARGET, "default" ] SHORTCUTS = { "PREROUTING": "PRE", "POSTROUTING": "POST", "INPUT": "IN", "FORWARD_IN": "FWDI", "FORWARD_OUT": "FWDO", "OUTPUT": "OUT", } REJECT_TYPES = { "ipv4": [ "icmp-host-prohibited", "host-prohib", "icmp-net-unreachable", "net-unreach", "icmp-host-unreachable", "host-unreach", "icmp-port-unreachable", "port-unreach", "icmp-proto-unreachable", "proto-unreach", "icmp-net-prohibited", "net-prohib", "tcp-reset", "tcp-rst", "icmp-admin-prohibited", "admin-prohib" ], "ipv6": [ "icmp6-adm-prohibited", "adm-prohibited", "icmp6-no-route", "no-route", "icmp6-addr-unreachable", "addr-unreach", "icmp6-port-unreachable", "port-unreach", "tcp-reset" ] } # ipset types that can be used as a source in zones # The match-set option will be src or src,src according to the # dimension of the ipset. ZONE_SOURCE_IPSET_TYPES = [ "hash:ip", "hash:ip,port", "hash:ip,mark", "hash:net", "hash:net,port", "hash:net,iface", "hash:mac" ] firewalld-0.4.4.6/src/firewall/core/ebtables.py000066400000000000000000000203441320241217000213060ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "ebtables" ] import os.path, errno from firewall.core.prog import runProg from firewall.core.logger import log from firewall.functions import tempFile, readfile from firewall.config import COMMANDS import string PROC_IPxTABLE_NAMES = { } BUILT_IN_CHAINS = { "broute": [ "BROUTING" ], "nat": [ "PREROUTING", "POSTROUTING", "OUTPUT" ], "filter": [ "INPUT", "OUTPUT", "FORWARD" ], } DEFAULT_RULES = { } LOG_RULES = { } OUR_CHAINS = {} # chains created by firewalld for table in BUILT_IN_CHAINS.keys(): DEFAULT_RULES[table] = [ ] OUR_CHAINS[table] = set() for chain in BUILT_IN_CHAINS[table]: DEFAULT_RULES[table].append("-N %s_direct -P RETURN" % chain) DEFAULT_RULES[table].append("-I %s 1 -j %s_direct" % (chain, chain)) OUR_CHAINS[table].add("%s_direct" % chain) class ebtables(object): ipv = "eb" def __init__(self): self._command = COMMANDS[self.ipv] self._restore_command = COMMANDS["%s-restore" % self.ipv] self.ebtables_lock = "/var/lib/ebtables/lock" self.restore_noflush_option = self._detect_restore_noflush_option() self.concurrent_option = self._detect_concurrent_option() self.__remove_dangling_lock() self.fill_exists() def fill_exists(self): self.command_exists = os.path.exists(self._command) self.restore_command_exists = os.path.exists(self._restore_command) def __remove_dangling_lock(self): if os.path.exists(self.ebtables_lock): ret = runProg("pidof", [ "-s", "ebtables" ]) ret2 = runProg("pidof", [ "-s", "ebtables-restore" ]) if ret[1] == "" and ret2[1] == "": log.warning("Removing dangling ebtables lock file: '%s'" % self.ebtables_lock) try: os.unlink(self.ebtables_lock) except OSError as e: if e.errno != errno.ENOENT: raise def _detect_concurrent_option(self): # Do not change any rules, just try to use the --concurrent option # with -L concurrent_option = "" ret = runProg(self._command, ["--concurrent", "-L"]) if ret[0] == 0: concurrent_option = "--concurrent" # concurrent for ebtables lock return concurrent_option def _detect_restore_noflush_option(self): # Do not change any rules, just try to use the restore command # with --noflush rules = [ ] try: self.set_rules(rules, flush=False) except ValueError: return False return True def __run(self, args): # convert to string list _args = [ ] if self.concurrent_option and self.concurrent_option not in args: _args.append(self.concurrent_option) _args += ["%s" % item for item in args] log.debug2("%s: %s %s", self.__class__, self._command, " ".join(_args)) self.__remove_dangling_lock() (status, ret) = runProg(self._command, _args) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._command, " ".join(args), ret)) return ret def set_rules(self, rules, flush=False): temp_file = tempFile() table = "filter" table_rules = { } for _rule in rules: rule = _rule[:] # get table form rule for opt in [ "-t", "--table" ]: try: i = rule.index(opt) except ValueError: pass else: if len(rule) >= i+1: rule.pop(i) table = rule.pop(i) # we can not use joinArgs here, because it would use "'" instead # of '"' for the start and end of the string, this breaks # iptables-restore for i in range(len(rule)): for c in string.whitespace: if c in rule[i] and not (rule[i].startswith('"') and rule[i].endswith('"')): rule[i] = '"%s"' % rule[i] table_rules.setdefault(table, []).append(rule) for table in table_rules: temp_file.write("*%s\n" % table) for rule in table_rules[table]: temp_file.write(" ".join(rule) + "\n") temp_file.close() stat = os.stat(temp_file.name) log.debug2("%s: %s %s", self.__class__, self._restore_command, "%s: %d" % (temp_file.name, stat.st_size)) args = [ ] if not flush: args.append("--noflush") (status, ret) = runProg(self._restore_command, args, stdin=temp_file.name) if log.getDebugLogLevel() > 2: lines = readfile(temp_file.name) if lines is not None: i = 1 for line in lines: log.debug3("%8d: %s" % (i, line), nofmt=1, nl=0) if not line.endswith("\n"): log.debug3("", nofmt=1) i += 1 os.unlink(temp_file.name) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._restore_command, " ".join(args), ret)) return ret def set_rule(self, rule): return self.__run(rule) def append_rule(self, rule): self.__run([ "-A" ] + rule) def delete_rule(self, rule): self.__run([ "-D" ] + rule) def available_tables(self, table=None): ret = [] tables = [ table ] if table else BUILT_IN_CHAINS.keys() for table in tables: try: self.__run(["-t", table, "-L"]) ret.append(table) except ValueError: log.debug1("ebtables table '%s' does not exist." % table) return ret def used_tables(self): return list(BUILT_IN_CHAINS.keys()) def flush(self, transaction=None): tables = self.used_tables() for table in tables: # Flush firewall rules: -F # Delete firewall chains: -X # Set counter to zero: -Z msgs = { "-F": "flush", "-X": "delete chains", "-Z": "zero counters", } for flag in [ "-F", "-X", "-Z" ]: if transaction is not None: transaction.add_rule(self.ipv, [ "-t", table, flag ]) else: try: self.__run([ "-t", table, flag ]) except Exception as msg: log.error("Failed to %s %s: %s", msgs[flag], self.ipv, msg) def set_policy(self, policy, which="used", transaction=None): if which == "used": tables = self.used_tables() else: tables = list(BUILT_IN_CHAINS.keys()) for table in tables: for chain in BUILT_IN_CHAINS[table]: if transaction is not None: transaction.add_rule(self.ipv, [ "-t", table, "-P", chain, policy ]) else: try: self.__run([ "-t", table, "-P", chain, policy ]) except Exception as msg: log.error("Failed to set policy for %s: %s", self.ipv, msg) firewalld-0.4.4.6/src/firewall/core/fw.py000066400000000000000000001353431320241217000201470ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Firewall" ] import os.path, sys import copy import time from firewall import config from firewall import functions from firewall.core import ipXtables from firewall.core import ebtables from firewall.core import ipset from firewall.core import modules from firewall.core.fw_icmptype import FirewallIcmpType from firewall.core.fw_service import FirewallService from firewall.core.fw_zone import FirewallZone from firewall.core.fw_direct import FirewallDirect from firewall.core.fw_config import FirewallConfig from firewall.core.fw_policies import FirewallPolicies from firewall.core.fw_ipset import FirewallIPSet from firewall.core.fw_transaction import FirewallTransaction, reverse_rule from firewall.core.fw_helper import FirewallHelper from firewall.core.logger import log from firewall.core.io.firewalld_conf import firewalld_conf from firewall.core.io.direct import Direct from firewall.core.io.service import service_reader from firewall.core.io.icmptype import icmptype_reader from firewall.core.io.zone import zone_reader, Zone from firewall.core.io.ipset import ipset_reader from firewall.core.io.helper import helper_reader from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class Firewall # ############################################################################ class Firewall(object): def __init__(self): self._firewalld_conf = firewalld_conf(config.FIREWALLD_CONF) self.ip4tables_backend = ipXtables.ip4tables() self.ip4tables_enabled = True self.ip4tables_supported_icmp_types = [ ] self.ip6tables_backend = ipXtables.ip6tables() self.ip6tables_enabled = True self.ip6tables_supported_icmp_types = [ ] self.ebtables_backend = ebtables.ebtables() self.ebtables_enabled = True self.ipset_backend = ipset.ipset() self.ipset_enabled = True self.ipset_supported_types = [ ] self.available_tables = { } self.available_tables["ipv4"] = self.ip4tables_backend.available_tables() self.available_tables["ipv6"] = self.ip6tables_backend.available_tables() self.available_tables["eb"] = self.ebtables_backend.available_tables() self.modules_backend = modules.modules() self.icmptype = FirewallIcmpType(self) self.service = FirewallService(self) self.zone = FirewallZone(self) self.direct = FirewallDirect(self) self.config = FirewallConfig(self) self.policies = FirewallPolicies() self.ipset = FirewallIPSet(self) self.helper = FirewallHelper(self) self.__init_vars() def __repr__(self): return '%s(%r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r)' % \ (self.__class__, self.ip4tables_enabled, self.ip6tables_enabled, self.ebtables_enabled, self._state, self._panic, self._default_zone, self._module_refcount, self._marks, self._min_mark, self.cleanup_on_exit, self.ipv6_rpfilter_enabled, self.ipset_enabled, self._individual_calls, self._log_denied, self._automatic_helpers) def __init_vars(self): self._state = "INIT" self._panic = False self._default_zone = "" self._module_refcount = { } self._marks = [ ] # fallback settings will be overloaded by firewalld.conf self._min_mark = config.FALLBACK_MINIMAL_MARK self.cleanup_on_exit = config.FALLBACK_CLEANUP_ON_EXIT self.ipv6_rpfilter_enabled = config.FALLBACK_IPV6_RPFILTER self._individual_calls = config.FALLBACK_INDIVIDUAL_CALLS self._log_denied = config.FALLBACK_LOG_DENIED self._automatic_helpers = config.FALLBACK_AUTOMATIC_HELPERS self.nf_conntrack_helper_setting = 0 self.nf_conntrack_helpers = { } self.nf_nat_helpers = { } def individual_calls(self): return self._individual_calls def _check_tables(self): # check if iptables, ip6tables and ebtables are usable, else disable if self.ip4tables_enabled and \ "filter" not in self.get_available_tables("ipv4"): log.warning("iptables not usable, disabling IPv4 firewall.") self.ip4tables_enabled = False if self.ip6tables_enabled and \ "filter" not in self.get_available_tables("ipv6"): log.warning("ip6tables not usable, disabling IPv6 firewall.") self.ip6tables_enabled = False if self.ebtables_enabled and \ "filter" not in self.get_available_tables("eb"): log.warning("ebtables not usable, disabling ethernet bridge firewall.") self.ebtables_enabled = False # is there at least support for ipv4 or ipv6 if not self.ip4tables_enabled and not self.ip6tables_enabled: log.fatal("No IPv4 and IPv6 firewall.") sys.exit(1) def _start_check(self): try: self.ipset_backend.list() except ValueError: log.warning("ipset not usable, disabling ipset usage in firewall.") # ipset is not usable, no supported types self.ipset_enabled = False self.ipset_supported_types = [ ] else: # ipset is usable, get all supported types self.ipset_supported_types = self.ipset_backend.supported_types() self.ip4tables_backend.fill_exists() if not self.ip4tables_backend.restore_command_exists: if self.ip4tables_backend.command_exists: log.warning("iptables-restore is missing, using " "individual calls for IPv4 firewall.") else: log.warning("iptables-restore and iptables are missing, " "disabling IPv4 firewall.") self.ip4tables_enabled = False if self.ip4tables_enabled: self.ip4tables_supported_icmp_types = \ self.ip4tables_backend.supported_icmp_types() else: self.ip4tables_supported_icmp_types = [ ] self.ip6tables_backend.fill_exists() if not self.ip6tables_backend.restore_command_exists: if self.ip6tables_backend.command_exists: log.warning("ip6tables-restore is missing, using " "individual calls for IPv6 firewall.") else: log.warning("ip6tables-restore and ip6tables are missing, " "disabling IPv6 firewall.") self.ip6tables_enabled = False if self.ip6tables_enabled: self.ip6tables_supported_icmp_types = \ self.ip6tables_backend.supported_icmp_types() else: self.ip6tables_supported_icmp_types = [ ] self.ebtables_backend.fill_exists() if not self.ebtables_backend.restore_command_exists: if self.ebtables_backend.command_exists: log.warning("ebtables-restore is missing, using " "individual calls for bridge firewall.") else: log.warning("ebtables-restore and ebtables are missing, " "disabling bridge firewall.") self.ebtables_enabled = False if self.ebtables_enabled and not self._individual_calls and \ not self.ebtables_backend.restore_noflush_option: log.debug1("ebtables-restore is not supporting the --noflush " "option, will therefore not be used") if os.path.exists(config.COMMANDS["modinfo"]): self.nf_conntrack_helpers = functions.get_nf_conntrack_helpers() if len(self.nf_conntrack_helpers) > 0: log.debug1("Conntrack helpers supported by the kernel:") for key,values in self.nf_conntrack_helpers.items(): log.debug1(" %s: %s", key, ", ".join(values)) else: log.debug1("No conntrack helpers supported by the kernel.") self.nf_nat_helpers = functions.get_nf_nat_helpers() if len(self.nf_nat_helpers) > 0: log.debug1("NAT helpers supported by the kernel:") for key,values in self.nf_nat_helpers.items(): log.debug1(" %s: %s", key, ", ".join(values)) else: log.debug1("No NAT helpers supported by the kernel.") else: self.nf_conntrack_helpers = { } self.nf_nat_helpers = { } log.warning("modinfo command is missing, not able to detect conntrack helpers.") def _start(self, reload=False, complete_reload=False): # initialize firewall default_zone = config.FALLBACK_ZONE # load firewalld config log.debug1("Loading firewalld config file '%s'", config.FIREWALLD_CONF) try: self._firewalld_conf.read() except Exception as msg: log.warning(msg) log.warning("Using fallback firewalld configuration settings.") else: if self._firewalld_conf.get("DefaultZone"): default_zone = self._firewalld_conf.get("DefaultZone") if self._firewalld_conf.get("MinimalMark"): self._min_mark = int(self._firewalld_conf.get("MinimalMark")) if self._firewalld_conf.get("CleanupOnExit"): value = self._firewalld_conf.get("CleanupOnExit") if value is not None and value.lower() in [ "no", "false" ]: self.cleanup_on_exit = False if self._firewalld_conf.get("Lockdown"): value = self._firewalld_conf.get("Lockdown") if value is not None and value.lower() in [ "yes", "true" ]: log.debug1("Lockdown is enabled") try: self.policies.enable_lockdown() except FirewallError: # already enabled, this is probably reload pass if self._firewalld_conf.get("IPv6_rpfilter"): value = self._firewalld_conf.get("IPv6_rpfilter") if value is not None: if value.lower() in [ "no", "false" ]: self.ipv6_rpfilter_enabled = False if value.lower() in [ "yes", "true" ]: self.ipv6_rpfilter_enabled = True if self.ipv6_rpfilter_enabled: log.debug1("IPv6 rpfilter is enabled") else: log.debug1("IPV6 rpfilter is disabled") if self._firewalld_conf.get("IndividualCalls"): value = self._firewalld_conf.get("IndividualCalls") if value is not None and value.lower() in [ "yes", "true" ]: log.debug1("IndividualCalls is enabled") self._individual_calls = True if self._firewalld_conf.get("LogDenied"): value = self._firewalld_conf.get("LogDenied") if value is None or value.lower() == "no": self._log_denied = "off" else: self._log_denied = value.lower() log.debug1("LogDenied is set to '%s'", self._log_denied) if self._firewalld_conf.get("AutomaticHelpers"): value = self._firewalld_conf.get("AutomaticHelpers") if value is not None: if value.lower() in [ "no", "false" ]: self._automatic_helpers = "no" elif value.lower() in [ "yes", "true" ]: self._automatic_helpers = "yes" else: self._automatic_helpers = value.lower() log.debug1("AutomaticHelpers is set to '%s'", self._automatic_helpers) self.config.set_firewalld_conf(copy.deepcopy(self._firewalld_conf)) self._start_check() # load lockdown whitelist log.debug1("Loading lockdown whitelist") try: self.policies.lockdown_whitelist.read() except Exception as msg: if self.policies.query_lockdown(): log.error("Failed to load lockdown whitelist '%s': %s", self.policies.lockdown_whitelist.filename, msg) else: log.debug1("Failed to load lockdown whitelist '%s': %s", self.policies.lockdown_whitelist.filename, msg) # copy policies to config interface self.config.set_policies(copy.deepcopy(self.policies)) # load ipset files self._loader(config.FIREWALLD_IPSETS, "ipset") self._loader(config.ETC_FIREWALLD_IPSETS, "ipset") # load icmptype files self._loader(config.FIREWALLD_ICMPTYPES, "icmptype") self._loader(config.ETC_FIREWALLD_ICMPTYPES, "icmptype") if len(self.icmptype.get_icmptypes()) == 0: log.error("No icmptypes found.") # load helper files self._loader(config.FIREWALLD_HELPERS, "helper") self._loader(config.ETC_FIREWALLD_HELPERS, "helper") # load service files self._loader(config.FIREWALLD_SERVICES, "service") self._loader(config.ETC_FIREWALLD_SERVICES, "service") if len(self.service.get_services()) == 0: log.error("No services found.") # load zone files self._loader(config.FIREWALLD_ZONES, "zone") self._loader(config.ETC_FIREWALLD_ZONES, "zone") if len(self.zone.get_zones()) == 0: log.fatal("No zones found.") sys.exit(1) # check minimum required zones error = False for z in [ "block", "drop", "trusted" ]: if z not in self.zone.get_zones(): log.fatal("Zone '%s' is not available.", z) error = True if error: sys.exit(1) # check if default_zone is a valid zone if default_zone not in self.zone.get_zones(): if "public" in self.zone.get_zones(): zone = "public" elif "external" in self.zone.get_zones(): zone = "external" else: zone = "block" # block is a base zone, therefore it has to exist log.error("Default zone '%s' is not valid. Using '%s'.", default_zone, zone) default_zone = zone else: log.debug1("Using default zone '%s'", default_zone) # load direct rules obj = Direct(config.FIREWALLD_DIRECT) if os.path.exists(config.FIREWALLD_DIRECT): log.debug1("Loading direct rules file '%s'" % \ config.FIREWALLD_DIRECT) try: obj.read() except Exception as msg: log.debug1("Failed to load direct rules file '%s': %s", config.FIREWALLD_DIRECT, msg) self.direct.set_permanent_config(obj) self.config.set_direct(copy.deepcopy(obj)) # automatic helpers if self._automatic_helpers != "system": functions.set_nf_conntrack_helper_setting(self._automatic_helpers == "yes") self.nf_conntrack_helper_setting = \ functions.get_nf_conntrack_helper_setting() # check if needed tables are there self._check_tables() if log.getDebugLogLevel() > 0: # get time before flushing and applying tm1 = time.time() # Start transaction transaction = FirewallTransaction(self) if reload: self.set_policy("DROP", use_transaction=transaction) # flush rules self.flush(use_transaction=transaction) # If modules need to be unloaded in complete reload or if there are # ipsets to get applied, limit the transaction to set_policy and flush. # # Future optimization for the ipset case in reload: The transaction # only needs to be split here if there are conflicting ipset types in # exsting ipsets and the configuration in firewalld. if (reload and complete_reload) or \ (self.ipset_enabled and self.ipset.has_ipsets()): transaction.execute(True) transaction.clear() # complete reload: unload modules also if reload and complete_reload: log.debug1("Unloading firewall modules") self.modules_backend.unload_firewall_modules() # apply settings for loaded ipsets while reloading here if self.ipset_enabled and self.ipset.has_ipsets(): log.debug1("Applying ipsets") self.ipset.apply_ipsets() # Start or continue with transaction # apply default rules log.debug1("Applying default rule set") self.apply_default_rules(use_transaction=transaction) # apply settings for loaded zones log.debug1("Applying used zones") self.zone.apply_zones(use_transaction=transaction) self._default_zone = self.check_zone(default_zone) self.zone.change_default_zone(None, self._default_zone, use_transaction=transaction) # Execute transaction transaction.execute(True) # Start new transaction for direct rules transaction.clear() # apply direct chains, rules and passthrough rules if self.direct.has_configuration(): transaction.enable_generous_mode() log.debug1("Applying direct chains rules and passthrough rules") self.direct.apply_direct(transaction) # Execute transaction transaction.execute(True) transaction.disable_generous_mode() transaction.clear() del transaction if log.getDebugLogLevel() > 1: # get time after flushing and applying tm2 = time.time() log.debug2("Flushing and applying took %f seconds" % (tm2 - tm1)) self._state = "RUNNING" def start(self): self._start() self.set_policy("ACCEPT") def _loader(self, path, reader_type, combine=False): # combine: several zone files are getting combined into one obj if not os.path.isdir(path): return if combine: if path.startswith(config.ETC_FIREWALLD) and reader_type == "zone": combined_zone = Zone() combined_zone.name = os.path.basename(path) combined_zone.check_name(combined_zone.name) combined_zone.path = path combined_zone.default = False else: combine = False for filename in sorted(os.listdir(path)): if not filename.endswith(".xml"): if path.startswith(config.ETC_FIREWALLD) and \ reader_type == "zone" and \ os.path.isdir("%s/%s" % (path, filename)): self._loader("%s/%s" % (path, filename), reader_type, combine=True) continue name = "%s/%s" % (path, filename) log.debug1("Loading %s file '%s'", reader_type, name) try: if reader_type == "icmptype": obj = icmptype_reader(filename, path) if obj.name in self.icmptype.get_icmptypes(): orig_obj = self.icmptype.get_icmptype(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.icmptype.remove_icmptype(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True try: self.icmptype.add_icmptype(obj) except FirewallError as error: log.info1("%s: %s, ignoring for run-time." % \ (obj.name, str(error))) # add a deep copy to the configuration interface self.config.add_icmptype(copy.deepcopy(obj)) elif reader_type == "service": obj = service_reader(filename, path) if obj.name in self.service.get_services(): orig_obj = self.service.get_service(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.service.remove_service(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.service.add_service(obj) # add a deep copy to the configuration interface self.config.add_service(copy.deepcopy(obj)) elif reader_type == "zone": obj = zone_reader(filename, path) if combine: # Change name for permanent configuration obj.name = "%s/%s" % ( os.path.basename(path), os.path.basename(filename)[0:-4]) obj.check_name(obj.name) # Copy object before combine config_obj = copy.deepcopy(obj) if obj.name in self.zone.get_zones(): orig_obj = self.zone.get_zone(obj.name) self.zone.remove_zone(orig_obj.name) if orig_obj.combined: log.debug1(" Combining %s '%s' ('%s/%s')", reader_type, obj.name, path, filename) obj.combine(orig_obj) else: log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True config_obj.default = True self.config.add_zone(config_obj) if combine: log.debug1(" Combining %s '%s' ('%s/%s')", reader_type, combined_zone.name, path, filename) combined_zone.combine(obj) else: self.zone.add_zone(obj) elif reader_type == "ipset": obj = ipset_reader(filename, path) if obj.name in self.ipset.get_ipsets(): orig_obj = self.ipset.get_ipset(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.ipset.remove_ipset(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True try: self.ipset.add_ipset(obj) except FirewallError as error: log.warning("%s: %s, ignoring for run-time." % \ (obj.name, str(error))) # add a deep copy to the configuration interface self.config.add_ipset(copy.deepcopy(obj)) elif reader_type == "helper": obj = helper_reader(filename, path) if obj.name in self.helper.get_helpers(): orig_obj = self.helper.get_helper(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.helper.remove_helper(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.helper.add_helper(obj) # add a deep copy to the configuration interface self.config.add_helper(copy.deepcopy(obj)) else: log.fatal("Unknown reader type %s", reader_type) except FirewallError as msg: log.error("Failed to load %s file '%s': %s", reader_type, name, msg) except Exception as msg: log.error("Failed to load %s file '%s':", reader_type, name) log.exception() if combine and combined_zone.combined: if combined_zone.name in self.zone.get_zones(): orig_obj = self.zone.get_zone(combined_zone.name) log.debug1(" Overloading and deactivating %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) try: self.zone.remove_zone(combined_zone.name) except Exception: pass self.config.forget_zone(combined_zone.name) self.zone.add_zone(combined_zone) def get_available_tables(self, ipv): if ipv in [ "ipv4", "ipv6", "eb" ]: return self.available_tables[ipv] return [ ] def cleanup(self): self.icmptype.cleanup() self.service.cleanup() self.zone.cleanup() self.ipset.cleanup() self.helper.cleanup() self.config.cleanup() self.direct.cleanup() self.policies.cleanup() self._firewalld_conf.cleanup() self.__init_vars() def stop(self): if self.cleanup_on_exit: self.flush() self.set_policy("ACCEPT") self.modules_backend.unload_firewall_modules() self.cleanup() # marks def new_mark(self): # return first unused mark i = self._min_mark while i in self._marks: i += 1 self._marks.append(i) return i def del_mark(self, mark): self._marks.remove(mark) # handle modules def handle_modules(self, _modules, enable): for i,module in enumerate(_modules): if enable: (status, msg) = self.modules_backend.load_module(module) else: if self._module_refcount[module] > 1: status = 0 # module referenced more then one, do not unload else: (status, msg) = self.modules_backend.unload_module(module) if status != 0: if enable: return (_modules[:i], msg) # cleanup modules and error msg # else: ignore cleanup if enable: self._module_refcount.setdefault(module, 0) self._module_refcount[module] += 1 else: if module in self._module_refcount: self._module_refcount[module] -= 1 if self._module_refcount[module] == 0: del self._module_refcount[module] return None # apply default rules def __apply_default_rules(self, ipv, transaction): default_rules = { } if ipv in [ "ipv4", "ipv6" ]: x = ipXtables else: x = ebtables for table in x.DEFAULT_RULES: default_rules[table] = x.DEFAULT_RULES[table][:] if self._log_denied != "off": for table in x.LOG_RULES: default_rules.setdefault(table, []).extend(x.LOG_RULES[table]) for table in default_rules: if table not in self.get_available_tables(ipv): continue prefix = [ "-t", table ] for rule in default_rules[table]: if type(rule) == list: _rule = prefix + rule else: _rule = prefix + functions.splitArgs(rule) #if self._individual_calls or \ # (ipv == "eb" and not # self.ebtables_backend.restore_noflush_option): # self.rule(ipv, _rule) #else: # transaction.add_rule(ipv, _rule) transaction.add_rule(ipv, _rule) def apply_default_rules(self, use_transaction=None): if use_transaction is None: transaction = FirewallTransaction(self) else: transaction = use_transaction for ipv in [ "ipv4", "ipv6", "eb" ]: self.__apply_default_rules(ipv, transaction) if self.ipv6_rpfilter_enabled and \ "raw" in self.get_available_tables("ipv6"): # Execute existing transaction transaction.execute(True) # Start new transaction transaction.clear() # here is no check for ebtables.restore_noflush_option needed # as ebtables is not used in here transaction.add_rule("ipv6", [ "-I", "PREROUTING", "1", "-t", "raw", "-p", "ipv6-icmp", "--icmpv6-type=router-advertisement", "-j", "ACCEPT" ]) # RHBZ#1058505 transaction.add_rule("ipv6", [ "-I", "PREROUTING", "2", "-t", "raw", "-m", "rpfilter", "--invert", "-j", "DROP" ]) if self._log_denied != "off": transaction.add_rule("ipv6", [ "-I", "PREROUTING", "2", "-t", "raw", "-m", "rpfilter", "--invert", "-j", "LOG", "--log-prefix", "rpfilter_DROP: " ]) # Execute ipv6_rpfilter transaction, it might fail try: transaction.execute(True) except FirewallError as msg: log.warning("Applying rules for ipv6_rpfilter failed: %s", msg) # Start new transaction transaction.clear() else: if use_transaction is None: transaction.execute(True) # flush and policy def flush(self, use_transaction=None): if use_transaction is None: transaction = FirewallTransaction(self) else: transaction = use_transaction log.debug1("Flushing rule set") if self.ip4tables_enabled: try: self.ip4tables_backend.flush(transaction) except Exception as e: log.error("Failed to flush ipv4 firewall: %s" % e) if self.ip6tables_enabled: try: self.ip6tables_backend.flush(transaction) except Exception as e: log.error("Failed to flush ipv6 firewall: %s" % e) if self.ebtables_enabled: try: self.ebtables_backend.flush(transaction) except Exception as e: log.error("Failed to flush eb firewall: %s" % e) if use_transaction is None: transaction.execute(True) def set_policy(self, policy, which="used", use_transaction=None): if use_transaction is None: transaction = FirewallTransaction(self) else: transaction = use_transaction log.debug1("Setting policy to '%s'", policy) if self.ip4tables_enabled: try: self.ip4tables_backend.set_policy(policy, which, transaction) except Exception as e: log.error("Failed to set policy of ipv4 firewall: %s" % e) if self.ip6tables_enabled: try: self.ip6tables_backend.set_policy(policy, which, transaction) except Exception as e: log.error("Failed to set policy of ipv6 firewall: %s" % e) if self.ebtables_enabled: try: self.ebtables_backend.set_policy(policy, which, transaction) except Exception as e: log.error("Failed to set policy of eb firewall: %s" % e) if use_transaction is None: transaction.execute(True) # rule function used in handle_ functions def rule(self, ipv, rule): # replace %%REJECT%% try: i = rule.index("%%REJECT%%") except ValueError: pass else: if ipv in [ "ipv4", "ipv6" ]: rule[i:i+1] = [ "REJECT", "--reject-with", ipXtables.DEFAULT_REJECT_TYPE[ipv] ] else: raise FirewallError(errors.EBTABLES_NO_REJECT, "'%s' not in {'ipv4'|'ipv6'}" % ipv) # replace %%ICMP%% try: i = rule.index("%%ICMP%%") except ValueError: pass else: if ipv in [ "ipv4", "ipv6" ]: rule[i] = ipXtables.ICMP[ipv] else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}" % ipv) # replace %%LOGTYPE%% try: i = rule.index("%%LOGTYPE%%") except ValueError: pass else: if self._log_denied == "off": return "" if ipv not in [ "ipv4", "ipv6" ]: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}" % ipv) if self._log_denied in [ "unicast", "broadcast", "multicast" ]: rule[i:i+1] = [ "-m", "pkttype", "--pkt-type", self._log_denied ] else: rule.pop(i) # remove leading and trailing '"' for use with execve i = 0 while i < len(rule): x = rule[i] if len(x) > 2 and x[0] == '"' and x[-1] == '"': rule[i] = x[1:-1] i += 1 if ipv == "ipv4": # do not call if disabled if self.ip4tables_enabled: return self.ip4tables_backend.set_rule(rule) elif ipv == "ipv6": # do not call if disabled if self.ip6tables_enabled: return self.ip6tables_backend.set_rule(rule) elif ipv == "eb": # do not call if disabled if self.ebtables_enabled: return self.ebtables_backend.set_rule(rule) else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'|'eb'}" % ipv) return "" def rules(self, ipv, rules): _rules = [ ] for rule in rules: # replace %%REJECT%% try: i = rule.index("%%REJECT%%") except ValueError: pass else: if ipv in [ "ipv4", "ipv6" ]: rule[i:i+1] = [ "REJECT", "--reject-with", ipXtables.DEFAULT_REJECT_TYPE[ipv] ] else: raise FirewallError(errors.EBTABLES_NO_REJECT, "'%s' not in {'ipv4'|'ipv6'}" % ipv) # replace %%ICMP%% try: i = rule.index("%%ICMP%%") except ValueError: pass else: if ipv in [ "ipv4", "ipv6" ]: rule[i] = ipXtables.ICMP[ipv] else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}" % ipv) # replace %%LOGTYPE%% try: i = rule.index("%%LOGTYPE%%") except ValueError: pass else: if self._log_denied == "off": continue if ipv not in [ "ipv4", "ipv6" ]: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}" % ipv) if self._log_denied in [ "unicast", "broadcast", "multicast" ]: rule[i:i+1] = [ "-m", "pkttype", "--pkt-type", self._log_denied ] else: rule.pop(i) _rules.append(rule) backend = None if ipv == "ipv4": if self.ip4tables_enabled: # do not call if disabled backend = self.ip4tables_backend elif ipv == "ipv6": if self.ip6tables_enabled: # do not call if disabled backend = self.ip6tables_backend elif ipv == "eb": if self.ebtables_enabled: # do not call if disabled backend = self.ebtables_backend else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'|'eb'}" % ipv) if not backend: return "" if self._individual_calls or \ not backend.restore_command_exists or \ (ipv == "eb" and not self.ebtables_backend.restore_noflush_option): for i,rule in enumerate(_rules): # remove leading and trailing '"' for use with execve j = 0 while j < len(rule): x = rule[j] if len(x) > 2 and x[0] == '"' and x[-1] == '"': rule[j] = x[1:-1] j += 1 try: backend.set_rule(rule) except Exception as msg: log.error("Failed to apply rules. A firewall reload might solve the issue if the firewall has been modified using ip*tables or ebtables.") log.error(msg) for rule in reversed(_rules[:i]): try: backend.set_rule(reverse_rule(rule)) except Exception: # ignore errors here pass return False return True else: return backend.set_rules(_rules) # check functions def check_panic(self): if self._panic: raise FirewallError(errors.PANIC_MODE) def check_zone(self, zone): _zone = zone if not _zone or _zone == "": _zone = self.get_default_zone() if _zone not in self.zone.get_zones(): raise FirewallError(errors.INVALID_ZONE, _zone) return _zone def check_interface(self, interface): if not functions.checkInterface(interface): raise FirewallError(errors.INVALID_INTERFACE, interface) def check_service(self, service): self.service.check_service(service) def check_port(self, port): if not functions.check_port(port): raise FirewallError(errors.INVALID_PORT, port) def check_tcpudp(self, protocol): if not protocol: raise FirewallError(errors.MISSING_PROTOCOL) if protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, "'%s' not in {'tcp'|'udp'|'sctp'|'dccp'}" % \ protocol) def check_ip(self, ip): if not functions.checkIP(ip): raise FirewallError(errors.INVALID_ADDR, ip) def check_address(self, ipv, source): if ipv == "ipv4": if not functions.checkIPnMask(source): raise FirewallError(errors.INVALID_ADDR, source) elif ipv == "ipv6": if not functions.checkIP6nMask(source): raise FirewallError(errors.INVALID_ADDR, source) else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}") def check_icmptype(self, icmp): self.icmptype.check_icmptype(icmp) def check_timeout(self, timeout): if not isinstance(timeout, int): raise TypeError("%s is %s, expected int" % (timeout, type(timeout))) if int(timeout) < 0: raise FirewallError(errors.INVALID_VALUE, "timeout '%d' is not positive number" % timeout) # RELOAD def reload(self, stop=False): _panic = self._panic # save zone interfaces _zone_interfaces = { } for zone in self.zone.get_zones(): _zone_interfaces[zone] = self.zone.get_settings(zone)["interfaces"] # save direct config _direct_config = self.direct.get_runtime_config() _old_dz = self.get_default_zone() # stop self.cleanup() # start self._start(reload=True, complete_reload=stop) # handle interfaces in the default zone and move them to the new # default zone if it changed _new_dz = self.get_default_zone() if _new_dz != _old_dz: # if_new_dz has been introduced with the reload, we need to add it # https://github.com/firewalld/firewalld/issues/53 if _new_dz not in _zone_interfaces: _zone_interfaces[_new_dz] = { } # default zone changed. Move interfaces from old default zone to # the new one. for iface, settings in list(_zone_interfaces[_old_dz].items()): if settings["__default__"]: # move only those that were added to default zone # (not those that were added to specific zone same as # default) _zone_interfaces[_new_dz][iface] = \ _zone_interfaces[_old_dz][iface] del _zone_interfaces[_old_dz][iface] # add interfaces to zones again for zone in self.zone.get_zones(): if zone in _zone_interfaces: self.zone.set_settings(zone, { "interfaces": _zone_interfaces[zone] }) del _zone_interfaces[zone] else: log.info1("New zone '%s'.", zone) if len(_zone_interfaces) > 0: keys = _zone_interfaces.keys() for zone in keys: log.info1("Lost zone '%s', zone interfaces dropped.", zone) del _zone_interfaces[zone] del _zone_interfaces # restore direct config self.direct.set_config(_direct_config) # enable panic mode again if it has been enabled before or set policy # to ACCEPT if _panic: self.enable_panic_mode() else: self.set_policy("ACCEPT") # STATE def get_state(self): return self._state # PANIC MODE def enable_panic_mode(self): if self._panic: raise FirewallError(errors.ALREADY_ENABLED, "panic mode already enabled") # TODO: use rule in raw table not default chain policy try: self.set_policy("DROP", "all") except Exception as msg: raise FirewallError(errors.COMMAND_FAILED, msg) self._panic = True def disable_panic_mode(self): if not self._panic: raise FirewallError(errors.NOT_ENABLED, "panic mode is not enabled") # TODO: use rule in raw table not default chain policy try: self.set_policy("ACCEPT", "all") except Exception as msg: raise FirewallError(errors.COMMAND_FAILED, msg) self._panic = False def query_panic_mode(self): return self._panic # LOG DENIED def get_log_denied(self): return self._log_denied def set_log_denied(self, value): if value not in config.LOG_DENIED_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s', choose from '%s'" % \ (value, "','".join(config.LOG_DENIED_VALUES))) if value != self.get_log_denied(): self._log_denied = value self._firewalld_conf.set("LogDenied", value) self._firewalld_conf.write() # now reload the firewall self.reload() else: raise FirewallError(errors.ALREADY_SET, value) # AUTOMATIC HELPERS def get_automatic_helpers(self): return self._automatic_helpers def set_automatic_helpers(self, value): if value not in config.AUTOMATIC_HELPERS_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s', choose from '%s'" % \ (value, "','".join(config.AUTOMATIC_HELPERS_VALUES))) if value != self.get_automatic_helpers(): self._automatic_helpers = value self._firewalld_conf.set("AutomaticHelpers", value) self._firewalld_conf.write() # now reload the firewall self.reload() else: raise FirewallError(errors.ALREADY_SET, value) # DEFAULT ZONE def get_default_zone(self): return self._default_zone def set_default_zone(self, zone): _zone = self.check_zone(zone) if _zone != self._default_zone: _old_dz = self._default_zone self._default_zone = _zone self._firewalld_conf.set("DefaultZone", _zone) self._firewalld_conf.write() # remove old default zone from ZONES and add new default zone self.zone.change_default_zone(_old_dz, _zone) # Move interfaces from old default zone to the new one. _old_dz_settings = self.zone.get_settings(_old_dz) for iface, settings in list(_old_dz_settings["interfaces"].items()): if settings["__default__"]: # move only those that were added to default zone # (not those that were added to specific zone same as default) self.zone.change_zone_of_interface("", iface) else: raise FirewallError(errors.ZONE_ALREADY_SET, _zone) firewalld-0.4.4.6/src/firewall/core/fw_config.py000066400000000000000000001077601320241217000214760ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "FirewallConfig" ] import copy import os, os.path import shutil from firewall import config from firewall.core.logger import log from firewall.core.io.icmptype import IcmpType, icmptype_reader, icmptype_writer from firewall.core.io.service import Service, service_reader, service_writer from firewall.core.io.zone import Zone, zone_reader, zone_writer from firewall.core.io.ipset import IPSet, ipset_reader, ipset_writer from firewall.core.io.helper import Helper, helper_reader, helper_writer from firewall import errors from firewall.errors import FirewallError class FirewallConfig(object): def __init__(self, fw): self._fw = fw self.__init_vars() def __repr__(self): return '%s(%r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r)' % \ (self.__class__, self._ipsets, self._icmptypes, self._services, self._zones, self._helpers, self._builtin_ipsets, self._builtin_icmptypes, self._builtin_services, self._builtin_zones, self._builtin_helpers, self._firewalld_conf, self._policies, self._direct) def __init_vars(self): self._ipsets = { } self._icmptypes = { } self._services = { } self._zones = { } self._helpers = { } self._builtin_ipsets = { } self._builtin_icmptypes = { } self._builtin_services = { } self._builtin_zones = { } self._builtin_helpers = { } self._firewalld_conf = None self._policies = None self._direct = None def cleanup(self): for x in list(self._builtin_ipsets.keys()): self._builtin_ipsets[x].cleanup() del self._builtin_ipsets[x] for x in list(self._ipsets.keys()): self._ipsets[x].cleanup() del self._ipsets[x] for x in list(self._builtin_icmptypes.keys()): self._builtin_icmptypes[x].cleanup() del self._builtin_icmptypes[x] for x in list(self._icmptypes.keys()): self._icmptypes[x].cleanup() del self._icmptypes[x] for x in list(self._builtin_services.keys()): self._builtin_services[x].cleanup() del self._builtin_services[x] for x in list(self._services.keys()): self._services[x].cleanup() del self._services[x] for x in list(self._builtin_zones.keys()): self._builtin_zones[x].cleanup() del self._builtin_zones[x] for x in list(self._zones.keys()): self._zones[x].cleanup() del self._zones[x] for x in list(self._builtin_helpers.keys()): self._builtin_helpers[x].cleanup() del self._builtin_helpers[x] for x in list(self._helpers.keys()): self._helpers[x].cleanup() del self._helpers[x] if self._firewalld_conf: self._firewalld_conf.cleanup() del self._firewalld_conf self._firewalld_conf = None if self._policies: self._policies.cleanup() del self._policies self._policies = None if self._direct: self._direct.cleanup() del self._direct self._direct = None self.__init_vars() # access check def lockdown_enabled(self): return self._fw.policies.query_lockdown() def access_check(self, key, value): return self._fw.policies.access_check(key, value) # firewalld_conf def set_firewalld_conf(self, conf): self._firewalld_conf = conf def get_firewalld_conf(self): return self._firewalld_conf def update_firewalld_conf(self): if not os.path.exists(config.FIREWALLD_CONF): self._firewalld_conf.clear() else: self._firewalld_conf.read() # policies def set_policies(self, policies): self._policies = policies def get_policies(self): return self._policies def update_lockdown_whitelist(self): if not os.path.exists(config.LOCKDOWN_WHITELIST): self._policies.lockdown_whitelist.cleanup() else: self._policies.lockdown_whitelist.read() # direct def set_direct(self, direct): self._direct = direct def get_direct(self): return self._direct def update_direct(self): if not os.path.exists(config.FIREWALLD_DIRECT): self._direct.cleanup() else: self._direct.read() # ipset def get_ipsets(self): return sorted(set(list(self._ipsets.keys()) + \ list(self._builtin_ipsets.keys()))) def add_ipset(self, obj): if obj.builtin: self._builtin_ipsets[obj.name] = obj else: self._ipsets[obj.name] = obj def get_ipset(self, name): if name in self._ipsets: return self._ipsets[name] elif name in self._builtin_ipsets: return self._builtin_ipsets[name] raise FirewallError(errors.INVALID_IPSET, name) def load_ipset_defaults(self, obj): if obj.name not in self._ipsets: raise FirewallError(errors.NO_DEFAULTS, obj.name) elif self._ipsets[obj.name] != obj: raise FirewallError(errors.NO_DEFAULTS, "self._ipsets[%s] != obj" % obj.name) elif obj.name not in self._builtin_ipsets: raise FirewallError(errors.NO_DEFAULTS, "'%s' not a built-in ipset" % obj.name) self._remove_ipset(obj) return self._builtin_ipsets[obj.name] def get_ipset_config(self, obj): return obj.export_config() def set_ipset_config(self, obj, conf): if obj.builtin: x = copy.copy(obj) x.import_config(conf) x.path = config.ETC_FIREWALLD_IPSETS x.builtin = False if obj.path != x.path: x.default = False self.add_ipset(x) ipset_writer(x) return x else: obj.import_config(conf) ipset_writer(obj) return obj def new_ipset(self, name, conf): if name in self._ipsets or name in self._builtin_ipsets: raise FirewallError(errors.NAME_CONFLICT, "new_ipset(): '%s'" % name) x = IPSet() x.check_name(name) x.import_config(conf) x.name = name x.filename = "%s.xml" % name x.path = config.ETC_FIREWALLD_IPSETS # It is not possible to add a new one with a name of a buitin x.builtin = False x.default = True ipset_writer(x) self.add_ipset(x) return x def update_ipset_from_path(self, name): filename = os.path.basename(name) path = os.path.dirname(name) if not os.path.exists(name): # removed file if path == config.ETC_FIREWALLD_IPSETS: # removed custom ipset for x in self._ipsets.keys(): obj = self._ipsets[x] if obj.filename == filename: del self._ipsets[x] if obj.name in self._builtin_ipsets: return ("update", self._builtin_ipsets[obj.name]) return ("remove", obj) else: # removed builtin ipset for x in self._builtin_ipsets.keys(): obj = self._builtin_ipsets[x] if obj.filename == filename: del self._builtin_ipsets[x] if obj.name not in self._ipsets: # update dbus ipset return ("remove", obj) else: # builtin hidden, no update needed return (None, None) # ipset not known to firewalld, yet (timeout, ..) return (None, None) # new or updated file log.debug1("Loading ipset file '%s'", name) try: obj = ipset_reader(filename, path) except Exception as msg: log.error("Failed to load ipset file '%s': %s", filename, msg) return (None, None) # new ipset if obj.name not in self._builtin_ipsets and obj.name not in self._ipsets: self.add_ipset(obj) return ("new", obj) # updated ipset if path == config.ETC_FIREWALLD_IPSETS: # custom ipset update if obj.name in self._ipsets: obj.default = self._ipsets[obj.name].default self._ipsets[obj.name] = obj return ("update", obj) else: if obj.name in self._builtin_ipsets: # builtin ipset update del self._builtin_ipsets[obj.name] self._builtin_ipsets[obj.name] = obj if obj.name not in self._ipsets: # update dbus ipset return ("update", obj) else: # builtin hidden, no update needed return (None, None) # ipset not known to firewalld, yet (timeout, ..) return (None, None) def _remove_ipset(self, obj): if obj.name not in self._ipsets: raise FirewallError(errors.INVALID_IPSET, obj.name) if obj.path != config.ETC_FIREWALLD_IPSETS: raise FirewallError(errors.INVALID_DIRECTORY, "'%s' != '%s'" % (obj.path, config.ETC_FIREWALLD_IPSETS)) name = "%s/%s.xml" % (obj.path, obj.name) try: shutil.move(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) os.remove(name) del self._ipsets[obj.name] def check_builtin_ipset(self, obj): if obj.builtin or not obj.default: raise FirewallError(errors.BUILTIN_IPSET, "'%s' is built-in ipset" % obj.name) def remove_ipset(self, obj): self.check_builtin_ipset(obj) self._remove_ipset(obj) def rename_ipset(self, obj, name): self.check_builtin_ipset(obj) new_ipset = self._copy_ipset(obj, name) self._remove_ipset(obj) return new_ipset def _copy_ipset(self, obj, name): return self.new_ipset(name, obj.export_config()) # icmptypes def get_icmptypes(self): return sorted(set(list(self._icmptypes.keys()) + \ list(self._builtin_icmptypes.keys()))) def add_icmptype(self, obj): if obj.builtin: self._builtin_icmptypes[obj.name] = obj else: self._icmptypes[obj.name] = obj def get_icmptype(self, name): if name in self._icmptypes: return self._icmptypes[name] elif name in self._builtin_icmptypes: return self._builtin_icmptypes[name] raise FirewallError(errors.INVALID_ICMPTYPE, name) def load_icmptype_defaults(self, obj): if obj.name not in self._icmptypes: raise FirewallError(errors.NO_DEFAULTS, obj.name) elif self._icmptypes[obj.name] != obj: raise FirewallError(errors.NO_DEFAULTS, "self._icmptypes[%s] != obj" % obj.name) elif obj.name not in self._builtin_icmptypes: raise FirewallError(errors.NO_DEFAULTS, "'%s' not a built-in icmptype" % obj.name) self._remove_icmptype(obj) return self._builtin_icmptypes[obj.name] def get_icmptype_config(self, obj): return obj.export_config() def set_icmptype_config(self, obj, conf): if obj.builtin: x = copy.copy(obj) x.import_config(conf) x.path = config.ETC_FIREWALLD_ICMPTYPES x.builtin = False if obj.path != x.path: x.default = False self.add_icmptype(x) icmptype_writer(x) return x else: obj.import_config(conf) icmptype_writer(obj) return obj def new_icmptype(self, name, conf): if name in self._icmptypes or name in self._builtin_icmptypes: raise FirewallError(errors.NAME_CONFLICT, "new_icmptype(): '%s'" % name) x = IcmpType() x.check_name(name) x.import_config(conf) x.name = name x.filename = "%s.xml" % name x.path = config.ETC_FIREWALLD_ICMPTYPES # It is not possible to add a new one with a name of a buitin x.builtin = False x.default = True icmptype_writer(x) self.add_icmptype(x) return x def update_icmptype_from_path(self, name): filename = os.path.basename(name) path = os.path.dirname(name) if not os.path.exists(name): # removed file if path == config.ETC_FIREWALLD_ICMPTYPES: # removed custom icmptype for x in self._icmptypes.keys(): obj = self._icmptypes[x] if obj.filename == filename: del self._icmptypes[x] if obj.name in self._builtin_icmptypes: return ("update", self._builtin_icmptypes[obj.name]) return ("remove", obj) else: # removed builtin icmptype for x in self._builtin_icmptypes.keys(): obj = self._builtin_icmptypes[x] if obj.filename == filename: del self._builtin_icmptypes[x] if obj.name not in self._icmptypes: # update dbus icmptype return ("remove", obj) else: # builtin hidden, no update needed return (None, None) # icmptype not known to firewalld, yet (timeout, ..) return (None, None) # new or updated file log.debug1("Loading icmptype file '%s'", name) try: obj = icmptype_reader(filename, path) except Exception as msg: log.error("Failed to load icmptype file '%s': %s", filename, msg) return (None, None) # new icmptype if obj.name not in self._builtin_icmptypes and obj.name not in self._icmptypes: self.add_icmptype(obj) return ("new", obj) # updated icmptype if path == config.ETC_FIREWALLD_ICMPTYPES: # custom icmptype update if obj.name in self._icmptypes: obj.default = self._icmptypes[obj.name].default self._icmptypes[obj.name] = obj return ("update", obj) else: if obj.name in self._builtin_icmptypes: # builtin icmptype update del self._builtin_icmptypes[obj.name] self._builtin_icmptypes[obj.name] = obj if obj.name not in self._icmptypes: # update dbus icmptype return ("update", obj) else: # builtin hidden, no update needed return (None, None) # icmptype not known to firewalld, yet (timeout, ..) return (None, None) def _remove_icmptype(self, obj): if obj.name not in self._icmptypes: raise FirewallError(errors.INVALID_ICMPTYPE, obj.name) if obj.path != config.ETC_FIREWALLD_ICMPTYPES: raise FirewallError(errors.INVALID_DIRECTORY, "'%s' != '%s'" % \ (obj.path, config.ETC_FIREWALLD_ICMPTYPES)) name = "%s/%s.xml" % (obj.path, obj.name) try: shutil.move(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) os.remove(name) del self._icmptypes[obj.name] def check_builtin_icmptype(self, obj): if obj.builtin or not obj.default: raise FirewallError(errors.BUILTIN_ICMPTYPE, "'%s' is built-in icmp type" % obj.name) def remove_icmptype(self, obj): self.check_builtin_icmptype(obj) self._remove_icmptype(obj) def rename_icmptype(self, obj, name): self.check_builtin_icmptype(obj) new_icmptype = self._copy_icmptype(obj, name) self._remove_icmptype(obj) return new_icmptype def _copy_icmptype(self, obj, name): return self.new_icmptype(name, obj.export_config()) # services def get_services(self): return sorted(set(list(self._services.keys()) + \ list(self._builtin_services.keys()))) def add_service(self, obj): if obj.builtin: self._builtin_services[obj.name] = obj else: self._services[obj.name] = obj def get_service(self, name): if name in self._services: return self._services[name] elif name in self._builtin_services: return self._builtin_services[name] raise FirewallError(errors.INVALID_SERVICE, "get_service(): '%s'" % name) def load_service_defaults(self, obj): if obj.name not in self._services: raise FirewallError(errors.NO_DEFAULTS, obj.name) elif self._services[obj.name] != obj: raise FirewallError(errors.NO_DEFAULTS, "self._services[%s] != obj" % obj.name) elif obj.name not in self._builtin_services: raise FirewallError(errors.NO_DEFAULTS, "'%s' not a built-in service" % obj.name) self._remove_service(obj) return self._builtin_services[obj.name] def get_service_config(self, obj): return obj.export_config() def set_service_config(self, obj, conf): if obj.builtin: x = copy.copy(obj) x.import_config(conf) x.path = config.ETC_FIREWALLD_SERVICES x.builtin = False if obj.path != x.path: x.default = False self.add_service(x) service_writer(x) return x else: obj.import_config(conf) service_writer(obj) return obj def new_service(self, name, conf): if name in self._services or name in self._builtin_services: raise FirewallError(errors.NAME_CONFLICT, "new_service(): '%s'" % name) x = Service() x.check_name(name) x.import_config(conf) x.name = name x.filename = "%s.xml" % name x.path = config.ETC_FIREWALLD_SERVICES # It is not possible to add a new one with a name of a buitin x.builtin = False x.default = True service_writer(x) self.add_service(x) return x def update_service_from_path(self, name): filename = os.path.basename(name) path = os.path.dirname(name) if not os.path.exists(name): # removed file if path == config.ETC_FIREWALLD_SERVICES: # removed custom service for x in self._services.keys(): obj = self._services[x] if obj.filename == filename: del self._services[x] if obj.name in self._builtin_services: return ("update", self._builtin_services[obj.name]) return ("remove", obj) else: # removed builtin service for x in self._builtin_services.keys(): obj = self._builtin_services[x] if obj.filename == filename: del self._builtin_services[x] if obj.name not in self._services: # update dbus service return ("remove", obj) else: # builtin hidden, no update needed return (None, None) # service not known to firewalld, yet (timeout, ..) return (None, None) # new or updated file log.debug1("Loading service file '%s'", name) try: obj = service_reader(filename, path) except Exception as msg: log.error("Failed to load service file '%s': %s", filename, msg) return (None, None) # new service if obj.name not in self._builtin_services and obj.name not in self._services: self.add_service(obj) return ("new", obj) # updated service if path == config.ETC_FIREWALLD_SERVICES: # custom service update if obj.name in self._services: obj.default = self._services[obj.name].default self._services[obj.name] = obj return ("update", obj) else: if obj.name in self._builtin_services: # builtin service update del self._builtin_services[obj.name] self._builtin_services[obj.name] = obj if obj.name not in self._services: # update dbus service return ("update", obj) else: # builtin hidden, no update needed return (None, None) # service not known to firewalld, yet (timeout, ..) return (None, None) def _remove_service(self, obj): if obj.name not in self._services: raise FirewallError(errors.INVALID_SERVICE, obj.name) if obj.path != config.ETC_FIREWALLD_SERVICES: raise FirewallError(errors.INVALID_DIRECTORY, "'%s' != '%s'" % \ (obj.path, config.ETC_FIREWALLD_SERVICES)) name = "%s/%s.xml" % (obj.path, obj.name) try: shutil.move(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) os.remove(name) del self._services[obj.name] def check_builtin_service(self, obj): if obj.builtin or not obj.default: raise FirewallError(errors.BUILTIN_SERVICE, "'%s' is built-in service" % obj.name) def remove_service(self, obj): self.check_builtin_service(obj) self._remove_service(obj) def rename_service(self, obj, name): self.check_builtin_service(obj) new_service = self._copy_service(obj, name) self._remove_service(obj) return new_service def _copy_service(self, obj, name): return self.new_service(name, obj.export_config()) # zones def get_zones(self): return sorted(set(list(self._zones.keys()) + \ list(self._builtin_zones.keys()))) def add_zone(self, obj): if obj.builtin: self._builtin_zones[obj.name] = obj else: self._zones[obj.name] = obj def forget_zone(self, name): if name in self._builtin_zones: del self._builtin_zones[name] if name in self._zones: del self._zones[name] def get_zone(self, name): if name in self._zones: return self._zones[name] elif name in self._builtin_zones: return self._builtin_zones[name] raise FirewallError(errors.INVALID_ZONE, "get_zone(): %s" % name) def load_zone_defaults(self, obj): if obj.name not in self._zones: raise FirewallError(errors.NO_DEFAULTS, obj.name) elif self._zones[obj.name] != obj: raise FirewallError(errors.NO_DEFAULTS, "self._zones[%s] != obj" % obj.name) elif obj.name not in self._builtin_zones: raise FirewallError(errors.NO_DEFAULTS, "'%s' not a built-in zone" % obj.name) self._remove_zone(obj) return self._builtin_zones[obj.name] def get_zone_config(self, obj): return obj.export_config() def set_zone_config(self, obj, conf): if obj.builtin: x = copy.copy(obj) x.fw_config = self x.import_config(conf) x.path = config.ETC_FIREWALLD_ZONES x.builtin = False if obj.path != x.path: x.default = False self.add_zone(x) zone_writer(x) return x else: obj.fw_config = self obj.import_config(conf) zone_writer(obj) return obj def new_zone(self, name, conf): if name in self._zones or name in self._builtin_zones: raise FirewallError(errors.NAME_CONFLICT, "new_zone(): '%s'" % name) x = Zone() x.check_name(name) x.fw_config = self x.import_config(conf) x.name = name x.filename = "%s.xml" % name x.path = config.ETC_FIREWALLD_ZONES # It is not possible to add a new one with a name of a buitin x.builtin = False x.default = True zone_writer(x) self.add_zone(x) return x def update_zone_from_path(self, name): filename = os.path.basename(name) path = os.path.dirname(name) if not os.path.exists(name): # removed file if path.startswith(config.ETC_FIREWALLD_ZONES): # removed custom zone for x in self._zones.keys(): obj = self._zones[x] if obj.filename == filename: del self._zones[x] if obj.name in self._builtin_zones: return ("update", self._builtin_zones[obj.name]) return ("remove", obj) else: # removed builtin zone for x in self._builtin_zones.keys(): obj = self._builtin_zones[x] if obj.filename == filename: del self._builtin_zones[x] if obj.name not in self._zones: # update dbus zone return ("remove", obj) else: # builtin hidden, no update needed return (None, None) # zone not known to firewalld, yet (timeout, ..) return (None, None) # new or updated file log.debug1("Loading zone file '%s'", name) try: obj = zone_reader(filename, path) except Exception as msg: log.error("Failed to load zone file '%s': %s", filename, msg) return (None, None) obj.fw_config = self if path.startswith(config.ETC_FIREWALLD_ZONES) and \ len(path) > len(config.ETC_FIREWALLD_ZONES): # custom combined zone part obj.name = "%s/%s" % (os.path.basename(path), os.path.basename(filename)[0:-4]) # new zone if obj.name not in self._builtin_zones and obj.name not in self._zones: self.add_zone(obj) return ("new", obj) # updated zone if path.startswith(config.ETC_FIREWALLD_ZONES): # custom zone update if obj.name in self._zones: obj.default = self._zones[obj.name].default self._zones[obj.name] = obj return ("update", obj) else: if obj.name in self._builtin_zones: # builtin zone update del self._builtin_zones[obj.name] self._builtin_zones[obj.name] = obj if obj.name not in self._zones: # update dbus zone return ("update", obj) else: # builtin hidden, no update needed return (None, None) # zone not known to firewalld, yet (timeout, ..) return (None, None) def _remove_zone(self, obj): if obj.name not in self._zones: raise FirewallError(errors.INVALID_ZONE, obj.name) if not obj.path.startswith(config.ETC_FIREWALLD_ZONES): raise FirewallError(errors.INVALID_DIRECTORY, "'%s' doesn't start with '%s'" % \ (obj.path, config.ETC_FIREWALLD_ZONES)) name = "%s/%s.xml" % (obj.path, obj.name) try: shutil.move(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) os.remove(name) del self._zones[obj.name] def check_builtin_zone(self, obj): if obj.builtin or not obj.default: raise FirewallError(errors.BUILTIN_ZONE, "'%s' is built-in zone" % obj.name) def remove_zone(self, obj): self.check_builtin_zone(obj) self._remove_zone(obj) def rename_zone(self, obj, name): self.check_builtin_zone(obj) new_zone = self._copy_zone(obj, name) self._remove_zone(obj) return new_zone def _copy_zone(self, obj, name): return self.new_zone(name, obj.export_config()) # helper def get_helpers(self): return sorted(set(list(self._helpers.keys()) + \ list(self._builtin_helpers.keys()))) def add_helper(self, obj): if obj.builtin: self._builtin_helpers[obj.name] = obj else: self._helpers[obj.name] = obj def get_helper(self, name): if name in self._helpers: return self._helpers[name] elif name in self._builtin_helpers: return self._builtin_helpers[name] raise FirewallError(errors.INVALID_HELPER, name) def load_helper_defaults(self, obj): if obj.name not in self._helpers: raise FirewallError(errors.NO_DEFAULTS, obj.name) elif self._helpers[obj.name] != obj: raise FirewallError(errors.NO_DEFAULTS, "self._helpers[%s] != obj" % obj.name) elif obj.name not in self._builtin_helpers: raise FirewallError(errors.NO_DEFAULTS, "'%s' not a built-in helper" % obj.name) self._remove_helper(obj) return self._builtin_helpers[obj.name] def get_helper_config(self, obj): return obj.export_config() def set_helper_config(self, obj, conf): if obj.builtin: x = copy.copy(obj) x.import_config(conf) x.path = config.ETC_FIREWALLD_HELPERS x.builtin = False if obj.path != x.path: x.default = False self.add_helper(x) helper_writer(x) return x else: obj.import_config(conf) helper_writer(obj) return obj def new_helper(self, name, conf): if name in self._helpers or name in self._builtin_helpers: raise FirewallError(errors.NAME_CONFLICT, "new_helper(): '%s'" % name) x = Helper() x.check_name(name) x.import_config(conf) x.name = name x.filename = "%s.xml" % name x.path = config.ETC_FIREWALLD_HELPERS # It is not possible to add a new one with a name of a buitin x.builtin = False x.default = True helper_writer(x) self.add_helper(x) return x def update_helper_from_path(self, name): filename = os.path.basename(name) path = os.path.dirname(name) if not os.path.exists(name): # removed file if path == config.ETC_FIREWALLD_HELPERS: # removed custom helper for x in self._helpers.keys(): obj = self._helpers[x] if obj.filename == filename: del self._helpers[x] if obj.name in self._builtin_helpers: return ("update", self._builtin_helpers[obj.name]) return ("remove", obj) else: # removed builtin helper for x in self._builtin_helpers.keys(): obj = self._builtin_helpers[x] if obj.filename == filename: del self._builtin_helpers[x] if obj.name not in self._helpers: # update dbus helper return ("remove", obj) else: # builtin hidden, no update needed return (None, None) # helper not known to firewalld, yet (timeout, ..) return (None, None) # new or updated file log.debug1("Loading helper file '%s'", name) try: obj = helper_reader(filename, path) except Exception as msg: log.error("Failed to load helper file '%s': %s", filename, msg) return (None, None) # new helper if obj.name not in self._builtin_helpers and obj.name not in self._helpers: self.add_helper(obj) return ("new", obj) # updated helper if path == config.ETC_FIREWALLD_HELPERS: # custom helper update if obj.name in self._helpers: obj.default = self._helpers[obj.name].default self._helpers[obj.name] = obj return ("update", obj) else: if obj.name in self._builtin_helpers: # builtin helper update del self._builtin_helpers[obj.name] self._builtin_helpers[obj.name] = obj if obj.name not in self._helpers: # update dbus helper return ("update", obj) else: # builtin hidden, no update needed return (None, None) # helper not known to firewalld, yet (timeout, ..) return (None, None) def _remove_helper(self, obj): if obj.name not in self._helpers: raise FirewallError(errors.INVALID_HELPER, obj.name) if obj.path != config.ETC_FIREWALLD_HELPERS: raise FirewallError(errors.INVALID_DIRECTORY, "'%s' != '%s'" % (obj.path, config.ETC_FIREWALLD_HELPERS)) name = "%s/%s.xml" % (obj.path, obj.name) try: shutil.move(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) os.remove(name) del self._helpers[obj.name] def check_builtin_helper(self, obj): if obj.builtin or not obj.default: raise FirewallError(errors.BUILTIN_HELPER, "'%s' is built-in helper" % obj.name) def remove_helper(self, obj): self.check_builtin_helper(obj) self._remove_helper(obj) def rename_helper(self, obj, name): self.check_builtin_helper(obj) new_helper = self._copy_helper(obj, name) self._remove_helper(obj) return new_helper def _copy_helper(self, obj, name): return self.new_helper(name, obj.export_config()) firewalld-0.4.4.6/src/firewall/core/fw_direct.py000066400000000000000000000556711320241217000215060ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "FirewallDirect" ] from firewall.fw_types import * from firewall.core import ipXtables from firewall.core import ebtables from firewall.core.fw_transaction import FirewallTransaction from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class Firewall # ############################################################################ class FirewallDirect(object): def __init__(self, fw): self._fw = fw self.__init_vars() def __repr__(self): return '%s(%r, %r, %r)' % (self.__class__, self._chains, self._rules, self._rule_priority_positions) def __init_vars(self): self._chains = { } self._rules = { } self._rule_priority_positions = { } self._passthroughs = { } self._obj = None def cleanup(self): self.__init_vars() # transaction def new_transaction(self): return FirewallTransaction(self._fw) # configuration def set_permanent_config(self, obj): self._obj = obj def has_configuration(self): if len(self._chains) + len(self._rules) + len(self._passthroughs) > 0: return True if len(self._obj.get_all_chains()) + \ len(self._obj.get_all_rules()) + \ len(self._obj.get_all_passthroughs()) > 0: return True return False def apply_direct(self, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction # Apply permanent configuration and save the obj to be able to # remove permanent configuration settings within get_runtime_config # for use in firewalld reload. self.set_config((self._obj.get_all_chains(), self._obj.get_all_rules(), self._obj.get_all_passthroughs()), transaction) if use_transaction is None: transaction.execute(True) def get_runtime_config(self): # Return only runtime changes # Remove all chains, rules and passthroughs that are in self._obj # (permanent config applied in firewalld _start. chains = { } rules = { } passthroughs = { } for table_id in self._chains: (ipv, table) = table_id for chain in self._chains[table_id]: if not self._obj.query_chain(ipv, table, chain): chains.setdefault(table_id, [ ]).append(chain) for chain_id in self._rules: (ipv, table, chain) = chain_id for (priority, args) in self._rules[chain_id]: if not self._obj.query_rule(ipv, table, chain, priority, args): if chain_id not in rules: rules[chain_id] = LastUpdatedOrderedDict() rules[chain_id][(priority, args)] = priority for ipv in self._passthroughs: for args in self._passthroughs[ipv]: if not self._obj.query_passthrough(ipv, args): if ipv not in passthroughs: passthroughs[ipv] = [ ] passthroughs[ipv].append(args) return (chains, rules, passthroughs) def get_config(self): return (self._chains, self._rules, self._passthroughs) def set_config(self, conf, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction (_chains, _rules, _passthroughs) = conf for table_id in _chains: (ipv, table) = table_id for chain in _chains[table_id]: if not self.query_chain(ipv, table, chain): try: self.add_chain(ipv, table, chain, use_transaction=transaction) except FirewallError as error: log.warning(str(error)) for chain_id in _rules: (ipv, table, chain) = chain_id for (priority, args) in _rules[chain_id]: if not self.query_rule(ipv, table, chain, priority, args): try: self.add_rule(ipv, table, chain, priority, args, use_transaction=transaction) except FirewallError as error: log.warning(str(error)) for ipv in _passthroughs: for args in _passthroughs[ipv]: if not self.query_passthrough(ipv, args): try: self.add_passthrough(ipv, args, use_transaction=transaction) except FirewallError as error: log.warning(str(error)) if use_transaction is None: transaction.execute(True) def _check_ipv(self, ipv): ipvs = ['ipv4', 'ipv6', 'eb'] if ipv not in ipvs: raise FirewallError(errors.INVALID_IPV, "'%s' not in '%s'" % (ipv, ipvs)) def _check_ipv_table(self, ipv, table): self._check_ipv(ipv) tables = ipXtables.BUILT_IN_CHAINS.keys() if ipv in [ 'ipv4', 'ipv6' ] \ else ebtables.BUILT_IN_CHAINS.keys() if table not in tables: raise FirewallError(errors.INVALID_TABLE, "'%s' not in '%s'" % (table, tables)) def _check_builtin_chain(self, ipv, table, chain): if ipv in ['ipv4', 'ipv6']: built_in_chains = ipXtables.BUILT_IN_CHAINS[table] our_chains = ipXtables.OUR_CHAINS[table] else: built_in_chains = ebtables.BUILT_IN_CHAINS[table] our_chains = ebtables.OUR_CHAINS[table] if chain in built_in_chains: raise FirewallError(errors.BUILTIN_CHAIN, "chain '%s' is built-in chain" % chain) if chain in our_chains: raise FirewallError(errors.BUILTIN_CHAIN, "chain '%s' is reserved" % chain) if ipv in [ "ipv4", "ipv6" ]: if self._fw.zone.zone_from_chain(chain) != None: raise FirewallError(errors.INVALID_CHAIN, "Chain '%s' is reserved" % chain) # DIRECT CHAIN def __chain(self, add, ipv, table, chain, transaction): self._check_ipv_table(ipv, table) self._check_builtin_chain(ipv, table, chain) table_id = (ipv, table) if add: if table_id in self._chains and \ chain in self._chains[table_id]: raise FirewallError(errors.ALREADY_ENABLED, "chain '%s' already is in '%s:%s'" % \ (chain, ipv, table)) else: if table_id not in self._chains or \ chain not in self._chains[table_id]: raise FirewallError(errors.NOT_ENABLED, "chain '%s' is not in '%s:%s'" % \ (chain, ipv, table)) rule = [ "-t", table ] if add: rule.append("-N") else: rule.append("-X") rule.append(chain) if add and ipv == "eb": rule += [ "-P", "RETURN" ] transaction.add_rule(ipv, rule) self.__register_chain(table_id, chain, add) transaction.add_fail(self.__register_chain, table_id, chain, not add) def __register_chain(self, table_id, chain, add): if add: self._chains.setdefault(table_id, [ ]).append(chain) else: self._chains[table_id].remove(chain) if len(self._chains[table_id]) == 0: del self._chains[table_id] def add_chain(self, ipv, table, chain, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction #TODO: policy="ACCEPT" self.__chain(True, ipv, table, chain, transaction) if use_transaction is None: transaction.execute(True) def remove_chain(self, ipv, table, chain, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.__chain(False, ipv, table, chain, transaction) if use_transaction is None: transaction.execute(True) def query_chain(self, ipv, table, chain): self._check_ipv_table(ipv, table) self._check_builtin_chain(ipv, table, chain) table_id = (ipv, table) return (table_id in self._chains and chain in self._chains[table_id]) def get_chains(self, ipv, table): self._check_ipv_table(ipv, table) table_id = (ipv, table) if table_id in self._chains: return self._chains[table_id] return [ ] def get_all_chains(self): r = [ ] for key in self._chains: (ipv, table) = key for chain in self._chains[key]: r.append((ipv, table, chain)) return r # DIRECT RULE def __rule(self, enable, ipv, table, chain, priority, args, transaction): self._check_ipv_table(ipv, table) if ipv in [ "ipv4", "ipv6" ]: self._fw.zone.create_zone_base_by_chain(ipv, table, chain, transaction) _chain = chain if ipv in [ "ipv4", "ipv6" ]: _CHAINS = ipXtables.BUILT_IN_CHAINS else: _CHAINS = ebtables.BUILT_IN_CHAINS if table in _CHAINS and chain in _CHAINS[table]: _chain = "%s_direct" % (chain) chain_id = (ipv, table, chain) rule_id = (priority, args) if enable: if chain_id in self._rules and \ rule_id in self._rules[chain_id]: raise FirewallError(errors.ALREADY_ENABLED, "rule '%s' already is in '%s:%s:%s'" % \ (args, ipv, table, chain)) else: if chain_id not in self._rules or \ rule_id not in self._rules[chain_id]: raise FirewallError(errors.NOT_ENABLED, "rule '%s' is not in '%s:%s:%s'" % \ (args, ipv, table, chain)) # get priority of rule priority = self._rules[chain_id][rule_id] # If a rule gets added, the initial rule index position within the # ipv, table and chain combination (chain_id) is 1. # Tf the chain_id exists in _rule_priority_positions, there are already # other rules for this chain_id. The number of rules for a priority # less or equal to the priority of the new rule will increase the # index of the new rule. The index is the ip*tables -I insert rule # number. # # Example: We have the following rules for chain_id (ipv4, filter, # INPUT) already: # ipv4, filter, INPUT, 1, -i, foo1, -j, ACCEPT # ipv4, filter, INPUT, 2, -i, foo2, -j, ACCEPT # ipv4, filter, INPUT, 2, -i, foo2_1, -j, ACCEPT # ipv4, filter, INPUT, 3, -i, foo3, -j, ACCEPT # This results in the following _rule_priority_positions structure: # _rule_priority_positions[(ipv4,filter,INPUT)][1] = 1 # _rule_priority_positions[(ipv4,filter,INPUT)][2] = 2 # _rule_priority_positions[(ipv4,filter,INPUT)][3] = 1 # The new rule # ipv4, filter, INPUT, 2, -i, foo2_2, -j, ACCEPT # has the same pritority as the second rule before and will be added # right after it. # The initial index is 1 and the chain_id is already in # _rule_priority_positions. Therefore the index will increase for # the number of rules in every rule position in # _rule_priority_positions[(ipv4,filter,INPUT)].keys() # where position is smaller or equal to the entry in keys. # With the example from above: # The priority of the new rule is 2. Therefore for all keys in # _rule_priority_positions[chain_id] where priority is 1 or 2, the # number of the rules will increase the index of the rule. # For _rule_priority_positions[chain_id][1]: index += 1 # _rule_priority_positions[chain_id][2]: index += 2 # index will be 4 in the end and the rule in the table chain # combination will be added at index 4. # If there are no rules in the table chain combination, a new rule # has index 1. index = 1 if chain_id in self._rule_priority_positions: positions = sorted(self._rule_priority_positions[chain_id].keys()) j = 0 while j < len(positions) and priority >= positions[j]: index += self._rule_priority_positions[chain_id][positions[j]] j += 1 rule = [ "-t", table ] if enable: rule += [ "-I", _chain, str(index) ] else: rule += [ "-D", _chain ] rule += args transaction.add_rule(ipv, rule) self.__register_rule(rule_id, chain_id, priority, enable) transaction.add_fail(self.__register_rule, rule_id, chain_id, priority, not enable) def __register_rule(self, rule_id, chain_id, priority, enable): if enable: if chain_id not in self._rules: self._rules[chain_id] = LastUpdatedOrderedDict() self._rules[chain_id][rule_id] = priority if chain_id not in self._rule_priority_positions: self._rule_priority_positions[chain_id] = { } if priority in self._rule_priority_positions[chain_id]: self._rule_priority_positions[chain_id][priority] += 1 else: self._rule_priority_positions[chain_id][priority] = 1 else: del self._rules[chain_id][rule_id] if len(self._rules[chain_id]) == 0: del self._rules[chain_id] self._rule_priority_positions[chain_id][priority] -= 1 def add_rule(self, ipv, table, chain, priority, args, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.__rule(True, ipv, table, chain, priority, args, transaction) if use_transaction is None: transaction.execute(True) def remove_rule(self, ipv, table, chain, priority, args, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.__rule(False, ipv, table, chain, priority, args, transaction) if use_transaction is None: transaction.execute(True) def query_rule(self, ipv, table, chain, priority, args): self._check_ipv_table(ipv, table) chain_id = (ipv, table, chain) return chain_id in self._rules and \ (priority, args) in self._rules[chain_id] def get_rules(self, ipv, table, chain): self._check_ipv_table(ipv, table) chain_id = (ipv, table, chain) if chain_id in self._rules: return list(self._rules[chain_id].keys()) return [ ] def get_all_rules(self): r = [ ] for key in self._rules: (ipv, table, chain) = key for (priority, args) in self._rules[key]: r.append((ipv, table, chain, priority, list(args))) return r # DIRECT PASSTHROUGH (untracked) def passthrough(self, ipv, args): try: return self._fw.rule(ipv, args) except Exception as msg: log.debug2(msg) raise FirewallError(errors.COMMAND_FAILED, msg) # DIRECT PASSTHROUGH (tracked) def __passthrough(self, enable, ipv, args, transaction): self._check_ipv(ipv) tuple_args = tuple(args) if enable: if ipv in self._passthroughs and \ tuple_args in self._passthroughs[ipv]: raise FirewallError(errors.ALREADY_ENABLED, "passthrough '%s', '%s'" % (ipv, args)) else: if ipv not in self._passthroughs or \ tuple_args not in self._passthroughs[ipv]: raise FirewallError(errors.NOT_ENABLED, "passthrough '%s', '%s'" % (ipv, args)) if enable: self.check_passthrough(args) # try to find out if a zone chain should be used if ipv in [ "ipv4", "ipv6" ]: table = "filter" try: i = args.index("-t") except ValueError: pass else: if len(args) >= i+1: table = args[i+1] chain = None for opt in [ "-A", "--append", "-I", "--insert", "-N", "--new-chain" ]: try: i = args.index(opt) except ValueError: pass else: if len(args) >= i+1: chain = args[i+1] if table and chain: self._fw.zone.create_zone_base_by_chain(ipv, table, chain) _args = args else: _args = self.reverse_passthrough(args) transaction.add_rule(ipv, _args) self.__register_passthrough(ipv, tuple_args, enable) transaction.add_fail(self.__register_passthrough, ipv, tuple_args, not enable) def __register_passthrough(self, ipv, args, enable): if enable: if ipv not in self._passthroughs: self._passthroughs[ipv] = [ ] self._passthroughs[ipv].append(args) else: self._passthroughs[ipv].remove(args) if len(self._passthroughs[ipv]) == 0: del self._passthroughs[ipv] def add_passthrough(self, ipv, args, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.__passthrough(True, ipv, list(args), transaction) if use_transaction is None: transaction.execute(True) def remove_passthrough(self, ipv, args, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.__passthrough(False, ipv, list(args), transaction) if use_transaction is None: transaction.execute(True) def query_passthrough(self, ipv, args): return ipv in self._passthroughs and \ tuple(args) in self._passthroughs[ipv] def get_all_passthroughs(self): r = [ ] for ipv in self._passthroughs: for args in self._passthroughs[ipv]: r.append((ipv, list(args))) return r def get_passthroughs(self, ipv): r = [ ] if ipv in self._passthroughs: for args in self._passthroughs[ipv]: r.append(list(args)) return r def check_passthrough(self, args): """ Check if passthough rule is valid (only add, insert and new chain rules are allowed) """ args = set(args) not_allowed = set(["-C", "--check", # check rule "-D", "--delete", # delete rule "-R", "--replace", # replace rule "-L", "--list", # list rule "-S", "--list-rules", # print rules "-F", "--flush", # flush rules "-Z", "--zero", # zero rules "-X", "--delete-chain", # delete chain "-P", "--policy", # policy "-E", "--rename-chain"]) # rename chain) # intersection of args and not_allowed is not empty, i.e. # something from args is not allowed if len(args & not_allowed) > 0: raise FirewallError(errors.INVALID_PASSTHROUGH, "arg '%s' is not allowed" % list(args & not_allowed)[0]) # args need to contain one of -A, -I, -N needed = set(["-A", "--append", "-I", "--insert", "-N", "--new-chain"]) # empty intersection of args and needed, i.e. # none from args contains any needed command if len(args & needed) == 0: raise FirewallError(errors.INVALID_PASSTHROUGH, "no '-A', '-I' or '-N' arg") def reverse_passthrough(self, args): """ Reverse valid passthough rule """ replace_args = { # Append "-A": "-D", "--append": "--delete", # Insert "-I": "-D", "--insert": "--delete", # New chain "-N": "-X", "--new-chain": "--delete-chain", } ret_args = args[:] for x in replace_args: try: idx = ret_args.index(x) except ValueError: continue if x in [ "-I", "--insert" ]: # With insert rulenum, then remove it if it is a number # Opt at position idx, chain at position idx+1, [rulenum] at # position idx+2 try: int(ret_args[idx+2]) except ValueError: pass else: ret_args.pop(idx+2) ret_args[idx] = replace_args[x] return ret_args raise FirewallError(errors.INVALID_PASSTHROUGH, "no '-A', '-I' or '-N' arg") firewalld-0.4.4.6/src/firewall/core/fw_helper.py000066400000000000000000000034511320241217000215000ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2015-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """helper backend""" __all__ = [ "FirewallHelper" ] from firewall import errors from firewall.errors import FirewallError class FirewallHelper(object): def __init__(self, fw): self._fw = fw self._helpers = { } def __repr__(self): return '%s(%r)' % (self.__class__, self._helpers) # helpers def cleanup(self): self._helpers.clear() def check_helper(self, name): if name not in self.get_helpers(): raise FirewallError(errors.INVALID_HELPER, name) def query_helper(self, name): return name in self.get_helpers() def get_helpers(self): return sorted(self._helpers.keys()) def has_helpers(self): return len(self._helpers) > 0 def get_helper(self, name): self.check_helper(name) return self._helpers[name] def add_helper(self, obj): self._helpers[obj.name] = obj def remove_helper(self, name): if name not in self._helpers: raise FirewallError(errors.INVALID_HELPER, name) del self._helpers[name] firewalld-0.4.4.6/src/firewall/core/fw_icmptype.py000066400000000000000000000054301320241217000220520ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "FirewallIcmpType" ] import copy from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class FirewallIcmpType(object): def __init__(self, fw): self._fw = fw self._icmptypes = { } def __repr__(self): return '%s(%r)' % (self.__class__, self._icmptypes) def cleanup(self): self._icmptypes.clear() # zones def get_icmptypes(self): return sorted(self._icmptypes.keys()) def check_icmptype(self, icmptype): if icmptype not in self._icmptypes: raise FirewallError(errors.INVALID_ICMPTYPE, icmptype) def get_icmptype(self, icmptype): self.check_icmptype(icmptype) return self._icmptypes[icmptype] def add_icmptype(self, obj): orig_ipvs = obj.destination if len(orig_ipvs) == 0: orig_ipvs = [ "ipv4", "ipv6" ] ipvs = orig_ipvs[:] for ipv in orig_ipvs: if ipv == "ipv4": if not self._fw.ip4tables_enabled: continue supported_icmps = self._fw.ip4tables_supported_icmp_types elif ipv == "ipv6": if not self._fw.ip6tables_enabled: continue supported_icmps = self._fw.ip6tables_supported_icmp_types else: supported_icmps = [ ] if obj.name.lower() not in supported_icmps: log.info1("ICMP type '%s' is not supported by the kernel for %s." % (obj.name, ipv)) ipvs.remove(ipv) if len(ipvs) != len(orig_ipvs): if len(ipvs) < 1: raise FirewallError(errors.INVALID_ICMPTYPE, "No supported ICMP type.") new_obj = copy.deepcopy(obj) new_obj.destination = ipvs self._icmptypes[obj.name] = new_obj else: self._icmptypes[obj.name] = obj def remove_icmptype(self, icmptype): self.check_icmptype(icmptype) del self._icmptypes[icmptype] firewalld-0.4.4.6/src/firewall/core/fw_ifcfg.py000066400000000000000000000047521320241217000213040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Functions to search for and change ifcfg files""" __all__ = [ "search_ifcfg_of_interface", "ifcfg_set_zone_of_interface" ] import os, os.path from firewall import config from firewall.core.logger import log from firewall.core.io.ifcfg import ifcfg def search_ifcfg_of_interface(interface): """search ifcfg file for the interface in config.IFCFGDIR""" # Return quickly if config.IFCFGDIR does not exist if not os.path.exists(config.IFCFGDIR): return None filename = "%s/ifcfg-%s" % (config.IFCFGDIR, interface) if os.path.exists(filename): ifcfg_file = ifcfg(filename) ifcfg_file.read() if ifcfg_file.get("DEVICE") == interface: return ifcfg_file for filename in sorted(os.listdir(config.IFCFGDIR)): if not filename.startswith("ifcfg-"): continue for ignored in [ ".bak", ".orig", ".rpmnew", ".rpmorig", ".rpmsave", "-range" ]: if filename.endswith(ignored): continue if "." in filename: continue ifcfg_file = ifcfg("%s/%s" % (config.IFCFGDIR, filename)) ifcfg_file.read() if ifcfg_file.get("DEVICE") == interface: return ifcfg_file return None def ifcfg_set_zone_of_interface(zone, interface): """Set zone (ZONE=) in the ifcfg file that uses the interface (DEVICE=)""" if zone == None: zone = "" ifcfg_file = search_ifcfg_of_interface(interface) if ifcfg_file is not None and ifcfg_file.get("ZONE") != zone and not \ (ifcfg_file.get("ZONE") is None and zone == ""): log.debug1("Setting ZONE=%s in '%s'" % (zone, ifcfg_file.filename)) ifcfg_file.set("ZONE", zone) ifcfg_file.write() firewalld-0.4.4.6/src/firewall/core/fw_ipset.py000066400000000000000000000231651320241217000213510ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2015-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """ipset backend""" __all__ = [ "FirewallIPSet" ] from firewall.core.logger import log from firewall.core.ipset import remove_default_create_options as rm_def_cr_opts from firewall.core.io.ipset import IPSet from firewall import errors from firewall.errors import FirewallError class FirewallIPSet(object): def __init__(self, fw): self._fw = fw self._ipsets = { } def __repr__(self): return '%s(%r)' % (self.__class__, self._ipsets) # ipsets def cleanup(self): self._ipsets.clear() def check_ipset(self, name): if name not in self.get_ipsets(): raise FirewallError(errors.INVALID_IPSET, name) def query_ipset(self, name): return name in self.get_ipsets() def get_ipsets(self): return sorted(self._ipsets.keys()) def has_ipsets(self): return len(self._ipsets) > 0 def get_ipset(self, name, applied=False): self.check_ipset(name) obj = self._ipsets[name] if applied: self.check_applied_obj(obj) return obj def _error2warning(self, f, name, *args): # transform errors into warnings try: f(name, *args) except FirewallError as error: msg = str(error) log.warning("%s: %s" % (name, msg)) def add_ipset(self, obj): if obj.type not in self._fw.ipset_supported_types: raise FirewallError(errors.INVALID_TYPE, "'%s' is not supported by ipset." % obj.type) self._ipsets[obj.name] = obj def remove_ipset(self, name, keep=False): obj = self._ipsets[name] if obj.applied and not keep: try: self._fw.ipset_backend.destroy(name) except Exception as msg: log.error("Failed to destroy ipset '%s'" % name) log.error(msg) else: log.debug1("Keeping ipset '%s' because of timeout option", name) del self._ipsets[name] def apply_ipsets(self): active = self._fw.ipset_backend.get_active_terse() for name in self.get_ipsets(): obj = self._ipsets[name] obj.applied = False log.debug1("Applying ipset '%s'" % name) if name in active and ("timeout" not in obj.options or \ obj.options["timeout"] == "0" or \ obj.type != active[name][0] or \ rm_def_cr_opts(obj.options) != \ active[name][1]): try: self._fw.ipset_backend.destroy(name) except Exception as msg: log.error("Failed to destroy ipset '%s'" % name) log.error(msg) if self._fw.individual_calls(): try: self._fw.ipset_backend.create(obj.name, obj.type, obj.options) except Exception as msg: log.error("Failed to create ipset '%s'" % obj.name) log.error(msg) else: obj.applied = True if "timeout" not in obj.options or \ obj.options["timeout"] != "0": # no entries visible for ipsets with timeout continue for entry in obj.entries: try: self._fw.ipset_backend.add(obj.name, entry) except Exception as msg: log.error("Failed to add entry '%s' to ipset '%s'" % \ (entry, obj.name)) log.error(msg) else: try: self._fw.ipset_backend.restore(obj.name, obj.type, obj.entries, obj.options, None) except Exception as msg: log.error("Failed to create ipset '%s'" % obj.name) log.error(msg) else: obj.applied = True # TYPE def get_type(self, name): return self.get_ipset(name, applied=True).type # DIMENSION def get_dimension(self, name): return len(self.get_ipset(name, applied=True).type.split(",")) # APPLIED def is_applied(self, name): return self.get_ipset(name).applied == True def check_applied(self, name): obj = self.get_ipset(name) self.check_applied_obj(obj) def check_applied_obj(self, obj): if not obj.applied: raise FirewallError( errors.NOT_APPLIED, obj.name) # OPTIONS def get_family(self, name): obj = self.get_ipset(name, applied=True) if "family" in obj.options: if obj.options["family"] == "inet6": return "ipv6" return "ipv4" # ENTRIES def __entry_id(self, entry): return entry def __entry(self, enable, name, entry): pass def add_entry(self, name, entry): obj = self.get_ipset(name, applied=True) if "timeout" in obj.options and obj.options["timeout"] != "0": # no entries visible for ipsets with timeout raise FirewallError(errors.IPSET_WITH_TIMEOUT, name) IPSet.check_entry(entry, obj.options, obj.type) if entry in obj.entries: raise FirewallError(errors.ALREADY_ENABLED, "'%s' already is in '%s'" % (entry, name)) try: self._fw.ipset_backend.add(obj.name, entry) except Exception as msg: log.error("Failed to add entry '%s' to ipset '%s'" % \ (entry, obj.name)) log.error(msg) else: if "timeout" not in obj.options or obj.options["timeout"] == "0": # no entries visible for ipsets with timeout obj.entries.append(entry) def remove_entry(self, name, entry): obj = self.get_ipset(name, applied=True) if "timeout" in obj.options and obj.options["timeout"] != "0": # no entries visible for ipsets with timeout raise FirewallError(errors.IPSET_WITH_TIMEOUT, name) # no entry check for removal if entry not in obj.entries: raise FirewallError(errors.NOT_ENABLED, "'%s' not in '%s'" % (entry, name)) try: self._fw.ipset_backend.delete(obj.name, entry) except Exception as msg: log.error("Failed to remove entry '%s' from ipset '%s'" % \ (entry, obj.name)) log.error(msg) else: if "timeout" not in obj.options or obj.options["timeout"] == "0": # no entries visible for ipsets with timeout obj.entries.remove(entry) def query_entry(self, name, entry): obj = self.get_ipset(name, applied=True) if "timeout" in obj.options and obj.options["timeout"] != "0": # no entries visible for ipsets with timeout raise FirewallError(errors.IPSET_WITH_TIMEOUT, name) return entry in obj.entries def get_entries(self, name): obj = self.get_ipset(name, applied=True) return obj.entries def set_entries(self, name, entries): obj = self.get_ipset(name, applied=True) if "timeout" in obj.options and obj.options["timeout"] != "0": # no entries visible for ipsets with timeout raise FirewallError(errors.IPSET_WITH_TIMEOUT, name) for entry in entries: IPSet.check_entry(entry, obj.options, obj.type) obj.entries = entries if self._fw.individual_calls(): try: self._fw.ipset_backend.flush(obj.name) except Exception as msg: log.error("Failed to flush ipset '%s'" % obj.name) log.error(msg) else: obj.applied = True for entry in obj.entries: try: self._fw.ipset_backend.add(obj.name, entry) except Exception as msg: log.error("Failed to add entry '%s' to ipset '%s'" % \ (entry, obj.name)) log.error(msg) else: try: self._fw.ipset_backend.flush(obj.name) except Exception as msg: log.error("Failed to flush ipset '%s'" % obj.name) log.error(msg) else: obj.applied = True try: self._fw.ipset_backend.restore(obj.name, obj.type, obj.entries, obj.options, None) except Exception as msg: log.error("Failed to create ipset '%s'" % obj.name) log.error(msg) else: obj.applied = True return firewalld-0.4.4.6/src/firewall/core/fw_nm.py000066400000000000000000000124131320241217000206310ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Functions for NetworkManager interaction""" __all__ = [ "check_nm_imported", "nm_is_imported", "nm_get_zone_of_connection", "nm_set_zone_of_connection", "nm_get_connections", "nm_get_connection_of_interface", "nm_get_bus_name", "nm_get_dbus_interface" ] import gi from gi.repository import GLib try: gi.require_version('NM', '1.0') except ValueError: _nm_imported = False else: try: from gi.repository import NM _nm_imported = True except (ImportError, ValueError, GLib.Error): _nm_imported = False _nm_client = None from firewall import errors from firewall.errors import FirewallError from firewall.core.logger import log import dbus def check_nm_imported(): """Check function to raise a MISSING_IMPORT error if the import of NM failed """ if not _nm_imported: raise FirewallError(errors.MISSING_IMPORT, "gi.repository.NM = 1.0") def nm_is_imported(): """Returns true if NM has been properly imported @return True if import was successful, False otherwirse """ return _nm_imported def nm_get_client(): """Returns the NM client object or None if the import of NM failed @return NM.Client instance if import was successful, None otherwise """ global _nm_client if not _nm_client: _nm_client = NM.Client.new(None) return _nm_client def nm_get_zone_of_connection(connection): """Get zone of connection from NM @param connection name @return zone string setting of connection, empty string if not set, None if connection is unknown """ check_nm_imported() active_connections = nm_get_client().get_active_connections() for active_con in active_connections: if active_con.get_id() == connection: con = active_con.get_connection() if con is None: continue setting_con = con.get_setting_connection() if setting_con is None: continue zone = setting_con.get_zone() if zone is None: zone = "" return zone return None def nm_set_zone_of_connection(zone, connection): """Set the zone for a connection @param zone name @param connection name @return True if zone was set, else False """ check_nm_imported() active_connections = nm_get_client().get_active_connections() for active_con in active_connections: con = active_con.get_connection() if con is None: continue if active_con.get_id() == connection: setting_con = con.get_setting_connection() if setting_con is None: continue if zone == "": zone = None setting_con.set_property("zone", zone) con.commit_changes(True, None) return True return False def nm_get_connections(connections, connections_uuid): """Get active connections from NM @param connections return dict @param connections_uuid return dict """ connections.clear() connections_uuid.clear() check_nm_imported() active_connections = nm_get_client().get_active_connections() for active_con in active_connections: # ignore vpn devices for now if active_con.get_vpn(): continue name = active_con.get_id() uuid = active_con.get_uuid() devices = active_con.get_devices() connections_uuid[name] = uuid for dev in devices: connections[dev.get_iface()] = name def nm_get_connection_of_interface(interface): """Get connection from NM that is using the interface @param interface name @returns connection that is using interface or None """ check_nm_imported() active_connections = nm_get_client().get_active_connections() for active_con in active_connections: # ignore vpn devices for now if active_con.get_vpn(): continue devices = active_con.get_devices() for dev in devices: if dev.get_iface() == interface: return active_con.get_id() return None def nm_get_bus_name(): if not _nm_imported: return None try: bus = dbus.SystemBus() obj = bus.get_object(NM.DBUS_INTERFACE, NM.DBUS_PATH) name = obj.bus_name del obj, bus return name except Exception: log.debug2("Failed to get bus name of NetworkManager") return None def nm_get_dbus_interface(): if not _nm_imported: return "" return NM.DBUS_INTERFACE firewalld-0.4.4.6/src/firewall/core/fw_policies.py000066400000000000000000000053771320241217000220410ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "FirewallPolicies" ] import time from firewall import config from firewall.core.logger import log from firewall.core.io.lockdown_whitelist import LockdownWhitelist from firewall import errors from firewall.errors import FirewallError class FirewallPolicies(object): def __init__(self): self._lockdown = False self.lockdown_whitelist = LockdownWhitelist(config.LOCKDOWN_WHITELIST) def __repr__(self): return '%s(%r, %r)' % (self.__class__, self._lockdown, self.lockdown_whitelist) def cleanup(self): self._lockdown = False self.lockdown_whitelist.cleanup() # lockdown def access_check(self, key, value): if key == "context": log.debug2('Doing access check for context "%s"' % value) if self.lockdown_whitelist.match_context(value): log.debug3('context matches.') return True elif key == "uid": log.debug2('Doing access check for uid %d' % value) if self.lockdown_whitelist.match_uid(value): log.debug3('uid matches.') return True elif key == "user": log.debug2('Doing access check for user "%s"' % value) if self.lockdown_whitelist.match_user(value): log.debug3('user matches.') return True elif key == "command": log.debug2('Doing access check for command "%s"' % value) if self.lockdown_whitelist.match_command(value): log.debug3('command matches.') return True return False def enable_lockdown(self): if self._lockdown: raise FirewallError(errors.ALREADY_ENABLED, "enable_lockdown()") self._lockdown = True def disable_lockdown(self): if not self._lockdown: raise FirewallError(errors.NOT_ENABLED, "disable_lockdown()") self._lockdown = False def query_lockdown(self): return self._lockdown firewalld-0.4.4.6/src/firewall/core/fw_service.py000066400000000000000000000031471320241217000216630ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "FirewallService" ] from firewall import errors from firewall.errors import FirewallError class FirewallService(object): def __init__(self, fw): self._fw = fw self._services = { } def __repr__(self): return '%s(%r)' % (self.__class__, self._services) def cleanup(self): self._services.clear() # zones def get_services(self): return sorted(self._services.keys()) def check_service(self, service): if service not in self._services: raise FirewallError(errors.INVALID_SERVICE, service) def get_service(self, service): self.check_service(service) return self._services[service] def add_service(self, obj): self._services[obj.name] = obj def remove_service(self, service): self.check_service(service) del self._services[service] firewalld-0.4.4.6/src/firewall/core/fw_test.py000066400000000000000000000546231320241217000212070ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Firewall_test" ] import os.path, sys import copy from firewall import config from firewall import functions from firewall.core.fw_icmptype import FirewallIcmpType from firewall.core.fw_service import FirewallService from firewall.core.fw_zone import FirewallZone from firewall.core.fw_direct import FirewallDirect from firewall.core.fw_config import FirewallConfig from firewall.core.fw_policies import FirewallPolicies from firewall.core.fw_ipset import FirewallIPSet from firewall.core.fw_helper import FirewallHelper from firewall.core.logger import log from firewall.core.io.firewalld_conf import firewalld_conf from firewall.core.io.direct import Direct from firewall.core.io.service import service_reader from firewall.core.io.icmptype import icmptype_reader from firewall.core.io.zone import zone_reader, Zone from firewall.core.io.ipset import ipset_reader from firewall.core.ipset import IPSET_TYPES from firewall.core.io.helper import helper_reader from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class Firewall # ############################################################################ class Firewall_test(object): def __init__(self): self._firewalld_conf = firewalld_conf(config.FIREWALLD_CONF) self.ip4tables_enabled = False self.ip6tables_enabled = False self.ebtables_enabled = False self.ipset_enabled = False self.ipset_supported_types = IPSET_TYPES self.available_tables = { } self.available_tables["ipv4"] = [ ] self.available_tables["ipv6"] = [ ] self.available_tables["eb"] = [ ] self.icmptype = FirewallIcmpType(self) self.service = FirewallService(self) self.zone = FirewallZone(self) self.direct = FirewallDirect(self) self.config = FirewallConfig(self) self.policies = FirewallPolicies() self.ipset = FirewallIPSet(self) self.helper = FirewallHelper(self) self.__init_vars() def __repr__(self): return '%s(%r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r, %r)' % \ (self.__class__, self.ip4tables_enabled, self.ip6tables_enabled, self.ebtables_enabled, self._state, self._panic, self._default_zone, self._module_refcount, self._marks, self._min_mark, self.cleanup_on_exit, self.ipv6_rpfilter_enabled, self.ipset_enabled, self._individual_calls, self._log_denied, self._automatic_helpers) def __init_vars(self): self._state = "INIT" self._panic = False self._default_zone = "" self._module_refcount = { } self._marks = [ ] # fallback settings will be overloaded by firewalld.conf self._min_mark = config.FALLBACK_MINIMAL_MARK self.cleanup_on_exit = config.FALLBACK_CLEANUP_ON_EXIT self.ipv6_rpfilter_enabled = config.FALLBACK_IPV6_RPFILTER self._individual_calls = config.FALLBACK_INDIVIDUAL_CALLS self._log_denied = config.FALLBACK_LOG_DENIED self._automatic_helpers = config.FALLBACK_AUTOMATIC_HELPERS def individual_calls(self): return self._individual_calls def _start(self, reload=False, complete_reload=False): # initialize firewall default_zone = config.FALLBACK_ZONE # load firewalld config log.debug1("Loading firewalld config file '%s'", config.FIREWALLD_CONF) try: self._firewalld_conf.read() except Exception as msg: log.warning("Using fallback firewalld configuration settings.") else: if self._firewalld_conf.get("DefaultZone"): default_zone = self._firewalld_conf.get("DefaultZone") if self._firewalld_conf.get("MinimalMark"): self._min_mark = int(self._firewalld_conf.get("MinimalMark")) if self._firewalld_conf.get("CleanupOnExit"): value = self._firewalld_conf.get("CleanupOnExit") if value is not None and value.lower() in [ "no", "false" ]: self.cleanup_on_exit = False if self._firewalld_conf.get("Lockdown"): value = self._firewalld_conf.get("Lockdown") if value is not None and value.lower() in [ "yes", "true" ]: log.debug1("Lockdown is enabled") try: self.policies.enable_lockdown() except FirewallError: # already enabled, this is probably reload pass if self._firewalld_conf.get("IPv6_rpfilter"): value = self._firewalld_conf.get("IPv6_rpfilter") if value is not None: if value.lower() in [ "no", "false" ]: self.ipv6_rpfilter_enabled = False if value.lower() in [ "yes", "true" ]: self.ipv6_rpfilter_enabled = True if self.ipv6_rpfilter_enabled: log.debug1("IPv6 rpfilter is enabled") else: log.debug1("IPV6 rpfilter is disabled") if self._firewalld_conf.get("IndividualCalls"): value = self._firewalld_conf.get("IndividualCalls") if value is not None and value.lower() in [ "yes", "true" ]: log.debug1("IndividualCalls is enabled") self._individual_calls = True if self._firewalld_conf.get("LogDenied"): value = self._firewalld_conf.get("LogDenied") if value is None or value.lower() == "no": self._log_denied = "off" else: self._log_denied = value.lower() log.debug1("LogDenied is set to '%s'", self._log_denied) if self._firewalld_conf.get("AutomaticHelpers"): value = self._firewalld_conf.get("AutomaticHelpers") if value is not None: if value.lower() in [ "no", "false" ]: self._automatic_helpers = "no" elif value.lower() in [ "yes", "true" ]: self._automatic_helpers = "yes" else: self._automatic_helpers = value.lower() log.debug1("AutomaticHelpers is set to '%s'", self._automatic_helpers) self.config.set_firewalld_conf(copy.deepcopy(self._firewalld_conf)) # load lockdown whitelist log.debug1("Loading lockdown whitelist") try: self.policies.lockdown_whitelist.read() except Exception as msg: if self.policies.query_lockdown(): log.error("Failed to load lockdown whitelist '%s': %s", self.policies.lockdown_whitelist.filename, msg) else: log.debug1("Failed to load lockdown whitelist '%s': %s", self.policies.lockdown_whitelist.filename, msg) # copy policies to config interface self.config.set_policies(copy.deepcopy(self.policies)) # load ipset files self._loader(config.FIREWALLD_IPSETS, "ipset") self._loader(config.ETC_FIREWALLD_IPSETS, "ipset") # load icmptype files self._loader(config.FIREWALLD_ICMPTYPES, "icmptype") self._loader(config.ETC_FIREWALLD_ICMPTYPES, "icmptype") if len(self.icmptype.get_icmptypes()) == 0: log.error("No icmptypes found.") # load helper files self._loader(config.FIREWALLD_HELPERS, "helper") self._loader(config.ETC_FIREWALLD_HELPERS, "helper") # load service files self._loader(config.FIREWALLD_SERVICES, "service") self._loader(config.ETC_FIREWALLD_SERVICES, "service") if len(self.service.get_services()) == 0: log.error("No services found.") # load zone files self._loader(config.FIREWALLD_ZONES, "zone") self._loader(config.ETC_FIREWALLD_ZONES, "zone") if len(self.zone.get_zones()) == 0: log.fatal("No zones found.") sys.exit(1) # check minimum required zones error = False for z in [ "block", "drop", "trusted" ]: if z not in self.zone.get_zones(): log.fatal("Zone '%s' is not available.", z) error = True if error: sys.exit(1) # check if default_zone is a valid zone if default_zone not in self.zone.get_zones(): if "public" in self.zone.get_zones(): zone = "public" elif "external" in self.zone.get_zones(): zone = "external" else: zone = "block" # block is a base zone, therefore it has to exist log.error("Default zone '%s' is not valid. Using '%s'.", default_zone, zone) default_zone = zone else: log.debug1("Using default zone '%s'", default_zone) # load direct rules obj = Direct(config.FIREWALLD_DIRECT) if os.path.exists(config.FIREWALLD_DIRECT): log.debug1("Loading direct rules file '%s'" % \ config.FIREWALLD_DIRECT) try: obj.read() except Exception as msg: log.debug1("Failed to load direct rules file '%s': %s", config.FIREWALLD_DIRECT, msg) self.config.set_direct(copy.deepcopy(obj)) self._default_zone = self.check_zone(default_zone) self._state = "RUNNING" def start(self): self._start() def _loader(self, path, reader_type, combine=False): # combine: several zone files are getting combined into one obj if not os.path.isdir(path): return if combine: if path.startswith(config.ETC_FIREWALLD) and reader_type == "zone": combined_zone = Zone() combined_zone.name = os.path.basename(path) combined_zone.check_name(combined_zone.name) combined_zone.path = path combined_zone.default = False else: combine = False for filename in sorted(os.listdir(path)): if not filename.endswith(".xml"): if path.startswith(config.ETC_FIREWALLD) and \ reader_type == "zone" and \ os.path.isdir("%s/%s" % (path, filename)): self._loader("%s/%s" % (path, filename), reader_type, combine=True) continue name = "%s/%s" % (path, filename) log.debug1("Loading %s file '%s'", reader_type, name) try: if reader_type == "icmptype": obj = icmptype_reader(filename, path) if obj.name in self.icmptype.get_icmptypes(): orig_obj = self.icmptype.get_icmptype(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.icmptype.remove_icmptype(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.icmptype.add_icmptype(obj) # add a deep copy to the configuration interface self.config.add_icmptype(copy.deepcopy(obj)) elif reader_type == "service": obj = service_reader(filename, path) if obj.name in self.service.get_services(): orig_obj = self.service.get_service(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.service.remove_service(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.service.add_service(obj) # add a deep copy to the configuration interface self.config.add_service(copy.deepcopy(obj)) elif reader_type == "zone": obj = zone_reader(filename, path) if combine: # Change name for permanent configuration obj.name = "%s/%s" % ( os.path.basename(path), os.path.basename(filename)[0:-4]) obj.check_name(obj.name) # Copy object before combine config_obj = copy.deepcopy(obj) if obj.name in self.zone.get_zones(): orig_obj = self.zone.get_zone(obj.name) self.zone.remove_zone(orig_obj.name) if orig_obj.combined: log.debug1(" Combining %s '%s' ('%s/%s')", reader_type, obj.name, path, filename) obj.combine(orig_obj) else: log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True config_obj.default = True self.config.add_zone(config_obj) if combine: log.debug1(" Combining %s '%s' ('%s/%s')", reader_type, combined_zone.name, path, filename) combined_zone.combine(obj) else: self.zone.add_zone(obj) elif reader_type == "ipset": obj = ipset_reader(filename, path) if obj.name in self.ipset.get_ipsets(): orig_obj = self.ipset.get_ipset(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.ipset.remove_ipset(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.ipset.add_ipset(obj) # add a deep copy to the configuration interface self.config.add_ipset(copy.deepcopy(obj)) elif reader_type == "helper": obj = helper_reader(filename, path) if obj.name in self.helper.get_helpers(): orig_obj = self.helper.get_helper(obj.name) log.debug1(" Overloads %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) self.helper.remove_helper(orig_obj.name) elif obj.path.startswith(config.ETC_FIREWALLD): obj.default = True self.helper.add_helper(obj) # add a deep copy to the configuration interface self.config.add_helper(copy.deepcopy(obj)) else: log.fatal("Unknown reader type %s", reader_type) except FirewallError as msg: log.error("Failed to load %s file '%s': %s", reader_type, name, msg) except Exception as msg: log.error("Failed to load %s file '%s':", reader_type, name) log.exception() if combine and combined_zone.combined: if combined_zone.name in self.zone.get_zones(): orig_obj = self.zone.get_zone(combined_zone.name) log.debug1(" Overloading and deactivating %s '%s' ('%s/%s')", reader_type, orig_obj.name, orig_obj.path, orig_obj.filename) try: self.zone.remove_zone(combined_zone.name) except: pass self.config.forget_zone(combined_zone.name) self.zone.add_zone(combined_zone) def get_available_tables(self, ipv): if ipv in [ "ipv4", "ipv6", "eb" ]: return self.available_tables[ipv] return [ ] def cleanup(self): self.icmptype.cleanup() self.service.cleanup() self.zone.cleanup() self.ipset.cleanup() self.helper.cleanup() self.config.cleanup() self.direct.cleanup() self.policies.cleanup() self._firewalld_conf.cleanup() self.__init_vars() def stop(self): self.cleanup() # check functions def check_panic(self): return def check_zone(self, zone): _zone = zone if not _zone or _zone == "": _zone = self.get_default_zone() if _zone not in self.zone.get_zones(): raise FirewallError(errors.INVALID_ZONE, _zone) return _zone def check_interface(self, interface): if not functions.checkInterface(interface): raise FirewallError(errors.INVALID_INTERFACE, interface) def check_service(self, service): self.service.check_service(service) def check_port(self, port): range = functions.getPortRange(port) if range == -2 or range == -1 or range is None or \ (len(range) == 2 and range[0] >= range[1]): if range == -2: log.debug1("'%s': port > 65535" % port) elif range == -1: log.debug1("'%s': port is invalid" % port) elif range is None: log.debug1("'%s': port is ambiguous" % port) elif len(range) == 2 and range[0] >= range[1]: log.debug1("'%s': range start >= end" % port) raise FirewallError(errors.INVALID_PORT, port) def check_tcpudp(self, protocol): if not protocol: raise FirewallError(errors.MISSING_PROTOCOL) if not protocol in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, "'%s' not in {'tcp'|'udp'|'sctp'|'dccp'}" % \ protocol) def check_ip(self, ip): if not functions.checkIP(ip): raise FirewallError(errors.INVALID_ADDR, ip) def check_address(self, ipv, source): if ipv == "ipv4": if not functions.checkIPnMask(source): raise FirewallError(errors.INVALID_ADDR, source) elif ipv == "ipv6": if not functions.checkIP6nMask(source): raise FirewallError(errors.INVALID_ADDR, source) else: raise FirewallError(errors.INVALID_IPV, "'%s' not in {'ipv4'|'ipv6'}") def check_icmptype(self, icmp): self.icmptype.check_icmptype(icmp) # RELOAD def reload(self, stop=False): return # STATE def get_state(self): return self._state # PANIC MODE def enable_panic_mode(self): return def disable_panic_mode(self): return def query_panic_mode(self): return self._panic # LOG DENIED def get_log_denied(self): return self._log_denied def set_log_denied(self, value): if value not in config.LOG_DENIED_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s', choose from '%s'" % \ (value, "','".join(config.LOG_DENIED_VALUES))) if value != self.get_log_denied(): self._log_denied = value self._firewalld_conf.set("LogDenied", value) self._firewalld_conf.write() # now reload the firewall self.reload() else: raise FirewallError(errors.ALREADY_SET, value) # AUTOMATIC HELPERS def get_automatic_helpers(self): return self._automatic_helpers def set_automatic_helpers(self, value): if value not in config.AUTOMATIC_HELPERS_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s', choose from '%s'" % \ (value, "','".join(config.AUTOMATIC_HELPERS_VALUES))) if value != self.get_automatic_helpers(): self._automatic_helpers = value self._firewalld_conf.set("AutomaticHelpers", value) self._firewalld_conf.write() # now reload the firewall self.reload() else: raise FirewallError(errors.ALREADY_SET, value) # DEFAULT ZONE def get_default_zone(self): return self._default_zone def set_default_zone(self, zone): _zone = self.check_zone(zone) if _zone != self._default_zone: _old_dz = self._default_zone self._default_zone = _zone self._firewalld_conf.set("DefaultZone", _zone) self._firewalld_conf.write() else: raise FirewallError(errors.ZONE_ALREADY_SET, _zone) # lockdown def enable_lockdown(self): self._firewalld_conf.set("Lockdown", "yes") self._firewalld_conf.write() def disable_lockdown(self): self._firewalld_conf.set("Lockdown", "no") self._firewalld_conf.write() firewalld-0.4.4.6/src/firewall/core/fw_transaction.py000066400000000000000000000275261320241217000225570ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Transaction classes for firewalld""" __all__ = [ "check_rule", "reverse_rule", "FirewallTransaction", "FirewallZoneTransaction" ] from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError from firewall.fw_types import LastUpdatedOrderedDict # function check_rule def check_rule(args): """ Check if rule is valid (only add, insert and new chain rules are allowed) """ used_set = set(args) not_allowed_set = set(["-D", "--delete", # delete rule "-R", "--replace", # replace rule "-L", "--list", # list rule "-S", "--list-rules", # print rules "-F", "--flush", # flush rules "-Z", "--zero", # zero rules "-X", "--delete-chain", # delete chain "-P", "--policy", # policy "-E", "--rename-chain"]) # rename chain) # intersection of args and not_allowed is not empty, i.e. # something from args is not allowed if len(used_set & not_allowed_set) > 0: raise FirewallError(errors.INVALID_RULE, "arg '%s' is not allowed" % \ list(used_set & not_allowed_set)[0]) # args need to contain one of -A, -I, -C, -N needed_set = set([ "-A", "--append", "-I", "--insert", "-C", "--check", "-N", "--new-chain" ]) # empty intersection of args and needed, i.e. # none from args contains any needed command if len(used_set & needed_set) == 0: raise FirewallError(errors.INVALID_RULE, "no '-A', '-I', '-C' or '-N' arg") # function reverse_rule def reverse_rule(args): """ Inverse valid rule """ replace_args = { # Append "-A": "-D", "--append": "--delete", # Insert "-I": "-D", "--insert": "--delete", # New chain "-N": "-X", "--new-chain": "--delete-chain", } ret_args = args[:] for arg in replace_args: try: idx = ret_args.index(arg) except Exception: continue if arg in [ "-I", "--insert" ]: # With insert rulenum, then remove it if it is a number # Opt at position idx, chain at position idx+1, [rulenum] at # position idx+2 try: int(ret_args[idx+2]) except Exception: pass else: ret_args.pop(idx+2) ret_args[idx] = replace_args[arg] return ret_args # class FirewallTransaction class SimpleFirewallTransaction(object): """Base class for FirewallTransaction and FirewallZoneTransaction""" def __init__(self, fw): self.fw = fw self.rules = { } # [ ( ipv, [ rule,.. ] ),.. ] self.pre_funcs = [ ] # [ (func, args),.. ] self.post_funcs = [ ] # [ (func, args),.. ] self.fail_funcs = [ ] # [ (func, args),.. ] self.generous_mode = False def clear(self): self.rules.clear() del self.pre_funcs[:] del self.post_funcs[:] del self.fail_funcs[:] self.generous_mode = False def enable_generous_mode(self): self.generous_mode = True def disable_generous_mode(self): self.generous_mode = False def add_rule(self, ipv, rule): if ipv not in self.rules or rule not in self.rules[ipv]: self.rules.setdefault(ipv, [ ]).append(rule) def query_rule(self, ipv, rule): return ipv in self.rules and rule in self.rules[ipv] def remove_rule(self, ipv, rule): if ipv in self.rules and rule in self.rules[ipv]: self.rules[ipv].remove(rule) def add_pre(self, func, *args): self.pre_funcs.append((func, args)) def add_post(self, func, *args): self.post_funcs.append((func, args)) def add_fail(self, func, *args): self.fail_funcs.append((func, args)) def prepare(self, enable, rules=None, modules=None): log.debug4("%s.prepare(%s, %s)" % (type(self), enable, "...")) if rules is None: rules = { } if modules is None: modules = [ ] if not enable: # reverse rule order for cleanup for ipv in self.rules: for rule in reversed(self.rules[ipv]): rules.setdefault(ipv, [ ]).append(reverse_rule(rule)) else: for ipv in self.rules: rules.setdefault(ipv, [ ]).extend(self.rules[ipv]) return rules, modules def execute(self, enable): log.debug4("%s.execute(%s)" % (type(self), enable)) rules, modules = self.prepare(enable) # pre self.pre() # stage 1: apply rules error = False done = [ ] for ipv in rules: try: self.fw.rules(ipv, rules[ipv]) except Exception as msg: error = True if not self.generous_mode: log.warning(msg) else: done.append(ipv) if error and self.generous_mode: for ipv in rules: if ipv in done: continue for rule in rules[ipv]: try: self.fw.rule(ipv, rule) except Exception as msg: log.warning(msg) done.append(ipv) error = False # stage 2: load modules if not error: module_return = self.fw.handle_modules(modules, enable) if module_return: (cleanup_modules, msg) = module_return if cleanup_modules is not None: error = True self.fw.handle_modules(cleanup_modules, not enable) # error case: revert rules if error: undo_rules = { } for ipv in done: undo_rules[ipv] = [ ] for rule in reversed(rules[ipv]): undo_rules[ipv].append(reverse_rule(rule)) for ipv in undo_rules: try: self.fw.rules(ipv, undo_rules[ipv]) except Exception as msg: log.error(msg) # call failure functions for (func, args) in self.fail_funcs: try: func(*args) except Exception as msg: log.error("Calling fail func %s(%s) failed: %s" % \ (func, args, msg)) raise FirewallError(errors.COMMAND_FAILED) # post self.post() def pre(self): log.debug4("%s.pre()" % type(self)) for (func, args) in self.pre_funcs: try: func(*args) except Exception as msg: log.error("Calling pre func %s(%s) failed: %s" % \ (func, args, msg)) def post(self): log.debug4("%s.post()" % type(self)) for (func, args) in self.post_funcs: try: func(*args) except Exception as msg: log.error("Calling post func %s(%s) failed: %s" % \ (func, args, msg)) # class FirewallTransaction class FirewallTransaction(SimpleFirewallTransaction): """General FirewallTransaction, contains also zone transactions""" def __init__(self, fw): super(FirewallTransaction, self).__init__(fw) self.zone_transactions = LastUpdatedOrderedDict() # { zone: transaction, .. } def clear(self): super(FirewallTransaction, self).clear() self.zone_transactions.clear() def zone_transaction(self, zone): if zone not in self.zone_transactions: self.zone_transactions[zone] = FirewallZoneTransaction( self.fw, zone) return self.zone_transactions[zone] def prepare(self, enable, rules=None, modules=None): log.debug4("%s.prepare(%s, %s)" % (type(self), enable, "...")) rules, modules = super(FirewallTransaction, self).prepare( enable, rules, modules) for zone in self.zone_transactions: try: self.zone_transactions[zone].prepare(enable, rules) for module in self.zone_transactions[zone].modules: if module not in modules: modules.append(module) except FirewallError as msg: log.error("Failed to prepare transaction rules for zone '%s'", str(msg)) return rules, modules def pre(self): log.debug4("%s.pre()" % type(self)) super(FirewallTransaction, self).pre() for zone in self.zone_transactions: self.zone_transactions[zone].pre() def post(self): log.debug4("%s.post()" % type(self)) super(FirewallTransaction, self).post() for zone in self.zone_transactions: self.zone_transactions[zone].post() # class FirewallZoneTransaction class FirewallZoneTransaction(SimpleFirewallTransaction): """Zone transaction with additional chain and module interface""" def __init__(self, fw, zone): super(FirewallZoneTransaction, self).__init__(fw) self.zone = zone self.chains = [ ] # [ (table, chain),.. ] self.modules = [ ] # [ module,.. ] def clear(self): super(FirewallZoneTransaction, self).clear() del self.chains[:] del self.modules[:] def prepare(self, enable, rules=None, modules=None): log.debug4("%s.prepare(%s, %s)" % (type(self), enable, "...")) rules, modules = super(FirewallZoneTransaction, self).prepare( enable, rules, modules) for module in self.modules: if module not in modules: modules.append(module) return rules, modules def add_chain(self, table, chain): table_chain = (table, chain) if table_chain not in self.chains: self.fw.zone.gen_chain_rules(self.zone, True, [table_chain], self) self.chains.append(table_chain) def remove_chain(self, table, chain): table_chain = (table, chain) if table_chain in self.chains: self.chains.remove(table_chain) def add_chains(self, chains): for table_chain in chains: if table_chain not in self.chains: self.add_chain(table_chain[0], table_chain[1]) def remove_chains(self, chains): for table_chain in chains: if table_chain in self.chains: self.chains.remove(table_chain) def add_module(self, module): if module not in self.modules: self.modules.append(module) def remove_module(self, module): if module in self.modules: self.modules.remove(module) def add_modules(self, modules): for module in modules: self.add_module(module) def remove_modules(self, modules): for module in modules: self.remove_module(module) firewalld-0.4.4.6/src/firewall/core/fw_zone.py000066400000000000000000003314231320241217000211770ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import time from firewall.core.base import SHORTCUTS, DEFAULT_ZONE_TARGET, \ ZONE_SOURCE_IPSET_TYPES from firewall.core.logger import log from firewall.functions import portStr, checkIPnMask, checkIP6nMask, \ checkProtocol, enable_ip_forwarding, check_single_address, check_mac from firewall.core.rich import Rich_Rule, Rich_Accept, Rich_Reject, \ Rich_Drop, Rich_Mark, Rich_Service, Rich_Port, Rich_Protocol, \ Rich_Masquerade, Rich_ForwardPort, Rich_SourcePort, Rich_IcmpBlock, \ Rich_IcmpType from firewall.core.ipXtables import OUR_CHAINS from firewall.core.fw_transaction import FirewallTransaction, \ FirewallZoneTransaction from firewall.core.fw_ifcfg import ifcfg_set_zone_of_interface from firewall import errors from firewall.errors import FirewallError from firewall.fw_types import LastUpdatedOrderedDict class FirewallZone(object): def __init__(self, fw): self._fw = fw self._chains = { } self._zones = { } ip4tables_tables = self._fw.get_available_tables("ipv4") ip6tables_tables = self._fw.get_available_tables("ipv6") mangle = [] if "mangle" in ip4tables_tables: mangle.append("ipv4") if "mangle" in ip6tables_tables: mangle.append("ipv6") raw = [] if "raw" in ip4tables_tables: raw.append("ipv4") if "raw" in ip6tables_tables: raw.append("ipv6") nat = [] if "nat" in ip4tables_tables: nat.append("ipv4") else: if "ipv4" in mangle: mangle.remove("ipv4") if "nat" in ip6tables_tables: nat.append("ipv6") else: if "ipv6" in mangle: mangle.remove("ipv6") self.zone_chains = { "filter": { "INPUT": [ "ipv4", "ipv6" ], "FORWARD_IN": [ "ipv4", "ipv6" ], "FORWARD_OUT": [ "ipv4", "ipv6" ], }, "nat": { "PREROUTING": nat, "POSTROUTING": nat, }, "mangle": { "PREROUTING": mangle, }, "raw": { "PREROUTING": raw, }, } self.interface_zone_opts = { "PREROUTING": "-i", "POSTROUTING": "-o", "INPUT": "-i", "FORWARD_IN": "-i", "FORWARD_OUT": "-o", "OUTPUT": "-o", } ## transform self.interface_zone_opts for source address tbl = { "-i": "-s", "-o": "-d" } self.source_zone_opts = { key: tbl[val] for key,val in self.interface_zone_opts.items() } def __repr__(self): return '%s(%r, %r)' % (self.__class__, self._chains, self._zones) def cleanup(self): self._chains.clear() self._zones.clear() # transaction def new_transaction(self): return FirewallTransaction(self._fw) def new_zone_transaction(self, zone): return FirewallZoneTransaction(self._fw, zone) # zones def get_zones(self): return sorted(self._zones.keys()) def get_zone_of_interface(self, interface): interface_id = self.__interface_id(interface) for zone in self._zones: if interface_id in self._zones[zone].settings["interfaces"]: # an interface can only be part of one zone return zone return None def get_zone_of_source(self, source): source_id = self.__source_id(source) for zone in self._zones: if source_id in self._zones[zone].settings["sources"]: # a source_id can only be part of one zone return zone return None def get_zone(self, zone): z = self._fw.check_zone(zone) return self._zones[z] def _error2warning(self, f, name, *args, **kwargs): # transform errors into warnings try: f(name, *args, **kwargs) except FirewallError as error: msg = str(error) log.warning("%s: %s" % (name, msg)) def add_zone(self, obj): obj.settings = { x : LastUpdatedOrderedDict() for x in [ "interfaces", "sources", "services", "ports", "masquerade", "forward_ports", "source_ports", "icmp_blocks", "rules", "protocols", "icmp_block_inversion" ] } self._zones[obj.name] = obj def remove_zone(self, zone): obj = self._zones[zone] if obj.applied: self.unapply_zone_settings(zone) obj.settings.clear() del self._zones[zone] def apply_zones(self, use_transaction=None): if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction for zone in self.get_zones(): obj = self._zones[zone] zone_transaction = transaction.zone_transaction(zone) # register icmp block inversion setting but don't apply if obj.icmp_block_inversion: self._error2warning(self.add_icmp_block_inversion, obj.name, use_zone_transaction=zone_transaction) if len(obj.interfaces) > 0 or len(obj.sources) > 0: obj.applied = True log.debug1("Applying zone '%s'", obj.name) # load zone in case of missing services, icmptypes etc. for args in obj.icmp_blocks: self._error2warning(self.add_icmp_block, obj.name, args, use_zone_transaction=zone_transaction) for args in obj.forward_ports: self._error2warning(self.add_forward_port, obj.name, *args, use_zone_transaction=zone_transaction) for args in obj.services: self._error2warning(self.add_service, obj.name, args, use_zone_transaction=zone_transaction) for args in obj.ports: self._error2warning(self.add_port, obj.name, *args, use_zone_transaction=zone_transaction) for args in obj.protocols: self._error2warning(self.add_protocol, obj.name, args, use_zone_transaction=zone_transaction) for args in obj.source_ports: self._error2warning(self.add_source_port, obj.name, *args, use_zone_transaction=zone_transaction) if obj.masquerade: self._error2warning(self.add_masquerade, obj.name, use_zone_transaction=zone_transaction) for args in obj.rules: self._error2warning(self.add_rule, obj.name, args, use_zone_transaction=zone_transaction) for args in obj.interfaces: self._error2warning(self.add_interface, obj.name, args, use_zone_transaction=zone_transaction) for args in obj.sources: self._error2warning(self.add_source, obj.name, args, use_zone_transaction=zone_transaction) # apply icmp accept/reject rule always if obj.applied: self._error2warning(self.__icmp_block_inversion, True, obj.name, use_zone_transaction=zone_transaction) if use_transaction is None: transaction.execute(True) def set_zone_applied(self, zone, applied): obj = self._zones[zone] obj.applied = applied # zone from chain def zone_from_chain(self, chain): if "_" not in chain: # no zone chain return None splits = chain.split("_") if len(splits) < 2: return None _chain = None for x in SHORTCUTS: if splits[0] == SHORTCUTS[x]: _chain = x if _chain is not None: # next part needs to be zone name if splits[1] not in self.get_zones(): return None if len(splits) == 2 or \ (len(splits) == 3 and splits[2] in [ "log", "deny", "allow" ]): return (splits[1], _chain) return None def create_zone_base_by_chain(self, ipv, table, chain, use_transaction=None): # Create zone base chains if the chain is reserved for a zone if ipv in [ "ipv4", "ipv6" ]: x = self.zone_from_chain(chain) if x is not None: (_zone, _chain) = x if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction self.gen_chain_rules(_zone, True, [(table, _chain)], transaction) if use_transaction is None: transaction.execute(True) # dynamic chain handling def gen_chain_rules(self, zone, create, chains, transaction): for (table, chain) in chains: if create: if zone in self._chains and \ table in self._chains[zone] and \ chain in self._chains[zone][table]: continue else: if zone not in self._chains or \ table not in self._chains[zone] or \ chain not in self._chains[zone][table]: continue _zone = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS[chain], zone=zone) ipvs = [ ] if table in self._fw.get_available_tables("ipv4"): ipvs.append("ipv4") if table in self._fw.get_available_tables("ipv6"): ipvs.append("ipv6") for ipv in ipvs: OUR_CHAINS[table].update(set([_zone, "%s_log" % _zone, "%s_deny" % _zone, "%s_allow" % _zone])) transaction.add_rule(ipv, [ "-N", _zone, "-t", table ]) transaction.add_rule(ipv, [ "-N", "%s_log" % (_zone), "-t", table ]) transaction.add_rule(ipv, [ "-N", "%s_deny" % (_zone), "-t", table ]) transaction.add_rule(ipv, [ "-N", "%s_allow" % (_zone), "-t", table ]) transaction.add_rule(ipv, [ "-I", _zone, "1", "-t", table, "-j", "%s_log" % (_zone) ]) transaction.add_rule(ipv, [ "-I", _zone, "2", "-t", table, "-j", "%s_deny" % (_zone) ]) transaction.add_rule(ipv, [ "-I", _zone, "3", "-t", table, "-j", "%s_allow" % (_zone) ]) # Handle trust, block and drop zones: # Add an additional rule with the zone target (accept, reject # or drop) to the base _zone only in the filter table. # Otherwise it is not be possible to have a zone with drop # target, that is allowing traffic that is locally initiated # or that adds additional rules. (RHBZ#1055190) target = self._zones[zone].target if table == "filter" and \ target in [ "ACCEPT", "REJECT", "%%REJECT%%", "DROP" ] and \ chain in [ "INPUT", "FORWARD_IN", "FORWARD_OUT", "OUTPUT" ]: transaction.add_rule(ipv, [ "-I", _zone, "4", "-t", table, "-j", target ]) if self._fw.get_log_denied() != "off": if table == "filter" and \ chain in [ "INPUT", "FORWARD_IN", "FORWARD_OUT", "OUTPUT" ]: if target in [ "REJECT", "%%REJECT%%" ]: transaction.add_rule( ipv, [ "-I", _zone, "4", "-t", table, "%%LOGTYPE%%", "-j", "LOG", "--log-prefix", "\"%s_REJECT: \"" % _zone ]) if target == "DROP": transaction.add_rule( ipv, [ "-I", _zone, "4", "-t", table, "%%LOGTYPE%%", "-j", "LOG", "--log-prefix", "\"%s_DROP: \"" % _zone ]) self.__register_chains(zone, create, chains) transaction.add_fail(self.__register_chains, zone, create, chains) def __register_chains(self, zone, create, chains): # this method is used by FirewallZoneTransaction for (table, chain) in chains: if create: self._chains.setdefault(zone, { }).setdefault(table, [ ]).append(chain) else: self._chains[zone][table].remove(chain) if len(self._chains[zone][table]) == 0: del self._chains[zone][table] if len(self._chains[zone]) == 0: del self._chains[zone] # settings # generate settings record with sender, timeout, mark def __gen_settings(self, timeout, sender, mark=None): ret = { "date": time.time(), "sender": sender, "timeout": timeout, } if mark: ret["mark"] = mark return ret def get_settings(self, zone): return self.get_zone(zone).settings def set_settings(self, zone, settings): _obj = self.get_zone(zone) try: for key in settings: for args in settings[key]: if args in _obj.settings[key]: # do not add things, that are already active in the # zone configuration, also do not restore date, # sender and timeout continue if key == "icmp_blocks": self.add_icmp_block(zone, args) elif key == "forward_ports": self.add_forward_port(zone, *args) elif key == "services": self.add_service(zone, args) elif key == "ports": self.add_port(zone, *args) elif key == "protocols": self.add_protocol(zone, *args) elif key == "source_ports": self.add_source_port(zone, *args) elif key == "masquerade": self.add_masquerade(zone) elif key == "rules": self.add_rule(zone, Rich_Rule(rule_str=args)) elif key == "interfaces": self.change_zone_of_interface(zone, args) elif key == "sources": self.change_zone_of_source(zone, args) else: log.warning("Zone '%s': Unknown setting '%s:%s', " "unable to restore.", zone, key, args) # restore old date, sender and timeout if args in _obj.settings[key]: _obj.settings[key][args] = settings[key][args] except FirewallError as msg: log.warning(str(msg)) def __zone_settings(self, enable, zone, use_zone_transaction=None): _zone = self._fw.check_zone(zone) obj = self._zones[_zone] if (enable and obj.applied) or (not enable and not obj.applied): return if enable: obj.applied = True if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction settings = self.get_settings(zone) for key in settings: for args in settings[key]: try: if key == "icmp_blocks": self.__icmp_block(enable, _zone, args, use_zone_transaction=zone_transaction) elif key == "icmp_block_inversion": continue elif key == "forward_ports": mark = obj.settings["forward_ports"][args]["mark"] self.__forward_port(enable, _zone, *args, mark_id=mark, use_zone_transaction=zone_transaction) elif key == "services": self.__service(enable, _zone, args, use_zone_transaction=zone_transaction) elif key == "ports": self.__port(enable, _zone, *args, use_zone_transaction=zone_transaction) elif key == "protocols": self.__protocol(enable, _zone, args, use_zone_transaction=zone_transaction) elif key == "source_ports": self.__source_port(enable, _zone, *args, use_zone_transaction=zone_transaction) elif key == "masquerade": self.__masquerade(enable, _zone, use_zone_transaction=zone_transaction) elif key == "rules": self.__rule(enable, _zone, Rich_Rule(rule_str=args), None, use_zone_transaction=zone_transaction) elif key == "interfaces": self.__interface(enable, _zone, args, use_zone_transaction=zone_transaction) elif key == "sources": self.__source(enable, _zone, *args, use_zone_transaction=zone_transaction) else: log.warning("Zone '%s': Unknown setting '%s:%s', " "unable to apply", zone, key, args) except FirewallError as msg: log.warning(str(msg)) if enable: # add icmp rule(s) always self.__icmp_block_inversion(True, obj.name, use_zone_transaction=zone_transaction) if use_zone_transaction is None: zone_transaction.execute(enable) def apply_zone_settings(self, zone, use_zone_transaction=None): self.__zone_settings(True, zone, use_zone_transaction) def unapply_zone_settings(self, zone, use_zone_transaction=None): self.__zone_settings(False, zone, use_zone_transaction) def unapply_zone_settings_if_unused(self, zone): obj = self._zones[zone] if len(obj.interfaces) == 0 and len(obj.sources) == 0: self.unapply_zone_settings(zone) def get_config_with_settings(self, zone): """ :return: exported config updated with runtime settings """ conf = list(self.get_zone(zone).export_config()) if conf[4] == DEFAULT_ZONE_TARGET: conf[4] = "default" conf[5] = self.list_services(zone) conf[6] = self.list_ports(zone) conf[7] = self.list_icmp_blocks(zone) conf[8] = self.query_masquerade(zone) conf[9] = self.list_forward_ports(zone) conf[10] = self.list_interfaces(zone) conf[11] = self.list_sources(zone) conf[12] = self.list_rules(zone) conf[13] = self.list_protocols(zone) conf[14] = self.list_source_ports(zone) conf[15] = self.query_icmp_block_inversion(zone) return tuple(conf) # INTERFACES def check_interface(self, interface): self._fw.check_interface(interface) def interface_get_sender(self, zone, interface): _zone = self._fw.check_zone(zone) _obj = self._zones[_zone] interface_id = self.__interface_id(interface) if interface_id in _obj.settings["interfaces"]: settings = _obj.settings["interfaces"][interface_id] if "sender" in settings and settings["sender"] is not None: return settings["sender"] return None def __interface_id(self, interface): self.check_interface(interface) return interface def __interface(self, enable, zone, interface, append=False, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction for table in self.zone_chains: for chain in self.zone_chains[table]: # create needed chains if not done already if enable: zone_transaction.add_chain(table, chain) for ipv in self.zone_chains[table][chain]: # handle all zones in the same way here, now # trust and block zone targets are handled now in __chain opt = self.interface_zone_opts[chain] target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS[chain], zone=zone) if self._zones[zone].target == DEFAULT_ZONE_TARGET: action = "-g" else: action = "-j" if enable and not append: rule = [ "-I", "%s_ZONES" % chain, "1" ] elif enable: rule = [ "-A", "%s_ZONES" % chain ] else: rule = [ "-D", "%s_ZONES" % chain ] rule += [ "-t", table, opt, interface, action, target ] zone_transaction.add_rule(ipv, rule) if use_zone_transaction is None: zone_transaction.execute(enable) def add_interface(self, zone, interface, sender=None, use_zone_transaction=None): self._fw.check_panic() _zone = self._fw.check_zone(zone) _obj = self._zones[_zone] interface_id = self.__interface_id(interface) if interface_id in _obj.settings["interfaces"]: raise FirewallError(errors.ZONE_ALREADY_SET, "'%s' already bound to '%s'" % (interface, zone)) if self.get_zone_of_interface(interface) is not None: raise FirewallError(errors.ZONE_CONFLICT, "'%s' already bound to a zone" % interface) log.debug1("Setting zone of interface '%s' to '%s'" % (interface, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if not _obj.applied: self.apply_zone_settings(zone, use_zone_transaction=zone_transaction) zone_transaction.add_fail(self.set_zone_applied, _zone, False) self.__interface(True, _zone, interface, use_zone_transaction=zone_transaction) self.__register_interface(_obj, interface_id, zone, sender) zone_transaction.add_fail(self.__unregister_interface, _obj, interface_id) zone_transaction.add_post(ifcfg_set_zone_of_interface, zone, interface) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_interface(self, _obj, interface_id, zone, sender): _obj.settings["interfaces"][interface_id] = \ self.__gen_settings(0, sender) # add information whether we add to default or specific zone _obj.settings["interfaces"][interface_id]["__default__"] = \ (not zone or zone == "") def change_zone_of_interface(self, zone, interface, sender=None): self._fw.check_panic() _old_zone = self.get_zone_of_interface(interface) _new_zone = self._fw.check_zone(zone) if _new_zone == _old_zone: return _old_zone if _old_zone is not None: self.remove_interface(_old_zone, interface) _zone = self.add_interface(zone, interface, sender) return _zone def change_default_zone(self, old_zone, new_zone, use_transaction=None): self._fw.check_panic() if use_transaction is None: transaction = self.new_transaction() else: transaction = use_transaction zone_transaction = transaction.zone_transaction(new_zone) self.apply_zone_settings(new_zone, zone_transaction) self.__interface(True, new_zone, "+", append=True, use_zone_transaction=zone_transaction) if old_zone is not None and old_zone != "": zone_transaction = transaction.zone_transaction(old_zone) self.__interface(False, old_zone, "+", append=True, use_zone_transaction=zone_transaction) if use_transaction is None: transaction.execute(True) def remove_interface(self, zone, interface, use_zone_transaction=None): self._fw.check_panic() zoi = self.get_zone_of_interface(interface) if zoi is None: raise FirewallError(errors.UNKNOWN_INTERFACE, "'%s' is not in any zone" % interface) _zone = zoi if zone == "" else self._fw.check_zone(zone) if zoi != _zone: raise FirewallError(errors.ZONE_CONFLICT, "remove_interface(%s, %s): zoi='%s'" % \ (zone, interface, zoi)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction _obj = self._zones[_zone] interface_id = self.__interface_id(interface) self.__interface(False, _zone, interface, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_interface, _obj, interface_id) # Do not reset ZONE with ifdown # On reboot or shutdown the zone has been reset to default # if the network service is enabled and controlling the # interface (RHBZ#1381314) #zone_transaction.add_post(ifcfg_set_zone_of_interface, "", interface) if use_zone_transaction is None: zone_transaction.execute(True) # self.unapply_zone_settings_if_unused(_zone) return _zone def __unregister_interface(self, _obj, interface_id): if interface_id in _obj.settings["interfaces"]: del _obj.settings["interfaces"][interface_id] def query_interface(self, zone, interface): return self.__interface_id(interface) in self.get_settings(zone)["interfaces"] def list_interfaces(self, zone): return self.get_settings(zone)["interfaces"].keys() # IPSETS def ipset_family(self, name): if self._fw.ipset.get_type(name) == "hash:mac": return None return self._fw.ipset.get_family(name) def ipset_type(self, name): return self._fw.ipset.get_type(name) def ipset_dimension(self, name): return self._fw.ipset.get_dimension(name) def ipset_match_flags(self, name, flag): return ",".join([flag] * self._fw.ipset.get_dimension(name)) def check_ipset_applied(self, name): return self._fw.ipset.check_applied(name) def check_ipset_type_for_source(self, name): _type = self.ipset_type(name) if _type not in ZONE_SOURCE_IPSET_TYPES: raise FirewallError( errors.INVALID_IPSET, "ipset '%s' with type '%s' not usable as source" % \ (name, _type)) # SOURCES def check_source(self, source): if checkIPnMask(source): return "ipv4" elif checkIP6nMask(source): return "ipv6" elif check_mac(source): return "" elif source.startswith("ipset:"): self.check_ipset_type_for_source(source[6:]) self.check_ipset_applied(source[6:]) return self.ipset_family(source[6:]) else: raise FirewallError(errors.INVALID_ADDR, source) def __source_id(self, source): ipv = self.check_source(source) return (ipv, source) def __source(self, enable, zone, ipv, source, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction # make sure mac addresses are unique if check_mac(source): source = source.upper() add_del = { True: "-A", False: "-D" }[enable] # For mac source bindings ipv is an empty string, the mac source will # be added for ipv4 and ipv6 if ipv == "" or ipv is None: for ipv in [ "ipv4", "ipv6" ]: for table in self.zone_chains: for chain in self.zone_chains[table]: # create needed chains if not done already if enable: zone_transaction.add_chain(table, chain) # for zone mac source bindings the features are limited if self._zones[zone].target == DEFAULT_ZONE_TARGET: action = "-g" else: action = "-j" target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS[chain], zone=zone) opt = self.source_zone_opts[chain] if source.startswith("ipset:"): _name = source[6:] if opt == "-d": opt = "dst" else: opt = "src" flags = self.ipset_match_flags(_name, opt) rule = [ add_del, "%s_ZONES_SOURCE" % chain, "-t", table, "-m", "set", "--match-set", _name, flags, action, target ] else: # outgoing can not be set if opt == "-d": continue rule = [ add_del, "%s_ZONES_SOURCE" % chain, "-t", table, "-m", "mac", "--mac-source", source, action, target ] zone_transaction.add_rule(ipv, rule) else: for table in self.zone_chains: for chain in self.zone_chains[table]: # create needed chains if not done already if enable: zone_transaction.add_chain(table, chain) # handle all zone bindings in the same way # trust, block and drop zone targets are handled in __chain if self._zones[zone].target == DEFAULT_ZONE_TARGET: action = "-g" else: action = "-j" target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS[chain], zone=zone) opt = self.source_zone_opts[chain] rule = [ add_del, "%s_ZONES_SOURCE" % chain, "-t", table ] if source.startswith("ipset:"): _name = source[6:] if opt == "-d": opt = "dst" else: opt = "src" flags = self.ipset_match_flags(_name, opt) rule = [ add_del, "%s_ZONES_SOURCE" % chain, "-t", table, "-m", "set", "--match-set", _name, flags, action, target ] else: rule = [ add_del, "%s_ZONES_SOURCE" % chain, "-t", table, opt, source, action, target ] zone_transaction.add_rule(ipv, rule) if use_zone_transaction is None: zone_transaction.execute(enable) def add_source(self, zone, source, sender=None, use_zone_transaction=None): self._fw.check_panic() _zone = self._fw.check_zone(zone) _obj = self._zones[_zone] if check_mac(source): source = source.upper() source_id = self.__source_id(source) if source_id in _obj.settings["sources"]: raise FirewallError(errors.ZONE_ALREADY_SET, "'%s' already bound to '%s'" % (source, _zone)) if self.get_zone_of_source(source) is not None: raise FirewallError(errors.ZONE_CONFLICT, "'%s' already bound to a zone" % source) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if not _obj.applied: self.apply_zone_settings(zone, use_zone_transaction=zone_transaction) zone_transaction.add_fail(self.set_zone_applied, _zone, False) self.__source(True, _zone, source_id[0], source_id[1], use_zone_transaction=zone_transaction) self.__register_source(_obj, source_id, zone, sender) zone_transaction.add_fail(self.__unregister_source, _obj, source_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_source(self, _obj, source_id, zone, sender): _obj.settings["sources"][source_id] = \ self.__gen_settings(0, sender) # add information whether we add to default or specific zone _obj.settings["sources"][source_id]["__default__"] = (not zone or zone == "") def change_zone_of_source(self, zone, source, sender=None): self._fw.check_panic() _old_zone = self.get_zone_of_source(source) _new_zone = self._fw.check_zone(zone) if _new_zone == _old_zone: return _old_zone if check_mac(source): source = source.upper() if _old_zone is not None: self.remove_source(_old_zone, source) _zone = self.add_source(zone, source, sender) return _zone def remove_source(self, zone, source, use_zone_transaction=None): self._fw.check_panic() if check_mac(source): source = source.upper() zos = self.get_zone_of_source(source) if zos is None: raise FirewallError(errors.UNKNOWN_SOURCE, "'%s' is not in any zone" % source) _zone = zos if zone == "" else self._fw.check_zone(zone) if zos != _zone: raise FirewallError(errors.ZONE_CONFLICT, "remove_source(%s, %s): zos='%s'" % \ (zone, source, zos)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction _obj = self._zones[_zone] source_id = self.__source_id(source) self.__source(False, _zone, source_id[0], source_id[1], use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_source, _obj, source_id) if use_zone_transaction is None: zone_transaction.execute(True) # self.unapply_zone_settings_if_unused(_zone) return _zone def __unregister_source(self, _obj, source_id): if source_id in _obj.settings["sources"]: del _obj.settings["sources"][source_id] def query_source(self, zone, source): if check_mac(source): source = source.upper() return self.__source_id(source) in self.get_settings(zone)["sources"] def list_sources(self, zone): return [ k[1] for k in self.get_settings(zone)["sources"].keys() ] # RICH LANGUAGE def check_rule(self, rule): rule.check() def __rule_id(self, rule): self.check_rule(rule) return str(rule) def __rule_source_ipv(self, source): if not source: return None if source.addr: if checkIPnMask(source.addr): return "ipv4" elif checkIP6nMask(source.addr): return "ipv6" elif hasattr(source, "mac") and source.mac: return "" elif hasattr(source, "ipset") and source.ipset: self.check_ipset_type_for_source(source.ipset) self.check_ipset_applied(source.ipset) return self.ipset_family(source.ipset) return None def __rule_source(self, source, command): if source: if source.addr: if source.invert: command.append("!") command += [ "-s", source.addr ] elif hasattr(source, "mac") and source.mac: command += [ "-m", "mac" ] if source.invert: command.append("!") command += [ "--mac-source", source.mac ] elif hasattr(source, "ipset") and source.ipset: command += [ "-m", "set" ] if source.invert: command.append("!") flags = self.ipset_match_flags(source.ipset, "src") command += [ "--match-set", source.ipset, flags ] def __rule_destination(self, destination, command): if destination: if destination.invert: command.append("!") command += [ "-d", destination.addr ] def __rule_limit(self, limit): if limit: return [ "-m", "limit", "--limit", limit.value ] return [ ] def __rule_log(self, enable, ipv, table, target, rule, command, zone_transaction): if not rule.log: return chain = "%s_log" % target _command = command[:] _command += [ "-j", "LOG" ] if rule.log.prefix: _command += [ "--log-prefix", '"%s"' % rule.log.prefix ] if rule.log.level: _command += [ "--log-level", '"%s"' % rule.log.level ] _command += self.__rule_limit(rule.log.limit) add_del = { True: "-A", False: "-D" }[enable] _rule = [ add_del, chain, "-t", table ] _rule += _command zone_transaction.add_rule(ipv, _rule) def __rule_audit(self, enable, ipv, table, target, rule, command, zone_transaction): if not rule.audit: return chain = "%s_log" % target _command = command[:] if type(rule.action) == Rich_Accept: _type = "accept" elif type(rule.action) == Rich_Reject: _type = "reject" elif type(rule.action) == Rich_Drop: _type = "drop" else: _type = "unknown" _command += [ "-j", "AUDIT", "--type", _type ] _command += self.__rule_limit(rule.audit.limit) add_del = { True: "-A", False: "-D" }[enable] _rule = [ add_del, chain, "-t", table ] _rule += _command zone_transaction.add_rule(ipv, _rule) def __rule_action(self, enable, zone, ipv, table, target, rule, command, zone_transaction): if not rule.action: return _command = command[:] if type(rule.action) == Rich_Accept: chain = "%s_allow" % target _command += [ "-j", "ACCEPT" ] elif type(rule.action) == Rich_Reject: chain = "%s_deny" % target _command += [ "-j", "REJECT" ] if rule.action.type: _command += [ "--reject-with", rule.action.type ] elif type(rule.action) == Rich_Drop: chain = "%s_deny" % target _command += [ "-j", "DROP" ] elif type(rule.action) == Rich_Mark: if enable: zone_transaction.add_chain("mangle", "PREROUTING") table = "mangle" target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["PREROUTING"], zone=zone) chain = "%s_allow" % target _command += [ "-j", "MARK", "--set-xmark", rule.action.set ] else: raise FirewallError(errors.INVALID_RULE, "Unknown action %s" % type(rule.action)) _command += self.__rule_limit(rule.action.limit) add_del = { True: "-A", False: "-D" }[enable] _rule = [ add_del, chain, "-t", table ] _rule += _command zone_transaction.add_rule(ipv, _rule) def __rule_prepare(self, enable, zone, rule, mark_id, zone_transaction): if rule.family is not None: ipvs = [ rule.family ] else: ipvs = [ "ipv4", "ipv6" ] add_del = { True: "-A", False: "-D" }[enable] source_ipv = self.__rule_source_ipv(rule.source) if source_ipv is not None and source_ipv != "": if rule.family is not None: # rule family is defined by user, no way to change it if rule.family != source_ipv: raise FirewallError(errors.INVALID_RULE, "Source address family '%s' conflicts with rule family '%s'." % (source_ipv, rule.family)) else: # use the source family as rule family ipvs = [ source_ipv ] for ipv in ipvs: # SERVICE if type(rule.element) == Rich_Service: svc = self._fw.service.get_service(rule.element.name) if len(svc.destination) > 0: if ipv not in svc.destination: # destination is set, only use if it contains ipv raise FirewallError(errors.INVALID_RULE, "Service %s is not usable with %s" % (rule.element.name, ipv)) if svc.destination[ipv] != "" and rule.destination: # we can not use two destinations at the same time raise FirewallError(errors.INVALID_RULE, "Destination conflict with service.") table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") if self._fw.nf_conntrack_helper_setting == 0: zone_transaction.add_chain("raw", "PREROUTING") if type(rule.action) == Rich_Accept: # only load modules for accept action helpers = self.get_helpers_for_service_modules(svc.modules, enable) modules = [ ] for helper in helpers: module = helper.module if self._fw.nf_conntrack_helper_setting == 0: if helper.name not in \ self._fw.nf_conntrack_helpers[module]: raise FirewallError( errors.INVALID_HELPER, "'%s' not available in kernel" % module) if helper.family != "" and helper.family != ipv: # no support for family ipv, continue continue for (port,proto) in helper.ports: target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["PREROUTING"], zone=zone) _rule = [ add_del, "%s_allow" % (target), "-t", "raw", "-p", proto ] if port: _rule += [ "--dport", "%s" % portStr(port) ] if ipv in svc.destination and \ svc.destination[ipv] != "": _rule += [ "-d", svc.destination[ipv] ] _rule += [ "-j", "CT", "--helper", helper.name ] self.__rule_source(rule.source, _rule) zone_transaction.add_rule(ipv, _rule) nat_module = module.replace("conntrack", "nat") if nat_module in self._fw.nf_nat_helpers: modules.append(nat_module) else: if helper.module not in modules: modules.append(helper.module) nat_module = helper.module.replace("conntrack", "nat") if nat_module in self._fw.nf_nat_helpers: modules.append(nat_module) zone_transaction.add_modules(modules) target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) # create rules for (port,proto) in svc.ports: command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-p", proto ] if port: command += [ "--dport", "%s" % portStr(port) ] if ipv in svc.destination and svc.destination[ipv] != "": command += [ "-d", svc.destination[ipv] ] if type(rule.action) != Rich_Mark: command += [ "-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) for proto in svc.protocols: command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-p", proto ] if ipv in svc.destination and svc.destination[ipv] != "": command += [ "-d", svc.destination[ipv] ] if type(rule.action) != Rich_Mark: command += [ "-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # create rules for (port,proto) in svc.source_ports: command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-p", proto ] if port: command += [ "--sport", "%s" % portStr(port) ] if ipv in svc.destination and svc.destination[ipv] != "": command += [ "-d", svc.destination[ipv] ] if type(rule.action) != Rich_Mark: command += [ "-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # PORT elif type(rule.element) == Rich_Port: port = rule.element.port protocol = rule.element.protocol self.check_port(port, protocol) table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-m", protocol, "-p", protocol, "--dport", portStr(port) ] if type(rule.action) != Rich_Mark: command += [ "-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # PROTOCOL elif type(rule.element) == Rich_Protocol: protocol = rule.element.value self.check_protocol(protocol) table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-p", protocol ] if type(rule.action) != Rich_Mark: command += ["-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # MASQUERADE elif type(rule.element) == Rich_Masquerade: if enable: zone_transaction.add_chain("nat", "POSTROUTING") zone_transaction.add_chain("filter", "FORWARD_OUT") zone_transaction.add_post(enable_ip_forwarding, ipv) # POSTROUTING target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["POSTROUTING"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "!", "-o", "lo", "-j", "MASQUERADE" ] _rule = [ add_del, "%s_allow" % target, "-t", "nat" ] _rule += command zone_transaction.add_rule(ipv, _rule) # FORWARD_OUT target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["FORWARD_OUT"], zone=zone) command = [ ] # reverse source/destination ! self.__rule_source(rule.destination, command) self.__rule_destination(rule.source, command) command += [ "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ] _rule = [ add_del, "%s_allow" % target, "-t", "filter" ] _rule += command zone_transaction.add_rule(ipv, _rule) # FORWARD PORT elif type(rule.element) == Rich_ForwardPort: port = rule.element.port protocol = rule.element.protocol toport = rule.element.to_port toaddr = rule.element.to_address self.check_forward_port(ipv, port, protocol, toport, toaddr) if enable: zone_transaction.add_post(enable_ip_forwarding, ipv) mark_id = self._fw.new_mark() filter_chain = "INPUT" if not toaddr else "FORWARD_IN" if enable: zone_transaction.add_chain("mangle", "PREROUTING") zone_transaction.add_chain("nat", "PREROUTING") zone_transaction.add_chain("filter", filter_chain) mark_str = "0x%x" % mark_id port_str = portStr(port) to = "" if toaddr: if ipv == "ipv6": to += "[%s]" % toaddr else: to += toaddr if toport and toport != "": to += ":%s" % portStr(toport, "-") mark = [ "-m", "mark", "--mark", mark_str ] target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["PREROUTING"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-p", protocol, "--dport", port_str ] # log self.__rule_log(enable, ipv, "mangle", target, rule, command, zone_transaction) # mark for later dnat using mark command += [ "-j", "MARK", "--set-mark", mark_str ] _rule = [ add_del, "%s_allow" % target, "-t", "mangle" ] _rule += command zone_transaction.add_rule(ipv, _rule) # local and remote command = [ "-p", protocol ] + mark + \ [ "-j", "DNAT", "--to-destination", to ] _rule = [ add_del, "%s_allow" % target, "-t", "nat" ] _rule += command zone_transaction.add_rule(ipv, _rule) target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS[filter_chain], zone=zone) command = [ "-m", "conntrack", "--ctstate", "NEW" ] + \ mark + [ "-j", "ACCEPT" ] _rule = [ add_del, "%s_allow" % target, "-t", "filter" ] _rule += command zone_transaction.add_rule(ipv, _rule) if not enable: zone_transaction.add_post(self._fw.del_mark, mark_id) mark_id = None # SOURCE PORT elif type(rule.element) == Rich_SourcePort: port = rule.element.port protocol = rule.element.protocol self.check_port(port, protocol) table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += [ "-m", protocol, "-p", protocol, "--sport", portStr(port) ] if type(rule.action) != Rich_Mark: command += [ "-m", "conntrack", "--ctstate", "NEW" ] self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # ICMP BLOCK and ICMP TYPE elif type(rule.element) == Rich_IcmpBlock or \ type(rule.element) == Rich_IcmpType: ict = self._fw.icmptype.get_icmptype(rule.element.name) if type(rule.element) == Rich_IcmpBlock and \ rule.action and type(rule.action) == Rich_Accept: # icmp block might have reject or drop action, but not accept raise FirewallError(errors.INVALID_RULE, "IcmpBlock not usable with accept action") if ict.destination and ipv not in ict.destination: if rule.family is None: # Add for IPv4 or IPv6 depending on ict.destination continue raise FirewallError( errors.INVALID_RULE, "Icmp%s %s not usable with %s" % \ ("Block" if type(rule.element) == \ Rich_IcmpBlock else "Type", rule.element.name, ipv)) table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") zone_transaction.add_chain(table, "FORWARD_IN") if ipv == "ipv4": proto = [ "-p", "icmp" ] match = [ "-m", "icmp", "--icmp-type", rule.element.name ] else: proto = [ "-p", "ipv6-icmp" ] match = [ "-m", "icmp6", "--icmpv6-type", rule.element.name ] # INPUT target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += proto + match self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) if rule.action: self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) else: command += [ "-j", "%%REJECT%%" ] _rule = [ add_del, "%s_deny" % target, "-t", table ] _rule += command zone_transaction.add_rule(ipv, _rule) # FORWARD_IN target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["FORWARD_IN"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) command += proto + match self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) if rule.action: self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) else: command += [ "-j", "%%REJECT%%" ] _rule = [ add_del, "%s_deny" % target, "-t", table ] _rule += command zone_transaction.add_rule(ipv, _rule) elif rule.element is None: # source/destination action table = "filter" if enable: zone_transaction.add_chain(table, "INPUT") target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) command = [ ] self.__rule_source(rule.source, command) self.__rule_destination(rule.destination, command) self.__rule_log(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_audit(enable, ipv, table, target, rule, command, zone_transaction) self.__rule_action(enable, zone, ipv, table, target, rule, command, zone_transaction) # EVERYTHING ELSE else: raise FirewallError(errors.INVALID_RULE, "Unknown element %s" % type(rule.element)) return mark_id def __rule(self, enable, zone, rule, mark_id, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction try: mark = self.__rule_prepare(enable, zone, rule, mark_id, zone_transaction) except FirewallError as msg: log.warning(str(msg)) mark = None if use_zone_transaction is None: zone_transaction.execute(enable) return mark def add_rule(self, zone, rule, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] rule_id = self.__rule_id(rule) if rule_id in _obj.settings["rules"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s' already in '%s'" % (rule, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: mark = self.__rule(True, _zone, rule, None, use_zone_transaction=zone_transaction) else: mark = None self.__register_rule(_obj, rule_id, mark, timeout, sender) zone_transaction.add_fail(self.__unregister_rule, _obj, rule_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_rule(self, _obj, rule_id, mark, timeout, sender): _obj.settings["rules"][rule_id] = self.__gen_settings( timeout, sender, mark=mark) def remove_rule(self, zone, rule, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] rule_id = self.__rule_id(rule) if rule_id not in _obj.settings["rules"]: raise FirewallError(errors.NOT_ENABLED, "'%s' not in '%s'" % (rule, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if "mark" in _obj.settings["rules"][rule_id]: mark = _obj.settings["rules"][rule_id]["mark"] else: mark = None if _obj.applied: self.__rule(False, _zone, rule, mark, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_rule, _obj, rule_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_rule(self, _obj, rule_id): if rule_id in _obj.settings["rules"]: del _obj.settings["rules"][rule_id] def query_rule(self, zone, rule): return self.__rule_id(rule) in self.get_settings(zone)["rules"] def list_rules(self, zone): return list(self.get_settings(zone)["rules"].keys()) # SERVICES def check_service(self, service): self._fw.check_service(service) def __service_id(self, service): self.check_service(service) return service def __service(self, enable, zone, service, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction svc = self._fw.service.get_service(service) helpers = self.get_helpers_for_service_modules(svc.modules, enable) if enable: if self._fw.nf_conntrack_helper_setting == 0: zone_transaction.add_chain("raw", "PREROUTING") else: modules = [ ] for helper in helpers: modules.append(helper.module) nat_module = helper.module.replace("conntrack", "nat") if nat_module in self._fw.nf_nat_helpers: modules.append(nat_module) zone_transaction.add_modules(modules) zone_transaction.add_chain("filter", "INPUT") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: if len(svc.destination) > 0 and ipv not in svc.destination: # destination is set, only use if it contains ipv continue if self._fw.nf_conntrack_helper_setting == 0: for helper in helpers: module = helper.module if helper.name not in \ self._fw.nf_conntrack_helpers[module]: raise FirewallError( errors.INVALID_HELPER, "'%s' is not available in kernel" % module) nat_module = helper.module.replace("conntrack", "nat") if nat_module in self._fw.nf_nat_helpers: zone_transaction.add_module(nat_module) if helper.family != "" and helper.family != ipv: # no support for family ipv, continue continue for (port,proto) in helper.ports: target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["PREROUTING"], zone=zone) rule = [ add_del, "%s_allow" % (target), "-t", "raw", "-p", proto ] if port: rule += [ "--dport", "%s" % portStr(port) ] if ipv in svc.destination and \ svc.destination[ipv] != "": rule += [ "-d", svc.destination[ipv] ] rule += [ "-j", "CT", "--helper", helper.name ] zone_transaction.add_rule(ipv, rule) # handle rules for (port,proto) in svc.ports: target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["INPUT"], zone=zone) rule = [ add_del, "%s_allow" % (target), "-t", "filter", "-p", proto ] if port: rule += [ "--dport", "%s" % portStr(port) ] if ipv in svc.destination and svc.destination[ipv] != "": rule += [ "-d", svc.destination[ipv] ] rule += [ "-m", "conntrack", "--ctstate", "NEW" ] rule += [ "-j", "ACCEPT" ] zone_transaction.add_rule(ipv, rule) for protocol in svc.protocols: target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["INPUT"], zone=zone) rule = [ add_del, "%s_allow" % (target), "-t", "filter", "-p", protocol, "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ] zone_transaction.add_rule(ipv, rule) for (port,proto) in svc.source_ports: target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["INPUT"], zone=zone) rule = [ add_del, "%s_allow" % (target), "-t", "filter", "-p", proto ] if port: rule += [ "--sport", "%s" % portStr(port) ] if ipv in svc.destination and svc.destination[ipv] != "": rule += [ "-d", svc.destination[ipv] ] rule += [ "-m", "conntrack", "--ctstate", "NEW" ] rule += [ "-j", "ACCEPT" ] zone_transaction.add_rule(ipv, rule) if use_zone_transaction is None: zone_transaction.execute(enable) def add_service(self, zone, service, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] service_id = self.__service_id(service) if service_id in _obj.settings["services"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s' already in '%s'" % (service, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__service(True, _zone, service, use_zone_transaction=zone_transaction) self.__register_service(_obj, service_id, timeout, sender) zone_transaction.add_fail(self.__unregister_service, _obj, service_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_service(self, _obj, service_id, timeout, sender): _obj.settings["services"][service_id] = \ self.__gen_settings(timeout, sender) def remove_service(self, zone, service, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] service_id = self.__service_id(service) if service_id not in _obj.settings["services"]: raise FirewallError(errors.NOT_ENABLED, "'%s' not in '%s'" % (service, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__service(False, _zone, service, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_service, _obj, service_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_service(self, _obj, service_id): if service_id in _obj.settings["services"]: del _obj.settings["services"][service_id] def query_service(self, zone, service): return self.__service_id(service) in self.get_settings(zone)["services"] def list_services(self, zone): return self.get_settings(zone)["services"].keys() def get_helpers_for_service_modules(self, modules, enable): # If automatic helper assignment is turned off, helpers that # do not have ports defined will be replaced by the helpers # that the helper.module defines. _helpers = [ ] for module in modules: try: helper = self._fw.helper.get_helper(module) except FirewallError: raise FirewallError(errors.INVALID_HELPER, module) if helper.module not in self._fw.nf_conntrack_helpers: raise FirewallError( errors.INVALID_HELPER, "'%s' is not available" % helper.module) if self._fw.nf_conntrack_helper_setting == 0 and \ len(helper.ports) < 1: for mod in self._fw.nf_conntrack_helpers[helper.module]: try: _helper = self._fw.helper.get_helper(mod) except FirewallError: if enable: log.warning("Helper '%s' is not available" % mod) continue _helpers.append(_helper) else: _helpers.append(helper) return _helpers # PORTS def check_port(self, port, protocol): self._fw.check_port(port) self._fw.check_tcpudp(protocol) def __port_id(self, port, protocol): self.check_port(port, protocol) return (portStr(port, "-"), protocol) def __port(self, enable, zone, port, protocol, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction if enable: zone_transaction.add_chain("filter", "INPUT") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "filter", "-m", protocol, "-p", protocol, "--dport", portStr(port), "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_port(self, zone, port, protocol, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] port_id = self.__port_id(port, protocol) if port_id in _obj.settings["ports"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s' already in '%s'" % (port, protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__port(True, _zone, port, protocol, use_zone_transaction=zone_transaction) self.__register_port(_obj, port_id, timeout, sender) zone_transaction.add_fail(self.__unregister_port, _obj, port_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_port(self, _obj, port_id, timeout, sender): _obj.settings["ports"][port_id] = \ self.__gen_settings(timeout, sender) def remove_port(self, zone, port, protocol, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] port_id = self.__port_id(port, protocol) if port_id not in _obj.settings["ports"]: raise FirewallError(errors.NOT_ENABLED, "'%s:%s' not in '%s'" % (port, protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__port(False, _zone, port, protocol, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_port, _obj, port_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_port(self, _obj, port_id): if port_id in _obj.settings["ports"]: del _obj.settings["ports"][port_id] def query_port(self, zone, port, protocol): return self.__port_id(port, protocol) in self.get_settings(zone)["ports"] def list_ports(self, zone): return list(self.get_settings(zone)["ports"].keys()) # PROTOCOLS def check_protocol(self, protocol): if not checkProtocol(protocol): raise FirewallError(errors.INVALID_PROTOCOL, protocol) def __protocol_id(self, protocol): self.check_protocol(protocol) return protocol def __protocol(self, enable, zone, protocol, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction if enable: zone_transaction.add_chain("filter", "INPUT") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "filter", "-p", protocol, "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_protocol(self, zone, protocol, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] protocol_id = self.__protocol_id(protocol) if protocol_id in _obj.settings["protocols"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s' already in '%s'" % (protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__protocol(True, _zone, protocol, use_zone_transaction=zone_transaction) self.__register_protocol(_obj, protocol_id, timeout, sender) zone_transaction.add_fail(self.__unregister_protocol, _obj, protocol_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_protocol(self, _obj, protocol_id, timeout, sender): _obj.settings["protocols"][protocol_id] = \ self.__gen_settings(timeout, sender) def remove_protocol(self, zone, protocol, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] protocol_id = self.__protocol_id(protocol) if protocol_id not in _obj.settings["protocols"]: raise FirewallError(errors.NOT_ENABLED, "'%s' not in '%s'" % (protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__protocol(False, _zone, protocol, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_protocol, _obj, protocol_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_protocol(self, _obj, protocol_id): if protocol_id in _obj.settings["protocols"]: del _obj.settings["protocols"][protocol_id] def query_protocol(self, zone, protocol): return self.__protocol_id(protocol) in self.get_settings(zone)["protocols"] def list_protocols(self, zone): return list(self.get_settings(zone)["protocols"].keys()) # SOURCE PORTS def __source_port_id(self, port, protocol): self.check_port(port, protocol) return (portStr(port, "-"), protocol) def __source_port(self, enable, zone, port, protocol, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction if enable: zone_transaction.add_chain("filter", "INPUT") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "filter", "-m", protocol, "-p", protocol, "--sport", portStr(port), "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_source_port(self, zone, port, protocol, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] port_id = self.__source_port_id(port, protocol) if port_id in _obj.settings["source_ports"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s' already in '%s'" % (port, protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__source_port(True, _zone, port, protocol, use_zone_transaction=zone_transaction) self.__register_source_port(_obj, port_id, timeout, sender) zone_transaction.add_fail(self.__unregister_source_port, _obj, port_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_source_port(self, _obj, port_id, timeout, sender): _obj.settings["source_ports"][port_id] = \ self.__gen_settings(timeout, sender) def remove_source_port(self, zone, port, protocol, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] port_id = self.__source_port_id(port, protocol) if port_id not in _obj.settings["source_ports"]: raise FirewallError(errors.NOT_ENABLED, "'%s:%s' not in '%s'" % (port, protocol, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__source_port(False, _zone, port, protocol, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_source_port, _obj, port_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_source_port(self, _obj, port_id): if port_id in _obj.settings["source_ports"]: del _obj.settings["source_ports"][port_id] def query_source_port(self, zone, port, protocol): return self.__source_port_id(port, protocol) in \ self.get_settings(zone)["source_ports"] def list_source_ports(self, zone): return list(self.get_settings(zone)["source_ports"].keys()) # MASQUERADE def __masquerade_id(self): return True def __masquerade(self, enable, zone, use_zone_transaction=None): if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction if enable: zone_transaction.add_chain("nat", "POSTROUTING") zone_transaction.add_chain("filter", "FORWARD_OUT") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: zone_transaction.add_post(enable_ip_forwarding, ipv) target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["POSTROUTING"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "!", "-o", "lo", "-t", "nat", "-j", "MASQUERADE" ]) # FORWARD_OUT target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["FORWARD_OUT"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "filter", "-m", "conntrack", "--ctstate", "NEW", "-j", "ACCEPT" ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_masquerade(self, zone, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] masquerade_id = self.__masquerade_id() if masquerade_id in _obj.settings["masquerade"]: raise FirewallError(errors.ALREADY_ENABLED, "masquerade already enabled in '%s'" % _zone) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__masquerade(True, _zone, use_zone_transaction=zone_transaction) self.__register_masquerade(_obj, masquerade_id, timeout, sender) zone_transaction.add_fail(self.__unregister_masquerade, _obj, masquerade_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_masquerade(self, _obj, masquerade_id, timeout, sender): _obj.settings["masquerade"][masquerade_id] = \ self.__gen_settings(timeout, sender) def remove_masquerade(self, zone, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] masquerade_id = self.__masquerade_id() if masquerade_id not in _obj.settings["masquerade"]: raise FirewallError(errors.NOT_ENABLED, "masquerade not enabled in '%s'" % _zone) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__masquerade(False, _zone, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_masquerade, _obj, masquerade_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_masquerade(self, _obj, masquerade_id): if masquerade_id in _obj.settings["masquerade"]: del _obj.settings["masquerade"][masquerade_id] def query_masquerade(self, zone): return self.__masquerade_id() in self.get_settings(zone)["masquerade"] # PORT FORWARDING def check_forward_port(self, ipv, port, protocol, toport=None, toaddr=None): self._fw.check_port(port) self._fw.check_tcpudp(protocol) if toport: self._fw.check_port(toport) if toaddr: if not check_single_address(ipv, toaddr): raise FirewallError(errors.INVALID_ADDR, toaddr) if not toport and not toaddr: raise FirewallError( errors.INVALID_FORWARD, "port-forwarding is missing to-port AND to-addr") def __forward_port_id(self, port, protocol, toport=None, toaddr=None): if check_single_address("ipv6", toaddr): self.check_forward_port("ipv6", port, protocol, toport, toaddr) else: self.check_forward_port("ipv4", port, protocol, toport, toaddr) return (portStr(port, "-"), protocol, portStr(toport, "-"), str(toaddr)) def __forward_port(self, enable, zone, port, protocol, toport=None, toaddr=None, mark_id=None, use_zone_transaction=None): ipvs = [ ] if check_single_address("ipv6", toaddr): ipvs.append("ipv6") else: ipvs.append("ipv4") if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction mark_str = "0x%x" % mark_id port_str = portStr(port) filter_chain = "INPUT" if not toaddr else "FORWARD_IN" mark = [ "-m", "mark", "--mark", mark_str ] if enable: zone_transaction.add_chain("mangle", "PREROUTING") zone_transaction.add_chain("nat", "PREROUTING") zone_transaction.add_chain("filter", filter_chain) add_del = { True: "-A", False: "-D" }[enable] for ipv in ipvs: to = "" if toaddr: if ipv == "ipv6": to += "[%s]" % toaddr else: to += toaddr if toport and toport != "": to += ":%s" % portStr(toport, "-") zone_transaction.add_post(enable_ip_forwarding, ipv) target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["PREROUTING"], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "mangle", "-p", protocol, "--dport", port_str, "-j", "MARK", "--set-mark", mark_str ]) # local and remote zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "nat", "-p", protocol ] + mark + [ "-j", "DNAT", "--to-destination", to ]) target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS[filter_chain], zone=zone) zone_transaction.add_rule(ipv, [ add_del, "%s_allow" % (target), "-t", "filter", "-m", "conntrack", "--ctstate", "NEW" ] + mark + [ "-j", "ACCEPT" ]) zone_transaction.add_fail(self._fw.del_mark, mark_id) if use_zone_transaction is None: zone_transaction.execute(enable) def add_forward_port(self, zone, port, protocol, toport=None, toaddr=None, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] forward_id = self.__forward_port_id(port, protocol, toport, toaddr) if forward_id in _obj.settings["forward_ports"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s:%s:%s:%s' already in '%s'" % \ (port, protocol, toport, toaddr, _zone)) mark = self._fw.new_mark() if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__forward_port(True, _zone, port, protocol, toport, toaddr, mark_id=mark, use_zone_transaction=zone_transaction) self.__register_forward_port(_obj, forward_id, timeout, sender, mark) zone_transaction.add_fail(self.__unregister_forward_port, _obj, forward_id, mark) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_forward_port(self, _obj, forward_id, timeout, sender, mark): _obj.settings["forward_ports"][forward_id] = \ self.__gen_settings(timeout, sender, mark=mark) def remove_forward_port(self, zone, port, protocol, toport=None, toaddr=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] forward_id = self.__forward_port_id(port, protocol, toport, toaddr) if not forward_id in _obj.settings["forward_ports"]: raise FirewallError(errors.NOT_ENABLED, "'%s:%s:%s:%s' not in '%s'" % \ (port, protocol, toport, toaddr, _zone)) mark = _obj.settings["forward_ports"][forward_id]["mark"] if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__forward_port(False, _zone, port, protocol, toport, toaddr, mark_id=mark, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_forward_port, _obj, forward_id, mark) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_forward_port(self, _obj, forward_id, mark): if forward_id in _obj.settings["forward_ports"]: del _obj.settings["forward_ports"][forward_id] self._fw.del_mark(mark) def query_forward_port(self, zone, port, protocol, toport=None, toaddr=None): forward_id = self.__forward_port_id(port, protocol, toport, toaddr) return forward_id in self.get_settings(zone)["forward_ports"] def list_forward_ports(self, zone): return list(self.get_settings(zone)["forward_ports"].keys()) # ICMP BLOCK def check_icmp_block(self, icmp): self._fw.check_icmptype(icmp) def __icmp_block_id(self, icmp): self.check_icmp_block(icmp) return icmp def __icmp_block(self, enable, zone, icmp, use_zone_transaction=None): ict = self._fw.icmptype.get_icmptype(icmp) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction if enable: zone_transaction.add_chain("filter", "INPUT") zone_transaction.add_chain("filter", "FORWARD_IN") add_del = { True: "-A", False: "-D" }[enable] for ipv in [ "ipv4", "ipv6" ]: if ict.destination and ipv not in ict.destination: continue if ipv == "ipv4": proto = [ "-p", "icmp" ] match = [ "-m", "icmp", "--icmp-type", icmp ] else: proto = [ "-p", "ipv6-icmp" ] match = [ "-m", "icmp6", "--icmpv6-type", icmp ] target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"], zone=zone) if self.query_icmp_block_inversion(zone): final_chain = "%s_allow" % target final_target = "ACCEPT" else: final_chain = "%s_deny" % target final_target = "%%REJECT%%" if self._fw.get_log_denied() != "off" and final_target != "ACCEPT": zone_transaction.add_rule( ipv, [ add_del, final_chain, "-t", "filter" ] + proto + match + [ "%%LOGTYPE%%", "-j", "LOG", "--log-prefix", "\"%s_ICMP_BLOCK: \"" % zone ]) zone_transaction.add_rule(ipv, [ add_del, final_chain, "-t", "filter", ] + proto + match + [ "-j", final_target ]) target = DEFAULT_ZONE_TARGET.format( chain=SHORTCUTS["FORWARD_IN"], zone=zone) if self._fw.get_log_denied() != "off" and final_target != "ACCEPT": zone_transaction.add_rule( ipv, [ add_del, final_chain, "-t", "filter" ] + proto + match + [ "%%LOGTYPE%%", "-j", "LOG", "--log-prefix", "\"%s_ICMP_BLOCK: \"" % zone ]) zone_transaction.add_rule(ipv, [ add_del, final_chain, "-t", "filter", ] + proto + \ match + [ "-j", final_target ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_icmp_block(self, zone, icmp, timeout=0, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_timeout(timeout) self._fw.check_panic() _obj = self._zones[_zone] icmp_id = self.__icmp_block_id(icmp) if icmp_id in _obj.settings["icmp_blocks"]: raise FirewallError(errors.ALREADY_ENABLED, "'%s' already in '%s'" % (icmp, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__icmp_block(True, _zone, icmp, use_zone_transaction=zone_transaction) self.__register_icmp_block(_obj, icmp_id, timeout, sender) zone_transaction.add_fail(self.__unregister_icmp_block, _obj, icmp_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_icmp_block(self, _obj, icmp_id, timeout, sender): _obj.settings["icmp_blocks"][icmp_id] = \ self.__gen_settings(timeout, sender) def remove_icmp_block(self, zone, icmp, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] icmp_id = self.__icmp_block_id(icmp) if icmp_id not in _obj.settings["icmp_blocks"]: raise FirewallError(errors.NOT_ENABLED, "'%s' not in '%s'" % (icmp, _zone)) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: self.__icmp_block(False, _zone, icmp, use_zone_transaction=zone_transaction) zone_transaction.add_post(self.__unregister_icmp_block, _obj, icmp_id) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_icmp_block(self, _obj, icmp_id): if icmp_id in _obj.settings["icmp_blocks"]: del _obj.settings["icmp_blocks"][icmp_id] def query_icmp_block(self, zone, icmp): return self.__icmp_block_id(icmp) in self.get_settings(zone)["icmp_blocks"] def list_icmp_blocks(self, zone): return self.get_settings(zone)["icmp_blocks"].keys() # ICMP BLOCK INVERSION def __icmp_block_inversion_id(self): return True def __icmp_block_inversion(self, enable, zone, use_zone_transaction=None): target = self._zones[zone].target # Do not add general icmp accept rules into a trusted, block or drop # zone. if target in [ "DROP", "%%REJECT%%", "REJECT" ]: return if not self.query_icmp_block_inversion(zone) and target == "ACCEPT": # ibi target and zone target are ACCEPT, no need to add an extra # rule return if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(zone) else: zone_transaction = use_zone_transaction zone_transaction.add_chain("filter", "INPUT") zone_transaction.add_chain("filter", "FORWARD_IN") for ipv in [ "ipv4", "ipv6" ]: rule_idx = 4 table = "filter" for chain in [ "INPUT", "FORWARD_IN" ]: _zone = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS[chain], zone=zone) if self.query_icmp_block_inversion(zone): ibi_target = "%%REJECT%%" if self._fw.get_log_denied() != "off": if enable: rule = [ "-I", _zone, str(rule_idx) ] else: rule = [ "-D", _zone ] zone_transaction.add_rule( ipv, rule + [ "-t", table, "-p", "%%ICMP%%", "%%LOGTYPE%%", "-j", "LOG", "--log-prefix", "\"%s_ICMP_BLOCK: \"" % _zone ]) rule_idx += 1 else: ibi_target = "ACCEPT" if enable: rule = [ "-I", _zone, str(rule_idx) ] else: rule = [ "-D", _zone ] zone_transaction.add_rule(ipv, rule + [ "-t", table, "-p", "%%ICMP%%", "-j", ibi_target ]) if use_zone_transaction is None: zone_transaction.execute(enable) def add_icmp_block_inversion(self, zone, sender=None, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] icmp_block_inversion_id = self.__icmp_block_inversion_id() if icmp_block_inversion_id in _obj.settings["icmp_block_inversion"]: raise FirewallError( errors.ALREADY_ENABLED, "icmp-block-inversion already enabled in '%s'" % _zone) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: # undo icmp blocks for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(False, _zone, args, use_zone_transaction=zone_transaction) self.__icmp_block_inversion(False, _zone, use_zone_transaction=zone_transaction) self.__register_icmp_block_inversion(_obj, icmp_block_inversion_id, sender) zone_transaction.add_fail(self.__undo_icmp_block_inversion, _zone, _obj, icmp_block_inversion_id) # redo icmp blocks if _obj.applied: for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(True, _zone, args, use_zone_transaction=zone_transaction) self.__icmp_block_inversion(True, _zone, use_zone_transaction=zone_transaction) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __register_icmp_block_inversion(self, _obj, icmp_block_inversion_id, sender): _obj.settings["icmp_block_inversion"][icmp_block_inversion_id] = \ self.__gen_settings(0, sender) def __undo_icmp_block_inversion(self, _zone, _obj, icmp_block_inversion_id): zone_transaction = self.new_zone_transaction(_zone) # undo icmp blocks if _obj.applied: for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(False, _zone, args, use_zone_transaction=zone_transaction) if icmp_block_inversion_id in _obj.settings["icmp_block_inversion"]: del _obj.settings["icmp_block_inversion"][icmp_block_inversion_id] # redo icmp blocks if _obj.applied: for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(True, _zone, args, use_zone_transaction=zone_transaction) zone_transaction.execute(True) def remove_icmp_block_inversion(self, zone, use_zone_transaction=None): _zone = self._fw.check_zone(zone) self._fw.check_panic() _obj = self._zones[_zone] icmp_block_inversion_id = self.__icmp_block_inversion_id() if icmp_block_inversion_id not in _obj.settings["icmp_block_inversion"]: raise FirewallError( errors.NOT_ENABLED, "icmp-block-inversion not enabled in '%s'" % _zone) if use_zone_transaction is None: zone_transaction = self.new_zone_transaction(_zone) else: zone_transaction = use_zone_transaction if _obj.applied: # undo icmp blocks for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(False, _zone, args, use_zone_transaction=zone_transaction) self.__icmp_block_inversion(False, _zone, use_zone_transaction=zone_transaction) self.__unregister_icmp_block_inversion(_obj, icmp_block_inversion_id) zone_transaction.add_fail(self.__register_icmp_block_inversion, _obj, icmp_block_inversion_id, None) # redo icmp blocks if _obj.applied: for args in self.get_settings(_zone)["icmp_blocks"]: self.__icmp_block(True, _zone, args, use_zone_transaction=zone_transaction) self.__icmp_block_inversion(True, _zone, use_zone_transaction=zone_transaction) if use_zone_transaction is None: zone_transaction.execute(True) return _zone def __unregister_icmp_block_inversion(self, _obj, icmp_block_inversion_id): if icmp_block_inversion_id in _obj.settings["icmp_block_inversion"]: del _obj.settings["icmp_block_inversion"][icmp_block_inversion_id] def query_icmp_block_inversion(self, zone): return self.__icmp_block_inversion_id() in \ self.get_settings(zone)["icmp_block_inversion"] firewalld-0.4.4.6/src/firewall/core/helper.py000066400000000000000000000014441320241217000210040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """The helper maxnamelen""" HELPER_MAXNAMELEN = 32 firewalld-0.4.4.6/src/firewall/core/icmp.py000066400000000000000000000060351320241217000204560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2017 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "ICMP_TYPES", "ICMPV6_TYPES", "check_icmp_type", "check_icmpv6_type" ] ICMP_TYPES = { "echo-reply": "0/0", "pong": "0/0", "network-unreachable": "3/0", "host-unreachable": "3/1", "protocol-unreachable": "3/2", "port-unreachable": "3/3", "fragmentation-needed": "3/4", "source-route-failed": "3/5", "network-unknown": "3/6", "host-unknown": "3/7", "network-prohibited": "3/9", "host-prohibited": "3/10", "TOS-network-unreachable": "3/11", "TOS-host-unreachable": "3/12", "communication-prohibited": "3/13", "host-precedence-violation": "3/14", "precedence-cutoff": "3/15", "source-quench": "4/0", "network-redirect": "5/0", "host-redirect": "5/1", "TOS-network-redirect": "5/2", "TOS-host-redirect": "5/3", "echo-request": "8/0", "ping": "8/0", "router-advertisement": "9/0", "router-solicitation": "10/0", "ttl-zero-during-transit": "11/0", "ttl-zero-during-reassembly": "11/1", "ip-header-bad": "12/0", "required-option-missing": "12/1", "timestamp-request": "13/0", "timestamp-reply": "14/0", "address-mask-request": "17/0", "address-mask-reply": "18/0", } ICMPV6_TYPES = { "no-route": "1/0", "communication-prohibited": "1/1", "address-unreachable": "1/3", "port-unreachable": "1/4", "packet-too-big": "2/0", "ttl-zero-during-transit": "3/0", "ttl-zero-during-reassembly": "3/1", "bad-header": "4/0", "unknown-header-type": "4/1", "unknown-option": "4/2", "echo-request": "128/0", "ping": "128/0", "echo-reply": "129/0", "pong": "129/0", "router-solicitation": "133/0", "router-advertisement": "134/0", "neighbour-solicitation": "135/0", "neigbour-solicitation": "135/0", "neighbour-advertisement": "136/0", "neigbour-advertisement": "136/0", "redirect": "137/0", } def check_icmp_name(_name): if _name in ICMP_TYPES: return True return False def check_icmp_type(_type): if _type in ICMP_TYPES.values(): return True return False def check_icmpv6_name(_name): if _name in ICMP_TYPES: return True return False def check_icmpv6_type(_type): if _type in ICMPV6_TYPES.values(): return True return False firewalld-0.4.4.6/src/firewall/core/io/000077500000000000000000000000001320241217000175575ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/core/io/__init__.py000066400000000000000000000030741320241217000216740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2012 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # fix xmlplus to be compatible with the python xml sax parser and python 3 # by adding __contains__ to xml.sax.xmlreader.AttributesImpl import xml if "_xmlplus" in xml.__file__: from xml.sax.xmlreader import AttributesImpl if not hasattr(AttributesImpl, "__contains__"): # this is missing: def __AttributesImpl__contains__(self, name): return name in getattr(self, "_attrs") # add it using the name __contains__ setattr(AttributesImpl, "__contains__", __AttributesImpl__contains__) from xml.sax.saxutils import XMLGenerator if not hasattr(XMLGenerator, "_write"): # this is missing: def __XMLGenerator_write(self, text): getattr(self, "_out").write(text) # add it using the name _write setattr(XMLGenerator, "_write", __XMLGenerator_write) firewalld-0.4.4.6/src/firewall/core/io/direct.py000066400000000000000000000365541320241217000214200ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import xml.sax as sax import os import io import shutil from firewall import config from firewall.fw_types import * from firewall.functions import splitArgs, joinArgs, u2b_if_py2 from firewall.core.io.io_object import IO_Object, IO_Object_ContentHandler, \ IO_Object_XMLGenerator from firewall.core.logger import log from firewall.core import ipXtables from firewall.core import ebtables from firewall import errors from firewall.errors import FirewallError class direct_ContentHandler(IO_Object_ContentHandler): def __init__(self, item): IO_Object_ContentHandler.__init__(self, item) self.direct = False def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "direct": if self.direct: raise FirewallError(errors.PARSE_ERROR, "More than one direct tag.") self.direct = True elif name == "chain": if not self.direct: log.error("Parse Error: chain outside of direct") return ipv = attrs["ipv"] table = attrs["table"] chain = attrs["chain"] self.item.add_chain(u2b_if_py2(ipv), u2b_if_py2(table), u2b_if_py2(chain)) elif name == "rule": if not self.direct: log.error("Parse Error: rule outside of direct") return ipv = attrs["ipv"] if ipv not in [ "ipv4", "ipv6", "eb" ]: raise FirewallError(errors.INVALID_IPV, "'%s' not from {'ipv4'|'ipv6'|'eb'}" % ipv) table = attrs["table"] chain = attrs["chain"] try: priority = int(attrs["priority"]) except ValueError: log.error("Parse Error: %s is not a valid priority" % attrs["priority"]) return self._rule = [ u2b_if_py2(ipv), u2b_if_py2(table), u2b_if_py2(chain), priority ] elif name == "passthrough": if not self.direct: log.error("Parse Error: command outside of direct") return ipv = attrs["ipv"] self._passthrough = [ u2b_if_py2(ipv) ] else: log.error('Unknown XML element %s' % name) return def endElement(self, name): IO_Object_ContentHandler.endElement(self, name) if name == "rule": if self._element: # add arguments self._rule.append([ u2b_if_py2(x) for x in splitArgs(self._element) ]) self.item.add_rule(*self._rule) else: log.error("Error: rule does not have any arguments, ignoring.") self._rule = None elif name == "passthrough": if self._element: # add arguments self._passthrough.append([ u2b_if_py2(x) for x in splitArgs(self._element) ]) self.item.add_passthrough(*self._passthrough) else: log.error("Error: passthrough does not have any arguments, " + "ignoring.") self._passthrough = None class Direct(IO_Object): """ Direct class """ IMPORT_EXPORT_STRUCTURE = ( # chain: [ ipv, table, [ chain ] ] ( "chains", [ ( "", "", "" ), ], ), # a(sss) # rule: [ ipv, table, chain, [ priority, [ arg ] ] ] ( "rules", [ ( "", "", "", 0, [ "" ] ), ], ), # a(sssias) # passthrough: [ ipv, [ [ arg ] ] ] ( "passthroughs", [ ( "", [ "" ]), ], ), # a(sas) ) DBUS_SIGNATURE = '(a(sss)a(sssias)a(sas))' PARSER_REQUIRED_ELEMENT_ATTRS = { "direct": None, "chain": [ "ipv", "table", "chain" ], "rule": [ "ipv", "table", "chain", "priority" ], "passthrough": [ "ipv" ] } PARSER_OPTIONAL_ELEMENT_ATTRS = { } def __init__(self, filename): super(Direct, self).__init__() self.filename = filename self.chains = LastUpdatedOrderedDict() self.rules = LastUpdatedOrderedDict() self.passthroughs = LastUpdatedOrderedDict() def _check_config(self, conf, item): pass # check arg lists def export_config(self): ret = [ ] x = [ ] for key in self.chains: for chain in self.chains[key]: x.append(tuple(list(key) + list([chain]))) ret.append(x) x = [ ] for key in self.rules: for rule in self.rules[key]: x.append(tuple((key[0], key[1], key[2], rule[0], list(rule[1])))) ret.append(x) x = [ ] for key in self.passthroughs: for rule in self.passthroughs[key]: x.append(tuple((key, list(rule)))) ret.append(x) return tuple(ret) def import_config(self, conf): self.cleanup() self.check_config(conf) for i,(element,dummy) in enumerate(self.IMPORT_EXPORT_STRUCTURE): if element == "chains": for x in conf[i]: self.add_chain(*x) if element == "rules": for x in conf[i]: self.add_rule(*x) if element == "passthroughs": for x in conf[i]: self.add_passthrough(*x) def cleanup(self): self.chains.clear() self.rules.clear() self.passthroughs.clear() def output(self): print("chains") for key in self.chains: print(" (%s, %s): %s" % (key[0], key[1], ",".join(self.chains[key]))) print("rules") for key in self.rules: print(" (%s, %s, %s):" % (key[0], key[1], key[2])) for (priority,args) in self.rules[key]: print(" (%d, ('%s'))" % (priority, "','".join(args))) print("passthroughs") for key in self.passthroughs: print(" %s:" % (key)) for args in self.passthroughs[key]: print(" ('%s')" % ("','".join(args))) def _check_ipv(self, ipv): ipvs = ['ipv4', 'ipv6', 'eb'] if ipv not in ipvs: raise FirewallError(errors.INVALID_IPV, "'%s' not in '%s'" % (ipv, ipvs)) def _check_ipv_table(self, ipv, table): self._check_ipv(ipv) tables = ipXtables.BUILT_IN_CHAINS.keys() if ipv in ['ipv4', 'ipv6'] \ else ebtables.BUILT_IN_CHAINS.keys() if table not in tables: raise FirewallError(errors.INVALID_TABLE, "'%s' not in '%s'" % (table, tables)) # chains def add_chain(self, ipv, table, chain): self._check_ipv_table(ipv, table) key = (ipv, table) if key not in self.chains: self.chains[key] = [ ] if chain not in self.chains[key]: self.chains[key].append(chain) else: log.warning("Chain '%s' for table '%s' with ipv '%s' " % \ (chain, table, ipv) + "already in list, ignoring") def remove_chain(self, ipv, table, chain): self._check_ipv_table(ipv, table) key = (ipv, table) if key in self.chains and chain in self.chains[key]: self.chains[key].remove(chain) if len(self.chains[key]) == 0: del self.chains[key] else: raise ValueError( \ "Chain '%s' with table '%s' with ipv '%s' not in list" % \ (chain, table, ipv)) def query_chain(self, ipv, table, chain): self._check_ipv_table(ipv, table) key = (ipv, table) return (key in self.chains and chain in self.chains[key]) def get_chains(self, ipv, table): self._check_ipv_table(ipv, table) key = (ipv, table) if key in self.chains: return self.chains[key] else: raise ValueError("No chains for table '%s' with ipv '%s'" % \ (table, ipv)) def get_all_chains(self): return self.chains # rules def add_rule(self, ipv, table, chain, priority, args): self._check_ipv_table(ipv, table) key = (ipv, table, chain) if key not in self.rules: self.rules[key] = LastUpdatedOrderedDict() value = (priority, tuple(args)) if value not in self.rules[key]: self.rules[key][value] = priority else: log.warning("Rule '%s' for table '%s' and chain '%s' " % \ ("',".join(args), table, chain) + "with ipv '%s' and priority %d " % (ipv, priority) + "already in list, ignoring") def remove_rule(self, ipv, table, chain, priority, args): self._check_ipv_table(ipv, table) key = (ipv, table, chain) value = (priority, tuple(args)) if key in self.rules and value in self.rules[key]: del self.rules[key][value] if len(self.rules[key]) == 0: del self.rules[key] else: raise ValueError("Rule '%s' for table '%s' and chain '%s' " % \ ("',".join(args), table, chain) + \ "with ipv '%s' and priority %d not in list" % (ipv, priority)) def remove_rules(self, ipv, table, chain): self._check_ipv_table(ipv, table) key = (ipv, table, chain) if key in self.rules: for value in self.rules[key].keys(): del self.rules[key][value] if len(self.rules[key]) == 0: del self.rules[key] def query_rule(self, ipv, table, chain, priority, args): self._check_ipv_table(ipv, table) key = (ipv, table, chain) value = (priority, tuple(args)) return (key in self.rules and value in self.rules[key]) def get_rules(self, ipv, table, chain): self._check_ipv_table(ipv, table) key = (ipv, table, chain) if key in self.rules: return self.rules[key] else: raise ValueError("No rules for table '%s' and chain '%s' " %\ (table, chain) + "with ipv '%s'" % (ipv)) def get_all_rules(self): return self.rules # # passthrough # def add_passthrough(self, ipv, args): self._check_ipv(ipv) if ipv not in self.passthroughs: self.passthroughs[ipv] = [ ] if args not in self.passthroughs[ipv]: self.passthroughs[ipv].append(args) else: log.warning("Passthrough '%s' for ipv '%s'" % \ ("',".join(args), ipv) + "already in list, ignoring") def remove_passthrough(self, ipv, args): self._check_ipv(ipv) if ipv in self.passthroughs and args in self.passthroughs[ipv]: self.passthroughs[ipv].remove(args) if len(self.passthroughs[ipv]) == 0: del self.passthroughs[ipv] else: raise ValueError("Passthrough '%s' for ipv '%s'" % \ ("',".join(args), ipv) + "not in list") def query_passthrough(self, ipv, args): self._check_ipv(ipv) return ipv in self.passthroughs and args in self.passthroughs[ipv] def get_passthroughs(self, ipv): self._check_ipv(ipv) if ipv in self.passthroughs: return self.passthroughs[ipv] else: raise ValueError("No passthroughs for ipv '%s'" % (ipv)) def get_all_passthroughs(self): return self.passthroughs # read def read(self): self.cleanup() if not self.filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % self.filename) handler = direct_ContentHandler(self) parser = sax.make_parser() parser.setContentHandler(handler) with open(self.filename, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_TYPE, "Not a valid file: %s" % \ msg.getException()) def write(self): if os.path.exists(self.filename): try: shutil.copy2(self.filename, "%s.old" % self.filename) except Exception as msg: raise IOError("Backup of '%s' failed: %s" % (self.filename, msg)) if not os.path.exists(config.ETC_FIREWALLD): os.mkdir(config.ETC_FIREWALLD, 0o750) f = io.open(self.filename, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start whitelist element handler.startElement("direct", { }) handler.ignorableWhitespace("\n") # chains for key in self.chains: (ipv, table) = key for chain in self.chains[key]: handler.ignorableWhitespace(" ") handler.simpleElement("chain", { "ipv": ipv, "table": table, "chain": chain }) handler.ignorableWhitespace("\n") # rules for key in self.rules: (ipv, table, chain) = key for (priority, args) in self.rules[key]: if len(args) < 1: continue handler.ignorableWhitespace(" ") handler.startElement("rule", { "ipv": ipv, "table": table, "chain": chain, "priority": "%d" % priority }) handler.ignorableWhitespace(sax.saxutils.escape(joinArgs(args))) handler.endElement("rule") handler.ignorableWhitespace("\n") # passthroughs for ipv in self.passthroughs: for args in self.passthroughs[ipv]: if len(args) < 1: continue handler.ignorableWhitespace(" ") handler.startElement("passthrough", { "ipv": ipv }) handler.ignorableWhitespace(sax.saxutils.escape(joinArgs(args))) handler.endElement("passthrough") handler.ignorableWhitespace("\n") # end zone element handler.endElement("direct") handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/firewalld_conf.py000066400000000000000000000251571320241217000231210ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2012 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import os.path import io import tempfile import shutil from firewall.config import ETC_FIREWALLD, \ FALLBACK_ZONE, FALLBACK_MINIMAL_MARK, \ FALLBACK_CLEANUP_ON_EXIT, FALLBACK_LOCKDOWN, FALLBACK_IPV6_RPFILTER, \ FALLBACK_INDIVIDUAL_CALLS, FALLBACK_LOG_DENIED, LOG_DENIED_VALUES, \ FALLBACK_AUTOMATIC_HELPERS, AUTOMATIC_HELPERS_VALUES from firewall.core.logger import log from firewall.functions import b2u, u2b, PY2 valid_keys = [ "DefaultZone", "MinimalMark", "CleanupOnExit", "Lockdown", "IPv6_rpfilter", "IndividualCalls", "LogDenied", "AutomaticHelpers" ] class firewalld_conf(object): def __init__(self, filename): self._config = { } self._deleted = [ ] self.filename = filename self.clear() def clear(self): self._config = { } self._deleted = [ ] def cleanup(self): self._config.clear() self._deleted = [ ] def get(self, key): return self._config.get(key.strip()) def set(self, key, value): _key = b2u(key.strip()) self._config[_key] = b2u(value.strip()) if _key in self._deleted: self._deleted.remove(_key) def __str__(self): s = "" for (key,value) in self._config.items(): if s: s += '\n' s += '%s=%s' % (key, value) return u2b(s) if PY2 else s # load self.filename def read(self): self.clear() try: f = open(self.filename, "r") except Exception as msg: log.error("Failed to load '%s': %s", self.filename, msg) self.set("DefaultZone", FALLBACK_ZONE) self.set("MinimalMark", str(FALLBACK_MINIMAL_MARK)) self.set("CleanupOnExit", "yes" if FALLBACK_CLEANUP_ON_EXIT else "no") self.set("Lockdown", "yes" if FALLBACK_LOCKDOWN else "no") self.set("IPv6_rpfilter","yes" if FALLBACK_IPV6_RPFILTER else "no") self.set("IndividualCalls", "yes" if FALLBACK_INDIVIDUAL_CALLS else "no") self.set("LogDenied", FALLBACK_LOG_DENIED) self.set("AutomaticHelpers", FALLBACK_AUTOMATIC_HELPERS) raise for line in f: if not line: break line = line.strip() if len(line) < 1 or line[0] in ['#', ';']: continue # get key/value pair pair = [ x.strip() for x in line.split("=") ] if len(pair) != 2: log.error("Invalid option definition: '%s'", line.strip()) continue elif pair[0] not in valid_keys: log.error("Invalid option: '%s'", line.strip()) continue elif pair[1] == '': log.error("Missing value: '%s'", line.strip()) continue elif self._config.get(pair[0]) is not None: log.error("Duplicate option definition: '%s'", line.strip()) continue self._config[pair[0]] = pair[1] f.close() # check default zone if not self.get("DefaultZone"): log.error("DefaultZone is not set, using default value '%s'", FALLBACK_ZONE) self.set("DefaultZone", str(FALLBACK_ZONE)) # check minimal mark value = self.get("MinimalMark") try: int(value) except ValueError: if value is not None: log.warning("MinimalMark '%s' is not valid, using default " "value '%d'", value if value else '', FALLBACK_MINIMAL_MARK) self.set("MinimalMark", str(FALLBACK_MINIMAL_MARK)) # check cleanup on exit value = self.get("CleanupOnExit") if not value or value.lower() not in [ "no", "false", "yes", "true" ]: if value is not None: log.warning("CleanupOnExit '%s' is not valid, using default " "value %s", value if value else '', FALLBACK_CLEANUP_ON_EXIT) self.set("CleanupOnExit", "yes" if FALLBACK_CLEANUP_ON_EXIT else "no") # check lockdown value = self.get("Lockdown") if not value or value.lower() not in [ "yes", "true", "no", "false" ]: if value is not None: log.warning("Lockdown '%s' is not valid, using default " "value %s", value if value else '', FALLBACK_LOCKDOWN) self.set("Lockdown", "yes" if FALLBACK_LOCKDOWN else "no") # check ipv6_rpfilter value = self.get("IPv6_rpfilter") if not value or value.lower() not in [ "yes", "true", "no", "false" ]: if value is not None: log.warning("IPv6_rpfilter '%s' is not valid, using default " "value %s", value if value else '', FALLBACK_IPV6_RPFILTER) self.set("IPv6_rpfilter","yes" if FALLBACK_IPV6_RPFILTER else "no") # check individual calls value = self.get("IndividualCalls") if not value or value.lower() not in [ "yes", "true", "no", "false" ]: if value is not None: log.warning("IndividualCalls '%s' is not valid, using default " "value %s", value if value else '', FALLBACK_INDIVIDUAL_CALLS) self.set("IndividualCalls", "yes" if FALLBACK_INDIVIDUAL_CALLS else "no") # check log denied value = self.get("LogDenied") if not value or value not in LOG_DENIED_VALUES: if value is not None: log.warning("LogDenied '%s' is invalid, using default value '%s'", value, FALLBACK_LOG_DENIED) self.set("LogDenied", str(FALLBACK_LOG_DENIED)) # check automatic helpers value = self.get("AutomaticHelpers") if not value or value.lower() not in AUTOMATIC_HELPERS_VALUES: if value is not None: log.warning("AutomaticHelpers '%s' is not valid, using default " "value %s", value if value else '', FALLBACK_AUTOMATIC_HELPERS) self.set("AutomaticHelpers", str(FALLBACK_AUTOMATIC_HELPERS)) # save to self.filename if there are key/value changes def write(self): if len(self._config) < 1: # no changes: nothing to do return # handled keys done = [ ] if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) try: temp_file = tempfile.NamedTemporaryFile(mode='wt', prefix="%s." % os.path.basename(self.filename), dir=os.path.dirname(self.filename), delete=False) except Exception as msg: log.error("Failed to open temporary file: %s" % msg) raise modified = False empty = False try: f= io.open(self.filename, mode='rt', encoding='UTF-8') except Exception as msg: if os.path.exists(self.filename): log.error("Failed to open '%s': %s" % (self.filename, msg)) raise else: f = None else: for line in f: if not line: break # remove newline line = line.strip("\n") if len(line) < 1: if not empty: temp_file.write(u"\n") empty = True elif line[0] == '#': empty = False temp_file.write(line) temp_file.write(u"\n") else: p = line.split("=") if len(p) != 2: empty = False temp_file.write(line+u"\n") continue key = p[0].strip() value = p[1].strip() # check for modified key/value pairs if key not in done: if (key in self._config and \ self._config[key] != value): empty = False temp_file.write(u'%s=%s\n' % (key, self._config[key])) modified = True elif key in self._deleted: modified = True else: empty = False temp_file.write(line+u"\n") done.append(key) else: modified = True # write remaining key/value pairs if len(self._config) > 0: for (key,value) in self._config.items(): if key in done: continue if not empty: temp_file.write(u"\n") empty = True temp_file.write(u'%s=%s\n' % (key, value)) modified = True if f: f.close() temp_file.close() if not modified: # not modified: remove tempfile os.remove(temp_file.name) return # make backup if os.path.exists(self.filename): try: shutil.copy2(self.filename, "%s.old" % self.filename) except Exception as msg: os.remove(temp_file.name) raise IOError("Backup of '%s' failed: %s" % (self.filename, msg)) # copy tempfile try: shutil.move(temp_file.name, self.filename) except Exception as msg: os.remove(temp_file.name) raise IOError("Failed to create '%s': %s" % (self.filename, msg)) else: os.chmod(self.filename, 0o600) firewalld-0.4.4.6/src/firewall/core/io/helper.py000066400000000000000000000201141320241217000214060ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Helper", "helper_reader", "helper_writer" ] import xml.sax as sax import os import io import shutil from firewall.config import ETC_FIREWALLD from firewall.functions import u2b_if_py2 from firewall.core.io.io_object import PY2, IO_Object, \ IO_Object_ContentHandler, IO_Object_XMLGenerator, check_port, \ check_tcpudp from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class Helper(IO_Object): IMPORT_EXPORT_STRUCTURE = ( ( "version", "" ), # s ( "short", "" ), # s ( "description", "" ), # s ( "family", "", ), # s ( "module", "", ), # s ( "ports", [ ( "", "" ), ], ), # a(ss) ) DBUS_SIGNATURE = '(sssssa(ss))' ADDITIONAL_ALNUM_CHARS = [ "-", "." ] PARSER_REQUIRED_ELEMENT_ATTRS = { "short": None, "description": None, "helper": [ "module" ], } PARSER_OPTIONAL_ELEMENT_ATTRS = { "helper": [ "name", "version", "family" ], "port": [ "port", "protocol" ], } def __init__(self): super(Helper, self).__init__() self.version = "" self.short = "" self.description = "" self.module = "" self.family = "" self.ports = [ ] def cleanup(self): self.version = "" self.short = "" self.description = "" self.module = "" self.family = "" del self.ports[:] def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.version = u2b_if_py2(self.version) self.short = u2b_if_py2(self.short) self.description = u2b_if_py2(self.description) self.module = u2b_if_py2(self.module) self.family = u2b_if_py2(self.family) self.ports = [(u2b_if_py2(po),u2b_if_py2(pr)) for (po,pr) in self.ports] def check_ipv(self, ipv): ipvs = [ 'ipv4', 'ipv6' ] if ipv not in ipvs: raise FirewallError(errors.INVALID_IPV, "'%s' not in '%s'" % (ipv, ipvs)) def _check_config(self, config, item): if item == "ports": for port in config: check_port(port[0]) check_tcpudp(port[1]) elif item == "module": if not config.startswith("nf_conntrack_"): raise FirewallError( errors.INVALID_MODULE, "'%s' does not start with 'nf_conntrack_'" % config) if len(config.replace("nf_conntrack_", "")) < 1: raise FirewallError(errors.INVALID_MODULE, "Module name '%s' too short" % config) # PARSER class helper_ContentHandler(IO_Object_ContentHandler): def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "helper": if "version" in attrs: self.item.version = attrs["version"] if "family" in attrs: self.item.check_ipv(attrs["family"]) self.item.family = attrs["family"] if "module" in attrs: if not attrs["module"].startswith("nf_conntrack_"): raise FirewallError( errors.INVALID_MODULE, "'%s' does not start with 'nf_conntrack_'" % \ attrs["module"]) if len(attrs["module"].replace("nf_conntrack_", "")) < 1: raise FirewallError( errors.INVALID_MODULE, "Module name '%s' too short" % attrs["module"]) self.item.module = attrs["module"] elif name == "short": pass elif name == "description": pass elif name == "port": check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) entry = (attrs["port"], attrs["protocol"]) if entry not in self.item.ports: self.item.ports.append(entry) else: log.warning("Port '%s/%s' already set, ignoring.", attrs["port"], attrs["protocol"]) def helper_reader(filename, path): helper = Helper() if not filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % filename) helper.name = filename[:-4] helper.check_name(helper.name) helper.filename = filename helper.path = path helper.builtin = False if path.startswith(ETC_FIREWALLD) else True helper.default = helper.builtin handler = helper_ContentHandler(helper) parser = sax.make_parser() parser.setContentHandler(handler) name = "%s/%s" % (path, filename) with open(name, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_HELPER, "not a valid helper file: %s" % \ msg.getException()) del handler del parser if PY2: helper.encode_strings() return helper def helper_writer(helper, path=None): _path = path if path else helper.path if helper.filename: name = "%s/%s" % (_path, helper.filename) else: name = "%s/%s.xml" % (_path, helper.name) if os.path.exists(name): try: shutil.copy2(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) dirpath = os.path.dirname(name) if dirpath.startswith(ETC_FIREWALLD) and not os.path.exists(dirpath): if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) os.mkdir(dirpath, 0o750) f = io.open(name, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start helper element attrs = {} attrs["module"] = helper.module if helper.version and helper.version != "": attrs["version"] = helper.version if helper.family and helper.family != "": attrs["family"] = helper.family handler.startElement("helper", attrs) handler.ignorableWhitespace("\n") # short if helper.short and helper.short != "": handler.ignorableWhitespace(" ") handler.startElement("short", { }) handler.characters(helper.short) handler.endElement("short") handler.ignorableWhitespace("\n") # description if helper.description and helper.description != "": handler.ignorableWhitespace(" ") handler.startElement("description", { }) handler.characters(helper.description) handler.endElement("description") handler.ignorableWhitespace("\n") # ports for port in helper.ports: handler.ignorableWhitespace(" ") handler.simpleElement("port", { "port": port[0], "protocol": port[1] }) handler.ignorableWhitespace("\n") # end helper element handler.endElement('helper') handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/icmptype.py000066400000000000000000000150751320241217000217730ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "IcmpType", "icmptype_reader", "icmptype_writer" ] import xml.sax as sax import os import io import shutil from firewall.config import ETC_FIREWALLD from firewall.functions import u2b_if_py2 from firewall.core.io.io_object import PY2, IO_Object, \ IO_Object_ContentHandler, IO_Object_XMLGenerator from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class IcmpType(IO_Object): IMPORT_EXPORT_STRUCTURE = ( ( "version", "" ), # s ( "short", "" ), # s ( "description", "" ), # s ( "destination", [ "", ], ), # as ) DBUS_SIGNATURE = '(sssas)' ADDITIONAL_ALNUM_CHARS = [ "_", "-" ] PARSER_REQUIRED_ELEMENT_ATTRS = { "short": None, "description": None, "icmptype": None, } PARSER_OPTIONAL_ELEMENT_ATTRS = { "icmptype": [ "name", "version" ], "destination": [ "ipv4", "ipv6" ], } def __init__(self): super(IcmpType, self).__init__() self.version = "" self.short = "" self.description = "" self.destination = [ ] def cleanup(self): self.version = "" self.short = "" self.description = "" del self.destination[:] def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.version = u2b_if_py2(self.version) self.short = u2b_if_py2(self.short) self.description = u2b_if_py2(self.description) self.destination = [u2b_if_py2(m) for m in self.destination] def _check_config(self, config, item): if item == "destination": for destination in config: if destination not in [ "ipv4", "ipv6" ]: raise FirewallError(errors.INVALID_DESTINATION, "'%s' not from {'ipv4'|'ipv6'}" % \ destination) # PARSER class icmptype_ContentHandler(IO_Object_ContentHandler): def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "icmptype": if "name" in attrs: log.warning("Ignoring deprecated attribute name='%s'" % attrs["name"]) if "version" in attrs: self.item.version = attrs["version"] elif name == "short": pass elif name == "description": pass elif name == "destination": for x in [ "ipv4", "ipv6" ]: if x in attrs and \ attrs[x].lower() in [ "yes", "true" ]: self.item.destination.append(str(x)) def icmptype_reader(filename, path): icmptype = IcmpType() if not filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "%s is missing .xml suffix" % filename) icmptype.name = filename[:-4] icmptype.check_name(icmptype.name) icmptype.filename = filename icmptype.path = path icmptype.builtin = False if path.startswith(ETC_FIREWALLD) else True icmptype.default = icmptype.builtin handler = icmptype_ContentHandler(icmptype) parser = sax.make_parser() parser.setContentHandler(handler) name = "%s/%s" % (path, filename) with open(name, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_ICMPTYPE, "not a valid icmptype file: %s" % \ msg.getException()) del handler del parser if PY2: icmptype.encode_strings() return icmptype def icmptype_writer(icmptype, path=None): _path = path if path else icmptype.path if icmptype.filename: name = "%s/%s" % (_path, icmptype.filename) else: name = "%s/%s.xml" % (_path, icmptype.name) if os.path.exists(name): try: shutil.copy2(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) dirpath = os.path.dirname(name) if dirpath.startswith(ETC_FIREWALLD) and not os.path.exists(dirpath): if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) os.mkdir(dirpath, 0o750) f = io.open(name, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start icmptype element attrs = {} if icmptype.version and icmptype.version != "": attrs["version"] = icmptype.version handler.startElement("icmptype", attrs) handler.ignorableWhitespace("\n") # short if icmptype.short and icmptype.short != "": handler.ignorableWhitespace(" ") handler.startElement("short", { }) handler.characters(icmptype.short) handler.endElement("short") handler.ignorableWhitespace("\n") # description if icmptype.description and icmptype.description != "": handler.ignorableWhitespace(" ") handler.startElement("description", { }) handler.characters(icmptype.description) handler.endElement("description") handler.ignorableWhitespace("\n") # destination if icmptype.destination: handler.ignorableWhitespace(" ") attrs = { } for x in icmptype.destination: attrs[x] = "yes" handler.simpleElement("destination", attrs) handler.ignorableWhitespace("\n") # end icmptype element handler.endElement('icmptype') handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/ifcfg.py000066400000000000000000000145011320241217000212100ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """ifcfg file parser""" __all__ = [ "ifcfg" ] import os.path import io import tempfile import shutil from firewall.core.logger import log from firewall.functions import b2u, u2b, PY2 class ifcfg(object): def __init__(self, filename): self._config = { } self._deleted = [ ] self.filename = filename self.clear() def clear(self): self._config = { } self._deleted = [ ] def cleanup(self): self._config.clear() def get(self, key): return self._config.get(key.strip()) def set(self, key, value): _key = b2u(key.strip()) self._config[_key] = b2u(value.strip()) if _key in self._deleted: self._deleted.remove(_key) def __str__(self): s = "" for (key, value) in self._config.items(): if s: s += '\n' s += '%s=%s' % (key, value) return u2b(s) if PY2 else s # load self.filename def read(self): self.clear() try: f = open(self.filename, "r") except Exception as msg: log.error("Failed to load '%s': %s", self.filename, msg) raise for line in f: if not line: break line = line.strip() if len(line) < 1 or line[0] in ['#', ';']: continue # get key/value pair pair = [ x.strip() for x in line.split("=", 1) ] if len(pair) != 2: continue if len(pair[1]) >= 2 and \ pair[1].startswith('"') and pair[1].endswith('"'): pair[1] = pair[1][1:-1] if pair[1] == '': continue elif self._config.get(pair[0]) is not None: log.warning("%s: Duplicate option definition: '%s'", self.filename, line.strip()) continue self._config[pair[0]] = pair[1] f.close() def write(self): if len(self._config) < 1: # no changes: nothing to do return # handled keys done = [ ] #if not os.path.exists(ETC_FIREWALLD): # os.mkdir(ETC_FIREWALLD, 0o750) try: temp_file = tempfile.NamedTemporaryFile( mode='wt', prefix="%s." % os.path.basename(self.filename), dir=os.path.dirname(self.filename), delete=False) except Exception as msg: log.error("Failed to open temporary file: %s" % msg) raise modified = False empty = False try: f = io.open(self.filename, mode='rt', encoding='UTF-8') except Exception as msg: if os.path.exists(self.filename): log.error("Failed to open '%s': %s" % (self.filename, msg)) raise else: f = None else: for line in f: if not line: break # remove newline line = line.strip("\n") if len(line) < 1: if not empty: temp_file.write(u"\n") empty = True elif line[0] == '#': empty = False temp_file.write(line) temp_file.write(u"\n") else: p = line.split("=", 1) if len(p) != 2: empty = False temp_file.write(line+u"\n") continue key = p[0].strip() value = p[1].strip() if len(value) >= 2 and \ value.startswith('"') and value.endswith('"'): value = value[1:-1] # check for modified key/value pairs if key not in done: if key in self._config and self._config[key] != value: empty = False temp_file.write(u'%s=%s\n' % (key, self._config[key])) modified = True elif key in self._deleted: modified = True else: empty = False temp_file.write(line+u"\n") done.append(key) else: modified = True # write remaining key/value pairs if len(self._config) > 0: for (key, value) in self._config.items(): if key in done: continue if not empty: empty = True temp_file.write(u'%s=%s\n' % (key, value)) modified = True if f: f.close() temp_file.close() if not modified: # not modified: remove tempfile os.remove(temp_file.name) return # make backup if os.path.exists(self.filename): try: shutil.copy2(self.filename, "%s.bak" % self.filename) except Exception as msg: os.remove(temp_file.name) raise IOError("Backup of '%s' failed: %s" % (self.filename, msg)) # copy tempfile try: shutil.move(temp_file.name, self.filename) except Exception as msg: os.remove(temp_file.name) raise IOError("Failed to create '%s': %s" % (self.filename, msg)) else: os.chmod(self.filename, 0o600) firewalld-0.4.4.6/src/firewall/core/io/io_object.py000066400000000000000000000277051320241217000221010ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Generic io_object handler, io specific check methods.""" __all__ = [ "PY2", "IO_Object", "IO_Object_ContentHandler", "IO_Object_XMLGenerator", "check_port", "check_tcpudp", "check_protocol", "check_address" ] import xml.sax as sax import xml.sax.saxutils as saxutils import copy import sys from firewall import functions from firewall.functions import b2u from firewall import errors from firewall.errors import FirewallError PY2 = sys.version < '3' class IO_Object(object): """ Abstract IO_Object as base for icmptype, service and zone """ IMPORT_EXPORT_STRUCTURE = ( ) DBUS_SIGNATURE = '()' ADDITIONAL_ALNUM_CHARS = [ ] # additional to alnum PARSER_REQUIRED_ELEMENT_ATTRS = { } PARSER_OPTIONAL_ELEMENT_ATTRS = { } def __init__(self): self.filename = "" self.path = "" self.name = "" self.default = False self.builtin = False def export_config(self): ret = [ ] for x in self.IMPORT_EXPORT_STRUCTURE: ret.append(copy.deepcopy(getattr(self, x[0]))) return tuple(ret) def import_config(self, conf): self.check_config(conf) for i,(element,dummy) in enumerate(self.IMPORT_EXPORT_STRUCTURE): if isinstance(conf[i], list): # remove duplicates without changing the order _conf = [ ] _set = set() for x in conf[i]: if x not in _set: _conf.append(x) _set.add(x) del _set setattr(self, element, copy.deepcopy(_conf)) else: setattr(self, element, copy.deepcopy(conf[i])) def check_name(self, name): if type(name) != type(""): raise FirewallError(errors.INVALID_TYPE, "'%s' not of type %s, but %s" % (name, type(""), type(name))) if len(name) < 1: raise FirewallError(errors.INVALID_NAME, "name can't be empty") for char in name: if not char.isalnum() and char not in self.ADDITIONAL_ALNUM_CHARS: raise FirewallError( errors.INVALID_NAME, "'%s' is not allowed in '%s'" % ((char, name))) def check_config(self, conf): if len(conf) != len(self.IMPORT_EXPORT_STRUCTURE): raise FirewallError( errors.INVALID_TYPE, "structure size mismatch %d != %d" % \ (len(conf), len(self.IMPORT_EXPORT_STRUCTURE))) for i,(element,value) in enumerate(self.IMPORT_EXPORT_STRUCTURE): self._check_config_structure(conf[i], value) self._check_config(conf[i], element) def _check_config(self, dummy1, dummy2): # to be overloaded by sub classes return def _check_config_structure(self, conf, structure): if not type(conf) == type(structure): raise FirewallError(errors.INVALID_TYPE, "'%s' not of type %s, but %s" % \ (conf, type(structure), type(conf))) if isinstance(structure, list): # same type elements, else struct if len(structure) != 1: raise FirewallError(errors.INVALID_TYPE, "len('%s') != 1" % structure) for x in conf: self._check_config_structure(x, structure[0]) elif isinstance(structure, tuple): if len(structure) != len(conf): raise FirewallError(errors.INVALID_TYPE, "len('%s') != %d" % (conf, len(structure))) for i,value in enumerate(structure): self._check_config_structure(conf[i], value) elif isinstance(structure, dict): # only one key value pair in structure (skey, svalue) = list(structure.items())[0] for (key, value) in conf.items(): if type(key) != type(skey): raise FirewallError(errors.INVALID_TYPE, "'%s' not of type %s, but %s" % (\ key, type(skey), type(key))) if type(value) != type(svalue): raise FirewallError(errors.INVALID_TYPE, "'%s' not of type %s, but %s" % (\ value, type(svalue), type(value))) # check required elements and attributes and also optional attributes def parser_check_element_attrs(self, name, attrs): _attrs = attrs.getNames() found = False if name in self.PARSER_REQUIRED_ELEMENT_ATTRS: found = True if self.PARSER_REQUIRED_ELEMENT_ATTRS[name] is not None: for x in self.PARSER_REQUIRED_ELEMENT_ATTRS[name]: if x in _attrs: _attrs.remove(x) else: raise FirewallError( errors.PARSE_ERROR, "Missing attribute %s for %s" % (x, name)) if name in self.PARSER_OPTIONAL_ELEMENT_ATTRS: found = True for x in self.PARSER_OPTIONAL_ELEMENT_ATTRS[name]: if x in _attrs: _attrs.remove(x) if not found: raise FirewallError(errors.PARSE_ERROR, "Unexpected element %s" % name) # raise attributes[0] for x in _attrs: raise FirewallError(errors.PARSE_ERROR, "%s: Unexpected attribute %s" % (name, x)) # PARSER class UnexpectedElementError(Exception): def __init__(self, name): super(UnexpectedElementError, self).__init__() self.name = name def __str__(self): return "Unexpected element '%s'" % (self.name) class MissingAttributeError(Exception): def __init__(self, name, attribute): super(MissingAttributeError, self).__init__() self.name = name self.attribute = attribute def __str__(self): return "Element '%s': missing '%s' attribute" % \ (self.name, self.attribute) class UnexpectedAttributeError(Exception): def __init__(self, name, attribute): super(UnexpectedAttributeError, self).__init__() self.name = name self.attribute = attribute def __str__(self): return "Element '%s': unexpected attribute '%s'" % \ (self.name, self.attribute) class IO_Object_ContentHandler(sax.handler.ContentHandler): def __init__(self, item): self.item = item self._element = "" def startDocument(self): self._element = "" def startElement(self, name, attrs): self._element = "" def endElement(self, name): if name == "short": self.item.short = self._element elif name == "description": self.item.description = self._element def characters(self, content): self._element += content.replace('\n', ' ') class IO_Object_XMLGenerator(saxutils.XMLGenerator): def __init__(self, out): # fix memory leak in saxutils.XMLGenerator.__init__: # out = _gettextwriter(out, encoding) # creates unbound object results in garbage in gc # # saxutils.XMLGenerator.__init__(self, out, "utf-8") # replaced by modified saxutils.XMLGenerator.__init__ code: sax.handler.ContentHandler.__init__(self) self._write = out.write self._flush = out.flush self._ns_contexts = [{}] # contains uri -> prefix dicts self._current_context = self._ns_contexts[-1] self._undeclared_ns_maps = [] self._encoding = "utf-8" self._pending_start_element = False self._short_empty_elements = False def startElement(self, name, attrs): """ saxutils.XMLGenerator.startElement() expects name and attrs to be unicode and bad things happen if any of them is (utf-8) encoded. We override the method here to sanitize this case. Can be removed once we drop Python2 support. """ if PY2: attrs = { b2u(name):b2u(value) for name, value in attrs.items() } saxutils.XMLGenerator.startElement(self, name, attrs) def simpleElement(self, name, attrs): """ slightly modified startElement() """ if PY2: self._write(u'<' + b2u(name)) for (name, value) in attrs.items(): self._write(u' %s=%s' % (b2u(name), saxutils.quoteattr(b2u(value)))) self._write(u'/>') else: self._write('<' + name) for (name, value) in attrs.items(): self._write(' %s=%s' % (name, saxutils.quoteattr(value))) self._write('/>') def endElement(self, name): """ saxutils.XMLGenerator.endElement() expects name to be unicode and bad things happen if it's (utf-8) encoded. We override the method here to sanitize this case. Can be removed once we drop Python2 support. """ saxutils.XMLGenerator.endElement(self, b2u(name)) def characters(self, content): """ saxutils.XMLGenerator.characters() expects content to be unicode and bad things happen if it's (utf-8) encoded. We override the method here to sanitize this case. Can be removed once we drop Python2 support. """ saxutils.XMLGenerator.characters(self, b2u(content)) def ignorableWhitespace(self, content): """ saxutils.XMLGenerator.ignorableWhitespace() expects content to be unicode and bad things happen if it's (utf-8) encoded. We override the method here to sanitize this case. Can be removed once we drop Python2 support. """ saxutils.XMLGenerator.ignorableWhitespace(self, b2u(content)) def check_port(port): port_range = functions.getPortRange(port) if port_range == -2: raise FirewallError(errors.INVALID_PORT, "port number in '%s' is too big" % port) elif port_range == -1: raise FirewallError(errors.INVALID_PORT, "'%s' is invalid port range" % port) elif port_range is None: raise FirewallError(errors.INVALID_PORT, "port range '%s' is ambiguous" % port) elif len(port_range) == 2 and port_range[0] >= port_range[1]: raise FirewallError(errors.INVALID_PORT, "'%s' is invalid port range" % port) def check_tcpudp(protocol): if protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, "'%s' not from {'tcp'|'udp'|'sctp'|'dccp'}" % \ protocol) def check_protocol(protocol): if not functions.checkProtocol(protocol): raise FirewallError(errors.INVALID_PROTOCOL, protocol) def check_address(ipv, addr): if not functions.check_address(ipv, addr): raise FirewallError(errors.INVALID_ADDR, "'%s' is not valid %s address" % (addr, ipv)) firewalld-0.4.4.6/src/firewall/core/io/ipset.py000066400000000000000000000506261320241217000212660ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2015-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """ipset io XML handler, reader, writer""" __all__ = [ "IPSet", "ipset_reader", "ipset_writer" ] import xml.sax as sax import os import io import shutil from firewall.config import ETC_FIREWALLD from firewall.functions import checkIP, checkIP6, checkIPnMask, \ checkIP6nMask, u2b_if_py2, check_mac, check_port, checkInterface, \ checkProtocol from firewall.core.io.io_object import PY2, IO_Object, \ IO_Object_ContentHandler, IO_Object_XMLGenerator from firewall.core.ipset import IPSET_TYPES, IPSET_CREATE_OPTIONS from firewall.core.icmp import check_icmp_name, check_icmp_type, \ check_icmpv6_name, check_icmpv6_type from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class IPSet(IO_Object): IMPORT_EXPORT_STRUCTURE = ( ( "version", "" ), # s ( "short", "" ), # s ( "description", "" ), # s ( "type", "" ), # s ( "options", { "": "", }, ), # a{ss} ( "entries", [ "" ], ), # as ) DBUS_SIGNATURE = '(ssssa{ss}as)' ADDITIONAL_ALNUM_CHARS = [ "_", "-", ":", "." ] PARSER_REQUIRED_ELEMENT_ATTRS = { "short": None, "description": None, "ipset": [ "type" ], "option": [ "name" ], "entry": None, } PARSER_OPTIONAL_ELEMENT_ATTRS = { "ipset": [ "version" ], "option": [ "value" ], } def __init__(self): super(IPSet, self).__init__() self.version = "" self.short = "" self.description = "" self.type = "" self.entries = [ ] self.options = { } self.applied = False def cleanup(self): self.version = "" self.short = "" self.description = "" self.type = "" del self.entries[:] self.options.clear() self.applied = False def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.version = u2b_if_py2(self.version) self.short = u2b_if_py2(self.short) self.description = u2b_if_py2(self.description) self.type = u2b_if_py2(self.type) self.options = { u2b_if_py2(k):u2b_if_py2(v) for k, v in self.options.items() } self.entries = [ u2b_if_py2(e) for e in self.entries ] @staticmethod def check_entry(entry, options, ipset_type): family = "ipv4" if "family" in options: if options["family"] == "inet6": family = "ipv6" if not ipset_type.startswith("hash:"): raise FirewallError(errors.INVALID_IPSET, "ipset type '%s' not usable" % ipset_type) flags = ipset_type[5:].split(",") items = entry.split(",") if len(flags) != len(items) or len(flags) < 1: raise FirewallError( errors.INVALID_ENTRY, "entry '%s' does not match ipset type '%s'" % \ (entry, ipset_type)) for i in range(len(flags)): flag = flags[i] item = items[i] if flag == "ip": if "-" in item and family == "ipv4": # IP ranges only with plain IPs, no masks if i > 1: raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s'[%d]" % \ (item, entry, i)) splits = item.split("-") if len(splits) != 2: raise FirewallError( errors.INVALID_ENTRY, "invalid address range '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) for _split in splits: if (family == "ipv4" and not checkIP(_split)) or \ (family == "ipv6" and not checkIP6(_split)): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (_split, entry, ipset_type, family)) else: # IPs with mask only allowed in the first # position of the type if family == "ipv4": if item == "0.0.0.0": raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) if i == 0: ip_check = checkIPnMask else: ip_check = checkIP else: ip_check = checkIP6 if not ip_check(item): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) elif flag == "net": if "-" in item: # IP ranges only with plain IPs, no masks splits = item.split("-") if len(splits) != 2: raise FirewallError( errors.INVALID_ENTRY, "invalid address range '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) # First part can only be a plain IP if (family == "ipv4" and not checkIP(splits[0])) or \ (family == "ipv6" and not checkIP6(splits[0])): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (splits[0], entry, ipset_type, family)) # Second part can also have a mask if (family == "ipv4" and not checkIPnMask(splits[1])) or \ (family == "ipv6" and not checkIP6nMask(splits[1])): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (splits[1], entry, ipset_type, family)) else: # IPs with mask allowed in all positions, but no /0 if item.endswith("/0"): if not (family == "ipv6" and i == 0 and ipset_type == "hash:net,iface"): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) if (family == "ipv4" and not checkIPnMask(item)) or \ (family == "ipv6" and not checkIP6nMask(item)): raise FirewallError( errors.INVALID_ENTRY, "invalid address '%s' in '%s' for %s (%s)" % \ (item, entry, ipset_type, family)) elif flag == "mac": # ipset does not allow to add 00:00:00:00:00:00 if not check_mac(item) or item == "00:00:00:00:00:00": raise FirewallError( errors.INVALID_ENTRY, "invalid mac address '%s' in '%s'" % (item, entry)) elif flag == "port": if ":" in item: splits = item.split(":") if len(splits) != 2: raise FirewallError( errors.INVALID_ENTRY, "invalid port '%s'" % (item)) if splits[0] == "icmp": if family != "ipv4": raise FirewallError( errors.INVALID_ENTRY, "invalid protocol for family '%s' in '%s'" % \ (family, entry)) if not check_icmp_name(splits[1]) and not \ check_icmp_type(splits[1]): raise FirewallError( errors.INVALID_ENTRY, "invalid icmp type '%s' in '%s'" % \ (splits[1], entry)) elif splits[0] in [ "icmpv6", "ipv6-icmp" ]: if family != "ipv6": raise FirewallError( errors.INVALID_ENTRY, "invalid protocol for family '%s' in '%s'" % \ (family, entry)) if not check_icmpv6_name(splits[1]) and not \ check_icmpv6_type(splits[1]): raise FirewallError( errors.INVALID_ENTRY, "invalid icmpv6 type '%s' in '%s'" % \ (splits[1], entry)) elif splits[0] not in [ "tcp", "sctp", "udp", "udplite" ] \ and not checkProtocol(splits[0]): raise FirewallError( errors.INVALID_ENTRY, "invalid protocol '%s' in '%s'" % (splits[0], entry)) elif not check_port(splits[1]): raise FirewallError( errors.INVALID_ENTRY, "invalid port '%s'in '%s'" % (splits[1], entry)) else: if not check_port(item): raise FirewallError( errors.INVALID_ENTRY, "invalid port '%s' in '%s'" % (item, entry)) elif flag == "mark": if item.startswith("0x"): try: int_val = int(item, 16) except ValueError: raise FirewallError( errors.INVALID_ENTRY, "invalid mark '%s' in '%s'" % (item, entry)) else: try: int_val = int(item) except ValueError: raise FirewallError( errors.INVALID_ENTRY, "invalid mark '%s' in '%s'" % (item, entry)) if int_val < 0 or int_val > 4294967295: raise FirewallError( errors.INVALID_ENTRY, "invalid mark '%s' in '%s'" % (item, entry)) elif flag == "iface": if not checkInterface(item) or len(item) > 15: raise FirewallError( errors.INVALID_ENTRY, "invalid interface '%s' in '%s'" % (item, entry)) else: raise FirewallError(errors.INVALID_IPSET, "ipset type '%s' not usable" % ipset_type) def _check_config(self, config, item): if item == "type": if config not in IPSET_TYPES: raise FirewallError(errors.INVALID_TYPE, "'%s' is not valid ipset type" % config) if item == "options": for key in config.keys(): if key not in IPSET_CREATE_OPTIONS: raise FirewallError(errors.INVALID_IPSET, "ipset invalid option '%s'" % key) if key in [ "timeout", "hashsize", "maxelem" ]: try: int_value = int(config[key]) except ValueError: raise FirewallError( errors.INVALID_VALUE, "Option '%s': Value '%s' is not an integer" % \ (key, config[key])) if int_value < 0: raise FirewallError( errors.INVALID_VALUE, "Option '%s': Value '%s' is negative" % \ (key, config[key])) elif key == "family" and \ config[key] not in [ "inet", "inet6" ]: raise FirewallError(errors.INVALID_FAMILY, config[key]) def import_config(self, config): if "timeout" in config[4] and config[4]["timeout"] != "0": if len(config[5]) != 0: raise FirewallError(errors.IPSET_WITH_TIMEOUT) for entry in config[5]: IPSet.check_entry(entry, config[4], config[3]) super(IPSet, self).import_config(config) # PARSER class ipset_ContentHandler(IO_Object_ContentHandler): def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "ipset": if "type" in attrs: self.item.type = attrs["type"] if "version" in attrs: self.item.version = attrs["version"] elif name == "short": pass elif name == "description": pass elif name == "option": value = "" if "value" in attrs: value = attrs["value"] if attrs["name"] not in \ [ "family", "timeout", "hashsize", "maxelem" ]: raise FirewallError( errors.INVALID_OPTION, "Unknown option '%s'" % attrs["name"]) if self.item.type == "hash:mac" and attrs["name"] in [ "family" ]: raise FirewallError( errors.INVALID_OPTION, "Unsupported option '%s' for type '%s'" % \ (attrs["name"], self.item.type)) if attrs["name"] in [ "family", "timeout", "hashsize", "maxelem" ] \ and not value: raise FirewallError( errors.INVALID_OPTION, "Missing mandatory value of option '%s'" % attrs["name"]) if attrs["name"] in [ "timeout", "hashsize", "maxelem" ]: try: int_value = int(value) except ValueError: raise FirewallError( errors.INVALID_VALUE, "Option '%s': Value '%s' is not an integer" % \ (attrs["name"], value)) if int_value < 0: raise FirewallError( errors.INVALID_VALUE, "Option '%s': Value '%s' is negative" % \ (attrs["name"], value)) if attrs["name"] == "family" and value not in [ "inet", "inet6" ]: raise FirewallError(errors.INVALID_FAMILY, value) if attrs["name"] not in self.item.options: self.item.options[attrs["name"]] = value else: log.warning("Option %s already set, ignoring.", attrs["name"]) # nothing to do for entry and entries here def endElement(self, name): IO_Object_ContentHandler.endElement(self, name) if name == "entry": self.item.entries.append(self._element) def ipset_reader(filename, path): ipset = IPSet() if not filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % filename) ipset.name = filename[:-4] ipset.check_name(ipset.name) ipset.filename = filename ipset.path = path ipset.builtin = False if path.startswith(ETC_FIREWALLD) else True ipset.default = ipset.builtin handler = ipset_ContentHandler(ipset) parser = sax.make_parser() parser.setContentHandler(handler) name = "%s/%s" % (path, filename) with open(name, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_IPSET, "not a valid ipset file: %s" % \ msg.getException()) del handler del parser if "timeout" in ipset.options and ipset.options["timeout"] != "0" and \ len(ipset.entries) > 0: # no entries visible for ipsets with timeout log.warning("ipset '%s': timeout option is set, entries are ignored", ipset.name) del ipset.entries[:] i = 0 entries_set = set() while i < len(ipset.entries): if ipset.entries[i] in entries_set: log.warning("Entry %s already set, ignoring.", ipset.entries[i]) ipset.entries.pop(i) else: try: ipset.check_entry(ipset.entries[i], ipset.options, ipset.type) except FirewallError as e: log.warning("%s, ignoring.", e) ipset.entries.pop(i) else: entries_set.add(ipset.entries[i]) i += 1 del entries_set if PY2: ipset.encode_strings() return ipset def ipset_writer(ipset, path=None): _path = path if path else ipset.path if ipset.filename: name = "%s/%s" % (_path, ipset.filename) else: name = "%s/%s.xml" % (_path, ipset.name) if os.path.exists(name): try: shutil.copy2(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) dirpath = os.path.dirname(name) if dirpath.startswith(ETC_FIREWALLD) and not os.path.exists(dirpath): if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) os.mkdir(dirpath, 0o750) f = io.open(name, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start ipset element attrs = { "type": ipset.type } if ipset.version and ipset.version != "": attrs["version"] = ipset.version handler.startElement("ipset", attrs) handler.ignorableWhitespace("\n") # short if ipset.short and ipset.short != "": handler.ignorableWhitespace(" ") handler.startElement("short", { }) handler.characters(ipset.short) handler.endElement("short") handler.ignorableWhitespace("\n") # description if ipset.description and ipset.description != "": handler.ignorableWhitespace(" ") handler.startElement("description", { }) handler.characters(ipset.description) handler.endElement("description") handler.ignorableWhitespace("\n") # options for key,value in ipset.options.items(): handler.ignorableWhitespace(" ") if value != "": handler.simpleElement("option", { "name": key, "value": value }) else: handler.simpleElement("option", { "name": key }) handler.ignorableWhitespace("\n") # entries for entry in ipset.entries: handler.ignorableWhitespace(" ") handler.startElement("entry", { }) handler.characters(entry) handler.endElement("entry") handler.ignorableWhitespace("\n") # end ipset element handler.endElement('ipset') handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/lockdown_whitelist.py000066400000000000000000000304721320241217000240530ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import xml.sax as sax import os import io import shutil from firewall import config from firewall.core.io.io_object import * from firewall.core.logger import log from firewall.functions import uniqify, checkUser, checkUid, checkCommand, \ checkContext, u2b_if_py2 from firewall import errors from firewall.errors import FirewallError class lockdown_whitelist_ContentHandler(IO_Object_ContentHandler): def __init__(self, item): IO_Object_ContentHandler.__init__(self, item) self.whitelist = False def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "whitelist": if self.whitelist: raise FirewallError(errors.PARSE_ERROR, "More than one whitelist.") self.whitelist = True elif name == "command": if not self.whitelist: log.error("Parse Error: command outside of whitelist") return command = attrs["name"] self.item.add_command(command) elif name == "user": if not self.whitelist: log.error("Parse Error: user outside of whitelist") return if "id" in attrs: try: uid = int(attrs["id"]) except ValueError: log.error("Parse Error: %s is not a valid uid" % attrs["id"]) return self.item.add_uid(uid) elif "name" in attrs: self.item.add_user(attrs["name"]) elif name == "selinux": if not self.whitelist: log.error("Parse Error: selinux outside of whitelist") return if "context" not in attrs: log.error("Parse Error: no context") return self.item.add_context(attrs["context"]) else: log.error('Unknown XML element %s' % name) return class LockdownWhitelist(IO_Object): """ LockdownWhitelist class """ IMPORT_EXPORT_STRUCTURE = ( ( "commands", [ "" ] ), # as ( "contexts", [ "" ] ), # as ( "users", [ "" ] ), # as ( "uids", [ 0 ] ) # ai ) DBUS_SIGNATURE = '(asasasai)' ADDITIONAL_ALNUM_CHARS = [ "_" ] PARSER_REQUIRED_ELEMENT_ATTRS = { "whitelist": None, "command": [ "name" ], "user": None, # "group": None, "selinux": [ "context" ], } PARSER_OPTIONAL_ELEMENT_ATTRS = { "user": [ "id", "name" ], # "group": [ "id", "name" ], } def __init__(self, filename): super(LockdownWhitelist, self).__init__() self.filename = filename self.parser = None self.commands = [ ] self.contexts = [ ] self.users = [ ] self.uids = [ ] # self.gids = [ ] # self.groups = [ ] def _check_config(self, config, item): if item in [ "commands", "contexts", "users", "uids" ]: for x in config: self._check_config(x, item[:-1]) elif item == "command": if not checkCommand(config): raise FirewallError(errors.INVALID_COMMAND, config) elif item == "context": if not checkContext(config): raise FirewallError(errors.INVALID_CONTEXT, config) elif item == "user": if not checkUser(config): raise FirewallError(errors.INVALID_USER, config) elif item == "uid": if not checkUid(config): raise FirewallError(errors.INVALID_UID, config) def cleanup(self): del self.commands[:] del self.contexts[:] del self.users[:] del self.uids[:] # del self.gids[:] # del self.groups[:] def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.commands = [ u2b_if_py2(x) for x in self.commands ] self.contexts = [ u2b_if_py2(x) for x in self.contexts ] self.users = [ u2b_if_py2(x) for x in self.users ] # commands def add_command(self, command): if not checkCommand(command): raise FirewallError(errors.INVALID_COMMAND, command) if command not in self.commands: self.commands.append(command) else: raise FirewallError(errors.ALREADY_ENABLED, 'Command "%s" already in whitelist' % command) def remove_command(self, command): if command in self.commands: self.commands.remove(command) else: raise FirewallError(errors.NOT_ENABLED, 'Command "%s" not in whitelist.' % command) def has_command(self, command): return (command in self.commands) def match_command(self, command): for _command in self.commands: if _command.endswith("*"): if command.startswith(_command[:-1]): return True else: if _command == command: return True return False def get_commands(self): return self.commands # user ids def add_uid(self, uid): if not checkUid(uid): raise FirewallError(errors.INVALID_UID, str(uid)) if uid not in self.uids: self.uids.append(uid) else: raise FirewallError(errors.ALREADY_ENABLED, 'Uid "%s" already in whitelist' % uid) def remove_uid(self, uid): if uid in self.uids: self.uids.remove(uid) else: raise FirewallError(errors.NOT_ENABLED, 'Uid "%s" not in whitelist.' % uid) def has_uid(self, uid): return (uid in self.uids) def match_uid(self, uid): return (uid in self.uids) def get_uids(self): return self.uids # users def add_user(self, user): if not checkUser(user): raise FirewallError(errors.INVALID_USER, user) if user not in self.users: self.users.append(user) else: raise FirewallError(errors.ALREADY_ENABLED, 'User "%s" already in whitelist' % user) def remove_user(self, user): if user in self.users: self.users.remove(user) else: raise FirewallError(errors.NOT_ENABLED, 'User "%s" not in whitelist.' % user) def has_user(self, user): return (user in self.users) def match_user(self, user): return (user in self.users) def get_users(self): return self.users # # group ids # # def add_gid(self, gid): # if gid not in self.gids: # self.gids.append(gid) # # def remove_gid(self, gid): # if gid in self.gids: # self.gids.remove(gid) # else: # raise FirewallError(errors.NOT_ENABLED, # 'Gid "%s" not in whitelist.' % gid) # # def has_gid(self, gid): # return (gid in self.gids) # # def match_gid(self, gid): # return (gid in self.gids) # # def get_gids(self): # return self.gids # # groups # # def add_group(self, group): # if group not in self.groups: # self.groups.append(group) # # def remove_group(self, group): # if group in self.groups: # self.groups.remove(group) # else: # raise FirewallError(errors.NOT_ENABLED, # 'Group "%s" not in whitelist.' % group) # # def has_group(self, group): # return (group in self.groups) # # def match_group(self, group): # return (group in self.groups) # # def get_groups(self): # return self.groups # selinux contexts def add_context(self, context): if not checkContext(context): raise FirewallError(errors.INVALID_CONTEXT, context) if context not in self.contexts: self.contexts.append(context) else: raise FirewallError(errors.ALREADY_ENABLED, 'Context "%s" already in whitelist' % context) def remove_context(self, context): if context in self.contexts: self.contexts.remove(context) else: raise FirewallError(errors.NOT_ENABLED, 'Context "%s" not in whitelist.' % context) def has_context(self, context): return (context in self.contexts) def match_context(self, context): return (context in self.contexts) def get_contexts(self): return self.contexts # read and write def read(self): self.cleanup() if not self.filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % self.filename) handler = lockdown_whitelist_ContentHandler(self) parser = sax.make_parser() parser.setContentHandler(handler) try: parser.parse(self.filename) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_TYPE, "Not a valid file: %s" % \ msg.getException()) del handler del parser if PY2: self.encode_strings() def write(self): if os.path.exists(self.filename): try: shutil.copy2(self.filename, "%s.old" % self.filename) except Exception as msg: raise IOError("Backup of '%s' failed: %s" % (self.filename, msg)) if not os.path.exists(config.ETC_FIREWALLD): os.mkdir(config.ETC_FIREWALLD, 0o750) f = io.open(self.filename, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start whitelist element handler.startElement("whitelist", { }) handler.ignorableWhitespace("\n") # commands for command in uniqify(self.commands): handler.ignorableWhitespace(" ") handler.simpleElement("command", { "name": command }) handler.ignorableWhitespace("\n") for uid in uniqify(self.uids): handler.ignorableWhitespace(" ") handler.simpleElement("user", { "id": str(uid) }) handler.ignorableWhitespace("\n") for user in uniqify(self.users): handler.ignorableWhitespace(" ") handler.simpleElement("user", { "name": user }) handler.ignorableWhitespace("\n") # for gid in uniqify(self.gids): # handler.ignorableWhitespace(" ") # handler.simpleElement("user", { "id": str(gid) }) # handler.ignorableWhitespace("\n") # for group in uniqify(self.groups): # handler.ignorableWhitespace(" ") # handler.simpleElement("group", { "name": group }) # handler.ignorableWhitespace("\n") for context in uniqify(self.contexts): handler.ignorableWhitespace(" ") handler.simpleElement("selinux", { "context": context }) handler.ignorableWhitespace("\n") # end whitelist element handler.endElement("whitelist") handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/service.py000066400000000000000000000270051320241217000215750ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Service", "service_reader", "service_writer" ] import xml.sax as sax import os import io import shutil from firewall.config import ETC_FIREWALLD from firewall.functions import u2b_if_py2 from firewall.core.io.io_object import PY2, IO_Object, \ IO_Object_ContentHandler, IO_Object_XMLGenerator, check_port, \ check_tcpudp, check_protocol, check_address from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class Service(IO_Object): IMPORT_EXPORT_STRUCTURE = ( ( "version", "" ), # s ( "short", "" ), # s ( "description", "" ), # s ( "ports", [ ( "", "" ), ], ), # a(ss) ( "modules", [ "", ], ), # as ( "destination", { "": "", }, ), # a{ss} ( "protocols", [ "", ], ), # as ( "source_ports", [ ( "", "" ), ], ), # a(ss) ) DBUS_SIGNATURE = '(sssa(ss)asa{ss}asa(ss))' ADDITIONAL_ALNUM_CHARS = [ "_", "-" ] PARSER_REQUIRED_ELEMENT_ATTRS = { "short": None, "description": None, "service": None, } PARSER_OPTIONAL_ELEMENT_ATTRS = { "service": [ "name", "version" ], "port": [ "port", "protocol" ], "protocol": [ "value" ], "module": [ "name" ], "destination": [ "ipv4", "ipv6" ], "source-port": [ "port", "protocol" ], } def __init__(self): super(Service, self).__init__() self.version = "" self.short = "" self.description = "" self.ports = [ ] self.protocols = [ ] self.modules = [ ] self.destination = { } self.source_ports = [ ] def cleanup(self): self.version = "" self.short = "" self.description = "" del self.ports[:] del self.protocols[:] del self.modules[:] self.destination.clear() del self.source_ports[:] def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.version = u2b_if_py2(self.version) self.short = u2b_if_py2(self.short) self.description = u2b_if_py2(self.description) self.ports = [(u2b_if_py2(po),u2b_if_py2(pr)) for (po,pr) in self.ports] self.modules = [u2b_if_py2(m) for m in self.modules] self.destination = {u2b_if_py2(k):u2b_if_py2(v) for k,v in self.destination.items()} self.protocols = [u2b_if_py2(pr) for pr in self.protocols] self.source_ports = [(u2b_if_py2(po),u2b_if_py2(pr)) for (po,pr) in self.source_ports] def _check_config(self, config, item): if item == "ports": for port in config: if port[0] != "": check_port(port[0]) check_tcpudp(port[1]) else: # only protocol check_protocol(port[1]) elif item == "protocols": for proto in config: check_protocol(proto) elif item == "source_ports": for port in config: check_port(port[0]) check_tcpudp(port[1]) elif item == "destination": for destination in config: if destination not in [ "ipv4", "ipv6" ]: raise FirewallError(errors.INVALID_DESTINATION, "'%s' not in {'ipv4'|'ipv6'}" % \ destination) check_address(destination, config[destination]) elif item == "modules": for module in config: if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") if len(module) < 2: raise FirewallError(errors.INVALID_MODULE, module) # PARSER class service_ContentHandler(IO_Object_ContentHandler): def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) self.item.parser_check_element_attrs(name, attrs) if name == "service": if "name" in attrs: log.warning("Ignoring deprecated attribute name='%s'", attrs["name"]) if "version" in attrs: self.item.version = attrs["version"] elif name == "short": pass elif name == "description": pass elif name == "port": if attrs["port"] != "": check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) entry = (attrs["port"], attrs["protocol"]) if entry not in self.item.ports: self.item.ports.append(entry) else: log.warning("Port '%s/%s' already set, ignoring.", attrs["port"], attrs["protocol"]) else: check_protocol(attrs["protocol"]) if attrs["protocol"] not in self.item.protocols: self.item.protocols.append(attrs["protocol"]) else: log.warning("Protocol '%s' already set, ignoring.", attrs["protocol"]) elif name == "protocol": check_protocol(attrs["value"]) if attrs["value"] not in self.item.protocols: self.item.protocols.append(attrs["value"]) else: log.warning("Protocol '%s' already set, ignoring.", attrs["value"]) elif name == "source-port": check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) entry = (attrs["port"], attrs["protocol"]) if entry not in self.item.source_ports: self.item.source_ports.append(entry) else: log.warning("SourcePort '%s/%s' already set, ignoring.", attrs["port"], attrs["protocol"]) elif name == "destination": for x in [ "ipv4", "ipv6" ]: if x in attrs: check_address(x, attrs[x]) if x in self.item.destination: log.warning("Destination address for '%s' already set, ignoring", x) else: self.item.destination[x] = attrs[x] elif name == "module": module = attrs["name"] if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") if module not in self.item.modules: self.item.modules.append(module) else: log.warning("Module '%s' already set, ignoring.", module) def service_reader(filename, path): service = Service() if not filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % filename) service.name = filename[:-4] service.check_name(service.name) service.filename = filename service.path = path service.builtin = False if path.startswith(ETC_FIREWALLD) else True service.default = service.builtin handler = service_ContentHandler(service) parser = sax.make_parser() parser.setContentHandler(handler) name = "%s/%s" % (path, filename) with open(name, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_SERVICE, "not a valid service file: %s" % \ msg.getException()) del handler del parser if PY2: service.encode_strings() return service def service_writer(service, path=None): _path = path if path else service.path if service.filename: name = "%s/%s" % (_path, service.filename) else: name = "%s/%s.xml" % (_path, service.name) if os.path.exists(name): try: shutil.copy2(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) dirpath = os.path.dirname(name) if dirpath.startswith(ETC_FIREWALLD) and not os.path.exists(dirpath): if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) os.mkdir(dirpath, 0o750) f = io.open(name, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start service element attrs = {} if service.version and service.version != "": attrs["version"] = service.version handler.startElement("service", attrs) handler.ignorableWhitespace("\n") # short if service.short and service.short != "": handler.ignorableWhitespace(" ") handler.startElement("short", { }) handler.characters(service.short) handler.endElement("short") handler.ignorableWhitespace("\n") # description if service.description and service.description != "": handler.ignorableWhitespace(" ") handler.startElement("description", { }) handler.characters(service.description) handler.endElement("description") handler.ignorableWhitespace("\n") # ports for port in service.ports: handler.ignorableWhitespace(" ") handler.simpleElement("port", { "port": port[0], "protocol": port[1] }) handler.ignorableWhitespace("\n") # protocols for protocol in service.protocols: handler.ignorableWhitespace(" ") handler.simpleElement("protocol", { "value": protocol }) handler.ignorableWhitespace("\n") # source ports for port in service.source_ports: handler.ignorableWhitespace(" ") handler.simpleElement("source-port", { "port": port[0], "protocol": port[1] }) handler.ignorableWhitespace("\n") # modules for module in service.modules: handler.ignorableWhitespace(" ") handler.simpleElement("module", { "name": module }) handler.ignorableWhitespace("\n") # destination if len(service.destination) > 0: handler.ignorableWhitespace(" ") handler.simpleElement("destination", service.destination) handler.ignorableWhitespace("\n") # end service element handler.endElement('service') handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/io/zone.py000066400000000000000000001144241320241217000211120ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Zone", "zone_reader", "zone_writer" ] import xml.sax as sax import os import io import shutil from firewall.config import ETC_FIREWALLD from firewall.functions import checkIP, checkIP6, checkIPnMask, checkIP6nMask, checkInterface, uniqify, max_zone_name_len, u2b_if_py2, check_mac, portStr from firewall.core.base import DEFAULT_ZONE_TARGET, ZONE_TARGETS from firewall.core.io.io_object import PY2, IO_Object, \ IO_Object_ContentHandler, IO_Object_XMLGenerator, check_port, \ check_tcpudp, check_protocol from firewall.core import rich from firewall.core.logger import log from firewall import errors from firewall.errors import FirewallError class Zone(IO_Object): """ Zone class """ IMPORT_EXPORT_STRUCTURE = ( ( "version", "" ), # s ( "short", "" ), # s ( "description", "" ), # s ( "UNUSED", False ), # b ( "target", "" ), # s ( "services", [ "", ], ), # as ( "ports", [ ( "", "" ), ], ), # a(ss) ( "icmp_blocks", [ "", ], ), # as ( "masquerade", False ), # b ( "forward_ports", [ ( "", "", "", "" ), ], ), # a(ssss) ( "interfaces", [ "" ] ), # as ( "sources", [ "" ] ), # as ( "rules_str", [ "" ] ), # as ( "protocols", [ "", ], ), # as ( "source_ports", [ ( "", "" ), ], ), # a(ss) ( "icmp_block_inversion", False ), # b ) DBUS_SIGNATURE = '(sssbsasa(ss)asba(ssss)asasasasa(ss)b)' ADDITIONAL_ALNUM_CHARS = [ "_", "-", "/" ] PARSER_REQUIRED_ELEMENT_ATTRS = { "short": None, "description": None, "zone": None, "service": [ "name" ], "port": [ "port", "protocol" ], "icmp-block": [ "name" ], "icmp-type": [ "name" ], "forward-port": [ "port", "protocol" ], "interface": [ "name" ], "rule": None, "source": None, "destination": [ "address" ], "protocol": [ "value" ], "source-port": [ "port", "protocol" ], "log": None, "audit": None, "accept": None, "reject": None, "drop": None, "mark": [ "set" ], "limit": [ "value" ], "icmp-block-inversion": None, } PARSER_OPTIONAL_ELEMENT_ATTRS = { "zone": [ "name", "immutable", "target", "version" ], "masquerade": [ "enabled" ], "forward-port": [ "to-port", "to-addr" ], "rule": [ "family" ], "source": [ "address", "mac", "invert", "family", "ipset" ], "destination": [ "invert" ], "log": [ "prefix", "level" ], "reject": [ "type" ], } @staticmethod def index_of(element): for i, (el, dummy) in enumerate(Zone.IMPORT_EXPORT_STRUCTURE): if el == element: return i raise FirewallError(errors.UNKNOWN_ERROR, "index_of()") def __init__(self): super(Zone, self).__init__() self.version = "" self.short = "" self.description = "" self.UNUSED = False self.target = DEFAULT_ZONE_TARGET self.services = [ ] self.ports = [ ] self.protocols = [ ] self.icmp_blocks = [ ] self.masquerade = False self.forward_ports = [ ] self.source_ports = [ ] self.interfaces = [ ] self.sources = [ ] self.fw_config = None # to be able to check services and a icmp_blocks self.rules = [ ] self.icmp_block_inversion = False self.combined = False self.applied = False def cleanup(self): self.version = "" self.short = "" self.description = "" self.UNUSED = False self.target = DEFAULT_ZONE_TARGET del self.services[:] del self.ports[:] del self.protocols[:] del self.icmp_blocks[:] self.masquerade = False del self.forward_ports[:] del self.source_ports[:] del self.interfaces[:] del self.sources[:] self.fw_config = None # to be able to check services and a icmp_blocks del self.rules[:] self.icmp_block_inversion = False self.combined = False self.applied = False def encode_strings(self): """ HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.""" self.version = u2b_if_py2(self.version) self.short = u2b_if_py2(self.short) self.description = u2b_if_py2(self.description) self.target = u2b_if_py2(self.target) self.services = [u2b_if_py2(s) for s in self.services] self.ports = [(u2b_if_py2(po),u2b_if_py2(pr)) for (po,pr) in self.ports] self.protocols = [u2b_if_py2(pr) for pr in self.protocols] self.icmp_blocks = [u2b_if_py2(i) for i in self.icmp_blocks] self.forward_ports = [(u2b_if_py2(p1),u2b_if_py2(p2),u2b_if_py2(p3),u2b_if_py2(p4)) for (p1,p2,p3,p4) in self.forward_ports] self.source_ports = [(u2b_if_py2(po),u2b_if_py2(pr)) for (po,pr) in self.source_ports] self.interfaces = [u2b_if_py2(i) for i in self.interfaces] self.sources = [u2b_if_py2(s) for s in self.sources] self.rules = [u2b_if_py2(s) for s in self.rules] def __getattr__(self, name): if name == "rules_str": rules_str = [str(rule) for rule in self.rules] return rules_str else: return getattr(super(Zone, self), name) def __setattr__(self, name, value): if name == "rules_str": self.rules = [rich.Rich_Rule(rule_str=s) for s in value] else: super(Zone, self).__setattr__(name, value) def _check_config(self, config, item): if item == "services" and self.fw_config: existing_services = self.fw_config.get_services() for service in config: if service not in existing_services: raise FirewallError(errors.INVALID_SERVICE, "'%s' not among existing services" % \ service) elif item == "ports": for port in config: check_port(port[0]) check_tcpudp(port[1]) elif item == "protocols": for proto in config: check_protocol(proto) elif item == "icmp_blocks" and self.fw_config: existing_icmptypes = self.fw_config.get_icmptypes() for icmptype in config: if icmptype not in existing_icmptypes: raise FirewallError(errors.INVALID_ICMPTYPE, "'%s' not among existing icmp types" % \ icmptype) elif item == "forward_ports": for fwd_port in config: check_port(fwd_port[0]) check_tcpudp(fwd_port[1]) if not fwd_port[2] and not fwd_port[3]: raise FirewallError( errors.INVALID_FORWARD, "'%s' is missing to-port AND to-addr " % fwd_port) if fwd_port[2]: check_port(fwd_port[2]) if fwd_port[3]: if not checkIP(fwd_port[3]) and not checkIP6(fwd_port[3]): raise FirewallError( errors.INVALID_ADDR, "to-addr '%s' is not a valid address" % fwd_port[3]) elif item == "source_ports": for port in config: check_port(port[0]) check_tcpudp(port[1]) elif item == "target": if config not in ZONE_TARGETS: raise FirewallError(errors.INVALID_TARGET, config) elif item == "interfaces": for interface in config: if not checkInterface(interface): raise FirewallError(errors.INVALID_INTERFACE, interface) elif item == "sources": for source in config: if not checkIPnMask(source) and not checkIP6nMask(source) and \ not check_mac(source) and not source.startswith("ipset:"): raise FirewallError(errors.INVALID_ADDR, source) elif item == "rules_str": for rule in config: rich.Rich_Rule(rule_str=rule) def check_name(self, name): super(Zone, self).check_name(name) if name.startswith('/'): raise FirewallError(errors.INVALID_NAME, "'%s' can't start with '/'" % name) elif name.endswith('/'): raise FirewallError(errors.INVALID_NAME, "'%s' can't end with '/'" % name) elif name.count('/') > 1: raise FirewallError(errors.INVALID_NAME, "more than one '/' in '%s'" % name) elif len(name) > max_zone_name_len(): raise FirewallError( errors.INVALID_NAME, "'%s' has %d chars, max is %d" % (name, len(name), max_zone_name_len())) def combine(self, zone): self.combined = True self.filename = None self.version = "" self.short = "" self.description = "" for interface in zone.interfaces: if interface not in self.interfaces: self.interfaces.append(interface) for source in zone.sources: if source not in self.sources: self.sources.append(source) for service in zone.services: if service not in self.services: self.services.append(service) for port in zone.ports: if port not in self.ports: self.ports.append(port) for proto in zone.protocols: if proto not in self.protocols: self.protocols.append(proto) for icmp in zone.icmp_blocks: if icmp not in self.icmp_blocks: self.icmp_blocks.append(icmp) if zone.masquerade: self.masquerade = True for forward in zone.forward_ports: if forward not in self.forward_ports: self.forward_ports.append(forward) for port in zone.source_ports: if port not in self.source_ports: self.source_ports.append(port) for rule in zone.rules: self.rules.append(rule) if zone.icmp_block_inversion: self.icmp_block_inversion = True # PARSER class zone_ContentHandler(IO_Object_ContentHandler): def __init__(self, item): IO_Object_ContentHandler.__init__(self, item) self._rule = None self._rule_error = False self._limit_ok = None def startElement(self, name, attrs): IO_Object_ContentHandler.startElement(self, name, attrs) if self._rule_error: return self.item.parser_check_element_attrs(name, attrs) if name == "zone": if "name" in attrs: log.warning("Ignoring deprecated attribute name='%s'", attrs["name"]) if "version" in attrs: self.item.version = attrs["version"] if "immutable" in attrs: log.warning("Ignoring deprecated attribute immutable='%s'", attrs["immutable"]) if "target" in attrs: target = attrs["target"] if target not in ZONE_TARGETS: raise FirewallError(errors.INVALID_TARGET, target) if target != "" and target != DEFAULT_ZONE_TARGET: self.item.target = target elif name == "short": pass elif name == "description": pass elif name == "service": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_Service(attrs["name"]) return if attrs["name"] not in self.item.services: self.item.services.append(attrs["name"]) else: log.warning("Service '%s' already set, ignoring.", attrs["name"]) elif name == "port": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_Port(attrs["port"], attrs["protocol"]) return check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) entry = (portStr(attrs["port"], "-"), attrs["protocol"]) if entry not in self.item.ports: self.item.ports.append(entry) else: log.warning("Port '%s/%s' already set, ignoring.", attrs["port"], attrs["protocol"]) elif name == "protocol": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_Protocol(attrs["value"]) else: check_protocol(attrs["value"]) if attrs["value"] not in self.item.protocols: self.item.protocols.append(attrs["value"]) else: log.warning("Protocol '%s' already set, ignoring.", attrs["value"]) elif name == "icmp-block": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_IcmpBlock(attrs["name"]) return if attrs["name"] not in self.item.icmp_blocks: self.item.icmp_blocks.append(attrs["name"]) else: log.warning("icmp-block '%s' already set, ignoring.", attrs["name"]) elif name == "icmp-type": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_IcmpType(attrs["name"]) return else: log.warning("Invalid rule: icmp-block '%s' outside of rule", attrs["name"]) elif name == "masquerade": if "enabled" in attrs and \ attrs["enabled"].lower() in [ "no", "false" ] : log.warning("Ignoring deprecated attribute enabled='%s'", attrs["enabled"]) return if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_Masquerade() else: if self.item.masquerade: log.warning("Masquerade already set, ignoring.") else: self.item.masquerade = True elif name == "forward-port": to_port = "" if "to-port" in attrs: to_port = attrs["to-port"] to_addr = "" if "to-addr" in attrs: to_addr = attrs["to-addr"] if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_ForwardPort(attrs["port"], attrs["protocol"], to_port, to_addr) return check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) if to_port: check_port(to_port) if to_addr: if not checkIP(to_addr) and not checkIP6(to_addr): raise FirewallError(errors.INVALID_ADDR, "to-addr '%s' is not a valid address" \ % to_addr) entry = (portStr(attrs["port"], "-"), attrs["protocol"], portStr(to_port, "-"), str(to_addr)) if entry not in self.item.forward_ports: self.item.forward_ports.append(entry) else: log.warning("Forward port %s/%s%s%s already set, ignoring.", attrs["port"], attrs["protocol"], " >%s" % to_port if to_port else "", " @%s" % to_addr if to_addr else "") elif name == "source-port": if self._rule: if self._rule.element: log.warning("Invalid rule: More than one element in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.element = rich.Rich_SourcePort(attrs["port"], attrs["protocol"]) return check_port(attrs["port"]) check_tcpudp(attrs["protocol"]) entry = (portStr(attrs["port"], "-"), attrs["protocol"]) if entry not in self.item.source_ports: self.item.source_ports.append(entry) else: log.warning("Source port '%s/%s' already set, ignoring.", attrs["port"], attrs["protocol"]) elif name == "interface": if self._rule: log.warning('Invalid rule: interface use in rule.') self._rule_error = True return # zone bound to interface if "name" not in attrs: log.warning('Invalid interface: Name missing.') self._rule_error = True return if attrs["name"] not in self.item.interfaces: self.item.interfaces.append(attrs["name"]) else: log.warning("Interface '%s' already set, ignoring.", attrs["name"]) elif name == "source": if self._rule: if self._rule.source: log.warning("Invalid rule: More than one source in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return invert = False if "invert" in attrs and \ attrs["invert"].lower() in [ "yes", "true" ]: invert = True addr = mac = ipset = None if "address" in attrs: addr = attrs["address"] if "mac" in attrs: mac = attrs["mac"] if "ipset" in attrs: ipset = attrs["ipset"] self._rule.source = rich.Rich_Source(addr, mac, ipset, invert=invert) return # zone bound to source if "address" not in attrs and "ipset" not in attrs: log.warning('Invalid source: No address no ipset.') return if "address" in attrs and "ipset" in attrs: log.warning('Invalid source: Address and ipset.') return if "family" in attrs: log.warning("Ignoring deprecated attribute family='%s'", attrs["family"]) if "invert" in attrs: log.warning('Invalid source: Invertion not allowed here.') return if "address" in attrs: if not checkIPnMask(attrs["address"]) and \ not checkIP6nMask(attrs["address"]) and \ not check_mac(attrs["address"]): raise FirewallError(errors.INVALID_ADDR, attrs["address"]) if "ipset" in attrs: entry = "ipset:%s" % attrs["ipset"] if entry not in self.item.sources: self.item.sources.append(entry) else: log.warning("Source '%s' already set, ignoring.", attrs["address"]) if "address" in attrs: entry = attrs["address"] if entry not in self.item.sources: self.item.sources.append(entry) else: log.warning("Source '%s' already set, ignoring.", attrs["address"]) elif name == "destination": if not self._rule: log.warning('Invalid rule: Destination outside of rule') self._rule_error = True return if self._rule.destination: log.warning("Invalid rule: More than one destination in rule '%s', ignoring.", str(self._rule)) return invert = False if "invert" in attrs and \ attrs["invert"].lower() in [ "yes", "true" ]: invert = True self._rule.destination = rich.Rich_Destination(attrs["address"], invert) elif name in [ "accept", "reject", "drop", "mark" ]: if not self._rule: log.warning('Invalid rule: Action outside of rule') self._rule_error = True return if self._rule.action: log.warning('Invalid rule: More than one action') self._rule_error = True return if name == "accept": self._rule.action = rich.Rich_Accept() elif name == "reject": _type = None if "type" in attrs: _type = attrs["type"] self._rule.action = rich.Rich_Reject(_type) elif name == "drop": self._rule.action = rich.Rich_Drop() elif name == "mark": _set = attrs["set"] self._rule.action = rich.Rich_Mark(_set) self._limit_ok = self._rule.action elif name == "log": if not self._rule: log.warning('Invalid rule: Log outside of rule') return if self._rule.log: log.warning('Invalid rule: More than one log') return level = None if "level" in attrs: level = attrs["level"] if level not in [ "emerg", "alert", "crit", "error", "warning", "notice", "info", "debug" ]: log.warning('Invalid rule: Invalid log level') self._rule_error = True return prefix = attrs["prefix"] if "prefix" in attrs else None self._rule.log = rich.Rich_Log(prefix, level) self._limit_ok = self._rule.log elif name == "audit": if not self._rule: log.warning('Invalid rule: Audit outside of rule') return if self._rule.audit: log.warning("Invalid rule: More than one audit in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return self._rule.audit = rich.Rich_Audit() self._limit_ok = self._rule.audit elif name == "rule": family = None if "family" in attrs: family = attrs["family"] if family not in [ "ipv4", "ipv6" ]: log.warning('Invalid rule: Rule family "%s" invalid', attrs["family"]) self._rule_error = True return self._rule = rich.Rich_Rule(family) elif name == "limit": if not self._limit_ok: log.warning('Invalid rule: Limit outside of action, log and audit') self._rule_error = True return if self._limit_ok.limit: log.warning("Invalid rule: More than one limit in rule '%s', ignoring.", str(self._rule)) self._rule_error = True return value = attrs["value"] self._limit_ok.limit = rich.Rich_Limit(value) elif name == "icmp-block-inversion": if self.item.icmp_block_inversion: log.warning("Icmp-Block-Inversion already set, ignoring.") else: self.item.icmp_block_inversion = True else: log.warning("Unknown XML element '%s'", name) return def endElement(self, name): IO_Object_ContentHandler.endElement(self, name) if name == "rule": if not self._rule_error: try: self._rule.check() except Exception as e: log.warning("%s: %s", e, str(self._rule)) else: if str(self._rule) not in \ [ str(x) for x in self.item.rules ]: self.item.rules.append(self._rule) else: log.warning("Rule '%s' already set, ignoring.", str(self._rule)) self._rule = None self._rule_error = False elif name in [ "accept", "reject", "drop", "mark", "log", "audit" ]: self._limit_ok = None def zone_reader(filename, path): zone = Zone() if not filename.endswith(".xml"): raise FirewallError(errors.INVALID_NAME, "'%s' is missing .xml suffix" % filename) zone.name = filename[:-4] zone.check_name(zone.name) zone.filename = filename zone.path = path zone.builtin = False if path.startswith(ETC_FIREWALLD) else True zone.default = zone.builtin handler = zone_ContentHandler(zone) parser = sax.make_parser() parser.setContentHandler(handler) name = "%s/%s" % (path, filename) with open(name, "r") as f: try: parser.parse(f) except sax.SAXParseException as msg: raise FirewallError(errors.INVALID_ZONE, "not a valid zone file: %s" % \ msg.getException()) del handler del parser if PY2: zone.encode_strings() return zone def zone_writer(zone, path=None): _path = path if path else zone.path if zone.filename: name = "%s/%s" % (_path, zone.filename) else: name = "%s/%s.xml" % (_path, zone.name) if os.path.exists(name): try: shutil.copy2(name, "%s.old" % name) except Exception as msg: log.error("Backup of file '%s' failed: %s", name, msg) dirpath = os.path.dirname(name) if dirpath.startswith(ETC_FIREWALLD) and not os.path.exists(dirpath): if not os.path.exists(ETC_FIREWALLD): os.mkdir(ETC_FIREWALLD, 0o750) os.mkdir(dirpath, 0o750) f = io.open(name, mode='wt', encoding='UTF-8') handler = IO_Object_XMLGenerator(f) handler.startDocument() # start zone element attrs = {} if zone.version and zone.version != "": attrs["version"] = zone.version if zone.target != DEFAULT_ZONE_TARGET: attrs["target"] = zone.target handler.startElement("zone", attrs) handler.ignorableWhitespace("\n") # short if zone.short and zone.short != "": handler.ignorableWhitespace(" ") handler.startElement("short", { }) handler.characters(zone.short) handler.endElement("short") handler.ignorableWhitespace("\n") # description if zone.description and zone.description != "": handler.ignorableWhitespace(" ") handler.startElement("description", { }) handler.characters(zone.description) handler.endElement("description") handler.ignorableWhitespace("\n") # interfaces for interface in uniqify(zone.interfaces): handler.ignorableWhitespace(" ") handler.simpleElement("interface", { "name": interface }) handler.ignorableWhitespace("\n") # source for source in uniqify(zone.sources): handler.ignorableWhitespace(" ") if "ipset:" in source: handler.simpleElement("source", { "ipset": source[6:] }) else: handler.simpleElement("source", { "address": source }) handler.ignorableWhitespace("\n") # services for service in uniqify(zone.services): handler.ignorableWhitespace(" ") handler.simpleElement("service", { "name": service }) handler.ignorableWhitespace("\n") # ports for port in uniqify(zone.ports): handler.ignorableWhitespace(" ") handler.simpleElement("port", { "port": port[0], "protocol": port[1] }) handler.ignorableWhitespace("\n") # protocols for protocol in uniqify(zone.protocols): handler.ignorableWhitespace(" ") handler.simpleElement("protocol", { "value": protocol }) handler.ignorableWhitespace("\n") # icmp-block-inversion if zone.icmp_block_inversion: handler.ignorableWhitespace(" ") handler.simpleElement("icmp-block-inversion", { }) handler.ignorableWhitespace("\n") # icmp-blocks for icmp in uniqify(zone.icmp_blocks): handler.ignorableWhitespace(" ") handler.simpleElement("icmp-block", { "name": icmp }) handler.ignorableWhitespace("\n") # masquerade if zone.masquerade: handler.ignorableWhitespace(" ") handler.simpleElement("masquerade", { }) handler.ignorableWhitespace("\n") # forward-ports for forward in uniqify(zone.forward_ports): handler.ignorableWhitespace(" ") attrs = { "port": forward[0], "protocol": forward[1] } if forward[2] and forward[2] != "" : attrs["to-port"] = forward[2] if forward[3] and forward[3] != "" : attrs["to-addr"] = forward[3] handler.simpleElement("forward-port", attrs) handler.ignorableWhitespace("\n") # source-ports for port in uniqify(zone.source_ports): handler.ignorableWhitespace(" ") handler.simpleElement("source-port", { "port": port[0], "protocol": port[1] }) handler.ignorableWhitespace("\n") # rules for rule in zone.rules: attrs = { } if rule.family: attrs["family"] = rule.family handler.ignorableWhitespace(" ") handler.startElement("rule", attrs) handler.ignorableWhitespace("\n") # source if rule.source: attrs = { } if rule.source.addr: attrs["address"] = rule.source.addr if rule.source.mac: attrs["mac"] = rule.source.mac if rule.source.ipset: attrs["ipset"] = rule.source.ipset if rule.source.invert: attrs["invert"] = "True" handler.ignorableWhitespace(" ") handler.simpleElement("source", attrs) handler.ignorableWhitespace("\n") # destination if rule.destination: attrs = { "address": rule.destination.addr } if rule.destination.invert: attrs["invert"] = "True" handler.ignorableWhitespace(" ") handler.simpleElement("destination", attrs) handler.ignorableWhitespace("\n") # element if rule.element: element = "" attrs = { } if type(rule.element) == rich.Rich_Service: element = "service" attrs["name"] = rule.element.name elif type(rule.element) == rich.Rich_Port: element = "port" attrs["port"] = rule.element.port attrs["protocol"] = rule.element.protocol elif type(rule.element) == rich.Rich_Protocol: element = "protocol" attrs["value"] = rule.element.value elif type(rule.element) == rich.Rich_Masquerade: element = "masquerade" elif type(rule.element) == rich.Rich_IcmpBlock: element = "icmp-block" attrs["name"] = rule.element.name elif type(rule.element) == rich.Rich_IcmpType: element = "icmp-type" attrs["name"] = rule.element.name elif type(rule.element) == rich.Rich_ForwardPort: element = "forward-port" attrs["port"] = rule.element.port attrs["protocol"] = rule.element.protocol if rule.element.to_port != "": attrs["to-port"] = rule.element.to_port if rule.element.to_address != "": attrs["to-addr"] = rule.element.to_address elif type(rule.element) == rich.Rich_SourcePort: element = "source-port" attrs["port"] = rule.element.port attrs["protocol"] = rule.element.protocol else: raise FirewallError( errors.INVALID_OBJECT, "Unknown element '%s' in zone_writer" % type(rule.element)) handler.ignorableWhitespace(" ") handler.simpleElement(element, attrs) handler.ignorableWhitespace("\n") # rule.element # log if rule.log: attrs = { } if rule.log.prefix: attrs["prefix"] = rule.log.prefix if rule.log.level: attrs["level"] = rule.log.level if rule.log.limit: handler.ignorableWhitespace(" ") handler.startElement("log", attrs) handler.ignorableWhitespace("\n ") handler.simpleElement("limit", { "value": rule.log.limit.value }) handler.ignorableWhitespace("\n ") handler.endElement("log") else: handler.ignorableWhitespace(" ") handler.simpleElement("log", attrs) handler.ignorableWhitespace("\n") # audit if rule.audit: attrs = {} if rule.audit.limit: handler.ignorableWhitespace(" ") handler.startElement("audit", { }) handler.ignorableWhitespace("\n ") handler.simpleElement("limit", { "value": rule.audit.limit.value }) handler.ignorableWhitespace("\n ") handler.endElement("audit") else: handler.ignorableWhitespace(" ") handler.simpleElement("audit", attrs) handler.ignorableWhitespace("\n") # action if rule.action: action = "" attrs = { } if type(rule.action) == rich.Rich_Accept: action = "accept" elif type(rule.action) == rich.Rich_Reject: action = "reject" if rule.action.type: attrs["type"] = rule.action.type elif type(rule.action) == rich.Rich_Drop: action = "drop" elif type(rule.action) == rich.Rich_Mark: action = "mark" attrs["set"] = rule.action.set else: log.warning("Unknown action '%s'", type(rule.action)) if rule.action.limit: handler.ignorableWhitespace(" ") handler.startElement(action, attrs) handler.ignorableWhitespace("\n ") handler.simpleElement("limit", { "value": rule.action.limit.value }) handler.ignorableWhitespace("\n ") handler.endElement(action) else: handler.ignorableWhitespace(" ") handler.simpleElement(action, attrs) handler.ignorableWhitespace("\n") handler.ignorableWhitespace(" ") handler.endElement("rule") handler.ignorableWhitespace("\n") # end zone element handler.endElement("zone") handler.ignorableWhitespace("\n") handler.endDocument() f.close() del handler firewalld-0.4.4.6/src/firewall/core/ipXtables.py000066400000000000000000000350431320241217000214620ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import os.path from firewall.core.prog import runProg from firewall.core.logger import log from firewall.functions import tempFile, readfile from firewall import config import string PROC_IPxTABLE_NAMES = { "ipv4": "/proc/net/ip_tables_names", "ipv6": "/proc/net/ip6_tables_names", } BUILT_IN_CHAINS = { "security": [ "INPUT", "OUTPUT", "FORWARD" ], "raw": [ "PREROUTING", "OUTPUT" ], "mangle": [ "PREROUTING", "POSTROUTING", "INPUT", "OUTPUT", "FORWARD" ], "nat": [ "PREROUTING", "POSTROUTING", "OUTPUT" ], "filter": [ "INPUT", "OUTPUT", "FORWARD" ], } DEFAULT_REJECT_TYPE = { "ipv4": "icmp-host-prohibited", "ipv6": "icmp6-adm-prohibited", } ICMP = { "ipv4": "icmp", "ipv6": "ipv6-icmp", } DEFAULT_RULES = { } LOG_RULES = { } OUR_CHAINS = {} # chains created by firewalld DEFAULT_RULES["security"] = [ ] OUR_CHAINS["security"] = set() for chain in BUILT_IN_CHAINS["security"]: DEFAULT_RULES["security"].append("-N %s_direct" % chain) DEFAULT_RULES["security"].append("-I %s 1 -j %s_direct" % (chain, chain)) OUR_CHAINS["security"].add("%s_direct" % chain) DEFAULT_RULES["raw"] = [ ] OUR_CHAINS["raw"] = set() for chain in BUILT_IN_CHAINS["raw"]: DEFAULT_RULES["raw"].append("-N %s_direct" % chain) DEFAULT_RULES["raw"].append("-I %s 1 -j %s_direct" % (chain, chain)) OUR_CHAINS["raw"].add("%s_direct" % chain) if chain == "PREROUTING": DEFAULT_RULES["raw"].append("-N %s_ZONES_SOURCE" % chain) DEFAULT_RULES["raw"].append("-N %s_ZONES" % chain) DEFAULT_RULES["raw"].append("-I %s 2 -j %s_ZONES_SOURCE" % (chain, chain)) DEFAULT_RULES["raw"].append("-I %s 3 -j %s_ZONES" % (chain, chain)) OUR_CHAINS["raw"].update(set(["%s_ZONES_SOURCE" % chain, "%s_ZONES" % chain])) DEFAULT_RULES["mangle"] = [ ] OUR_CHAINS["mangle"] = set() for chain in BUILT_IN_CHAINS["mangle"]: DEFAULT_RULES["mangle"].append("-N %s_direct" % chain) DEFAULT_RULES["mangle"].append("-I %s 1 -j %s_direct" % (chain, chain)) OUR_CHAINS["mangle"].add("%s_direct" % chain) if chain == "PREROUTING": DEFAULT_RULES["mangle"].append("-N %s_ZONES_SOURCE" % chain) DEFAULT_RULES["mangle"].append("-N %s_ZONES" % chain) DEFAULT_RULES["mangle"].append("-I %s 2 -j %s_ZONES_SOURCE" % (chain, chain)) DEFAULT_RULES["mangle"].append("-I %s 3 -j %s_ZONES" % (chain, chain)) OUR_CHAINS["mangle"].update(set(["%s_ZONES_SOURCE" % chain, "%s_ZONES" % chain])) DEFAULT_RULES["nat"] = [ ] OUR_CHAINS["nat"] = set() for chain in BUILT_IN_CHAINS["nat"]: DEFAULT_RULES["nat"].append("-N %s_direct" % chain) DEFAULT_RULES["nat"].append("-I %s 1 -j %s_direct" % (chain, chain)) OUR_CHAINS["nat"].add("%s_direct" % chain) if chain in [ "PREROUTING", "POSTROUTING" ]: DEFAULT_RULES["nat"].append("-N %s_ZONES_SOURCE" % chain) DEFAULT_RULES["nat"].append("-N %s_ZONES" % chain) DEFAULT_RULES["nat"].append("-I %s 2 -j %s_ZONES_SOURCE" % (chain, chain)) DEFAULT_RULES["nat"].append("-I %s 3 -j %s_ZONES" % (chain, chain)) OUR_CHAINS["nat"].update(set(["%s_ZONES_SOURCE" % chain, "%s_ZONES" % chain])) DEFAULT_RULES["filter"] = [ "-N INPUT_direct", "-N INPUT_ZONES_SOURCE", "-N INPUT_ZONES", "-I INPUT 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT", "-I INPUT 2 -i lo -j ACCEPT", "-I INPUT 3 -j INPUT_direct", "-I INPUT 4 -j INPUT_ZONES_SOURCE", "-I INPUT 5 -j INPUT_ZONES", "-I INPUT 6 -m conntrack --ctstate INVALID -j DROP", "-I INPUT 7 -j %%REJECT%%", "-N FORWARD_direct", "-N FORWARD_IN_ZONES_SOURCE", "-N FORWARD_IN_ZONES", "-N FORWARD_OUT_ZONES_SOURCE", "-N FORWARD_OUT_ZONES", "-I FORWARD 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT", "-I FORWARD 2 -i lo -j ACCEPT", "-I FORWARD 3 -j FORWARD_direct", "-I FORWARD 4 -j FORWARD_IN_ZONES_SOURCE", "-I FORWARD 5 -j FORWARD_IN_ZONES", "-I FORWARD 6 -j FORWARD_OUT_ZONES_SOURCE", "-I FORWARD 7 -j FORWARD_OUT_ZONES", "-I FORWARD 8 -m conntrack --ctstate INVALID -j DROP", "-I FORWARD 9 -j %%REJECT%%", "-N OUTPUT_direct", "-I OUTPUT 1 -j OUTPUT_direct", ] LOG_RULES["filter"] = [ "-I INPUT 6 -m conntrack --ctstate INVALID %%LOGTYPE%% -j LOG --log-prefix 'STATE_INVALID_DROP: '", "-I INPUT 8 %%LOGTYPE%% -j LOG --log-prefix 'FINAL_REJECT: '", "-I FORWARD 8 -m conntrack --ctstate INVALID %%LOGTYPE%% -j LOG --log-prefix 'STATE_INVALID_DROP: '", "-I FORWARD 10 %%LOGTYPE%% -j LOG --log-prefix 'FINAL_REJECT: '", ] OUR_CHAINS["filter"] = set(["INPUT_direct", "INPUT_ZONES_SOURCE", "INPUT_ZONES", "FORWARD_direct", "FORWARD_IN_ZONES_SOURCE", "FORWARD_IN_ZONES", "FORWARD_OUT_ZONES_SOURCE", "FORWARD_OUT_ZONES", "OUTPUT_direct"]) class ip4tables(object): ipv = "ipv4" def __init__(self): self._command = config.COMMANDS[self.ipv] self._restore_command = config.COMMANDS["%s-restore" % self.ipv] self.wait_option = self._detect_wait_option() self.restore_wait_option = self._detect_restore_wait_option() self.fill_exists() def fill_exists(self): self.command_exists = os.path.exists(self._command) self.restore_command_exists = os.path.exists(self._restore_command) def __run(self, args): # convert to string list if self.wait_option and self.wait_option not in args: _args = [self.wait_option] + ["%s" % item for item in args] else: _args = ["%s" % item for item in args] log.debug2("%s: %s %s", self.__class__, self._command, " ".join(_args)) (status, ret) = runProg(self._command, _args) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._command, " ".join(_args), ret)) return ret def split_value(self, rules, opts=None): """Split values combined with commas for options in opts""" if opts is None: return rules out_rules = [ ] for rule in rules: processed = False for opt in opts: try: i = rule.index(opt) except ValueError: pass else: if len(rule) > i and "," in rule[i+1]: # For all items in the comma separated list in index # i of the rule, a new rule is created with a single # item from this list processed = True items = rule[i+1].split(",") for item in items: _rule = rule[:] _rule[i+1] = item out_rules.append(_rule) if not processed: out_rules.append(rule) return out_rules def set_rules(self, rules, flush=False): temp_file = tempFile() table_rules = { } for _rule in rules: rule = _rule[:] table = "filter" # get table form rule for opt in [ "-t", "--table" ]: try: i = rule.index(opt) except ValueError: pass else: if len(rule) >= i+1: rule.pop(i) table = rule.pop(i) # we can not use joinArgs here, because it would use "'" instead # of '"' for the start and end of the string, this breaks # iptables-restore for i in range(len(rule)): for c in string.whitespace: if c in rule[i] and not (rule[i].startswith('"') and rule[i].endswith('"')): rule[i] = '"%s"' % rule[i] table_rules.setdefault(table, []).append(rule) for table in table_rules: rules = table_rules[table] rules = self.split_value(rules, [ "-s", "--source" ]) rules = self.split_value(rules, [ "-d", "--destination" ]) temp_file.write("*%s\n" % table) for rule in rules: temp_file.write(" ".join(rule) + "\n") temp_file.write("COMMIT\n") temp_file.close() stat = os.stat(temp_file.name) log.debug2("%s: %s %s", self.__class__, self._restore_command, "%s: %d" % (temp_file.name, stat.st_size)) args = [ ] if self.restore_wait_option: args.append(self.restore_wait_option) if not flush: args.append("-n") (status, ret) = runProg(self._restore_command, args, stdin=temp_file.name) if log.getDebugLogLevel() > 2: lines = readfile(temp_file.name) if lines is not None: i = 1 for line in lines: log.debug3("%8d: %s" % (i, line), nofmt=1, nl=0) if not line.endswith("\n"): log.debug3("", nofmt=1) i += 1 os.unlink(temp_file.name) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._restore_command, " ".join(args), ret)) return ret def set_rule(self, rule): return self.__run(rule) def append_rule(self, rule): self.__run([ "-A" ] + rule) def delete_rule(self, rule): self.__run([ "-D" ] + rule) def available_tables(self, table=None): ret = [] tables = [ table ] if table else BUILT_IN_CHAINS.keys() for table in tables: try: self.__run(["-t", table, "-L", "-n"]) ret.append(table) except ValueError: log.debug1("%s table '%s' does not exist (or not enough permission to check)." % (self.ipv, table)) return ret def used_tables(self): tables = [ ] filename = PROC_IPxTABLE_NAMES[self.ipv] if os.path.exists(filename): with open(filename, "r") as f: for line in f.readlines(): if not line: break tables.append(line.strip()) return tables def _detect_wait_option(self): wait_option = "" ret = runProg(self._command, ["-w", "-L", "-n"]) # since iptables-1.4.20 if ret[0] == 0: wait_option = "-w" # wait for xtables lock ret = runProg(self._command, ["-w2", "-L", "-n"]) # since iptables > 1.4.21 if ret[0] == 0: wait_option = "-w2" # wait max 2 seconds log.debug2("%s: %s will be using %s option.", self.__class__, self._command, wait_option) return wait_option def _detect_restore_wait_option(self): temp_file = tempFile() temp_file.write("#foo") temp_file.close() wait_option = "" ret = runProg(self._restore_command, ["-w"], stdin=temp_file.name) # proposed for iptables-1.6.2 if ret[0] == 0: wait_option = "-w" # wait for xtables lock ret = runProg(self._restore_command, ["--wait=2"], stdin=temp_file.name) # since iptables > 1.4.21 if ret[0] == 0: wait_option = "--wait=2" # wait max 2 seconds log.debug2("%s: %s will be using %s option.", self.__class__, self._restore_command, wait_option) os.unlink(temp_file.name) return wait_option def flush(self, transaction=None): tables = self.used_tables() for table in tables: # Flush firewall rules: -F # Delete firewall chains: -X # Set counter to zero: -Z for flag in [ "-F", "-X", "-Z" ]: if transaction is not None: transaction.add_rule(self.ipv, [ "-t", table, flag ]) else: self.__run([ "-t", table, flag ]) def set_policy(self, policy, which="used", transaction=None): if which == "used": tables = self.used_tables() else: tables = list(BUILT_IN_CHAINS.keys()) for table in tables: if table == "nat": continue for chain in BUILT_IN_CHAINS[table]: if transaction is not None: transaction.add_rule(self.ipv, [ "-t", table, "-P", chain, policy ]) else: self.__run([ "-t", table, "-P", chain, policy ]) def supported_icmp_types(self): """Return ICMP types that are supported by the iptables/ip6tables command and kernel""" ret = [ ] output = "" try: output = self.__run(["-p", "icmp" if self.ipv == "ipv4" else "ipv6-icmp", "--help"]) except ValueError as ex: if self.ipv == "ipv4": log.debug1("iptables error: %s" % ex) else: log.debug1("ip6tables error: %s" % ex) lines = output.splitlines() in_types = False for line in lines: #print(line) if in_types: line = line.strip().lower() splits = line.split() for split in splits: if split.startswith("(") and split.endswith(")"): x = split[1:-1] else: x = split if x not in ret: ret.append(x) if self.ipv == "ipv4" and line.startswith("Valid ICMP Types:") or \ self.ipv == "ipv6" and line.startswith("Valid ICMPv6 Types:"): in_types = True return ret class ip6tables(ip4tables): ipv = "ipv6" firewalld-0.4.4.6/src/firewall/core/ipset.py000066400000000000000000000222611320241217000206510ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2015-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """The ipset command wrapper""" __all__ = [ "ipset", "check_ipset_name", "remove_default_create_options" ] import os.path from firewall import errors from firewall.errors import FirewallError from firewall.core.prog import runProg from firewall.core.logger import log from firewall.functions import tempFile, readfile from firewall.config import COMMANDS IPSET_MAXNAMELEN = 32 IPSET_TYPES = [ # bitmap and set types are currently not supported # "bitmap:ip", # "bitmap:ip,mac", # "bitmap:port", # "list:set", "hash:ip", "hash:ip,port", "hash:ip,port,ip", "hash:ip,port,net", "hash:ip,mark", "hash:net", "hash:net,net", "hash:net,port", "hash:net,port,net", "hash:net,iface", "hash:mac", ] IPSET_CREATE_OPTIONS = { "family": "inet|inet6", "hashsize": "value", "maxelem": "value", "timeout": "value in secs", #"counters": None, #"comment": None, } IPSET_DEFAULT_CREATE_OPTIONS = { "family": "inet", "hashsize": "1024", "maxelem": "65536", } class ipset(object): """ipset command wrapper class""" def __init__(self): self._command = COMMANDS["ipset"] def __run(self, args): """Call ipset with args""" # convert to string list _args = ["%s" % item for item in args] log.debug2("%s: %s %s", self.__class__, self._command, " ".join(_args)) (status, ret) = runProg(self._command, _args) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._command, " ".join(_args), ret)) return ret def check_name(self, name): """Check ipset name""" if len(name) > IPSET_MAXNAMELEN: raise FirewallError(errors.INVALID_NAME, "ipset name '%s' is not valid" % name) def supported_types(self): """Return types that are supported by the ipset command and kernel""" ret = [ ] output = "" try: output = self.__run(["--help"]) except ValueError as ex: log.debug1("ipset error: %s" % ex) lines = output.splitlines() in_types = False for line in lines: #print(line) if in_types: splits = line.strip().split(None, 2) if splits[0] not in ret and splits[0] in IPSET_TYPES: ret.append(splits[0]) if line.startswith("Supported set types:"): in_types = True return ret def check_type(self, type_name): """Check ipset type""" if len(type_name) > IPSET_MAXNAMELEN or type_name not in IPSET_TYPES: raise FirewallError(errors.INVALID_TYPE, "ipset type name '%s' is not valid" % type_name) def create(self, set_name, type_name, options=None): """Create an ipset with name, type and options""" self.check_name(set_name) self.check_type(type_name) args = [ "create", set_name, type_name ] if isinstance(options, dict): for key, val in options.items(): args.append(key) if val != "": args.append(val) return self.__run(args) def destroy(self, set_name): self.check_name(set_name) return self.__run([ "destroy", set_name ]) def add(self, set_name, entry, options=None): args = [ "add", set_name, entry, "-exist" ] if options: args.append("%s" % " ".join(options)) return self.__run(args) def delete(self, set_name, entry, options=None): args = [ "del", set_name, entry ] if options: args.append("%s" % " ".join(options)) return self.__run(args) def test(self, set_name, entry, options=None): args = [ "test", set_name, entry ] if options: args.append("%s" % " ".join(options)) return self.__run(args) def list(self, set_name=None, options=None): args = [ "list" ] if set_name: args.append(set_name) if options: args.extend(options) return self.__run(args).split("\n") def get_active_terse(self): """ Get active ipsets (only headers) """ lines = self.list(options=["-terse"]) ret = { } _name = _type = None _options = { } for line in lines: if len(line) < 1: continue pair = [ x.strip() for x in line.split(":", 1) ] if len(pair) != 2: continue elif pair[0] == "Name": _name = pair[1] elif pair[0] == "Type": _type = pair[1] elif pair[0] == "Header": splits = pair[1].split() i = 0 while i < len(splits): opt = splits[i] if opt in [ "family", "hashsize", "maxelem", "timeout", "netmask" ]: if len(splits) > i: i += 1 _options[opt] = splits[i] else: log.error("Malformed ipset list -terse output: %s", line) return { } i += 1 if _name and _type: ret[_name] = (_type, remove_default_create_options(_options)) _name = _type = None _options.clear() return ret def save(self, set_name=None): args = [ "save" ] if set_name: args.append(set_name) return self.__run(args) def restore(self, set_name, type_name, entries, create_options=None, entry_options=None): self.check_name(set_name) self.check_type(type_name) temp_file = tempFile() if ' ' in set_name: set_name = "'%s'" % set_name args = [ "create", set_name, type_name, "-exist" ] if create_options: for key, val in create_options.items(): args.append(key) if val != "": args.append(val) temp_file.write("%s\n" % " ".join(args)) for entry in entries: if ' ' in entry: entry = "'%s'" % entry if entry_options: temp_file.write("add %s %s %s -exist\n" % \ (set_name, entry, " ".join(entry_options))) else: temp_file.write("add %s %s -exist\n" % (set_name, entry)) temp_file.close() stat = os.stat(temp_file.name) log.debug2("%s: %s restore %s", self.__class__, self._command, "%s: %d" % (temp_file.name, stat.st_size)) args = [ "restore" ] (status, ret) = runProg(self._command, args, stdin=temp_file.name) if log.getDebugLogLevel() > 2: try: readfile(temp_file.name) except Exception: pass else: i = 1 for line in readfile(temp_file.name): log.debug3("%8d: %s" % (i, line), nofmt=1, nl=0) if not line.endswith("\n"): log.debug3("", nofmt=1) i += 1 os.unlink(temp_file.name) if status != 0: raise ValueError("'%s %s' failed: %s" % (self._command, " ".join(args), ret)) return ret def flush(self, set_name): args = [ "flush" ] if set_name: args.append(set_name) return self.__run(args) def rename(self, old_set_name, new_set_name): return self.__run([ "rename", old_set_name, new_set_name ]) def swap(self, set_name_1, set_name_2): return self.__run([ "swap", set_name_1, set_name_2 ]) def version(self): return self.__run([ "version" ]) def check_ipset_name(name): """Return true if ipset name is valid""" if len(name) > IPSET_MAXNAMELEN: return False return True def remove_default_create_options(options): """ Return only non default create options """ _options = options.copy() for opt in IPSET_DEFAULT_CREATE_OPTIONS: if opt in _options and \ IPSET_DEFAULT_CREATE_OPTIONS[opt] == _options[opt]: del _options[opt] return _options firewalld-0.4.4.6/src/firewall/core/logger.py000066400000000000000000000741771320241217000210210ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2005-2007,2012 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "LogTarget", "FileLog", "Logger", "log" ] import sys import types import time import inspect import fnmatch import syslog import traceback import fcntl import os.path PY2 = sys.version < '3' PY3 = sys.version >= '3' # --------------------------------------------------------------------------- # abstract class for logging targets class LogTarget(object): """ Abstract class for logging targets. """ def __init__(self): self.fd = None def write(self, data, level, logger, is_debug=0): raise NotImplementedError("LogTarget.write is an abstract method") def flush(self): raise NotImplementedError("LogTarget.flush is an abstract method") def close(self): raise NotImplementedError("LogTarget.close is an abstract method") # --------------------------------------------------------------------------- # private class for stdout class _StdoutLog(LogTarget): def __init__(self): LogTarget.__init__(self) self.fd = sys.stdout def write(self, data, level, logger, is_debug=0): # ignore level self.fd.write(data) self.flush() def close(self): self.flush() def flush(self): self.fd.flush() # --------------------------------------------------------------------------- # private class for stderr class _StderrLog(_StdoutLog): def __init__(self): _StdoutLog.__init__(self) self.fd = sys.stderr # --------------------------------------------------------------------------- # private class for syslog class _SyslogLog(LogTarget): def __init__(self): # Only initialize LogTarget here as fs should be None LogTarget.__init__(self) # # Derived from: https://github.com/canvon/firewalld/commit/af0edfee1cc1891b7b13f302ca5911b24e9b0f13 # # Work around Python issue 27875, "Syslogs /usr/sbin/foo as /foo # instead of as foo" # (but using openlog explicitly might be better anyway) # # Set ident to basename, log PID as well, and log to facility "daemon". syslog.openlog(os.path.basename(sys.argv[0]), syslog.LOG_PID, syslog.LOG_DAEMON) def write(self, data, level, logger, is_debug=0): priority = None if is_debug: priority = syslog.LOG_DEBUG else: if level >= logger.INFO1: priority = syslog.LOG_INFO elif level == logger.WARNING: priority = syslog.LOG_WARNING elif level == logger.ERROR: priority = syslog.LOG_ERR elif level == logger.FATAL: priority = syslog.LOG_CRIT if data.endswith("\n"): data = data[:len(data)-1] if len(data) > 0: if priority is None: syslog.syslog(data) else: syslog.syslog(priority, data) def close(self): syslog.closelog() def flush(self): pass # --------------------------------------------------------------------------- class FileLog(LogTarget): """ FileLog class. File will be opened on the first write. """ def __init__(self, filename, mode="w"): LogTarget.__init__(self) self.filename = filename self.mode = mode def open(self): if self.fd: return self.fd = open(self.filename, self.mode) fcntl.fcntl(self.fd, fcntl.F_SETFD, fcntl.FD_CLOEXEC) def write(self, data, level, logger, is_debug=0): if not self.fd: self.open() self.fd.write(data) self.fd.flush() def close(self): if not self.fd: return self.fd.close() self.fd = None def flush(self): if not self.fd: return self.fd.flush() # --------------------------------------------------------------------------- class Logger(object): r""" Format string: %(class)s Calling class the function belongs to, else empty %(date)s Date using Logger.date_format, see time module %(domain)s Full Domain: %(module)s.%(class)s.%(function)s %(file)s Filename of the module %(function)s Function name, empty in __main__ %(label)s Label according to log function call from Logger.label %(level)d Internal logging level %(line)d Line number in module %(module)s Module name %(message)s Log message Standard levels: FATAL Fatal error messages ERROR Error messages WARNING Warning messages INFOx, x in [1..5] Information DEBUGy, y in [1..10] Debug messages NO_INFO No info output NO_DEBUG No debug output INFO_MAX Maximum info level DEBUG_MAX Maximum debug level x and y depend on info_max and debug_max from Logger class initialization. See __init__ function. Default logging targets: stdout Logs to stdout stderr Logs to stderr syslog Logs to syslog Additional arguments for logging functions (fatal, error, warning, info and debug): nl Disable newline at the end with nl=0, default is nl=1. fmt Format string for this logging entry, overloads global format string. Example: fmt="%(file)s:%(line)d %(message)s" nofmt Only output message with nofmt=1. The nofmt argument wins over the fmt argument. Example: from logger import log log.setInfoLogLevel(log.INFO1) log.setDebugLogLevel(log.DEBUG1) for i in range(1, log.INFO_MAX+1): log.setInfoLogLabel(i, "INFO%d: " % i) log.setFormat("%(date)s %(module)s:%(line)d [%(domain)s] %(label)s: " "%(level)d %(message)s") log.setDateFormat("%Y-%m-%d %H:%M:%S") fl = FileLog("/tmp/log", "a") log.addInfoLogging("*", fl) log.addDebugLogging("*", fl) log.addInfoLogging("*", log.syslog, fmt="%(label)s%(message)s") log.debug3("debug3") log.debug2("debug2") log.debug1("debug1") log.info2("info2") log.info1("info1") log.warning("warning\n", nl=0) log.error("error\n", nl=0) log.fatal("fatal") log.info(log.INFO1, "nofmt info", nofmt=1) """ ALL = -5 NOTHING = -4 FATAL = -3 TRACEBACK = -2 ERROR = -1 WARNING = 0 # Additional levels are generated in class initilization stdout = _StdoutLog() stderr = _StderrLog() syslog = _SyslogLog() def __init__(self, info_max=5, debug_max=10): """ Logger class initialization """ self._level = { } self._debug_level = { } self._format = "" self._date_format = "" self._label = { } self._debug_label = { } self._logging = { } self._debug_logging = { } self._domains = { } self._debug_domains = { } # INFO1 is required for standard log level if info_max < 1: raise ValueError("Logger: info_max %d is too low" % info_max) if debug_max < 0: raise ValueError("Logger: debug_max %d is too low" % debug_max) self.NO_INFO = self.WARNING # = 0 self.INFO_MAX = info_max self.NO_DEBUG = 0 self.DEBUG_MAX = debug_max self.setInfoLogLabel(self.FATAL, "FATAL ERROR: ") self.setInfoLogLabel(self.TRACEBACK, "") self.setInfoLogLabel(self.ERROR, "ERROR: ") self.setInfoLogLabel(self.WARNING, "WARNING: ") # generate info levels and infox functions for _level in range(1, self.INFO_MAX+1): setattr(self, "INFO%d" % _level, _level) self.setInfoLogLabel(_level, "") setattr(self, "info%d" % (_level), (lambda self, x: lambda message, *args, **kwargs: self.info(x, message, *args, **kwargs))(self, _level)) # pylint: disable=E0602 # generate debug levels and debugx functions for _level in range(1, self.DEBUG_MAX+1): setattr(self, "DEBUG%d" % _level, _level) self.setDebugLogLabel(_level, "DEBUG%d: " % _level) setattr(self, "debug%d" % (_level), (lambda self, x: lambda message, *args, **kwargs: self.debug(x, message, *args, **kwargs))(self, _level)) # pylint: disable=E0602 # set initial log levels, formats and targets self.setInfoLogLevel(self.INFO1) self.setDebugLogLevel(self.NO_DEBUG) self.setFormat("%(label)s%(message)s") self.setDateFormat("%d %b %Y %H:%M:%S") self.setInfoLogging("*", self.stderr, [ self.FATAL, self.ERROR, self.WARNING ]) self.setInfoLogging("*", self.stdout, [ i for i in range(self.INFO1, self.INFO_MAX+1) ]) self.setDebugLogging("*", self.stdout, [ i for i in range(1, self.DEBUG_MAX+1) ]) def close(self): """ Close all logging targets """ for level in range(self.FATAL, self.DEBUG_MAX+1): if level not in self._logging: continue for (dummy, target, dummy) in self._logging[level]: target.close() def getInfoLogLevel(self, domain="*"): """ Get info log level. """ self._checkDomain(domain) if domain in self._level: return self._level[domain] return self.NOTHING def setInfoLogLevel(self, level, domain="*"): """ Set log level [NOTHING .. INFO_MAX] """ self._checkDomain(domain) if level < self.NOTHING: level = self.NOTHING if level > self.INFO_MAX: level = self.INFO_MAX self._level[domain] = level def getDebugLogLevel(self, domain="*"): """ Get debug log level. """ self._checkDomain(domain) if domain in self._debug_level: return self._debug_level[domain] + self.NO_DEBUG return self.NO_DEBUG def setDebugLogLevel(self, level, domain="*"): """ Set debug log level [NO_DEBUG .. DEBUG_MAX] """ self._checkDomain(domain) if level < 0: level = 0 if level > self.DEBUG_MAX: level = self.DEBUG_MAX self._debug_level[domain] = level - self.NO_DEBUG def getFormat(self): return self._format def setFormat(self, _format): self._format = _format def getDateFormat(self): return self._date_format def setDateFormat(self, _format): self._date_format = _format def setInfoLogLabel(self, level, label): """ Set log label for level. Level can be a single level or an array of levels. """ levels = self._getLevels(level) for level in levels: self._checkLogLevel(level, min_level=self.FATAL, max_level=self.INFO_MAX) self._label[level] = label def setDebugLogLabel(self, level, label): """ Set log label for level. Level can be a single level or an array of levels. """ levels = self._getLevels(level, is_debug=1) for level in levels: self._checkLogLevel(level, min_level=self.INFO1, max_level=self.DEBUG_MAX) self._debug_label[level] = label def setInfoLogging(self, domain, target, level=ALL, fmt=None): """ Set info log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._setLogging(domain, target, level, fmt, is_debug=0) def setDebugLogging(self, domain, target, level=ALL, fmt=None): """ Set debug log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._setLogging(domain, target, level, fmt, is_debug=1) def addInfoLogging(self, domain, target, level=ALL, fmt=None): """ Add info log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._addLogging(domain, target, level, fmt, is_debug=0) def addDebugLogging(self, domain, target, level=ALL, fmt=None): """ Add debg log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._addLogging(domain, target, level, fmt, is_debug=1) def delInfoLogging(self, domain, target, level=ALL, fmt=None): """ Delete info log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._delLogging(domain, target, level, fmt, is_debug=0) def delDebugLogging(self, domain, target, level=ALL, fmt=None): """ Delete debug log target for domain and level. Level can be a single level or an array of levels. Use level ALL to set for all levels. If no format is specified, the default format will be used. """ self._delLogging(domain, target, level, fmt, is_debug=1) def isInfoLoggingHere(self, level): """ Is there currently any info logging for this log level (and domain)? """ return self._isLoggingHere(level, is_debug=0) def isDebugLoggingHere(self, level): """ Is there currently any debug logging for this log level (and domain)? """ return self._isLoggingHere(level, is_debug=1) ### log functions def fatal(self, _format, *args, **kwargs): """ Fatal error log. """ self._checkKWargs(kwargs) kwargs["is_debug"] = 0 self._log(self.FATAL, _format, *args, **kwargs) def error(self, _format, *args, **kwargs): """ Error log. """ self._checkKWargs(kwargs) kwargs["is_debug"] = 0 self._log(self.ERROR, _format, *args, **kwargs) def warning(self, _format, *args, **kwargs): """ Warning log. """ self._checkKWargs(kwargs) kwargs["is_debug"] = 0 self._log(self.WARNING, _format, *args, **kwargs) def info(self, level, _format, *args, **kwargs): """ Information log using info level [1..info_max]. There are additional infox functions according to info_max from __init__""" self._checkLogLevel(level, min_level=1, max_level=self.INFO_MAX) self._checkKWargs(kwargs) kwargs["is_debug"] = 0 self._log(level+self.NO_INFO, _format, *args, **kwargs) def debug(self, level, _format, *args, **kwargs): """ Debug log using debug level [1..debug_max]. There are additional debugx functions according to debug_max from __init__""" self._checkLogLevel(level, min_level=1, max_level=self.DEBUG_MAX) self._checkKWargs(kwargs) kwargs["is_debug"] = 1 self._log(level, _format, *args, **kwargs) def exception(self): self._log(self.TRACEBACK, traceback.format_exc(), args=[], kwargs={}) ### internal functions def _checkLogLevel(self, level, min_level, max_level): if level < min_level or level > max_level: raise ValueError("Level %d out of range, should be [%d..%d]." % \ (level, min_level, max_level)) def _checkKWargs(self, kwargs): if not kwargs: return for key in kwargs.keys(): if key not in [ "nl", "fmt", "nofmt" ]: raise ValueError("Key '%s' is not allowed as argument for logging." % key) def _checkDomain(self, domain): if not domain or domain == "": raise ValueError("Domain '%s' is not valid." % domain) def _getLevels(self, level, is_debug=0): """ Generate log level array. """ if level != self.ALL: if isinstance(level, list) or isinstance(level, tuple): levels = level else: levels = [ level ] for level in levels: if is_debug: self._checkLogLevel(level, min_level=1, max_level=self.DEBUG_MAX) else: self._checkLogLevel(level, min_level=self.FATAL, max_level=self.INFO_MAX) else: if is_debug: levels = [ i for i in range(self.DEBUG1, self.DEBUG_MAX) ] else: levels = [ i for i in range(self.FATAL, self.INFO_MAX) ] return levels def _getTargets(self, target): """ Generate target array. """ if isinstance(target, list) or isinstance(target, tuple): targets = target else: targets = [ target ] for _target in targets: if not issubclass(_target.__class__, LogTarget): raise ValueError("'%s' is no valid logging target." % \ _target.__class__.__name__) return targets def _genDomains(self, is_debug=0): # private method for self._domains array creation, speeds up """ Generate dict with domain by level. """ if is_debug: _domains = self._debug_domains _logging = self._debug_logging _range = ( 1, self.DEBUG_MAX+1 ) else: _domains = self._domains _logging = self._logging _range = ( self.FATAL, self.INFO_MAX+1 ) if len(_domains) > 0: _domains.clear() for level in range(_range[0], _range[1]): if level not in _logging: continue for (domain, dummy, dummy) in _logging[level]: if domain not in _domains: _domains.setdefault(level, [ ]).append(domain) def _setLogging(self, domain, target, level=ALL, fmt=None, is_debug=0): self._checkDomain(domain) levels = self._getLevels(level, is_debug) targets = self._getTargets(target) if is_debug: _logging = self._debug_logging else: _logging = self._logging for level in levels: for target in targets: _logging[level] = [ (domain, target, fmt) ] self._genDomains(is_debug) def _addLogging(self, domain, target, level=ALL, fmt=None, is_debug=0): self._checkDomain(domain) levels = self._getLevels(level, is_debug) targets = self._getTargets(target) if is_debug: _logging = self._debug_logging else: _logging = self._logging for level in levels: for target in targets: _logging.setdefault(level, [ ]).append((domain, target, fmt)) self._genDomains(is_debug) def _delLogging(self, domain, target, level=ALL, fmt=None, is_debug=0): self._checkDomain(domain) levels = self._getLevels(level, is_debug) targets = self._getTargets(target) if is_debug: _logging = self._debug_logging else: _logging = self._logging for _level in levels: for target in targets: if _level not in _logging: continue if (domain, target, fmt) in _logging[_level]: _logging[_level].remove( (domain, target, fmt) ) if len(_logging[_level]) == 0: del _logging[_level] continue if level != self.ALL: raise ValueError("No mathing logging for " \ "level %d, domain %s, target %s and format %s." % \ (_level, domain, target.__class__.__name__, fmt)) self._genDomains(is_debug) def _isLoggingHere(self, level, is_debug=0): _dict = self._genDict(level, is_debug) if not _dict: return False point_domain = _dict["domain"] + "." if is_debug: _logging = self._debug_logging else: _logging = self._logging # do we need to log? for (domain, dummy, dummy) in _logging[level]: if domain == "*" or \ point_domain.startswith(domain) or \ fnmatch.fnmatchcase(_dict["domain"], domain): return True return False def _getClass(self, frame): """ Function to get calling class. Returns class or None. """ # get class by first function argument, if there are any if frame.f_code.co_argcount > 0: selfname = frame.f_code.co_varnames[0] if selfname in frame.f_locals: _self = frame.f_locals[selfname] obj = self._getClass2(_self.__class__, frame.f_code) if obj: return obj module = inspect.getmodule(frame.f_code) code = frame.f_code # function in module? if code.co_name in module.__dict__: if hasattr(module.__dict__[code.co_name], "func_code") and \ module.__dict__[code.co_name].__code__ == code: return None # class in module for (dummy, obj) in module.__dict__.items(): if (PY2 and isinstance(obj, types.ClassType)) or \ (PY3 and isinstance(obj, type)): if hasattr(obj, code.co_name): value = getattr(obj, code.co_name) if type(value) == types.FunctionType: if value.__code__ == code: return obj # nothing found return None def _getClass2(self, obj, code): """ Internal function to get calling class. Returns class or None. """ for value in obj.__dict__.values(): if type(value) == types.FunctionType: if value.__code__ == code: return obj for base in obj.__bases__: _obj = self._getClass2(base, code) if _obj: return _obj return None # internal log class def _log(self, level, _format, *args, **kwargs): is_debug = 0 if "is_debug" in kwargs: is_debug = kwargs["is_debug"] nl = 1 if "nl" in kwargs: nl = kwargs["nl"] nofmt = 0 if "nofmt" in kwargs: nofmt = kwargs["nofmt"] _dict = self._genDict(level, is_debug) if not _dict: return if len(args) > 1: _dict['message'] = _format % args elif len(args) == 1: # needed for _format % _dict _dict['message'] = _format % args[0] else: _dict['message'] = _format point_domain = _dict["domain"] + "." if is_debug: _logging = self._debug_logging else: _logging = self._logging used_targets = [ ] # log to target(s) for (domain, target, _format) in _logging[level]: if target in used_targets: continue if domain == "*" \ or point_domain.startswith(domain+".") \ or fnmatch.fnmatchcase(_dict["domain"], domain): if not _format: _format = self._format if "fmt" in kwargs: _format = kwargs["fmt"] if nofmt: target.write(_dict["message"], level, self, is_debug) else: target.write(_format % _dict, level, self, is_debug) if nl: # newline target.write("\n", level, self, is_debug) used_targets.append(target) # internal function to generate the dict, needed for logging def _genDict(self, level, is_debug=0): """ Internal function. """ check_domains = [ ] simple_match = False if is_debug: _dict = self._debug_level _domains = self._debug_domains _label = self._debug_label else: _dict = self._level _domains = self._domains _label = self._label # no debug for domain in _dict: if domain == "*": # '*' matches everything: simple match if _dict[domain] >= level: simple_match = True if len(check_domains) > 0: check_domains = [ ] break else: if _dict[domain] >= level: check_domains.append(domain) if not simple_match and len(check_domains) < 1: return None if level not in _domains: return None f = inspect.currentframe() # go outside of logger module as long as there is a lower frame while f and f.f_back and f.f_globals["__name__"] == self.__module__: f = f.f_back if not f: raise ValueError("Frame information not available.") # get module name module_name = f.f_globals["__name__"] # simple module match test for all entries of check_domain point_module = module_name + "." for domain in check_domains: if point_module.startswith(domain): # found domain in module name check_domains = [ ] break # get code co = f.f_code # optimization: bail out early if domain can not match at all _len = len(module_name) for domain in _domains[level]: i = domain.find("*") if i == 0: continue elif i > 0: d = domain[:i] else: d = domain if _len >= len(d): if not module_name.startswith(d): return None else: if not d.startswith(module_name): return None # generate _dict for format output level_str = "" if level in _label: level_str = _label[level] _dict = { 'file': co.co_filename, 'line': f.f_lineno, 'module': module_name, 'class': '', 'function': co.co_name, 'domain': '', 'label' : level_str, 'level' : level, 'date' : time.strftime(self._date_format, time.localtime()) } if _dict["function"] == "?": _dict["function"] = "" # domain match needed? domain_needed = False for domain in _domains[level]: # standard domain, matches everything if domain == "*": continue # domain is needed domain_needed = True break # do we need to get the class object? if self._format.find("%(domain)") >= 0 or \ self._format.find("%(class)") >= 0 or \ domain_needed or \ len(check_domains) > 0: obj = self._getClass(f) if obj: _dict["class"] = obj.__name__ # build domain string _dict["domain"] = "" + _dict["module"] if _dict["class"] != "": _dict["domain"] += "." + _dict["class"] if _dict["function"] != "": _dict["domain"] += "." + _dict["function"] if len(check_domains) < 1: return _dict point_domain = _dict["domain"] + "." for domain in check_domains: if point_domain.startswith(domain) or \ fnmatch.fnmatchcase(_dict["domain"], domain): return _dict return None # --------------------------------------------------------------------------- # Global logging object. log = Logger() # --------------------------------------------------------------------------- """ # Example if __name__ == '__main__': log.setInfoLogLevel(log.INFO2) log.setDebugLogLevel(log.DEBUG5) for i in range(log.INFO1, log.INFO_MAX+1): log.setInfoLogLabel(i, "INFO%d: " % i) for i in range(log.DEBUG1, log.DEBUG_MAX+1): log.setDebugLogLabel(i, "DEBUG%d: " % i) log.setFormat("%(date)s %(module)s:%(line)d %(label)s" "%(message)s") log.setDateFormat("%Y-%m-%d %H:%M:%S") fl = FileLog("/tmp/log", "a") log.addInfoLogging("*", fl) log.delDebugLogging("*", log.stdout) log.setDebugLogging("*", log.stdout, [ log.DEBUG1, log.DEBUG2 ] ) log.addDebugLogging("*", fl) # log.addInfoLogging("*", log.syslog, fmt="%(label)s%(message)s") # log.addDebugLogging("*", log.syslog, fmt="%(label)s%(message)s") log.debug10("debug10") log.debug9("debug9") log.debug8("debug8") log.debug7("debug7") log.debug6("debug6") log.debug5("debug5") log.debug4("debug4") log.debug3("debug3") log.debug2("debug2", fmt="%(file)s:%(line)d %(message)s") log.debug1("debug1", nofmt=1) log.info5("info5") log.info4("info4") log.info3("info3") log.info2("info2") log.info1("info1") log.warning("warning\n", nl=0) log.error("error ", nl=0) log.error("error", nofmt=1) log.fatal("fatal") log.info(log.INFO1, "nofmt info", nofmt=1) log.info(log.INFO2, "info2 fmt", fmt="%(file)s:%(line)d %(message)s") try: a = b except Exception as e: log.exception() """ # vim:ts=4:sw=4:showmatch:expandtab firewalld-0.4.4.6/src/firewall/core/modules.py000066400000000000000000000072021320241217000211730ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """modules backend""" __all__ = [ "modules" ] from firewall.core.prog import runProg from firewall.core.logger import log from firewall.config import COMMANDS class modules(object): def __init__(self): self._load_command = COMMANDS["modprobe"] # Use rmmod instead of modprobe -r (RHBZ#1031102) self._unload_command = COMMANDS["rmmod"] def __repr__(self): return '%s' % (self.__class__) def loaded_modules(self): """ get all loaded kernel modules and their dependencies """ mods = [ ] deps = { } with open("/proc/modules", "r") as f: for line in f: if not line: break line = line.strip() splits = line.split() mods.append(splits[0]) if splits[3] != "-": deps[splits[0]] = splits[3].split(",")[:-1] else: deps[splits[0]] = [ ] return mods, deps # [loaded modules], {module:[dependants]} def load_module(self, module): log.debug2("%s: %s %s", self.__class__, self._load_command, module) return runProg(self._load_command, [ module ]) def unload_module(self, module): log.debug2("%s: %s %s", self.__class__, self._unload_command, module) return runProg(self._unload_command, [ module ]) def get_deps(self, module, deps, ret): """ get all dependants of a module """ if module not in deps: return for mod in deps[module]: self.get_deps(mod, deps, ret) if mod not in ret: ret.append(mod) if module not in ret: ret.append(module) def get_firewall_modules(self): """ get all loaded firewall-related modules """ mods = [ ] (mods2, deps) = self.loaded_modules() self.get_deps("nf_conntrack", deps, mods) # these modules don't have dependants listed in /proc/modules for bad_bad_module in ["nf_conntrack_ipv4", "nf_conntrack_ipv6"]: if bad_bad_module in mods: # move them to end of list, so we'll remove them later mods.remove(bad_bad_module) mods.insert(-1, bad_bad_module) for mod in mods2: if mod in [ "ip_tables", "ip6_tables", "ebtables" ] or \ mod.startswith("iptable_") or mod.startswith("ip6table_") or \ mod.startswith("nf_") or mod.startswith("xt_") or \ mod.startswith("ipt_") or mod.startswith("ip6t_") : self.get_deps(mod, deps, mods) return mods def unload_firewall_modules(self): """ unload all firewall-related modules """ for module in self.get_firewall_modules(): (status, ret) = self.unload_module(module) if status != 0: log.debug1("Failed to unload module '%s': %s" %(module, ret)) firewalld-0.4.4.6/src/firewall/core/prog.py000066400000000000000000000027461320241217000205020ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import subprocess __all__ = ["runProg"] def runProg(prog, argv=None, stdin=None): if argv is None: argv = [] args = [prog] + argv input_string = None if stdin: with open(stdin, 'r') as handle: input_string = handle.read().encode() env = {'LANG': 'C'} try: process = subprocess.Popen(args, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, close_fds=True, env=env) except OSError: return (255, '') (output, err_output) = process.communicate(input_string) output = output.decode('utf-8', 'replace') return (process.returncode, output) firewalld-0.4.4.6/src/firewall/core/rich.py000066400000000000000000000725211320241217000204560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2013-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Rich_Source", "Rich_Destination", "Rich_Service", "Rich_Port", "Rich_Protocol", "Rich_Masquerade", "Rich_IcmpBlock", "Rich_IcmpType", "Rich_SourcePort", "Rich_ForwardPort", "Rich_Log", "Rich_Audit", "Rich_Accept", "Rich_Reject", "Rich_Drop", "Rich_Mark", "Rich_Limit", "Rich_Rule" ] from firewall import functions from firewall.core.ipset import check_ipset_name from firewall.core.base import REJECT_TYPES from firewall import errors from firewall.errors import FirewallError class Rich_Source(object): def __init__(self, addr, mac, ipset, invert=False): self.addr = addr if self.addr == "": self.addr = None self.mac = mac if self.mac == "" or self.mac is None: self.mac = None elif self.mac is not None: self.mac = self.mac.upper() self.ipset = ipset if self.ipset == "": self.ipset = None self.invert = invert if self.addr is None and self.mac is None and self.ipset is None: raise FirewallError(errors.INVALID_RULE, "no address, mac and ipset") def __str__(self): ret = 'source%s ' % (" NOT" if self.invert else "") if self.addr is not None: return ret + 'address="%s"' % self.addr elif self.mac is not None: return ret + 'mac="%s"' % self.mac elif self.ipset is not None: return ret + 'ipset="%s"' % self.ipset else: raise FirewallError(errors.INVALID_RULE, "no address, mac and ipset") class Rich_Destination(object): def __init__(self, addr, invert=False): self.addr = addr self.invert = invert def __str__(self): return 'destination %saddress="%s"' % ("not " if self.invert else "", self.addr) class Rich_Service(object): def __init__(self, name): self.name = name def __str__(self): return 'service name="%s"' % (self.name) class Rich_Port(object): def __init__(self, port, protocol): self.port = port self.protocol = protocol def __str__(self): return 'port port="%s" protocol="%s"' % (self.port, self.protocol) class Rich_SourcePort(Rich_Port): def __str__(self): return 'source-port port="%s" protocol="%s"' % (self.port, self.protocol) class Rich_Protocol(object): def __init__(self, value): self.value = value def __str__(self): return 'protocol value="%s"' % (self.value) class Rich_Masquerade(object): def __init__(self): pass def __str__(self): return 'masquerade' class Rich_IcmpBlock(object): def __init__(self, name): self.name = name def __str__(self): return 'icmp-block name="%s"' % (self.name) class Rich_IcmpType(object): def __init__(self, name): self.name = name def __str__(self): return 'icmp-type name="%s"' % (self.name) class Rich_ForwardPort(object): def __init__(self, port, protocol, to_port, to_address): self.port = port self.protocol = protocol self.to_port = to_port self.to_address = to_address # replace None with "" in to_port and/or to_address if self.to_port is None: self.to_port = "" if self.to_address is None: self.to_address = "" def __str__(self): return 'forward-port port="%s" protocol="%s"%s%s' % \ (self.port, self.protocol, ' to-port="%s"' % self.to_port if self.to_port != "" else '', ' to-addr="%s"' % self.to_address if self.to_address != "" else '') class Rich_Log(object): def __init__(self, prefix=None, level=None, limit=None): #TODO check default level in iptables self.prefix = prefix self.level = level self.limit = limit def __str__(self): return 'log%s%s%s' % \ (' prefix="%s"' % (self.prefix) if self.prefix else "", ' level="%s"' % (self.level) if self.level else "", " %s" % self.limit if self.limit else "") class Rich_Audit(object): def __init__(self, limit=None): #TODO check default level in iptables self.limit = limit def __str__(self): return 'audit%s' % (" %s" % self.limit if self.limit else "") class Rich_Accept(object): def __init__(self, limit=None): self.limit = limit def __str__(self): return "accept%s" % (" %s" % self.limit if self.limit else "") class Rich_Reject(object): def __init__(self, _type=None, limit=None): self.type = _type self.limit = limit def __str__(self): return "reject%s%s" % (' type="%s"' % self.type if self.type else "", " %s" % self.limit if self.limit else "") def check(self, family): if self.type: if not family: raise FirewallError(errors.INVALID_RULE, "When using reject type you must specify also rule family.") if family in ['ipv4', 'ipv6'] and \ self.type not in REJECT_TYPES[family]: valid_types = ", ".join(REJECT_TYPES[family]) raise FirewallError(errors.INVALID_RULE, "Wrong reject type %s.\nUse one of: %s." % (self.type, valid_types)) class Rich_Drop(Rich_Accept): def __str__(self): return "drop%s" % (" %s" % self.limit if self.limit else "") class Rich_Mark(object): def __init__(self, _set, limit=None): self.set = _set self.limit = limit def __str__(self): return "mark set=%s%s" % (self.set, " %s" % self.limit if self.limit else "") def check(self): if self.set is not None: x = self.set else: raise FirewallError(errors.INVALID_MARK, "no value set") if "/" in x: splits = x.split("/") if len(splits) != 2: raise FirewallError(errors.INVALID_MARK, x) if not functions.checkUINT32(splits[0]) or \ not functions.checkUINT32(splits[1]): # value and mask are uint32 raise FirewallError(errors.INVALID_MARK, x) else: if not functions.checkUINT32(x): # value is uint32 raise FirewallError(errors.INVALID_MARK, x) class Rich_Limit(object): def __init__(self, value): self.value = value if "/" in self.value: splits = self.value.split("/") if len(splits) == 2 and \ splits[1] in [ "second", "minute", "hour", "day" ]: self.value = "%s/%s" % (splits[0], splits[1][:1]) def check(self): splits = None if "/" in self.value: splits = self.value.split("/") if not splits or len(splits) != 2: raise FirewallError(errors.INVALID_LIMIT, self.value) (rate, duration) = splits try: rate = int(rate) except: raise FirewallError(errors.INVALID_LIMIT, self.value) if rate < 1 or duration not in [ "s", "m", "h", "d" ]: raise FirewallError(errors.INVALID_LIMIT, self.value) mult = 1 if duration == "s": mult = 1 elif duration == "m": mult = 60 elif duration == "h": mult = 60*60 elif duration == "d": mult = 24*60*60 if 10000 * mult / rate == 0: raise FirewallError(errors.INVALID_LIMIT, "%s too fast" % self.value) if rate == 1 and duration == "d": # iptables (v1.4.21) doesn't accept 1/d raise FirewallError(errors.INVALID_LIMIT, "%s too slow" % self.value) def __str__(self): return 'limit value="%s"' % (self.value) def command(self): return '' class Rich_Rule(object): def __init__(self, family=None, rule_str=None): if family is not None: self.family = str(family) else: self.family = None self.source = None self.destination = None self.element = None self.log = None self.audit = None self.action = None if rule_str: self._import_from_string(rule_str) def _lexer(self, rule_str): """ Lexical analysis """ tokens = [] for r in functions.splitArgs(rule_str): if "=" in r: attr = r.split('=') if len(attr) != 2 or not attr[0] or not attr[1]: raise FirewallError(errors.INVALID_RULE, 'internal error in _lexer(): %s' % r) tokens.append({'attr_name':attr[0], 'attr_value':attr[1]}) else: tokens.append({'element':r}) tokens.append({'element':'EOL'}) return tokens def _import_from_string(self, rule_str): if not rule_str: raise FirewallError(errors.INVALID_RULE, 'empty rule') self.family = None self.source = None self.destination = None self.element = None self.log = None self.audit = None self.action = None tokens = self._lexer(rule_str) if tokens and tokens[0].get('element') == 'EOL': raise FirewallError(errors.INVALID_RULE, 'empty rule') attrs = {} # attributes of elements in_elements = [] # stack with elements we are in index = 0 # index into tokens while not (tokens[index].get('element') == 'EOL' and in_elements == ['rule']): element = tokens[index].get('element') attr_name = tokens[index].get('attr_name') attr_value = tokens[index].get('attr_value') #print ("in_elements: ", in_elements) #print ("index: %s, element: %s, attribute: %s=%s" % (index, element, attr_name, attr_value)) if attr_name: # attribute if attr_name not in ['family', 'address', 'mac', 'ipset', 'invert', 'value', 'port', 'protocol', 'to-port', 'to-addr', 'name', 'prefix', 'level', 'type', 'set']: raise FirewallError(errors.INVALID_RULE, "bad attribute '%s'" % attr_name) else: # element if element in ['rule', 'source', 'destination', 'protocol', 'service', 'port', 'icmp-block', 'icmp-type', 'masquerade', 'forward-port', 'source-port', 'log', 'audit', 'accept', 'drop', 'reject', 'mark', 'limit', 'not', 'NOT', 'EOL']: if element == 'source' and self.source: raise FirewallError(errors.INVALID_RULE, "more than one 'source' element") elif element == 'destination' and self.destination: raise FirewallError(errors.INVALID_RULE, "more than one 'destination' element") elif element in ['protocol', 'service', 'port', 'icmp-block', 'icmp-type', 'masquerade', 'forward-port', 'source-port'] and self.element: raise FirewallError(errors.INVALID_RULE, "more than one element. There cannot be both '%s' and '%s' in one rule." % (element, self.element)) elif element == 'log' and self.log: raise FirewallError(errors.INVALID_RULE, "more than one 'log' element") elif element == 'audit' and self.audit: raise FirewallError(errors.INVALID_RULE, "more than one 'audit' element") elif element in ['accept', 'drop', 'reject', 'mark'] and self.action: raise FirewallError(errors.INVALID_RULE, "more than one 'action' element. There cannot be both '%s' and '%s' in one rule." % (element, self.action)) else: raise FirewallError(errors.INVALID_RULE, "unknown element %s" % element) in_element = in_elements[len(in_elements)-1] if len(in_elements) > 0 else '' if in_element == '': if not element and attr_name: if attr_name == 'family': raise FirewallError(errors.INVALID_RULE, "'family' outside of rule. Use 'rule family=...'.") else: raise FirewallError(errors.INVALID_RULE, "'%s' outside of any element. Use 'rule %s= ...'." % (attr_name, attr_name)) elif 'rule' not in element: raise FirewallError(errors.INVALID_RULE, "'%s' outside of rule. Use 'rule ... %s ...'." % (element, element)) else: in_elements.append('rule') # push into stack elif in_element == 'rule': if attr_name == 'family': if attr_value not in ['ipv4', 'ipv6']: raise FirewallError(errors.INVALID_RULE, "'family' attribute cannot have '%s' value. Use 'ipv4' or 'ipv6' instead." % attr_value) self.family = attr_value elif attr_name: if attr_name == 'protocol': err_msg = "wrong 'protocol' usage. Use either 'rule protocol value=...' or 'rule [forward-]port protocol=...'." else: err_msg = "attribute '%s' outside of any element. Use 'rule %s= ...'." % (attr_name, attr_name) raise FirewallError(errors.INVALID_RULE, err_msg) else: in_elements.append(element) # push into stack elif in_element == 'source': if attr_name in ['address', 'mac', 'ipset', 'invert']: attrs[attr_name] = attr_value elif element in ['not', 'NOT']: attrs['invert'] = True else: self.source = Rich_Source(attrs.get('address'), attrs.get('mac'), attrs.get('ipset'), attrs.get('invert')) in_elements.pop() # source attrs.clear() index = index -1 # return token to input elif in_element == 'destination': if attr_name in ['address', 'invert']: attrs[attr_name] = attr_value elif element in ['not', 'NOT']: attrs['invert'] = True else: self.destination = Rich_Destination(attrs.get('address'), attrs.get('invert')) in_elements.pop() # destination attrs.clear() index = index -1 # return token to input elif in_element == 'protocol': if attr_name == 'value': self.element = Rich_Protocol(attr_value) in_elements.pop() # protocol else: raise FirewallError(errors.INVALID_RULE, "invalid 'protocol' element") elif in_element == 'service': if attr_name == 'name': self.element = Rich_Service(attr_value) in_elements.pop() # service else: raise FirewallError(errors.INVALID_RULE, "invalid 'service' element") elif in_element == 'port': if attr_name in ['port', 'protocol']: attrs[attr_name] = attr_value else: self.element = Rich_Port(attrs.get('port'), attrs.get('protocol')) in_elements.pop() # port attrs.clear() index = index -1 # return token to input elif in_element == 'icmp-block': if attr_name == 'name': self.element = Rich_IcmpBlock(attr_value) in_elements.pop() # icmp-block else: raise FirewallError(errors.INVALID_RULE, "invalid 'icmp-block' element") elif in_element == 'icmp-type': if attr_name == 'name': self.element = Rich_IcmpType(attr_value) in_elements.pop() # icmp-type else: raise FirewallError(errors.INVALID_RULE, "invalid 'icmp-type' element") elif in_element == 'masquerade': self.element = Rich_Masquerade() in_elements.pop() attrs.clear() index = index -1 # return token to input elif in_element == 'forward-port': if attr_name in ['port', 'protocol', 'to-port', 'to-addr']: attrs[attr_name] = attr_value else: self.element = Rich_ForwardPort(attrs.get('port'), attrs.get('protocol'), attrs.get('to-port'), attrs.get('to-addr')) in_elements.pop() # forward-port attrs.clear() index = index -1 # return token to input elif in_element == 'source-port': if attr_name in ['port', 'protocol']: attrs[attr_name] = attr_value else: self.element = Rich_SourcePort(attrs.get('port'), attrs.get('protocol')) in_elements.pop() # source-port attrs.clear() index = index -1 # return token to input elif in_element == 'log': if attr_name in ['prefix', 'level']: attrs[attr_name] = attr_value elif element == 'limit': in_elements.append('limit') else: self.log = Rich_Log(attrs.get('prefix'), attrs.get('level'), attrs.get('limit')) in_elements.pop() # log attrs.clear() index = index -1 # return token to input elif in_element == 'audit': if element == 'limit': in_elements.append('limit') else: self.audit = Rich_Audit(attrs.get('limit')) in_elements.pop() # audit attrs.clear() index = index -1 # return token to input elif in_element == 'accept': if element == 'limit': in_elements.append('limit') else: self.action = Rich_Accept(attrs.get('limit')) in_elements.pop() # accept attrs.clear() index = index -1 # return token to input elif in_element == 'drop': if element == 'limit': in_elements.append('limit') else: self.action = Rich_Drop(attrs.get('limit')) in_elements.pop() # drop attrs.clear() index = index -1 # return token to input elif in_element == 'reject': if attr_name == 'type': attrs[attr_name] = attr_value elif element == 'limit': in_elements.append('limit') else: self.action = Rich_Reject(attrs.get('type'), attrs.get('limit')) in_elements.pop() # accept attrs.clear() index = index -1 # return token to input elif in_element == 'mark': if attr_name == 'set': attrs[attr_name] = attr_value elif element == 'limit': in_elements.append('limit') else: self.action = Rich_Mark(attrs.get('set'), attrs.get('limit')) in_elements.pop() # accept attrs.clear() index = index -1 # return token to input elif in_element == 'limit': if attr_name == 'value': attrs['limit'] = Rich_Limit(attr_value) in_elements.pop() # limit else: raise FirewallError(errors.INVALID_RULE, "invalid 'limit' element") index = index + 1 self.check() def check(self): if self.family is not None and self.family not in [ "ipv4", "ipv6" ]: raise FirewallError(errors.INVALID_FAMILY, self.family) if self.family is None: if (self.source is not None and self.source.addr is not None) or \ self.destination is not None: raise FirewallError(errors.MISSING_FAMILY) if type(self.element) == Rich_ForwardPort: raise FirewallError(errors.MISSING_FAMILY) if self.element is None: if self.action is None: raise FirewallError(errors.INVALID_RULE, "no element, no action") if self.source is None and self.destination is None: raise FirewallError(errors.INVALID_RULE, "no element, no source, no destination") if type(self.element) not in [ Rich_IcmpBlock, Rich_ForwardPort, Rich_Masquerade ]: if self.log is None and self.audit is None and \ self.action is None: raise FirewallError(errors.INVALID_RULE, "no action, no log, no audit") # source if self.source is not None: if self.source.addr is not None: if self.family is None: raise FirewallError(errors.INVALID_FAMILY) if self.source.mac is not None: raise FirewallError(errors.INVALID_RULE, "address and mac") if self.source.ipset is not None: raise FirewallError(errors.INVALID_RULE, "address and ipset") if not functions.check_address(self.family, self.source.addr): raise FirewallError(errors.INVALID_ADDR, str(self.source.addr)) elif self.source.mac is not None: if self.source.ipset is not None: raise FirewallError(errors.INVALID_RULE, "mac and ipset") if not functions.check_mac(self.source.mac): raise FirewallError(errors.INVALID_MAC, str(self.source.mac)) elif self.source.ipset is not None: if not check_ipset_name(self.source.ipset): raise FirewallError(errors.INVALID_IPSET, str(self.source.ipset)) else: raise FirewallError(errors.INVALID_RULE, "invalid source") # destination if self.destination is not None: if self.family is None: raise FirewallError(errors.INVALID_FAMILY) if self.destination.addr is None or \ not functions.check_address(self.family, self.destination.addr): raise FirewallError(errors.INVALID_ADDR, str(self.destination.addr)) # service if type(self.element) == Rich_Service: # service availability needs to be checked in Firewall, here is no # knowledge about this, therefore only simple check if self.element.name is None or len(self.element.name) < 1: raise FirewallError(errors.INVALID_SERVICE, str(self.element.name)) # port elif type(self.element) == Rich_Port: if not functions.check_port(self.element.port): raise FirewallError(errors.INVALID_PORT, self.element.port) if self.element.protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, self.element.protocol) # protocol elif type(self.element) == Rich_Protocol: if not functions.checkProtocol(self.element.value): raise FirewallError(errors.INVALID_PROTOCOL, self.element.value) # masquerade elif type(self.element) == Rich_Masquerade: if self.action is not None: raise FirewallError(errors.INVALID_RULE, "masquerade and action") if self.source is not None and self.source.mac is not None: raise FirewallError(errors.INVALID_RULE, "masquerade and mac source") # icmp-block elif type(self.element) == Rich_IcmpBlock: # icmp type availability needs to be checked in Firewall, here is no # knowledge about this, therefore only simple check if self.element.name is None or len(self.element.name) < 1: raise FirewallError(errors.INVALID_ICMPTYPE, str(self.element.name)) if self.action: raise FirewallError(errors.INVALID_RULE, "icmp-block and action") # icmp-type elif type(self.element) == Rich_IcmpType: # icmp type availability needs to be checked in Firewall, here is no # knowledge about this, therefore only simple check if self.element.name is None or len(self.element.name) < 1: raise FirewallError(errors.INVALID_ICMPTYPE, str(self.element.name)) # forward-port elif type(self.element) == Rich_ForwardPort: if not functions.check_port(self.element.port): raise FirewallError(errors.INVALID_PORT, self.element.port) if self.element.protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, self.element.protocol) if self.element.to_port == "" and self.element.to_address == "": raise FirewallError(errors.INVALID_PORT, self.element.to_port) if self.element.to_port != "" and \ not functions.check_port(self.element.to_port): raise FirewallError(errors.INVALID_PORT, self.element.to_port) if self.element.to_address != "" and \ not functions.check_single_address(self.family, self.element.to_address): raise FirewallError(errors.INVALID_ADDR, self.element.to_address) if self.family is None: raise FirewallError(errors.INVALID_FAMILY) if self.action is not None: raise FirewallError(errors.INVALID_RULE, "forward-port and action") # source-port elif type(self.element) == Rich_SourcePort: if not functions.check_port(self.element.port): raise FirewallError(errors.INVALID_PORT, self.element.port) if self.element.protocol not in [ "tcp", "udp", "sctp", "dccp" ]: raise FirewallError(errors.INVALID_PROTOCOL, self.element.protocol) # other element and not empty? elif self.element is not None: raise FirewallError(errors.INVALID_RULE, "Unknown element %s" % type(self.element)) # log if self.log is not None: if self.log.level and \ self.log.level not in [ "emerg", "alert", "crit", "error", "warning", "notice", "info", "debug" ]: raise FirewallError(errors.INVALID_LOG_LEVEL, self.log.level) if self.log.limit is not None: self.log.limit.check() # audit if self.audit is not None: if type(self.action) not in [ Rich_Accept, Rich_Reject, Rich_Drop ]: raise FirewallError(errors.INVALID_AUDIT_TYPE, type(self.action)) if self.audit.limit is not None: self.audit.limit.check() # action if self.action is not None: if type(self.action) == Rich_Reject: self.action.check(self.family) elif type(self.action) == Rich_Mark: self.action.check() if self.action.limit is not None: self.action.limit.check() def __str__(self): ret = 'rule' if self.family: ret += ' family="%s"' % self.family if self.source: ret += " %s" % self.source if self.destination: ret += " %s" % self.destination if self.element: ret += " %s" % self.element if self.log: ret += " %s" % self.log if self.audit: ret += " %s" % self.audit if self.action: ret += " %s" % self.action return (functions.u2b(ret)) if functions.PY2 else ret #class Rich_RawRule(object): #class Rich_RuleSet(object): #class Rich_AddressList(object): firewalld-0.4.4.6/src/firewall/core/watcher.py000066400000000000000000000062261320241217000211650ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2012-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "Watcher" ] from gi.repository import Gio, GLib class Watcher(object): def __init__(self, callback, timeout): self._callback = callback self._timeout = timeout self._monitors = { } self._timeouts = { } self._blocked = [ ] def add_watch_dir(self, directory): gfile = Gio.File.new_for_path(directory) self._monitors[directory] = gfile.monitor_directory(\ Gio.FileMonitorFlags.NONE, None) self._monitors[directory].connect("changed", self._file_changed_cb) def add_watch_file(self, filename): gfile = Gio.File.new_for_path(filename) self._monitors[filename] = gfile.monitor_file(\ Gio.FileMonitorFlags.NONE, None) self._monitors[filename].connect("changed", self._file_changed_cb) def get_watches(self): return self._monitors.keys() def has_watch(self, filename): return filename in self._monitors def remove_watch(self, filename): del self._monitors[filename] def block_source(self, filename): if filename not in self._blocked: self._blocked.append(filename) def unblock_source(self, filename): if filename in self._blocked: self._blocked.remove(filename) def clear_timeouts(self): for filename in self._timeouts.keys(): GLib.source_remove(self._timeouts[filename]) del self._timeouts[filename] def _call_callback(self, filename): if filename not in self._blocked: self._callback(filename) del self._timeouts[filename] def _file_changed_cb(self, monitor, gio_file, gio_other_file, event): filename = gio_file.get_parse_name() if filename in self._blocked: if filename in self._timeouts: GLib.source_remove(self._timeouts[filename]) del self._timeouts[filename] return if event == Gio.FileMonitorEvent.CHANGED or \ event == Gio.FileMonitorEvent.CREATED or \ event == Gio.FileMonitorEvent.DELETED or \ event == Gio.FileMonitorEvent.ATTRIBUTE_CHANGED: if filename in self._timeouts: GLib.source_remove(self._timeouts[filename]) del self._timeouts[filename] self._timeouts[filename] = GLib.timeout_add_seconds(\ self._timeout, self._call_callback, filename) firewalld-0.4.4.6/src/firewall/dbus_utils.py000066400000000000000000000175121320241217000207550ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2011-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "command_of_pid", "pid_of_sender", "uid_of_sender", "user_of_uid", "context_of_sender", "command_of_sender", "user_of_sender", "dbus_to_python", "dbus_signature", "dbus_introspection_prepare_properties", "dbus_introspection_add_properties" ] import dbus import pwd import sys from xml.dom import minidom from firewall.core.logger import log PY2 = sys.version < '3' def command_of_pid(pid): """ Get command for pid from /proc """ try: with open("/proc/%d/cmdline" % pid, "r") as f: cmd = f.readlines()[0].replace('\0', " ").strip() except Exception: return None return cmd def pid_of_sender(bus, sender): """ Get pid from sender string using org.freedesktop.DBus.GetConnectionUnixProcessID """ dbus_obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') dbus_iface = dbus.Interface(dbus_obj, 'org.freedesktop.DBus') try: pid = int(dbus_iface.GetConnectionUnixProcessID(sender)) except ValueError: return None return pid def uid_of_sender(bus, sender): """ Get user id from sender string using org.freedesktop.DBus.GetConnectionUnixUser """ dbus_obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') dbus_iface = dbus.Interface(dbus_obj, 'org.freedesktop.DBus') try: uid = int(dbus_iface.GetConnectionUnixUser(sender)) except ValueError: return None return uid def user_of_uid(uid): """ Get user for uid from pwd """ try: pws = pwd.getpwuid(uid) except Exception: return None return pws[0] def context_of_sender(bus, sender): """ Get SELinux context from sender string using org.freedesktop.DBus.GetConnectionSELinuxSecurityContext """ dbus_obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') dbus_iface = dbus.Interface(dbus_obj, 'org.freedesktop.DBus') try: context = dbus_iface.GetConnectionSELinuxSecurityContext(sender) except Exception: return None return "".join(map(chr, dbus_to_python(context))) def command_of_sender(bus, sender): """ Return command of D-Bus sender """ return command_of_pid(pid_of_sender(bus, sender)) def user_of_sender(bus, sender): return user_of_uid(uid_of_sender(bus, sender)) def dbus_to_python(obj, expected_type=None): if obj is None: python_obj = obj elif isinstance(obj, dbus.Boolean): python_obj = bool(obj) elif isinstance(obj, dbus.String): python_obj = obj.encode('utf-8') if PY2 else str(obj) elif PY2 and isinstance(obj, dbus.UTF8String): # Python3 has no UTF8String python_obj = str(obj) elif isinstance(obj, dbus.ObjectPath): python_obj = str(obj) elif isinstance(obj, dbus.Byte) or \ isinstance(obj, dbus.Int16) or \ isinstance(obj, dbus.Int32) or \ isinstance(obj, dbus.Int64) or \ isinstance(obj, dbus.UInt16) or \ isinstance(obj, dbus.UInt32) or \ isinstance(obj, dbus.UInt64): python_obj = int(obj) elif isinstance(obj, dbus.Double): python_obj = float(obj) elif isinstance(obj, dbus.Array): python_obj = [dbus_to_python(x) for x in obj] elif isinstance(obj, dbus.Struct): python_obj = tuple([dbus_to_python(x) for x in obj]) elif isinstance(obj, dbus.Dictionary): python_obj = {dbus_to_python(k): dbus_to_python(v) for k, v in obj.items()} elif isinstance(obj, bool) or \ isinstance(obj, str) or isinstance(obj, bytes) or \ isinstance(obj, int) or isinstance(obj, float) or \ isinstance(obj, list) or isinstance(obj, tuple) or \ isinstance(obj, dict): python_obj = obj else: raise TypeError("Unhandled %s" % repr(obj)) if expected_type is not None: if (expected_type == bool and not isinstance(python_obj, bool)) or \ (expected_type == str and not isinstance(python_obj, str)) or \ (expected_type == int and not isinstance(python_obj, int)) or \ (expected_type == float and not isinstance(python_obj, float)) or \ (expected_type == list and not isinstance(python_obj, list)) or \ (expected_type == tuple and not isinstance(python_obj, tuple)) or \ (expected_type == dict and not isinstance(python_obj, dict)): raise TypeError("%s is %s, expected %s" % (python_obj, type(python_obj), expected_type)) return python_obj def dbus_signature(obj): if isinstance(obj, dbus.Boolean): return 'b' elif isinstance(obj, dbus.String): return 's' elif isinstance(obj, dbus.ObjectPath): return 'o' elif isinstance(obj, dbus.Byte): return 'y' elif isinstance(obj, dbus.Int16): return 'n' elif isinstance(obj, dbus.Int32): return 'i' elif isinstance(obj, dbus.Int64): return 'x' elif isinstance(obj, dbus.UInt16): return 'q' elif isinstance(obj, dbus.UInt32): return 'u' elif isinstance(obj, dbus.UInt64): return 't' elif isinstance(obj, dbus.Double): return 'd' elif isinstance(obj, dbus.Array): if len(obj.signature) > 1: return 'a(%s)' % obj.signature else: return 'a%s' % obj.signature elif isinstance(obj, dbus.Struct): return '(%s)' % obj.signature elif isinstance(obj, dbus.Dictionary): return 'a{%s}' % obj.signature elif PY2 and isinstance(obj, dbus.UTF8String): return 's' else: raise TypeError("Unhandled %s" % repr(obj)) def dbus_introspection_prepare_properties(obj, interface, access=None): if access is None: access = { } if not hasattr(obj, "_fw_dbus_properties"): setattr(obj, "_fw_dbus_properties", { }) dip = getattr(obj, "_fw_dbus_properties") dip[interface] = { } try: _dict = obj.GetAll(interface) except Exception: _dict = { } for key,value in _dict.items(): dip[interface][key] = { "type": dbus_signature(value) } if key in access: dip[interface][key]["access"] = access[key] else: dip[interface][key]["access"] = "read" def dbus_introspection_add_properties(obj, data, interface): doc = minidom.parseString(data) if hasattr(obj, "_fw_dbus_properties"): for node in doc.getElementsByTagName("interface"): if node.hasAttribute("name") and \ node.getAttribute("name") == interface: dip = { } if getattr(obj, "_fw_dbus_properties"): dip = getattr(obj, "_fw_dbus_properties") if interface in dip: for key,value in dip[interface].items(): prop = doc.createElement("property") prop.setAttribute("name", key) prop.setAttribute("type", value["type"]) prop.setAttribute("access", value["access"]) node.appendChild(prop) log.debug10(doc.toxml()) new_data = doc.toxml() doc.unlink() return new_data firewalld-0.4.4.6/src/firewall/errors.py000066400000000000000000000101061320241217000201040ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2012 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ALREADY_ENABLED = 11 NOT_ENABLED = 12 COMMAND_FAILED = 13 NO_IPV6_NAT = 14 PANIC_MODE = 15 ZONE_ALREADY_SET = 16 UNKNOWN_INTERFACE = 17 ZONE_CONFLICT = 18 BUILTIN_CHAIN = 19 EBTABLES_NO_REJECT = 20 NOT_OVERLOADABLE = 21 NO_DEFAULTS = 22 BUILTIN_ZONE = 23 BUILTIN_SERVICE = 24 BUILTIN_ICMPTYPE = 25 NAME_CONFLICT = 26 NAME_MISMATCH = 27 PARSE_ERROR = 28 ACCESS_DENIED = 29 UNKNOWN_SOURCE = 30 RT_TO_PERM_FAILED = 31 IPSET_WITH_TIMEOUT = 32 BUILTIN_IPSET = 33 ALREADY_SET = 34 MISSING_IMPORT = 35 DBUS_ERROR = 36 BUILTIN_HELPER = 37 NOT_APPLIED = 38 INVALID_ACTION = 100 INVALID_SERVICE = 101 INVALID_PORT = 102 INVALID_PROTOCOL = 103 INVALID_INTERFACE = 104 INVALID_ADDR = 105 INVALID_FORWARD = 106 INVALID_ICMPTYPE = 107 INVALID_TABLE = 108 INVALID_CHAIN = 109 INVALID_TARGET = 110 INVALID_IPV = 111 INVALID_ZONE = 112 INVALID_PROPERTY = 113 INVALID_VALUE = 114 INVALID_OBJECT = 115 INVALID_NAME = 116 INVALID_FILENAME = 117 INVALID_DIRECTORY = 118 INVALID_TYPE = 119 INVALID_SETTING = 120 INVALID_DESTINATION = 121 INVALID_RULE = 122 INVALID_LIMIT = 123 INVALID_FAMILY = 124 INVALID_LOG_LEVEL = 125 INVALID_AUDIT_TYPE = 126 INVALID_MARK = 127 INVALID_CONTEXT = 128 INVALID_COMMAND = 129 INVALID_USER = 130 INVALID_UID = 131 INVALID_MODULE = 132 INVALID_PASSTHROUGH = 133 INVALID_MAC = 134 INVALID_IPSET = 135 INVALID_ENTRY = 136 INVALID_OPTION = 137 INVALID_HELPER = 138 MISSING_TABLE = 200 MISSING_CHAIN = 201 MISSING_PORT = 202 MISSING_PROTOCOL = 203 MISSING_ADDR = 204 MISSING_NAME = 205 MISSING_SETTING = 206 MISSING_FAMILY = 207 NOT_RUNNING = 252 NOT_AUTHORIZED = 253 UNKNOWN_ERROR = 254 import sys class FirewallError(Exception): def __init__(self, code, msg=None): self.code = code if msg is not None: # escape msg if needed try: x = str(msg) except UnicodeEncodeError: msg = unicode(msg).encode("unicode_escape") self.msg = msg def __repr__(self): return '%s(%r, %r)' % (self.__class__, self.code, self.msg) def __str__(self): if self.msg: return "%s: %s" % (self.errors[self.code], self.msg) return self.errors[self.code] def get_code(msg): if ":" in msg: idx = msg.index(":") ecode = msg[:idx] else: ecode = msg try: code = FirewallError.codes[ecode] except KeyError: code = UNKNOWN_ERROR return code get_code = staticmethod(get_code) mod = sys.modules[FirewallError.__module__] FirewallError.errors = { getattr(mod,varname) : varname for varname in dir(mod) if not varname.startswith("_") and \ type(getattr(mod,varname)) == int } FirewallError.codes = { FirewallError.errors[code] : code for code in FirewallError.errors } firewalld-0.4.4.6/src/firewall/functions.py000066400000000000000000000364521320241217000206140ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007,2008,2011,2012 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "PY2", "getPortID", "getPortRange", "portStr", "getServiceName", "checkIP", "checkIP6", "checkIPnMask", "checkIP6nMask", "checkProtocol", "checkInterface", "checkUINT32", "firewalld_is_active", "tempFile", "readfile", "writefile", "enable_ip_forwarding", "get_nf_conntrack_helper_setting", "set_nf_conntrack_helper_setting", "get_nf_conntrack_helpers", "get_nf_nat_helpers", "check_port", "check_address", "check_single_address", "check_mac", "uniqify", "ppid_of_pid", "max_zone_name_len", "checkUser", "checkUid", "checkCommand", "checkContext", "joinArgs", "splitArgs", "b2u", "u2b", "u2b_if_py2" ] import socket import os, os.path import shlex, pipes import string import sys import tempfile from firewall.core.logger import log from firewall.core.prog import runProg from firewall.config import FIREWALLD_TEMPDIR, FIREWALLD_PIDFILE, COMMANDS PY2 = sys.version < '3' def getPortID(port): """ Check and Get port id from port string or port id using socket.getservbyname @param port port string or port id @return Port id if valid, -1 if port can not be found and -2 if port is too big """ if isinstance(port, int): _id = port else: if port: port = port.strip() try: _id = int(port) except ValueError: try: _id = socket.getservbyname(port) except socket.error: return -1 if _id > 65535: return -2 return _id def getPortRange(ports): """ Get port range for port range string or single port id @param ports an integer or port string or port range string @return Array containing start and end port id for a valid range or -1 if port can not be found and -2 if port is too big for integer input or -1 for invalid ranges or None if the range is ambiguous. """ # "" case if isinstance(ports, int) or ports.isdigit(): id1 = getPortID(ports) if id1 >= 0: return (id1,) return id1 splits = ports.split("-") # "-" case if len(splits) == 2 and splits[0].isdigit() and splits[1].isdigit(): id1 = getPortID(splits[0]) id2 = getPortID(splits[1]) if id1 >= 0 and id2 >= 0: if id1 < id2: return (id1, id2) elif id1 > id2: return (id2, id1) else: # ids are the same return (id1,) # everything else "[-]" matched = [ ] for i in range(len(splits), 0, -1): id1 = getPortID("-".join(splits[:i])) port2 = "-".join(splits[i:]) if len(port2) > 0: id2 = getPortID(port2) if id1 >= 0 and id2 >= 0: if id1 < id2: matched.append((id1, id2)) elif id1 > id2: matched.append((id2, id1)) else: matched.append((id1, )) else: if id1 >= 0: matched.append((id1,)) if i == len(splits): # full match, stop here break if len(matched) < 1: return -1 elif len(matched) > 1: return None return matched[0] def portStr(port, delimiter=":"): """ Create port and port range string @param port port or port range int or [int, int] @param delimiter of the output string for port ranges, default ':' @return Port or port range string, empty string if port isn't specified, None if port or port range is not valid """ if port == "": return "" _range = getPortRange(port) if isinstance(_range, int) and _range < 0: return None elif len(_range) == 1: return "%s" % _range else: return "%s%s%s" % (_range[0], delimiter, _range[1]) def getServiceName(port, proto): """ Check and Get service name from port and proto string combination using socket.getservbyport @param port string or id @param protocol string @return Service name if port and protocol are valid, else None """ try: name = socket.getservbyport(int(port), proto) except socket.error: return None return name def checkIP(ip): """ Check IPv4 address. @param ip address string @return True if address is valid, else False """ try: socket.inet_pton(socket.AF_INET, ip) except socket.error: return False return True def checkIP6(ip): """ Check IPv6 address. @param ip address string @return True if address is valid, else False """ try: socket.inet_pton(socket.AF_INET6, ip) except socket.error: return False return True def checkIPnMask(ip): if "/" in ip: addr = ip[:ip.index("/")] mask = ip[ip.index("/")+1:] if len(addr) < 1 or len(mask) < 1: return False else: addr = ip mask = None if not checkIP(addr): return False if mask: if "." in mask: return checkIP(mask) else: try: i = int(mask) except ValueError: return False if i < 0 or i > 32: return False return True def checkIP6nMask(ip): if "/" in ip: addr = ip[:ip.index("/")] mask = ip[ip.index("/")+1:] if len(addr) < 1 or len(mask) < 1: return False else: addr = ip mask = None if not checkIP6(addr): return False if mask: try: i = int(mask) except ValueError: return False if i < 0 or i > 128: return False return True def checkProtocol(protocol): try: i = int(protocol) except ValueError: # string try: socket.getprotobyname(protocol) except socket.error: return False else: if i < 0 or i > 255: return False return True def checkInterface(iface): """ Check interface string @param interface string @return True if interface is valid (maximum 16 chars and does not contain ' ', '/', '!', ':', '*'), else False """ if not iface or len(iface) > 16: return False for ch in [ ' ', '/', '!', '*' ]: # !:* are limits for iptables <= 1.4.5 if ch in iface: return False # disabled old iptables check #if iface == "+": # # limit for iptables <= 1.4.5 # return False return True def checkUINT32(val): try: x = int(val, 0) except ValueError: return False else: if x >= 0 and x <= 4294967295: return True return False def firewalld_is_active(): """ Check if firewalld is active @return True if there is a firewalld pid file and the pid is used by firewalld """ if not os.path.exists(FIREWALLD_PIDFILE): return False try: with open(FIREWALLD_PIDFILE, "r") as fd: pid = fd.readline() except Exception: return False if not os.path.exists("/proc/%s" % pid): return False try: with open("/proc/%s/cmdline" % pid, "r") as fd: cmdline = fd.readline() except Exception: return False if "firewalld" in cmdline: return True return False def tempFile(): try: if not os.path.exists(FIREWALLD_TEMPDIR): os.mkdir(FIREWALLD_TEMPDIR, 0o750) return tempfile.NamedTemporaryFile(mode='wt', prefix="temp.", dir=FIREWALLD_TEMPDIR, delete=False) except Exception as msg: log.error("Failed to create temporary file: %s" % msg) raise return None def readfile(filename): try: with open(filename, "r") as f: return f.readlines() except Exception as e: log.error('Failed to read file "%s": %s' % (filename, e)) return None def writefile(filename, line): try: with open(filename, "w") as f: f.write(line) except Exception as e: log.error('Failed to write to file "%s": %s' % (filename, e)) return False return True def enable_ip_forwarding(ipv): if ipv == "ipv4": return writefile("/proc/sys/net/ipv4/ip_forward", "1\n") elif ipv == "ipv6": return writefile("/proc/sys/net/ipv6/conf/all/forwarding", "1\n") return False def get_nf_conntrack_helpers(): kver = os.uname()[2] path = "/lib/modules/%s/kernel/net/netfilter/" % kver helpers = { } if os.path.isdir(path): for filename in sorted(os.listdir(path)): if not filename.startswith("nf_conntrack_"): continue module = filename.split(".")[0] (status, ret) = runProg(COMMANDS["modinfo"], [ module, ]) if status != 0: continue for line in ret.split("\n"): if line.startswith("alias:") and "-helper-" in line: helper = line.split(":")[1].strip() helper = helper.replace("nfct-helper-", "") helper = helper.replace("_", "-") helpers.setdefault(module, [ ]).append(helper) return helpers def get_nf_nat_helpers(): kver = os.uname()[2] path = "/lib/modules/%s/kernel/net/netfilter/" % kver helpers = { } if os.path.isdir(path): for filename in sorted(os.listdir(path)): if not filename.startswith("nf_nat_"): continue module = filename.split(".")[0] (status, ret) = runProg(COMMANDS["modinfo"], [ module, ]) if status != 0: continue alias = None for line in ret.split("\n"): if line.startswith("description:") and "NAT helper" in line: helper = module.replace("nf_nat_", "") helper = helper.replace("_", "-") helpers.setdefault(module, [ ]).append(helper) return helpers def get_nf_conntrack_helper_setting(): try: return int(readfile("/proc/sys/net/netfilter/nf_conntrack_helper")[0]) except Exception: log.warning("Failed to get and parse nf_conntrack_helper setting") return 0 def set_nf_conntrack_helper_setting(flag): return writefile("/proc/sys/net/netfilter/nf_conntrack_helper", "1\n" if flag else "0\n") def check_port(port): _range = getPortRange(port) if _range == -2 or _range == -1 or _range is None or \ (len(_range) == 2 and _range[0] >= _range[1]): if _range == -2: log.debug2("'%s': port > 65535" % port) elif _range == -1: log.debug2("'%s': port is invalid" % port) elif _range is None: log.debug2("'%s': port is ambiguous" % port) elif len(_range) == 2 and _range[0] >= _range[1]: log.debug2("'%s': range start >= end" % port) return False return True def check_address(ipv, source): if ipv == "ipv4": return checkIPnMask(source) elif ipv == "ipv6": return checkIP6nMask(source) else: return False def check_single_address(ipv, source): if ipv == "ipv4": return checkIP(source) elif ipv == "ipv6": return checkIP6(source) else: return False def check_mac(mac): if len(mac) == 12+5: # 0 1 : 3 4 : 6 7 : 9 10 : 12 13 : 15 16 for i in (2, 5, 8, 11, 14): if mac[i] != ":": return False for i in (0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16): if mac[i] not in string.hexdigits: return False return True return False def uniqify(_list): # removes duplicates from list, whilst preserving order output = [] for x in _list: if x not in output: output.append(x) return output def ppid_of_pid(pid): """ Get parent for pid """ try: f = os.popen("ps -o ppid -h -p %d 2>/dev/null" % pid) pid = int(f.readlines()[0].strip()) f.close() except Exception: return None return pid def max_zone_name_len(): """ Netfilter limits length of chain to (currently) 28 chars. The longest chain we create is FWDI__allow, which leaves 28 - 11 = 17 chars for . """ from firewall.core.base import SHORTCUTS longest_shortcut = max(map(len, SHORTCUTS.values())) return 28 - (longest_shortcut + len("__allow")) def checkUser(user): if len(user) < 1 or len(user) > os.sysconf('SC_LOGIN_NAME_MAX'): return False for c in user: if c not in string.ascii_letters and \ c not in string.digits and \ c not in [ ".", "-", "_", "$" ]: return False return True def checkUid(uid): if isinstance(uid, str): try: uid = int(uid) except ValueError: return False if uid >= 0 and uid <= 2**31-1: return True return False def checkCommand(command): if len(command) < 1 or len(command) > 1024: return False for ch in [ "|", "\n", "\0" ]: if ch in command: return False if command[0] != "/": return False return True def checkContext(context): splits = context.split(":") if len(splits) not in [4, 5]: return False # user ends with _u if not root if splits[0] != "root" and splits[0][-2:] != "_u": return False # role ends with _r if splits[1][-2:] != "_r": return False # type ends with _t if splits[2][-2:] != "_t": return False # level might also contain : if len(splits[3]) < 1: return False return True def joinArgs(args): if "quote" in dir(shlex): return " ".join(shlex.quote(a) for a in args) else: return " ".join(pipes.quote(a) for a in args) def splitArgs(_string): if PY2 and isinstance(_string, unicode): # Python2's shlex doesn't like unicode _string = u2b(_string) splits = shlex.split(_string) return map(b2u, splits) else: return shlex.split(_string) def b2u(_string): """ bytes to unicode """ if isinstance(_string, bytes): return _string.decode('UTF-8', 'replace') return _string def u2b(_string): """ unicode to bytes """ if not isinstance(_string, bytes): return _string.encode('UTF-8', 'replace') return _string def u2b_if_py2(_string): """ unicode to bytes only if Python 2""" if PY2 and isinstance(_string, unicode): return _string.encode('UTF-8', 'replace') return _string firewalld-0.4.4.6/src/firewall/fw_types.py000066400000000000000000000042211320241217000204310ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2013-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # __all__ = [ "LastUpdatedOrderedDict" ] class LastUpdatedOrderedDict(object): def __init__(self, x=None): self._dict = { } self._list = [ ] if x: self.update(x) def clear(self): del self._list[:] self._dict.clear() def update(self, x): for key,value in x.items(): self[key] = value def items(self): return [(key, self[key]) for key in self._list] def __delitem__(self, key): if key in self._dict: self._list.remove(key) del self._dict[key] def __repr__(self): return '%s([%s])' % (self.__class__.__name__, ', '.join( ['(%r, %r)' % (key, self[key]) for key in self._list])) def __setitem__(self, key, value): if key not in self._dict: self._list.append(key) self._dict[key] = value def __getitem__(self, key): if key in self._dict: return self._dict[key] else: return self._list[key] def __len__(self): return len(self._list) def copy(self): return LastUpdatedOrderedDict(self) def keys(self): return self._list[:] def values(self): return [ self[key] for key in self._list ] def setdefault(self, key, value=None): if key in self: return self[key] else: self[key] = value return value firewalld-0.4.4.6/src/firewall/server/000077500000000000000000000000001320241217000175265ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/server/__init__.py000066400000000000000000000000001320241217000216250ustar00rootroot00000000000000firewalld-0.4.4.6/src/firewall/server/config.py000066400000000000000000001673511320241217000213620ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import os import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.core.base import DEFAULT_ZONE_TARGET from firewall.core.watcher import Watcher from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall.server.config_icmptype import FirewallDConfigIcmpType from firewall.server.config_service import FirewallDConfigService from firewall.server.config_zone import FirewallDConfigZone from firewall.server.config_ipset import FirewallDConfigIPSet from firewall.server.config_helper import FirewallDConfigHelper from firewall.core.io.zone import Zone from firewall.core.io.service import Service from firewall.core.io.icmptype import IcmpType from firewall.core.io.ipset import IPSet from firewall.core.io.helper import Helper from firewall.core.io.lockdown_whitelist import LockdownWhitelist from firewall.core.io.direct import Direct from firewall.dbus_utils import dbus_to_python, \ command_of_sender, context_of_sender, uid_of_sender, user_of_uid, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfig # ############################################################################ class FirewallDConfig(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use config.dbus.PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, conf, *args, **kwargs): super(FirewallDConfig, self).__init__(*args, **kwargs) self.config = conf self.busname = args[0] self.path = args[1] self._init_vars() self.watcher = Watcher(self.watch_updater, 5) self.watcher.add_watch_dir(config.FIREWALLD_IPSETS) self.watcher.add_watch_dir(config.ETC_FIREWALLD_IPSETS) self.watcher.add_watch_dir(config.FIREWALLD_ICMPTYPES) self.watcher.add_watch_dir(config.ETC_FIREWALLD_ICMPTYPES) self.watcher.add_watch_dir(config.FIREWALLD_HELPERS) self.watcher.add_watch_dir(config.ETC_FIREWALLD_HELPERS) self.watcher.add_watch_dir(config.FIREWALLD_SERVICES) self.watcher.add_watch_dir(config.ETC_FIREWALLD_SERVICES) self.watcher.add_watch_dir(config.FIREWALLD_ZONES) self.watcher.add_watch_dir(config.ETC_FIREWALLD_ZONES) # Add watches for combined zone directories if os.path.exists(config.ETC_FIREWALLD_ZONES): for filename in sorted(os.listdir(config.ETC_FIREWALLD_ZONES)): path = "%s/%s" % (config.ETC_FIREWALLD_ZONES, filename) if os.path.isdir(path): self.watcher.add_watch_dir(path) self.watcher.add_watch_file(config.LOCKDOWN_WHITELIST) self.watcher.add_watch_file(config.FIREWALLD_DIRECT) self.watcher.add_watch_file(config.FIREWALLD_CONF) dbus_introspection_prepare_properties(self, config.dbus.DBUS_INTERFACE_CONFIG, { "CleanupOnExit": "readwrite", "IPv6_rpfilter": "readwrite", "Lockdown": "readwrite", "MinimalMark": "readwrite", "IndividualCalls": "readwrite", "LogDenied": "readwrite", "AutomaticHelpers": "readwrite", }) @handle_exceptions def _init_vars(self): self.ipsets = [ ] self.ipset_idx = 0 self.icmptypes = [ ] self.icmptype_idx = 0 self.services = [ ] self.service_idx = 0 self.zones = [ ] self.zone_idx = 0 self.helpers = [ ] self.helper_idx = 0 for ipset in self.config.get_ipsets(): self._addIPSet(self.config.get_ipset(ipset)) for icmptype in self.config.get_icmptypes(): self._addIcmpType(self.config.get_icmptype(icmptype)) for service in self.config.get_services(): self._addService(self.config.get_service(service)) for zone in self.config.get_zones(): self._addZone(self.config.get_zone(zone)) for helper in self.config.get_helpers(): self._addHelper(self.config.get_helper(helper)) @handle_exceptions def __del__(self): pass @handle_exceptions def reload(self): while len(self.ipsets) > 0: item = self.ipsets.pop() item.unregister() del item while len(self.icmptypes) > 0: item = self.icmptypes.pop() item.unregister() del item while len(self.services) > 0: item = self.services.pop() item.unregister() del item while len(self.zones) > 0: item = self.zones.pop() item.unregister() del item while len(self.helpers) > 0: item = self.helpers.pop() item.unregister() del item self._init_vars() @handle_exceptions def watch_updater(self, name): if name == config.FIREWALLD_CONF: old_props = self.GetAll(config.dbus.DBUS_INTERFACE_CONFIG) log.debug1("config: Reloading firewalld config file '%s'", config.FIREWALLD_CONF) try: self.config.update_firewalld_conf() except Exception as msg: log.error("Failed to load firewalld.conf file '%s': %s" % \ (name, msg)) return props = self.GetAll(config.dbus.DBUS_INTERFACE_CONFIG).copy() for key in list(props.keys()): if key in old_props and old_props[key] == props[key]: del props[key] if len(props) > 0: self.PropertiesChanged(config.dbus.DBUS_INTERFACE_CONFIG, props, []) return if (name.startswith(config.FIREWALLD_ICMPTYPES) or \ name.startswith(config.ETC_FIREWALLD_ICMPTYPES)) and \ name.endswith(".xml"): try: (what, obj) = self.config.update_icmptype_from_path(name) except Exception as msg: log.error("Failed to load icmptype file '%s': %s" % (name, msg)) return if what == "new": self._addIcmpType(obj) elif what == "remove": self.removeIcmpType(obj) elif what == "update": self._updateIcmpType(obj) elif (name.startswith(config.FIREWALLD_SERVICES) or \ name.startswith(config.ETC_FIREWALLD_SERVICES)) and \ name.endswith(".xml"): try: (what, obj) = self.config.update_service_from_path(name) except Exception as msg: log.error("Failed to load service file '%s': %s" % (name, msg)) return if what == "new": self._addService(obj) elif what == "remove": self.removeService(obj) elif what == "update": self._updateService(obj) elif name.startswith(config.FIREWALLD_ZONES) or \ name.startswith(config.ETC_FIREWALLD_ZONES): if name.endswith(".xml"): try: (what, obj) = self.config.update_zone_from_path(name) except Exception as msg: log.error("Failed to load zone file '%s': %s" % (name, msg)) return if what == "new": self._addZone(obj) elif what == "remove": self.removeZone(obj) elif what == "update": self._updateZone(obj) elif name.startswith(config.ETC_FIREWALLD_ZONES): # possible combined zone base directory _name = name.replace(config.ETC_FIREWALLD_ZONES, "").strip("/") if len(_name) < 1 or "/" in _name: # if there is a / in x, then it is a sub sub directory # ignore it return if os.path.isdir(name): if not self.watcher.has_watch(name): self.watcher.add_watch_dir(name) elif self.watcher.has_watch(name): self.watcher.remove_watch(name) elif (name.startswith(config.FIREWALLD_IPSETS) or \ name.startswith(config.ETC_FIREWALLD_IPSETS)) and \ name.endswith(".xml"): try: (what, obj) = self.config.update_ipset_from_path(name) except Exception as msg: log.error("Failed to load ipset file '%s': %s" % (name, msg)) return if what == "new": self._addIPSet(obj) elif what == "remove": self.removeIPSet(obj) elif what == "update": self._updateIPSet(obj) elif (name.startswith(config.FIREWALLD_HELPERS) or \ name.startswith(config.ETC_FIREWALLD_HELPERS)) and \ name.endswith(".xml"): try: (what, obj) = self.config.update_helper_from_path(name) except Exception as msg: log.error("Failed to load helper file '%s': %s" % (name, msg)) return if what == "new": self._addHelper(obj) elif what == "remove": self.removeHelper(obj) elif what == "update": self._updateHelper(obj) elif name == config.LOCKDOWN_WHITELIST: try: self.config.update_lockdown_whitelist() except Exception as msg: log.error("Failed to load lockdown whitelist file '%s': %s" % \ (name, msg)) return self.LockdownWhitelistUpdated() elif name == config.FIREWALLD_DIRECT: try: self.config.update_direct() except Exception as msg: log.error("Failed to load direct rules file '%s': %s" % (name, msg)) return self.Updated() @handle_exceptions def _addIcmpType(self, obj): # TODO: check for idx overflow config_icmptype = FirewallDConfigIcmpType( self, self.config, obj, self.icmptype_idx, self.busname, "%s/%d" % (config.dbus.DBUS_PATH_CONFIG_ICMPTYPE, self.icmptype_idx)) self.icmptypes.append(config_icmptype) self.icmptype_idx += 1 self.IcmpTypeAdded(obj.name) return config_icmptype @handle_exceptions def _updateIcmpType(self, obj): for icmptype in self.icmptypes: if icmptype.obj.name == obj.name and \ icmptype.obj.path == obj.path and \ icmptype.obj.filename == obj.filename: icmptype.obj = obj icmptype.Updated(obj.name) @handle_exceptions def removeIcmpType(self, obj): index = 7 # see IMPORT_EXPORT_STRUCTURE in class Zone(IO_Object) for zone in self.zones: settings = zone.getSettings() # if this IcmpType is used in a zone remove it from that zone first if obj.name in settings[index]: settings[index].remove(obj.name) zone.obj = self.config.set_zone_config(zone.obj, settings) zone.Updated(zone.obj.name) for icmptype in self.icmptypes: if icmptype.obj == obj: icmptype.Removed(obj.name) icmptype.unregister() self.icmptypes.remove(icmptype) del icmptype @handle_exceptions def _addService(self, obj): # TODO: check for idx overflow config_service = FirewallDConfigService( self, self.config, obj, self.service_idx, self.busname, "%s/%d" % (config.dbus.DBUS_PATH_CONFIG_SERVICE, self.service_idx)) self.services.append(config_service) self.service_idx += 1 self.ServiceAdded(obj.name) return config_service @handle_exceptions def _updateService(self, obj): for service in self.services: if service.obj.name == obj.name and \ service.obj.path == obj.path and \ service.obj.filename == obj.filename: service.obj = obj service.Updated(obj.name) @handle_exceptions def removeService(self, obj): index = 5 # see IMPORT_EXPORT_STRUCTURE in class Zone(IO_Object) for zone in self.zones: settings = zone.getSettings() # if this Service is used in a zone remove it from that zone first if obj.name in settings[index]: settings[index].remove(obj.name) zone.obj = self.config.set_zone_config(zone.obj, settings) zone.Updated(zone.obj.name) for service in self.services: if service.obj == obj: service.Removed(obj.name) service.unregister() self.services.remove(service) del service @handle_exceptions def _addZone(self, obj): # TODO: check for idx overflow config_zone = FirewallDConfigZone( self, self.config, obj, self.zone_idx, self.busname, "%s/%d" % (config.dbus.DBUS_PATH_CONFIG_ZONE, self.zone_idx)) self.zones.append(config_zone) self.zone_idx += 1 self.ZoneAdded(obj.name) return config_zone @handle_exceptions def _updateZone(self, obj): for zone in self.zones: if zone.obj.name == obj.name and zone.obj.path == obj.path and \ zone.obj.filename == obj.filename: zone.obj = obj zone.Updated(obj.name) @handle_exceptions def removeZone(self, obj): for zone in self.zones: if zone.obj == obj: zone.Removed(obj.name) zone.unregister() self.zones.remove(zone) del zone @handle_exceptions def _addIPSet(self, obj): # TODO: check for idx overflow config_ipset = FirewallDConfigIPSet( self, self.config, obj, self.ipset_idx, self.busname, "%s/%d" % (config.dbus.DBUS_PATH_CONFIG_IPSET, self.ipset_idx)) self.ipsets.append(config_ipset) self.ipset_idx += 1 self.IPSetAdded(obj.name) return config_ipset @handle_exceptions def _updateIPSet(self, obj): for ipset in self.ipsets: if ipset.obj.name == obj.name and ipset.obj.path == obj.path and \ ipset.obj.filename == obj.filename: ipset.obj = obj ipset.Updated(obj.name) @handle_exceptions def removeIPSet(self, obj): for ipset in self.ipsets: if ipset.obj == obj: ipset.Removed(obj.name) ipset.unregister() self.ipsets.remove(ipset) del ipset # access check @handle_exceptions def _addHelper(self, obj): # TODO: check for idx overflow config_helper = FirewallDConfigHelper( self, self.config, obj, self.helper_idx, self.busname, "%s/%d" % (config.dbus.DBUS_PATH_CONFIG_HELPER, self.helper_idx)) self.helpers.append(config_helper) self.helper_idx += 1 self.HelperAdded(obj.name) return config_helper @handle_exceptions def _updateHelper(self, obj): for helper in self.helpers: if helper.obj.name == obj.name and helper.obj.path == obj.path and \ helper.obj.filename == obj.filename: helper.obj = obj helper.Updated(obj.name) @handle_exceptions def removeHelper(self, obj): for helper in self.helpers: if helper.obj == obj: helper.Removed(obj.name) helper.unregister() self.helpers.remove(helper) del helper # access check @dbus_handle_exceptions def accessCheck(self, sender): if self.config.lockdown_enabled(): if sender is None: log.error("Lockdown not possible, sender not set.") return bus = dbus.SystemBus() context = context_of_sender(bus, sender) if self.config.access_check("context", context): return uid = uid_of_sender(bus, sender) if self.config.access_check("uid", uid): return user = user_of_uid(uid) if self.config.access_check("user", user): return command = command_of_sender(bus, sender) if self.config.access_check("command", command): return raise FirewallError(errors.ACCESS_DENIED, "lockdown is enabled") # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, prop): if prop not in [ "DefaultZone", "MinimalMark", "CleanupOnExit", "Lockdown", "IPv6_rpfilter", "IndividualCalls", "LogDenied", "AutomaticHelpers" ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % prop) value = self.config.get_firewalld_conf().get(prop) if prop == "DefaultZone": if value is None: value = config.FALLBACK_ZONE return dbus.String(value) elif prop == "MinimalMark": if value is None: value = config.FALLBACK_MINIMAL_MARK else: value = int(value) return dbus.Int32(value) elif prop == "CleanupOnExit": if value is None: value = "yes" if config.FALLBACK_CLEANUP_ON_EXIT else "no" return dbus.String(value) elif prop == "Lockdown": if value is None: value = "yes" if config.FALLBACK_LOCKDOWN else "no" return dbus.String(value) elif prop == "IPv6_rpfilter": if value is None: value = "yes" if config.FALLBACK_IPV6_RPFILTER else "no" return dbus.String(value) elif prop == "IndividualCalls": if value is None: value = "yes" if config.FALLBACK_INDIVIDUAL_CALLS else "no" return dbus.String(value) elif prop == "LogDenied": if value is None: value = config.FALLBACK_LOG_DENIED return dbus.String(value) elif prop == "AutomaticHelpers": if value is None: value = config.FALLBACK_LOG_DENIED return dbus.String(value) @dbus_handle_exceptions def _get_dbus_property(self, prop): if prop == "DefaultZone": return dbus.String(self._get_property(prop)) elif prop == "MinimalMark": return dbus.Int32(self._get_property(prop)) elif prop == "CleanupOnExit": return dbus.String(self._get_property(prop)) elif prop == "Lockdown": return dbus.String(self._get_property(prop)) elif prop == "IPv6_rpfilter": return dbus.String(self._get_property(prop)) elif prop == "IndividualCalls": return dbus.String(self._get_property(prop)) elif prop == "LogDenied": return dbus.String(self._get_property(prop)) elif prop == "AutomaticHelpers": return dbus.String(self._get_property(prop)) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % prop) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("config.Get('%s', '%s')", interface_name, property_name) if interface_name == config.dbus.DBUS_INTERFACE_CONFIG: return self._get_dbus_property(property_name) elif interface_name in [ config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, config.dbus.DBUS_INTERFACE_CONFIG_POLICIES ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_dbus_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("config.GetAll('%s')", interface_name) ret = { } if interface_name == config.dbus.DBUS_INTERFACE_CONFIG: for x in [ "DefaultZone", "MinimalMark", "CleanupOnExit", "Lockdown", "IPv6_rpfilter", "IndividualCalls", "LogDenied", "AutomaticHelpers" ]: ret[x] = self._get_property(x) elif interface_name in [ config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, config.dbus.DBUS_INTERFACE_CONFIG_POLICIES ]: pass else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("config.Set('%s', '%s', '%s')", interface_name, property_name, new_value) self.accessCheck(sender) if interface_name == config.dbus.DBUS_INTERFACE_CONFIG: if property_name in [ "MinimalMark", "CleanupOnExit", "Lockdown", "IPv6_rpfilter", "IndividualCalls", "LogDenied", "AutomaticHelpers" ]: if property_name == "MinimalMark": try: int(new_value) except ValueError: raise FirewallError(errors.INVALID_MARK, new_value) try: new_value = str(new_value) except: raise FirewallError(errors.INVALID_VALUE, "'%s' for %s" % \ (new_value, property_name)) if property_name in [ "CleanupOnExit", "Lockdown", "IPv6_rpfilter", "IndividualCalls" ]: if new_value.lower() not in [ "yes", "no", "true", "false" ]: raise FirewallError(errors.INVALID_VALUE, "'%s' for %s" % \ (new_value, property_name)) if property_name == "LogDenied": if new_value not in config.LOG_DENIED_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s' for %s" % \ (new_value, property_name)) if property_name == "AutomaticHelpers": if new_value not in config.AUTOMATIC_HELPERS_VALUES: raise FirewallError(errors.INVALID_VALUE, "'%s' for %s" % \ (new_value, property_name)) self.config.get_firewalld_conf().set(property_name, new_value) self.config.get_firewalld_conf().write() self.PropertiesChanged(interface_name, { property_name: new_value }, [ ]) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) elif interface_name in [ config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, config.dbus.DBUS_INTERFACE_CONFIG_POLICIES ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("config.PropertiesChanged('%s', '%s', '%s')", interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("config.Introspect()") data = super(FirewallDConfig, self).Introspect(self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # policies @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, out_signature=LockdownWhitelist.DBUS_SIGNATURE) @dbus_handle_exceptions def getLockdownWhitelist(self, sender=None): # pylint: disable=W0613 log.debug1("config.policies.getLockdownWhitelist()") return self.config.get_policies().lockdown_whitelist.export_config() @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature=LockdownWhitelist.DBUS_SIGNATURE) @dbus_handle_exceptions def setLockdownWhitelist(self, settings, sender=None): # pylint: disable=W0613 log.debug1("config.policies.setLockdownWhitelist(...)") settings = dbus_to_python(settings) self.config.get_policies().lockdown_whitelist.import_config(settings) self.config.get_policies().lockdown_whitelist.write() self.LockdownWhitelistUpdated() @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES) @dbus_handle_exceptions def LockdownWhitelistUpdated(self): log.debug1("config.policies.LockdownWhitelistUpdated()") # command @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def addLockdownWhitelistCommand(self, command, sender=None): command = dbus_to_python(command) log.debug1("config.policies.addLockdownWhitelistCommand('%s')", command) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if command in settings[0]: raise FirewallError(errors.ALREADY_ENABLED, command) settings[0].append(command) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def removeLockdownWhitelistCommand(self, command, sender=None): command = dbus_to_python(command) log.debug1("config.policies.removeLockdownWhitelistCommand('%s')", command) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if command not in settings[0]: raise FirewallError(errors.NOT_ENABLED, command) settings[0].remove(command) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistCommand(self, command, sender=None): # pylint: disable=W0613 command = dbus_to_python(command) log.debug1("config.policies.queryLockdownWhitelistCommand('%s')", command) return command in self.getLockdownWhitelist()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistCommands(self, sender=None): # pylint: disable=W0613 log.debug1("config.policies.getLockdownWhitelistCommands()") return self.getLockdownWhitelist()[0] # context @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def addLockdownWhitelistContext(self, context, sender=None): context = dbus_to_python(context) log.debug1("config.policies.addLockdownWhitelistContext('%s')", context) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if context in settings[1]: raise FirewallError(errors.ALREADY_ENABLED, context) settings[1].append(context) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def removeLockdownWhitelistContext(self, context, sender=None): context = dbus_to_python(context) log.debug1("config.policies.removeLockdownWhitelistContext('%s')", context) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if context not in settings[1]: raise FirewallError(errors.NOT_ENABLED, context) settings[1].remove(context) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistContext(self, context, sender=None): # pylint: disable=W0613 context = dbus_to_python(context) log.debug1("config.policies.queryLockdownWhitelistContext('%s')", context) return context in self.getLockdownWhitelist()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistContexts(self, sender=None): # pylint: disable=W0613 log.debug1("config.policies.getLockdownWhitelistContexts()") return self.getLockdownWhitelist()[1] # user @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def addLockdownWhitelistUser(self, user, sender=None): user = dbus_to_python(user) log.debug1("config.policies.addLockdownWhitelistUser('%s')", user) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if user in settings[2]: raise FirewallError(errors.ALREADY_ENABLED, user) settings[2].append(user) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s') @dbus_handle_exceptions def removeLockdownWhitelistUser(self, user, sender=None): user = dbus_to_python(user) log.debug1("config.policies.removeLockdownWhitelistUser('%s')", user) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if user not in settings[2]: raise FirewallError(errors.NOT_ENABLED, user) settings[2].remove(user) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistUser(self, user, sender=None): # pylint: disable=W0613 user = dbus_to_python(user) log.debug1("config.policies.queryLockdownWhitelistUser('%s')", user) return user in self.getLockdownWhitelist()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistUsers(self, sender=None): # pylint: disable=W0613 log.debug1("config.policies.getLockdownWhitelistUsers()") return self.getLockdownWhitelist()[2] # uid @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='i') @dbus_handle_exceptions def addLockdownWhitelistUid(self, uid, sender=None): uid = dbus_to_python(uid) log.debug1("config.policies.addLockdownWhitelistUid(%d)", uid) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if uid in settings[3]: raise FirewallError(errors.ALREADY_ENABLED, uid) settings[3].append(uid) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='i') @dbus_handle_exceptions def removeLockdownWhitelistUid(self, uid, sender=None): uid = dbus_to_python(uid) log.debug1("config.policies.removeLockdownWhitelistUid(%d)", uid) self.accessCheck(sender) settings = list(self.getLockdownWhitelist()) if uid not in settings[3]: raise FirewallError(errors.NOT_ENABLED, uid) settings[3].remove(uid) self.setLockdownWhitelist(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, in_signature='i', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistUid(self, uid, sender=None): # pylint: disable=W0613 uid = dbus_to_python(uid) log.debug1("config.policies.queryLockdownWhitelistUid(%d)", uid) return uid in self.getLockdownWhitelist()[3] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_POLICIES, out_signature='ai') @dbus_handle_exceptions def getLockdownWhitelistUids(self, sender=None): # pylint: disable=W0613 log.debug1("config.policies.getLockdownWhitelistUids()") return self.getLockdownWhitelist()[3] # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # I P S E T S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='ao') @dbus_handle_exceptions def listIPSets(self, sender=None): # pylint: disable=W0613 """list ipsets objects paths """ log.debug1("config.listIPSets()") return self.ipsets @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='as') @dbus_handle_exceptions def getIPSetNames(self, sender=None): # pylint: disable=W0613 """get ipset names """ log.debug1("config.getIPSetNames()") ipsets = [ ] for obj in self.ipsets: ipsets.append(obj.obj.name) return sorted(ipsets) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='o') @dbus_handle_exceptions def getIPSetByName(self, ipset, sender=None): # pylint: disable=W0613 """object path of ipset with given name """ ipset = dbus_to_python(ipset, str) log.debug1("config.getIPSetByName('%s')", ipset) for obj in self.ipsets: if obj.obj.name == ipset: return obj raise FirewallError(errors.INVALID_IPSET, ipset) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s'+IPSet.DBUS_SIGNATURE, out_signature='o') @dbus_handle_exceptions def addIPSet(self, ipset, settings, sender=None): """add ipset with given name and settings """ ipset = dbus_to_python(ipset, str) settings = dbus_to_python(settings) log.debug1("config.addIPSet('%s')", ipset) self.accessCheck(sender) obj = self.config.new_ipset(ipset, settings) config_ipset = self._addIPSet(obj) return config_ipset @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG, signature='s') @dbus_handle_exceptions def IPSetAdded(self, ipset): ipset = dbus_to_python(ipset, str) log.debug1("config.IPSetAdded('%s')" % (ipset)) # I C M P T Y P E S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='ao') @dbus_handle_exceptions def listIcmpTypes(self, sender=None): # pylint: disable=W0613 """list icmptypes objects paths """ log.debug1("config.listIcmpTypes()") return self.icmptypes @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='as') @dbus_handle_exceptions def getIcmpTypeNames(self, sender=None): # pylint: disable=W0613 """get icmptype names """ log.debug1("config.getIcmpTypeNames()") icmptypes = [ ] for obj in self.icmptypes: icmptypes.append(obj.obj.name) return sorted(icmptypes) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='o') @dbus_handle_exceptions def getIcmpTypeByName(self, icmptype, sender=None): # pylint: disable=W0613 """object path of icmptype with given name """ icmptype = dbus_to_python(icmptype, str) log.debug1("config.getIcmpTypeByName('%s')", icmptype) for obj in self.icmptypes: if obj.obj.name == icmptype: return obj raise FirewallError(errors.INVALID_ICMPTYPE, icmptype) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s'+IcmpType.DBUS_SIGNATURE, out_signature='o') @dbus_handle_exceptions def addIcmpType(self, icmptype, settings, sender=None): """add icmptype with given name and settings """ icmptype = dbus_to_python(icmptype, str) settings = dbus_to_python(settings) log.debug1("config.addIcmpType('%s')", icmptype) self.accessCheck(sender) obj = self.config.new_icmptype(icmptype, settings) config_icmptype = self._addIcmpType(obj) return config_icmptype @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG, signature='s') @dbus_handle_exceptions def IcmpTypeAdded(self, icmptype): log.debug1("config.IcmpTypeAdded('%s')" % (icmptype)) # S E R V I C E S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='ao') @dbus_handle_exceptions def listServices(self, sender=None): # pylint: disable=W0613 """list services objects paths """ log.debug1("config.listServices()") return self.services @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='as') @dbus_handle_exceptions def getServiceNames(self, sender=None): # pylint: disable=W0613 """get service names """ log.debug1("config.getServiceNames()") services = [ ] for obj in self.services: services.append(obj.obj.name) return sorted(services) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='o') @dbus_handle_exceptions def getServiceByName(self, service, sender=None): # pylint: disable=W0613 """object path of service with given name """ service = dbus_to_python(service, str) log.debug1("config.getServiceByName('%s')", service) for obj in self.services: if obj.obj.name == service: return obj raise FirewallError(errors.INVALID_SERVICE, service) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s'+Service.DBUS_SIGNATURE, out_signature='o') @dbus_handle_exceptions def addService(self, service, settings, sender=None): """add service with given name and settings """ service = dbus_to_python(service, str) settings = dbus_to_python(settings) log.debug1("config.addService('%s')", service) self.accessCheck(sender) obj = self.config.new_service(service, settings) config_service = self._addService(obj) return config_service @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG, signature='s') @dbus_handle_exceptions def ServiceAdded(self, service): log.debug1("config.ServiceAdded('%s')" % (service)) # Z O N E S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='ao') @dbus_handle_exceptions def listZones(self, sender=None): # pylint: disable=W0613 """list zones objects paths """ log.debug1("config.listZones()") return self.zones @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='as') @dbus_handle_exceptions def getZoneNames(self, sender=None): # pylint: disable=W0613 """get zone names """ log.debug1("config.getZoneNames()") zones = [ ] for obj in self.zones: zones.append(obj.obj.name) return sorted(zones) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='o') @dbus_handle_exceptions def getZoneByName(self, zone, sender=None): # pylint: disable=W0613 """object path of zone with given name """ zone = dbus_to_python(zone, str) log.debug1("config.getZoneByName('%s')", zone) for obj in self.zones: if obj.obj.name == zone: return obj raise FirewallError(errors.INVALID_ZONE, zone) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='s') @dbus_handle_exceptions def getZoneOfInterface(self, iface, sender=None): # pylint: disable=W0613 """name of zone the given interface belongs to """ iface = dbus_to_python(iface, str) log.debug1("config.getZoneOfInterface('%s')", iface) ret = [] for obj in self.zones: if iface in obj.obj.interfaces: ret.append(obj.obj.name) if len(ret) > 1: # Even it shouldn't happen, it's actually possible that # the same interface is in several zone XML files return " ".join(ret) + \ " (ERROR: interface '%s' is in %s zone XML files, can be only in one)" % \ (iface, len(ret)) return ret[0] if ret else "" @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='s') @dbus_handle_exceptions def getZoneOfSource(self, source, sender=None): # pylint: disable=W0613 """name of zone the given source belongs to """ source = dbus_to_python(source, str) log.debug1("config.getZoneOfSource('%s')", source) ret = [] for obj in self.zones: if source in obj.obj.sources: ret.append(obj.obj.name) if len(ret) > 1: # Even it shouldn't happen, it's actually possible that # the same source is in several zone XML files return " ".join(ret) + \ " (ERROR: source '%s' is in %s zone XML files, can be only in one)" % \ (source, len(ret)) return ret[0] if ret else "" @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s'+Zone.DBUS_SIGNATURE, out_signature='o') @dbus_handle_exceptions def addZone(self, zone, settings, sender=None): """add zone with given name and settings """ zone = dbus_to_python(zone, str) settings = dbus_to_python(settings) log.debug1("config.addZone('%s')", zone) self.accessCheck(sender) if settings[4] == "default": # convert to list, fix target, convert back to tuple _settings = list(settings) _settings[4] = DEFAULT_ZONE_TARGET settings = tuple(_settings) obj = self.config.new_zone(zone, settings) config_zone = self._addZone(obj) return config_zone @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG, signature='s') @dbus_handle_exceptions def ZoneAdded(self, zone): log.debug1("config.ZoneAdded('%s')" % (zone)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # H E L P E R S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='ao') @dbus_handle_exceptions def listHelpers(self, sender=None): # pylint: disable=W0613 """list helpers objects paths """ log.debug1("config.listHelpers()") return self.helpers @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, out_signature='as') @dbus_handle_exceptions def getHelperNames(self, sender=None): # pylint: disable=W0613 """get helper names """ log.debug1("config.getHelperNames()") helpers = [ ] for obj in self.helpers: helpers.append(obj.obj.name) return sorted(helpers) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s', out_signature='o') @dbus_handle_exceptions def getHelperByName(self, helper, sender=None): # pylint: disable=W0613 """object path of helper with given name """ helper = dbus_to_python(helper, str) log.debug1("config.getHelperByName('%s')", helper) for obj in self.helpers: if obj.obj.name == helper: return obj raise FirewallError(errors.INVALID_HELPER, helper) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG, in_signature='s'+Helper.DBUS_SIGNATURE, out_signature='o') @dbus_handle_exceptions def addHelper(self, helper, settings, sender=None): """add helper with given name and settings """ helper = dbus_to_python(helper, str) settings = dbus_to_python(settings) log.debug1("config.addHelper('%s')", helper) self.accessCheck(sender) obj = self.config.new_helper(helper, settings) config_helper = self._addHelper(obj) return config_helper @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG, signature='s') @dbus_handle_exceptions def HelperAdded(self, helper): helper = dbus_to_python(helper, str) log.debug1("config.HelperAdded('%s')" % (helper)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DIRECT @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, out_signature=Direct.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 # returns list ipv, table, list of chains log.debug1("config.direct.getSettings()") return self.config.get_direct().export_config() @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature=Direct.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): # pylint: disable=W0613 # returns list ipv, table, list of chains log.debug1("config.direct.update()") settings = dbus_to_python(settings) self.config.get_direct().import_config(settings) self.config.get_direct().write() self.Updated() @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT) @dbus_handle_exceptions def Updated(self): log.debug1("config.direct.Updated()") # chain @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sss') @dbus_handle_exceptions def addChain(self, ipv, table, chain, sender=None): ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) log.debug1("config.direct.addChain('%s', '%s', '%s')" % \ (ipv, table, chain)) self.accessCheck(sender) idx = tuple((ipv, table, chain)) settings = list(self.getSettings()) if idx in settings[0]: raise FirewallError(errors.ALREADY_ENABLED, "chain '%s' already is in '%s:%s'" % \ (chain, ipv, table)) settings[0].append(idx) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sss') @dbus_handle_exceptions def removeChain(self, ipv, table, chain, sender=None): ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) log.debug1("config.direct.removeChain('%s', '%s', '%s')" % \ (ipv, table, chain)) self.accessCheck(sender) idx = tuple((ipv, table, chain)) settings = list(self.getSettings()) if idx not in settings[0]: raise FirewallError(errors.NOT_ENABLED, "chain '%s' is not in '%s:%s'" % (chain, ipv, table)) settings[0].remove(idx) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sss', out_signature='b') @dbus_handle_exceptions def queryChain(self, ipv, table, chain, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) log.debug1("config.direct.queryChain('%s', '%s', '%s')" % \ (ipv, table, chain)) idx = tuple((ipv, table, chain)) return idx in self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='ss', out_signature='as') @dbus_handle_exceptions def getChains(self, ipv, table, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv) table = dbus_to_python(table) log.debug1("config.direct.getChains('%s', '%s')" % (ipv, table)) ret = [ ] for idx in self.getSettings()[0]: if idx[0] == ipv and idx[1] == table: ret.append(idx[2]) return ret @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='', out_signature='a(sss)') @dbus_handle_exceptions def getAllChains(self, sender=None): # pylint: disable=W0613 log.debug1("config.direct.getAllChains()") return self.getSettings()[0] # rule @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sssias') @dbus_handle_exceptions def addRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=R0913 ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) priority = dbus_to_python(priority) args = dbus_to_python(args) log.debug1("config.direct.addRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) self.accessCheck(sender) idx = (ipv, table, chain, priority, args) settings = list(self.getSettings()) if idx in settings[1]: raise FirewallError(errors.ALREADY_ENABLED, "rule '%s' already is in '%s:%s:%s'" % \ (args, ipv, table, chain)) settings[1].append(idx) self.update(tuple(settings)) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sssias') @dbus_handle_exceptions def removeRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=R0913 ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) priority = dbus_to_python(priority) args = dbus_to_python(args) log.debug1("config.direct.removeRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) self.accessCheck(sender) idx = (ipv, table, chain, priority, args) settings = list(self.getSettings()) if idx not in settings[1]: raise FirewallError(errors.NOT_ENABLED, "rule '%s' is not in '%s:%s:%s'" % \ (args, ipv, table, chain)) settings[1].remove(idx) self.update(tuple(settings)) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sssias', out_signature='b') @dbus_handle_exceptions def queryRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=W0613,R0913 ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) priority = dbus_to_python(priority) args = dbus_to_python(args) log.debug1("config.direct.queryRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) idx = (ipv, table, chain, priority, args) return idx in self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sss') @dbus_handle_exceptions def removeRules(self, ipv, table, chain, sender=None): ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) log.debug1("config.direct.removeRules('%s', '%s', '%s')" % \ (ipv, table, chain, )) self.accessCheck(sender) settings = list(self.getSettings()) settings[1] = [] self.update(tuple(settings)) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sss', out_signature='a(ias)') @dbus_handle_exceptions def getRules(self, ipv, table, chain, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv) table = dbus_to_python(table) chain = dbus_to_python(chain) log.debug1("config.direct.getRules('%s', '%s', '%s')" % \ (ipv, table, chain)) ret = [ ] for idx in self.getSettings()[1]: if idx[0] == ipv and idx[1] == table and idx[2] == chain: ret.append((idx[3], idx[4])) return ret @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='', out_signature='a(sssias)') @dbus_handle_exceptions def getAllRules(self, sender=None): # pylint: disable=W0613 log.debug1("config.direct.getAllRules()") return self.getSettings()[1] # passthrough @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sas') @dbus_handle_exceptions def addPassthrough(self, ipv, args, sender=None): ipv = dbus_to_python(ipv) args = dbus_to_python(args) log.debug1("config.direct.addPassthrough('%s', '%s')" % \ (ipv, "','".join(args))) self.accessCheck(sender) idx = (ipv, args) settings = list(self.getSettings()) if idx in settings[2]: raise FirewallError(errors.ALREADY_ENABLED, "passthrough '%s', '%s'" % (ipv, args)) settings[2].append(idx) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sas') @dbus_handle_exceptions def removePassthrough(self, ipv, args, sender=None): ipv = dbus_to_python(ipv) args = dbus_to_python(args) log.debug1("config.direct.removePassthrough('%s', '%s')" % \ (ipv, "','".join(args))) self.accessCheck(sender) idx = (ipv, args) settings = list(self.getSettings()) if idx not in settings[2]: raise FirewallError(errors.NOT_ENABLED, "passthrough '%s', '%s'" % (ipv, args)) settings[2].remove(idx) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='sas', out_signature='b') @dbus_handle_exceptions def queryPassthrough(self, ipv, args, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv) args = dbus_to_python(args) log.debug1("config.direct.queryPassthrough('%s', '%s')" % \ (ipv, "','".join(args))) idx = (ipv, args) return idx in self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, in_signature='s', out_signature='aas') @dbus_handle_exceptions def getPassthroughs(self, ipv, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv) log.debug1("config.direct.getPassthroughs('%s')" % (ipv)) ret = [ ] for idx in self.getSettings()[2]: if idx[0] == ipv: ret.append(idx[1]) return ret @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_DIRECT, out_signature='a(sas)') @dbus_handle_exceptions def getAllPassthroughs(self, sender=None): # pylint: disable=W0613 log.debug1("config.direct.getAllPassthroughs()") return self.getSettings()[2] firewalld-0.4.4.6/src/firewall/server/config_helper.py000066400000000000000000000422121320241217000227050ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.dbus_utils import dbus_to_python, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.helper import Helper from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfig # ############################################################################ class FirewallDConfigHelper(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, parent, conf, helper, item_id, *args, **kwargs): super(FirewallDConfigHelper, self).__init__(*args, **kwargs) self.parent = parent self.config = conf self.obj = helper self.item_id = item_id self.busname = args[0] self.path = args[1] self._log_prefix = "config.helper.%d" % self.item_id dbus_introspection_prepare_properties( self, config.dbus.DBUS_INTERFACE_CONFIG_HELPER) @dbus_handle_exceptions def __del__(self): pass @dbus_handle_exceptions def unregister(self): self.remove_from_connection() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, property_name): if property_name == "name": return dbus.String(self.obj.name) elif property_name == "filename": return dbus.String(self.obj.filename) elif property_name == "path": return dbus.String(self.obj.path) elif property_name == "default": return dbus.Boolean(self.obj.default) elif property_name == "builtin": return dbus.Boolean(self.obj.builtin) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("%s.Get('%s', '%s')", self._log_prefix, interface_name, property_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_HELPER: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_HELPER: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) ret = { } for x in [ "name", "filename", "path", "default", "builtin" ]: ret[x] = self._get_property(x) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix, interface_name, property_name, new_value) self.parent.accessCheck(sender) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_HELPER: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix, interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("%s.Introspect()", self._log_prefix) data = super(FirewallDConfigHelper, self).Introspect( self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG_HELPER) # S E T T I N G S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature=Helper.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 """get settings for helper """ log.debug1("%s.getSettings()", self._log_prefix) return self.config.get_helper_config(self.obj) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature=Helper.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): """update settings for helper """ settings = dbus_to_python(settings) log.debug1("%s.update('...')", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.set_helper_config(self.obj, settings) self.Updated(self.obj.name) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER) @dbus_handle_exceptions def loadDefaults(self, sender=None): """load default settings for builtin helper """ log.debug1("%s.loadDefaults()", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.load_helper_defaults(self.obj) self.Updated(self.obj.name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, signature='s') @dbus_handle_exceptions def Updated(self, name): log.debug1("%s.Updated('%s')" % (self._log_prefix, name)) # R E M O V E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER) @dbus_handle_exceptions def remove(self, sender=None): """remove helper """ log.debug1("%s.removeHelper()", self._log_prefix) self.parent.accessCheck(sender) self.config.remove_helper(self.obj) self.parent.removeHelper(self.obj) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, signature='s') @dbus_handle_exceptions def Removed(self, name): log.debug1("%s.Removed('%s')" % (self._log_prefix, name)) # R E N A M E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def rename(self, name, sender=None): """rename helper """ name = dbus_to_python(name, str) log.debug1("%s.rename('%s')", self._log_prefix, name) self.parent.accessCheck(sender) self.obj = self.config.rename_helper(self.obj, name) self.Renamed(name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, signature='s') @dbus_handle_exceptions def Renamed(self, name): log.debug1("%s.Renamed('%s')" % (self._log_prefix, name)) # version @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='s') @dbus_handle_exceptions def getVersion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getVersion()", self._log_prefix) return self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def setVersion(self, version, sender=None): version = dbus_to_python(version, str) log.debug1("%s.setVersion('%s')", self._log_prefix, version) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[0] = version self.update(settings) # short @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='s') @dbus_handle_exceptions def getShort(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getShort()", self._log_prefix) return self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def setShort(self, short, sender=None): short = dbus_to_python(short, str) log.debug1("%s.setShort('%s')", self._log_prefix, short) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[1] = short self.update(settings) # description @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='s') @dbus_handle_exceptions def getDescription(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDescription()", self._log_prefix) return self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def setDescription(self, description, sender=None): description = dbus_to_python(description, str) log.debug1("%s.setDescription('%s')", self._log_prefix, description) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[2] = description self.update(settings) # family @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='s') @dbus_handle_exceptions def getFamily(self, sender=None): log.debug1("%s.getFamily()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) return settings[3] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def setFamily(self, ipv, sender=None): ipv = dbus_to_python(ipv, str) log.debug1("%s.setFamily('%s')", self._log_prefix, ipv) self.parent.accessCheck(sender) settings = list(self.getSettings()) if settings[3] == ipv: raise FirewallError(errors.ALREADY_ENABLED, "'%s'" % ipv) settings[3] = ipv self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryFamily(self, ipv, sender=None): # pylint: disable=W0613 ipv = dbus_to_python(ipv, str) log.debug1("%s.queryFamily('%s')", self._log_prefix, ipv) settings = self.getSettings() return (settings[3] == ipv) # module @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='s') @dbus_handle_exceptions def getModule(self, sender=None): log.debug1("%s.getModule()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) return settings[4] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s') @dbus_handle_exceptions def setModule(self, module, sender=None): module = dbus_to_python(module, str) log.debug1("%s.setModule('%s')", self._log_prefix, module) self.parent.accessCheck(sender) settings = list(self.getSettings()) if settings[4] == module: raise FirewallError(errors.ALREADY_ENABLED, "'%s'" % module) settings[4] = module self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryModule(self, module, sender=None): # pylint: disable=W0613 module = dbus_to_python(module, str) log.debug1("%s.queryModule('%s')", self._log_prefix, module) settings = self.getSettings() return (settings[4] == module) # port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, out_signature='a(ss)') @dbus_handle_exceptions def getPorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getPorts()", self._log_prefix) return self.getSettings()[5] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='a(ss)') @dbus_handle_exceptions def setPorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setPorts('[%s]')", self._log_prefix, ",".join("('%s, '%s')" % (port[0], port[1]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[5] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='ss') @dbus_handle_exceptions def addPort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.addPort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) in settings[5]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s" % (port, protocol)) settings[5].append((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='ss') @dbus_handle_exceptions def removePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.removePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) not in settings[5]: raise FirewallError(errors.NOT_ENABLED, "%s:%s" % (port, protocol)) settings[5].remove((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_HELPER, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryPort(self, port, protocol, sender=None): # pylint: disable=W0613 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.queryPort('%s', '%s')", self._log_prefix, port, protocol) return (port,protocol) in self.getSettings()[5] firewalld-0.4.4.6/src/firewall/server/config_icmptype.py000066400000000000000000000351231320241217000232630ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.dbus_utils import dbus_to_python, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.icmptype import IcmpType from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfigIcmpType # ############################################################################ class FirewallDConfigIcmpType(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, parent, conf, icmptype, item_id, *args, **kwargs): super(FirewallDConfigIcmpType, self).__init__(*args, **kwargs) self.parent = parent self.config = conf self.obj = icmptype self.item_id = item_id self.busname = args[0] self.path = args[1] self._log_prefix = "config.icmptype.%d" % self.item_id dbus_introspection_prepare_properties( self, config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE) @dbus_handle_exceptions def __del__(self): pass @dbus_handle_exceptions def unregister(self): self.remove_from_connection() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, property_name): if property_name == "name": return dbus.String(self.obj.name) elif property_name == "filename": return dbus.String(self.obj.filename) elif property_name == "path": return dbus.String(self.obj.path) elif property_name == "default": return dbus.Boolean(self.obj.default) elif property_name == "builtin": return dbus.Boolean(self.obj.builtin) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("%s.Get('%s', '%s')", self._log_prefix, interface_name, property_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) ret = { } for x in [ "name", "filename", "path", "default", "builtin" ]: ret[x] = self._get_property(x) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix, interface_name, property_name, new_value) self.parent.accessCheck(sender) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix, interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("%s.Introspect()", self._log_prefix) data = super(FirewallDConfigIcmpType, self).Introspect( self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE) # S E T T I N G S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, out_signature=IcmpType.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 """get settings for icmptype """ log.debug1("%s.getSettings()", self._log_prefix) return self.config.get_icmptype_config(self.obj) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature=IcmpType.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): """update settings for icmptype """ settings = dbus_to_python(settings) log.debug1("%s.update('...')", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.set_icmptype_config(self.obj, settings) self.Updated(self.obj.name) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE) @dbus_handle_exceptions def loadDefaults(self, sender=None): """load default settings for builtin icmptype """ log.debug1("%s.loadDefaults()", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.load_icmptype_defaults(self.obj) self.Updated(self.obj.name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, signature='s') @dbus_handle_exceptions def Updated(self, name): log.debug1("%s.Updated('%s')" % (self._log_prefix, name)) # R E M O V E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE) @dbus_handle_exceptions def remove(self, sender=None): """remove icmptype """ log.debug1("%s.removeIcmpType()", self._log_prefix) self.parent.accessCheck(sender) self.config.remove_icmptype(self.obj) self.parent.removeIcmpType(self.obj) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, signature='s') @dbus_handle_exceptions def Removed(self, name): log.debug1("%s.Removed('%s')" % (self._log_prefix, name)) # R E N A M E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def rename(self, name, sender=None): """rename icmptype """ name = dbus_to_python(name, str) log.debug1("%s.rename('%s')", self._log_prefix, name) self.parent.accessCheck(sender) self.obj = self.config.rename_icmptype(self.obj, name) self.Renamed(name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, signature='s') @dbus_handle_exceptions def Renamed(self, name): log.debug1("%s.Renamed('%s')" % (self._log_prefix, name)) # version @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, out_signature='s') @dbus_handle_exceptions def getVersion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getVersion()", self._log_prefix) return self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def setVersion(self, version, sender=None): version = dbus_to_python(version, str) log.debug1("%s.setVersion('%s')", self._log_prefix, version) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[0] = version self.update(settings) # short @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, out_signature='s') @dbus_handle_exceptions def getShort(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getShort()", self._log_prefix) return self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def setShort(self, short, sender=None): short = dbus_to_python(short, str) log.debug1("%s.setShort('%s')", self._log_prefix, short) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[1] = short self.update(settings) # description @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, out_signature='s') @dbus_handle_exceptions def getDescription(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDescription()", self._log_prefix) return self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def setDescription(self, description, sender=None): description = dbus_to_python(description, str) log.debug1("%s.setDescription('%s')", self._log_prefix, description) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[2] = description self.update(settings) # destination @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, out_signature='as') @dbus_handle_exceptions def getDestinations(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDestinations()", self._log_prefix) return sorted(self.getSettings()[3]) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='as') @dbus_handle_exceptions def setDestinations(self, destinations, sender=None): destinations = dbus_to_python(destinations, list) log.debug1("%s.setDestinations('[%s]')", self._log_prefix, ",".join(destinations)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[3] = destinations self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def addDestination(self, destination, sender=None): destination = dbus_to_python(destination, str) log.debug1("%s.addDestination('%s')", self._log_prefix, destination) self.parent.accessCheck(sender) settings = list(self.getSettings()) if destination in settings[3]: raise FirewallError(errors.ALREADY_ENABLED, destination) settings[3].append(destination) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s') @dbus_handle_exceptions def removeDestination(self, destination, sender=None): destination = dbus_to_python(destination, str) log.debug1("%s.removeDestination('%s')", self._log_prefix, destination) self.parent.accessCheck(sender) settings = list(self.getSettings()) if settings[3]: if destination not in settings[3]: raise FirewallError(errors.NOT_ENABLED, destination) else: settings[3].remove(destination) else: # empty means all settings[3] = list(set(['ipv4', 'ipv6']) - set([destination])) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ICMPTYPE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryDestination(self, destination, sender=None): # pylint: disable=W0613 destination = dbus_to_python(destination, str) log.debug1("%s.queryDestination('%s')", self._log_prefix, destination) settings = self.getSettings() # empty means all return (not settings[3] or destination in settings[3]) firewalld-0.4.4.6/src/firewall/server/config_ipset.py000066400000000000000000000437611320241217000225640ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2015-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.dbus_utils import dbus_to_python, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.ipset import IPSet from firewall.core.ipset import IPSET_TYPES from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfigIPSet # ############################################################################ class FirewallDConfigIPSet(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, parent, conf, ipset, item_id, *args, **kwargs): super(FirewallDConfigIPSet, self).__init__(*args, **kwargs) self.parent = parent self.config = conf self.obj = ipset self.item_id = item_id self.busname = args[0] self.path = args[1] self._log_prefix = "config.ipset.%d" % self.item_id dbus_introspection_prepare_properties( self, config.dbus.DBUS_INTERFACE_CONFIG_IPSET) @dbus_handle_exceptions def __del__(self): pass @dbus_handle_exceptions def unregister(self): self.remove_from_connection() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, property_name): if property_name == "name": return dbus.String(self.obj.name) elif property_name == "filename": return dbus.String(self.obj.filename) elif property_name == "path": return dbus.String(self.obj.path) elif property_name == "default": return dbus.Boolean(self.obj.default) elif property_name == "builtin": return dbus.Boolean(self.obj.builtin) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("%s.Get('%s', '%s')", self._log_prefix, interface_name, property_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_IPSET: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_IPSET: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) ret = { } for x in [ "name", "filename", "path", "default", "builtin" ]: ret[x] = self._get_property(x) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix, interface_name, property_name, new_value) self.parent.accessCheck(sender) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_IPSET: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix, interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("%s.Introspect()", self._log_prefix) data = super(FirewallDConfigIPSet, self).Introspect( self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG_IPSET) # S E T T I N G S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature=IPSet.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 """get settings for ipset """ log.debug1("%s.getSettings()", self._log_prefix) return self.config.get_ipset_config(self.obj) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature=IPSet.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): """update settings for ipset """ settings = dbus_to_python(settings) log.debug1("%s.update('...')", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.set_ipset_config(self.obj, settings) self.Updated(self.obj.name) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET) @dbus_handle_exceptions def loadDefaults(self, sender=None): """load default settings for builtin ipset """ log.debug1("%s.loadDefaults()", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.load_ipset_defaults(self.obj) self.Updated(self.obj.name) #self.PropertiesChanged(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, # { "default": True }, [ ]) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, signature='s') @dbus_handle_exceptions def Updated(self, name): log.debug1("%s.Updated('%s')" % (self._log_prefix, name)) # R E M O V E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET) @dbus_handle_exceptions def remove(self, sender=None): """remove ipset """ log.debug1("%s.remove()", self._log_prefix) self.parent.accessCheck(sender) self.config.remove_ipset(self.obj) self.parent.removeIPSet(self.obj) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, signature='s') @dbus_handle_exceptions def Removed(self, name): log.debug1("%s.Removed('%s')" % (self._log_prefix, name)) # R E N A M E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def rename(self, name, sender=None): """rename ipset """ name = dbus_to_python(name, str) log.debug1("%s.rename('%s')", self._log_prefix, name) self.parent.accessCheck(sender) self.obj = self.config.rename_ipset(self.obj, name) self.Renamed(name) #self.PropertiesChanged(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, # { "name": name }, [ ]) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, signature='s') @dbus_handle_exceptions def Renamed(self, name): log.debug1("%s.Renamed('%s')" % (self._log_prefix, name)) # version @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='s') @dbus_handle_exceptions def getVersion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getVersion()", self._log_prefix) return self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def setVersion(self, version, sender=None): version = dbus_to_python(version, str) log.debug1("%s.setVersion('%s')", self._log_prefix, version) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[0] = version self.update(settings) # short @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='s') @dbus_handle_exceptions def getShort(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getShort()", self._log_prefix) return self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def setShort(self, short, sender=None): short = dbus_to_python(short, str) log.debug1("%s.setShort('%s')", self._log_prefix, short) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[1] = short self.update(settings) # description @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='s') @dbus_handle_exceptions def getDescription(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDescription()", self._log_prefix) return self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def setDescription(self, description, sender=None): description = dbus_to_python(description, str) log.debug1("%s.setDescription('%s')", self._log_prefix, description) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[2] = description self.update(settings) # type @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='s') @dbus_handle_exceptions def getType(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getType()", self._log_prefix) return self.getSettings()[3] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def setType(self, ipset_type, sender=None): ipset_type = dbus_to_python(ipset_type, str) log.debug1("%s.setType('%s')", self._log_prefix, ipset_type) self.parent.accessCheck(sender) if ipset_type not in IPSET_TYPES: raise FirewallError(errors.INVALID_TYPE, ipset_type) settings = list(self.getSettings()) settings[3] = ipset_type self.update(settings) # options @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='a{ss}') @dbus_handle_exceptions def getOptions(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getOptions()", self._log_prefix) return self.getSettings()[4] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='a{ss}') @dbus_handle_exceptions def setOptions(self, options, sender=None): options = dbus_to_python(options, dict) log.debug1("%s.setOptions('[%s]')", self._log_prefix, repr(options)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[4] = options self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='ss') @dbus_handle_exceptions def addOption(self, key, value, sender=None): key = dbus_to_python(key, str) value = dbus_to_python(value, str) log.debug1("%s.addOption('%s', '%s')", self._log_prefix, key, value) self.parent.accessCheck(sender) settings = list(self.getSettings()) if key in settings[4] and settings[4][key] == value: raise FirewallError(errors.ALREADY_ENABLED, "'%s': '%s'" % (key, value)) settings[4][key] = value self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def removeOption(self, key, sender=None): key = dbus_to_python(key, str) log.debug1("%s.removeOption('%s')", self._log_prefix, key) self.parent.accessCheck(sender) settings = list(self.getSettings()) if key not in settings[4]: raise FirewallError(errors.NOT_ENABLED, key) del settings[4][key] self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryOption(self, key, value, sender=None): # pylint: disable=W0613 key = dbus_to_python(key, str) value = dbus_to_python(value, str) log.debug1("%s.queryOption('%s', '%s')", self._log_prefix, key, value) settings = list(self.getSettings()) return (key in settings[4] and settings[4][key] == value) # entries @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, out_signature='as') @dbus_handle_exceptions def getEntries(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getEntries()", self._log_prefix) return self.getSettings()[5] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='as') @dbus_handle_exceptions def setEntries(self, entries, sender=None): entries = dbus_to_python(entries, list) log.debug1("%s.setEntries('[%s]')", self._log_prefix, ",".join(entries)) self.parent.accessCheck(sender) settings = list(self.getSettings()) if "timeout" in settings[4] and settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) settings[5] = entries self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def addEntry(self, entry, sender=None): entry = dbus_to_python(entry, str) log.debug1("%s.addEntry('%s')", self._log_prefix, entry) self.parent.accessCheck(sender) settings = list(self.getSettings()) if "timeout" in settings[4] and settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) if entry in settings[5]: raise FirewallError(errors.ALREADY_ENABLED, entry) settings[5].append(entry) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s') @dbus_handle_exceptions def removeEntry(self, entry, sender=None): entry = dbus_to_python(entry, str) log.debug1("%s.removeEntry('%s')", self._log_prefix, entry) self.parent.accessCheck(sender) settings = list(self.getSettings()) if "timeout" in settings[4] and settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) if entry not in settings[5]: raise FirewallError(errors.NOT_ENABLED, entry) settings[5].remove(entry) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_IPSET, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryEntry(self, entry, sender=None): # pylint: disable=W0613 entry = dbus_to_python(entry, str) log.debug1("%s.queryEntry('%s')", self._log_prefix, entry) settings = list(self.getSettings()) if "timeout" in settings[4] and settings[4]["timeout"] != "0": raise FirewallError(errors.IPSET_WITH_TIMEOUT) return entry in settings[5] firewalld-0.4.4.6/src/firewall/server/config_service.py000066400000000000000000000643031320241217000230730ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.dbus_utils import dbus_to_python, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.service import Service from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfig # ############################################################################ class FirewallDConfigService(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, parent, conf, service, item_id, *args, **kwargs): super(FirewallDConfigService, self).__init__(*args, **kwargs) self.parent = parent self.config = conf self.obj = service self.item_id = item_id self.busname = args[0] self.path = args[1] self._log_prefix = "config.service.%d" % self.item_id dbus_introspection_prepare_properties( self, config.dbus.DBUS_INTERFACE_CONFIG_SERVICE) @dbus_handle_exceptions def __del__(self): pass @dbus_handle_exceptions def unregister(self): self.remove_from_connection() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, property_name): if property_name == "name": return dbus.String(self.obj.name) elif property_name == "filename": return dbus.String(self.obj.filename) elif property_name == "path": return dbus.String(self.obj.path) elif property_name == "default": return dbus.Boolean(self.obj.default) elif property_name == "builtin": return dbus.Boolean(self.obj.builtin) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("%s.Get('%s', '%s')", self._log_prefix, interface_name, property_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_SERVICE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_SERVICE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) ret = { } for x in [ "name", "filename", "path", "default", "builtin" ]: ret[x] = self._get_property(x) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix, interface_name, property_name, new_value) self.parent.accessCheck(sender) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_SERVICE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix, interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("%s.Introspect()", self._log_prefix) data = super(FirewallDConfigService, self).Introspect( self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG_SERVICE) # S E T T I N G S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature=Service.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 """get settings for service """ log.debug1("%s.getSettings()", self._log_prefix) return self.config.get_service_config(self.obj) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature=Service.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): """update settings for service """ settings = dbus_to_python(settings) log.debug1("%s.update('...')", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.set_service_config(self.obj, settings) self.Updated(self.obj.name) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE) @dbus_handle_exceptions def loadDefaults(self, sender=None): """load default settings for builtin service """ log.debug1("%s.loadDefaults()", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.load_service_defaults(self.obj) self.Updated(self.obj.name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, signature='s') @dbus_handle_exceptions def Updated(self, name): log.debug1("%s.Updated('%s')" % (self._log_prefix, name)) # R E M O V E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE) @dbus_handle_exceptions def remove(self, sender=None): """remove service """ log.debug1("%s.removeService()", self._log_prefix) self.parent.accessCheck(sender) self.config.remove_service(self.obj) self.parent.removeService(self.obj) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, signature='s') @dbus_handle_exceptions def Removed(self, name): log.debug1("%s.Removed('%s')" % (self._log_prefix, name)) # R E N A M E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def rename(self, name, sender=None): """rename service """ name = dbus_to_python(name, str) log.debug1("%s.rename('%s')", self._log_prefix, name) self.parent.accessCheck(sender) self.obj = self.config.rename_service(self.obj, name) self.Renamed(name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, signature='s') @dbus_handle_exceptions def Renamed(self, name): log.debug1("%s.Renamed('%s')" % (self._log_prefix, name)) # version @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='s') @dbus_handle_exceptions def getVersion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getVersion()", self._log_prefix) return self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def setVersion(self, version, sender=None): version = dbus_to_python(version, str) log.debug1("%s.setVersion('%s')", self._log_prefix, version) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[0] = version self.update(settings) # short @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='s') @dbus_handle_exceptions def getShort(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getShort()", self._log_prefix) return self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def setShort(self, short, sender=None): short = dbus_to_python(short, str) log.debug1("%s.setShort('%s')", self._log_prefix, short) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[1] = short self.update(settings) # description @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='s') @dbus_handle_exceptions def getDescription(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDescription()", self._log_prefix) return self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def setDescription(self, description, sender=None): description = dbus_to_python(description, str) log.debug1("%s.setDescription('%s')", self._log_prefix, description) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[2] = description self.update(settings) # port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='a(ss)') @dbus_handle_exceptions def getPorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getPorts()", self._log_prefix) return self.getSettings()[3] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='a(ss)') @dbus_handle_exceptions def setPorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setPorts('[%s]')", self._log_prefix, ",".join("('%s, '%s')" % (port[0], port[1]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[3] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss') @dbus_handle_exceptions def addPort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.addPort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) in settings[3]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s" % (port, protocol)) settings[3].append((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss') @dbus_handle_exceptions def removePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.removePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) not in settings[3]: raise FirewallError(errors.NOT_ENABLED, "%s:%s" % (port, protocol)) settings[3].remove((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryPort(self, port, protocol, sender=None): # pylint: disable=W0613 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.queryPort('%s', '%s')", self._log_prefix, port, protocol) return (port,protocol) in self.getSettings()[3] # protocol @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='as') @dbus_handle_exceptions def getProtocols(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getProtocols()", self._log_prefix) return self.getSettings()[6] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='as') @dbus_handle_exceptions def setProtocols(self, protocols, sender=None): protocols = dbus_to_python(protocols, list) log.debug1("%s.setProtocols('[%s]')", self._log_prefix, ",".join(protocols)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[6] = protocols self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def addProtocol(self, protocol, sender=None): protocol = dbus_to_python(protocol, str) log.debug1("%s.addProtocol('%s')", self._log_prefix, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if protocol in settings[6]: raise FirewallError(errors.ALREADY_ENABLED, protocol) settings[6].append(protocol) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def removeProtocol(self, protocol, sender=None): protocol = dbus_to_python(protocol, str) log.debug1("%s.removeProtocol('%s')", self._log_prefix, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if protocol not in settings[6]: raise FirewallError(errors.NOT_ENABLED, protocol) settings[6].remove(protocol) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryProtocol(self, protocol, sender=None): # pylint: disable=W0613 protocol = dbus_to_python(protocol, str) log.debug1("%s.queryProtocol(%s')", self._log_prefix, protocol) return protocol in self.getSettings()[6] # source port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='a(ss)') @dbus_handle_exceptions def getSourcePorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getSourcePorts()", self._log_prefix) return self.getSettings()[7] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='a(ss)') @dbus_handle_exceptions def setSourcePorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setSourcePorts('[%s]')", self._log_prefix, ",".join("('%s, '%s')" % (port[0], port[1]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[7] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss') @dbus_handle_exceptions def addSourcePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.addSourcePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) in settings[7]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s" % (port, protocol)) settings[7].append((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss') @dbus_handle_exceptions def removeSourcePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.removeSourcePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) not in settings[7]: raise FirewallError(errors.NOT_ENABLED, "%s:%s" % (port, protocol)) settings[7].remove((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def querySourcePort(self, port, protocol, sender=None): # pylint: disable=W0613 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.querySourcePort('%s', '%s')", self._log_prefix, port, protocol) return (port,protocol) in self.getSettings()[7] # module @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='as') @dbus_handle_exceptions def getModules(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getModules()", self._log_prefix) return self.getSettings()[4] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='as') @dbus_handle_exceptions def setModules(self, modules, sender=None): modules = dbus_to_python(modules, list) _modules = [ ] for module in modules: if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") _modules.append(module) modules = _modules log.debug1("%s.setModules('[%s]')", self._log_prefix, ",".join(modules)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[4] = modules self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def addModule(self, module, sender=None): module = dbus_to_python(module, str) if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") log.debug1("%s.addModule('%s')", self._log_prefix, module) self.parent.accessCheck(sender) settings = list(self.getSettings()) if module in settings[4]: raise FirewallError(errors.ALREADY_ENABLED, module) settings[4].append(module) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def removeModule(self, module, sender=None): module = dbus_to_python(module, str) if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") log.debug1("%s.removeModule('%s')", self._log_prefix, module) self.parent.accessCheck(sender) settings = list(self.getSettings()) if module not in settings[4]: raise FirewallError(errors.NOT_ENABLED, module) settings[4].remove(module) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryModule(self, module, sender=None): # pylint: disable=W0613 module = dbus_to_python(module, str) if module.startswith("nf_conntrack_"): module = module.replace("nf_conntrack_", "") if "_" in module: module = module.replace("_", "-") log.debug1("%s.queryModule('%s')", self._log_prefix, module) return module in self.getSettings()[4] # destination @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, out_signature='a{ss}') @dbus_handle_exceptions def getDestinations(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDestinations()", self._log_prefix) return self.getSettings()[5] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='a{ss}') @dbus_handle_exceptions def setDestinations(self, destinations, sender=None): destinations = dbus_to_python(destinations, dict) log.debug1("%s.setDestinations({ipv4:'%s', ipv6:'%s'})", self._log_prefix, destinations.get('ipv4'), destinations.get('ipv6')) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[5] = destinations self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s', out_signature='s') @dbus_handle_exceptions def getDestination(self, family, sender=None): family = dbus_to_python(family, str) log.debug1("%s.getDestination('%s')", self._log_prefix, family) self.parent.accessCheck(sender) settings = list(self.getSettings()) if family not in settings[5]: raise FirewallError(errors.NOT_ENABLED, family) return settings[5][family] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss') @dbus_handle_exceptions def setDestination(self, family, address, sender=None): family = dbus_to_python(family, str) address = dbus_to_python(address, str) log.debug1("%s.setDestination('%s', '%s')", self._log_prefix, family, address) self.parent.accessCheck(sender) settings = list(self.getSettings()) if family in settings[5] and settings[5][family] == address: raise FirewallError(errors.ALREADY_ENABLED, "'%s': '%s'" % (family, address)) settings[5][family] = address self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='s') @dbus_handle_exceptions def removeDestination(self, family, sender=None): family = dbus_to_python(family, str) log.debug1("%s.removeDestination('%s')", self._log_prefix, family) self.parent.accessCheck(sender) settings = list(self.getSettings()) if family not in settings[5]: raise FirewallError(errors.NOT_ENABLED, family) del settings[5][family] self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_SERVICE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryDestination(self, family, address, sender=None): # pylint: disable=W0613 family = dbus_to_python(family, str) address = dbus_to_python(address, str) log.debug1("%s.queryDestination('%s', '%s')", self._log_prefix, family, address) settings = self.getSettings() return (family in settings[5] and address == settings[5][family]) firewalld-0.4.4.6/src/firewall/server/config_zone.py000066400000000000000000001224551320241217000224110ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force use of pygobject3 in python-slip from gi.repository import GObject import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.dbus_utils import dbus_to_python, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.zone import Zone from firewall.core.base import DEFAULT_ZONE_TARGET from firewall.core.rich import Rich_Rule from firewall.core.logger import log from firewall.server.decorators import handle_exceptions, \ dbus_handle_exceptions, dbus_service_method from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallDConfig # ############################################################################ class FirewallDConfigZone(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use PK_ACTION_INFO as a default """ @handle_exceptions def __init__(self, parent, conf, zone, item_id, *args, **kwargs): super(FirewallDConfigZone, self).__init__(*args, **kwargs) self.parent = parent self.config = conf self.obj = zone self.item_id = item_id self.busname = args[0] self.path = args[1] self._log_prefix = "config.zone.%d" % self.item_id dbus_introspection_prepare_properties( self, config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def __del__(self): pass @dbus_handle_exceptions def unregister(self): self.remove_from_connection() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # P R O P E R T I E S @dbus_handle_exceptions def _get_property(self, property_name): if property_name == "name": return dbus.String(self.obj.name) elif property_name == "filename": return dbus.String(self.obj.filename) elif property_name == "path": return dbus.String(self.obj.path) elif property_name == "default": return dbus.Boolean(self.obj.default) elif property_name == "builtin": return dbus.Boolean(self.obj.builtin) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("%s.Get('%s', '%s')", self._log_prefix, interface_name, property_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ZONE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return self._get_property(property_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("%s.GetAll('%s')", self._log_prefix, interface_name) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ZONE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) ret = { } for x in [ "name", "filename", "path", "default", "builtin" ]: ret[x] = self._get_property(x) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("%s.Set('%s', '%s', '%s')", self._log_prefix, interface_name, property_name, new_value) self.parent.accessCheck(sender) if interface_name != config.dbus.DBUS_INTERFACE_CONFIG_ZONE: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("%s.PropertiesChanged('%s', '%s', '%s')", self._log_prefix, interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("%s.Introspect()", self._log_prefix) data = super(FirewallDConfigZone, self).Introspect( self.path, self.busname.get_bus()) return dbus_introspection_add_properties( self, data, config.dbus.DBUS_INTERFACE_CONFIG_ZONE) # S E T T I N G S @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature=Zone.DBUS_SIGNATURE) @dbus_handle_exceptions def getSettings(self, sender=None): # pylint: disable=W0613 """get settings for zone """ log.debug1("%s.getSettings()", self._log_prefix) settings = self.config.get_zone_config(self.obj) if settings[4] == DEFAULT_ZONE_TARGET: # convert to list, fix target, convert back to tuple _settings = list(settings) _settings[4] = "default" settings = tuple(_settings) return settings def _checkDuplicateInterfacesSources(self, settings): """Assignment of interfaces/sources to zones is different from other zone settings in the sense that particular interface/zone can be part of only one zone. So make sure added interfaces/sources have not already been bound to another zone.""" old_settings = self.config.get_zone_config(self.obj) idx_i = Zone.index_of("interfaces") idx_s = Zone.index_of("sources") added_ifaces = set(settings[idx_i]) - set(old_settings[idx_i]) added_sources = set(settings[idx_s]) - set(old_settings[idx_s]) for iface in added_ifaces: if self.parent.getZoneOfInterface(iface): raise FirewallError(errors.ZONE_CONFLICT, iface) # or move to new zone ? for source in added_sources: if self.parent.getZoneOfSource(source): raise FirewallError(errors.ZONE_CONFLICT, source) # or move to new zone ? @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature=Zone.DBUS_SIGNATURE) @dbus_handle_exceptions def update(self, settings, sender=None): """update settings for zone """ settings = dbus_to_python(settings) log.debug1("%s.update('...')", self._log_prefix) self.parent.accessCheck(sender) if settings[4] == "default": # convert to list, fix target, convert back to tuple _settings = list(settings) _settings[4] = DEFAULT_ZONE_TARGET settings = tuple(_settings) self._checkDuplicateInterfacesSources(settings) self.obj = self.config.set_zone_config(self.obj, settings) self.Updated(self.obj.name) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def loadDefaults(self, sender=None): """load default settings for builtin zone """ log.debug1("%s.loadDefaults()", self._log_prefix) self.parent.accessCheck(sender) self.obj = self.config.load_zone_defaults(self.obj) self.Updated(self.obj.name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, signature='s') @dbus_handle_exceptions def Updated(self, name): log.debug1("%s.Updated('%s')" % (self._log_prefix, name)) # R E M O V E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def remove(self, sender=None): """remove zone """ log.debug1("%s.removeZone()", self._log_prefix) self.parent.accessCheck(sender) self.config.remove_zone(self.obj) self.parent.removeZone(self.obj) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, signature='s') @dbus_handle_exceptions def Removed(self, name): log.debug1("%s.Removed('%s')" % (self._log_prefix, name)) # R E N A M E @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def rename(self, name, sender=None): """rename zone """ name = dbus_to_python(name, str) log.debug1("%s.rename('%s')", self._log_prefix, name) self.parent.accessCheck(sender) self.obj = self.config.rename_zone(self.obj, name) self.Renamed(name) @dbus.service.signal(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, signature='s') @dbus_handle_exceptions def Renamed(self, name): log.debug1("%s.Renamed('%s')" % (self._log_prefix, name)) # version @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='s') @dbus_handle_exceptions def getVersion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getVersion()", self._log_prefix) return self.getSettings()[0] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def setVersion(self, version, sender=None): version = dbus_to_python(version, str) log.debug1("%s.setVersion('%s')", self._log_prefix, version) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[0] = version self.update(settings) # short @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='s') @dbus_handle_exceptions def getShort(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getShort()", self._log_prefix) return self.getSettings()[1] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def setShort(self, short, sender=None): short = dbus_to_python(short, str) log.debug1("%s.setShort('%s')", self._log_prefix, short) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[1] = short self.update(settings) # description @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='s') @dbus_handle_exceptions def getDescription(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getDescription()", self._log_prefix) return self.getSettings()[2] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def setDescription(self, description, sender=None): description = dbus_to_python(description, str) log.debug1("%s.setDescription('%s')", self._log_prefix, description) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[2] = description self.update(settings) # immutable (deprecated) # settings[3] was used for 'immutable' # target @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='s') @dbus_handle_exceptions def getTarget(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getTarget()", self._log_prefix) settings = self.getSettings() return settings[4] if settings[4] != DEFAULT_ZONE_TARGET else "default" @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def setTarget(self, target, sender=None): target = dbus_to_python(target, str) log.debug1("%s.setTarget('%s')", self._log_prefix, target) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[4] = target if target != "default" else DEFAULT_ZONE_TARGET self.update(settings) # service @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getServices(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getServices()", self._log_prefix) return self.getSettings()[5] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setServices(self, services, sender=None): services = dbus_to_python(services, list) log.debug1("%s.setServices('[%s]')", self._log_prefix, ",".join(services)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[5] = services self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addService(self, service, sender=None): service = dbus_to_python(service, str) log.debug1("%s.addService('%s')", self._log_prefix, service) self.parent.accessCheck(sender) settings = list(self.getSettings()) if service in settings[5]: raise FirewallError(errors.ALREADY_ENABLED, service) settings[5].append(service) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeService(self, service, sender=None): service = dbus_to_python(service, str) log.debug1("%s.removeService('%s')", self._log_prefix, service) self.parent.accessCheck(sender) settings = list(self.getSettings()) if service not in settings[5]: raise FirewallError(errors.NOT_ENABLED, service) settings[5].remove(service) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryService(self, service, sender=None): # pylint: disable=W0613 service = dbus_to_python(service, str) log.debug1("%s.queryService('%s')", self._log_prefix, service) return service in self.getSettings()[5] # port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='a(ss)') @dbus_handle_exceptions def getPorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getPorts()", self._log_prefix) return self.getSettings()[6] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='a(ss)') @dbus_handle_exceptions def setPorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setPorts('[%s]')", self._log_prefix, ",".join("('%s, '%s')" % (port[0], port[1]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[6] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss') @dbus_handle_exceptions def addPort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.addPort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) in settings[6]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s" % (port, protocol)) settings[6].append((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss') @dbus_handle_exceptions def removePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.removePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) not in settings[6]: raise FirewallError(errors.NOT_ENABLED, "%s:%s" % (port, protocol)) settings[6].remove((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryPort(self, port, protocol, sender=None): # pylint: disable=W0613 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.queryPort('%s', '%s')", self._log_prefix, port, protocol) return (port,protocol) in self.getSettings()[6] # protocol @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getProtocols(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getProtocols()", self._log_prefix) return self.getSettings()[13] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setProtocols(self, protocols, sender=None): protocols = dbus_to_python(protocols, list) log.debug1("%s.setProtocols('[%s]')", self._log_prefix, ",".join(protocols)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[13] = protocols self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addProtocol(self, protocol, sender=None): protocol = dbus_to_python(protocol, str) log.debug1("%s.addProtocol('%s')", self._log_prefix, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if protocol in settings[13]: raise FirewallError(errors.ALREADY_ENABLED, protocol) settings[13].append(protocol) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeProtocol(self, protocol, sender=None): protocol = dbus_to_python(protocol, str) log.debug1("%s.removeProtocol('%s')", self._log_prefix, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if protocol not in settings[13]: raise FirewallError(errors.NOT_ENABLED, protocol) settings[13].remove(protocol) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryProtocol(self, protocol, sender=None): # pylint: disable=W0613 protocol = dbus_to_python(protocol, str) log.debug1("%s.queryProtocol('%s')", self._log_prefix, protocol) return protocol in self.getSettings()[13] # source port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='a(ss)') @dbus_handle_exceptions def getSourcePorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getSourcePorts()", self._log_prefix) return self.getSettings()[14] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='a(ss)') @dbus_handle_exceptions def setSourcePorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setSourcePorts('[%s]')", self._log_prefix, ",".join("('%s, '%s')" % (port[0], port[1]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[14] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss') @dbus_handle_exceptions def addSourcePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.addSourcePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) in settings[14]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s" % (port, protocol)) settings[14].append((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss') @dbus_handle_exceptions def removeSourcePort(self, port, protocol, sender=None): port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.removeSourcePort('%s', '%s')", self._log_prefix, port, protocol) self.parent.accessCheck(sender) settings = list(self.getSettings()) if (port,protocol) not in settings[14]: raise FirewallError(errors.NOT_ENABLED, "%s:%s" % (port, protocol)) settings[14].remove((port,protocol)) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def querySourcePort(self, port, protocol, sender=None): # pylint: disable=W0613 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("%s.querySourcePort('%s', '%s')", self._log_prefix, port, protocol) return (port,protocol) in self.getSettings()[14] # icmp block @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getIcmpBlocks(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getIcmpBlocks()", self._log_prefix) return self.getSettings()[7] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setIcmpBlocks(self, icmptypes, sender=None): icmptypes = dbus_to_python(icmptypes, list) log.debug1("%s.setIcmpBlocks('[%s]')", self._log_prefix, ",".join(icmptypes)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[7] = icmptypes self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addIcmpBlock(self, icmptype, sender=None): icmptype = dbus_to_python(icmptype, str) log.debug1("%s.addIcmpBlock('%s')", self._log_prefix, icmptype) self.parent.accessCheck(sender) settings = list(self.getSettings()) if icmptype in settings[7]: raise FirewallError(errors.ALREADY_ENABLED, icmptype) settings[7].append(icmptype) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeIcmpBlock(self, icmptype, sender=None): icmptype = dbus_to_python(icmptype, str) log.debug1("%s.removeIcmpBlock('%s')", self._log_prefix, icmptype) self.parent.accessCheck(sender) settings = list(self.getSettings()) if icmptype not in settings[7]: raise FirewallError(errors.NOT_ENABLED, icmptype) settings[7].remove(icmptype) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryIcmpBlock(self, icmptype, sender=None): # pylint: disable=W0613 icmptype = dbus_to_python(icmptype, str) log.debug1("%s.queryIcmpBlock('%s')", self._log_prefix, icmptype) return icmptype in self.getSettings()[7] # icmp block inversion @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='b') @dbus_handle_exceptions def getIcmpBlockInversion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getIcmpBlockInversion()", self._log_prefix) return self.getSettings()[15] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='b') @dbus_handle_exceptions def setIcmpBlockInversion(self, flag, sender=None): flag = dbus_to_python(flag, bool) log.debug1("%s.setIcmpBlockInversion('%s')", self._log_prefix, flag) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[15] = flag self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def addIcmpBlockInversion(self, sender=None): log.debug1("%s.addIcmpBlockInversion()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) if settings[15]: raise FirewallError(errors.ALREADY_ENABLED, "icmp-block-inversion") settings[15] = True self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def removeIcmpBlockInversion(self, sender=None): log.debug1("%s.removeIcmpBlockInversion()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) if not settings[15]: raise FirewallError(errors.NOT_ENABLED, "icmp-block-inversion") settings[15] = False self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='b') @dbus_handle_exceptions def queryIcmpBlockInversion(self, sender=None): # pylint: disable=W0613 log.debug1("%s.queryIcmpBlockInversion()", self._log_prefix) return self.getSettings()[15] # masquerade @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='b') @dbus_handle_exceptions def getMasquerade(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getMasquerade()", self._log_prefix) return self.getSettings()[8] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='b') @dbus_handle_exceptions def setMasquerade(self, masquerade, sender=None): masquerade = dbus_to_python(masquerade, bool) log.debug1("%s.setMasquerade('%s')", self._log_prefix, masquerade) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[8] = masquerade self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def addMasquerade(self, sender=None): log.debug1("%s.addMasquerade()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) if settings[8]: raise FirewallError(errors.ALREADY_ENABLED, "masquerade") settings[8] = True self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE) @dbus_handle_exceptions def removeMasquerade(self, sender=None): log.debug1("%s.removeMasquerade()", self._log_prefix) self.parent.accessCheck(sender) settings = list(self.getSettings()) if not settings[8]: raise FirewallError(errors.NOT_ENABLED, "masquerade") settings[8] = False self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='b') @dbus_handle_exceptions def queryMasquerade(self, sender=None): # pylint: disable=W0613 log.debug1("%s.queryMasquerade()", self._log_prefix) return self.getSettings()[8] # forward port @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='a(ssss)') @dbus_handle_exceptions def getForwardPorts(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getForwardPorts()", self._log_prefix) return self.getSettings()[9] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='a(ssss)') @dbus_handle_exceptions def setForwardPorts(self, ports, sender=None): _ports = [ ] # convert embedded lists to tuples for port in dbus_to_python(ports, list): if isinstance(port, list): _ports.append(tuple(port)) else: _ports.append(port) ports = _ports log.debug1("%s.setForwardPorts('[%s]')", self._log_prefix, ",".join("('%s, '%s', '%s', '%s')" % (port[0], port[1], \ port[2], port[3]) for port in ports)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[9] = ports self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ssss') @dbus_handle_exceptions def addForwardPort(self, port, protocol, toport, toaddr, sender=None): # pylint: disable=R0913 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) log.debug1("%s.addForwardPort('%s', '%s', '%s', '%s')", self._log_prefix, port, protocol, toport, toaddr) self.parent.accessCheck(sender) fwp_id = (port, protocol, str(toport), str(toaddr)) settings = list(self.getSettings()) if fwp_id in settings[9]: raise FirewallError(errors.ALREADY_ENABLED, "%s:%s:%s:%s" % (port, protocol, toport, toaddr)) settings[9].append(fwp_id) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ssss') @dbus_handle_exceptions def removeForwardPort(self, port, protocol, toport, toaddr, sender=None): # pylint: disable=R0913 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) log.debug1("%s.removeForwardPort('%s', '%s', '%s', '%s')", self._log_prefix, port, protocol, toport, toaddr) self.parent.accessCheck(sender) fwp_id = (port, protocol, str(toport), str(toaddr)) settings = list(self.getSettings()) if fwp_id not in settings[9]: raise FirewallError(errors.NOT_ENABLED, "%s:%s:%s:%s" % (port, protocol, toport, toaddr)) settings[9].remove(fwp_id) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='ssss', out_signature='b') @dbus_handle_exceptions def queryForwardPort(self, port, protocol, toport, toaddr, sender=None): # pylint: disable=W0613, R0913 port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) log.debug1("%s.queryForwardPort('%s', '%s', '%s', '%s')", self._log_prefix, port, protocol, toport, toaddr) fwp_id = (port, protocol, str(toport), str(toaddr)) return fwp_id in self.getSettings()[9] # interface @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getInterfaces(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getInterfaces()", self._log_prefix) return self.getSettings()[10] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setInterfaces(self, interfaces, sender=None): interfaces = dbus_to_python(interfaces, list) log.debug1("%s.setInterfaces('[%s]')", self._log_prefix, ",".join(interfaces)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[10] = interfaces self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addInterface(self, interface, sender=None): interface = dbus_to_python(interface, str) log.debug1("%s.addInterface('%s')", self._log_prefix, interface) self.parent.accessCheck(sender) settings = list(self.getSettings()) if interface in settings[10]: raise FirewallError(errors.ALREADY_ENABLED, interface) settings[10].append(interface) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeInterface(self, interface, sender=None): interface = dbus_to_python(interface, str) log.debug1("%s.removeInterface('%s')", self._log_prefix, interface) self.parent.accessCheck(sender) settings = list(self.getSettings()) if interface not in settings[10]: raise FirewallError(errors.NOT_ENABLED, interface) settings[10].remove(interface) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryInterface(self, interface, sender=None): # pylint: disable=W0613 interface = dbus_to_python(interface, str) log.debug1("%s.queryInterface('%s')", self._log_prefix, interface) return interface in self.getSettings()[10] # source @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getSources(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getSources()", self._log_prefix) return self.getSettings()[11] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setSources(self, sources, sender=None): sources = dbus_to_python(sources, list) log.debug1("%s.setSources('[%s]')", self._log_prefix, ",".join(sources)) self.parent.accessCheck(sender) settings = list(self.getSettings()) settings[11] = sources self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addSource(self, source, sender=None): source = dbus_to_python(source, str) log.debug1("%s.addSource('%s')", self._log_prefix, source) self.parent.accessCheck(sender) settings = list(self.getSettings()) if source in settings[11]: raise FirewallError(errors.ALREADY_ENABLED, source) settings[11].append(source) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeSource(self, source, sender=None): source = dbus_to_python(source, str) log.debug1("%s.removeSource('%s')", self._log_prefix, source) self.parent.accessCheck(sender) settings = list(self.getSettings()) if source not in settings[11]: raise FirewallError(errors.NOT_ENABLED, source) settings[11].remove(source) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def querySource(self, source, sender=None): # pylint: disable=W0613 source = dbus_to_python(source, str) log.debug1("%s.querySource('%s')", self._log_prefix, source) return source in self.getSettings()[11] # rich rule @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, out_signature='as') @dbus_handle_exceptions def getRichRules(self, sender=None): # pylint: disable=W0613 log.debug1("%s.getRichRules()", self._log_prefix) return self.getSettings()[12] @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='as') @dbus_handle_exceptions def setRichRules(self, rules, sender=None): rules = dbus_to_python(rules, list) log.debug1("%s.setRichRules('[%s]')", self._log_prefix, ",".join(rules)) self.parent.accessCheck(sender) settings = list(self.getSettings()) rules = [ str(Rich_Rule(rule_str=r)) for r in rules ] settings[12] = rules self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def addRichRule(self, rule, sender=None): rule = dbus_to_python(rule, str) log.debug1("%s.addRichRule('%s')", self._log_prefix, rule) self.parent.accessCheck(sender) settings = list(self.getSettings()) rule_str = str(Rich_Rule(rule_str=rule)) if rule_str in settings[12]: raise FirewallError(errors.ALREADY_ENABLED, rule) settings[12].append(rule_str) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s') @dbus_handle_exceptions def removeRichRule(self, rule, sender=None): rule = dbus_to_python(rule, str) log.debug1("%s.removeRichRule('%s')", self._log_prefix, rule) self.parent.accessCheck(sender) settings = list(self.getSettings()) rule_str = str(Rich_Rule(rule_str=rule)) if rule_str not in settings[12]: raise FirewallError(errors.NOT_ENABLED, rule) settings[12].remove(rule_str) self.update(settings) @dbus_service_method(config.dbus.DBUS_INTERFACE_CONFIG_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryRichRule(self, rule, sender=None): # pylint: disable=W0613 rule = dbus_to_python(rule, str) log.debug1("%s.queryRichRule('%s')", self._log_prefix, rule) rule_str = str(Rich_Rule(rule_str=rule)) return rule_str in self.getSettings()[12] firewalld-0.4.4.6/src/firewall/server/decorators.py000066400000000000000000000054041320241217000222500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2012-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . """This module contains decorators for use with and without D-Bus""" __all__ = ["FirewallDBusException", "handle_exceptions", "dbus_handle_exceptions", "dbus_service_method"] import dbus import dbus.service from dbus.exceptions import DBusException from decorator import decorator from firewall import config from firewall.errors import FirewallError from firewall import errors from firewall.core.logger import log ############################################################################ # # Exception handler decorators # ############################################################################ class FirewallDBusException(dbus.DBusException): """FirewallDBusException""" _dbus_error_name = "%s.Exception" % config.dbus.DBUS_INTERFACE @decorator def handle_exceptions(func, *args, **kwargs): """Decorator to handle exceptions and log them. Used if not conneced to D-Bus. """ try: return func(*args, **kwargs) except FirewallError as error: log.error(error) except Exception: # pylint: disable=W0703 log.exception() @decorator def dbus_handle_exceptions(func, *args, **kwargs): """Decorator to handle exceptions, log and report them into D-Bus :Raises DBusException: on a firewall error code problems. """ try: return func(*args, **kwargs) except FirewallError as error: code = FirewallError.get_code(str(error)) if code in [ errors.ALREADY_ENABLED, errors.NOT_ENABLED, errors.ZONE_ALREADY_SET, errors.ALREADY_SET ]: log.warning(str(error)) else: log.error(str(error)) raise FirewallDBusException(str(error)) except DBusException as ex: # only log DBusExceptions once raise ex except Exception as ex: log.exception() raise FirewallDBusException(str(ex)) def dbus_service_method(*args, **kwargs): """Add sender argument for D-Bus""" kwargs.setdefault("sender_keyword", "sender") return dbus.service.method(*args, **kwargs) firewalld-0.4.4.6/src/firewall/server/firewalld.py000066400000000000000000003224531320241217000220620ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . __all__ = [ "FirewallD" ] from gi.repository import GLib, GObject # force use of pygobject3 in python-slip import sys sys.modules['gobject'] = GObject import dbus import dbus.service import slip.dbus import slip.dbus.service from firewall import config from firewall.core.fw import Firewall from firewall.core.rich import Rich_Rule from firewall.core.logger import log from firewall.client import FirewallClientZoneSettings from firewall.server.decorators import * from firewall.server.config import FirewallDConfig from firewall.dbus_utils import dbus_to_python, \ command_of_sender, context_of_sender, uid_of_sender, user_of_uid, \ dbus_introspection_prepare_properties, \ dbus_introspection_add_properties from firewall.core.io.zone import Zone from firewall.core.io.ipset import IPSet from firewall.core.io.service import Service from firewall.core.io.icmptype import IcmpType from firewall.core.io.helper import Helper from firewall.core.fw_nm import nm_get_bus_name from firewall import errors from firewall.errors import FirewallError ############################################################################ # # class FirewallD # ############################################################################ class FirewallD(slip.dbus.service.Object): """FirewallD main class""" persistent = True """ Make FirewallD persistent. """ default_polkit_auth_required = config.dbus.PK_ACTION_CONFIG """ Use config.dbus.PK_ACTION_CONFIG as a default """ @handle_exceptions def __init__(self, *args, **kwargs): super(FirewallD, self).__init__(*args, **kwargs) self.fw = Firewall() self.busname = args[0] self.path = args[1] self.start() dbus_introspection_prepare_properties(self, config.dbus.DBUS_INTERFACE) self.config = FirewallDConfig(self.fw.config, self.busname, config.dbus.DBUS_PATH_CONFIG) def __del__(self): self.stop() @handle_exceptions def start(self): # tests if iptables and ip6tables are usable using test functions # loads default firewall rules for iptables and ip6tables log.debug1("start()") self._timeouts = { } return self.fw.start() @handle_exceptions def stop(self): # stops firewall: unloads firewall modules, flushes chains and tables, # resets policies log.debug1("stop()") return self.fw.stop() # lockdown functions @dbus_handle_exceptions def accessCheck(self, sender): if self.fw.policies.query_lockdown(): if sender is None: log.error("Lockdown not possible, sender not set.") return bus = dbus.SystemBus() context = context_of_sender(bus, sender) if self.fw.policies.access_check("context", context): return uid = uid_of_sender(bus, sender) if self.fw.policies.access_check("uid", uid): return user = user_of_uid(uid) if self.fw.policies.access_check("user", user): return command = command_of_sender(bus, sender) if self.fw.policies.access_check("command", command): return raise FirewallError(errors.ACCESS_DENIED, "lockdown is enabled") # timeout functions @dbus_handle_exceptions def addTimeout(self, zone, x, tag): if zone not in self._timeouts: self._timeouts[zone] = { } self._timeouts[zone][x] = tag @dbus_handle_exceptions def removeTimeout(self, zone, x): if zone in self._timeouts and x in self._timeouts[zone]: GLib.source_remove(self._timeouts[zone][x]) del self._timeouts[zone][x] @dbus_handle_exceptions def cleanup_timeouts(self): # cleanup timeouts for zone in self._timeouts: for x in self._timeouts[zone]: GLib.source_remove(self._timeouts[zone][x]) self._timeouts[zone].clear() self._timeouts.clear() # property handling @dbus_handle_exceptions def _get_property(self, prop): if prop == "version": return dbus.String(config.VERSION) elif prop == "interface_version": return dbus.String("%d.%d" % (config.dbus.DBUS_INTERFACE_VERSION, config.dbus.DBUS_INTERFACE_REVISION)) elif prop == "state": return dbus.String(self.fw.get_state()) elif prop == "IPv4": return dbus.Boolean(self.fw.ip4tables_enabled) elif prop == "IPv4ICMPTypes": return dbus.Array(self.fw.ip4tables_supported_icmp_types, "s") elif prop == "IPv6": return dbus.Boolean(self.fw.ip6tables_enabled) elif prop == "IPv6_rpfilter": return dbus.Boolean(self.fw.ipv6_rpfilter_enabled) elif prop == "IPv6ICMPTypes": return dbus.Array(self.fw.ip6tables_supported_icmp_types, "s") elif prop == "BRIDGE": return dbus.Boolean(self.fw.ebtables_enabled) elif prop == "IPSet": return dbus.Boolean(self.fw.ipset_enabled) elif prop == "IPSetTypes": return dbus.Array(self.fw.ipset_supported_types, "s") elif prop == "nf_conntrack_helper_setting": return dbus.Boolean(self.fw.nf_conntrack_helper_setting == 1) elif prop == "nf_conntrack_helpers": return dbus.Dictionary(self.fw.nf_conntrack_helpers, "sas") elif prop == "nf_nat_helpers": return dbus.Dictionary(self.fw.nf_nat_helpers, "sas") else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % prop) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') @dbus_handle_exceptions def Get(self, interface_name, property_name, sender=None): # pylint: disable=W0613 # get a property interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) log.debug1("Get('%s', '%s')", interface_name, property_name) if interface_name == config.dbus.DBUS_INTERFACE: return self._get_property(property_name) elif interface_name in [ config.dbus.DBUS_INTERFACE_ZONE, config.dbus.DBUS_INTERFACE_DIRECT, config.dbus.DBUS_INTERFACE_POLICIES, config.dbus.DBUS_INTERFACE_IPSET ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') @dbus_handle_exceptions def GetAll(self, interface_name, sender=None): # pylint: disable=W0613 interface_name = dbus_to_python(interface_name, str) log.debug1("GetAll('%s')", interface_name) ret = { } if interface_name == config.dbus.DBUS_INTERFACE: for x in [ "version", "interface_version", "state", "IPv4", "IPv6", "IPv6_rpfilter", "BRIDGE", "IPSet", "IPSetTypes", "nf_conntrack_helper_setting", "nf_conntrack_helpers", "nf_nat_helpers", "IPv4ICMPTypes", "IPv6ICMPTypes" ]: ret[x] = self._get_property(x) elif interface_name in [ config.dbus.DBUS_INTERFACE_ZONE, config.dbus.DBUS_INTERFACE_DIRECT, config.dbus.DBUS_INTERFACE_POLICIES, config.dbus.DBUS_INTERFACE_IPSET ]: pass else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) return dbus.Dictionary(ret, signature="sv") @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(dbus.PROPERTIES_IFACE, in_signature='ssv') @dbus_handle_exceptions def Set(self, interface_name, property_name, new_value, sender=None): interface_name = dbus_to_python(interface_name, str) property_name = dbus_to_python(property_name, str) new_value = dbus_to_python(new_value) log.debug1("Set('%s', '%s', '%s')", interface_name, property_name, new_value) self.accessCheck(sender) if interface_name == config.dbus.DBUS_INTERFACE: if property_name in [ "version", "interface_version", "state", "IPv4", "IPv6", "IPv6_rpfilter", "BRIDGE", "IPSet", "IPSetTypes", "nf_conntrack_helper_setting", "nf_conntrack_helpers", "nf_nat_helpers", "IPv4ICMPTypes", "IPv6ICMPTypes" ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.PropertyReadOnly: " "Property '%s' is read-only" % property_name) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) elif interface_name in [ config.dbus.DBUS_INTERFACE_ZONE, config.dbus.DBUS_INTERFACE_DIRECT, config.dbus.DBUS_INTERFACE_POLICIES, config.dbus.DBUS_INTERFACE_IPSET ]: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.InvalidArgs: " "Property '%s' does not exist" % property_name) else: raise dbus.exceptions.DBusException( "org.freedesktop.DBus.Error.UnknownInterface: " "Interface '%s' does not exist" % interface_name) @dbus.service.signal(dbus.PROPERTIES_IFACE, signature='sa{sv}as') def PropertiesChanged(self, interface_name, changed_properties, invalidated_properties): interface_name = dbus_to_python(interface_name, str) changed_properties = dbus_to_python(changed_properties) invalidated_properties = dbus_to_python(invalidated_properties) log.debug1("PropertiesChanged('%s', '%s', '%s')", interface_name, changed_properties, invalidated_properties) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(dbus.INTROSPECTABLE_IFACE, out_signature='s') @dbus_handle_exceptions def Introspect(self, sender=None): # pylint: disable=W0613 log.debug2("Introspect()") data = super(FirewallD, self).Introspect(self.path, self.busname.get_bus()) return dbus_introspection_add_properties(self, data, config.dbus.DBUS_INTERFACE) # reload @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def reload(self, sender=None): # pylint: disable=W0613 """Reload the firewall rules. """ log.debug1("reload()") self.fw.reload() self.config.reload() self.Reloaded() # complete_reload @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def completeReload(self, sender=None): # pylint: disable=W0613 """Completely reload the firewall. Completely reload the firewall: Stops firewall, unloads modules and starts the firewall again. """ log.debug1("completeReload()") self.fw.reload(True) self.config.reload() self.Reloaded() @dbus.service.signal(config.dbus.DBUS_INTERFACE) @dbus_handle_exceptions def Reloaded(self): log.debug1("Reloaded()") # runtime to permanent @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def runtimeToPermanent(self, sender=None): # pylint: disable=W0613 """Make runtime configuration permanent """ log.debug1("copyRuntimeToPermanent()") error = False # Services or icmptypes can not be modified in runtime, but they can # be removed or modified in permanent environment. Therefore copying # of services and icmptypes to permanent is also needed. # services config_names = self.config.getServiceNames() for name in self.fw.service.get_services(): conf = self.getServiceSettings(name) try: if name in config_names: conf_obj = self.config.getServiceByName(name) if conf_obj.getSettings() != conf: log.debug1("Copying service '%s' settings" % name) conf_obj.update(conf) else: log.debug1("Service '%s' is identical, ignoring." % name) else: log.debug1("Creating service '%s'" % name) self.config.addService(name, conf) except Exception as e: log.warning( "Runtime To Permanent failed on service '%s': %s" % \ (name, e)) error = True # icmptypes config_names = self.config.getIcmpTypeNames() for name in self.fw.icmptype.get_icmptypes(): conf = self.getIcmpTypeSettings(name) try: if name in config_names: conf_obj = self.config.getIcmpTypeByName(name) if conf_obj.getSettings() != conf: log.debug1("Copying icmptype '%s' settings" % name) conf_obj.update(conf) else: log.debug1("IcmpType '%s' is identical, ignoring." % name) else: log.debug1("Creating icmptype '%s'" % name) self.config.addIcmpType(name, conf) except Exception as e: log.warning( "Runtime To Permanent failed on icmptype '%s': %s" % \ (name, e)) error = True # ipsets config_names = self.config.getIPSetNames() for name in self.fw.ipset.get_ipsets(): try: conf = self.getIPSetSettings(name) if name in config_names: conf_obj = self.config.getIPSetByName(name) if conf_obj.getSettings() != conf: log.debug1("Copying ipset '%s' settings" % name) conf_obj.update(conf) else: log.debug1("IPSet '%s' is identical, ignoring." % name) else: log.debug1("Creating ipset '%s'" % name) self.config.addIPSet(name, conf) except Exception as e: log.warning( "Runtime To Permanent failed on ipset '%s': %s" % \ (name, e)) error = True # zones config_names = self.config.getZoneNames() nm_bus_name = nm_get_bus_name() for name in self.fw.zone.get_zones(): conf = self.getZoneSettings(name) if nm_bus_name != None: settings = FirewallClientZoneSettings(conf) changed = False for interface in settings.getInterfaces(): if self.fw.zone.interface_get_sender(name, interface) == nm_bus_name: log.debug1("Zone '%s': interface binding for '%s' has been added by NM, ignoring." % (name, interface)) settings.removeInterface(interface) changed = True if changed: del conf conf = settings.settings try: if name in config_names: conf_obj = self.config.getZoneByName(name) if conf_obj.getSettings() != conf: log.debug1("Copying zone '%s' settings" % name) conf_obj.update(conf) else: log.debug1("Zone '%s' is identical, ignoring." % name) else: log.debug1("Creating zone '%s'" % name) self.config.addZone(name, conf) except Exception as e: log.warning( "Runtime To Permanent failed on zone '%s': %s" % \ (name, e)) error = True # helpers config_names = self.config.getHelperNames() for name in self.fw.helper.get_helpers(): conf = self.getHelperSettings(name) try: if name in config_names: conf_obj = self.config.getHelperByName(name) if conf_obj.getSettings() != conf: log.debug1("Copying helper '%s' settings" % name) conf_obj.update(conf) else: log.debug1("Helper '%s' is identical, ignoring." % name) else: log.debug1("Creating helper '%s'" % name) self.config.addHelper(name, conf) except Exception as e: log.warning( "Runtime To Permanent failed on helper '%s': %s" % \ (name, e)) error = True # direct # rt_config = self.fw.direct.get_config() conf = ( self.fw.direct.get_all_chains(), self.fw.direct.get_all_rules(), self.fw.direct.get_all_passthroughs() ) try: if self.config.getSettings() != conf: log.debug1("Copying direct configuration") self.config.update(conf) else: log.debug1("Direct configuration is identical, ignoring.") except Exception as e: log.warning( "Runtime To Permanent failed on direct configuration: %s" % e) error = True # policies conf = self.fw.policies.lockdown_whitelist.export_config() try: if self.config.getSettings() != conf: log.debug1("Copying policies configuration") self.config.setLockdownWhitelist(conf) else: log.debug1("Policies configuration is identical, ignoring.") except Exception as e: log.warning( "Runtime To Permanent failed on policies configuration: %s" % \ e) error = True if error: raise FirewallError(errors.RT_TO_PERM_FAILED) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # POLICIES # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # lockdown @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='') @dbus_handle_exceptions def enableLockdown(self, sender=None): """Enable lockdown policies """ log.debug1("policies.enableLockdown()") self.accessCheck(sender) self.fw.policies.enable_lockdown() self.LockdownEnabled() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='') @dbus_handle_exceptions def disableLockdown(self, sender=None): """Disable lockdown policies """ log.debug1("policies.disableLockdown()") self.accessCheck(sender) self.fw.policies.disable_lockdown() self.LockdownDisabled() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='b') @dbus_handle_exceptions def queryLockdown(self, sender=None): # pylint: disable=W0613 """Retuns True if lockdown is enabled """ log.debug1("policies.queryLockdown()") # no access check here return self.fw.policies.query_lockdown() @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='') @dbus_handle_exceptions def LockdownEnabled(self): log.debug1("LockdownEnabled()") @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='') @dbus_handle_exceptions def LockdownDisabled(self): log.debug1("LockdownDisabled()") # lockdown whitelist # command @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def addLockdownWhitelistCommand(self, command, sender=None): """Add lockdown command """ command = dbus_to_python(command, str) log.debug1("policies.addLockdownWhitelistCommand('%s')" % command) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.add_command(command) self.LockdownWhitelistCommandAdded(command) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def removeLockdownWhitelistCommand(self, command, sender=None): """Remove lockdown command """ command = dbus_to_python(command, str) log.debug1("policies.removeLockdownWhitelistCommand('%s')" % command) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.remove_command(command) self.LockdownWhitelistCommandRemoved(command) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistCommand(self, command, sender=None): # pylint: disable=W0613 """Query lockdown command """ command = dbus_to_python(command, str) log.debug1("policies.queryLockdownWhitelistCommand('%s')" % command) # no access check here return self.fw.policies.lockdown_whitelist.has_command(command) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistCommands(self, sender=None): # pylint: disable=W0613 """Add lockdown command """ log.debug1("policies.getLockdownWhitelistCommands()") # no access check here return self.fw.policies.lockdown_whitelist.get_commands() @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistCommandAdded(self, command): log.debug1("LockdownWhitelistCommandAdded('%s')" % command) @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistCommandRemoved(self, command): log.debug1("LockdownWhitelistCommandRemoved('%s')" % command) # uid @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='i', out_signature='') @dbus_handle_exceptions def addLockdownWhitelistUid(self, uid, sender=None): """Add lockdown uid """ uid = dbus_to_python(uid, int) log.debug1("policies.addLockdownWhitelistUid('%s')" % uid) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.add_uid(uid) self.LockdownWhitelistUidAdded(uid) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='i', out_signature='') @dbus_handle_exceptions def removeLockdownWhitelistUid(self, uid, sender=None): """Remove lockdown uid """ uid = dbus_to_python(uid, int) log.debug1("policies.removeLockdownWhitelistUid('%s')" % uid) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.remove_uid(uid) self.LockdownWhitelistUidRemoved(uid) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='i', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistUid(self, uid, sender=None): # pylint: disable=W0613 """Query lockdown uid """ uid = dbus_to_python(uid, int) log.debug1("policies.queryLockdownWhitelistUid('%s')" % uid) # no access check here return self.fw.policies.lockdown_whitelist.has_uid(uid) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='ai') @dbus_handle_exceptions def getLockdownWhitelistUids(self, sender=None): # pylint: disable=W0613 """Add lockdown uid """ log.debug1("policies.getLockdownWhitelistUids()") # no access check here return self.fw.policies.lockdown_whitelist.get_uids() @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='i') @dbus_handle_exceptions def LockdownWhitelistUidAdded(self, uid): log.debug1("LockdownWhitelistUidAdded(%d)" % uid) @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='i') @dbus_handle_exceptions def LockdownWhitelistUidRemoved(self, uid): log.debug1("LockdownWhitelistUidRemoved(%d)" % uid) # user @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def addLockdownWhitelistUser(self, user, sender=None): """Add lockdown user """ user = dbus_to_python(user, str) log.debug1("policies.addLockdownWhitelistUser('%s')" % user) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.add_user(user) self.LockdownWhitelistUserAdded(user) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def removeLockdownWhitelistUser(self, user, sender=None): """Remove lockdown user """ user = dbus_to_python(user, str) log.debug1("policies.removeLockdownWhitelistUser('%s')" % user) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.remove_user(user) self.LockdownWhitelistUserRemoved(user) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistUser(self, user, sender=None): # pylint: disable=W0613 """Query lockdown user """ user = dbus_to_python(user, str) log.debug1("policies.queryLockdownWhitelistUser('%s')" % user) # no access check here return self.fw.policies.lockdown_whitelist.has_user(user) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistUsers(self, sender=None): # pylint: disable=W0613 """Add lockdown user """ log.debug1("policies.getLockdownWhitelistUsers()") # no access check here return self.fw.policies.lockdown_whitelist.get_users() @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistUserAdded(self, user): log.debug1("LockdownWhitelistUserAdded('%s')" % user) @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistUserRemoved(self, user): log.debug1("LockdownWhitelistUserRemoved('%s')" % user) # context @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def addLockdownWhitelistContext(self, context, sender=None): """Add lockdown context """ context = dbus_to_python(context, str) log.debug1("policies.addLockdownWhitelistContext('%s')" % context) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.add_context(context) self.LockdownWhitelistContextAdded(context) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='') @dbus_handle_exceptions def removeLockdownWhitelistContext(self, context, sender=None): """Remove lockdown context """ context = dbus_to_python(context, str) log.debug1("policies.removeLockdownWhitelistContext('%s')" % context) self.accessCheck(sender) self.fw.policies.lockdown_whitelist.remove_context(context) self.LockdownWhitelistContextRemoved(context) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryLockdownWhitelistContext(self, context, sender=None): # pylint: disable=W0613 """Query lockdown context """ context = dbus_to_python(context, str) log.debug1("policies.queryLockdownWhitelistContext('%s')" % context) # no access check here return self.fw.policies.lockdown_whitelist.has_context(context) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_POLICIES_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_POLICIES, in_signature='', out_signature='as') @dbus_handle_exceptions def getLockdownWhitelistContexts(self, sender=None): # pylint: disable=W0613 """Add lockdown context """ log.debug1("policies.getLockdownWhitelistContexts()") # no access check here return self.fw.policies.lockdown_whitelist.get_contexts() @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistContextAdded(self, context): log.debug1("LockdownWhitelistContextAdded('%s')" % context) @dbus.service.signal(config.dbus.DBUS_INTERFACE_POLICIES, signature='s') @dbus_handle_exceptions def LockdownWhitelistContextRemoved(self, context): log.debug1("LockdownWhitelistContextRemoved('%s')" % context) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # PANIC @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def enablePanicMode(self, sender=None): """Enable panic mode. All ingoing and outgoing connections and packets will be blocked. """ log.debug1("enablePanicMode()") self.accessCheck(sender) self.fw.enable_panic_mode() self.PanicModeEnabled() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def disablePanicMode(self, sender=None): """Disable panic mode. Enables normal mode: Allowed ingoing and outgoing connections will not be blocked anymore """ log.debug1("disablePanicMode()") self.accessCheck(sender) self.fw.disable_panic_mode() self.PanicModeDisabled() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='b') @dbus_handle_exceptions def queryPanicMode(self, sender=None): # pylint: disable=W0613 # returns True if in panic mode log.debug1("queryPanicMode()") return self.fw.query_panic_mode() @dbus.service.signal(config.dbus.DBUS_INTERFACE, signature='') @dbus_handle_exceptions def PanicModeEnabled(self): log.debug1("PanicModeEnabled()") @dbus.service.signal(config.dbus.DBUS_INTERFACE, signature='') @dbus_handle_exceptions def PanicModeDisabled(self): log.debug1("PanicModeDisabled()") # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # list functions @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature=Zone.DBUS_SIGNATURE) @dbus_handle_exceptions def getZoneSettings(self, zone, sender=None): # pylint: disable=W0613 # returns zone settings for zone zone = dbus_to_python(zone, str) log.debug1("getZoneSettings(%s)", zone) return self.fw.zone.get_config_with_settings(zone) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='as') @dbus_handle_exceptions def listServices(self, sender=None): # pylint: disable=W0613 # returns the list of services # TODO: should be renamed to getServices() # because is called by firewall-cmd --get-services log.debug1("listServices()") return self.fw.service.get_services() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature=Service.DBUS_SIGNATURE) @dbus_handle_exceptions def getServiceSettings(self, service, sender=None): # pylint: disable=W0613 # returns service settings for service service = dbus_to_python(service, str) log.debug1("getServiceSettings(%s)", service) return self.fw.service.get_service(service).export_config() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='as') @dbus_handle_exceptions def listIcmpTypes(self, sender=None): # pylint: disable=W0613 # returns the list of services # TODO: should be renamed to getIcmptypes() # because is called by firewall-cmd --get-icmptypes log.debug1("listIcmpTypes()") return self.fw.icmptype.get_icmptypes() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature=IcmpType.DBUS_SIGNATURE) @dbus_handle_exceptions def getIcmpTypeSettings(self, icmptype, sender=None): # pylint: disable=W0613 # returns icmptype settings for icmptype icmptype = dbus_to_python(icmptype, str) log.debug1("getIcmpTypeSettings(%s)", icmptype) return self.fw.icmptype.get_icmptype(icmptype).export_config() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # LOG DENIED @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='s') @dbus_handle_exceptions def getLogDenied(self, sender=None): # pylint: disable=W0613 # returns the log denied value log.debug1("getLogDenied()") return self.fw.get_log_denied() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature='') @dbus_handle_exceptions def setLogDenied(self, value, sender=None): # set the log denied value value = dbus_to_python(value, str) log.debug1("setLogDenied('%s')" % value) self.accessCheck(sender) self.fw.set_log_denied(value) self.LogDeniedChanged(value) @dbus.service.signal(config.dbus.DBUS_INTERFACE, signature='s') @dbus_handle_exceptions def LogDeniedChanged(self, value): log.debug1("LogDeniedChanged('%s')" % (value)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AUTOMATIC HELPER ASSIGNMENT @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='s') @dbus_handle_exceptions def getAutomaticHelpers(self, sender=None): # pylint: disable=W0613 # returns the automatic helpers value log.debug1("getAutomaticHelpers()") return self.fw.get_automatic_helpers() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature='') @dbus_handle_exceptions def setAutomaticHelpers(self, value, sender=None): # set the automatic helpers value value = dbus_to_python(value, str) log.debug1("setAutomaticHelpers('%s')" % value) self.accessCheck(sender) self.fw.set_automatic_helpers(value) self.AutomaticHelpersChanged(value) @dbus.service.signal(config.dbus.DBUS_INTERFACE, signature='s') @dbus_handle_exceptions def AutomaticHelpersChanged(self, value): log.debug1("AutomaticHelpersChanged('%s')" % (value)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DEFAULT ZONE @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='s') @dbus_handle_exceptions def getDefaultZone(self, sender=None): # pylint: disable=W0613 # returns the system default zone log.debug1("getDefaultZone()") return self.fw.get_default_zone() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature='') @dbus_handle_exceptions def setDefaultZone(self, zone, sender=None): # set the system default zone zone = dbus_to_python(zone, str) log.debug1("setDefaultZone('%s')" % zone) self.accessCheck(sender) self.fw.set_default_zone(zone) self.DefaultZoneChanged(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE, signature='s') @dbus_handle_exceptions def DefaultZoneChanged(self, zone): log.debug1("DefaultZoneChanged('%s')" % (zone)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ZONE INTERFACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ZONES @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) # TODO: shouldn't this be in DBUS_INTERFACE instead of DBUS_INTERFACE_ZONE ? @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='', out_signature='as') @dbus_handle_exceptions def getZones(self, sender=None): # pylint: disable=W0613 # returns the list of zones log.debug1("zone.getZones()") return self.fw.zone.get_zones() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='', out_signature='a{sa{sas}}') @dbus_handle_exceptions def getActiveZones(self, sender=None): # pylint: disable=W0613 # returns the list of active zones log.debug1("zone.getActiveZones()") zones = { } for zone in self.fw.zone.get_zones(): interfaces = self.fw.zone.list_interfaces(zone) sources = self.fw.zone.list_sources(zone) if len(interfaces) + len(sources) > 0: zones[zone] = { } if len(interfaces) > 0: zones[zone]["interfaces"] = interfaces if len(sources) > 0: zones[zone]["sources"] = sources return zones @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='s') @dbus_handle_exceptions def getZoneOfInterface(self, interface, sender=None): # pylint: disable=W0613 """Return the zone an interface belongs to. :Parameters: `interface` : str Name of the interface :Returns: str. The name of the zone. """ interface = dbus_to_python(interface, str) log.debug1("zone.getZoneOfInterface('%s')" % interface) zone = self.fw.zone.get_zone_of_interface(interface) if zone: return zone return "" @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='s') @dbus_handle_exceptions def getZoneOfSource(self, source, sender=None): # pylint: disable=W0613 #Return the zone an source belongs to. source = dbus_to_python(source, str) log.debug1("zone.getZoneOfSource('%s')" % source) zone = self.fw.zone.get_zone_of_source(source) if zone: return zone return "" @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def isImmutable(self, zone, sender=None): # pylint: disable=W0613 # no immutable zones anymore return False # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # INTERFACES @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def addInterface(self, zone, interface, sender=None): """Add an interface to a zone. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) interface = dbus_to_python(interface, str) log.debug1("zone.addInterface('%s', '%s')" % (zone, interface)) self.accessCheck(sender) _zone = self.fw.zone.add_interface(zone, interface, sender) self.InterfaceAdded(_zone, interface) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def changeZone(self, zone, interface, sender=None): """Change a zone an interface is part of. If zone is empty, use default zone. This function is deprecated, use changeZoneOfInterface instead """ zone = dbus_to_python(zone, str) interface = dbus_to_python(interface, str) return self.changeZoneOfInterface(zone, interface, sender) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def changeZoneOfInterface(self, zone, interface, sender=None): """Change a zone an interface is part of. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) interface = dbus_to_python(interface, str) log.debug1("zone.changeZoneOfInterface('%s', '%s')" % (zone, interface)) self.accessCheck(sender) _zone = self.fw.zone.change_zone_of_interface(zone, interface, sender) self.ZoneOfInterfaceChanged(_zone, interface) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeInterface(self, zone, interface, sender=None): """Remove interface from a zone. If zone is empty, remove from zone the interface belongs to. """ zone = dbus_to_python(zone, str) interface = dbus_to_python(interface, str) log.debug1("zone.removeInterface('%s', '%s')" % (zone, interface)) self.accessCheck(sender) _zone = self.fw.zone.remove_interface(zone, interface) self.InterfaceRemoved(_zone, interface) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryInterface(self, zone, interface, sender=None): # pylint: disable=W0613 """Return true if an interface is in a zone. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) interface = dbus_to_python(interface, str) log.debug1("zone.queryInterface('%s', '%s')" % (zone, interface)) return self.fw.zone.query_interface(zone, interface) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getInterfaces(self, zone, sender=None): # pylint: disable=W0613 """Return the list of interfaces of a zone. If zone is empty, use default zone. """ # TODO: should be renamed to listInterfaces() # because is called by firewall-cmd --zone --list-interfaces zone = dbus_to_python(zone, str) log.debug1("zone.getInterfaces('%s')" % (zone)) return self.fw.zone.list_interfaces(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def InterfaceAdded(self, zone, interface): log.debug1("zone.InterfaceAdded('%s', '%s')" % (zone, interface)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def ZoneChanged(self, zone, interface): """ This signal is deprecated. """ log.debug1("zone.ZoneChanged('%s', '%s')" % (zone, interface)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def ZoneOfInterfaceChanged(self, zone, interface): log.debug1("zone.ZoneOfInterfaceChanged('%s', '%s')" % (zone, interface)) self.ZoneChanged(zone, interface) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def InterfaceRemoved(self, zone, interface): log.debug1("zone.InterfaceRemoved('%s', '%s')" % (zone, interface)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SOURCES @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def addSource(self, zone, source, sender=None): """Add a source to a zone. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) source = dbus_to_python(source, str) log.debug1("zone.addSource('%s', '%s')" % (zone, source)) self.accessCheck(sender) _zone = self.fw.zone.add_source(zone, source, sender) self.SourceAdded(_zone, source) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def changeZoneOfSource(self, zone, source, sender=None): """Change a zone an source is part of. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) source = dbus_to_python(source, str) log.debug1("zone.changeZoneOfSource('%s', '%s')" % (zone, source)) self.accessCheck(sender) _zone = self.fw.zone.change_zone_of_source(zone, source, sender) self.ZoneOfSourceChanged(_zone, source) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeSource(self, zone, source, sender=None): """Remove source from a zone. If zone is empty, remove from zone the source belongs to. """ zone = dbus_to_python(zone, str) source = dbus_to_python(source, str) log.debug1("zone.removeSource('%s', '%s')" % (zone, source)) self.accessCheck(sender) _zone = self.fw.zone.remove_source(zone, source) self.SourceRemoved(_zone, source) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def querySource(self, zone, source, sender=None): # pylint: disable=W0613 """Return true if an source is in a zone. If zone is empty, use default zone. """ zone = dbus_to_python(zone, str) source = dbus_to_python(source, str) log.debug1("zone.querySource('%s', '%s')" % (zone, source)) return self.fw.zone.query_source(zone, source) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getSources(self, zone, sender=None): # pylint: disable=W0613 """Return the list of sources of a zone. If zone is empty, use default zone. """ # TODO: should be renamed to listSources() # because is called by firewall-cmd --zone --list-sources zone = dbus_to_python(zone, str) log.debug1("zone.getSources('%s')" % (zone)) return self.fw.zone.list_sources(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def SourceAdded(self, zone, source): log.debug1("zone.SourceAdded('%s', '%s')" % (zone, source)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def ZoneOfSourceChanged(self, zone, source): log.debug1("zone.ZoneOfSourceChanged('%s', '%s')" % (zone, source)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def SourceRemoved(self, zone, source): log.debug1("zone.SourceRemoved('%s', '%s')" % (zone, source)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # RICH RULES @dbus_handle_exceptions def disableTimedRichRule(self, zone, rule): log.debug1("zone.disableTimedRichRule('%s', '%s')" % (zone, rule)) del self._timeouts[zone][rule] obj = Rich_Rule(rule_str=rule) self.fw.zone.remove_rule(zone, obj) self.RichRuleRemoved(zone, rule) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ssi', out_signature='s') @dbus_handle_exceptions def addRichRule(self, zone, rule, timeout, sender=None): # pylint: disable=W0613 zone = dbus_to_python(zone, str) rule = dbus_to_python(rule, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addRichRule('%s', '%s')" % (zone, rule)) obj = Rich_Rule(rule_str=rule) _zone = self.fw.zone.add_rule(zone, obj, timeout) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedRichRule, _zone, rule) self.addTimeout(_zone, rule, tag) self.RichRuleAdded(_zone, rule, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeRichRule(self, zone, rule, sender=None): # pylint: disable=W0613 zone = dbus_to_python(zone, str) rule = dbus_to_python(rule, str) log.debug1("zone.removeRichRule('%s', '%s')" % (zone, rule)) obj = Rich_Rule(rule_str=rule) _zone = self.fw.zone.remove_rule(zone, obj) self.removeTimeout(_zone, rule) self.RichRuleRemoved(_zone, rule) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryRichRule(self, zone, rule, sender=None): # pylint: disable=W0613 zone = dbus_to_python(zone, str) rule = dbus_to_python(rule, str) log.debug1("zone.queryRichRule('%s', '%s')" % (zone, rule)) obj = Rich_Rule(rule_str=rule) return self.fw.zone.query_rule(zone, obj) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getRichRules(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled rich rules for zone # TODO: should be renamed to listRichRules() # because is called by firewall-cmd --zone --list-rich-rules zone = dbus_to_python(zone, str) log.debug1("zone.getRichRules('%s')" % (zone)) return self.fw.zone.list_rules(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ssi') @dbus_handle_exceptions def RichRuleAdded(self, zone, rule, timeout): log.debug1("zone.RichRuleAdded('%s', '%s', %d)" % (zone, rule, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def RichRuleRemoved(self, zone, rule): log.debug1("zone.RichRuleRemoved('%s', '%s')" % (zone, rule)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SERVICES @dbus_handle_exceptions def disableTimedService(self, zone, service): log.debug1("zone.disableTimedService('%s', '%s')" % (zone, service)) del self._timeouts[zone][service] self.fw.zone.remove_service(zone, service) self.ServiceRemoved(zone, service) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ssi', out_signature='s') @dbus_handle_exceptions def addService(self, zone, service, timeout, sender=None): # enables service if not enabled already for zone zone = dbus_to_python(zone, str) service = dbus_to_python(service, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addService('%s', '%s', %d)" % (zone, service, timeout)) self.accessCheck(sender) _zone = self.fw.zone.add_service(zone, service, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedService, _zone, service) self.addTimeout(_zone, service, tag) self.ServiceAdded(_zone, service, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeService(self, zone, service, sender=None): # disables service for zone zone = dbus_to_python(zone, str) service = dbus_to_python(service, str) log.debug1("zone.removeService('%s', '%s')" % (zone, service)) self.accessCheck(sender) _zone = self.fw.zone.remove_service(zone, service) self.removeTimeout(_zone, service) self.ServiceRemoved(_zone, service) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryService(self, zone, service, sender=None): # pylint: disable=W0613 # returns true if a service is enabled for zone zone = dbus_to_python(zone, str) service = dbus_to_python(service, str) log.debug1("zone.queryService('%s', '%s')" % (zone, service)) return self.fw.zone.query_service(zone, service) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getServices(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled services for zone # TODO: should be renamed to listServices() # because is called by firewall-cmd --zone --list-services zone = dbus_to_python(zone, str) log.debug1("zone.getServices('%s')" % (zone)) return self.fw.zone.list_services(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ssi') @dbus_handle_exceptions def ServiceAdded(self, zone, service, timeout): log.debug1("zone.ServiceAdded('%s', '%s', %d)" % \ (zone, service, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def ServiceRemoved(self, zone, service): log.debug1("zone.ServiceRemoved('%s', '%s')" % (zone, service)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # PORTS @dbus_handle_exceptions def disableTimedPort(self, zone, port, protocol): log.debug1("zone.disableTimedPort('%s', '%s', '%s')" % \ (zone, port, protocol)) del self._timeouts[zone][(port, protocol)] self.fw.zone.remove_port(zone, port, protocol) self.PortRemoved(zone, port, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sssi', out_signature='s') @dbus_handle_exceptions def addPort(self, zone, port, protocol, timeout, sender=None): # pylint: disable=R0913 # adds port if not enabled already to zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addPort('%s', '%s', '%s')" % \ (zone, port, protocol)) self.accessCheck(sender) _zone = self.fw.zone.add_port(zone, port, protocol, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedPort, _zone, port, protocol) self.addTimeout(_zone, (port, protocol), tag) self.PortAdded(_zone, port, protocol, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sss', out_signature='s') @dbus_handle_exceptions def removePort(self, zone, port, protocol, sender=None): # pylint: disable=R0913 # removes port if enabled from zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.removePort('%s', '%s', '%s')" % \ (zone, port, protocol)) self.accessCheck(sender) _zone= self.fw.zone.remove_port(zone, port, protocol) self.removeTimeout(_zone, (port, protocol)) self.PortRemoved(_zone, port, protocol) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sss', out_signature='b') @dbus_handle_exceptions def queryPort(self, zone, port, protocol, sender=None): # pylint: disable=W0613, R0913 # returns true if a port is enabled for zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.queryPort('%s', '%s', '%s')" % (zone, port, protocol)) return self.fw.zone.query_port(zone, port, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='aas') @dbus_handle_exceptions def getPorts(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled ports # TODO: should be renamed to listPorts() # because is called by firewall-cmd --zone --list-ports zone = dbus_to_python(zone, str) log.debug1("zone.getPorts('%s')" % (zone)) return self.fw.zone.list_ports(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sssi') @dbus_handle_exceptions def PortAdded(self, zone, port, protocol, timeout=0): log.debug1("zone.PortAdded('%s', '%s', '%s', %d)" % \ (zone, port, protocol, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sss') @dbus_handle_exceptions def PortRemoved(self, zone, port, protocol): log.debug1("zone.PortRemoved('%s', '%s', '%s')" % \ (zone, port, protocol)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # PROTOCOLS @dbus_handle_exceptions def disableTimedProtocol(self, zone, protocol): log.debug1("zone.disableTimedProtocol('%s', '%s')" % (zone, protocol)) del self._timeouts[zone][(protocol)] self.fw.zone.remove_protocol(zone, protocol) self.ProtocolRemoved(zone, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ssi', out_signature='s') @dbus_handle_exceptions def addProtocol(self, zone, protocol, timeout, sender=None): # adds protocol if not enabled already to zone zone = dbus_to_python(zone, str) protocol = dbus_to_python(protocol, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.enableProtocol('%s', '%s')" % (zone, protocol)) self.accessCheck(sender) _zone = self.fw.zone.add_protocol(zone, protocol, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedProtocol, _zone, protocol) self.addTimeout(_zone, protocol, tag) self.ProtocolAdded(_zone, protocol, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeProtocol(self, zone, protocol, sender=None): # removes protocol if enabled from zone zone = dbus_to_python(zone, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.removeProtocol('%s', '%s')" % (zone, protocol)) self.accessCheck(sender) _zone= self.fw.zone.remove_protocol(zone, protocol) self.removeTimeout(_zone, protocol) self.ProtocolRemoved(_zone, protocol) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryProtocol(self, zone, protocol, sender=None): # pylint: disable=W0613 # returns true if a protocol is enabled for zone zone = dbus_to_python(zone, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.queryProtocol('%s', '%s')" % (zone, protocol)) return self.fw.zone.query_protocol(zone, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getProtocols(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled protocols # TODO: should be renamed to listProtocols() # because is called by firewall-cmd --zone --list-protocols zone = dbus_to_python(zone, str) log.debug1("zone.getProtocols('%s')" % (zone)) return self.fw.zone.list_protocols(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ssi') @dbus_handle_exceptions def ProtocolAdded(self, zone, protocol, timeout=0): log.debug1("zone.ProtocolAdded('%s', '%s', %d)" % \ (zone, protocol, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def ProtocolRemoved(self, zone, protocol): log.debug1("zone.ProtocolRemoved('%s', '%s')" % (zone, protocol)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # SOURCE PORTS @dbus_handle_exceptions def disableTimedSourcePort(self, zone, port, protocol): log.debug1("zone.disableTimedSourcePort('%s', '%s', '%s')" % \ (zone, port, protocol)) del self._timeouts[zone][("sport", port, protocol)] self.fw.zone.remove_source_port(zone, port, protocol) self.SourcePortRemoved(zone, port, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sssi', out_signature='s') @dbus_handle_exceptions def addSourcePort(self, zone, port, protocol, timeout, sender=None): # pylint: disable=R0913 # adds source port if not enabled already to zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addSourcePort('%s', '%s', '%s')" % (zone, port, protocol)) self.accessCheck(sender) _zone = self.fw.zone.add_source_port(zone, port, protocol, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedSourcePort, _zone, port, protocol) self.addTimeout(_zone, ("sport", port, protocol), tag) self.SourcePortAdded(_zone, port, protocol, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sss', out_signature='s') @dbus_handle_exceptions def removeSourcePort(self, zone, port, protocol, sender=None): # pylint: disable=R0913 # removes source port if enabled from zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.removeSourcePort('%s', '%s', '%s')" % (zone, port, protocol)) self.accessCheck(sender) _zone= self.fw.zone.remove_source_port(zone, port, protocol) self.removeTimeout(_zone, ("sport", port, protocol)) self.SourcePortRemoved(_zone, port, protocol) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sss', out_signature='b') @dbus_handle_exceptions def querySourcePort(self, zone, port, protocol, sender=None): # pylint: disable=W0613, R0913 # returns true if a source port is enabled for zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) log.debug1("zone.querySourcePort('%s', '%s', '%s')" % (zone, port, protocol)) return self.fw.zone.query_source_port(zone, port, protocol) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='aas') @dbus_handle_exceptions def getSourcePorts(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled source ports # TODO: should be renamed to listSourcePorts() # because is called by firewall-cmd --zone --list-source-ports zone = dbus_to_python(zone, str) log.debug1("zone.getSourcePorts('%s')" % (zone)) return self.fw.zone.list_source_ports(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sssi') @dbus_handle_exceptions def SourcePortAdded(self, zone, port, protocol, timeout=0): log.debug1("zone.SourcePortAdded('%s', '%s', '%s', %d)" % \ (zone, port, protocol, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sss') @dbus_handle_exceptions def SourcePortRemoved(self, zone, port, protocol): log.debug1("zone.SourcePortRemoved('%s', '%s', '%s')" % (zone, port, protocol)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # MASQUERADE @dbus_handle_exceptions def disableTimedMasquerade(self, zone): del self._timeouts[zone]["masquerade"] self.fw.zone.remove_masquerade(zone) self.MasqueradeRemoved(zone) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='si', out_signature='s') @dbus_handle_exceptions def addMasquerade(self, zone, timeout, sender=None): # adds masquerade if not added already zone = dbus_to_python(zone, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addMasquerade('%s')" % (zone)) self.accessCheck(sender) _zone = self.fw.zone.add_masquerade(zone, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedMasquerade, _zone) self.addTimeout(_zone, "masquerade", tag) self.MasqueradeAdded(_zone, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='s') @dbus_handle_exceptions def removeMasquerade(self, zone, sender=None): # removes masquerade zone = dbus_to_python(zone, str) log.debug1("zone.removeMasquerade('%s')" % (zone)) self.accessCheck(sender) _zone = self.fw.zone.remove_masquerade(zone) self.removeTimeout(_zone, "masquerade") self.MasqueradeRemoved(_zone) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryMasquerade(self, zone, sender=None): # pylint: disable=W0613 # returns true if a masquerade is added zone = dbus_to_python(zone, str) log.debug1("zone.queryMasquerade('%s')" % (zone)) return self.fw.zone.query_masquerade(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='si') @dbus_handle_exceptions def MasqueradeAdded(self, zone, timeout=0): log.debug1("zone.MasqueradeAdded('%s', %d)" % (zone, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='s') @dbus_handle_exceptions def MasqueradeRemoved(self, zone): log.debug1("zone.MasqueradeRemoved('%s')" % (zone)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # FORWARD PORT @dbus_handle_exceptions def disable_forward_port(self, zone, port, protocol, toport, toaddr): # pylint: disable=R0913 del self._timeouts[zone][(port, protocol, toport, toaddr)] self.fw.zone.remove_forward_port(zone, port, protocol, toport, toaddr) self.ForwardPortRemoved(zone, port, protocol, toport, toaddr) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sssssi', out_signature='s') @dbus_handle_exceptions def addForwardPort(self, zone, port, protocol, toport, toaddr, timeout, sender=None): # pylint: disable=R0913 # add forward port if not enabled already for zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.addForwardPort('%s', '%s', '%s', '%s', '%s')" % \ (zone, port, protocol, toport, toaddr)) self.accessCheck(sender) _zone = self.fw.zone.add_forward_port(zone, port, protocol, toport, toaddr, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disable_forward_port, _zone, port, protocol, toport, toaddr) self.addTimeout(_zone, (port, protocol, toport, toaddr), tag) self.ForwardPortAdded(_zone, port, protocol, toport, toaddr, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sssss', out_signature='s') @dbus_handle_exceptions def removeForwardPort(self, zone, port, protocol, toport, toaddr, sender=None): # pylint: disable=R0913 # remove forward port from zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) log.debug1("zone.removeForwardPort('%s', '%s', '%s', '%s', '%s')" % \ (zone, port, protocol, toport, toaddr)) self.accessCheck(sender) _zone = self.fw.zone.remove_forward_port(zone, port, protocol, toport, toaddr) self.removeTimeout(_zone, (port, protocol, toport, toaddr)) self.ForwardPortRemoved(_zone, port, protocol, toport, toaddr) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='sssss', out_signature='b') @dbus_handle_exceptions def queryForwardPort(self, zone, port, protocol, toport, toaddr, sender=None): # pylint: disable=W0613, R0913 # returns true if a forward port is enabled for zone zone = dbus_to_python(zone, str) port = dbus_to_python(port, str) protocol = dbus_to_python(protocol, str) toport = dbus_to_python(toport, str) toaddr = dbus_to_python(toaddr, str) log.debug1("zone.queryForwardPort('%s', '%s', '%s', '%s', '%s')" % \ (zone, port, protocol, toport, toaddr)) return self.fw.zone.query_forward_port(zone, port, protocol, toport, toaddr) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='aas') @dbus_handle_exceptions def getForwardPorts(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled ports for zone # TODO: should be renamed to listForwardPorts() # because is called by firewall-cmd --zone --list-forward-ports zone = dbus_to_python(zone, str) log.debug1("zone.getForwardPorts('%s')" % (zone)) return self.fw.zone.list_forward_ports(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sssssi') @dbus_handle_exceptions def ForwardPortAdded(self, zone, port, protocol, toport, toaddr, timeout=0): # pylint: disable=R0913 log.debug1("zone.ForwardPortAdded('%s', '%s', '%s', '%s', '%s', %d)" % \ (zone, port, protocol, toport, toaddr, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='sssss') @dbus_handle_exceptions def ForwardPortRemoved(self, zone, port, protocol, toport, toaddr): # pylint: disable=R0913 log.debug1("zone.ForwardPortRemoved('%s', '%s', '%s', '%s', '%s')" % \ (zone, port, protocol, toport, toaddr)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ICMP BLOCK @dbus_handle_exceptions def disableTimedIcmpBlock(self, zone, icmp, sender): # pylint: disable=W0613 log.debug1("zone.disableTimedIcmpBlock('%s', '%s')" % (zone, icmp)) del self._timeouts[zone][icmp] self.fw.zone.remove_icmp_block(zone, icmp) self.IcmpBlockRemoved(zone, icmp) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ssi', out_signature='s') @dbus_handle_exceptions def addIcmpBlock(self, zone, icmp, timeout, sender=None): # add icmpblock if not enabled already for zone zone = dbus_to_python(zone, str) icmp = dbus_to_python(icmp, str) timeout = dbus_to_python(timeout, int) log.debug1("zone.enableIcmpBlock('%s', '%s')" % (zone, icmp)) self.accessCheck(sender) _zone = self.fw.zone.add_icmp_block(zone, icmp, timeout, sender) if timeout > 0: tag = GLib.timeout_add_seconds(timeout, self.disableTimedIcmpBlock, _zone, icmp, sender) self.addTimeout(_zone, icmp, tag) self.IcmpBlockAdded(_zone, icmp, timeout) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='s') @dbus_handle_exceptions def removeIcmpBlock(self, zone, icmp, sender=None): # removes icmpBlock from zone zone = dbus_to_python(zone, str) icmp = dbus_to_python(icmp, str) log.debug1("zone.removeIcmpBlock('%s', '%s')" % (zone, icmp)) self.accessCheck(sender) _zone = self.fw.zone.remove_icmp_block(zone, icmp) self.removeTimeout(_zone, icmp) self.IcmpBlockRemoved(_zone, icmp) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryIcmpBlock(self, zone, icmp, sender=None): # pylint: disable=W0613 # returns true if a icmp is enabled for zone zone = dbus_to_python(zone, str) icmp = dbus_to_python(icmp, str) log.debug1("zone.queryIcmpBlock('%s', '%s')" % (zone, icmp)) return self.fw.zone.query_icmp_block(zone, icmp) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='as') @dbus_handle_exceptions def getIcmpBlocks(self, zone, sender=None): # pylint: disable=W0613 # returns the list of enabled icmpblocks # TODO: should be renamed to listIcmpBlocks() # because is called by firewall-cmd --zone --list-icmp-blocks zone = dbus_to_python(zone, str) log.debug1("zone.getIcmpBlocks('%s')" % (zone)) return self.fw.zone.list_icmp_blocks(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ssi') @dbus_handle_exceptions def IcmpBlockAdded(self, zone, icmp, timeout=0): log.debug1("zone.IcmpBlockAdded('%s', '%s', %d)" % \ (zone, icmp, timeout)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='ss') @dbus_handle_exceptions def IcmpBlockRemoved(self, zone, icmp): log.debug1("zone.IcmpBlockRemoved('%s', '%s')" % (zone, icmp)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ICMP BLOCK INVERSION @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='s') @dbus_handle_exceptions def addIcmpBlockInversion(self, zone, sender=None): # adds icmpBlockInversion if not added already zone = dbus_to_python(zone, str) log.debug1("zone.addIcmpBlockInversion('%s')" % (zone)) self.accessCheck(sender) _zone = self.fw.zone.add_icmp_block_inversion(zone, sender) self.IcmpBlockInversionAdded(_zone) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='s') @dbus_handle_exceptions def removeIcmpBlockInversion(self, zone, sender=None): # removes icmpBlockInversion zone = dbus_to_python(zone, str) log.debug1("zone.removeIcmpBlockInversion('%s')" % (zone)) self.accessCheck(sender) _zone = self.fw.zone.remove_icmp_block_inversion(zone) self.IcmpBlockInversionRemoved(_zone) return _zone @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_ZONE, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryIcmpBlockInversion(self, zone, sender=None): # pylint: disable=W0613 # returns true if a icmpBlockInversion is added zone = dbus_to_python(zone, str) log.debug1("zone.queryIcmpBlockInversion('%s')" % (zone)) return self.fw.zone.query_icmp_block_inversion(zone) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='s') @dbus_handle_exceptions def IcmpBlockInversionAdded(self, zone): log.debug1("zone.IcmpBlockInversionAdded('%s')" % (zone)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_ZONE, signature='s') @dbus_handle_exceptions def IcmpBlockInversionRemoved(self, zone): log.debug1("zone.IcmpBlockInversionRemoved('%s')" % (zone)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DIRECT INTERFACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DIRECT CHAIN @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sss', out_signature='') @dbus_handle_exceptions def addChain(self, ipv, table, chain, sender=None): # inserts direct chain ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) log.debug1("direct.addChain('%s', '%s', '%s')" % (ipv, table, chain)) self.accessCheck(sender) self.fw.direct.add_chain(ipv, table, chain) self.ChainAdded(ipv, table, chain) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sss', out_signature='') @dbus_handle_exceptions def removeChain(self, ipv, table, chain, sender=None): # removes direct chain ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) log.debug1("direct.removeChain('%s', '%s', '%s')" % (ipv, table, chain)) self.accessCheck(sender) self.fw.direct.remove_chain(ipv, table, chain) self.ChainRemoved(ipv, table, chain) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sss', out_signature='b') @dbus_handle_exceptions def queryChain(self, ipv, table, chain, sender=None): # pylint: disable=W0613 # returns true if a chain is enabled ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) log.debug1("direct.queryChain('%s', '%s', '%s')" % (ipv, table, chain)) return self.fw.direct.query_chain(ipv, table, chain) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='ss', out_signature='as') @dbus_handle_exceptions def getChains(self, ipv, table, sender=None): # pylint: disable=W0613 # returns list of added chains ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) log.debug1("direct.getChains('%s', '%s')" % (ipv, table)) return self.fw.direct.get_chains(ipv, table) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='', out_signature='a(sss)') @dbus_handle_exceptions def getAllChains(self, sender=None): # pylint: disable=W0613 # returns list of added chains log.debug1("direct.getAllChains()") return self.fw.direct.get_all_chains() @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sss') @dbus_handle_exceptions def ChainAdded(self, ipv, table, chain): log.debug1("direct.ChainAdded('%s', '%s', '%s')" % (ipv, table, chain)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sss') @dbus_handle_exceptions def ChainRemoved(self, ipv, table, chain): log.debug1("direct.ChainRemoved('%s', '%s', '%s')" % (ipv, table, chain)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DIRECT RULE @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sssias', out_signature='') @dbus_handle_exceptions def addRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=R0913 # inserts direct rule ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) priority = dbus_to_python(priority, int) args = tuple( dbus_to_python(i, str) for i in args ) log.debug1("direct.addRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) self.accessCheck(sender) self.fw.direct.add_rule(ipv, table, chain, priority, args) self.RuleAdded(ipv, table, chain, priority, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sssias', out_signature='') @dbus_handle_exceptions def removeRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=R0913 # removes direct rule ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) priority = dbus_to_python(priority, int) args = tuple( dbus_to_python(i, str) for i in args ) log.debug1("direct.removeRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) self.accessCheck(sender) self.fw.direct.remove_rule(ipv, table, chain, priority, args) self.RuleRemoved(ipv, table, chain, priority, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sss', out_signature='') @dbus_handle_exceptions def removeRules(self, ipv, table, chain, sender=None): # removes direct rule ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) log.debug1("direct.removeRules('%s', '%s', '%s')" % (ipv, table, chain)) self.accessCheck(sender) for (priority, args) in self.fw.direct.get_rules(ipv, table, chain): self.fw.direct.remove_rule(ipv, table, chain, priority, args) self.RuleRemoved(ipv, table, chain, priority, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sssias', out_signature='b') @dbus_handle_exceptions def queryRule(self, ipv, table, chain, priority, args, sender=None): # pylint: disable=W0613, R0913 # returns true if a rule is enabled ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) priority = dbus_to_python(priority, int) args = tuple( dbus_to_python(i, str) for i in args ) log.debug1("direct.queryRule('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) return self.fw.direct.query_rule(ipv, table, chain, priority, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sss', out_signature='a(ias)') @dbus_handle_exceptions def getRules(self, ipv, table, chain, sender=None): # pylint: disable=W0613 # returns list of added rules ipv = dbus_to_python(ipv, str) table = dbus_to_python(table, str) chain = dbus_to_python(chain, str) log.debug1("direct.getRules('%s', '%s', '%s')" % (ipv, table, chain)) return self.fw.direct.get_rules(ipv, table, chain) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='', out_signature='a(sssias)') @dbus_handle_exceptions def getAllRules(self, sender=None): # pylint: disable=W0613 # returns list of added rules log.debug1("direct.getAllRules()") return self.fw.direct.get_all_rules() @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sssias') @dbus_handle_exceptions def RuleAdded(self, ipv, table, chain, priority, args): # pylint: disable=R0913 log.debug1("direct.RuleAdded('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sssias') @dbus_handle_exceptions def RuleRemoved(self, ipv, table, chain, priority, args): # pylint: disable=R0913 log.debug1("direct.RuleRemoved('%s', '%s', '%s', %d, '%s')" % \ (ipv, table, chain, priority, "','".join(args))) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DIRECT PASSTHROUGH (untracked) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sas', out_signature='s') @dbus_handle_exceptions def passthrough(self, ipv, args, sender=None): # inserts direct rule ipv = dbus_to_python(ipv, str) args = tuple( dbus_to_python(i, str) for i in args ) log.debug1("direct.passthrough('%s', '%s')" % (ipv, "','".join(args))) self.accessCheck(sender) try: return self.fw.direct.passthrough(ipv, args) except FirewallError as error: msg = str(error) if "COMMAND_FAILED" in msg: log.warning(msg) raise FirewallDBusException(msg) raise # DIRECT PASSTHROUGH (tracked) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sas', out_signature='') @dbus_handle_exceptions def addPassthrough(self, ipv, args, sender=None): # inserts direct passthrough ipv = dbus_to_python(ipv) args = tuple( dbus_to_python(i) for i in args ) log.debug1("direct.addPassthrough('%s', '%s')" % \ (ipv, "','".join(args))) self.accessCheck(sender) self.fw.direct.add_passthrough(ipv, args) self.PassthroughAdded(ipv, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sas', out_signature='') @dbus_handle_exceptions def removePassthrough(self, ipv, args, sender=None): # removes direct passthrough ipv = dbus_to_python(ipv) args = tuple( dbus_to_python(i) for i in args ) log.debug1("direct.removePassthrough('%s', '%s')" % \ (ipv, "','".join(args))) self.accessCheck(sender) self.fw.direct.remove_passthrough(ipv, args) self.PassthroughRemoved(ipv, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='sas', out_signature='b') @dbus_handle_exceptions def queryPassthrough(self, ipv, args, sender=None): # pylint: disable=W0613 # returns true if a passthrough is enabled ipv = dbus_to_python(ipv) args = tuple( dbus_to_python(i) for i in args ) log.debug1("direct.queryPassthrough('%s', '%s')" % \ (ipv, "','".join(args))) return self.fw.direct.query_passthrough(ipv, args) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='', out_signature='a(sas)') @dbus_handle_exceptions def getAllPassthroughs(self, sender=None): # pylint: disable=W0613 # returns list of all added passthroughs log.debug1("direct.getAllPassthroughs()") return self.fw.direct.get_all_passthroughs() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='', out_signature='') @dbus_handle_exceptions def removeAllPassthroughs(self, sender=None): # pylint: disable=W0613 # remove all passhroughs log.debug1("direct.removeAllPassthroughs()") # remove in reverse order to avoid removing non-empty chains for passthrough in reversed(self.getAllPassthroughs()): self.removePassthrough(*passthrough) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_DIRECT_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_DIRECT, in_signature='s', out_signature='aas') @dbus_handle_exceptions def getPassthroughs(self, ipv, sender=None): # pylint: disable=W0613 # returns list of all added passthroughs with ipv ipv = dbus_to_python(ipv) log.debug1("direct.getPassthroughs('%s')", ipv) return self.fw.direct.get_passthroughs(ipv) @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sas') @dbus_handle_exceptions def PassthroughAdded(self, ipv, args): log.debug1("direct.PassthroughAdded('%s', '%s')" % \ (ipv, "','".join(args))) @dbus.service.signal(config.dbus.DBUS_INTERFACE_DIRECT, signature='sas') @dbus_handle_exceptions def PassthroughRemoved(self, ipv, args): log.debug1("direct.PassthroughRemoved('%s', '%s')" % \ (ipv, "','".join(args))) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_ALL) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='') @dbus_handle_exceptions def authorizeAll(self, sender=None): # pylint: disable=W0613 """ PK_ACTION_ALL implies all other actions, i.e. once a subject is authorized for PK_ACTION_ALL it's also authorized for any other action. Use-case is GUI (RHBZ#994729). """ pass # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # IPSETS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='s', out_signature='b') @dbus_handle_exceptions def queryIPSet(self, ipset, sender=None): # pylint: disable=W0613 # returns true if a set with the name exists ipset = dbus_to_python(ipset) log.debug1("ipset.queryIPSet('%s')" % (ipset)) return self.fw.ipset.query_ipset(ipset) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='', out_signature='as') @dbus_handle_exceptions def getIPSets(self, sender=None): # pylint: disable=W0613 # returns list of added sets log.debug1("ipsets.getIPSets()") return self.fw.ipset.get_ipsets() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='s', out_signature=IPSet.DBUS_SIGNATURE) @dbus_handle_exceptions def getIPSetSettings(self, ipset, sender=None): # pylint: disable=W0613 # returns ipset settings for ipset ipset = dbus_to_python(ipset, str) log.debug1("getIPSetSettings(%s)", ipset) return self.fw.ipset.get_ipset(ipset).export_config() # set entries # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='ss', out_signature='') @dbus_handle_exceptions def addEntry(self, ipset, entry, sender=None): # adds ipset entry ipset = dbus_to_python(ipset) entry = dbus_to_python(entry) log.debug1("ipset.addEntry('%s', '%s')" % (ipset, entry)) self.accessCheck(sender) self.fw.ipset.add_entry(ipset, entry) self.EntryAdded(ipset, entry) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='ss', out_signature='') @dbus_handle_exceptions def removeEntry(self, ipset, entry, sender=None): # removes ipset entry ipset = dbus_to_python(ipset) entry = dbus_to_python(entry) log.debug1("ipset.removeEntry('%s', '%s')" % (ipset, entry)) self.accessCheck(sender) self.fw.ipset.remove_entry(ipset, entry) self.EntryRemoved(ipset, entry) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='ss', out_signature='b') @dbus_handle_exceptions def queryEntry(self, ipset, entry, sender=None): # pylint: disable=W0613 # returns true if the entry exists in the ipset ipset = dbus_to_python(ipset) entry = dbus_to_python(entry) log.debug1("ipset.queryEntry('%s', '%s')" % (ipset, entry)) return self.fw.ipset.query_entry(ipset, entry) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='s', out_signature='as') @dbus_handle_exceptions def getEntries(self, ipset, sender=None): # pylint: disable=W0613 # returns list of added entries for the ipset ipset = dbus_to_python(ipset) log.debug1("ipset.getEntries('%s')" % ipset) return self.fw.ipset.get_entries(ipset) @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG) @dbus_service_method(config.dbus.DBUS_INTERFACE_IPSET, in_signature='sas') @dbus_handle_exceptions def setEntries(self, ipset, entries, sender=None): # pylint: disable=W0613 # returns list of added entries for the ipset ipset = dbus_to_python(ipset) entries = dbus_to_python(entries, list) log.debug1("ipset.setEntries('%s', '[%s]')", ipset, ",".join(entries)) old_entries = self.fw.ipset.get_entries(ipset) self.fw.ipset.set_entries(ipset, entries) old_entries_set = set(old_entries) entries_set = set(entries) for entry in entries_set - old_entries_set: self.EntryAdded(ipset, entry) for entry in old_entries_set - entries_set: self.EntryRemoved(ipset, entry) @dbus.service.signal(config.dbus.DBUS_INTERFACE_IPSET, signature='ss') @dbus_handle_exceptions def EntryAdded(self, ipset, entry): ipset = dbus_to_python(ipset) entry = dbus_to_python(entry) log.debug1("ipset.EntryAdded('%s', '%s')" % (ipset, entry)) @dbus.service.signal(config.dbus.DBUS_INTERFACE_IPSET, signature='ss') @dbus_handle_exceptions def EntryRemoved(self, ipset, entry): ipset = dbus_to_python(ipset) entry = dbus_to_python(entry) log.debug1("ipset.EntryRemoved('%s', '%s')" % (ipset, entry)) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # HELPERS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='', out_signature='as') @dbus_handle_exceptions def getHelpers(self, sender=None): # pylint: disable=W0613 # returns list of added sets log.debug1("helpers.getHelpers()") return self.fw.helper.get_helpers() @slip.dbus.polkit.require_auth(config.dbus.PK_ACTION_CONFIG_INFO) @dbus_service_method(config.dbus.DBUS_INTERFACE, in_signature='s', out_signature=Helper.DBUS_SIGNATURE) @dbus_handle_exceptions def getHelperSettings(self, helper, sender=None): # pylint: disable=W0613 # returns helper settings for helper helper = dbus_to_python(helper, str) log.debug1("getHelperSettings(%s)", helper) return self.fw.helper.get_helper(helper).export_config() firewalld-0.4.4.6/src/firewall/server/server.py000066400000000000000000000074031320241217000214120ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # signal handling and run_server derived from setroubleshoot # Copyright (C) 2006,2007,2008,2009 Red Hat, Inc. # Authors: # John Dennis # Thomas Liu # Dan Walsh __all__ = [ "run_server" ] import sys import signal # force use of pygobject3 in python-slip from gi.repository import GObject, GLib sys.modules['gobject'] = GObject import dbus import dbus.service import dbus.mainloop.glib import slip.dbus from firewall import config from firewall.core.logger import log from firewall.server.firewalld import FirewallD ############################################################################ # # signal handlers # ############################################################################ def sighup(service): service.reload() return True def sigterm(mainloop): mainloop.quit() ############################################################################ # # run_server function # ############################################################################ def run_server(debug_gc=False): """ Main function for firewall server. Handles D-Bus and GLib mainloop. """ service = None if debug_gc: from pprint import pformat import gc gc.enable() gc.set_debug(gc.DEBUG_LEAK) gc_timeout = 10 def gc_collect(): gc.collect() if len(gc.garbage) > 0: print("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n") print("GARBAGE OBJECTS (%d):\n" % len(gc.garbage)) for x in gc.garbage: print(type(x), "\n ",) print(pformat(x)) print("\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n") GLib.timeout_add_seconds(gc_timeout, gc_collect) try: dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() name = dbus.service.BusName(config.dbus.DBUS_INTERFACE, bus=bus) service = FirewallD(name, config.dbus.DBUS_PATH) mainloop = GLib.MainLoop() slip.dbus.service.set_mainloop(mainloop) if debug_gc: GLib.timeout_add_seconds(gc_timeout, gc_collect) # use unix_signal_add if available, else unix_signal_add_full if hasattr(GLib, 'unix_signal_add'): unix_signal_add = GLib.unix_signal_add else: unix_signal_add = GLib.unix_signal_add_full unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGHUP, sighup, service) unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM, sigterm, mainloop) mainloop.run() except KeyboardInterrupt as e: log.debug1("Stopping..") except SystemExit as e: log.error("Raising SystemExit in run_server") except Exception as e: log.error("Exception %s: %s", e.__class__.__name__, str(e)) if service: service.stop() firewalld-0.4.4.6/src/firewallctl000077500000000000000000004414111320241217000166560ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2009-2016 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from gi.repository import GObject import sys sys.modules['gobject'] = GObject import argparse import os from firewall.client import FirewallClient, FirewallClientIPSetSettings, \ FirewallClientZoneSettings, FirewallClientServiceSettings, \ FirewallClientHelperSettings, FirewallClientIcmpTypeSettings from firewall.errors import FirewallError from firewall import errors from firewall.functions import joinArgs, splitArgs from firewall.core.fw_nm import nm_is_imported, \ nm_get_connection_of_interface, nm_get_zone_of_connection, \ nm_set_zone_of_connection from firewall.core.io.zone import zone_reader from firewall.core.io.service import service_reader from firewall.core.io.ipset import ipset_reader from firewall.core.io.helper import helper_reader from firewall.core.io.icmptype import icmptype_reader from firewall.command import FirewallCommand # def try_set_zone_of_interface(_zone, interface): if nm_is_imported(): try: connection = nm_get_connection_of_interface(interface) except Exception: pass else: if connection is not None: if _zone == nm_get_zone_of_connection(connection): if _zone == "": cmd.print_warning("The interface is under control of " "NetworkManager and already bound to " "the default zone") else: cmd.print_warning("The interface is under control of " "NetworkManager and already bound " "to '%s'" % _zone) if _zone == "": cmd.print_msg("The interface is under control of " "NetworkManager, setting zone to default.") else: cmd.print_msg("The interface is under control of " "NetworkManager, setting zone " "to '%s'." % _zone) nm_set_zone_of_connection(_zone, connection) return True return False # parser = argparse.ArgumentParser( description="firewall command line control utility") subparsers = parser.add_subparsers() # output grp_output = parser.add_mutually_exclusive_group() grp_output.add_argument("-v", "--verbose", action="store_true") grp_output.add_argument("-q", "--quiet", action="store_true") # version grp_version = subparsers.add_parser("version", help="Show firewall version") grp_version.set_defaults(parser="version") # state grp_state = subparsers.add_parser("state", help="Get firewalld state") grp_state.set_defaults(parser="state") # reload grp_reload = subparsers.add_parser("reload", help="Reload firewalld") grp_reload.set_defaults(parser="reload") grp_reload.add_argument("-c", "--complete", action="store_true") # runtime_to_permanent grp_runtime_to_permanent = subparsers.add_parser( "runtime-to-permanent", help="Save run-time as permanent configuration") grp_runtime_to_permanent.set_defaults(parser="runtime-to-permanent") ############################################################################# # list grp_list = subparsers.add_parser( "list", help="List zones, services ipsets, helpers or icmptypes") grp_list.set_defaults(parser="list") grp_list_subparsers = grp_list.add_subparsers(help="Commands") grp_list_zones = grp_list_subparsers.add_parser("zones", help="List zones") grp_list_zones.set_defaults(list="zones") group = grp_list_zones.add_mutually_exclusive_group() group.add_argument("-a", "--active", action="store_true") group.add_argument("-p", "--permanent", action="store_true") grp_list_services = grp_list_subparsers.add_parser( "services", help="List services") grp_list_services.set_defaults(list="services") grp_list_services.add_argument("-p", "--permanent", action="store_true") grp_list_ipsets = grp_list_subparsers.add_parser("ipsets", help="List ipsets") grp_list_ipsets.set_defaults(list="ipsets") grp_list_ipsets.add_argument("-p", "--permanent", action="store_true") grp_list_helpers = grp_list_subparsers.add_parser( "helpers", help="List helpers") grp_list_helpers.set_defaults(list="helpers") grp_list_helpers.add_argument("-p", "--permanent", action="store_true") grp_list_icmptypes = grp_list_subparsers.add_parser( "icmptypes", help="List icmptypes") grp_list_icmptypes.set_defaults(list="icmptypes") grp_list_icmptypes.add_argument("-p", "--permanent", action="store_true") ############################################################################# # info grp_info = subparsers.add_parser( "info", help="Info about a zone, service, ipset, helper or icmptype") grp_info.set_defaults(parser="info") grp_info_subparsers = grp_info.add_subparsers(help="Commands") grp_info_zone = grp_info_subparsers.add_parser("zone", help="Info about a zone") grp_info_zone.set_defaults(info="zone") grp_info_zone.add_argument("zone", action="store", metavar="") grp_info_zone.add_argument("-p", "--permanent", action="store_true") grp_info_zones = grp_info_subparsers.add_parser( "zones", help="Info about all zones") grp_info_zones.set_defaults(info="zones") group = grp_info_zones.add_mutually_exclusive_group() group.add_argument("-a", "--active", action="store_true") group.add_argument("-p", "--permanent", action="store_true") grp_info_service = grp_info_subparsers.add_parser( "service", help="Info about a service") grp_info_service.set_defaults(info="service") grp_info_service.add_argument("service", action="store", metavar="") grp_info_service.add_argument("-p", "--permanent", action="store_true") grp_info_services = grp_info_subparsers.add_parser( "services", help="Info about all services") grp_info_services.set_defaults(info="services") grp_info_services.add_argument("-p", "--permanent", action="store_true") grp_info_ipset = grp_info_subparsers.add_parser( "ipset", help="Info about ipsets") grp_info_ipset.set_defaults(info="ipset") grp_info_ipset.add_argument("ipset", action="store", metavar="") grp_info_ipset.add_argument("-p", "--permanent", action="store_true") grp_info_ipsets = grp_info_subparsers.add_parser( "ipsets", help="Info about all ipsets") grp_info_ipsets.set_defaults(info="ipsets") grp_info_ipsets.add_argument("-p", "--permanent", action="store_true") grp_info_helper = grp_info_subparsers.add_parser( "helper", help="Info about a helper") grp_info_helper.set_defaults(info="helper") grp_info_helper.add_argument("helper", action="store", metavar="") grp_info_helper.add_argument("-p", "--permanent", action="store_true") grp_info_helpers = grp_info_subparsers.add_parser( "helpers", help="Info about all helpers") grp_info_helpers.set_defaults(info="helpers") grp_info_helpers.add_argument("-p", "--permanent", action="store_true") grp_info_icmptype = grp_info_subparsers.add_parser( "icmptype", help="Info about a icmptype") grp_info_icmptype.set_defaults(info="icmptype") grp_info_icmptype.add_argument("icmptype", action="store", metavar="") grp_info_icmptype.add_argument("-p", "--permanent", action="store_true") grp_info_icmptypes = grp_info_subparsers.add_parser( "icmptypes", help="Info about all icmptypes") grp_info_icmptypes.set_defaults(info="icmptypes") grp_info_icmptypes.add_argument("-p", "--permanent", action="store_true") ############################################################################# # zone grp_zone = subparsers.add_parser("zone", help="Zone commands") grp_zone.set_defaults(parser="zone") grp_zone.add_argument("zone", type=str, action="store", metavar="") grp_zone.add_argument("-p", "--permanent", action="store_true") zone_subparsers = grp_zone.add_subparsers(help="Zone Commands") # zone.load_defaults grp_zone_load_defaults = zone_subparsers.add_parser( "load-defaults", help="Load defaults") grp_zone_load_defaults.set_defaults(action="load-defaults") # zone.add grp_zone_add = zone_subparsers.add_parser("add", help="Add commands") grp_zone_add.set_defaults(action="add") zone_add_subparsers = grp_zone_add.add_subparsers() # zone.add.interface grp_zone_add_interface = zone_add_subparsers.add_parser( "interface", help="Add interface") grp_zone_add_interface.set_defaults(item="interface", required=True) grp_zone_add_interface.add_argument("interface", metavar="", nargs="+") # zone.add.source grp_zone_add_source = zone_add_subparsers.add_parser("source", help="Add source") grp_zone_add_source.set_defaults(item="source", required=True) grp_zone_add_source.add_argument("source", metavar="", nargs="+") # zone.add.service grp_zone_add_service = zone_add_subparsers.add_parser("service", help="Add service") grp_zone_add_service.set_defaults(item="service", required=True) grp_zone_add_service.add_argument("service", metavar="", nargs="+") grp_zone_add_service.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.port grp_zone_add_port = zone_add_subparsers.add_parser("port", help="Add port") grp_zone_add_port.set_defaults(item="port") grp_zone_add_port.add_argument("port", metavar="", nargs="+") grp_zone_add_port.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.protocol grp_zone_add_protocol = zone_add_subparsers.add_parser("protocol", help="Add protocol") grp_zone_add_protocol.set_defaults(item="protocol") grp_zone_add_protocol.add_argument("protocol", metavar="", nargs="+") grp_zone_add_protocol.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.source-port grp_zone_add_source_port = zone_add_subparsers.add_parser( "source-port", help="Add source port") grp_zone_add_source_port.set_defaults(item="source-port") grp_zone_add_source_port.add_argument("port", metavar="", nargs="+") grp_zone_add_source_port.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.rich-rule grp_zone_add_rich_rule = zone_add_subparsers.add_parser("rich-rule", help="Add rich rule") grp_zone_add_rich_rule.set_defaults(item="rich-rule", required=True) grp_zone_add_rich_rule.add_argument("rich_rule", metavar="", nargs="+") grp_zone_add_rich_rule.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.masquerade grp_zone_add_masquerade = zone_add_subparsers.add_parser("masquerade", help="Add masquerade") grp_zone_add_masquerade.set_defaults(item="masquerade", required=True) grp_zone_add_masquerade.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.forward-port grp_zone_add_forward_port = zone_add_subparsers.add_parser( "forward-port", help="Add forward-port") grp_zone_add_forward_port.set_defaults(item="forward-port") grp_zone_add_forward_port.add_argument("forward_port", metavar="", nargs="+") grp_zone_add_forward_port.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.icmp-block grp_zone_add_icmp_block = zone_add_subparsers.add_parser("icmp-block", help="Add icmp-block") grp_zone_add_icmp_block.set_defaults(item="icmp-block", required=True) grp_zone_add_icmp_block.add_argument("icmp_block", metavar="", nargs="+") grp_zone_add_icmp_block.add_argument("-t", "--timeout", type=int, default=0, metavar="") # zone.add.icmp-block-inversion grp_zone_add_icmp_block_inversion = zone_add_subparsers.add_parser( "icmp-block-inversion", help="Add icmp-block-inversion") grp_zone_add_icmp_block_inversion.set_defaults(item="icmp-block-inversion", required=True) # zone.get grp_zone_get = zone_subparsers.add_parser("get", help="Get commands") grp_zone_get.set_defaults(action="get") zone_get_subparsers = grp_zone_get.add_subparsers() # zone.get.description grp_zone_get_description = zone_get_subparsers.add_parser( "description", help="Get description") grp_zone_get_description.set_defaults(item="description") # zone.get.short grp_zone_get_short = zone_get_subparsers.add_parser( "short", help="Get short") grp_zone_get_short.set_defaults(item="short") # zone.set grp_zone_set = zone_subparsers.add_parser("set", help="Set commands") grp_zone_set.set_defaults(action="set") zone_set_subparsers = grp_zone_set.add_subparsers() # zone.set.description grp_zone_set_description = zone_set_subparsers.add_parser( "description", help="Set description") grp_zone_set_description.set_defaults(item="description") grp_zone_set_description.add_argument("description", metavar="") # zone.set.short grp_zone_set_short = zone_set_subparsers.add_parser( "short", help="Set short") grp_zone_set_short.set_defaults(item="short") grp_zone_set_short.add_argument("short", metavar="") # zone.remove grp_zone_remove = zone_subparsers.add_parser("remove", help="Remove commands") grp_zone_remove.set_defaults(action="remove") zone_remove_subparsers = grp_zone_remove.add_subparsers() # zone.remove.interface grp_zone_remove_interface = zone_remove_subparsers.add_parser( "interface", help="Remove interface") grp_zone_remove_interface.set_defaults(item="interface") grp_zone_remove_interface.add_argument("interface", metavar="", nargs="+") # zone.remove.source grp_zone_remove_source = zone_remove_subparsers.add_parser("source", help="Remove source") grp_zone_remove_source.set_defaults(item="source") grp_zone_remove_source.add_argument("source", metavar="", nargs="+") # zone.remove.service grp_zone_remove_service = zone_remove_subparsers.add_parser( "service", help="Remove service") grp_zone_remove_service.set_defaults(item="service") grp_zone_remove_service.add_argument("service", metavar="", nargs="+") # zone.remove.port grp_zone_remove_port = zone_remove_subparsers.add_parser("port", help="Remove port") grp_zone_remove_port.set_defaults(item="port") grp_zone_remove_port.add_argument("port", metavar="", nargs="+") # zone.remove.protocol grp_zone_remove_protocol = zone_remove_subparsers.add_parser( "protocol", help="Remove protocol") grp_zone_remove_protocol.set_defaults(item="protocol") grp_zone_remove_protocol.add_argument("protocol", metavar="", nargs="+") # zone.remove.source-port grp_zone_remove_source_port = zone_remove_subparsers.add_parser( "source-port", help="Remove source port") grp_zone_remove_source_port.set_defaults(item="source-port") grp_zone_remove_source_port.add_argument("port", metavar="", nargs="+") # zone.remove.rich-rule grp_zone_remove_rich_rule = zone_remove_subparsers.add_parser( "rich-rule", help="Remove rich rule") grp_zone_remove_rich_rule.set_defaults(item="rich-rule", required=True) grp_zone_remove_rich_rule.add_argument("rich_rule", metavar="", nargs="+") # zone.remove.masquerade grp_zone_remove_masquerade = zone_remove_subparsers.add_parser( "masquerade", help="Add masquerade") grp_zone_remove_masquerade.set_defaults(item="masquerade", required=True) # zone.remove.forward-port grp_zone_remove_forward_port = zone_remove_subparsers.add_parser( "forward-port", help="Remove forward port") grp_zone_remove_forward_port.set_defaults(item="forward-port") grp_zone_remove_forward_port.add_argument("forward_port", metavar="", nargs="+") # zone.remove.icmp-block grp_zone_remove_icmp_block = zone_remove_subparsers.add_parser( "icmp-block", help="Remove icmp block") grp_zone_remove_icmp_block.set_defaults(item="icmp-block") grp_zone_remove_icmp_block.add_argument("icmp_block", metavar="", nargs="+") # zone.remove.icmp-block-inversion grp_zone_remove_icmp_block_inversion = zone_remove_subparsers.add_parser( "icmp-block-inversion", help="Remove icmp block inversion") grp_zone_remove_icmp_block_inversion.set_defaults(item="icmp-block-inversion") # zone.query grp_zone_query = zone_subparsers.add_parser("query", help="Query commands") grp_zone_query.set_defaults(action="query") zone_query_subparsers = grp_zone_query.add_subparsers() # zone.query.interface grp_zone_query_interface = zone_query_subparsers.add_parser( "interface", help="Query interface") grp_zone_query_interface.set_defaults(item="interface") grp_zone_query_interface.add_argument("interface", metavar="", nargs="+") # zone.query.source grp_zone_query_source = zone_query_subparsers.add_parser("source", help="Query source") grp_zone_query_source.set_defaults(item="source") grp_zone_query_source.add_argument("source", metavar="", nargs="+") # zone.query.service grp_zone_query_service = zone_query_subparsers.add_parser("service", help="Query service") grp_zone_query_service.set_defaults(item="service") grp_zone_query_service.add_argument("service", metavar="", nargs="+") # zone.query.port grp_zone_query_port = zone_query_subparsers.add_parser("port", help="Query port") grp_zone_query_port.set_defaults(item="port") grp_zone_query_port.add_argument("port", metavar="", nargs="+") # zone.query.protocol grp_zone_query_protocol = zone_query_subparsers.add_parser( "protocol", help="Query protocol") grp_zone_query_protocol.set_defaults(item="protocol") grp_zone_query_protocol.add_argument("protocol", metavar="", nargs="+") # zone.query.source-port grp_zone_query_source_port = zone_query_subparsers.add_parser( "source-port", help="Query source port") grp_zone_query_source_port.set_defaults(item="source-port") grp_zone_query_source_port.add_argument("port", metavar="", nargs="+") # zone.query.rich-rule grp_zone_query_rich_rule = zone_query_subparsers.add_parser( "rich-rule", help="Query rich rule") grp_zone_query_rich_rule.set_defaults(item="rich-rule") grp_zone_query_rich_rule.add_argument("rich_rule", metavar="", nargs="+") # zone.query.masquerade grp_zone_query_masquerade = zone_query_subparsers.add_parser( "masquerade", help="Query masquerade") grp_zone_query_masquerade.set_defaults(item="masquerade") # zone.query.forward-port grp_zone_query_forward_port = zone_query_subparsers.add_parser( "forward-port", help="Query forward port") grp_zone_query_forward_port.set_defaults(item="forward-port") grp_zone_query_forward_port.add_argument("forward_port", metavar="", nargs="+") # zone.query.icmp-block grp_zone_query_icmp_block = zone_query_subparsers.add_parser( "icmp-block", help="Query icmp block") grp_zone_query_icmp_block.set_defaults(item="icmp-block") grp_zone_query_icmp_block.add_argument("icmp_block", metavar="", nargs="+") # zone.query.icmp-block-inversion grp_zone_query_icmp_block_inversion = zone_query_subparsers.add_parser( "icmp-block-inversion", help="Query icmp block inversion") grp_zone_query_icmp_block_inversion.set_defaults(item="icmp-block-inversion") # zone.list grp_zone_list = zone_subparsers.add_parser("list", help="List commands") grp_zone_list.set_defaults(action="list") zone_list_subparsers = grp_zone_list.add_subparsers() # zone.list.interfaces grp_zone_list_interfaces = zone_list_subparsers.add_parser( "interfaces", help="List interfaces") grp_zone_list_interfaces.set_defaults(item="interfaces") # zone.list.sources grp_zone_list_sources = zone_list_subparsers.add_parser("sources", help="List sources") grp_zone_list_sources.set_defaults(item="sources") # zone.list.services grp_zone_list_services = zone_list_subparsers.add_parser("services", help="List services") grp_zone_list_services.set_defaults(item="services") # zone.list.ports grp_zone_list_ports = zone_list_subparsers.add_parser("ports", help="List ports") grp_zone_list_ports.set_defaults(item="ports") # zone.list.protocols grp_zone_list_protocols = zone_list_subparsers.add_parser("protocols", help="List protocols") grp_zone_list_protocols.set_defaults(item="protocols") # zone.list.source-ports grp_zone_list_source_ports = zone_list_subparsers.add_parser( "source-ports", help="List source-ports") grp_zone_list_source_ports.set_defaults(item="source-ports") # zone.list.rich-rules grp_zone_list_rich_rules = zone_list_subparsers.add_parser( "rich-rules", help="List rich-rules") grp_zone_list_rich_rules.set_defaults(item="rich-rules") # zone.list.forward-ports grp_zone_list_forward_ports = zone_list_subparsers.add_parser( "forward-ports", help="List forward ports") grp_zone_list_forward_ports.set_defaults(item="forward-ports") # zone.list.icmp-blocks grp_zone_list_icmp_blocks = zone_list_subparsers.add_parser( "icmp-blocks", help="List icmp blocks") grp_zone_list_icmp_blocks.set_defaults(item="icmp-blocks") ############################################################################# # service grp_service = subparsers.add_parser("service", help="Service commands") grp_service.set_defaults(parser="service") grp_service.add_argument("service", type=str, action="store", metavar="") grp_service.add_argument("-p", "--permanent", action="store_true") service_subparsers = grp_service.add_subparsers(help="Service Commands") # service.load_defaults grp_service_load_defaults = service_subparsers.add_parser("load-defaults", help="Load defaults") grp_service_load_defaults.set_defaults(action="load-defaults") # service.add grp_service_add = service_subparsers.add_parser("add", help="Add commands") grp_service_add.set_defaults(action="add") service_add_subparsers = grp_service_add.add_subparsers() # service.add.port grp_service_add_port = service_add_subparsers.add_parser("port", help="Add port") grp_service_add_port.set_defaults(item="port") grp_service_add_port.add_argument("port", metavar="", nargs="+") # service.add.protocol grp_service_add_protocol = service_add_subparsers.add_parser( "protocol", help="Add protocol") grp_service_add_protocol.set_defaults(item="protocol") grp_service_add_protocol.add_argument("protocol", metavar="", nargs="+") # service.add.source-port grp_service_add_source_port = service_add_subparsers.add_parser( "source-port", help="Add source port") grp_service_add_source_port.set_defaults(item="source-port") grp_service_add_source_port.add_argument("port", metavar="", nargs="+") # service.add.module grp_service_add_module = service_add_subparsers.add_parser("module", help="Add module") grp_service_add_module.set_defaults(item="module") grp_service_add_module.add_argument("module", metavar="", nargs="+") # service.add.destination grp_service_add_destination = service_add_subparsers.add_parser( "destination", help="Add destination") grp_service_add_destination.set_defaults(item="destination") grp_service_add_destination.add_argument("destination", metavar="", nargs="+") # service.get grp_service_get = service_subparsers.add_parser("get", help="Get commands") grp_service_get.set_defaults(action="get") service_get_subparsers = grp_service_get.add_subparsers() # service.get.description grp_service_get_description = service_get_subparsers.add_parser( "description", help="Get description") grp_service_get_description.set_defaults(item="description") # service.get.short grp_service_get_short = service_get_subparsers.add_parser( "short", help="Get short") grp_service_get_short.set_defaults(item="short") # service.set grp_service_set = service_subparsers.add_parser("set", help="Set commands") grp_service_set.set_defaults(action="set") service_set_subparsers = grp_service_set.add_subparsers() # service.set.description grp_service_set_description = service_set_subparsers.add_parser( "description", help="Set description") grp_service_set_description.set_defaults(item="description") grp_service_set_description.add_argument("description", metavar="") # service.set.short grp_service_set_short = service_set_subparsers.add_parser( "short", help="Set short") grp_service_set_short.set_defaults(item="short") grp_service_set_short.add_argument("short", metavar="") # service.remove grp_service_remove = service_subparsers.add_parser("remove", help="Remove commands") grp_service_remove.set_defaults(action="remove") service_remove_subparsers = grp_service_remove.add_subparsers() # service.remove.port grp_service_remove_port = service_remove_subparsers.add_parser( "port", help="Remove port") grp_service_remove_port.set_defaults(item="port") grp_service_remove_port.add_argument("port", metavar="", nargs="+") # service.remove.protocol grp_service_remove_protocol = service_remove_subparsers.add_parser( "protocol", help="Remove protocol") grp_service_remove_protocol.set_defaults(item="protocol") grp_service_remove_protocol.add_argument("protocol", metavar="", nargs="+") # service.remove.source-port grp_service_remove_source_port = service_remove_subparsers.add_parser( "source-port", help="Remove source port") grp_service_remove_source_port.set_defaults(item="source-port") grp_service_remove_source_port.add_argument("port", metavar="", nargs="+") # service.remove.module grp_service_remove_module = service_remove_subparsers.add_parser( "module", help="Remove module") grp_service_remove_module.set_defaults(item="module") grp_service_remove_module.add_argument("module", metavar="", nargs="+") # service.remove.destination grp_service_remove_destination = service_remove_subparsers.add_parser( "destination", help="Remove destination") grp_service_remove_destination.set_defaults(item="destination") grp_service_remove_destination.add_argument("destination", metavar="", nargs="+") # service.query grp_service_query = service_subparsers.add_parser("query", help="Query commands") grp_service_query.set_defaults(action="query") service_query_subparsers = grp_service_query.add_subparsers() # service.query.port grp_service_query_port = service_query_subparsers.add_parser("port", help="Query port") grp_service_query_port.set_defaults(item="port") grp_service_query_port.add_argument("port", metavar="", nargs="+") # service.query.protocol grp_service_query_protocol = service_query_subparsers.add_parser( "protocol", help="Query protocol") grp_service_query_protocol.set_defaults(item="protocol") grp_service_query_protocol.add_argument("protocol", metavar="", nargs="+") # service.query.source-port grp_service_query_source_port = service_query_subparsers.add_parser( "source-port", help="Query source port") grp_service_query_source_port.set_defaults(item="source-port") grp_service_query_source_port.add_argument("port", metavar="", nargs="+") # service.query.module grp_service_query_module = service_query_subparsers.add_parser( "module", help="Query module") grp_service_query_module.set_defaults(item="module") grp_service_query_module.add_argument("module", metavar="", nargs="+") # service.query.destination grp_service_query_destination = service_query_subparsers.add_parser( "destination", help="Query destination") grp_service_query_destination.set_defaults(item="destination") grp_service_query_destination.add_argument("destination", metavar="", nargs="+") # service.list grp_service_list = service_subparsers.add_parser("list", help="List commands") grp_service_list.set_defaults(action="list") service_list_subparsers = grp_service_list.add_subparsers() # service.list.services grp_service_list_services = service_list_subparsers.add_parser( "services", help="List services") grp_service_list_services.set_defaults(item="services") # service.list.ports grp_service_list_ports = service_list_subparsers.add_parser("ports", help="List ports") grp_service_list_ports.set_defaults(item="ports") # service.list.protocols grp_service_list_protocols = service_list_subparsers.add_parser( "protocols", help="List protocols") grp_service_list_protocols.set_defaults(item="protocols") # service.list.source-ports grp_service_list_source_ports = service_list_subparsers.add_parser( "source-ports", help="List source-ports") grp_service_list_source_ports.set_defaults(item="source-ports") # service.list.modules grp_service_list_modules = service_list_subparsers.add_parser( "modules", help="List modules") grp_service_list_modules.set_defaults(item="modules") # service.list.destinations grp_service_list_destinations = service_list_subparsers.add_parser( "destinations", help="List destinations") grp_service_list_destinations.set_defaults(item="destinations") ############################################################################# # ipset grp_ipset = subparsers.add_parser("ipset", help="Ipset commands") grp_ipset.set_defaults(parser="ipset") grp_ipset.add_argument("ipset", type=str, action="store", metavar="") grp_ipset.add_argument("-p", "--permanent", action="store_true") ipset_subparsers = grp_ipset.add_subparsers(help="Ipset Commands") # ipset.load_defaults grp_ipset_load_defaults = ipset_subparsers.add_parser("load-defaults", help="Load defaults") grp_ipset_load_defaults.set_defaults(action="load-defaults") # ipset.add grp_ipset_add = ipset_subparsers.add_parser("add", help="Add commands") grp_ipset_add.set_defaults(action="add") ipset_add_subparsers = grp_ipset_add.add_subparsers() # ipset.add.entry grp_ipset_add_entry = ipset_add_subparsers.add_parser("entry", help="Add entry") grp_ipset_add_entry.set_defaults(item="entry") grp_ipset_add_entry.add_argument("entry", metavar="", nargs="+") # ipset.add.entries-from-file grp_ipset_add_entries_from_file = ipset_add_subparsers.add_parser( "entries-from-file", help="Add entries from file") grp_ipset_add_entries_from_file.set_defaults(item="entries-from-file") grp_ipset_add_entries_from_file.add_argument("entries_from_file", metavar="", nargs="+") # ipset.get grp_ipset_get = ipset_subparsers.add_parser("get", help="Get commands") grp_ipset_get.set_defaults(action="get") ipset_get_subparsers = grp_ipset_get.add_subparsers() # ipset.get.description grp_ipset_get_description = ipset_get_subparsers.add_parser( "description", help="Get description") grp_ipset_get_description.set_defaults(item="description") # ipset.get.short grp_ipset_get_short = ipset_get_subparsers.add_parser("short", help="Get short") grp_ipset_get_short.set_defaults(item="short") # ipset.set grp_ipset_set = ipset_subparsers.add_parser("set", help="Set commands") grp_ipset_set.set_defaults(action="set") ipset_set_subparsers = grp_ipset_set.add_subparsers() # ipset.set.description grp_ipset_set_description = ipset_set_subparsers.add_parser( "description", help="Set description") grp_ipset_set_description.set_defaults(item="description") grp_ipset_set_description.add_argument("description", metavar="") # ipset.set.short grp_ipset_set_short = ipset_set_subparsers.add_parser("short", help="Set short") grp_ipset_set_short.set_defaults(item="short") grp_ipset_set_short.add_argument("short", metavar="") # ipset.remove grp_ipset_remove = ipset_subparsers.add_parser("remove", help="Remove commands") grp_ipset_remove.set_defaults(action="remove") ipset_remove_subparsers = grp_ipset_remove.add_subparsers() # ipset.remove.entry grp_ipset_remove_entry = ipset_remove_subparsers.add_parser("entry", help="Remove entry") grp_ipset_remove_entry.set_defaults(item="entry") grp_ipset_remove_entry.add_argument("entry", metavar="", nargs="+") # ipset.remove.entries-from-file grp_ipset_remove_entries_from_file = ipset_remove_subparsers.add_parser( "entries-from-file", help="Remove entries from file") grp_ipset_remove_entries_from_file.set_defaults(item="entries-from-file") grp_ipset_remove_entries_from_file.add_argument("entries_from_file", metavar="", nargs="+") # ipset.remove.all grp_ipset_remove_all = ipset_remove_subparsers.add_parser( "all", help="Remove all entries") grp_ipset_remove_all.set_defaults(item="all") # ipset.query grp_ipset_query = ipset_subparsers.add_parser("query", help="Query commands") grp_ipset_query.set_defaults(action="query") ipset_query_subparsers = grp_ipset_query.add_subparsers() # ipset.query.entry grp_ipset_query_entry = ipset_query_subparsers.add_parser("entry", help="Query entry") grp_ipset_query_entry.set_defaults(item="entry") grp_ipset_query_entry.add_argument("entry", metavar="", nargs="+") # ipset.query.entries-from-file grp_ipset_query_entries_from_file = ipset_query_subparsers.add_parser( "entries-from-file", help="Query entries from file") grp_ipset_query_entries_from_file.set_defaults(item="entries-from-file") grp_ipset_query_entries_from_file.add_argument("entries_from_file", metavar="", nargs="+") # ipset.list grp_ipset_list = ipset_subparsers.add_parser("list", help="List commands") grp_ipset_list.set_defaults(action="list") ipset_list_subparsers = grp_ipset_list.add_subparsers() # ipset.list.entries grp_ipset_list_entries = ipset_list_subparsers.add_parser("entries", help="List entries") grp_ipset_list_entries.set_defaults(item="entries") ############################################################################# # icmptype grp_icmptype = subparsers.add_parser("icmptype", help="Icmptype commands") grp_icmptype.set_defaults(parser="icmptype") grp_icmptype.add_argument("icmptype", type=str, action="store", metavar="") grp_icmptype.add_argument("-p", "--permanent", action="store_true") icmptype_subparsers = grp_icmptype.add_subparsers(help="Icmptype Commands") # icmptype.load_defaults grp_icmptype_load_defaults = icmptype_subparsers.add_parser( "load-defaults", help="Load defaults") grp_icmptype_load_defaults.set_defaults(action="load-defaults") # icmptype.add grp_icmptype_add = icmptype_subparsers.add_parser("add", help="Add commands") grp_icmptype_add.set_defaults(action="add") icmptype_add_subparsers = grp_icmptype_add.add_subparsers() # icmptype.add.destination grp_icmptype_add_destination = icmptype_add_subparsers.add_parser( "destination", help="Add destination") grp_icmptype_add_destination.set_defaults(item="destination") grp_icmptype_add_destination.add_argument("destination", metavar="", nargs="+") # icmptype.remove grp_icmptype_remove = icmptype_subparsers.add_parser("remove", help="Remove commands") grp_icmptype_remove.set_defaults(action="remove") icmptype_remove_subparsers = grp_icmptype_remove.add_subparsers() # icmptype.remove.destination grp_icmptype_remove_destination = icmptype_remove_subparsers.add_parser( "destination", help="Remove destination") grp_icmptype_remove_destination.set_defaults(item="destination") grp_icmptype_remove_destination.add_argument("destination", metavar="", nargs="+") # icmptype.get grp_icmptype_get = icmptype_subparsers.add_parser("get", help="Get commands") grp_icmptype_get.set_defaults(action="get") icmptype_get_subparsers = grp_icmptype_get.add_subparsers() # icmptype.get.description grp_icmptype_get_description = icmptype_get_subparsers.add_parser( "description", help="Get description") grp_icmptype_get_description.set_defaults(item="description") # icmptype.get.short grp_icmptype_get_short = icmptype_get_subparsers.add_parser( "short", help="Get short") grp_icmptype_get_short.set_defaults(item="short") # icmptype.set grp_icmptype_set = icmptype_subparsers.add_parser("set", help="Set commands") grp_icmptype_set.set_defaults(action="set") icmptype_set_subparsers = grp_icmptype_set.add_subparsers() # icmptype.set.description grp_icmptype_set_description = icmptype_set_subparsers.add_parser( "description", help="Set description") grp_icmptype_set_description.set_defaults(item="description") grp_icmptype_set_description.add_argument("description", metavar="") # icmptype.set.short grp_icmptype_set_short = icmptype_set_subparsers.add_parser( "short", help="Set short") grp_icmptype_set_short.set_defaults(item="short") grp_icmptype_set_short.add_argument("short", metavar="") # icmptype.query grp_icmptype_query = icmptype_subparsers.add_parser("query", help="Query commands") grp_icmptype_query.set_defaults(action="query") icmptype_query_subparsers = grp_icmptype_query.add_subparsers() # icmptype.query.destination grp_icmptype_query_destination = icmptype_query_subparsers.add_parser( "destination", help="Query destination") grp_icmptype_query_destination.set_defaults(item="destination") grp_icmptype_query_destination.add_argument("destination", metavar="", nargs="+") # icmptype.list grp_icmptype_list = icmptype_subparsers.add_parser("list", help="List commands") grp_icmptype_list.set_defaults(action="list") icmptype_list_subparsers = grp_icmptype_list.add_subparsers() # icmptype.list.destinations grp_icmptype_list_destinations = icmptype_list_subparsers.add_parser( "destinations", help="List destinations") grp_icmptype_list_destinations.set_defaults(item="destinations") ############################################################################# # new grp_new = subparsers.add_parser("new", help="New commands") grp_new.set_defaults(parser="new") grp_new.add_argument("-p", "--permanent", action="store_true") new_subparsers = grp_new.add_subparsers(help="New Commands") # new.zone grp_new_zone = new_subparsers.add_parser("zone", help="New zone") grp_new_zone.set_defaults(action="zone") grp_new_zone.add_argument("-n", "--name", metavar="") grp_new_zone.add_argument("-f", "--filename", metavar="") # new.service grp_new_service = new_subparsers.add_parser("service", help="New service") grp_new_service.set_defaults(action="service") grp_new_service.add_argument("-n", "--name", metavar="") grp_new_service.add_argument("-f", "--filename", metavar="") # new.ipset grp_new_ipset = new_subparsers.add_parser("ipset", help="New ipset") grp_new_ipset.set_defaults(action="ipset") grp_new_ipset.add_argument("-n", "--name", metavar="") grp_new_ipset.add_argument("-f", "--filename", metavar="") grp_new_ipset.add_argument("-t", "--type", metavar="") grp_new_ipset.add_argument("-o", "--option", metavar="[=]", nargs="*") #--type= [--option=[=]].. # new.icmptype grp_new_icmptype = new_subparsers.add_parser("icmptype", help="New icmptype") grp_new_icmptype.set_defaults(action="icmptype") grp_new_icmptype.add_argument("-n", "--name", metavar="") grp_new_icmptype.add_argument("-f", "--filename", metavar="") ############################################################################# # helper grp_helper = subparsers.add_parser("helper", help="Helper commands") grp_helper.set_defaults(parser="helper") grp_helper.add_argument("helper", type=str, action="store", metavar="") grp_helper.add_argument("-p", "--permanent", action="store_true") helper_subparsers = grp_helper.add_subparsers(help="Helper Commands") # helper.load_defaults grp_helper_load_defaults = helper_subparsers.add_parser( "load-defaults", help="Load defaults") grp_helper_load_defaults.set_defaults(action="load-defaults") # helper.add grp_helper_add = helper_subparsers.add_parser("add", help="Add commands") grp_helper_add.set_defaults(action="add") helper_add_subparsers = grp_helper_add.add_subparsers() # helper.add.port grp_helper_add_port = helper_add_subparsers.add_parser("port", help="Add port") grp_helper_add_port.set_defaults(item="port") grp_helper_add_port.add_argument("port", metavar="", nargs="+") # helper.remove grp_helper_remove = helper_subparsers.add_parser("remove", help="Remove commands") grp_helper_remove.set_defaults(action="remove") helper_remove_subparsers = grp_helper_remove.add_subparsers() # helper.remove.port grp_helper_remove_port = helper_remove_subparsers.add_parser( "port", help="Remove port") grp_helper_remove_port.set_defaults(item="port") grp_helper_remove_port.add_argument("port", metavar="", nargs="+") # helper.get grp_helper_get = helper_subparsers.add_parser("get", help="Get commands") grp_helper_get.set_defaults(action="get") helper_get_subparsers = grp_helper_get.add_subparsers() # helper.get.description grp_helper_get_description = helper_get_subparsers.add_parser( "description", help="Get description") grp_helper_get_description.set_defaults(item="description") # helper.get.family grp_helper_get_family = helper_get_subparsers.add_parser( "family", help="Get family") grp_helper_get_family.set_defaults(item="family") # helper.get.module grp_helper_get_module = helper_get_subparsers.add_parser( "module", help="Get module") grp_helper_get_module.set_defaults(item="module") # helper.get.short grp_helper_get_short = helper_get_subparsers.add_parser( "short", help="Get short") grp_helper_get_short.set_defaults(item="short") # helper.set grp_helper_set = helper_subparsers.add_parser("set", help="Set commands") grp_helper_set.set_defaults(action="set") helper_set_subparsers = grp_helper_set.add_subparsers() # helper.set.description grp_helper_set_description = helper_set_subparsers.add_parser( "description", help="Set description") grp_helper_set_description.set_defaults(item="description") grp_helper_set_description.add_argument("description", metavar="") # helper.set.family grp_helper_set_family = helper_set_subparsers.add_parser( "family", help="Set family") grp_helper_set_family.set_defaults(item="family") grp_helper_set_family.add_argument("family", metavar="") # helper.set.module grp_helper_set_module = helper_set_subparsers.add_parser( "module", help="Set module") grp_helper_set_module.set_defaults(item="module") grp_helper_set_module.add_argument("module", metavar="") # helper.set.short grp_helper_set_short = helper_set_subparsers.add_parser( "short", help="Set short") grp_helper_set_short.set_defaults(item="short") grp_helper_set_short.add_argument("short", metavar="") # helper.query grp_helper_query = helper_subparsers.add_parser("query", help="Query commands") grp_helper_query.set_defaults(action="query") helper_query_subparsers = grp_helper_query.add_subparsers() # helper.query.port grp_helper_query_port = helper_query_subparsers.add_parser("port", help="Query port") grp_helper_query_port.set_defaults(item="port") grp_helper_query_port.add_argument("port", metavar="", nargs="+") # helper.list grp_helper_list = helper_subparsers.add_parser("list", help="List commands") grp_helper_list.set_defaults(action="list") helper_list_subparsers = grp_helper_list.add_subparsers() # helper.list.ports grp_helper_list_ports = helper_list_subparsers.add_parser("ports", help="List ports") grp_helper_list_ports.set_defaults(item="ports") ############################################################################# # new grp_new = subparsers.add_parser("new", help="New commands") grp_new.set_defaults(parser="new") grp_new.add_argument("-p", "--permanent", action="store_true") new_subparsers = grp_new.add_subparsers(help="New Commands") # new.zone grp_new_zone = new_subparsers.add_parser("zone", help="New zone") grp_new_zone.set_defaults(action="zone") grp_new_zone.add_argument("-n", "--name", metavar="") grp_new_zone.add_argument("-f", "--filename", metavar="") # new.service grp_new_service = new_subparsers.add_parser("service", help="New service") grp_new_service.set_defaults(action="service") grp_new_service.add_argument("-n", "--name", metavar="") grp_new_service.add_argument("-f", "--filename", metavar="") # new.ipset grp_new_ipset = new_subparsers.add_parser("ipset", help="New ipset") grp_new_ipset.set_defaults(action="ipset") grp_new_ipset.add_argument("-n", "--name", metavar="") grp_new_ipset.add_argument("-f", "--filename", metavar="") grp_new_ipset.add_argument("-t", "--type", metavar="") grp_new_ipset.add_argument("-o", "--option", metavar="[=]", nargs="*") #--type= [--option=[=]].. # new.helper grp_new_helper = new_subparsers.add_parser("helper", help="New helper") grp_new_helper.set_defaults(action="helper") grp_new_helper.add_argument("-n", "--name", metavar="") grp_new_helper.add_argument("-f", "--filename", metavar="") # new.icmptype grp_new_icmptype = new_subparsers.add_parser("icmptype", help="New icmptype") grp_new_icmptype.set_defaults(action="icmptype") grp_new_icmptype.add_argument("-n", "--name", metavar="") grp_new_icmptype.add_argument("-f", "--filename", metavar="") ############################################################################# # delete grp_delete = subparsers.add_parser("delete", help="Delete commands") grp_delete.set_defaults(parser="delete") grp_delete.add_argument("-p", "--permanent", action="store_true") delete_subparsers = grp_delete.add_subparsers(help="Delete Commands") # delete.zone grp_delete_zone = delete_subparsers.add_parser("zone", help="Delete zone") grp_delete_zone.set_defaults(action="zone") grp_delete_zone.add_argument("zone", metavar="") # delete.service grp_delete_service = delete_subparsers.add_parser("service", help="Delete service") grp_delete_service.set_defaults(action="service") grp_delete_service.add_argument("service", metavar="") # delete.ipset grp_delete_ipset = delete_subparsers.add_parser("ipset", help="Delete ipset") grp_delete_ipset.set_defaults(action="ipset") grp_delete_ipset.add_argument("ipset", metavar="") # delete.helper grp_delete_helper = delete_subparsers.add_parser("helper", help="Delete helper") grp_delete_helper.set_defaults(action="helper") grp_delete_helper.add_argument("helper", metavar="") # delete.icmptype grp_delete_icmptype = delete_subparsers.add_parser("icmptype", help="Delete icmptype") grp_delete_icmptype.set_defaults(action="icmptype") grp_delete_icmptype.add_argument("icmptype", metavar="") ############################################################################# # direct grp_direct = subparsers.add_parser("direct", help="Direct commands") grp_direct.set_defaults(parser="direct") grp_direct.add_argument("-p", "--permanent", action="store_true") direct_subparsers = grp_direct.add_subparsers(help="Direct Commands") # direct.add grp_direct_add = direct_subparsers.add_parser("add", help="Add commands") grp_direct_add.set_defaults(action="add") direct_add_subparsers = grp_direct_add.add_subparsers() # direct.add.chain grp_direct_add_chain = direct_add_subparsers.add_parser("chain", help="Add chain") grp_direct_add_chain.set_defaults(item="chain") grp_direct_add_chain.add_argument( "chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) # direct.add.rule grp_direct_add_rule = direct_add_subparsers.add_parser("rule", help="Add rule") grp_direct_add_rule.set_defaults(item="rule") grp_direct_add_rule.add_argument( "rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) # direct.add.passthrough grp_direct_add_passthrough = direct_add_subparsers.add_parser( "passthrough", help="Add passthrough") grp_direct_add_passthrough.set_defaults(item="passthrough") grp_direct_add_passthrough.add_argument( "passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) # direct.passthrough grp_direct_passthrough = direct_subparsers.add_parser( "passthrough", help="Untracked passthrough") grp_direct_passthrough.set_defaults(action="passthrough") grp_direct_passthrough.add_argument("passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "")) # direct.query grp_direct_query = direct_subparsers.add_parser("query", help="Query commands") grp_direct_query.set_defaults(action="query") direct_query_subparsers = grp_direct_query.add_subparsers() # direct.query.chain grp_direct_query_chain = direct_query_subparsers.add_parser( "chain", help="Query chain") grp_direct_query_chain.set_defaults(item="chain") grp_direct_query_chain.add_argument( "chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) # direct.query.rule grp_direct_query_rule = direct_query_subparsers.add_parser( "rule", help="Query rule") grp_direct_query_rule.set_defaults(item="rule") grp_direct_query_rule.add_argument( "rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) # direct.query.passthrough grp_direct_query_passthrough = direct_query_subparsers.add_parser( "passthrough", help="Query passthrough") grp_direct_query_passthrough.set_defaults(item="passthrough") grp_direct_query_passthrough.add_argument("passthrough", metavar="", nargs=argparse.REMAINDER) # direct.remove grp_direct_remove = direct_subparsers.add_parser("remove", help="Remove commands") grp_direct_remove.set_defaults(action="remove") direct_remove_subparsers = grp_direct_remove.add_subparsers() # direct.remove.chain grp_direct_remove_chain = direct_remove_subparsers.add_parser( "chain", help="Remove chain") grp_direct_remove_chain.set_defaults(item="chain") grp_direct_remove_chain.add_argument( "chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) # direct.remove.rule grp_direct_remove_rule = direct_remove_subparsers.add_parser("rule", help="Remove rule") grp_direct_remove_rule.set_defaults(item="rule") grp_direct_remove_rule.add_argument( "rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "
")) # direct.remove.passthrough grp_direct_remove_passthrough = direct_remove_subparsers.add_parser( "passthrough", help="Remove passthrough") grp_direct_remove_passthrough.set_defaults(item="passthrough") grp_direct_remove_passthrough.add_argument("passthrough", metavar="", nargs=argparse.REMAINDER) # direct.get grp_direct_get = direct_subparsers.add_parser("get", help="Get commands") grp_direct_get.set_defaults(action="get") direct_get_subparsers = grp_direct_get.add_subparsers() # direct.get.all-chains grp_direct_get_all_chains = direct_get_subparsers.add_parser( "all-chains", help="Get all chains") grp_direct_get_all_chains.set_defaults(item="all-chains") # direct.get.chains grp_direct_get_chains = direct_get_subparsers.add_parser("chains", help="Get chains") grp_direct_get_chains.set_defaults(item="chains") grp_direct_get_chains.add_argument("chains", nargs=2, metavar=("{ ipv4 | ipv6 | eb }", "
")) # direct.get.all-rules grp_direct_get_all_rules = direct_get_subparsers.add_parser( "all-rules", help="Get all rules") grp_direct_get_all_rules.set_defaults(item="all-rules") # direct.get.rules grp_direct_get_rules = direct_get_subparsers.add_parser("rules", help="Get rules") grp_direct_get_rules.set_defaults(item="rules") grp_direct_get_rules.add_argument("rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "
", "")) # direct.get.all-passthroughs grp_direct_get_all_passthroughs = direct_get_subparsers.add_parser( "all-passthroughs", help="Get all passthroughs") grp_direct_get_all_passthroughs.set_defaults(item="all-passthroughs") # direct.get.passthroughs grp_direct_get_passthroughs = direct_get_subparsers.add_parser( "passthroughs", help="Get passthroughs") grp_direct_get_passthroughs.set_defaults(item="passthroughs") grp_direct_get_passthroughs.add_argument("passthroughs", nargs=1, metavar=("{ ipv4 | ipv6 | eb }")) ############################################################################# # lockdown grp_lockdown_whitelist = subparsers.add_parser( "lockdown-whitelist", help="Lockdown whitelist commands") grp_lockdown_whitelist.set_defaults(parser="lockdown-whitelist") grp_lockdown_whitelist.add_argument("-p", "--permanent", action="store_true") lockdown_whitelist_subparsers = grp_lockdown_whitelist.add_subparsers( help="Lockdown Commands") # lockdown.whitelist.add grp_lockdown_whitelist_add = lockdown_whitelist_subparsers.add_parser( "add", help="Add commands") grp_lockdown_whitelist_add.set_defaults(action="add") whitelist_add_subparsers = grp_lockdown_whitelist_add.add_subparsers() # lockdown.whitelist.add.command grp_lockdown_whitelist_add_command = whitelist_add_subparsers.add_parser( "command", help="Add command") grp_lockdown_whitelist_add_command.set_defaults(item="command") grp_lockdown_whitelist_add_command.add_argument("command", metavar="", nargs="+") # lockdown.whitelist.add.context grp_lockdown_whitelist_add_context = whitelist_add_subparsers.add_parser( "context", help="Add context") grp_lockdown_whitelist_add_context.set_defaults(item="context") grp_lockdown_whitelist_add_context.add_argument("context", metavar="", nargs="+") # lockdown.whitelist.add.uid grp_lockdown_whitelist_add_uid = whitelist_add_subparsers.add_parser( "uid", help="Add uid") grp_lockdown_whitelist_add_uid.set_defaults(item="uid") grp_lockdown_whitelist_add_uid.add_argument("uid", metavar="", type=int, nargs="+") # lockdown.whitelist.add.user grp_lockdown_whitelist_add_user = whitelist_add_subparsers.add_parser( "user", help="Add user") grp_lockdown_whitelist_add_user.set_defaults(item="user") grp_lockdown_whitelist_add_user.add_argument("user", metavar="", nargs="+") # lockdown.whitelist.query grp_lockdown_whitelist_query = lockdown_whitelist_subparsers.add_parser( "query", help="Query commands") grp_lockdown_whitelist_query.set_defaults(action="query") whitelist_query_subparsers = grp_lockdown_whitelist_query.add_subparsers() # lockdown.whitelist.query.command grp_lockdown_whitelist_query_command = whitelist_query_subparsers.add_parser( "command", help="Query command") grp_lockdown_whitelist_query_command.set_defaults(item="command") grp_lockdown_whitelist_query_command.add_argument("command", metavar="", nargs="+") # lockdown.whitelist.query.context grp_lockdown_whitelist_query_context = whitelist_query_subparsers.add_parser( "context", help="Query context") grp_lockdown_whitelist_query_context.set_defaults(item="context") grp_lockdown_whitelist_query_context.add_argument("context", metavar="", nargs="+") # lockdown.whitelist.query.uid grp_lockdown_whitelist_query_uid = whitelist_query_subparsers.add_parser( "uid", help="Query uid") grp_lockdown_whitelist_query_uid.set_defaults(item="uid") grp_lockdown_whitelist_query_uid.add_argument("uid", metavar="", type=int, nargs="+") # lockdown.whitelist.query.user grp_lockdown_whitelist_query_user = whitelist_query_subparsers.add_parser( "user", help="Query user") grp_lockdown_whitelist_query_user.set_defaults(item="user") grp_lockdown_whitelist_query_user.add_argument("user", metavar="", nargs="+") # lockdown.whitelist.remove grp_lockdown_whitelist_remove = lockdown_whitelist_subparsers.add_parser( "remove", help="Remove commands") grp_lockdown_whitelist_remove.set_defaults(action="remove") whitelist_remove_subparsers = grp_lockdown_whitelist_remove.add_subparsers() # lockdown.whitelist.remove.command grp_lockdown_whitelist_remove_command = whitelist_remove_subparsers.add_parser( "command", help="Remove command") grp_lockdown_whitelist_remove_command.set_defaults(item="command") grp_lockdown_whitelist_remove_command.add_argument("command", metavar="", nargs="+") # lockdown.whitelist.remove.context grp_lockdown_whitelist_remove_context = whitelist_remove_subparsers.add_parser( "context", help="Remove context") grp_lockdown_whitelist_remove_context.set_defaults(item="context") grp_lockdown_whitelist_remove_context.add_argument("context", metavar="", nargs="+") # lockdown.whitelist.remove.uid grp_lockdown_whitelist_remove_uid = whitelist_remove_subparsers.add_parser( "uid", help="Remove uid") grp_lockdown_whitelist_remove_uid.set_defaults(item="uid") grp_lockdown_whitelist_remove_uid.add_argument("uid", metavar="", type=int, nargs="+") # lockdown.whitelist.remove.user grp_lockdown_whitelist_remove_user = whitelist_remove_subparsers.add_parser( "user", help="Remove user") grp_lockdown_whitelist_remove_user.set_defaults(item="user") grp_lockdown_whitelist_remove_user.add_argument("user", metavar="", nargs="+") # lockdown.whitelist.list grp_lockdown_whitelist_list = lockdown_whitelist_subparsers.add_parser( "list", help="List commands") grp_lockdown_whitelist_list.set_defaults(action="list") whitelist_list_subparsers = grp_lockdown_whitelist_list.add_subparsers() # lockdown.whitelist.list.commands grp_lockdown_whitelist_list_commands = whitelist_list_subparsers.add_parser( "commands", help="List commands") grp_lockdown_whitelist_list_commands.set_defaults(item="commands") # lockdown.whitelist.list.contexts grp_lockdown_whitelist_list_contexts = whitelist_list_subparsers.add_parser( "contexts", help="List contexts") grp_lockdown_whitelist_list_contexts.set_defaults(item="contexts") # lockdown.whitelist.list.uids grp_lockdown_whitelist_list_uids = whitelist_list_subparsers.add_parser( "uids", help="List uids") grp_lockdown_whitelist_list_uids.set_defaults(item="uids") # lockdown.whitelist.list.users grp_lockdown_whitelist_list_users = whitelist_list_subparsers.add_parser( "users", help="List users") grp_lockdown_whitelist_list_users.set_defaults(item="users") ############################################################################# # config grp_config = subparsers.add_parser("config", help="firewalld configuration") grp_config.set_defaults(parser="config") config_subparsers = grp_config.add_subparsers(help="Config Commands") # config.get grp_config_get = config_subparsers.add_parser("get", help="Get commands") grp_config_get.set_defaults(action="get") config_get_subparsers = grp_config_get.add_subparsers() # config.get.default-zone grp_config_get_default_zone = config_get_subparsers.add_parser( "default-zone", help="Get default zone") grp_config_get_default_zone.set_defaults(item="default-zone") # config.get.lockdown grp_config_get_lockdown = config_get_subparsers.add_parser("lockdown", help="Get lockdown") grp_config_get_lockdown.set_defaults(item="lockdown") # config.get.log-denied grp_config_get_log_denied = config_get_subparsers.add_parser( "log-denied", help="Get log denied") grp_config_get_log_denied.set_defaults(item="log-denied") # config.get.panic grp_config_get_panic = config_get_subparsers.add_parser("panic", help="Get panic") grp_config_get_panic.set_defaults(item="panic") # config.list grp_config_list = config_subparsers.add_parser("list", help="List commands") grp_config_list.set_defaults(action="list") # config.set grp_config_set = config_subparsers.add_parser("set", help="Set commands") grp_config_set.set_defaults(action="set") config_set_subparsers = grp_config_set.add_subparsers() # config.set.default-zone grp_config_set_default_zone = config_set_subparsers.add_parser( "default-zone", help="Set default zone") grp_config_set_default_zone.set_defaults(item="default-zone") grp_config_set_default_zone.add_argument("default_zone", metavar="") # config.set.lockdown grp_config_set_lockdown = config_set_subparsers.add_parser("lockdown", help="Set lockdown") grp_config_set_lockdown.set_defaults(item="lockdown") grp_config_set_lockdown.add_argument("lockdown", metavar="") # config.set.log-denied grp_config_set_log_denied = config_set_subparsers.add_parser( "log-denied", help="Set log denied") grp_config_set_log_denied.set_defaults(item="log-denied") grp_config_set_log_denied.add_argument("log_denied", metavar="") # config.set.panic grp_config_set_panic = config_set_subparsers.add_parser("panic", help="Set panic") grp_config_set_panic.set_defaults(item="panic") grp_config_set_panic.add_argument("panic", metavar="") ############################################################################# # settings grp_settings = subparsers.add_parser("settings", help="firewalld settings") grp_settings.set_defaults(parser="settings") settings_subparsers = grp_settings.add_subparsers(help="Settings Commands") # settings.get grp_settings_get = settings_subparsers.add_parser("get", help="Get commands") grp_settings_get.set_defaults(action="get") settings_get_subparsers = grp_settings_get.add_subparsers() # settings.get.BRIDGE grp_settings_get_BRIDGE = settings_get_subparsers.add_parser( "BRIDGE", help="Get BRIDGE") grp_settings_get_BRIDGE.set_defaults(item="BRIDGE") # settings.get.CleanupOnExit grp_settings_get_CleanupOnExit = settings_get_subparsers.add_parser( "CleanupOnExit", help="Get CleanupOnExit") grp_settings_get_CleanupOnExit.set_defaults(item="CleanupOnExit") # settings.get.IPSet grp_settings_get_IPSet = settings_get_subparsers.add_parser( "IPSet", help="Get IPSet") grp_settings_get_IPSet.set_defaults(item="IPSet") # settings.get.IPSetTypes grp_settings_get_IPSetTypes = settings_get_subparsers.add_parser( "IPSetTypes", help="Get IPSetTypes") grp_settings_get_IPSetTypes.set_defaults(item="IPSetTypes") # settings.get.IPv4 grp_settings_get_IPv4 = settings_get_subparsers.add_parser( "IPv4", help="Get IPv4") grp_settings_get_IPv4.set_defaults(item="IPv4") # settings.get.IPv6 grp_settings_get_IPv6 = settings_get_subparsers.add_parser( "IPv6", help="Get IPv6") grp_settings_get_IPv6.set_defaults(item="IPv6") # settings.get.IPv6_rpfilter grp_settings_get_IPv6_rpfilter = settings_get_subparsers.add_parser( "IPv6_rpfilter", help="Get IPv6_rpfilter") grp_settings_get_IPv6_rpfilter.set_defaults(item="IPv6_rpfilter") # settings.get.MinimalMark grp_settings_get_MinimalMark = settings_get_subparsers.add_parser( "MinimalMark", help="Get MinimalMark") grp_settings_get_MinimalMark.set_defaults(item="MinimalMark") # settings.list grp_settings_list = settings_subparsers.add_parser("list", help="List commands") grp_settings_list.set_defaults(action="list") ############################################################################# args = sys.argv[1:] if len(args) > 1 and args[0] == "direct": i = -1 if (len(args) > 1 and args[1] == 'passthrough') or \ (len(args) > 2 and args[2] == 'passthrough') or \ (len(args) > 3 and args[3] == 'passthrough'): i = args.index('passthrough') + 1 elif (len(args) > 2 and args[2] == 'rule') or \ (len(args) > 3 and args[3] == 'rule'): i = args.index('rule') + 4 # join into one argument to prevent parser from parsing each iptables # option, because they ccould conflict with firewallctl options if (i > -1) and (i < len(args) - 1): aux_args = args[:] args = aux_args[:i+1] # all but not args.append(joinArgs(aux_args[i+1:])) # add as one arg args = parser.parse_args(args) if not hasattr(args, "parser"): parser.print_help() sys.exit(0) # Set quiet and verbose cmd = FirewallCommand(args.quiet, args.verbose) def myexcepthook(exctype, value, traceback): cmd.exception_handler(str(value)) sys.excepthook = myexcepthook # use firewalld try: fw = FirewallClient() except FirewallError as msg: code = FirewallError.get_code(str(msg)) cmd.print_and_exit("Error: %s" % msg, code) fw.setExceptionHandler(cmd.exception_handler) if fw.connected == False: if args.parser == "state": cmd.print_and_exit("not running", errors.NOT_RUNNING) else: cmd.print_and_exit("FirewallD is not running", errors.NOT_RUNNING) cmd.set_fw(fw) # version if args.parser == "version": cmd.print_and_exit(fw.get_property("version")) # state elif args.parser == "state": state = fw.get_property("state") if state == "RUNNING": cmd.print_and_exit("running") else: cmd.print_and_exit(state, errors.NOT_RUNNING) # reload elif args.parser == "reload": if args.complete: fw.complete_reload() else: fw.reload() # runtime_to_permanent elif args.parser == "runtime-to-permanent": fw.runtimeToPermanent() ############################################################################# # list elif args.parser == "list": if not hasattr(args, "list"): grp_list.print_help() sys.exit(0) if args.list == "zones": if args.active: items = fw.getActiveZones() elif args.permanent: items = fw.config().getZoneNames() else: items = fw.getZones() cmd.print_and_exit(" ".join(sorted(items))) elif args.list == "services": if args.permanent: items = fw.config().getServiceNames() else: items = fw.listServices() cmd.print_and_exit(" ".join(sorted(items))) elif args.list == "ipsets": if args.permanent: items = fw.config().getIPSetNames() else: items = fw.getIPSets() cmd.print_and_exit(" ".join(sorted(items))) elif args.list == "helpers": if args.permanent: items = fw.config().getHelperNames() else: items = fw.getHelpers() cmd.print_and_exit(" ".join(sorted(items))) elif args.list == "icmptypes": if args.permanent: items = fw.config().getIcmpTypeNames() else: items = fw.listIcmpTypes() cmd.print_and_exit(" ".join(sorted(items))) else: cmd.fail("Uncaught argument") ############################################################################# # info elif args.parser == "info": if not hasattr(args, "info"): grp_info.print_help() sys.exit(0) if args.info == "zone": if args.zone != "": zone = args.zone else: zone = fw.getDefaultZone() if args.permanent: settings = fw.config().getZoneByName(zone).getSettings() else: settings = fw.getZoneSettings(zone) cmd.print_zone_info(zone, settings, True) sys.exit(0) elif args.info == "zones": if args.active: for zone in fw.getActiveZones(): cmd.print_zone_info(zone, fw.getZoneSettings(zone)) cmd.print_msg("") elif args.permanent: names = fw.config().getZoneNames() for zone in sorted(names): settings = fw.config().getZoneByName(zone) cmd.print_zone_info(zone, settings.getSettings()) cmd.print_msg("") else: for zone in fw.getZones(): cmd.print_zone_info(zone, fw.getZoneSettings(zone)) cmd.print_msg("") sys.exit(0) elif args.info == "service": if args.permanent: settings = fw.config().getServiceByName(args.service).getSettings() else: settings = fw.getServiceSettings(args.service) cmd.print_service_info(args.service, settings) sys.exit(0) elif args.info == "services": if args.permanent: names = fw.config().getServiceNames() for service in sorted(names): settings = fw.config().getServiceByName(service) cmd.print_service_info(service, settings.getSettings()) cmd.print_msg("") else: for service in fw.listServices(): cmd.print_service_info(service, fw.getServiceSettings(service)) cmd.print_msg("") sys.exit(0) elif args.info == "ipset": if args.permanent: settings = fw.config().getIPSetByName(args.ipset).getSettings() else: settings = fw.getIPSetSettings(args.ipset) cmd.print_ipset_info(args.ipset, settings) sys.exit(0) elif args.info == "ipsets": if args.permanent: names = fw.config().getIPSetNames() for ipset in sorted(names): settings = fw.config().getIPSetByName(ipset) cmd.print_ipset_info(ipset, settings.getSettings()) cmd.print_msg("") else: for ipset in fw.getIPSets(): cmd.print_ipset_info(ipset, fw.getIPSetSettings(ipset)) cmd.print_msg("") sys.exit(0) elif args.info == "helper": if args.permanent: settings = fw.config().getHelperByName( args.helper).getSettings() else: settings = fw.getHelperSettings(args.helper) cmd.print_helper_info(args.helper, settings) sys.exit(0) elif args.info == "helpers": if args.permanent: names = fw.config().getHelperNames() for helper in sorted(names): settings = fw.config().getHelperByName(helper) cmd.print_helper_info(helper, settings.getSettings()) cmd.print_msg("") else: for helper in fw.getHelpers(): cmd.print_helper_info(helper, fw.getHelperSettings(helper)) cmd.print_msg("") sys.exit(0) elif args.info == "icmptype": if args.permanent: settings = fw.config().getIcmpTypeByName( args.icmptype).getSettings() else: settings = fw.getIcmpTypeSettings(args.icmptype) cmd.print_icmptype_info(args.icmptype, settings) sys.exit(0) elif args.info == "icmptypes": if args.permanent: names = fw.config().getIcmpTypeNames() for icmptype in sorted(names): settings = fw.config().getIcmpTypeByName(icmptype) cmd.print_icmptype_info(icmptype, settings.getSettings()) cmd.print_msg("") else: for icmptype in fw.listIcmpTypes(): cmd.print_icmptype_info(icmptype, fw.getIcmpTypeSettings(icmptype)) cmd.print_msg("") sys.exit(0) else: cmd.fail("Uncaught argument") ############################################################################# # zone elif args.parser == "zone": if not hasattr(args, "action"): grp_zone.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_zone_add.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) if args.item == "interface": #interfaces = [ ] #for interface in args.interface: # if not try_set_zone_of_interface(args.zone, interface): # interfaces.append(interface) if args.permanent: interfaces = [ ] for interface in args.interface: if not try_set_zone_of_interface(args.zone, interface): interfaces.append(interface) cmd.add_sequence(interfaces, fw_zone.addInterface, fw_zone.queryInterface, None, "'%s'") else: #cmd.x_add_sequence(args.zone, interfaces, cmd.x_add_sequence(args.zone, args.interface, fw.addInterface, fw.queryInterface, None, "'%s'") elif args.item == "source": if args.permanent: cmd.add_sequence(args.source, fw_zone.addSource, fw_zone.querySource, cmd.parse_source, "'%s'") else: cmd.x_add_sequence(args.zone, args.source, fw.addSource, fw.querySource, cmd.parse_source, "'%s'") elif args.item == "service": if args.permanent: cmd.add_sequence(args.service, fw_zone.addService, fw_zone.queryService, None, "'%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.service, fw.addService, fw.queryService, None, "'%s'", args.timeout) elif args.item == "port": if args.permanent: cmd.add_sequence(args.port, fw_zone.addPort, fw_zone.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.port, fw.addPort, fw.queryPort, cmd.parse_port, "'%s/%s'", args.timeout) elif args.item == "protocol": if args.permanent: cmd.add_sequence(args.protocol, fw_zone.addProtocol, fw_zone.queryProtocol, None, "'%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.protocol, fw.addProtocol, fw.queryProtocol, None, "'%s'", args.timeout) elif args.item == "source-port": if args.permanent: cmd.add_sequence(args.port, fw_zone.addSourcePort, fw_zone.querySourcePort, cmd.parse_port, "'%s/%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.port, fw.addSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'", args.timeout) elif args.item == "rich-rule": if args.permanent: cmd.add_sequence(args.rich_rule, fw_zone.addRichRule, fw_zone.queryRichRule, None, "'%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.rich_rule, fw.addRichRule, fw.queryRichRule, None, "'%s'", args.timeout) elif args.item == "masquerade": if args.permanent: fw_zone.addMasquerade() else: fw.addMasquerade(args.zone, args.timeout) elif args.item == "forward-port": if args.permanent: cmd.add_sequence(args.forward_port, fw_zone.addForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") else: cmd.zone_add_timeout_sequence( args.zone, args.forward_port, fw.addForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'", args.timeout) elif args.item == "icmp-block": if args.permanent: cmd.add_sequence(args.icmp_block, fw_zone.addIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") else: cmd.zone_add_timeout_sequence(args.zone, args.icmp_block, fw.addIcmpBlock, fw.queryIcmpBlock, None, "'%s'", args.timeout) elif args.item == "icmp-block-inversion": if args.permanent: fw_zone.addIcmpBlockInversion() else: fw.addIcmpBlockInversion(args.zone) else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_zone_remove.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) if args.item == "interface": #interfaces = [ ] #for interface in args.interface: # if not try_set_zone_of_interface("", interface): # interfaces.append(interface) if args.permanent: interfaces = [ ] for interface in args.interface: if not try_set_zone_of_interface("", interface): interfaces.append(interface) cmd.remove_sequence(interfaces, fw_zone.removeInterface, fw_zone.queryInterface, None, "'%s'") else: #cmd.x_remove_sequence(args.zone, interfaces, cmd.x_remove_sequence(args.zone, args.interface, fw.removeInterface, fw.queryInterface, None, "'%s'") elif args.item == "source": if args.permanent: cmd.remove_sequence(args.source, fw_zone.removeSource, fw_zone.querySource, cmd.parse_source, "'%s'") else: cmd.x_remove_sequence(args.zone, args.source, fw.removeSource, fw.querySource, cmd.parse_source, "'%s'") elif args.item == "service": if args.permanent: cmd.remove_sequence(args.service, fw_zone.removeService, fw_zone.queryService, None, "'%s'") else: cmd.x_remove_sequence(args.zone, args.service, fw.removeService, fw.queryService, None, "'%s'") elif args.item == "port": if args.permanent: cmd.remove_sequence(args.port, fw_zone.removePort, fw_zone.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.x_remove_sequence(args.zone, args.port, fw.removePort, fw.queryPort, cmd.parse_port, "'%s/%s'") elif args.item == "protocol": if args.permanent: cmd.remove_sequence(args.protocol, fw_zone.removeProtocol, fw_zone.queryProtocol, None, "'%s'") else: cmd.x_remove_sequence(args.zone, args.protocol, fw.removeProtocol, fw.queryProtocol, None, "'%s'") elif args.item == "source-port": if args.permanent: cmd.remove_sequence(args.port, fw_zone.removeSourcePort, fw_zone.querySourcePort, cmd.parse_port, "'%s/%s'") else: cmd.x_remove_sequence(args.zone, args.port, fw.removeSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'") elif args.item == "rich-rule": if args.permanent: cmd.remove_sequence(args.rich_rule, fw_zone.removeRichRule, fw_zone.queryRichRule, None, "'%s'") else: cmd.x_remove_sequence(args.zone, args.rich_rule, fw.removeRichRule, fw.queryRichRule, None, "'%s'") elif args.item == "masquerade": if args.permanent: fw_zone.removeMasquerade() else: fw.removeMasquerade(args.zone) elif args.item == "forward-port": if args.permanent: cmd.remove_sequence(args.forward_port, fw_zone.removeForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") else: cmd.x_remove_sequence(args.zone, args.forward_port, fw.removeForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") elif args.item == "icmp-block": if args.permanent: cmd.remove_sequence(args.icmp_block, fw_zone.removeIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") else: cmd.x_remove_sequence(args.zone, args.icmp_block, fw.removeIcmpBlock, fw.queryIcmpBlock, None, "'%s'") elif args.item == "icmp-block-inversion": if args.permanent: fw_zone.removeIcmpBlockInversion() else: fw.removeIcmpBlockInversion(args.zone) else: cmd.fail("Uncaught argument") elif args.action == "get": if not hasattr(args, "item"): grp_zone_get.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) else: fw_zone = fw.getZoneSettings(args.zone) if args.item == "description": cmd.print_and_exit(fw_zone.getDescription()) elif args.item == "short": cmd.print_and_exit(fw_zone.getShort()) else: cmd.fail("Uncaught argument") elif args.action == "set": if not hasattr(args, "item"): grp_zone_set.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) else: cmd.fail("Not possible to alter runtime zone settings") if args.item == "description": fw_zone.setDescription(args.description) elif args.item == "short": fw_zone.setShort(args.short) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_zone_query.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) if args.item == "interface": if args.permanent: cmd.query_sequence(args.interface, fw_zone.queryInterface, None, "'%s'") else: cmd.x_query_sequence(args.zone, args.interface, fw.queryInterface, None, "'%s'") elif args.item == "source": if args.permanent: cmd.query_sequence(args.source, fw_zone.querySource, cmd.parse_source, "'%s'") else: cmd.x_query_sequence(args.zone, args.source, fw.querySource, cmd.parse_source, "'%s'") elif args.item == "service": if args.permanent: cmd.query_sequence(args.service, fw_zone.queryService, None, "'%s'") else: cmd.x_query_sequence(args.zone, args.service, fw.queryService, None, "'%s'") elif args.item == "port": if args.permanent: cmd.query_sequence(args.port, fw_zone.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.x_query_sequence(args.zone, args.port, fw.queryPort, cmd.parse_port, "'%s/%s'") elif args.item == "protocol": if args.permanent: cmd.query_sequence(args.protocol, fw_zone.queryProtocol, None, "'%s'") else: cmd.x_query_sequence(args.zone, args.protocol, fw.queryProtocol, None, "'%s'") elif args.item == "source-port": if args.permanent: cmd.query_sequence(args.port, fw.querySourcePort, cmd.parse_port, "'%s/%s'") else: cmd.x_query_sequence(args.zone, args.port, fw.querySourcePort, cmd.parse_port, "'%s/%s'") elif args.item == "rich-rule": if args.permanent: cmd.query_sequence(args.rich_rule, fw_zone.queryRichRule, None, "'%s'") else: cmd.x_query_sequence(args.zone, args.rich_rule, fw.queryRichRule, None, "'%s'") elif args.item == "masquerade": if args.permanent: cmd.print_query_result(fw_zone.queryMasquerade()) else: cmd.print_query_result(fw.queryMasquerade(args.zone)) elif args.item == "forward-port": if args.permanent: cmd.query_sequence(args.forward_port, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") else: cmd.x_query_sequence(args.zone, args.forward_port, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") elif args.item == "icmp-block": if args.permanent: cmd.query_sequence(args.icmp_block, fw_zone.queryIcmpBlock, None, "'%s'") else: cmd.x_query_sequence(args.zone, args.icmp_block, fw.queryIcmpBlock, None, "'%s'") elif args.item == "icmp-block-inversion": if args.permanent: cmd.print_query_result(fw_zone.queryIcmpBlockInversion()) else: cmd.print_query_result(fw.queryIcmpBlockInversion(args.zone)) else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_zone_list.print_help() sys.exit(0) if args.permanent: if args.zone == "": fw_zone = fw.config().getZoneByName(fw.getDefaultZone()) else: fw_zone = fw.config().getZoneByName(args.zone) if args.item == "interfaces": if args.permanent: cmd.print_and_exit(" ".join(fw_zone.getInterfaces())) else: cmd.print_and_exit(" ".join(fw.getInterfaces(args.zone))) elif args.item == "sources": if args.permanent: cmd.print_and_exit(" ".join(fw_zone.getSources())) else: cmd.print_and_exit(" ".join(fw.getSources(args.zone))) elif args.item == "services": if args.permanent: cmd.print_and_exit(" ".join(fw_zone.getServices())) else: cmd.print_and_exit(" ".join(fw.getServices(args.zone))) elif args.item == "ports": if args.permanent: cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw_zone.getPorts()])) else: cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw.getPorts(args.zone)])) elif args.item == "protocols": if args.permanent: cmd.print_and_exit(" ".join(fw_zone.getProtocols())) else: cmd.print_and_exit(" ".join(fw.getProtocols(args.zone))) elif args.item == "source-ports": if args.permanent: cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw_zone.getSourcePorts()])) else: cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw.getSourcePorts(args.zone)])) elif args.item == "rich-rules": if args.permanent: cmd.print_and_exit("\n".join(fw_zone.getRichRules())) else: cmd.print_and_exit("\n".join(fw.getRichRules(args.zone))) elif args.item == "forward-ports": if args.permanent: cmd.print_and_exit( "\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % \ (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in fw_zone.getForwardPorts()])) else: cmd.print_and_exit( "\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % \ (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in fw.getForwardPorts(args.zone)])) elif args.item == "icmp-blocks": if args.permanent: cmd.print_and_exit(" ".join(fw_zone.getIcmpBlocks())) else: cmd.print_and_exit(" ".join(fw.getIcmpBlocks(args.zone))) else: cmd.fail("Uncaught argument") elif args.action == "load-defaults": if args.permanent: fw_zone = fw.config().getZoneByName(args.zone) fw_zone.loadDefaults() else: cmd.fail("Not possible to load defaults in runtime") else: cmd.fail("Uncaught argument") ############################################################################# # service elif args.parser == "service": if not hasattr(args, "action"): grp_service.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_service_add.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: cmd.fail("Not possible to alter runtime service settings") if args.item == "port": cmd.add_sequence(args.port, fw_service.addPort, fw_service.queryPort, cmd.parse_port, "'%s/%s'") elif args.item == "protocol": cmd.add_sequence(args.protocol, fw_service.addProtocol, fw_service.queryProtocol, None, "'%s'") elif args.item == "source-port": cmd.add_sequence(args.port, fw_service.addSourcePort, fw_service.querySourcePort, cmd.parse_port, "'%s/%s'") elif args.item == "module": cmd.add_sequence(args.module, fw_service.addModule, fw_service.queryModule, None, "'%s'") elif args.item == "destination": cmd.add_sequence(args.destination, fw_service.setDestination, fw_service.queryDestination, cmd.parse_service_destination, "%s:%s") else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_service_remove.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: cmd.fail("Not possible to alter runtime service settings") if args.item == "port": cmd.remove_sequence(args.port, fw_service.removePort, fw_service.queryPort, cmd.parse_port, "'%s/%s'") elif args.item == "protocol": cmd.remove_sequence(args.protocol, fw_service.removeProtocol, fw_service.queryProtocol, None, "'%s'") elif args.item == "source-port": cmd.remove_sequence(args.port, fw_service.removeSourcePort, fw_service.querySourcePort, cmd.parse_port, "'%s/%s'") elif args.item == "module": cmd.remove_sequence(args.module, fw_service.removeModule, fw_service.queryModule, None, "'%s'") elif args.item == "destination": cmd.remove_sequence(args.destination, fw_service.removeDestination, fw_service.queryDestination, cmd.parse_service_destination, "%s:%s") else: cmd.fail("Uncaught argument") elif args.action == "get": if not hasattr(args, "item"): grp_service_get.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: fw_service = fw.getServiceSettings(args.service) if args.item == "description": cmd.print_and_exit(fw_service.getDescription()) elif args.item == "short": cmd.print_and_exit(fw_service.getShort()) else: cmd.fail("Uncaught argument") elif args.action == "set": if not hasattr(args, "item"): grp_service_set.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: cmd.fail("Not possible to alter runtime service settings") if args.item == "description": fw_service.setDescription(args.description) elif args.item == "short": fw_service.setShort(args.short) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_service_query.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: fw_service = fw.getServiceSettings(args.service) if args.item == "port": cmd.query_sequence(args.port, fw_service.queryPort, cmd.parse_port, "'%s/%s'") elif args.item == "protocol": cmd.query_sequence(args.protocol, fw_service.queryProtocol, None, "'%s'") elif args.item == "source-port": cmd.query_sequence(args.port, fw.querySourcePort, cmd.parse_port, "'%s/%s'") elif args.item == "module": cmd.query_sequence(args.module, fw_service.queryModule, None, "'%s'") elif args.item == "destination": cmd.query_sequence(args.destination, fw_service.queryDestination, cmd.parse_service_destination, "%s:%s") else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_service_list.print_help() sys.exit(0) if args.permanent: fw_service = fw.config().getServiceByName(args.service) else: fw_service = fw.getServiceSettings(args.service) if args.item == "ports": cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw_service.getPorts()])) elif args.item == "protocols": cmd.print_and_exit(" ".join(fw_service.getProtocols())) elif args.item == "source-ports": cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw_service.getSourcePorts()])) elif args.item == "modules": cmd.print_and_exit(" ".join(fw_service.getModules())) elif args.item == "destinations": cmd.print_and_exit( " ".join(["%s:%s" % (dest[0], dest[1]) for dest in fw_service.getDestinations().items()])) else: cmd.fail("Uncaught argument") elif args.action == "load-defaults": if args.permanent: fw_service = fw.config().getServiceByName(args.service) fw_service.loadDefaults() else: cmd.fail("Not possible to load defaults in runtime") else: cmd.fail("Uncaught argument") ############################################################################# # ipset elif args.parser == "ipset": if not hasattr(args, "action"): grp_ipset.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_ipset_add.print_help() sys.exit(0) if args.item == "entry": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) cmd.add_sequence(args.entry, fw_ipset.addEntry, fw_ipset.queryEntry, None, "'%s'") else: cmd.x_add_sequence(args.ipset, args.entry, fw.addEntry, fw.queryEntry, None, "'%s'") elif args.item == "entries-from-file": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) old_entries = fw_ipset.getEntries() else: old_entries = fw.getEntries(args.ipset) changed = False for filename in args.entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(args.entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose( "Warning: ALREADY_ENABLED: %s" % entry) if changed: if args.permanent: fw_ipset.setEntries(old_entries) else: fw.setEntries(args.ipset, old_entries) else: cmd.fail("Uncaught argument") elif args.action == "get": if not hasattr(args, "item"): grp_ipset_get.print_help() sys.exit(0) if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) else: fw_ipset = fw.getIPSetSettings(args.ipset) if args.item == "description": cmd.print_and_exit(fw_ipset.getDescription()) elif args.item == "short": cmd.print_and_exit(fw_ipset.getShort()) else: cmd.fail("Uncaught argument") elif args.action == "set": if not hasattr(args, "item"): grp_ipset_set.print_help() sys.exit(0) if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) else: cmd.fail("Not possible to alter runtime ipset settings") if args.item == "description": fw_ipset.setDescription(args.description) elif args.item == "short": fw_ipset.setShort(args.short) else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_ipset_remove.print_help() sys.exit(0) if args.item == "entry": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) cmd.remove_sequence(args.entry, fw_ipset.removeEntry, fw_ipset.queryEntry, None, "'%s'") else: cmd.x_remove_sequence(args.ipset, args.entry, fw.removeEntry, fw.queryEntry, None, "'%s'") elif args.item == "entries-from-file": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) old_entries = fw_ipset.getEntries() else: old_entries = fw.getEntries(args.ipset) changed = False for filename in args.entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(args.entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose( "Warning: NOT_ENABLED: %s" % entry) if changed: if args.permanent: fw_ipset.setEntries(old_entries) else: fw.setEntries(args.ipset, old_entries) elif args.item == "all": if args.permanent: fw_ipset.setEntries(args.ipset, [ ]) else: fw.setEntries(args.ipset, [ ]) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_ipset_query.print_help() sys.exit(0) if args.item == "entry": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) cmd.query_sequence(args.entry, fw_ipset.queryEntry, None, "'%s'") else: cmd.x_query_sequence(args.ipset, args.entry, fw.queryEntry, None, "'%s'") elif args.item == "entries-from-file": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) old_entries = fw_ipset.getEntries() else: old_entries = fw.getEntries(args.ipset) changed = False for filename in args.entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(args.entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: for entry in entries: cmd.print_msg("%s: %s" % \ (entry, ("no", "yes")[entry in old_entries])) else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_ipset_list.print_help() sys.exit(0) if args.item == "entries": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) cmd.print_and_exit("\n".join(fw_ipset.getEntries())) else: cmd.print_and_exit("\n".join(fw.getEntries(args.ipset))) else: cmd.fail("Uncaught argument") elif args.action == "load-defaults": if args.permanent: fw_ipset = fw.config().getIPSetByName(args.ipset) fw_ipset.loadDefaults() else: cmd.fail("Not possible to load defaults in runtime") else: cmd.fail("Uncaught argument") ############################################################################# # helper elif args.parser == "helper": if not hasattr(args, "action"): grp_helper.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_helper_add.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: cmd.fail("Not possible to alter runtime helper settings") if args.item == "port": cmd.add_sequence(args.port, fw_helper.addPort, fw_helper.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_helper_remove.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: cmd.fail("Not possible to alter runtime helper settings") if args.item == "port": cmd.remove_sequence(args.port, fw_helper.removePort, fw_helper.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.fail("Uncaught argument") elif args.action == "get": if not hasattr(args, "item"): grp_helper_get.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: fw_helper = fw.getHelperSettings(args.helper) if args.item == "description": cmd.print_and_exit(fw_helper.getDescription()) elif args.item == "family": cmd.print_and_exit(fw_helper.getFamily()) elif args.item == "module": cmd.print_and_exit(fw_helper.getModule()) elif args.item == "short": cmd.print_and_exit(fw_helper.getShort()) else: cmd.fail("Uncaught argument") elif args.action == "set": if not hasattr(args, "item"): grp_helper_set.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: cmd.fail("Not possible to alter runtime helper settings") if args.item == "description": fw_helper.setDescription(args.description) elif args.item == "family": fw_helper.setFamily(cmd.check_helper_family(args.family)) elif args.item == "module": fw_helper.setModule(cmd.check_module(args.module)) elif args.item == "short": fw_helper.setShort(args.short) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_helper_query.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: fw_helper = fw.getHelperSettings(args.helper) if args.item == "port": cmd.query_sequence(args.port, fw_helper.queryPort, cmd.parse_port, "'%s/%s'") else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_helper_list.print_help() sys.exit(0) if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) else: fw_helper = fw.getHelperSettings(args.helper) if args.item == "ports": cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in fw_helper.getPorts()])) else: cmd.fail("Uncaught argument") elif args.action == "load-defaults": if args.permanent: fw_helper = fw.config().getHelperByName(args.helper) fw_helper.loadDefaults() else: cmd.fail("Not possible to load defaults in runtime") else: cmd.fail("Uncaught argument") ############################################################################# # icmptype elif args.parser == "icmptype": if not hasattr(args, "action"): grp_icmptype.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_icmptype_add.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: cmd.fail("Not possible to alter runtime icmptype settings") if args.item == "destination": cmd.add_sequence(args.destination, fw_icmptype.addDestination, fw_icmptype.queryDestination, cmd.check_destination_ipv, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_icmptype_remove.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: cmd.fail("Not possible to alter runtime icmptype settings") if args.item == "destination": cmd.remove_sequence(args.destination, fw_icmptype.removeDestination, fw_icmptype.queryDestination, cmd.check_destination_ipv, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "get": if not hasattr(args, "item"): grp_icmptype_get.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: fw_icmptype = fw.getIcmpTypeSettings(args.icmptype) if args.item == "description": cmd.print_and_exit(fw_icmptype.getDescription()) elif args.item == "short": cmd.print_and_exit(fw_icmptype.getShort()) else: cmd.fail("Uncaught argument") elif args.action == "set": if not hasattr(args, "item"): grp_icmptype_set.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: cmd.fail("Not possible to alter runtime icmptype settings") if args.item == "description": fw_icmptype.setDescription(args.description) elif args.item == "short": fw_icmptype.setShort(args.short) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_icmptype_query.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: fw_icmptype = fw.getIcmpTypeSettings(args.icmptype) if args.item == "destination": cmd.query_sequence(args.destination, fw_icmptype.queryDestination, cmd.check_destination_ipv, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_icmptype_list.print_help() sys.exit(0) if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) else: fw_icmptype = fw.getIcmpTypeSettings(args.icmptype) if args.item == "destinations": items = fw_icmptype.getDestinations() if len(items) < 1: items = [ "ipv4", "ipv6" ] cmd.print_and_exit(" ".join(items)) else: cmd.fail("Uncaught argument") elif args.action == "load-defaults": if args.permanent: fw_icmptype = fw.config().getIcmpTypeByName(args.icmptype) fw_icmptype.loadDefaults() else: cmd.fail("Not possible to load defaults in runtime") else: cmd.fail("Uncaught argument") ############################################################################# # new elif args.parser == "new": if not hasattr(args, "action"): grp_new.print_help() sys.exit(0) if not args.permanent: cmd.fail("Not possible to use new in runtime environment") if args.action == "zone": if args.name is None and args.filename is None: cmd.fail("Missing option: -n | -f [-n ]") elif args.filename is not None: filename = os.path.basename(args.filename) dirname = os.path.dirname(args.filename) if dirname == "": dirname = "./" try: obj = zone_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load zone file '%s': %s" % \ (args.filename, msg)) except IOError as msg: cmd.fail("Failed to load zone file: %s" % msg) if args.name: obj.name = args.name config = fw.config() config.addZone(obj.name, obj.export_config()) else: config = fw.config() config.addZone(args.name, FirewallClientZoneSettings()) elif args.action == "service": if args.name is None and args.filename is None: cmd.fail("Missing option: -n | -f [-n ]") elif args.filename is not None: filename = os.path.basename(args.filename) dirname = os.path.dirname(args.filename) if dirname == "": dirname = "./" try: obj = service_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load service file '%s': %s" % \ (args.filename, msg)) except IOError as msg: cmd.fail("Failed to load service file: %s" % msg) if args.name: obj.name = args.name config = fw.config() config.addService(obj.name, obj.export_config()) else: config = fw.config() config.addService(args.name, FirewallClientServiceSettings()) elif args.action == "ipset": if args.filename is None and (args.name is None or args.type is None): cmd.fail("Missing option: -n -t | " "-f [-n ]") elif args.filename is not None: filename = os.path.basename(args.filename) dirname = os.path.dirname(args.filename) if dirname == "": dirname = "./" try: obj = ipset_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load ipset file '%s': %s" % \ (args.filename, msg)) except IOError as msg: cmd.fail("Failed to load ipset file: %s" % msg) if args.name: obj.name = args.name config = fw.config() config.addIPSet(obj.name, obj.export_config()) else: settings = FirewallClientIPSetSettings() settings.setType(args.type) if args.option: for opt in args.option: settings.addOption(*cmd.parse_ipset_option(opt)) config = fw.config() config.addIPSet(args.name, settings) elif args.action == "helper": if args.name is None and args.filename is None: cmd.fail("Missing option: -n | -f [-n ]") elif args.filename is not None: filename = os.path.basename(args.filename) dirname = os.path.dirname(args.filename) if dirname == "": dirname = "./" try: obj = helper_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load helper file '%s': %s" % \ (args.filename, msg)) except IOError as msg: cmd.fail("Failed to load helper file: %s" % msg) if args.name: obj.name = args.name config = fw.config() config.addHelper(obj.name, obj.export_config()) else: config = fw.config() config.addHelper(args.name, FirewallClientHelperSettings()) elif args.action == "icmptype": if args.name is None and args.filename is None: cmd.fail("Missing option: -n | -f [-n ]") elif args.filename is not None: filename = os.path.basename(args.filename) dirname = os.path.dirname(args.filename) if dirname == "": dirname = "./" try: obj = icmptype_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load icmptype file '%s': %s" % \ (args.filename, msg)) except IOError as msg: cmd.fail("Failed to load icmptype file: %s" % msg) if args.name: obj.name = args.name config = fw.config() config.addIcmpType(obj.name, obj.export_config()) else: config = fw.config() config.addIcmpType(args.name, FirewallClientIcmpTypeSettings()) else: cmd.fail("Uncaught argument") ############################################################################# # delete elif args.parser == "delete": if not hasattr(args, "action"): grp_delete.print_help() sys.exit(0) if not args.permanent: cmd.fail("Not possible to use delete in runtime environment") if args.action == "zone": zone = fw.config().getZoneByName(args.zone) zone.remove() elif args.action == "service": service = fw.config().getServiceByName(args.service) service.remove() elif args.action == "ipset": ipset = fw.config().getIPSetByName(args.ipset) ipset.remove() elif args.action == "helper": helper = fw.config().getHelperByName(args.helper) helper.remove() elif args.action == "icmptype": icmptype = fw.config().getIcmpTypeByName(args.icmptype) icmptype.remove() else: cmd.fail("Uncaught argument") ############################################################################# # direct elif args.parser == "direct": if not hasattr(args, "action"): grp_direct.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_direct_add.print_help() sys.exit(0) if args.permanent: fw_direct = fw.config().direct() if args.item == "chain": if args.permanent: fw_direct.addChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2]) else: fw.addChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2]) elif args.item == "rule": failure_msg = "usage: direct add rule { ipv4 | ipv6 | eb }" + \ "
" if len(args.rule) < 5: cmd.fail(failure_msg) try: priority = int(args.rule[3]) except ValueError: cmd.fail(failure_msg) if args.permanent: fw_direct.addRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4])) else: fw.addRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4])) elif args.item == "passthrough": if len(args.passthrough) < 2: cmd.fail("usage: direct add passthrough " "{ ipv4 | ipv6 | eb } ") if args.permanent: cmd.print_msg( fw_direct.addPassthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1]))) else: cmd.print_msg( fw.addPassthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1]))) else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_direct_query.print_help() sys.exit(0) if args.permanent: fw_direct = fw.config().direct() if args.item == "chain": if args.permanent: cmd.print_query_result( fw_direct.queryChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2])) else: cmd.print_query_result( fw.queryChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2])) elif args.item == "rule": failure_msg = "usage: direct query rule { ipv4 | ipv6 | eb }" + \ "
" if len(args.rule) < 5: cmd.fail(failure_msg) try: priority = int(args.rule[3]) except ValueError: cmd.fail(failure_msg) if args.permanent: cmd.print_query_result( fw_direct.queryRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4]))) else: cmd.print_query_result( fw.queryRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4]))) elif args.item == "passthrough": if len(args.passthrough) < 2: cmd.fail("usage: direct query passthrough " "{ ipv4 | ipv6 | eb } ") if args.permanent: cmd.print_query_result( fw_direct.queryPassthrough( cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1]))) else: cmd.print_query_result( fw.queryPassthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1]))) else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_direct_remove.print_help() sys.exit(0) if args.permanent: fw_direct = fw.config().direct() if args.item == "chain": if args.permanent: fw_direct.removeChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2]) else: fw.removeChain(cmd.check_ipv(args.chain[0]), args.chain[1], args.chain[2]) elif args.item == "rule": failure_msg = "usage: direct remove rule { ipv4 | ipv6 | eb }" + \ "
" if len(args.rule) < 5: cmd.fail(failure_msg) try: priority = int(args.rule[3]) except ValueError: cmd.fail(failure_msg) if args.permanent: fw_direct.removeRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4])) else: fw.removeRule(cmd.check_ipv(args.rule[0]), args.rule[1], args.rule[2], priority, splitArgs(args.rule[4])) elif args.item == "passthrough": if len(args.passthrough) < 2: cmd.fail("usage: direct remove passthrough " "{ ipv4 | ipv6 | eb } ") if args.permanent: fw_direct.removePassthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1])) else: fw.removePassthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1])) else: cmd.fail("Uncaught argument") elif args.action == "passthrough": if len(args.passthrough) < 2: cmd.fail("usage: direct passthrough { ipv4 | ipv6 | eb } ") msg = fw.passthrough(cmd.check_ipv(args.passthrough[0]), splitArgs(args.passthrough[1])) if msg: sys.stdout.write(msg + "\n") elif args.action == "get": if not hasattr(args, "item"): grp_direct_add.print_help() sys.exit(0) if args.permanent: fw_direct = fw.config().direct() if args.item == "all-chains": if args.permanent: chains = fw_direct.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) else: chains = fw.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) if args.item == "chains": if args.permanent: cmd.print_and_exit(" ".join(fw_direct.getChains( cmd.check_ipv(args.chains[0]), args.chains[1]))) else: cmd.print_and_exit( " ".join(fw.getChains(cmd.check_ipv(args.chains[0]), args.chains[1]))) elif args.item == "all-rules": if args.permanent: rules = fw_direct.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % \ (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) else: rules = fw.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % \ (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) elif args.item == "rules": if args.permanent: rules = fw_direct.getRules(cmd.check_ipv(args.rules[0]), args.rules[1], args.rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) else: rules = fw.getRules(cmd.check_ipv(args.rules[0]), args.rules[1], args.rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif args.item == "all-passthroughs": if args.permanent: for (ipv, rule) in fw_direct.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) else: for (ipv, rule) in fw.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif args.item == "passthroughs": if args.permanent: rules = fw_direct.getPassthroughs(cmd.check_ipv( args.passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) else: rules = fw.getPassthroughs(cmd.check_ipv(args.passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) else: cmd.fail("Uncaught argument") else: cmd.fail("Uncaught argument") ############################################################################# # lockdown elif args.parser == "lockdown-whitelist": if not hasattr(args, "action"): grp_lockdown_whitelist.print_help() sys.exit(0) if args.action == "add": if not hasattr(args, "item"): grp_lockdown_whitelist_add.print_help() sys.exit(0) if args.permanent: fw_policies = fw.config().policies() else: fw_policies = fw if args.item == "command": cmd.add_sequence(args.command, fw_policies.addLockdownWhitelistCommand, fw_policies.queryLockdownWhitelistCommand, None, "'%s'") elif args.item == "context": cmd.add_sequence(args.context, fw_policies.addLockdownWhitelistContext, fw_policies.queryLockdownWhitelistContext, None, "'%s'") elif args.item == "uid": cmd.add_sequence(args.uid, fw_policies.addLockdownWhitelistUid, fw_policies.queryLockdownWhitelistUid, None, "'%s'") elif args.item == "user": cmd.add_sequence(args.user, fw_policies.addLockdownWhitelistUser, fw_policies.queryLockdownWhitelistUser, None, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "query": if not hasattr(args, "item"): grp_lockdown_whitelist_query.print_help() sys.exit(0) if args.permanent: fw_policies = fw.config().policies() else: fw_policies = fw if args.item == "command": cmd.query_sequence(args.command, fw_policies.queryLockdownWhitelistCommand, None, "'%s'") elif args.item == "context": cmd.query_sequence(args.context, fw_policies.queryLockdownWhitelistContext, None, "'%s'") elif args.item == "uid": cmd.query_sequence(args.uid, fw_policies.queryLockdownWhitelistUid, None, "'%s'") elif args.item == "user": cmd.query_sequence(args.user, fw_policies.queryLockdownWhitelistUser, None, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "remove": if not hasattr(args, "item"): grp_lockdown_whitelist_remove.print_help() sys.exit(0) if args.permanent: fw_policies = fw.config().policies() else: fw_policies = fw if args.item == "command": cmd.remove_sequence(args.command, fw_policies.removeLockdownWhitelistCommand, fw_policies.queryLockdownWhitelistCommand, None, "'%s'") elif args.item == "context": cmd.remove_sequence(args.context, fw_policies.removeLockdownWhitelistContext, fw_policies.queryLockdownWhitelistContext, None, "'%s'") elif args.item == "uid": cmd.remove_sequence(args.uid, fw_policies.removeLockdownWhitelistUid, fw_policies.queryLockdownWhitelistUid, None, "'%s'") elif args.item == "user": cmd.remove_sequence(args.user, fw_policies.removeLockdownWhitelistUser, fw_policies.queryLockdownWhitelistUser, None, "'%s'") else: cmd.fail("Uncaught argument") elif args.action == "list": if not hasattr(args, "item"): grp_lockdown_whitelist_list.print_help() sys.exit(0) if args.permanent: fw_policies = fw.config().policies() else: fw_policies = fw if args.item == "commands": cmd.print_and_exit("\n".join( fw_policies.getLockdownWhitelistCommands())) elif args.item == "contexts": cmd.print_and_exit("\n".join( fw_policies.getLockdownWhitelistContexts())) elif args.item == "uids": cmd.print_and_exit("\n".join(map( str, fw_policies.getLockdownWhitelistUids()))) elif args.item == "users": cmd.print_and_exit("\n".join( fw_policies.getLockdownWhitelistUsers())) else: cmd.fail("Uncaught argument") else: cmd.fail("Uncaught argument") ############################################################################# # config elif args.parser == "config": if not hasattr(args, "action"): grp_config.print_help() sys.exit(0) if args.action == "get": if not hasattr(args, "item"): grp_config_get.print_help() sys.exit(0) if args.item == "default-zone": cmd.print_and_exit(fw.getDefaultZone()) elif args.item == "lockdown": cmd.print_query_result(fw.queryLockdown()) elif args.item == "log-denied": cmd.print_and_exit(fw.getLogDenied()) elif args.item == "panic": cmd.print_query_result(fw.queryPanicMode()) else: cmd.fail("Uncaught argument") elif args.action == "list": cmd.print_msg("default-zone %s" % fw.getDefaultZone()) cmd.print_msg("lockdown %s" % ("no", "yes")[fw.queryLockdown()]) cmd.print_msg("log-denied %s" % fw.getLogDenied()) cmd.print_msg("panic %s" % ("no", "yes")[fw.queryPanicMode()]) sys.exit(0) elif args.action == "set": if not hasattr(args, "item"): grp_config_set.print_help() sys.exit(0) if args.item == "default-zone": fw.setDefaultZone(args.default_zone) elif args.item == "lockdown": if args.lockdown in [ "yes", "on" ]: fw.config().set_property("Lockdown", "yes") fw.enableLockdown() elif args.lockdown in [ "no", "off" ]: fw.config().set_property("Lockdown", "no") fw.disableLockdown() else: cmd.fail("Bad argument") elif args.item == "log-denied": fw.setLogDenied(args.log_denied) elif args.item == "panic": if args.panic in [ "yes", "on" ]: fw.enablePanicMode() elif args.panic in [ "no", "off" ]: fw.disablePanicMode() else: cmd.fail("Bad argument") else: cmd.fail("Uncaught argument") else: cmd.fail("Uncaught argument") ############################################################################# # settings elif args.parser == "settings": if not hasattr(args, "action"): grp_settings.print_help() sys.exit(0) if args.action == "get": if not hasattr(args, "item"): grp_settings_get.print_help() sys.exit(0) if args.item == "BRIDGE": cmd.print_and_exit(("no", "yes")[fw.get_property(args.item)]) elif args.item == "CleanupOnExit": cmd.print_and_exit(fw.config().get_property(args.item)) elif args.item == "IPSet": cmd.print_and_exit(("no", "yes")[fw.get_property(args.item)]) elif args.item == "IPSetTypes": cmd.print_and_exit(" ".join(sorted(fw.get_property(args.item)))) elif args.item == "IPv4": cmd.print_and_exit(("no", "yes")[fw.get_property(args.item)]) elif args.item == "IPv6": cmd.print_and_exit(("no", "yes")[fw.get_property(args.item)]) elif args.item == "IPv6_rpfilter": cmd.print_and_exit(("no", "yes")[fw.get_property(args.item)]) elif args.item == "IndividualCalls": cmd.print_and_exit(fw.config().get_property(args.item)) elif args.item == "MinimalMark": cmd.print_and_exit(fw.config().get_property(args.item)) else: cmd.fail("Uncaught argument") elif args.action == "list": props = [ "BRIDGE", "IndividualCalls","IPSet", "IPSetTypes", "IPv4", "IPv6", "IPv6_rpfilter", "CleanupOnExit", "MinimalMark" ] l = len(max(props, key=len)) for x in sorted(props): if x in [ "CleanupOnExit", "MinimalMark", "IndividualCalls" ]: prop = fw.config().get_property(x) else: prop = fw.get_property(x) if isinstance(prop, list): prop = " ".join(prop) elif isinstance(prop, bool): prop = ("no", "yes")[prop] cmd.print_msg("%s %s" % (x.ljust(l), prop)) sys.exit(0) else: cmd.fail("Uncaught argument") else: cmd.fail("Uncaught argument") # final success cmd.print_and_exit("success") firewalld-0.4.4.6/src/firewalld000077500000000000000000000142371320241217000163210ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2010-2016 Red Hat, Inc. # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # python fork magic derived from setroubleshoot # Copyright (C) 2006,2007,2008,2009 Red Hat, Inc. # Authors: # John Dennis # Dan Walsh import os import sys import dbus import traceback import argparse from firewall import config from firewall.functions import firewalld_is_active from firewall.core.logger import log, FileLog def parse_cmdline(): parser = argparse.ArgumentParser() parser.add_argument('--debug', nargs='?', const=1, default=0, type=int, choices=range(1, log.DEBUG_MAX+1), help="""Enable logging of debug messages. Additional argument in range 1..%s can be used to specify log level.""" % log.DEBUG_MAX, metavar="level") parser.add_argument('--debug-gc', help="""Turn on garbage collector leak information. The collector runs every 10 seconds and if there are leaks, it prints information about the leaks.""", action="store_true") parser.add_argument('--nofork', help="""Turn off daemon forking, run as a foreground process.""", action="store_true") parser.add_argument('--nopid', help="""Disable writing pid file and don't check for existing server process.""", action="store_true") return parser.parse_args() def setup_logging(args): # Set up logging capabilities log.setDateFormat("%Y-%m-%d %H:%M:%S") log.setFormat("%(date)s %(label)s%(message)s") log.setInfoLogging("*", log.syslog, [ log.FATAL, log.ERROR, log.WARNING ], fmt="%(label)s%(message)s") log.setDebugLogLevel(log.NO_INFO) log.setDebugLogLevel(log.NO_DEBUG) if args.debug: log.setInfoLogLevel(log.INFO_MAX) log.setDebugLogLevel(args.debug) if args.nofork: log.addInfoLogging("*", log.stdout) log.addDebugLogging("*", log.stdout) log_file = FileLog(config.FIREWALLD_LOGFILE, "a") try: log_file.open() except IOError as e: log.error("Failed to open log file '%s': %s", config.FIREWALLD_LOGFILE, str(e)) else: log.addInfoLogging("*", log_file, [ log.FATAL, log.ERROR, log.WARNING ]) log.addDebugLogging("*", log_file) if args.debug: log.addInfoLogging("*", log_file) log.addDebugLogging("*", log_file) def startup(args): try: if not args.nofork: # do the UNIX double-fork magic, see Stevens' "Advanced # Programming in the UNIX Environment" for details (ISBN 0201563177) pid = os.fork() if pid > 0: # exit first parent sys.exit(0) # decouple from parent environment os.chdir("/") os.setsid() os.umask(os.umask(0o077) | 0o022) # Do not close the file descriptors here anymore # File descriptors are now closed in runProg before execve # Redirect the standard I/O file descriptors to /dev/null if hasattr(os, "devnull"): REDIRECT_TO = os.devnull else: REDIRECT_TO = "/dev/null" fd = os.open(REDIRECT_TO, os.O_RDWR) os.dup2(fd, 0) # standard input (0) os.dup2(fd, 1) # standard output (1) os.dup2(fd, 2) # standard error (2) if not args.nopid: # write the pid file with open(config.FIREWALLD_PIDFILE, "w") as f: f.write(str(os.getpid())) if not os.path.exists(config.FIREWALLD_TEMPDIR): os.mkdir(config.FIREWALLD_TEMPDIR, 0o750) # Start the server mainloop here from firewall.server import server server.run_server(args.debug_gc) # Clean up on exit if not args.nopid and os.path.exists(config.FIREWALLD_PIDFILE): os.remove(config.FIREWALLD_PIDFILE) except OSError as e: log.fatal("Fork #1 failed: %d (%s)" % (e.errno, e.strerror)) log.error(traceback.format_exc()) if not args.nopid and os.path.exists(config.FIREWALLD_PIDFILE): os.remove(config.FIREWALLD_PIDFILE) sys.exit(1) except dbus.exceptions.DBusException as e: log.fatal(str(e)) log.error(traceback.format_exc()) if not args.nopid and os.path.exists(config.FIREWALLD_PIDFILE): os.remove(config.FIREWALLD_PIDFILE) sys.exit(1) except IOError as e: log.fatal(str(e)) log.error(traceback.format_exc()) if not args.nopid and os.path.exists(config.FIREWALLD_PIDFILE): os.remove(config.FIREWALLD_PIDFILE) sys.exit(1) def main(): # firewalld should only be run as the root user if os.getuid() != 0: print("You need to be root to run %s." % sys.argv[0]) sys.exit(-1) # Process the command-line arguments args = parse_cmdline() setup_logging(args) # Don't attempt to run two copies of firewalld simultaneously if not args.nopid and firewalld_is_active(): log.fatal("Not starting FirewallD, already running.") sys.exit(1) startup(args) sys.exit(0) if __name__ == '__main__': main() firewalld-0.4.4.6/src/gtk3_chooserbutton.py000077500000000000000000000124321320241217000206200ustar00rootroot00000000000000#!/usr/bin/python -Es # -*- coding: utf-8 -*- # # Copyright (C) 2008,2012 Red Hat, Inc. # # Authors: # Thomas Woerner # Florian Festi # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class ChooserButton(object): def __init__(self, button, default_label=""): self.button = button self.default_label = default_label self.label = None self._menu = None self._icon = None children = self.button.get_children() if len(children) == 1 and isinstance(children[0], (Gtk.HBox, Gtk.Box)): children = children[0].get_children() for child in children: if isinstance(child, Gtk.Label): self.label = child break else: for child in list(button.get_children()): button.remove(child) hbox = Gtk.HBox() self.label = Gtk.Label() arrow = Gtk.Arrow(arrow_type=Gtk.ArrowType.DOWN, shadow_type=Gtk.ShadowType.IN) hbox.set_spacing(2) hbox.pack_start(self.label, True, True, 0) hbox.pack_end(arrow, False, False, 0) button.add(hbox) if not self.label: raise ValueError("%s is not a ChooserButton" % button.get_name()) self.connect("clicked", self._show_menu) self.reset() def set_sensitive(self, value): self.button.set_sensitive(value) def get_sensitive(self): return self.button.get_sensitive() def is_sensitive(self): return self.button.is_sensitive() def connect(self, _type, *args): return self.button.connect(_type, *args) def disconnect(self, *args): self.button.disconnect(*args) def get_text(self): return self.text def set_text(self, text): if not text or len(text) < 1: self.reset() self.text = text self.label.set_text(self.text) def set_stock_icon(self, name, size=Gtk.IconSize.MENU): if self._icon is None: self._icon = Gtk.Image() hbox = self.button.get_child() hbox.pack_start(self._icon, True, True, 0) hbox.reorder_child(self._icon, 0) self._icon.set_from_stock(name, size) def reset(self): self.text = None self.label.set_text(self.default_label) def set_menu(self, menu): self._menu = menu if menu: menu.attach_to_widget(self.button, self._detach_menu) def get_menu(self): return self._menu def _detach_menu(self): self._menu = None def _show_menu(self, *dummy): if not self._menu: return self._menu.popup(None, None, self._menu_position_func, 0, 0, 0) def _menu_position_func(self, menu, dummy): allocation = self.button.get_allocation() req = menu.size_request() menu_width = req.width menu_height = req.height if menu_width != allocation.width: menu.set_size_request(-1, -1) req = menu.size_request() if req.width > allocation.width: menu.set_size_request(req.width, req.height) else: menu.set_size_request(allocation.width, -1) (x, y) = self.button.get_parent_window().get_origin()[1:] x += allocation.x y += allocation.y + allocation.height root = self.button.get_root_window() (dummy, dummy, dummy, root_height) = root.get_geometry() if y + menu_height > root_height: y -= menu_height + allocation.height return (x, y, True) class ToolChooserButton(object): def __init__(self, button, default_label=''): self.button = button self.default_label = default_label self._menu = None self._icon = None self.reset() self.set_sensitive = self.button.set_sensitive def get_text(self): return self.text def set_text(self, text): if not text or len(text) < 1: self.reset() self.text = text self.button.set_label(text) def set_stock_icon(self, name, size=Gtk.IconSize.BUTTON): if self._icon is None: self._icon = Gtk.Image() self.button.set_icon_widget(self._icon) self._icon.set_from_stock(name, size) def reset(self): self.text = None self.button.set_label(self.default_label) def set_menu(self, menu): self._menu = menu self.button.set_menu(menu) def get_menu(self): return self._menu def _detach_menu(self): self._menu = None firewalld-0.4.4.6/src/gtk3_niceexpander.py000066400000000000000000000057631320241217000203750ustar00rootroot00000000000000#!/usr/bin/python -Es # -*- coding: utf-8 -*- # # Copyright (C) 2016 Red Hat, Inc. # # Authors: # Thomas Woerner # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # class NiceExpander(object): def __init__(self, expanded_button, unexpanded_button, paned, child): self.expanded_button = expanded_button self.unexpanded_button = unexpanded_button self.paned = paned self.child = child self.sensitive = True self.expanded = False self.callback = { } self.parent = self.expanded_button.get_parent() self.expanded_button.connect("clicked", self.expand_cb) self.unexpanded_button.connect("clicked", self.unexpand_cb) self.set_expanded(True) def expand_cb(self, *args): self.expanded = False self.expanded_button.hide() self.unexpanded_button.show() self.child.hide() width = self.unexpanded_button.get_allocated_width() width += self.parent.get_border_width()*2 self.paned.set_position(width) self.call_notify_expanded() def unexpand_cb(self, *args): self.expanded = True self.expanded_button.show() self.unexpanded_button.hide() self.child.show() width = self.expanded_button.get_allocated_width() width += self.parent.get_border_width()*2 self.paned.set_position(width) self.call_notify_expanded() def set_expanded(self, flag): self.expanded = flag if flag: self.unexpand_cb() else: self.expand_cb() def get_expanded(self): return self.expanded def connect(self, name, callback, *args): if name == "notify::expanded": self.callback[name] = (callback, args) else: raise ValueError("Unknown callback name '%s'" % name) def call_notify_expanded(self): name = "notify::expanded" if name in self.callback: cb = self.callback[name] try: cb[0](*cb[1]) except Exception as msg: print(msg) def set_sensitive(self, value): self.expanded_button.set_sensitive(value) self.unexpanded_button.set_sensitive(value) self.child.set_sensitive(value) def get_sensitive(self): return self.expanded_button.get_sensitive() def is_sensitive(self): return self.expanded_button.is_sensitive() firewalld-0.4.4.6/src/icons/000077500000000000000000000000001320241217000155265ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/16x16/000077500000000000000000000000001320241217000163135ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/16x16/apps/000077500000000000000000000000001320241217000172565ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/16x16/apps/firewall-applet-error.png000066400000000000000000000015371320241217000242110ustar00rootroot00000000000000‰PNG  IHDRóÿasBIT|dˆ pHYs : :ðd’JtEXtSoftwarewww.inkscape.org›î<ÜIDAT8¥“Qh›e…ŸïûÿdiówiÈʺt]q²¦,Eeà"‚£†´X˜à•‚ìbÞz£ ¼¼ó^‰ÒÂZi ëÊp ê M2ÜØl’6[»Ö–4M¾?ß÷zÑ ›x·^x9ç½8ÎQ"ÂÓŒÿàç?ùhpµþÚÁJu?J³šNo×¶w#žsÎ!V0móÍ… ¿WÿU0—ûô…ÊÊÑÆŽ§µB) ­xÀÍÉ7¨ âœesksmy¥öê“ ”zç•“/¾k­õþªVQJáû>ÖZT½=|¬»²²Òl·U]`­ª8@§¿52‚+0ãã„Õ*z31[ZBg0½½áüñãþéúß¹\®í+¥¼ïŠ ž9ƒ»z•ö©Sø››°µE$PZcÖ×iŸ>-’JÕ:wî|v¹;þm<ßø· =•V«øÛÌLÒC¢ÕŠ][‹xÆèŽ1ˆs ÂîÆFgzuõ‹÷D¾œ}<¼vøe½›>ˆ¼G²ð ÀÜýÊ×ᦈl=‘þ§­ó?³ec×Iþ.IEND®B`‚firewalld-0.4.4.6/src/icons/16x16/apps/firewall-applet-panic.png000066400000000000000000000014311320241217000241430ustar00rootroot00000000000000‰PNG  IHDRóÿasBIT|dˆ pHYs : :ðd’JtEXtSoftwarewww.inkscape.org›î<–IDAT8¥“OˆUeÆßw¾ïœ¹3çzuÿt§;b !KláFA¡65¸hUQ- wnÔ¡… mf´) R¨RŽf )ÈØ½w®#2ŽcsϹç;çûÞwTfç /ïûyž÷y”ˆð,e6Zž;3s²uwñÕî&”æn³ùh±5ù(·Q! ^p…ûöôé3ß«§üüæë_¼ÒéWû‘Ö ¥4 ÆR®¿ó6Ý]-Bð,¯,ßo÷Ž<É@©mª¿/Û·Gÿv»(¥0Æà½GDØ=?Ï_ÏO2[œúüÄÈüöfðC½þi³Ù<õòØØ¸ª|¤ï1•$ˆh¥‘Háƒç¡6¼Õ»Ç¥m[A„²*‡ÄiúÙþFc§uå=UQ`Óq/‚±–¢ßg9¯*â½ûKôE ¬ÖDt.¨…8x’Êr8C@¼‡8F{ÏXY‘”%û®ÌqÅ{òu5çb=3Ctìñº$áxn g³³á»‹ÛÎù¿ €Žc1fÃnX‰R+ŸüyõÝ7n­*áÂÄÄÍ×’äÅèÀB’ •"ˆ µ „QÄÀZAµ?²«_žýÝý¡ÆH5:й|«5E–‘¤)•sØZ²,‰ê)Çjy×Ôh§×Ëš;Z‹ÃÞ«îÄ¥s¸<'xO™ç”yޝªá,KŠÕÕ*Ï2÷ËÞ½K¿ý:÷pzzºÐJ©ÈY;Ò:z9|e-µñq”µØ4e¤Ñ@mŒÔ–tXzpü§[·÷õÿË>ZÏB½3ܼvþü–àV+~¡Ý¶‘sºr DȃêG‘¯?β¯.O*uíÀñ­1Ëbì…–~ §:8Ô¯n¬åŠ?‹ÌÎÌï+€¶övf î÷ô”›(%s<èï)q’IÞ <{ú¼¬”ú-&ÁÖÔ׳·µuªƒCýM&#þÖ”´uuɪš‚\6Ëݾ¾£¹l–¶înGGÍ¿àb*ÑZXkåi„F)õr¼£ãÉßÚ®þªÎéDKIEND®B`‚firewalld-0.4.4.6/src/icons/16x16/apps/firewall-config.png000066400000000000000000000014261320241217000230370ustar00rootroot00000000000000‰PNG  IHDRóÿasBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitleFirewall®®tEXtAuthorLapo Calamandreiß‘*VIDAT8¥’MHTQÇ÷Ý;Î3«‰ ÇÈ.Õ ‰ˆÂFÝ -¬$¤›Dp뢕n2¢•H´i3ê"7æ8ˆ‹#I‘$n \4àÆ užïÝûn‹Á‰\uWçžÿ½¿óçœ#2™ ÿsÔɲׇ}ß C£¬µXk±å "¡#‘È‹ @©Tì}Ü«âñ‹T»Õ¸®‹R<¯DÉ+áyÞA Ï+±³³£¦¦ÞV‚ P®ëR¥kËÕ¥”cBàº.»»»¬­"Ъ£1¡Áq$µÉ:Ξ‘H$ØØØ¤±±dmíË-"„Àhƒê]^Ña8`A²_½& ðãû1Y6ÏœãCì2ÁAkã8h£Q: :‡†ä·ímš“É£?_‹EšëêÀq0Ö2?<ÌBÃ<ÖúØYÕØH,GÆãà8 ±X ™H€ã …kÙx?Â0Æèòƒ•ÖÆÆH¦R %HÉÚê*ué4H‰J¥ø²þ™ ðñ}Ÿýý=Œ µ˜{©µ•í|þÔe9Ôç=<Ñ¡£Ñhyn55a¢Q’…¥%îuv9™Ÿžæv:ÍL>O*uíÀñ­1Ëbì…–~ §:8Ô¯n¬åŠ?‹ÌÎÌï+€¶övf î÷ô”›(%s<èï)q’IÞ <{ú¼¬”ú-&ÁÖÔ׳·µuªƒCýM&#þÖ”´uuɪš‚\6Ëݾ¾£¹l–¶înGGÍ¿àb*ÑZXkåi„F)õr¼£ãÉßÚ®þªÎéDKIEND®B`‚firewalld-0.4.4.6/src/icons/22x22/000077500000000000000000000000001320241217000163055ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/22x22/apps/000077500000000000000000000000001320241217000172505ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/22x22/apps/firewall-applet-error.png000066400000000000000000000022651320241217000242020ustar00rootroot00000000000000‰PNG  IHDRÄ´l;sBIT|dˆ pHYs ° °ÚÐ8ytEXtSoftwarewww.inkscape.org›î<2IDAT8µ•_hÕeÇ?Ï{Îïw6ÏÙfn«©S›˜ÙEó¢ © ÑB¨‹@f8’"Ã?©¸tåØB]1›^+óßpuQ#Ê‚ /2 JELhŠZ¶?§öÿœóû½ïÓÅæ¶“ZAôÀ{ó{àóûò}¾ïóŠªòTôïš""µµµ± »|ùrÐÖÖfä~Š·¿¶}qI_ÿ‡e7oøÝî4E]] «¸Øu»Ž²™¶gòd§(jEq6‘HC}Ý›õ÷‹˜SÏ>seá[s4ï¨GDPUœ1\_²˜Ž§Ÿ"m-A&ÃŒ™Óioÿ´oßž· î¶Bä qÁ¦›ÂB~êèÀ“wΡªx‡ÞEŽçÀ´©|ÿs­mDZ6Œ˜;¼c"å'D^þ Ž+W.›|ê‹IfÉ&97z”<1$&9¥¤ªŠ²¯Nóä²ålÈ„äcÄà¬F‡×*27¿´ôÌ£¥¥±ü«W£‘uëÄ”—ã•—S–È#ÓÜ £Ž/ŠY³¿¾~äƒç3ÿãOX F݈uÀÂÜÒyó˜•Lz^<.ÒÞ>æLt÷nr««ÉÉK͉«®‡É–ÃXgX?Ð! í¸b“L ÝÝ8ULK ƒÔÕx»kH";vŒA{6m¦û½@)z»“ÙVx·o‹f2 ŠZ‹65¦RÄöíùq]Ýø@€`Û6äƒ÷)ö ª#I‰%“X;BFCkÑ0$U\S"‚¿woVp2[·47DŒÚ{'°O´†òؼCY`?/ÏåD£¨µ©Ï#"±»/žCÄ÷ñDˆE"Ãñîžë8§K{û޽töÜž¬¸¥âq‡*¨sˆ1HUfÔç‰å54Y»–Xn®d|?¯jÉÜô¬™s®íxµâËÓŸ/Ïÿ‘N“b(Æ©â*+1¦ŸÞ²…ôæÍYp­¨À9‡‰Ó÷¿x'Ë -)±’NãâWT |Õ;‰9Bjp?‘@jkH44àÅ|Ò­' ‹ä’˜¨lÈRö÷ÓYZŠ:«VAmM As36Uƒ±55ãÊŸ{žhÄ£sõjÎ_¸ûvãþö1ÅÏ“ÌìÙ tvBc#þúõØ“' &L¥ˆæä`< •B÷ïÇK&1••nà@óðÅLúÖ¡3_ÿˆòK"‘„ѵ¹Idã ‹Õ=±bE.]]¤%žJa"Pe¸·—Ü)SÀZlbÃTI%“ùð™¨þ>qÀQ€ó0°ðÊrâñ´&SRb¦ IñµkFU%ÕׇZ;rT 3=çÞ€WΪßIUED_ ‹‡'6g@Á|˜6ŠŠ  z~…îoáÒëððÞc©-z1mþS©ª»_ï¾OÓ­?NÀõo"v€TIEND®B`‚firewalld-0.4.4.6/src/icons/22x22/apps/firewall-applet-panic.png000066400000000000000000000021431320241217000241360ustar00rootroot00000000000000‰PNG  IHDRÄ´l;sBIT|dˆ pHYs ° °ÚÐ8ytEXtSoftwarewww.inkscape.org›î<àIDAT8µ•Ml”U†Ÿsï÷u:©i[( $5üTâÂ@Ô–†…,aáÂ@ ¦EÃFŒ\"!©®Ð¨+ ˜ ‚MÚË´˜a:ßß½ÇÅ”é $Ƴ:7'÷¹7ï}Ϲ¢ªüüSQDdpp0÷ ° .¤CCC@îwã]»wmî©Ö¾\qårÛÃcÓ=>nÆËe_)—ýÈŠeîzg§WuŠ¢x—‰ˆý`Ï{î¹7XÄ|ÿÂóÃ.ÿù¨¦ÙÛ#"¨*Þþxq3#ÏÂÑ¡#8—Y˜¥ñ"Oxü9x¹4¢ÀݺÅBï™Æ€Ì+ØüB¼²#ÉØQ*bÄà§>*²ªØ×w|u__®xñbPð^tªÁÒ®.|šÂ´b& ðYFÅÜHRÒ d`ìë‹!óÙ ØÁª¾5kX>:šöv¬µ¨s¤QDX,B’€*Yš h–aƒ:RpÆ  ¯ß®áEÈ2Ç)Ìä¤01WÅ„!xŸšBA¦5uQD0­·:‡KR樂¦Üš˜œ+@86&¬]K°{7ÒÛ ªäT‘;7½6Ö‚*mª,7Æâ+êû÷surçšäp½Ø;1›6Íd¾afåfVnW¯&ÇznðíXÖ®94ÜÖÑáµw¹ïA#µ-§Ï¼ÿʉS{瀣öv¯ûöµè¢E- Ô{ŒµÜi&U0/ •qÍ~’}ëÍW¯ýðÝðæ/}Ýߌc'Oâ·né0ï›Ì[KÐÜV·ßQÀ#ê}xå©'jƒO°öô8‰cÚêuÂ\sî4ªUòÅ""‚zOT¯³ T’Fƒm!¦£ç2Ò®n9/fÛ:•sÞ «Õ¨ôõ¡Þã’„,ŠšË2²8ÆÅ1¨âÒÇxçPAlHeûvΜ=»àãµ4ö „¡$+Wr»R!?6†±›Ë5ÁQDÏcÂ4ŠP@Œ!ºy³áSñÅr¹rèø¿¢\- õø¬èïì´ËÖ¯‡þ~âÇÉGQ˳Þ9r¥8‡Ë2\–5½ǵbÛ[­½ñì¥ßnÌvIpno&ßÞ»Fƒ¤§Ç,™š’òè¨QïEU‰ªUÔ9PEUÉ’DOÁ©wᵪùöUEDÛûá‘ÙÅ¥P€Å½ÐÝ ]pý/˜8 ç߯€ŸõC½5èEÄÌ/þ[¨ª¿_í¾_Ó¿º7ü£f‚³IEND®B`‚firewalld-0.4.4.6/src/icons/22x22/apps/firewall-applet.png000066400000000000000000000023631320241217000230520ustar00rootroot00000000000000‰PNG  IHDRÄ´l;sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitleFirewall®®tEXtAuthorLapo Calamandreiß‘*3IDAT8¥•ÛkWÇ?çœÙ‹ &±j|‰½K¬¥M!¢UÙ×Z±(T¬i‹H}(Øö¡EÛèSýlµR ­õªP‰ˆn ÕPi²ºÑÄd Ù]“lw®§³ÎzK[膙ï™s>3ç{¾sF$“I¦«––HTZòOí÷pk 5ÅT*eG¦ƒ¾±lég®kµ „Ðh´Ž]nÕš¨´Šþ„~õõÅ_N v,§}Ã;Ìh4†iš˜fÓ01 Û¶±Û¶‚ëòÙ²-lÛâ—“'Û§»ŽcVWWóÂó$7¤”h­ƒMÔŒ–g£) ü~ù7Ç1Cðû]]USêÞÆg±ò9ÀüÙ³ñ}ŸººYÔ×Ï#ÓßÏd±HãË‹©Ÿ;×u°m›ÎÎN„øž€ZOŸþN'ï%ÀS¦‰oÛ,ýáGþìø™}55è±1@@.‡ÊãY6ÍÀà0ªëñ|‰cépFÞ°ëy[ÞÚ½[Ýéë‹4¬[‡—N0Ò×ÇSõµkøBplëVN6-Çu,Û@QkPÊ4) ¡ïßGzbσ”²Yt±ˆž˜@Õ׃֌[&®åá9ªl¢ÀóüЧ^:Íí³gi0MФävw7ó«ªB}§»›ùµµÁ€©)nžÿ>\ØÄŒA圡!_¼ë×AJ„”xRâõ÷ƒR Tp`?¤¡·÷\×Åq\×ax8 0‚¯cD£ôœ;‡ë8DL“H,FÏ™3¸¶M$%‹q¹« ×q¨+G°­­­¤­}””íùŸ†à¦åËñB:q‚æµk—ÔáÃ4¯__¶P:x¦5kHŸ:ÅÊU+”ïëoýtdûÃßAÖ€38RBÙÿV ðÊv!%ÞÝ»¬Z±Æøbçç}¼cû‡ ¥DVÚÕ‚ x寝ˆÇ¸r…±BeŒf2Üá^.‡ŠD¸“Ép+›åÞØÊ0˜”’±«W9óL-sçÌÁ÷µºySÑèžx<^Ù+­^Í…žš7n 6!H8@ó¦Ma*.îßOskkàå¼y¤gõ›+)•þ"—Ë‹™53Í‘ì­u³j¾Áîèh%ÃÃZ02J!¤ µ¯‚Ü6½¸(ô5ŸÏ‹cGE.œÿuwîÏd0âq.=ŠcY±X µ,"±‘xœK¸¥µK–ÐúÁ–Ò˦”U ÑSëöíà R±w/-Û¶©={íû¡^¶kG6oæ]˜‘L&‹3ç{¾sF$“I¦«––HTZòOí÷pk 5ÅT*eG¦ƒ¾±lég®kµ „Ðh´Ž]nÕš¨´Šþ„~õõÅ_N v,§}Ã;Ìh4†iš˜fÓ01 Û¶±Û¶‚ëòÙ²-lÛâ—“'Û§»ŽcVWWóÂó$7¤”h­ƒMÔŒ–g£) ü~ù7Ç1Cðû]]USêÞÆg±ò9ÀüÙ³ñ}ŸººYÔ×Ï#ÓßÏd±HãË‹©Ÿ;×u°m›ÎÎN„øž€ZOŸþN'ï%ÀS¦‰oÛ,ýáGþìø™}55è±1@@.‡ÊãY6ÍÀà0ªëñ|‰cépFÞ°ëy[ÞÚ½[Ýéë‹4¬[‡—N0Ò×ÇSõµkøBplëVN6-Çu,Û@QkPÊ4) ¡ïßGzbσ”²Yt±ˆž˜@Õ׃֌[&®åá9ªl¢ÀóüЧ^:Íí³gi0MФävw7ó«ªB}§»›ùµµÁ€©)nžÿ>\ØÄŒA圡!_¼ë×AJ„”xRâõ÷ƒR Tp`?¤¡·÷\×Åq\×ax8 0‚¯cD£ôœ;‡ë8DL“H,FÏ™3¸¶M$%‹q¹« ×q¨+G°­­­¤­}””íùŸ†à¦åËñB:q‚æµk—ÔáÃ4¯__¶P:x¦5kHŸ:ÅÊU+”ïëoýtdûÃßAÖ€38RBÙÿV ðÊv!%ÞÝ»¬Z±Æøbçç}¼cû‡ ¥DVÚÕ‚ x寝ˆÇ¸r…±BeŒf2Üá^.‡ŠD¸“Ép+›åÞØÊ0˜”’±«W9óL-sçÌÁ÷µºySÑèžx<^Ù+­^Í…žš7n 6!H8@ó¦Ma*.îßOskkàå¼y¤gõ›+)•þ"—Ë‹™53Í‘ì­u³j¾Áîèh%ÃÃZ02J!¤ µ¯‚Ü6½¸(ô5ŸÏ‹cGE.œÿuwîÏd0âq.=ŠcY±X µ,"±‘xœK¸¥µK–ÐúÁ–Ò˦”U ÑSëöíà R±w/-Û¶©={íû¡^¶kG6oæ]˜‘L&‹î6qÆšÍhºÙŒ¶4Wòa¨ª ªXTä÷r±¸¶§gû÷W¼üÜúÆ…ƒ'·ß3t*æŽ"‚ˆãèé¿P×álûÃdVÜG9ŠˆÊeÊQ™C'šúy°XþÓ‘– ɺ×óÉäCuõ3Ü¡¡!@ùR”c®ÇËaȨóæÍ¥çµm|úñ'Ã=Û^›}¹" àíº… ïð–,UEUqÇqð}Ÿx<ŽãT?m\ñwßy'ïÆã,]°€á‘*ÖL÷à=×íQxä6‘ºë- R_ ¸M®Ké7˜³nEÕ‰• (¨@rÇ®.0»ünVü~šï¤ºJ[±S€½"³S3g®[¾reÿ}bmmàº]]ø©vÓ&°c ^2‰lÙ‚¬^]…º.Ö¸k|ŒÛÃ"‚©­ÀˆAÊ÷ýJbp5¾ýÝ·oJµU«p^z µgëÖ©äÀÙÝýäZaU¾öR‰l±¨?N%›%¦ ÝÝháttT!«W#Q„c ´·O&/îÜÉ©§7@Í«›=ƒR©\ˆ "å2j-j-”ËØ§žÂD±ÎÎêr;:¦íLÛ×GaÃnœßÊŽ€À‘á¬5¥i€¤1nYk-…\®Z O>Y- ¹Qo/ÑÆ¨1üÉØÉUŽìÙ[‰Òé­ÓNhàûø¾ZK)Ÿ'‘J‹qYˆà'”&&HÅã•ðÜùaob" ðØ7ŸIçrŸÕ€Ê»pëçÍÍY3k–Vêë5J¥4jÒiµ»wë•ÂôõéÙ ÐR[›þÙ’6¹yssÙ¹×e¿Þ·û/¾øèfU’4EL”ËŠE Å"ªŠyñE¤f2@´kQoïä³³f ñíÛ9ówÇóœ$Î{ž“ŸÙrÁ8ì€uS7 Õkm $ß|“ØÚµSÒö÷ÃóÏSêîF÷ì™|tvÒôê6âñÇuåÌÜëãcãŠuŽN“èÀ5×\8×Þ®Ùx\Íý÷O“Âö÷«I§5jlÔ\"¡fε}}ÓæTžèÒhÑB=¶o¯vv=~ìb‹™4YUå·L†† àÚL†„1àºD½½”º»ÁÚÉ‚ò™ ¬_Oh-^GÃØ/¿Úµ•>ù°•£†‹y=€nC¹åÞ{±mmxû÷“_¶Œ°µg`€0•¢˜ÍŸ1£ ±–R.›7“}ë-:ÎɆÇÿøaé’uçó ¾õ3ÓŸÁm]ª®__" +Wb >2RíI"¸A€ãûÕV"‚ø>CåÐ!=§ú]3lxeààèe³ªYÞo§’É™EZs_Z­uæ ® ""JíüP«Ê"G4¦#«:xùf©D¤Ùƒ‹!»äT™uKaÎM0{Ì®Izú78ý%œÜÇ#ªZº"àjÆU¿UüUèz£hÁ ­IEND®B`‚firewalld-0.4.4.6/src/icons/24x24/apps/firewall-applet-panic.png000066400000000000000000000022311320241217000241400ustar00rootroot00000000000000‰PNG  IHDRàw=øsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDATH‰µ–]ˆUUÇkŸsÏýœ{gt¾jüÂH±Ó' 4$C¤y©(È$2{è5!‚^$… „|è!JóA0’¬±)Ç‘†œñÎÑgæ~œ{ö^=œ™qf{fÁó?{ïµÎÿÿ_{Ÿ#ªÊR†YÒì€ÿƒ}|è@! ?l¾[Ì·•J^óðˆ0ܼÜ[[l±­%*§Rª ªŠCAAÂjõ®®c¿?²ÀáCï/®÷ö±ûÿNø€AD10XDïÜE=Ãý×^etÏK„õ:õ0$¬‡Üê¿ÕÜûçõ/-²¨"mrÙãå\î•l¾àõ÷÷ È"¯¢\ó|§REX½z]Gðùóƒ]GŽvüב p"]«=«ÄÔUc<Œ1A@:Ƙxi:a{&Ã×é4Û6mbph#Bäì|¾ñ¼.…77ˆdW©YI—<[a…sˆsñÄ(EA„²BC¾²g`ß$fé"÷°ÀI‘ކööƒ;;;SéS§ð³Y´VU¬µ‹ã0ÄE”Fõ’(ð|i˜gR D;—A‚ ˆ2½½8kc@$–g.†‡ØL"ŠΡNx½\·P"W­*}}D$â¾C#ªTHÀ|<­¿ê§îÇX•u¾E‰¢•ŠH>OêÒ%ÌÖ­@¼ çöñb¸yú°==”ß;À¯ƒC8gk3sÈYë¹½{ñ¦“?Nx›7íØ¡Ý_ ëµú'ó˜dRý xìä3Qðü¡ý—¯ìkœ¼sLù¾ãìY´»û±“Ûk=®zîûÂÏ¿qñâ¹u0‡Ád½ÎÔв};3»[Œ‰Í…øŒñ<˜SÀK¥¨NMQmmADHø¾ÔàŒ‰ïg°çÅ;[!“É’Ë5/àíý\þéç»^Ø}hžDª*7GGiL&i›yˆå±±‡Ò¨R¾wD0A€µ–À/«WFßžÿ.ª‡õÆ™¼>À$ŸJ¥dýîݸ NŸ&,I75ÅI£:1AºP˜ÅµÉI‚l–p|¥‚ïB‚]]]]­?àÁƧRü~ð{~ ÎÆÆ ·7ˆÁðâ¥ü¹t%¾§p] €¥t1oÌ{o9"'2V55¡®]àæÀÀÃõLe çÞÙK×sð=çQK!æg ‰F.¤ÍÂÝ»˜©)€@/0ÓÓ Ç×…™¬Š Њ)õž_À÷î¡=„@]¹‚sñ"«¤!@JœînVÇã0wv³»›Õ‰\³€þ ßõNJŒŽVËBg2 %BJ°mÔà`@"%²PÃÈxçfß÷ñ|ÏsÉår…yWóy„”üÖÙHÉ¥dò~hRÒsö,Á"ÌCëþÖ9ƒ1F§…Ô­óžß´ ]Sƒ’ž3gØÐÒrôÔ)6ìØd$é“'©ßº•¡®.6o~ÍטoNž8õ ÿ‘"¢¯_Ke¡FFÐHaÛAçì:Ÿ`ÛëÛ£{ß}»íÃý￸r¾>tà»s‘ššÖ îKÉH_ÎÄHIn`g|g|¤$Ûׇ“Ëád³ %SÆp{hˆóe1–-{­Õ‘áÑø‚eñ²øhy°(ƒú-[øµ¿Ÿ†;Ã(ÓÇÓ°kWXªtG »wƒ”DV¬`èÂ^yõefff˜œœä™gö­‰[Ÿ.Z¼èPOO."Ðù|lÛè7‚}$LU6‹˜›*aÛhÇAÛ6/¾°>Ƽ=I[ÛÇ~_ïÕÏæõ ÿòå Ê'©RÒÓÑqª„ }ô(‰º:ZÞÜ^ÔX˲îþ¿-C‚T*Û Ô77£7nDHIúØ1öí Óíí>'éövÖµ´0”Lòs²3ÞØØ8{Ïæ»á6|ØÖ !”¯5¶!%Q_\¾¥‚ïB‚]]]]­?àÁƧRü~ð{~ ÎÆÆ ·7ˆÁðâ¥ü¹t%¾§p] €¥t1oÌ{o9"'2V55¡®]àæÀÀÃõLe çÞÙK×sð=çQK!æg ‰F.¤ÍÂÝ»˜©)€@/0ÓÓ Ç×…™¬Š Њ)õž_À÷î¡=„@]¹‚sñ"«¤!@JœînVÇã0wv³»›Õ‰\³€þ ßõNJŒŽVËBg2 %BJ°mÔà`@"%²PÃÈxçfß÷ñ|ÏsÉår…yWóy„”üÖÙHÉ¥dò~hRÒsö,Á"ÌCëþÖ9ƒ1F§…Ô­óžß´ ]Sƒ’ž3gØÐÒrôÔ)6ìØd$é“'©ßº•¡®.6o~ÍטoNž8õ ÿ‘"¢¯_Ke¡FFÐHaÛAçì:Ÿ`ÛëÛ£{ß}»íÃý￸r¾>tà»s‘ššÖ îKÉH_ÎÄHIn`g|g|¤$Ûׇ“Ëád³ %SÆp{hˆóe1–-{­Õ‘áÑø‚eñ²øhy°(ƒú-[øµ¿Ÿ†;Ã(ÓÇÓ°kWXªtG »wƒ”DV¬`èÂ^yõefff˜œœä™gö­‰[Ÿ.Z¼èPOO."Ðù|lÛè7‚}$LU6‹˜›*aÛhÇAÛ6/¾°>Ƽ=I[ÛÇ~_ïÕÏæõ ÿòå Ê'©RÒÓÑqª„ }ô(‰º:ZÞÜ^ÔX˲îþ¿-C‚T*Û Ô77£7nDHIúØ1öí Óíí>'éövÖµ´0”Lòs²3ÞØØ8{Ïæ»á6|ØÖ !”¯5¶!%Q_\¾˜„¨Á¼ª`H¸D (NúWÒ§!NbÆ1`®íûÜÙ™~Øëk_.ú‰‘V;»;3ÿßžsæœ]a­åv6y[Õçÿüä/Ÿœ&îÈõç{ú½'æFGåo²ŠÛ¿yóæË#WâV\°qãÏ¿j„:\Óß?õK}Ì{ÎQ14Œëyd(ÄP"A÷”É|pç.ÕTc¬-žB_J±ïw¿yªé–6ýôÇm O¿»xVϧRJÎ#‡µ68° Í›G߃MäCZk´¯ÑÚÃÓšKýýttt€¡aË–mÇnî!f®ž6uþ„a—Ë—¯n‹’óH³ÖBëAä±W91ç[œ¯­Á÷}Œ1TWcÅËyçäÉ|6“š Ü@ˆuÀCÃÊDÏÓôõõ!¥,écŠ÷”£Xô§sì‹ÅØ“L^厉yà{ßŃ_{c!–3gN,±t©ô_=.“œÑiŽãàº.Zkr¹ ã3gQýr¬ëè jútþxñ"Z{!0ÆbükvŠÁGˆ•apïƒI‘¹sC‰7ßt+„€'ž ÕÔÄä³"<(¸@ûËg!üý•TíÝ ŽÖrîþzμǾD%ZPðÑcâ°Â­¬Üø•… ÅøÓ§I à,X#¦vâ--„ãqôÁƒ#ǃŠDÀäÒ¥„ž>¬H´¾žèÉSüÀ`{í¸ÀZFÆ&¢¯UM˜à}ù‰ÇQ õèÇÁin&¼z5አÜDª¬Ä]µªT°ZsõÀ!ŒÔ§SÌÎfß`¸À‚J ÙÙ‰Õ«5tua¼B)Ä3Ï@C֬ֈŋ۶•ˆ£5縞\Ïy|$X1< €1~1`Kƒ0•²âÌt*…“ÏcóyìK/!òyäŽ£ŽƒØ¾²YÈåO? J•ˆ÷­iäÒ¡C…ìÖøÜ+AåóXkÑÆ+H¤Ó¥°¾U*°‚ïc[[ñ²YB»v•@¨;Q«ŒO­]‹m;Jmõ¸QwX‹ã8dºÞÇ7__Ç!ÏftFÙ æ÷Z[ñ­%ÒÒ2 1V¸ î?ò^k+ñš*Çׂ-$'‚õºOžd09èx·À‘Ók-ù\Ž|nLÀZKtÏžrqß'ÓÔ„ikÃZËÐð¹±±SðE×_þj¸kúþý-ûÛöµì+P®k#á0¶ð†Æ²©ÑD!ƒxÑ(7jRJÜD/“!â†M<N‡†/ËL.=2få©5?ü÷lÛ³k_0gìžR¥B Æ<”J!¥D._Žzî¹ò·PŠð‹/"—-kJI&ã‰É2‘ˆÊx<"c±°™uo‰f‰òJÙ¢ß `¬E.[ˆÝjÆ¥vÈqÏ>K(™DŸ8rIzWUªºjŠ”J ¥èn\µåã~PçùfCCC®„æŠï“I§Éd2¤³Y²ù<^´uM’Ak2kÖil,KVñÝ»aÉ’ƒƒ„#|‹ÌyžÈd³:YQ±ÁL劵e.±˜uëêJáF£Äªªˆ75ݽ»LÜ_¿çõ×ñÂ_·® ¢ê…¨^¹’h!f\×åÜäIN¯R{©àí2k-föìF)äÔ©¨ææ2q»~=âȑђÜÖ†}ì±2ˆèÖ­DgÌ ‹‰Dè¿=}êÔ/DÝ‚KN—­IÇb\‰Å‚½»|y™¸yôQü—_ÆhÑQ÷_y¥ÜJá̽¥r R±ðÛ¢û£?·ã;Šº%Ahg»ºÈVTèëÃ?|˜ø† AКLSÓh%Ó2Agï^\­ ïÜY,ǽ¯½Æ¥Þ üúý÷HmýBȜѺ¸-‹9pxœºE‹Ð3fêîÆmo']_OxÞÎo0XWgÃiŽÿl|GG¶güøíÃ2ô7|Rô=zäÓ!Dů`Ò”áqãi µµäÓiÌ[oÁÙ³ÁÇgÁÂq®‹tÝ`+Òq°Ÿ)æ“OHoÚ”©‚+ž›ÓÛÛ|´Ìn¥˜8 C™dR$/^„d´&7mW¨»z•LÅ„ Ê«ñý¢Ï­µ ~6‹ñ}‘‚¡£ð‹µÖ»v°–µ!Äô{`ÎϤü½cÌ×£¼˜ü¿VÓÎ 1ôµ?ê„vkmÏ­8À7Ô·;ü²}&Ì…º»`z*p4äS0ø|Øÿþ-üӇπ·­µæzk•!pãJsöˆ<ÙëË['O6êµÊ:à&"ÏÏ”ff,==d™cddcL—ãö}¡Óg#Ë–ß^â`¡À Å"åò$w-]ÊŸ{ ß{c‘Ç€/µ–ʼn¢ÙÏ¢("Iœs¤iÚê‹) ª< ô ò«Ë—q.CDA þ€ý"q¾‰ìÈAò)¸' ŒODL– "¬$Ë€–ÎCš6!TÀE1õЖ¶=ÇÁž^œÐð¸Öû@¶'½½{>´y³ œ>MÏÄb-šeä D(.\Hh4:³‡°ù<„€zªR›š"³1(U¤_Ì&x~q@•6Á\ >Ú·dIöÁûïOôèQL±ˆÍåš«|–T‰{{gWYš÷ö"!€÷ BZ©`œ#ØU AÜúõóœß“fÖ¬áÜëGÂ_xñ•y6I4Éço»ó¶- zqÇ©|õ7¿>¸S[E¨ ³Ž‡+Wn»só¼ù¦?Ôå³+ÖªÖëø­[‘;aÕ*¼÷Ø8nž{­àóÞ#ÖbædDlãÒ’ÉåHëuìåaÍ^zÉ„ÞÒª¡Ÿß÷Ö_þô”kðñmÛ¶¥]ãÞSKSôÌt÷îNjÝ’µÊ²ÉçÉ*…®§ˆãXBUW.•v üÁ&² øe€ š,_NãÔ)â8&Êå:Y½NÈ2r¥ÒlÎ{Omzš}}H»BÆ1YµJ’$ä{Š„pΑ$ ç— DÃÖ¸Œ…ãpM ¨*aݺ&Œµ˜(´ €1Í>ŒH§ ›–2§ÏZKEäs9Š…ù|žáŸÖÓ§NM{‘µ›6=vz@pŽj¡Àx¡Ð„ñžàÁ¹ÙãWµÓœCÚà­±í£YD°6‹µé¦Í”6F†Þ½°lÿÏöwüvI !ȿϣ^*Ñ32BT«uË TÇÇçÉ_›˜hÞƒÉåP`rr’zëû™8âûïü“ÊOþ…ˆIƒsÕy)$Q±ÈÚ-[p>H<4DþÈêSSäûû[E¦iõr™(—#šsfdµÁ{ò}}d•Šö¦éØ€scx~ÆÄoàAŒŒ:ôòû]"RúܳÜZÉõ÷;‹Ó¨Váµ×0IÒÔ¶•†E˜$Á$I' M¡íX¼ª$ÎU übÃððÏÍÛ·îX:ÓµrYÊ—/C¹ Α®^ÍøÄk''±årÇ™˜fy ÞƒsMùZEË×ëï¥Ó‡àÛ»TßÀws.mÌà°áÆü8 á®ëQ>¬ø_3ͱ÷D¦ŸQýò 8¢ªo Ö[X¼î‹nðËö1XòIXû,Bo €ƒF¦ÎÃŽÀ™Âß<\Ž«j¸Þ\]"b·¸H¾y€ç ~×Õ›9ï¸SvÇÿŽÿ »E3¼í¸ÛIEND®B`‚firewalld-0.4.4.6/src/icons/32x32/apps/firewall-applet.png000066400000000000000000000035551320241217000230600ustar00rootroot00000000000000‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitleFirewall®®tEXtAuthorLapo Calamandreiß‘*­IDATX…Í—[l熟f›µ ˜s²ShÔ†T(%ؾHzѕڤ'QÁ¤ mUEQ€‹6¹©"¤ÐV½I¹(J•P«&i¥˜D–BMÀƒKMemã³1Þ]ïÌîÌèŬwqe¨,!ÑOZÍþï~š}çyÿofWÄb1îeY÷ôÛÿ 83iþÞö¦F›ý~àß§µF+…Ö¥5áZ£µú¯µFi5e£Ê—;ÎûçŸfd òÕ«ÖÌ[²h ‘H¤ðÒÚÈ€ ð ‚âÑ/¬§~64<\}®µõõ 6¼=#~6;oAõ–.]†RjÚcÌô: ضÍáø{äü lpVbÖL `ŒÆóž;5vwñ"Äg òÊ¿Éu]Ât]ÂÃÀ¬R~½üaL¤œL ÑÚ •@I+o@ å-ö´µ}MWTüaé3ÏDÓkV±pÑBjFÆ1?Æñ}æ¬~ˆ>Öß¥ÐÆ0n[$ZÁŠè¡!€þ?$ÿo-¬ §B´²Q2ŒË‚ Ø¡¬R¿¸©)jÕÔ`•΢úú zh‚„À Ê]ëFR)ÈŸd¶Vø© :•Âd2¡Ëâþúzæ8€§KPJ¢•… J™)"ö¤߯r’Iơ뻙ÿΟñGG1¾Èå˜ð<®¬ÜÂ÷ßÇäu|Ÿ Ï£ëg/3ÿÐ!ÌØXQ¯¬ÄÏåpu J;h壵Aæ ˆ<ˆ]ÈIIª·—Îñqr‰^:g YcÌç•ëA¨÷ô˜ÀÓš¬1 6†Àª@© …@# ›p²D,ã‡ÇË…·]73“¡¸mE£e$ê¥é6÷„3gOñ«W÷ªÙ¥eå!¥XuðLg'&—ß'åyü땟²áƒ˜7Â8‚€”ëréå—¨÷0ææÍö”çqé¥]Ô¿'åyt Aox÷“2 ‚€k×®aÙ­««ó cè÷õᆵ.àõ{z¦b÷ý{ooQ׺ §z{¹¬ÆvîÚ9-ˆÆÚÕÒÒ¢E,ãé£Geíéw5‚î†Ç°ß>@gǕŻwïˆÅbÓæácÄêŽ3ÞÚJÇ_ þà‘pWAïOvPèf||òqtìzކ£'1ãã…þtEÝBP9g®|`ù²®}ûö¾øüó»^ÅbzZAª¯Î±1à¼ù]=˜Ëà_¿Ž—ÉcÊë¹¾>¼É)К!ß!X¿n½c ΞŸ¿òÚ[ùãÎ9åå¶å8J@ZqÂH{ŸˆÅbl‹ÇU]ËIë®NAÃc4?ù-ã8Ž‘RºY×}úK<ÒW]U-+æFçÍ­ªz²dVÉúÂ&\s²ýé§!ÆI¼;~DñB¼·bn; 'Z0Édx·Ìëíßo¢ñãV’®KÂ}æôÙ/.[¶¬t˶§^¬®^°?:»´Üvì2@ –hvˆÜà îðpo6;=Þ¼î u¥ ýÉþ~:³YÂzjëæ‹³gGéî¾ÎÕ« jjî'—ÍaYâÐg—nÓ›oî÷Ã)ˆÇumËIqW§ ñ+,>ñWÆoÞ¤¢¢‚Dw‚Ñ‘QÖ®]éS§3ÉÔĿދ‡‹œiãæùót<»…Æ¿ÿ“LãÈdhß¾•Æ–¶¢.e¨7m¢±õ"&•)!HF£ôÁ—×®/˜Ú°¾¡ð¾ªr~Ùïüö `IÁ@z`€®ÑÑû$^¥Â8‰=¯ûCC…~O)Ói´ÖlÿÁ³·¥TRR’ƒü³`[ž;5vwñ"Äg òÊ¿Éu]Ât]ÂÃÀ¬R~½üaL¤œL ÑÚ •@I+o@ å-ö´µ}MWTüaé3ÏDÓkV±pÑBjFÆ1?Æñ}æ¬~ˆ>Öß¥ÐÆ0n[$ZÁŠè¡!€þ?$ÿo-¬ §B´²Q2ŒË‚ Ø¡¬R¿¸©)jÕÔ`•΢úú zh‚„À Ê]ëFR)ÈŸd¶Vø© :•Âd2¡Ëâþúzæ8€§KPJ¢•… J™)"ö¤߯r’Iơ뻙ÿΟñGG1¾Èå˜ð<®¬ÜÂ÷ßÇäu|Ÿ Ï£ëg/3ÿÐ!ÌØXQ¯¬ÄÏåpu J;h壵Aæ ˆ<ˆ]ÈIIª·—Îñqr‰^:g YcÌç•ëA¨÷ô˜ÀÓš¬1 6†Àª@© …@# ›p²D,ã‡ÇË…·]73“¡¸mE£e$ê¥é6÷„3gOñ«W÷ªÙ¥eå!¥XuðLg'&—ß'åyü땟²áƒ˜7Â8‚€”ëréå—¨÷0ææÍö”çqé¥]Ô¿'åyt Aox÷“2 ‚€k×®aÙ­««ó cè÷õᆵ.àõ{z¦b÷ý{ooQ׺ §z{¹¬ÆvîÚ9-ˆÆÚÕÒÒ¢E,ãé£Geíéw5‚î†Ç°ß>@gǕŻwïˆÅbÓæácÄêŽ3ÞÚJÇ_ þà‘pWAïOvPèf||òqtìzކ£'1ãã…þtEÝBP9g®|`ù²®}ûö¾øüó»^ÅbzZAª¯Î±1à¼ù]=˜Ëà_¿Ž—ÉcÊë¹¾>¼É)К!ß!X¿n½c ΞŸ¿òÚ[ùãÎ9åå¶å8J@ZqÂH{ŸˆÅbl‹ÇU]ËIë®NAÃc4?ù-ã8Ž‘RºY×}úK<ÒW]U-+æFçÍ­ªz²dVÉúÂ&\s²ýé§!ÆI¼;~DñB¼·bn; 'Z0Édx·Ìëíßo¢ñãV’®KÂ}æôÙ/.[¶¬t˶§^¬®^°?:»´Üvì2@ –hvˆÜà îðpo6;=Þ¼î u¥ ýÉþ~:³YÂzjëæ‹³gGéî¾ÎÕ« jjî'—ÍaYâÐg—nÓ›oî÷Ã)ˆÇumËIqW§ ñ+,>ñWÆoÞ¤¢¢‚Dw‚Ñ‘QÖ®]éS§3ÉÔĿދ‡‹œiãæùót<»…Æ¿ÿ“LãÈdhß¾•Æ–¶¢.e¨7m¢±õ"&•)!HF£ôÁ—×®/˜Ú°¾¡ð¾ªr~Ùïüö `IÁ@z`€®ÑÑû$^¥Â8‰=¯ûCC…~O)Ói´ÖlÿÁ³·¥TRR’ƒü³`[çt?aŒáÝLò௥¿x§Éþk˜¿ò•¿–òa¡õGŒÂõ}kÁù ÍÙ\ÎmÊçÜæ|Áɤý\&ã75ùçZçx®«¨Úz¦ê?€®¼ŒÖ Áe¥ùq6ýéÎ;ÃJýnâ/ÿ×—7 ­¿í Ïgaÿ9n¾pK©†|¡eqî¦yôݼ€¾­øöèV$©’ÉLø6ÿ—Í´,ݹs§¾aO<ñDÒ/åûo;óêìågÎ’Õ! @ÄUÏòôfô©š2 ¬éàòw¢„A+Ò ­5J)´VñS38x•žž3xž‡0bí“Oîú Ü  -9ù³Gç\ž=3—§¥¥Q\ˆÑwBˆ!(/–1ƒ ä=?zŽÖç_`ä±­xú ¡ QJ¡ÂP)Tü=gÎl‚—^zŒ^ Ü !>·4•ú—Á)Y,×ùBžŠ µÙFL ¾×Ð'Oòƒ¹sùùôiQ?c" Æðwù0[ÛB:•Æh *³N€ø7às £6«TH>ŸŸôPõ¨£·—R/[ù2¦¼Ã*@¤”Øñ¦¬^m×u+PJ†'‚‚L&Siß |hÎ~¼h/^äôéÓQ?¢=f´®v`“ŒB¬®Çéľ}³¦?û=Üåwb„¨ö€cl^”×u±l˲£2*ÒbFGó`æ7¾AêãGHÉÒ–]½Šã8±ðåñ" ¨*÷:AÏ á–`½€û{4}n í%K¬ô¯±ˆŒ0µbÁáÃÈ ˜kEAŒ§ d.&šj ®´m¬Þ^äÐ& 1aZÃÉ“˜cÇêNÎÊ•ˆ§žŠ _©hÅËüR"víBÜsO]öáî#Œüâ$Æ4m`>ðÑÁAÊáEk3&µ¨éF…”ÈÞÞ2Ç(ƒ1˜;¢>«VÕ¢\ovì¥"^ÛF|ík°bEáraã¶QïÀ‡‡*5Æè11¢&uíœ?ñ<ÂB;bwi¢•Ý´ ººííõAhÙ¸åû8{ö4¾xà'¼¾ááHSUâÇQ—Û†¯!”ƃֆêX_@*—CxZkt¢…ÀøþhßÇlÞŒèêBvtÔqï½XßùnbÕéà8À•uëPUÁm‚<¡Bž=‹°­×1¡äðp´Úã­® ‡BìÝ‹sß}5'–íí #¥îî&·ni×¥mþ|*Q½:°l‹Ü믣½=.×`‡!¦œ| e™" ãTy´¦¸~=RJ¬5kˆ:‘Ì‘#›6Ab§Ó¤š›Æ ?îYâìÙ^Œ1az°”Â/ è0Ä+¢M\   Djß¾IƒP‡lÙ‚ŽÍÒ÷}ò—/‚«ñò»¿à•¼cPF‰o–[jjØÑm :ö>Ú C”Ö£%Öò<@pðàu…¢°aÊ÷+ ŸÒ Ï+UJÉó¢R*—ÎðZ›>´ùÂþýûûËãÕÔ€t]Žy’8¡PJá{–mã&“ãP;Xöä’[ËqpS)”ïSÊåp,ÛLI&ŠV©T”ù°ÔzÂŽnòJ¿ÿaïkÿlÆ*j»Q×EZÖX{¯"!%V0lñÌ3ˆ{ï½®ðΚ5H)?ŽŽÏÏF ´ã¤•ã¤E&Ý2íÂ¥?Ž‘ñýžñÂ×ÚvœïLTêÍø»‰<…ì윔ðe²V¯ÆØ6lÚ}[6S[¦Q,”ƒ³f.JC^”dsmñ­·ôüòðÔåË;†ªÇª¹Û¦*vWÀT‡p„ÛFîÞ]7 5"±jvWØ6–”H)I¥Rø~@2A¶y–?%;ÛŸ:eŽß2eîÛŸü‡Ï:1ðó“?í¼.€acð‹EJÅ"žïã•Jx¥A¬ †xž‡yúiÄêÕu…TÝݨÇë¶ËövšöïÇS!—ÞºÄÀŸH$XBhå•°Pôƒ\Þ×F®zÓ§?X±õĉãË?>þUJµ×±,œ½{ºÍààAòëÖ]×;¹k×’ýÞÿ ãc§”aYR[–­,Ë ¤LeÒ-¿Í]{Á“‘Ôæ_ËüµY6‹3oÖ«¯âù~äuRñE€ã`uu!˜>r¶o'‘HP*ðyËquöIbÍf¤Rÿ& C…ÑË’!è›ß*œù7¿€¡@QQkM X®‹uûíÈØ- )£ºD{÷î†Â›£GaÇŽÈ®c~i ìØÑ0wV®$½k¶ãb[–m!E´/^™5“7úÏÍ0Æ”€^»:²¿!U,NŸN8Î׋åË #æèQÌ–-ày†c½–R˜/~1XÄŠ•$ïú4étšL:C:ÆikãÒÞÏŸèîþßÍwßõOëî¿ÿþJfY@9çÉßrK$xœñðÃõ…?v óØcc¼VtI{´0ÄlÝÚ„ýÀ8Ž[)bÛ6>±ä††®ñöÀÛë&ô¯5ˆRŠþ¾>|!˜kÛÈ0ÄÁ½r¥&CxèþÆQ¦Zü*©Bà•3\cࡇH|÷»X5L±ðæ› ½õW§µðÜ‹§(zÅè¬Ý6¾m ¹‘ò…¯g³(­ }ŸÒ׿>Qøƒ)>ø ªP@ù>* +¥i•B•JQ{ <oãFÂîî ã]ݽ›B¡À°Wä›3§óÒé—y¥ç•ró„MTSN6Ë{—-C‹¨ÛoG÷÷Óôâ‹è³g),[†ûè£X­­¨={0'Nlj¢øàçrH×ÅM§'Œ[n¯äB[¶Pìì$¹}»’ž—÷Ÿzjhê /”žŸ;{ÿ›Ùæç«Ø Ǻýª.!„ó%Xô1"/”™=S*A2 óçƒRÈÓ§ñO"øÃÙl¤¾êœ(&{­z$¤Ä²mL?Nxüx± ÞHA9ÿ9x÷¹óÿ}wݪæªz_0Sc0ÑÁ^JˆKx×]x‹# „ã€eEmc$“k—2º±(›ˆÂèó€¯NBv`¬ µä¡PÈå*‚S•"–,a$—£õüùÊè˜ôPˆ _Ãöø‚@ºY‚†]Yc¾?Yá¡ê!ÄÇ0¯žM&“S[ÚÚH$“¨ê›6cPaÈT¥X8Fk†¡çøöWáé8XMšª5 J _†=õ¼G.÷ô´Ôcº ô €E@}koL˜?™ÏÃ^Ðø¶T­YDW‹4ƒ½ Û0q‡Ž£,8Ká=·AÛM0_‚Õ¨¿uÎÿ Þx~õ3¸7½eŒyé†Ä f­Üàog·Br,j…i3 % Ó†áêe¼W;áµ3Ñ}m5]Îc‚‰£þÞô®ÿ¥þoÞiúŸÂì¶Æ?2ˆIEND®B`‚firewalld-0.4.4.6/src/icons/48x48/apps/firewall-applet-panic.png000066400000000000000000000051741320241217000241650ustar00rootroot00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ùIDAThí™kˆ]ÕÇ{ŸÇÜ›y˜IÌcâLbLD›ÔX«¤h,ÖÔ–‚µm¨–lA‚ÕB?´BmðKñK@JcS„‚ QÚF!¡˜„!Z­š–¢yŒ“N:&:5ÎãÎû8÷ì½úá<î¹3÷N&#F³çÜ»×Þû¬ÿZk¯½Ö¾JDø,“þ´ø¸ô9€O›Ü3ùÑGq•Õúneíu"JùAà,z¯³«Xô;&‹~çdɘhŸÛÛƒBGGpºwÙDÅ÷ ™­'™ÿ6ýPïSŠsÆò\×¼®}Û¶m Óþ¹nâG~ýÈ=ÊÚ§¼Z+NqÅàiV¼wǘç…ŽÃéË–1°b9Ë{ ܺSI22É´ïò÷®öî Û¶m³sðØcå‚êäàÚã'–|íøIº¬E)(”Pñ_晼^êOÓÑÎðwïàÜÍ7c”`ÅXƒµc ÖšøiáØ±ãT*”¨ÍÛ·?ñg˜£ Ýxè¥{{†Ï-YTœ¤»»•®Tý3 ¥T ”R$ÊZÈ廟§÷Õטx`+•k¾HhBŒ1˜0$4_ºt (Å›o¾b7s ÔòùŸŽ^Ò…ãû 0Yšdxx8´ù´:€i4ð.öÐ!þÔÓÃþ… ¢q"P¾tݵl}à>æåç!Öä“©³ ”~Ü©D4Ô}Ö˜ÉÉÉY/ÕŠîèï§ÚÛÉld £³3UŒAeôp!ø%ð½ô›H²ÃR ZkÜxSfµíû~jc a˜”R´··§ü­À5K—òÜêÕœ9s†£GFãˆö˜X› `³<”úNƒðu †’§R ­5¾ïã¸.ŽãFT:mù|ÇqÒ±Jk6 ³qdÏóbá“õ" ˜Lxfç•ò«ð#ßÜÐq¬U°6ܶÑ1´ÖTGÇÐaÈÒHíèZ-Æ“],‚D/oI[Ç%ÔV@D¥ý"pû±ã¼Þs¯ÇK)¥±õùM°GÁ·ÖÓ"»µ8A1OïªxóM£Vgƒ `,`ì’nDi -½gÏò×ìx›=ß<£T‚ot®\É—o¿ÜÀ¯¼‚v]œ|1©ÕêëY‹5fÎü R¡:>Ž_­RÊå#“3C„ÞZ…Û€ ¤çŒµ j a½€³hñb.½újœƒ±®‹òDytŒ“'û”’þd|ÓTÂ1†ÀôC],¹[Ó–-ŒŒŒðÏyç·±Öš0`GÂn À³6ÊY®¼òâ Ú‚œU«¨V«x… ¬•¬üx×®]ƒ ¿© iß§ÍóZæö“´RfqqòTG¥ú¯gûßýL)*šZÀø>Úua`àâH9©ÁÁr{•JǦ -„INÿ䓟°xç§ÚïwÔ*‹-¾y㕇ï™?•ß@Íu£ƒhÿ~ìÝw#{÷B©Õj½AÔ²}Êo2^ªU¤T"r¤;辤çÛ¾rWͶ ï?´ogVÖ¦{  BP.#aˆÝ½’P*‚±­uäbSÒg™ ?ÎNÝ|†T L® »;­Ê4ØœçY±ÖеÖ7¶TY¸ð°Q[øÛ³·ÞúÍÃ--PК ~Yڬň€RXÂZ0¾9Hš‰OVk-aÔÇ$7 q"'€1&-;q5–TeŽ£­ã¸ÆqüšÖ¹±öyÝÿ(ŽoA±=òyxF ¸]]xË–áœ8A%p\?_d"“ Cª¥ŽçáÏ›7m”ïºøííi¿Ò\T'&p\/ŸÀ‰% b-ŽèëU^ߊ׺¬¨=3p|gÝ:t…”ÖÑJ ÒZãÄõëTÚq"~Ò¯Êu‘8ñS*ª…Ç‹ÓiA¡hËû¼³xƒƒ§/]¾byI)õâøÈÄ®˜r™pá¨ÉÒÔlÔ˜¡Òz Ék²¥d6›ÕQ*åk¥ÈµµÅÃ~V}}œýÂUüïƒxá…ïÙñÛ»ÈPÓ= q¦8ŸÄJ©Æd,Ûá² 3M‡Ÿ¬ïy>žçãº^úÙó|Ôý÷³þƯ266·Ãþpª¬Í-` ƒJÑãºè0¤21Ñ4ª˜ZJ¡uZÛšŸÌ×íûi=P©V™xÿýirŒ,èæù7^§\©P.—VÎ €Å‰ j¥§ººX3:ŠmR¨¸‰µ˜&üt½8’¥ä8õ'VX©Tj˜jÅŽE«:úV¶{ï¬x]]¬Ú¸[.cÖ­ÃÒñÆØ0$˜œD{^CTIȆ!A±ˆöý–Q)(£¨ÕÙ‰©V©ma8ÙQ*ÍŽ}µgÉ®ÿvu¾šé*í}aïË-(¥¼ŸÁꈢPû’%Hµ ¹ôõ1èøšO;Îù£Ò |¥5Žë¦.„ˆ´Õj%’;Ç¿l:=ô›M-Wȼ+óyùÌÁD…½ÖQñ­5á-·PY³ÝÖ†ò¼¨:ÓSb€R³ãkÝXÄn% JõçÝÀã³ht¡îI(”ŠÅTp2¿ ”n¼‘‰b‘Þ¡¡4ÕnH“Û†øTmÉCª­ï ‚*À]"ÏÌVxÈüB£”º¡ –í„§s¹Üüî•+iËå¢[…˜D†Ì7†+ r•JcÔ‰E•ãÔ‹÷©üŒ ÄZ pìðÔã𤈴®î›PÖ¦ ö-øãõ•ÊOÎ;ÖÝjÒ9`X¬&S¸_ Õ@þ Çï‚_}Uš\Þ²X ¬è÷Û°Æo¦É]àm€Ë×ÂÊË OG—-É‚9CoÞ†—_‚$ú¼/"oÎ@ b ÐË;»r÷Ãê^Xp)twE7&`䌾#;áÝãÑ}m–>N‹Hmúªà³HŸù_ê?ðiÓÿ:Y«á²EhIEND®B`‚firewalld-0.4.4.6/src/icons/48x48/apps/firewall-applet.png000066400000000000000000000062151320241217000230720ustar00rootroot00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitleFirewall®®tEXtAuthorLapo Calamandreiß‘* ÍIDATh홌\×UÇ?÷½7¿ö‡³NÖÆù`;NB툖$Ž›4?0L©i‹†Ò”•*ÊÑR• R ÔR%HH­òšD@„ˆºZQpš˜øŽÛ»Þ]ÏîÎx×»³³»3óÞ»÷þxofw3¶j;QB¤éÎÜw¿ïÞwÎ=ßsï¹ï™b±ÈY¼÷[w*?6àý–¼Á;éüÄOä …Šn5Ÿïî ‘‘%¿K+ËD^ýõ¨ua.uzâ ¿ým0¿nðTTAQETPœ(*‚¨CD\»½UUÄ "®]wâPQœ8D$Å%7ä+;_Ýõ\¢¶oÿÜe‘ã³÷l¹××A™Lf™bÎ9æææÚJ®^½š0 —õœsd3ÙvÛ;6@ŵë`P jðs(Ô§Ùˆ!ÈãùJÿê5X PE1ÉjÕž˜DéL&óîy@\2ó&[HÕo)¾ø´ë¹®¨çƒú¨ïhÚ¼L…\–l× ¬¨hª¸iV}Àühž¹ÉyÞSFõ¼#Ö ܶÿÀâM_ü:ÇÖ­åø¦Ñ;7ßaàÉ®£†\]™„Ö˳8cø÷l/_÷r¸l–+û“AM2û‚‡ŠKÖ~p7+O“©Vž¤ââ˜+sñ¦Q81 Ëúªµ<´cõƒƒ|£÷*2¹¬J²_˜d¯Pã£^²R)É>àûn‰Ú¹Ð÷Ã00";²ŸøD·q£×¬V™½e=«OŽàWΠa¸¬H£A0;K0?6›Ë0¬%?]Å››ƒ·a† JïæÍÜÓ¨ÒÕÛ‡5YYœ—Å‘Á‘Á¦EÈ` p^2×¾gPwŽetâøñl¶¿¿7S(¿ø" 3ÓLnþ07ìÞƒFëu´ÑHj4¨©0úÓ?Åš#GÑÑ|^…S·®§ÿرN¼Ùd. Ž0™®$½ð£ŠCPãPªb ‚ÁJÄ™1¨ž#ººg­fÆ 1î{¨vÏdt´ƒãã~â<»oßÅãžÇxO8‡˜<øiÞ$‚x.á¿gõqâ¡X¬I(äÒܨÀÀZ/ô<­U*Œ†!=Ãz”°\fÁ9ª,ˆP¡¡ÊHàsÓ…à• ª‹¸*Mc‹cÖÅñò‰òb,à#XÄx¨±ˆÄ©öÜTeìO¿L6¹ˆýóç³ë7^(þ×_ëÄá&…ú¶_…LUÅ8‡‹΂Xƒg|$Ýs¬Ï³ŒV«Ä—]Æí;ÿwà@§«*œúêsÇ«o$œn4Ðfs9þ'_âŽ×ÞL(“r0lãC_|’;^߃;z”Ù8f¿sxÙnŒâYj<Ôyx~ @Ç€*·wø0vß¾åSf ãÆ`@NŸ†VV™¦Ñ^ríÞz )•HsêÅþiÕ>ŒLLPîí¥Ñlpà{Ovxè|Rèê">¯€¦µDÓÓÔR/¨ROù;âRNOMQ7††H‚§¼õ½$f¦¦X€Oc¢®ÊhSÕ3g Cóy2AÀ‰Ã’ÄNq.9È´ÎÎ!’ž ÒƒNl#D—Ñö‰ì·víêËç²åÞ}.WoÔ/xV.EŒ1t{>£~’ž8–žÎÒÓ›K³UuiF ûöíg÷žÝl½ÿúWõóô3Ï4*“]Ë=ÆÀGÞØK¼s'3Õ†žü=î|c/®TZätº1UUÚþwî>€[Ä£ ªâüýǹsß!dl,‰…ÖF†Ôº»9åû­o ¢ˆJØ:µµŽ¥"‰1Qf ]]<÷Âó *À_vP¨ ô8‡;y)•Úœµ‡R–ðcWcNwp~,ÍWÜ‘#ÈÄÄrÜó˜<Ïãy„¯½¾¹kïµ+VàÙŒfsYen©Ï<êsM > ¶V«µ“¯åÉœ*µ³g‰"ÞRI8}ölÂiç>§e]†×KÊÛñéé$V–àMU*žGÆó¸ãö»ˆÃ󼇶áÿh®X,^Ð9³ ôu÷]V¾ê¥ß³ùøÃ\¿ã8g95<(Í0Ïd2ÇV^Þççr¹n…¼ PcÄ3Tè+Øè[ßüæß—àm0Öñ‘ÿ=‚;th‘³éZ^Çàï|ž;M(ñ6NWeðó¿Áæ#ƒÈø8EÉ=QÍ&Usòs±ùè)ÜгÖ2b Ð›²|ìÞ{½°_ýôß=M½Ùøµ k7LõööÚ|Þ3ÖóLFÕ ò]«Wö­øŒŸÍ}øX‡24„;v¬ƒóc6ÙHÜñãÈÄÄâÛ…G`R¼\R&ý‘3g˜ÈfqÖñµ?û‹eϯÎT_ÙýæÞ3[·nm~ú±_~*ü{TÍ cè2Æ8Uç¼0ÅbQ;b ªV©©R·¶Íç†s «°Þ@Ôâ´µÔKò †Å±ηbÅÚEÜÆ¬f'')ÍÏ3˜Ëá9þç÷_¾u©žç¹L&nûÔ#Û1þðàеé™þ×V­Zå¯Y³FËårû€ñþÅ€0´õ!ŽüѰ0?GwO/SSgéᅵF£AoOg§¦¹¢ÿrê™ Ø5^*ß÷ì³ÏÆ€´‚|y 8ágŽa÷ìa¦:ÃÉÏ>ÊæcÃH¹¼Èé0„(J8ýاØ=MÙ9ŒsÑ÷þéù«éb±(.@Zð¾ù»Eâñƒ³ÝW^Ih- )gK]]\ßÝCœÍÒèï§i- çÜZJù|‚û>¾>šq¼Ï帾»‡y ìûìܳ‡lÔpî*`–äè{ÑbŠÅ"`ý6Ïûòƒ¾ÿH.Žó—2ØÅÈ\&Óøn¿øßðWÀÁb±ýÈNç–0ù‚ÈÓ/ˆ<Ç;xgzÁǘJéó/IÚ«ÐÀÀ@äH²¿ÎÏ(ï¾(É‹‹°X,ÚKdÙG¾÷Bñer¡yÿùä’¿Rþ‘ü‡îð~Ëÿ¨ûÙdBùEIEND®B`‚firewalld-0.4.4.6/src/icons/48x48/apps/firewall-config.png000066400000000000000000000062151320241217000230520ustar00rootroot00000000000000‰PNG  IHDR00Wù‡sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitleFirewall®®tEXtAuthorLapo Calamandreiß‘* ÍIDATh홌\×UÇ?÷½7¿ö‡³NÖÆù`;NB툖$Ž›4?0L©i‹†Ò”•*ÊÑR• R ÔR%HH­òšD@„ˆºZQpš˜øŽÛ»Þ]ÏîÎx×»³³»3óÞ»÷þxofw3¶j;QB¤éÎÜw¿ïÞwÎ=ßsï¹ï™b±ÈY¼÷[w*?6àý–¼Á;éüÄOä …Šn5Ÿïî ‘‘%¿K+ËD^ýõ¨ua.uzâ ¿ým0¿nðTTAQETPœ(*‚¨CD\»½UUÄ "®]wâPQœ8D$Å%7ä+;_Ýõ\¢¶oÿÜe‘ã³÷l¹××A™Lf™bÎ9æææÚJ®^½š0 —õœsd3ÙvÛ;6@ŵë`P jðs(Ô§Ùˆ!ÈãùJÿê5X PE1ÉjÕž˜DéL&óîy@\2ó&[HÕo)¾ø´ë¹®¨çƒú¨ïhÚ¼L…\–l× ¬¨hª¸iV}Àühž¹ÉyÞSFõ¼#Ö ܶÿÀâM_ü:ÇÖ­åø¦Ñ;7ßaàÉ®£†\]™„Ö˳8cø÷l/_÷r¸l–+û“AM2û‚‡ŠKÖ~p7+O“©Vž¤ââ˜+sñ¦Q81 Ëúªµ<´cõƒƒ|£÷*2¹¬J²_˜d¯Pã£^²R)É>àûn‰Ú¹Ð÷Ã00";²ŸøD·q£×¬V™½e=«OŽàWΠa¸¬H£A0;K0?6›Ë0¬%?]Å››ƒ·a† JïæÍÜÓ¨ÒÕÛ‡5YYœ—Å‘Á‘Á¦EÈ` p^2×¾gPwŽetâøñl¶¿¿7S(¿ø" 3ÓLnþ07ìÞƒFëu´ÑHj4¨©0úÓ?Åš#GÑÑ|^…S·®§ÿرN¼Ùd. Ž0™®$½ð£ŠCPãPªb ‚ÁJÄ™1¨ž#ººg­fÆ 1î{¨vÏdt´ƒãã~â<»oßÅãžÇxO8‡˜<øiÞ$‚x.á¿gõqâ¡X¬I(äÒܨÀÀZ/ô<­U*Œ†!=Ãz”°\fÁ9ª,ˆP¡¡ÊHàsÓ…à• ª‹¸*Mc‹cÖÅñò‰òb,à#XÄx¨±ˆÄ©öÜTeìO¿L6¹ˆýóç³ë7^(þ×_ëÄá&…ú¶_…LUÅ8‡‹΂Xƒg|$Ýs¬Ï³ŒV«Ä—]Æí;ÿwà@§«*œúêsÇ«o$œn4Ðfs9þ'_âŽ×ÞL(“r0lãC_|’;^߃;z”Ù8f¿sxÙnŒâYj<Ôyx~ @Ç€*·wø0vß¾åSf ãÆ`@NŸ†VV™¦Ñ^ríÞz )•HsêÅþiÕ>ŒLLPîí¥Ñlpà{Ovxè|Rèê">¯€¦µDÓÓÔR/¨ROù;âRNOMQ7††H‚§¼õ½$f¦¦X€Oc¢®ÊhSÕ3g Cóy2AÀ‰Ã’ÄNq.9È´ÎÎ!’ž ÒƒNl#D—Ñö‰ì·víêËç²åÞ}.WoÔ/xV.EŒ1t{>£~’ž8–žÎÒÓ›K³UuiF ûöíg÷žÝl½ÿúWõóô3Ï4*“]Ë=ÆÀGÞØK¼s'3Õ†žü=î|c/®TZätº1UUÚþwî>€[Ä£ ªâüýǹsß!dl,‰…ÖF†Ôº»9åû­o ¢ˆJØ:µµŽ¥"‰1Qf ]]<÷Âó *À_vP¨ ô8‡;y)•Úœµ‡R–ðcWcNwp~,ÍWÜ‘#ÈÄÄrÜó˜<Ïãy„¯½¾¹kïµ+VàÙŒfsYen©Ï<êsM > ¶V«µ“¯åÉœ*µ³g‰"ÞRI8}ölÂiç>§e]†×KÊÛñéé$V–àMU*žGÆó¸ãö»ˆÃ󼇶áÿh®X,^Ð9³ ôu÷]V¾ê¥ß³ùøÃ\¿ã8g95<(Í0Ïd2ÇV^Þççr¹n…¼ PcÄ3Tè+Øè[ßüæß—àm0Öñ‘ÿ=‚;th‘³éZ^Çàï|ž;M(ñ6NWeðó¿Áæ#ƒÈø8EÉ=QÍ&Usòs±ùè)ÜгÖ2b Ð›²|ìÞ{½°_ýôß=M½Ùøµ k7LõööÚ|Þ3ÖóLFÕ ò]«Wö­øŒŸÍ}øX‡24„;v¬ƒóc6ÙHÜñãÈÄÄâÛ…G`R¼\R&ý‘3g˜ÈfqÖñµ?û‹eϯÎT_ÙýæÞ3[·nm~ú±_~*ü{TÍ cè2Æ8Uç¼0ÅbQ;b ªV©©R·¶Íç†s «°Þ@Ôâ´µÔKò †Å±ηbÅÚEÜÆ¬f'')ÍÏ3˜Ëá9þç÷_¾u©žç¹L&nûÔ#Û1þðàеé™þ×V­Zå¯Y³FËårû€ñþÅ€0´õ!ŽüѰ0?GwO/SSgéᅵF£AoOg§¦¹¢ÿrê™ Ø5^*ß÷ì³ÏÆ€´‚|y 8ágŽa÷ìa¦:ÃÉÏ>ÊæcÃH¹¼Èé0„(J8ýاØ=MÙ9ŒsÑ÷þéù«éb±(.@Zð¾ù»Eâñƒ³ÝW^Ih- )gK]]\ßÝCœÍÒèï§i- çÜZJù|‚û>¾>šq¼Ï帾»‡y ìûìܳ‡lÔpî*`–äè{ÑbŠÅ"`ý6Ïûòƒ¾ÿH.Žó—2ØÅÈ\&Óøn¿øßðWÀÁb±ýÈNç–0ù‚ÈÓ/ˆ<Ç;xgzÁǘJéó/IÚ«ÐÀÀ@äH²¿ÎÏ(ï¾(É‹‹°X,ÚKdÙG¾÷Bñer¡yÿùä’¿Rþ‘ü‡îð~Ëÿ¨ûÙdBùEIEND®B`‚firewalld-0.4.4.6/src/icons/Makefile.am000066400000000000000000000001211320241217000175540ustar00rootroot00000000000000icondir = $(datadir)/icons/hicolor nobase_dist_icon_DATA = $(wildcard */apps/*) firewalld-0.4.4.6/src/icons/scalable/000077500000000000000000000000001320241217000172745ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/scalable/apps/000077500000000000000000000000001320241217000202375ustar00rootroot00000000000000firewalld-0.4.4.6/src/icons/scalable/apps/firewall-applet-error.svg000066400000000000000000001403011320241217000251760ustar00rootroot00000000000000 image/svg+xml firewalld-0.4.4.6/src/icons/scalable/apps/firewall-applet-panic.svg000066400000000000000000001157471320241217000251570ustar00rootroot00000000000000 image/svg+xml firewalld-0.4.4.6/src/icons/scalable/apps/firewall-applet.svg000066400000000000000000002104361320241217000240560ustar00rootroot00000000000000 Firewall image/svg+xml Lapo Calamandrei Firewall image/svg+xml firewalld-0.4.4.6/src/icons/scalable/apps/firewall-config.svg000066400000000000000000002104361320241217000240360ustar00rootroot00000000000000 Firewall image/svg+xml Lapo Calamandrei Firewall image/svg+xml firewalld-0.4.4.6/src/tests/000077500000000000000000000000001320241217000155555ustar00rootroot00000000000000firewalld-0.4.4.6/src/tests/firewall-cmd_test.sh000077500000000000000000001457671320241217000215450ustar00rootroot00000000000000#!/bin/bash #readonly path="/usr/bin/" readonly path="../" readonly RED='\033[00;31m' readonly GREEN='\033[00;32m' readonly RESTORE='\033[0m' assert_good() { local args="${1}" ${path}firewall-cmd ${args} > /dev/null 2>&1 if [[ "$?" -eq 0 ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status)${RESTORE}" fi } assert_good_notempty() { local args="${1}" local ret ret=$(${path}firewall-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( -n "${ret}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or empty return value)${RESTORE}" fi } assert_good_empty() { local args="${1}" local ret ret=$(${path}firewall-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( -z "${ret}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or non-empty return value)${RESTORE}" fi } assert_good_equals() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( "${ret}" = "${value}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' != '${value}')${RESTORE}" fi } assert_good_contains() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( "${ret}" = *${value}* ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' does not contain '${value}')${RESTORE}" fi } assert_bad() { local args="${1}" ${path}firewall-cmd ${args} 1> /dev/null 2>&1 if [[ "$?" -ne 0 ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (zero exit status)${RESTORE}" fi } assert_bad_contains() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -ne 0 ) || ( "${ret}" = *${value}* ) ]]; then ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' does contain '${value}')${RESTORE}" else echo "${args} ... OK" fi } # rich rules need separate assert methods because of quotation hell assert_rich_good() { local operation="${1}" local args="${2}" local command local permanent [[ "${operation}" = *permanent* ]] && permanent="--permanent" if [[ "${operation}" = *add* ]]; then command="--add-rich-rule" elif [[ "${operation}" = *remove* ]]; then command="--remove-rich-rule" elif [[ "${operation}" = *query* ]]; then command="--query-rich-rule" fi ${path}firewall-cmd ${permanent} ${command} "${args}" > /dev/null 2>&1 if [[ "$?" -eq 0 ]]; then echo ${permanent} ${command} "${args} ... OK" else ((failures++)) echo -e ${permanent} ${command} "${args} ... ${RED}${failures}. FAILED (non-zero exit status)${RESTORE}" fi } assert_rich_bad() { local operation="${1}" local args="${2}" local command local permanent [[ "${operation}" = *permanent* ]] && permanent="--permanent" if [[ "${operation}" = *add* ]]; then command="--add-rich-rule" elif [[ "${operation}" = *remove* ]]; then command="--remove-rich-rule" elif [[ "${operation}" = *query* ]]; then command="--query-rich-rule" fi ${path}firewall-cmd ${permanent} ${command} "${args}" > /dev/null 2>&1 if [[ "$?" -ne 0 ]]; then echo ${permanent} ${command} "${args} ... OK" else ((failures++)) echo -e ${permanent} ${command} "${args} ... ${RED}${failures}. FAILED (zero exit status)${RESTORE}" fi } assert_exit_code() { local args="${1}" local ret="${2}" ${path}firewall-cmd ${args} > /dev/null 2>&1 got=$? if [[ "$got" -eq "$ret" ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (bad exit status ${got} != ${ret})${RESTORE}" fi } if ! ${path}firewall-cmd --state --quiet; then echo "FirewallD is not running" exit 1 fi # MAIN failures=0 assert_good "-h" assert_good "--help" assert_good "-V" assert_good "--reload" assert_good "--complete-reload" assert_good "--panic-on" assert_good "--query-panic" assert_good "--panic-off" assert_bad "--query-panic" #assert_good "--lockdown-on" #assert_good "--query-lockdown" #assert_good "--lockdown-off" #assert_bad "--query-lockdown" default_zone=$(${path}firewall-cmd --get-default-zone 2>/dev/null) zone="home" assert_good_notempty "--get-default-zone" assert_good "--set-default-zone=${zone}" assert_good_equals "--get-default-zone" "${zone}" assert_good "--set-default-zone=${default_zone}" assert_bad "--set-default-zone" # missing argument assert_good_notempty "--get-zones" assert_good_notempty "--get-services" assert_good_notempty "--get-icmptypes" assert_good_notempty "--permanent --get-zones" assert_good_notempty "--permanent --get-services" assert_good_notempty "--permanent --get-icmptypes" assert_good "--list-all-zones" assert_good "--list-all" assert_good "--permanent --list-all-zones" assert_good "--permanent --list-all" iface="dummy0" zone="work" assert_good "--zone=${zone} --add-interface=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" assert_good_contains "--get-active-zones" "${zone}" assert_good "--zone ${zone} --query-interface=${iface}" zone="public" assert_good "--zone=${zone} --change-interface=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" zone="dmz" assert_good "--zone=${zone} --change-zone=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" assert_good_contains "--zone=${zone} --list-interfaces" "${iface}" assert_good "--zone=${zone} --remove-interface=${iface}" assert_bad "--zone=${zone} --query-interface ${iface}" assert_good "--zone=${zone} --change-interface=${iface}" # should work as add assert_good "--zone=${zone} --query-interface ${iface}" assert_good "--zone=${zone} --remove-interface=${iface}" assert_bad "--zone=${zone} --query-interface ${iface}" assert_bad "--get-zone-of-interface=${iface}" # in no zone assert_bad "--get-zone-of-interface" # missing argument assert_bad "--zone=${zone} --get-zones" # impossible combination assert_bad "--zone=${zone} --get-services" # impossible combination assert_bad "--zone=${zone} --get-default-zone" # impossible combination assert_bad "--zone=${zone} --set-default-zone" # impossible combination assert_bad "--zone=${zone} --get-zone-of-interface" # impossible combination iface="perm_dummy0" zone="work" assert_good "--permanent --zone=${zone} --add-interface=${iface}" assert_good_equals "--permanent --get-zone-of-interface=${iface}" "${zone}" assert_good "--permanent --zone ${zone} --query-interface=${iface}" assert_good_contains "--permanent --zone=${zone} --list-interfaces" "${iface}" zone="public" assert_bad "--permanent --zone=${zone} --add-interface=${iface}" # already in another zone assert_good "--permanent --zone=${zone} --change-interface=${iface}" assert_good_equals "--permanent --get-zone-of-interface=${iface}" "${zone}" assert_good "--permanent --zone=${zone} --remove-interface=${iface}" assert_bad "--permanent --zone=${zone} --query-interface ${iface}" assert_good "--permanent --zone=${zone} --change-interface=${iface}" # should work as add assert_good_equals "--permanent --get-zone-of-interface=${iface}" "${zone}" assert_good "--permanent --zone=${zone} --remove-interface=${iface}" assert_bad "--permanent --zone=${zone} --query-interface ${iface}" iface1="foo" iface2="bar" zone="trusted" assert_good "--add-interface=${iface1}" assert_good "--add-interface=${iface2} --zone=${default_zone}" assert_good "--set-default-zone=${zone}" assert_good_equals "--get-default-zone" "${zone}" # check that changing default zone moves interfaces in that zone assert_good "--query-interface ${iface1} --zone=${zone}" # check that *only* iface1 was moved to new default zone assert_good "--query-interface ${iface2} --zone=${default_zone}" assert_good "--set-default-zone=${default_zone}" assert_good "--remove-interface=${iface1}" assert_good "--remove-interface=${iface2}" sources=( "dead:beef::babe" "3ffe:501:ffff::/64" "1.2.3.4" "192.168.1.0/24" ) for (( i=0;i<${#sources[@]};i++)); do zone="public" source=${sources[${i}]} assert_good "--zone=${zone} --add-source=${source}" assert_good_equals "--get-zone-of-source=${source}" "${zone}" assert_good_contains "--zone=${zone} --list-sources" "${source}" assert_good_contains "--zone=${zone} --list-all" "${source}" assert_good_contains "--get-active-zones" "${source}" assert_good "--zone ${zone} --query-source=${source}" zone="work" assert_good "--zone=${zone} --change-source=${source}" assert_good_equals "--get-zone-of-source=${source}" "${zone}" assert_good "--zone=${zone} --remove-source=${source}" assert_bad "--zone ${zone} --query-source=${source}" assert_bad "--get-zone-of-source=${source}" # in no zone assert_bad "--get-zone-of-source" # missing argument done for (( i=0;i<${#sources[@]};i++)); do zone="public" source=${sources[${i}]} assert_good "--permanent --zone=${zone} --add-source=${source}" assert_good_equals "--permanent --get-zone-of-source=${source}" "${zone}" assert_good_contains "--permanent --zone=${zone} --list-sources" "${source}" assert_good_contains "--permanent --zone=${zone} --list-all" "${source}" assert_good "--permanent --zone ${zone} --query-source=${source}" zone="work" assert_bad "--permanent --zone=${zone} --add-source=${source}" # already in another zone assert_good "--permanent --zone=${zone} --change-source=${source}" assert_good_equals "--permanent --get-zone-of-source=${source}" "${zone}" assert_good "--permanent --zone=${zone} --remove-source=${source}" assert_bad "--permanent --zone ${zone} --query-source=${source}" done assert_good " --add-service=dns --timeout 60 --zone=${default_zone}" assert_good " --query-service dns" assert_good "--remove-service=dns" assert_bad " --query-service=dns" assert_bad " --add-service=smtpssssssss" # bad service name assert_bad " --add-service=dns --timeout" # missing argument assert_bad " --add-service=dns --add-interface=dummy0" # impossible combination assert_bad "--permanent --zone=external --add-service=dns --timeout 60" # impossible combination assert_good "--permanent --zone=external --add-service dns" assert_good_contains "--permanent --zone=external --list-services" "dns" assert_good "--permanent --zone=external --query-service dns" assert_good "--permanent --zone=external --remove-service=dns" assert_bad "--permanent --zone=external --query-service=dns" # removed assert_bad "--permanent --zone=external --add-service=smtpssssssss" # bad service name assert_bad "--permanent --zone=external --add-service=dns --add-interface=dummy0" # impossible combination assert_good " --add-service=http --add-service=nfs --timeout=1h" assert_good " --query-service http" assert_good " --query-service=nfs --zone=${default_zone}" assert_good "--remove-service=nfs --remove-service=http" assert_bad " --query-service http" assert_bad " --query-service nfs" assert_good "--permanent --add-service=http --add-service=nfs" assert_good "--permanent --query-service http" assert_good "--permanent --query-service=nfs --zone=${default_zone}" assert_good "--permanent --remove-service=nfs --remove-service=http" assert_bad "--permanent --query-service http" assert_bad "--permanent --query-service nfs" assert_bad " --add-port=666" # no protocol assert_bad " --add-port=666/dummy" # bad protocol assert_good " --add-port=666/tcp --zone=${default_zone} --timeout=30m" assert_good "--remove-port=666/tcp" assert_good " --add-port=111-222/udp" assert_good " --query-port=111-222/udp --zone=${default_zone}" assert_good "--remove-port 111-222/udp" assert_bad " --query-port=111-222/udp" assert_good " --add-port=5000/sctp" assert_good " --query-port=5000/sctp --zone=${default_zone}" assert_good "--remove-port 5000/sctp" assert_bad " --query-port=5000/sctp" assert_good " --add-port=222/dccp" assert_good " --query-port=222/dccp --zone=${default_zone}" assert_good "--remove-port 222/dccp" assert_bad " --query-port=222/dccp" assert_bad "--permanent --add-port=666" # no protocol assert_bad "--permanent --add-port=666/dummy" # bad protocol assert_good "--permanent --add-port=666/tcp" assert_good "--permanent --remove-port=666/tcp --zone=${default_zone}" assert_good "--permanent --add-port=111-222/udp --zone=${default_zone}" assert_good "--permanent --query-port=111-222/udp" assert_good "--permanent --remove-port 111-222/udp" assert_bad "--permanent --query-port=111-222/udp" assert_good "--permanent --add-port=5000/sctp" assert_good "--permanent --query-port=5000/sctp --zone=${default_zone}" assert_good "--permanent --remove-port 5000/sctp" assert_bad "--permanent --query-port=5000/sctp" assert_good "--permanent --add-port=222/dccp" assert_good "--permanent --query-port=222/dccp --zone=${default_zone}" assert_good "--permanent --remove-port 222/dccp" assert_bad "--permanent --query-port=222/dccp" assert_good " --add-port=80/tcp --add-port 443-444/udp" assert_good " --query-port=80/tcp --zone=${default_zone}" assert_good " --query-port=443-444/udp" assert_good "--remove-port 80/tcp --remove-port=443-444/udp" assert_bad " --query-port=80/tcp" assert_bad " --query-port=443-444/udp" assert_good "--permanent --add-port=80/tcp --add-port 443-444/udp" assert_good "--permanent --query-port=80/tcp --zone=${default_zone}" assert_good "--permanent --query-port=443-444/udp" assert_good "--permanent --remove-port 80/tcp --remove-port=443-444/udp" assert_bad "--permanent --query-port=80/tcp" assert_bad "--permanent --query-port=443-444/udp" assert_bad " --add-protocol=dummy" # bad protocol assert_good " --add-protocol=mux" assert_good " --remove-protocol=mux --zone=${default_zone}" assert_good " --add-protocol=dccp --zone=${default_zone}" assert_good " --query-protocol=dccp" assert_good "--remove-protocol dccp" assert_bad " --query-protocol=dccp" assert_bad "--permanent --add-protocol=dummy" # bad protocol assert_good "--permanent --add-protocol=mux" assert_good "--permanent --remove-protocol=mux --zone=${default_zone}" assert_good "--permanent --add-protocol=dccp --zone=${default_zone}" assert_good "--permanent --query-protocol=dccp" assert_good "--permanent --remove-protocol dccp" assert_bad "--permanent --query-protocol=dccp" assert_good " --add-protocol=ddp --add-protocol gre" assert_good " --query-protocol=ddp --zone=${default_zone}" assert_good " --query-protocol=gre" assert_good "--remove-protocol ddp --remove-protocol=gre" assert_bad " --query-protocol=ddp" assert_bad " --query-protocol=gre" assert_good "--permanent --add-protocol=ddp --add-protocol gre" assert_good "--permanent --query-protocol=ddp --zone=${default_zone}" assert_good "--permanent --query-protocol=gre" assert_good "--permanent --remove-protocol ddp --remove-protocol=gre" assert_bad "--permanent --query-protocol=ddp" assert_bad "--permanent --query-protocol=gre" assert_bad " --add-source-port=666" # no protocol assert_bad " --add-source-port=666/dummy" # bad protocol assert_good " --add-source-port=666/tcp --zone=${default_zone} --timeout=30m" assert_good "--remove-source-port=666/tcp" assert_good " --add-source-port=111-222/udp" assert_good " --query-source-port=111-222/udp --zone=${default_zone}" assert_good "--remove-source-port 111-222/udp" assert_bad " --query-source-port=111-222/udp" assert_bad "--permanent --add-source-port=666" # no protocol assert_bad "--permanent --add-source-port=666/dummy" # bad protocol assert_good "--permanent --add-source-port=666/tcp" assert_good "--permanent --remove-source-port=666/tcp --zone=${default_zone}" assert_good "--permanent --add-source-port=111-222/udp --zone=${default_zone}" assert_good "--permanent --query-source-port=111-222/udp" assert_good "--permanent --remove-source-port 111-222/udp" assert_bad "--permanent --query-source-port=111-222/udp" assert_good " --add-source-port=80/tcp --add-source-port 443-444/udp" assert_good " --query-source-port=80/tcp --zone=${default_zone}" assert_good " --query-source-port=443-444/udp" assert_good "--remove-source-port 80/tcp --remove-source-port=443-444/udp" assert_bad " --query-source-port=80/tcp" assert_bad " --query-source-port=443-444/udp" assert_good "--permanent --add-source-port=80/tcp --add-source-port 443-444/udp" assert_good "--permanent --query-source-port=80/tcp --zone=${default_zone}" assert_good "--permanent --query-source-port=443-444/udp" assert_good "--permanent --remove-source-port 80/tcp --remove-source-port=443-444/udp" assert_bad "--permanent --query-source-port=80/tcp" assert_bad "--permanent --query-source-port=443-444/udp" assert_good " --add-masquerade --zone=${default_zone}" assert_good " --query-masquerade " assert_good "--remove-masquerade" assert_bad " --query-masquerade" assert_good "--permanent --add-masquerade" assert_good "--permanent --query-masquerade --zone=${default_zone}" assert_good "--permanent --remove-masquerade --zone=${default_zone}" assert_bad "--permanent --query-masquerade" assert_bad "--zone=external --add-icmp-block=dummyblock" # invalid icmp type assert_good "--zone=external --add-icmp-block=redirect" assert_good "--zone=external --query-icmp-block=redirect" assert_good " --add-icmp-block-inversion --zone=${default_zone}" assert_good " --query-icmp-block-inversion " assert_good "--remove-icmp-block-inversion" assert_bad " --query-icmp-block-inversion" assert_good "--zone=external --remove-icmp-block redirect" assert_bad "--zone=external --query-icmp-block=redirect" assert_good " --add-icmp-block-inversion --zone=block" assert_good "--remove-icmp-block-inversion --zone=block" assert_good " --add-icmp-block-inversion --zone=drop" assert_good "--remove-icmp-block-inversion --zone=drop" assert_good " --add-icmp-block-inversion --zone=trusted" assert_good "--remove-icmp-block-inversion --zone=trusted" assert_bad "--permanent --zone=external --add-icmp-block=dummyblock" # invalid icmp type assert_good "--permanent --zone=external --add-icmp-block=redirect" assert_good "--permanent --zone=external --query-icmp-block=redirect" assert_good "--permanent --zone=external --remove-icmp-block redirect" assert_bad "--permanent --zone=external --query-icmp-block=redirect" assert_good "--permanent --add-icmp-block-inversion" assert_good "--permanent --query-icmp-block-inversion --zone=${default_zone}" assert_good "--permanent --remove-icmp-block-inversion --zone=${default_zone}" assert_bad "--permanent --query-icmp-block-inversion" assert_good "--zone=external --add-icmp-block=echo-reply --add-icmp-block=router-solicitation" assert_good "--zone=external --query-icmp-block=echo-reply" assert_good "--zone=external --query-icmp-block=router-solicitation" assert_good "--zone=external --remove-icmp-block echo-reply --remove-icmp-block=router-solicitation" assert_bad "--zone=external --query-icmp-block=echo-reply" assert_bad "--zone=external --query-icmp-block=router-solicitation" assert_good "--permanent --zone=external --add-icmp-block=echo-reply --add-icmp-block=router-solicitation" assert_good "--permanent --zone=external --query-icmp-block=echo-reply" assert_good "--permanent --zone=external --query-icmp-block=router-solicitation" assert_good "--permanent --zone=external --remove-icmp-block echo-reply --remove-icmp-block=router-solicitation" assert_bad "--permanent --zone=external --query-icmp-block=echo-reply" assert_bad "--permanent --zone=external --query-icmp-block=router-solicitation" assert_bad " --add-forward-port=666" # no protocol assert_good " --add-forward-port=port=11:proto=tcp:toport=22" assert_good "--remove-forward-port=port=11:proto=tcp:toport=22 --zone=${default_zone}" assert_bad " --add-forward-port=port=33:proto=tcp:toaddr=4444" # bad address assert_good " --add-forward-port=port=33:proto=tcp:toaddr=4.4.4.4 --zone=${default_zone}" assert_good "--remove-forward-port=port=33:proto=tcp:toaddr=4.4.4.4" assert_good " --add-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good " --query-forward-port port=55:proto=tcp:toport=66:toaddr=7.7.7.7 --zone=${default_zone}" assert_good "--remove-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_bad " --query-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good " --add-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good " --query-forward-port port=66:proto=sctp:toport=66:toaddr=7.7.7.7 --zone=${default_zone}" assert_good "--remove-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_bad " --query-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good " --add-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_good " --query-forward-port port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0:: --zone=${default_zone}" assert_good "--remove-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_bad " --query-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_bad "--permanent --add-forward-port=666" # no protocol assert_good "--permanent --add-forward-port=port=11:proto=tcp:toport=22 --zone=${default_zone}" assert_good "--permanent --remove-forward-port=port=11:proto=tcp:toport=22" assert_bad "--permanent --add-forward-port=port=33:proto=tcp:toaddr=4444" # bad address assert_good "--permanent --add-forward-port=port=33:proto=tcp:toaddr=4.4.4.4" assert_good "--permanent --remove-forward-port=port=33:proto=tcp:toaddr=4.4.4.4 --zone=${default_zone}" assert_good "--permanent --add-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good "--permanent --query-forward-port port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good "--permanent --remove-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_bad "--permanent --query-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good "--permanent --add-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good "--permanent --query-forward-port port=66:proto=sctp:toport=66:toaddr=7.7.7.7 --zone=${default_zone}" assert_good "--permanent --remove-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_bad "--permanent --query-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good "--permanent --add-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_good "--permanent --query-forward-port port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0:: --zone=${default_zone}" assert_good "--permanent --remove-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_bad "--permanent --query-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_good " --add-forward-port=port=88:proto=udp:toport=99 --add-forward-port port=100:proto=tcp:toport=200" assert_good " --query-forward-port=port=100:proto=tcp:toport=200" assert_good " --query-forward-port=port=88:proto=udp:toport=99 --zone=${default_zone}" assert_good "--remove-forward-port port=100:proto=tcp:toport=200 --remove-forward-port=port=88:proto=udp:toport=99" assert_bad " --query-forward-port port=100:proto=tcp:toport=200" assert_bad " --query-forward-port=port=88:proto=udp:toport=99" assert_good "--permanent --add-forward-port=port=88:proto=udp:toport=99 --add-forward-port port=100:proto=tcp:toport=200" assert_good "--permanent --query-forward-port=port=100:proto=tcp:toport=200" assert_good "--permanent --query-forward-port=port=88:proto=udp:toport=99 --zone=${default_zone}" assert_good "--permanent --remove-forward-port port=100:proto=tcp:toport=200 --remove-forward-port=port=88:proto=udp:toport=99" assert_bad "--permanent --query-forward-port port=100:proto=tcp:toport=200" assert_bad "--permanent --query-forward-port=port=88:proto=udp:toport=99" assert_good_contains "--zone=home --list-services" "ssh" assert_good "--zone home --list-ports" assert_good "--list-icmp-blocks" assert_good "--zone=home --list-forward-ports" assert_good_contains "--permanent --zone=work --list-services" "ssh" assert_good "--permanent --list-forward-ports" assert_bad "--permanent --complete-reload" # impossible combination myzone="myzone" myservice="myservice" myicmp="myicmp" # create new zone assert_bad "--new-zone=${myzone}" # no --permanent assert_good "--permanent --new-zone=${myzone}" assert_good_contains "--permanent --get-zones" "${myzone}" # get/set default target assert_good_contains "--permanent --zone=${myzone} --get-target" "default" assert_bad "--permanent --zone=${myzone} --set-target=BAD" assert_good "--permanent --zone=${myzone} --set-target=%%REJECT%%" assert_good "--permanent --zone=${myzone} --set-target=DROP" assert_good "--permanent --zone=${myzone} --set-target=ACCEPT" assert_good_contains "--permanent --zone=${myzone} --get-target" "ACCEPT" # create new service and icmptype assert_good "--permanent --new-service=${myservice}" assert_good_contains "--permanent --get-services" "${myservice}" assert_good "--permanent --new-icmptype=${myicmp}" assert_good_contains "--permanent --get-icmptypes" "${myicmp}" # test service options assert_bad "--permanent --service=${myservice} --add-port=666" # no protocol assert_bad "--permanent --service=${myservice} --add-port=666/dummy" # bad protocol assert_good "--permanent --service=${myservice} --add-port=666/tcp" assert_good "--permanent --service=${myservice} --remove-port=666/tcp" assert_good "--permanent --service=${myservice} --add-port=111-222/udp" assert_good "--permanent --service=${myservice} --query-port=111-222/udp" assert_good "--permanent --service=${myservice} --remove-port 111-222/udp" assert_bad "--permanent --service=${myservice} --query-port=111-222/udp" assert_good "--permanent --service=${myservice} --add-protocol=ddp --add-protocol gre" assert_good "--permanent --service=${myservice} --query-protocol=ddp" assert_good "--permanent --service=${myservice} --query-protocol=gre" assert_good "--permanent --service=${myservice} --remove-protocol ddp" assert_good "--permanent --service=${myservice} --remove-protocol gre" assert_bad "--permanent --service=${myservice} --query-protocol=ddp" assert_bad "--permanent --service=${myservice} --query-protocol=gre" assert_bad "--permanent --service=${myservice} --add-source-port=666" # no protocol assert_bad "--permanent --service=${myservice} --add-source-port=666/dummy" # bad protocol assert_good "--permanent --service=${myservice} --add-source-port=666/tcp" assert_good "--permanent --service=${myservice} --remove-source-port=666/tcp" assert_good "--permanent --service=${myservice} --add-source-port=111-222/udp" assert_good "--permanent --service=${myservice} --query-source-port=111-222/udp" assert_good "--permanent --service=${myservice} --remove-source-port 111-222/udp" assert_bad "--permanent --service=${myservice} --query-source-port=111-222/udp" assert_good "--permanent --service=${myservice} --add-module=sip" assert_good "--permanent --service=${myservice} --remove-module=sip" assert_good "--permanent --service=${myservice} --add-module=ftp" assert_good "--permanent --service=${myservice} --query-module=ftp" assert_good "--permanent --service=${myservice} --remove-module=ftp" assert_bad "--permanent --service=${myservice} --query-module=ftp" assert_bad "--permanent --service=${myservice} --set-destination=ipv4" # no address assert_bad "--permanent --service=${myservice} --set-destination=ipv4:foo" # bad address assert_good "--permanent --service=${myservice} --set-destination=ipv4:1.2.3.4" assert_good "--permanent --service=${myservice} --remove-destination=ipv4" assert_good "--permanent --service=${myservice} --set-destination=ipv6:fd00:dead:beef:ff0::/64" assert_good "--permanent --service=${myservice} --query-destination=ipv6:fd00:dead:beef:ff0::/64" assert_good "--permanent --service=${myservice} --remove-destination=ipv6" assert_bad "--permanent --service=${myservice} --query-destination=ipv6:fd00:dead:beef:ff0::/64" # test icmptype options, ipv4 and ipv6 destinations are default assert_bad "--permanent --icmptype=${myicmp} --add-destination=ipv5" assert_good "--permanent --icmptype=${myicmp} --add-destination=ipv4" assert_good "--permanent --icmptype=${myicmp} --remove-destination=ipv4" assert_good "--permanent --icmptype=${myicmp} --add-destination=ipv4" assert_good "--permanent --icmptype=${myicmp} --query-destination=ipv4" assert_good "--permanent --icmptype=${myicmp} --remove-destination=ipv4" assert_bad "--permanent --icmptype=${myicmp} --query-destination=ipv4" # test sctp and dccp ports assert_good "--permanent --service=${myservice} --add-port=666/sctp" assert_good "--permanent --service=${myservice} --remove-port=666/sctp" assert_good "--permanent --service=${myservice} --remove-port 666/sctp" assert_bad "--permanent --service=${myservice} --query-port=666/sctp" assert_good "--permanent --service=${myservice} --add-port=999/dccp" assert_good "--permanent --service=${myservice} --remove-port=999/dccp" assert_good "--permanent --service=${myservice} --remove-port 999/dccp" assert_bad "--permanent --service=${myservice} --query-port=999/dccp" assert_good "--permanent --service=${myservice} --add-port=666/sctp" assert_good "--permanent --service=${myservice} --add-port=999/dccp" # add them to zone assert_good "--permanent --zone=${myzone} --add-service=${myservice}" assert_good "--permanent --zone=${myzone} --add-icmp-block=${myicmp}" assert_good_contains "--permanent --zone=${myzone} --list-services" "${myservice}" assert_good_contains "--permanent --zone=${myzone} --list-icmp-blocks" "${myicmp}" # delete the service and icmptype assert_good "--permanent --delete-service=${myservice}" assert_good "--permanent --delete-icmptype=${myicmp}" # make sure they were removed also from the zone assert_good_empty "--permanent --zone=${myzone} --list-services" "${myservice}" assert_good_empty "--permanent --zone=${myzone} --list-icmp-blocks" "${myicmp}" assert_good "--permanent --delete-zone=${myzone}" # ipset tests ipset="myipset" source="ipset:${ipset}" zone="public" assert_good "--permanent --new-ipset=${ipset} --type=hash:ip" assert_good "--reload" assert_good_empty "--ipset=${ipset} --get-entries" assert_good "--ipset=${ipset} --add-entry=1.2.3.4" assert_good_notempty "--ipset=${ipset} --get-entries" assert_bad "--ipset=${ipset} --add-entry=1.2.3.400" assert_good "--ipset=${ipset} --remove-entry=1.2.3.4" assert_good_empty "--ipset=${ipset} --get-entries" assert_good "--zone=${zone} --add-source=${source}" assert_good_contains "--get-zone-of-source=${source}" "${zone}" assert_good_contains "--zone=public --list-sources" "${source}" assert_good "--zone=${zone} --query-source=${source}" assert_good "--zone=${zone} --remove-source=${source}" assert_good "--permanent --delete-ipset=${ipset}" assert_good "--reload" # helper tests myhelper="myhelper" assert_bad "--permanent --new-helper=${myhelper} --module=foo" assert_good "--permanent --new-helper=${myhelper} --module=nf_conntrack_foo" assert_good_contains "--permanent --get-helpers" "${myhelper}" assert_good_empty "--permanent --helper=${myhelper} --get-family" assert_bad "--permanent --helper=${myhelper} --set-family=ipv5" assert_good "--permanent --helper=${myhelper} --set-family=ipv4" assert_good_equals "--permanent --helper=${myhelper} --get-family" "ipv4" assert_good "--permanent --helper=${myhelper} --set-family=" assert_good_empty "--permanent --helper=${myhelper} --get-family" assert_good_empty "--permanent --helper=${myhelper} --get-ports" assert_good "--permanent --helper=${myhelper} --add-port=44/tcp" assert_good_notempty "--permanent --helper=${myhelper} --get-ports" assert_good "--permanent --helper=${myhelper} --query-port=44/tcp" assert_good "--permanent --helper=${myhelper} --remove-port=44/tcp" assert_bad "--permanent --helper=${myhelper} --query-port=44/tcp" assert_good_empty "--permanent --helper=${myhelper} --get-ports" assert_good "--permanent --delete-helper=${myhelper}" assert_bad_contains "--permanent --get-helpers" "${myhelper}" # exit return value tests assert_exit_code "--remove-port 122/udp" 0 assert_exit_code "--add-port 122/udpp" 103 assert_exit_code "--add-port 122/udp --add-port 122/udpp" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp --add-port 8745897/foo" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp --add-port 8745897/foo --add-port bar" 0 assert_exit_code "--add-port 122/udpa --add-port 122/udpp" 103 assert_exit_code "--add-port 122/udpa --add-port 122/udpp" 103 assert_exit_code "--add-port 122/udpa --add-port 122/udpp --add-port 8745897/foo" 254 assert_exit_code "--add-port 122/udpa --add-port 122/udpp --add-port 8745897/foo --add-port bar" 254 assert_exit_code "--add-port 122/udp --add-port 122/udp" 0 assert_exit_code "--remove-port 122/udp" 0 # ... --direct ... modprobe dummy assert_good "--direct --passthrough ipv4 --table mangle --append POSTROUTING --out-interface dummy0 --protocol udp --destination-port 68 --jump CHECKSUM --checksum-fill" assert_good "--direct --passthrough ipv4 --table mangle --delete POSTROUTING --out-interface dummy0 --protocol udp --destination-port 68 --jump CHECKSUM --checksum-fill" assert_bad "--direct --add-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --add-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --query-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --query-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --remove-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --remove-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --query-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_good "--direct --add-passthrough ipv6 --table filter --append FORWARD --destination fd00:dead:beef:ff0::/64 --in-interface dummy0 --out-interface dummy0 --jump ACCEPT" assert_good_contains "--direct --get-passthroughs ipv6" "fd00:dead:beef:ff0::/64" assert_good_contains "--direct --get-all-passthroughs" "fd00:dead:beef:ff0::/64" assert_good_contains "--direct --passthrough ipv6 -nvL" "fd00:dead:beef:ff0::/64" assert_good "--direct --remove-passthrough ipv6 --table filter --delete FORWARD --destination fd00:dead:beef:ff0::/64 --in-interface dummy0 --out-interface dummy0 --jump ACCEPT" assert_bad "--direct --passthrough ipv5 -nvL" # ipv5 assert_bad "--direct --passthrough ipv4" # missing argument assert_good "--direct --add-chain ipv4 filter mychain" assert_good_contains "--direct --get-chains ipv4 filter" "mychain" assert_good_contains "--direct --get-all-chains" "ipv4 filter mychain" assert_good "--direct --query-chain ipv4 filter mychain" assert_bad "--direct --add-chain ipv5 filter mychain" # bad ipv assert_bad "--direct --add-chain ipv4 badtable mychain" # bad table name assert_good "--direct --add-rule ipv4 filter mychain 3 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "3 -j ACCEPT" assert_good_contains "--direct --get-all-rules" "ipv4 filter mychain 3 -j ACCEPT" assert_good "--direct --query-rule ipv4 filter mychain 3 -j ACCEPT" assert_good "--direct --remove-rule ipv4 filter mychain 3 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 3 -j ACCEPT" assert_bad "--direct --add-rule ipv5 filter mychain 3 -j ACCEPT" # bad ipv assert_bad "--direct --add-rule ipv4 badtable mychain 3 -j ACCEPT" # bad table name assert_good "--direct --add-rule ipv4 filter mychain 3 -s 192.168.1.1 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 4 -s 192.168.1.2 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 5 -s 192.168.1.3 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 6 -s 192.168.1.4 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "3 -s 192.168.1.1 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "4 -s 192.168.1.2 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "5 -s 192.168.1.3 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "6 -s 192.168.1.4 -j ACCEPT" assert_good "--direct --remove-rules ipv4 filter mychain" assert_bad "--direct --query-rule ipv4 filter mychain 3 -s 192.168.1.1 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 4 -s 192.168.1.2 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 5 -s 192.168.1.3 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 6 -s 192.168.1.4 -j ACCEPT" assert_bad "--direct --remove-chain ipv5 filter mychain" # bad ipv assert_bad "--direct --remove-chain ipv4 badtable mychain" # bad table name assert_good "--direct --remove-chain ipv4 filter mychain" assert_bad "--direct --query-chain ipv4 filter mychain" assert_good "--direct --remove-chain ipv4 filter dummy" # removing nonexisting chain is just warning assert_bad "--direct --reload" # impossible combination assert_bad "--direct --list-all" # impossible combination assert_bad "--direct --get-services" # impossible combination assert_bad "--direct --get-default-zone" # impossible combination assert_bad "--direct --zone=home --list-services" # impossible combination assert_bad "--direct --permanent --list-all" # impossible combination assert_bad "--direct --passthrough --get-chains ipv4 filter" # impossible combination # ... --permanent --direct ... assert_bad "--permanent --direct --add-passthrough ipv4" # missing argument assert_bad "--permanent --direct --add-passthrough ipv5 -nvL" # bad ipv assert_good "--permanent --direct --add-passthrough ipv4 -nvL" assert_good_contains "--permanent --direct --get-passthroughs ipv4" "-nvL" assert_good_contains "--permanent --direct --get-all-passthroughs" "ipv4 -nvL" assert_good "--permanent --direct --query-passthrough ipv4 -nvL" assert_good "--permanent --direct --remove-passthrough ipv4 -nvL" assert_bad "--permanent --direct --query-passthrough ipv4 -nvL" # try some non-ascii magic mychain_p="žluÅ¥ouÄký" assert_good "--permanent --direct --add-chain ipv4 filter ${mychain_p}" assert_good_contains "--permanent --direct --get-chains ipv4 filter" "${mychain_p}" assert_good_contains "--permanent --direct --get-all-chains" "ipv4 filter ${mychain_p}" assert_good "--permanent --direct --query-chain ipv4 filter ${mychain_p}" assert_bad "--permanent --direct --add-chain ipv5 filter ${mychain_p}" # bad ipv assert_bad "--permanent --direct --add-chain ipv4 badtable ${mychain_p}" # bad table name assert_good "--permanent --direct --add-rule ipv4 filter ${mychain_p} 3 -j ACCEPT" assert_good_contains "--permanent --direct --get-rules ipv4 filter ${mychain_p}" "ACCEPT" assert_good_contains "--permanent --direct --get-all-rules" "ipv4 filter ${mychain_p} 3 -j ACCEPT" assert_good "--permanent --direct --query-rule ipv4 filter ${mychain_p} 3 -j ACCEPT" assert_good "--permanent --direct --remove-rule ipv4 filter ${mychain_p} 3 -j ACCEPT" assert_bad "--permanent --direct --query-rule ipv4 filter ${mychain_p} 3 -j ACCEPT" assert_bad "--permanent --direct --add-rule ipv5 filter ${mychain_p} 3 -j ACCEPT" # bad ipv assert_bad "--permanent --direct --add-rule ipv4 badtable ${mychain_p} 3 -j ACCEPT" # bad table name assert_good "--permanent --direct --add-rule ipv4 filter ${mychain_p} 3 -s 192.168.1.1 -j ACCEPT" assert_good "--permanent --direct --add-rule ipv4 filter ${mychain_p} 4 -s 192.168.1.2 -j ACCEPT" assert_good "--permanent --direct --add-rule ipv4 filter ${mychain_p} 5 -s 192.168.1.3 -j ACCEPT" assert_good "--permanent --direct --add-rule ipv4 filter ${mychain_p} 6 -s 192.168.1.4 -j ACCEPT" assert_good_contains "--permanent --direct --get-rules ipv4 filter ${mychain_p}" "3 -s 192.168.1.1 -j ACCEPT" assert_good_contains "--permanent --direct --get-rules ipv4 filter ${mychain_p}" "4 -s 192.168.1.2 -j ACCEPT" assert_good_contains "--permanent --direct --get-rules ipv4 filter ${mychain_p}" "5 -s 192.168.1.3 -j ACCEPT" assert_good_contains "--permanent --direct --get-rules ipv4 filter ${mychain_p}" "6 -s 192.168.1.4 -j ACCEPT" assert_good "--permanent --direct --remove-rules ipv4 filter ${mychain_p}" assert_bad "--permanent --direct --query-rule ipv4 filter ${mychain_p} 3 -s 192.168.1.1 -j ACCEPT" assert_bad "--permanent --direct --query-rule ipv4 filter ${mychain_p} 4 -s 192.168.1.2 -j ACCEPT" assert_bad "--permanent --direct --query-rule ipv4 filter ${mychain_p} 5 -s 192.168.1.3 -j ACCEPT" assert_bad "--permanent --direct --query-rule ipv4 filter ${mychain_p} 6 -s 192.168.1.4 -j ACCEPT" assert_bad "--permanent --direct --remove-chain ipv5 filter ${mychain_p}" # bad ipv assert_good "--permanent --direct --remove-chain ipv4 filter ${mychain_p}" assert_bad "--permanent --direct --query-chain ipv4 filter ${mychain_p}" assert_good "--permanent --direct --remove-chain ipv4 filter dummy" # removing nonexisting chain is just warning rule1="ipv4 nat OUTPUT 0 -s 1.2.3.4 -d 1.2.3.4 -p tcp --dport 80 -j REDIRECT --to-ports 81" rule2="ipv4 nat OUTPUT 0 -s 1.2.3.4 -d 1.2.3.4 -p tcp --dport 80 -j REDIRECT --to-ports 82" assert_good "--permanent --direct --add-rule ${rule1}" assert_good_contains "--permanent --direct --get-all-rules" "${rule1}" assert_good "--reload" assert_good_contains "--direct --get-all-rules" "${rule1}" assert_good "--permanent --direct --remove-rule ${rule1}" assert_good "--permanent --direct --add-rule ${rule2}" assert_good_contains "--permanent --direct --get-all-rules" "${rule2}" assert_good "--reload" assert_bad_contains "--direct --get-all-rules" "${rule1}" assert_good_contains "--direct --get-all-rules" "${rule2}" assert_good "--permanent --direct --remove-rule ${rule2}" assert_good "--reload" assert_bad_contains "--direct --get-all-rules" "${rule2}" # lockdown cmd="/usr/bin/command" ctxt="system_u:system_r:MadDaemon_t:s0" uid="6666" user="theboss" assert_good "--add-lockdown-whitelist-command ${cmd}" assert_good "--query-lockdown-whitelist-command ${cmd}" assert_good_contains "--list-lockdown-whitelist-commands" "${cmd}" assert_good "--remove-lockdown-whitelist-command ${cmd}" assert_bad "--query-lockdown-whitelist-command ${cmd}" # already removed assert_good "--add-lockdown-whitelist-context ${ctxt}" assert_good "--query-lockdown-whitelist-context ${ctxt}" assert_good_contains "--list-lockdown-whitelist-contexts" "${ctxt}" assert_good "--remove-lockdown-whitelist-context ${ctxt}" assert_bad "--query-lockdown-whitelist-context ${ctxt}" # already removed assert_good "--add-lockdown-whitelist-uid ${uid}" assert_good "--query-lockdown-whitelist-uid ${uid}" assert_good_contains "--list-lockdown-whitelist-uids" "${uid}" assert_good "--remove-lockdown-whitelist-uid ${uid}" assert_bad "--query-lockdown-whitelist-uid ${uid}" # already removed assert_bad "--add-lockdown-whitelist-uid ${uid}x" # bad uid assert_good "--add-lockdown-whitelist-user ${user}" assert_good "--query-lockdown-whitelist-user ${user}" assert_good_contains "--list-lockdown-whitelist-users" "${user}" assert_good "--remove-lockdown-whitelist-user ${user}" assert_bad "--query-lockdown-whitelist-user ${user}" # already removed assert_good "--permanent --add-lockdown-whitelist-command ${cmd}" assert_good "--permanent --query-lockdown-whitelist-command ${cmd}" assert_good_contains "--permanent --list-lockdown-whitelist-commands" "${cmd}" assert_good "--permanent --remove-lockdown-whitelist-command ${cmd}" assert_bad "--permanent --query-lockdown-whitelist-command ${cmd}" # already removed assert_good "--permanent --add-lockdown-whitelist-context ${ctxt}" assert_good "--permanent --query-lockdown-whitelist-context ${ctxt}" assert_good_contains "--permanent --list-lockdown-whitelist-contexts" "${ctxt}" assert_good "--permanent --remove-lockdown-whitelist-context ${ctxt}" assert_bad "--permanent --query-lockdown-whitelist-context ${ctxt}" # already removed assert_good "--permanent --add-lockdown-whitelist-uid ${uid}" assert_good "--permanent --query-lockdown-whitelist-uid ${uid}" assert_good_contains "--permanent --list-lockdown-whitelist-uids" "${uid}" assert_good "--permanent --remove-lockdown-whitelist-uid ${uid}" assert_bad "--permanent --query-lockdown-whitelist-uid ${uid}" # already removed assert_bad "--permanent --add-lockdown-whitelist-uid ${uid}x" # bad uid assert_good "--permanent --add-lockdown-whitelist-user ${user}" assert_good "--permanent --query-lockdown-whitelist-user ${user}" assert_good_contains "--permanent --list-lockdown-whitelist-users" "${user}" assert_good "--permanent --remove-lockdown-whitelist-user ${user}" assert_bad "--permanent --query-lockdown-whitelist-user ${user}" # already removed # rich rules bad_rules=( '' # empty 'family="ipv6" accept' # no 'rule' 'name="dns" accept' # no 'rule' 'protocol value="ah" reject' # no 'rule' 'rule protocol value="ah" reject type="icmp-host-prohibited"' # reject type needs specific family 'rule family="ipv4" protocol value="ah" reject type="dummy"' # dummy reject type 'rule' # no element 'rule bad_element' # no unknown element 'rule family="ipv5"' # bad family 'rule name="dns" accept' # name outside of element 'rule protocol="ah" accept' # bad protocol usage 'rule protocol value="ah" accept drop' # accept && drop 'rule service name="radius" port port="4011" reject' # service && port 'rule service bad_attribute="dns"' # bad attribute 'rule protocol value="mtp" log level="eror"' # bad log level 'rule source address="1:2:3:4:6::" icmp-block name="redirect" log level="info" limit value="1/2m"' # bad limit 'rule protocol value="esp"' # no action/log/audit 'rule family="ipv4" masquerade drop' # masquerade & action 'rule family="ipv4" icmp-block name="redirect" accept' # icmp-block & action 'rule forward-port port="2222" to-port="22" protocol="tcp" family="ipv4" accept' # forward-port & action ) for (( i=0;i<${#bad_rules[@]};i++)); do rule=${bad_rules[${i}]} assert_rich_bad "add" "${rule}" done for (( i=0;i<${#bad_rules[@]};i++)); do rule=${bad_rules[${i}]} assert_rich_bad "permanent add" "${rule}" done good_rules=( 'rule service name="ftp" audit limit value="1/m" accept' 'rule protocol value="ah" reject' 'rule protocol value="esp" accept' 'rule protocol value="sctp" log' 'rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept' 'rule family="ipv4" source not address="192.168.0.0/24" service name="dns" log prefix="dns" level="info" limit value="2/m" drop' 'rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject type="icmp6-addr-unreachable" limit value="20/m"' 'rule family="ipv6" source address="1:2:3:4:6::" port port="4011" protocol="tcp" log prefix="port 4011/tcp" level="info" limit value="4/m" drop' 'rule family="ipv6" source address="1:2:3:4:6::" forward-port port="4011" protocol="tcp" to-port="4012" to-addr="1::2:3:4:7"' 'rule family="ipv4" destination address="1.2.3.4" forward-port port="4011" protocol="tcp" to-port="4012" to-addr="9.8.7.6"' 'rule family="ipv4" source address="192.168.0.0/24" icmp-block name="source-quench" log prefix="source-quench" level="info" limit value="4/m"' 'rule family="ipv6" source address="1:2:3:4:6::" icmp-block name="redirect" log prefix="redirect" level="info" limit value="4/m"' 'rule family="ipv4" source address="192.168.1.0/24" masquerade' 'rule family="ipv4" destination address="192.168.1.0/24" masquerade' # masquerade & destination 'rule family="ipv6" masquerade' 'rule forward-port port="2222" to-port="22" to-addr="192.168.100.2" protocol="tcp" family="ipv4" source address="192.168.2.100"' 'rule forward-port port="66" to-port="666" to-addr="192.168.100.2" protocol="sctp" family="ipv4" source address="192.168.2.100"' 'rule forward-port port="99" to-port="999" to-addr="1::2:3:4:7" protocol="dccp" family="ipv6" source address="1:2:3:4:6::"' 'rule forward-port port="99" to-port="10999" to-addr="1::2:3:4:7" protocol="dccp" family="ipv6" source address="1:2:3:4:6::"') for (( i=0;i<${#good_rules[@]};i++)); do rule=${good_rules[${i}]} assert_rich_good "add" "${rule}" assert_rich_good "query" "${rule}" assert_rich_good "remove" "${rule}" assert_rich_bad "query" "${rule}" done for (( i=0;i<${#good_rules[@]};i++)); do rule=${good_rules[${i}]} assert_rich_good "permanent add" "${rule}" assert_rich_good "permanent query" "${rule}" assert_rich_good "permanent remove" "${rule}" assert_rich_bad "permanent query" "${rule}" done echo "----------------------------------------------------------------------" if [[ "${failures}" -eq 0 ]]; then echo "Everything's OK, you rock :-)" exit 0 else echo "FAILED (failures=${failures})" exit 2 fi firewalld-0.4.4.6/src/tests/firewall-offline-cmd_test.sh000077500000000000000000001007151320241217000231450ustar00rootroot00000000000000#!/bin/bash #readonly path="/usr/bin/" readonly path="../" readonly RED='\033[00;31m' readonly GREEN='\033[00;32m' readonly RESTORE='\033[0m' assert_cmd_good() { local args="${1}" ${args} > /dev/null if [[ "$?" -eq 0 ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status)${RESTORE}" fi } assert_good() { local args="${1}" ${path}firewall-offline-cmd ${args} > /dev/null 2>&1 if [[ "$?" -eq 0 ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status)${RESTORE}" fi } assert_good_notempty() { local args="${1}" local ret ret=$(${path}firewall-offline-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( -n "${ret}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or empty return value)${RESTORE}" fi } assert_good_empty() { local args="${1}" local ret ret=$(${path}firewall-offline-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( -z "${ret}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or non-empty return value)${RESTORE}" fi } assert_good_equals() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-offline-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( "${ret}" = "${value}" ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' != '${value}')${RESTORE}" fi } assert_good_contains() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-offline-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -eq 0 ) && ( "${ret}" = *${value}* ) ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' does not contain '${value}')${RESTORE}" fi } assert_bad() { local args="${1}" ${path}firewall-offline-cmd ${args} 1> /dev/null 2>&1 2>&1 if [[ "$?" -ne 0 ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (zero exit status)${RESTORE}" fi } assert_bad_contains() { local args="${1}" local value="${2}" local ret ret=$(${path}firewall-offline-cmd ${args}) > /dev/null 2>&1 if [[ ( "$?" -ne 0 ) || ( "${ret}" = *${value}* ) ]]; then ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (non-zero exit status or '${ret}' does contain '${value}')${RESTORE}" else echo "${args} ... OK" fi } # rich rules need separate assert methods because of quotation hell assert_rich_good() { local operation="${1}" local args="${2}" local command if [[ "${operation}" = *add* ]]; then command="--add-rich-rule" elif [[ "${operation}" = *remove* ]]; then command="--remove-rich-rule" elif [[ "${operation}" = *query* ]]; then command="--query-rich-rule" fi ${path}firewall-offline-cmd ${command} "${args}" > /dev/null 2>&1 if [[ "$?" -eq 0 ]]; then echo ${command} "${args} ... OK" else ((failures++)) echo -e ${command} "${args} ... ${RED}${failures}. FAILED (non-zero exit status)${RESTORE}" fi } assert_rich_bad() { local operation="${1}" local args="${2}" local command if [[ "${operation}" = *add* ]]; then command="--add-rich-rule" elif [[ "${operation}" = *remove* ]]; then command="--remove-rich-rule" elif [[ "${operation}" = *query* ]]; then command="--query-rich-rule" fi ${path}firewall-offline-cmd ${command} "${args}" > /dev/null 2>&1 if [[ "$?" -ne 0 ]]; then echo ${command} "${args} ... OK" else ((failures++)) echo -e ${command} "${args} ... ${RED}${failures}. FAILED (zero exit status)${RESTORE}" fi } assert_exit_code() { local args="${1}" local ret="${2}" ${path}firewall-offline-cmd ${args} > /dev/null 2>&1 got=$? if [[ "$got" -eq "$ret" ]]; then echo "${args} ... OK" else ((failures++)) echo -e "${args} ... ${RED}${failures}. FAILED (bad exit status ${got} != ${ret})${RESTORE}" fi } test_lokkit_opts() { rm -f /etc/firewalld/zones/* assert_good "${lokkit_opts}" assert_cmd_good "systemctl is-enabled firewalld.service" assert_good "--zone=trusted --query-interface=${trusted_iface1}" assert_good "--zone=trusted --query-interface=${trusted_iface2}" assert_good "--query-service ${service1}" assert_good "--query-service ${service2}" assert_bad "--query-service ${service3}" assert_good "--query-icmp-block ${icmp1}" assert_good "--query-icmp-block ${icmp2}" assert_good "--query-forward-port ${fw_port1}" assert_good "--query-forward-port ${fw_port2}" } # MAIN failures=0 while true; do read -p "This test overwrites your /etc/firewalld/zones/* and /etc/sysconfig/system-config-firewall. Do you want to continue ?" yn case $yn in [Yy]* ) break;; [Nn]* ) exit;; * ) echo "Please answer yes or no.";; esac done assert_good "-h" assert_good "--help" assert_good "-V" trusted_iface1="eth+" trusted_iface2="em0" service1="dns" service2="ftp" service3="dhcpv6-client" icmp1="router-advertisement" icmp2="router-solicitation" fw_port1="port=13:proto=tcp:toport=15:toaddr=1.2.3.4" fw_port2="port=333:proto=udp:toport=444" lokkit_opts="--enabled --addmodule=abc --addmodule=efg --removemodule=xyz --trust=${trusted_iface1} --trust=${trusted_iface2} --masq=tun+ --masq=tap+ --port=7:tcp --port=666:udp --custom-rules=ipv4:mangle:/etc/sysconfig/ebtables-config --service=${service1} --service=${service2} --remove-service=${service3} --block-icmp=${icmp1} --block-icmp=${icmp2} --forward-port=if=ippp+:${fw_port1} --forward-port=if=ippp+:${fw_port2}" test_lokkit_opts cat << EOF > /etc/sysconfig/system-config-firewall --enabled --addmodule=abc --addmodule=efg --removemodule=xyz --trust=${trusted_iface1} --trust=${trusted_iface2} --masq=tun+ --masq=tap+ --port=7:tcp --port=666:udp --custom-rules=ipv4:mangle:/etc/sysconfig/ebtables-config --service=${service1} --service=${service2} --remove-service=${service3} --block-icmp=${icmp1} --block-icmp=${icmp2} --forward-port=if=ippp+:${fw_port1} --forward-port=if=ippp+:${fw_port2} EOF # running firewall-offline-cmd without options should import /etc/sysconfig/system-config-firewall lokkit_opts="" test_lokkit_opts # disable dns again for later tests assert_good --remove-service=${service1} default_zone=$(${path}firewall-offline-cmd --get-default-zone 2>/dev/null) zone="home" assert_good_notempty "--get-default-zone" assert_good "--set-default-zone=${zone}" assert_good_equals "--get-default-zone" "${zone}" assert_good "--set-default-zone=${default_zone}" assert_bad "--set-default-zone" # missing argument assert_good_notempty "--get-zones" assert_good_notempty "--get-services" assert_good_notempty "--get-icmptypes" assert_good "--list-all-zones" assert_good "--list-all" iface="dummy0" zone="work" assert_good "--zone=${zone} --add-interface=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" assert_good "--zone ${zone} --query-interface=${iface}" zone="public" assert_good "--zone=${zone} --change-interface=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" zone="dmz" assert_good "--zone=${zone} --change-zone=${iface}" assert_good_equals "--get-zone-of-interface=${iface}" "${zone}" assert_good_contains "--zone=${zone} --list-interfaces" "${iface}" assert_good "--zone=${zone} --remove-interface=${iface}" assert_bad "--zone=${zone} --query-interface ${iface}" assert_good "--zone=${zone} --change-interface=${iface}" # should work as add assert_good "--zone=${zone} --query-interface ${iface}" assert_good "--zone=${zone} --remove-interface=${iface}" assert_bad "--zone=${zone} --query-interface ${iface}" assert_bad "--get-zone-of-interface=${iface}" # in no zone assert_bad "--get-zone-of-interface" # missing argument assert_bad "--zone=${zone} --get-zones" # impossible combination assert_bad "--zone=${zone} --get-services" # impossible combination assert_bad "--zone=${zone} --get-default-zone" # impossible combination assert_bad "--zone=${zone} --set-default-zone" # impossible combination assert_bad "--zone=${zone} --get-zone-of-interface" # impossible combination sources=( "dead:beef::babe" "3ffe:501:ffff::/64" "1.2.3.4" "192.168.1.0/24" ) for (( i=0;i<${#sources[@]};i++)); do zone="public" source=${sources[${i}]} assert_good "--zone=${zone} --add-source=${source}" assert_good_equals "--get-zone-of-source=${source}" "${zone}" assert_good_contains "--zone=${zone} --list-sources" "${source}" assert_good_contains "--zone=${zone} --list-all" "${source}" assert_good "--zone ${zone} --query-source=${source}" zone="work" assert_good "--zone=${zone} --change-source=${source}" assert_good_equals "--get-zone-of-source=${source}" "${zone}" assert_good "--zone=${zone} --remove-source=${source}" assert_bad "--zone ${zone} --query-source=${source}" assert_bad "--get-zone-of-source=${source}" # in no zone assert_bad "--get-zone-of-source" # missing argument done assert_good " --add-service=dns --zone=${default_zone}" assert_good " --query-service dns" assert_good "--remove-service=dns" assert_bad " --query-service=dns" assert_bad " --add-service=smtpssssssss" # bad service name assert_bad " --add-service=dns --add-interface=dummy0" # impossible combination assert_good " --add-service=http --add-service=nfs" assert_good " --query-service http" assert_good " --query-service=nfs --zone=${default_zone}" assert_good "--remove-service=nfs --remove-service=http" assert_bad " --query-service http" assert_bad " --query-service nfs" assert_bad " --add-port=666" # no protocol assert_bad " --add-port=666/dummy" # bad protocol assert_good " --add-port=666/tcp --zone=${default_zone}" assert_good "--remove-port=666/tcp" assert_good " --add-port=111-222/udp" assert_good " --query-port=111-222/udp --zone=${default_zone}" assert_good "--remove-port 111-222/udp" assert_bad " --query-port=111-222/udp" assert_good " --add-port=5000/sctp" assert_good " --query-port=5000/sctp --zone=${default_zone}" assert_good "--remove-port 5000/sctp" assert_bad " --query-port=5000/sctp" assert_good " --add-port=222/dccp" assert_good " --query-port=222/dccp --zone=${default_zone}" assert_good "--remove-port 222/dccp" assert_bad " --query-port=222/dccp" assert_good " --add-port=80/tcp --add-port 443-444/udp" assert_good " --query-port=80/tcp --zone=${default_zone}" assert_good " --query-port=443-444/udp" assert_good "--remove-port 80/tcp --remove-port=443-444/udp" assert_bad " --query-port=80/tcp" assert_bad " --query-port=443-444/udp" assert_bad " --add-protocol=dummy" # bad protocol assert_good " --add-protocol=mux" assert_good " --remove-protocol=mux --zone=${default_zone}" assert_good " --add-protocol=dccp --zone=${default_zone}" assert_good " --query-protocol=dccp" assert_good "--remove-protocol dccp" assert_bad " --query-protocol=dccp" assert_good " --add-protocol=ddp --add-protocol gre" assert_good " --query-protocol=ddp --zone=${default_zone}" assert_good " --query-protocol=gre" assert_good "--remove-protocol ddp --remove-protocol=gre" assert_bad " --query-protocol=ddp" assert_bad " --query-protocol=gre" assert_bad " --add-source-port=666" # no protocol assert_bad " --add-source-port=666/dummy" # bad protocol assert_good " --add-source-port=666/tcp --zone=${default_zone}" assert_good "--remove-source-port=666/tcp" assert_good " --add-source-port=111-222/udp" assert_good " --query-source-port=111-222/udp --zone=${default_zone}" assert_good "--remove-source-port 111-222/udp" assert_bad " --query-source-port=111-222/udp" assert_good " --add-masquerade --zone=${default_zone}" assert_good " --query-masquerade " assert_good "--remove-masquerade" assert_bad " --query-masquerade" assert_bad "--zone=external --add-icmp-block=dummyblock" # invalid icmp type assert_good "--zone=external --add-icmp-block=redirect" assert_good "--zone=external --query-icmp-block=redirect" assert_good " --add-icmp-block-inversion --zone=${default_zone}" assert_good " --query-icmp-block-inversion " assert_good "--remove-icmp-block-inversion" assert_bad " --query-icmp-block-inversion" assert_good "--zone=external --remove-icmp-block redirect" assert_bad "--zone=external --query-icmp-block=redirect" assert_good " --add-icmp-block-inversion --zone=block" assert_good "--remove-icmp-block-inversion --zone=block" assert_good " --add-icmp-block-inversion --zone=drop" assert_good "--remove-icmp-block-inversion --zone=drop" assert_good " --add-icmp-block-inversion --zone=trusted" assert_good "--remove-icmp-block-inversion --zone=trusted" assert_good "--zone=external --add-icmp-block=echo-reply --add-icmp-block=router-solicitation" assert_good "--zone=external --query-icmp-block=echo-reply" assert_good "--zone=external --query-icmp-block=router-solicitation" assert_good "--zone=external --remove-icmp-block echo-reply --remove-icmp-block=router-solicitation" assert_bad "--zone=external --query-icmp-block=echo-reply" assert_bad "--zone=external --query-icmp-block=router-solicitation" assert_good " --add-icmp-block-inversion" assert_good " --query-icmp-block-inversion --zone=${default_zone}" assert_good " --remove-icmp-block-inversion --zone=${default_zone}" assert_bad " --query-icmp-block-inversion" assert_bad " --add-forward-port=666" # no protocol assert_good " --add-forward-port=port=11:proto=tcp:toport=22" assert_good "--remove-forward-port=port=11:proto=tcp:toport=22 --zone=${default_zone}" assert_bad " --add-forward-port=port=33:proto=tcp:toaddr=4444" # bad address assert_good " --add-forward-port=port=33:proto=tcp:toaddr=4.4.4.4 --zone=${default_zone}" assert_good "--remove-forward-port=port=33:proto=tcp:toaddr=4.4.4.4" assert_good " --add-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good " --query-forward-port port=55:proto=tcp:toport=66:toaddr=7.7.7.7 --zone=${default_zone}" assert_good "--remove-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_bad " --query-forward-port=port=55:proto=tcp:toport=66:toaddr=7.7.7.7" assert_good " --add-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good " --query-forward-port port=66:proto=sctp:toport=66:toaddr=7.7.7.7 --zone=${default_zone}" assert_good "--remove-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_bad " --query-forward-port=port=66:proto=sctp:toport=66:toaddr=7.7.7.7" assert_good " --add-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_good " --query-forward-port port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0:: --zone=${default_zone}" assert_good "--remove-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_bad " --query-forward-port=port=66:proto=sctp:toport=66:toaddr=fd00:dead:beef:ff0::" assert_good " --add-forward-port=port=88:proto=udp:toport=99 --add-forward-port port=100:proto=tcp:toport=200" assert_good " --query-forward-port=port=100:proto=tcp:toport=200" assert_good " --query-forward-port=port=88:proto=udp:toport=99 --zone=${default_zone}" assert_good "--remove-forward-port port=100:proto=tcp:toport=200 --remove-forward-port=port=88:proto=udp:toport=99" assert_bad " --query-forward-port port=100:proto=tcp:toport=200" assert_bad " --query-forward-port=port=88:proto=udp:toport=99" assert_good_contains "--zone=home --list-services" "ssh" assert_good "--zone home --list-ports" assert_good "--list-icmp-blocks" assert_good "--zone=home --list-forward-ports" myzone="myzone" myservice="myservice" myicmp="myicmp" # create new zone assert_good "--new-zone=${myzone}" assert_good_contains "--get-zones" "${myzone}" # get/set default target assert_good_contains "--zone=${myzone} --get-target" "default" assert_bad "--zone=${myzone} --set-target=BAD" assert_good "--zone=${myzone} --set-target=%%REJECT%%" assert_good "--zone=${myzone} --set-target=DROP" assert_good "--zone=${myzone} --set-target=ACCEPT" assert_good_contains "--zone=${myzone} --get-target" "ACCEPT" # create new service and icmptype assert_good "--new-service=${myservice}" assert_good_contains "--get-services" "${myservice}" assert_good "--new-icmptype=${myicmp}" assert_good_contains "--get-icmptypes" "${myicmp}" # test service options assert_bad "--service=${myservice} --add-port=666" # no protocol assert_bad "--service=${myservice} --add-port=666/dummy" # bad protocol assert_good "--service=${myservice} --add-port=666/tcp" assert_good "--service=${myservice} --remove-port=666/tcp" assert_good "--service=${myservice} --add-port=111-222/udp" assert_good "--service=${myservice} --query-port=111-222/udp" assert_good "--service=${myservice} --remove-port 111-222/udp" assert_bad "--service=${myservice} --query-port=111-222/udp" assert_good "--service=${myservice} --add-protocol=ddp --add-protocol gre" assert_good "--service=${myservice} --query-protocol=ddp" assert_good "--service=${myservice} --query-protocol=gre" assert_good "--service=${myservice} --remove-protocol ddp" assert_good "--service=${myservice} --remove-protocol gre" assert_bad "--service=${myservice} --query-protocol=ddp" assert_bad "--service=${myservice} --query-protocol=gre" assert_bad "--service=${myservice} --add-source-port=666" # no protocol assert_bad "--service=${myservice} --add-source-port=666/dummy" # bad protocol assert_good "--service=${myservice} --add-source-port=666/tcp" assert_good "--service=${myservice} --remove-source-port=666/tcp" assert_good "--service=${myservice} --add-source-port=111-222/udp" assert_good "--service=${myservice} --query-source-port=111-222/udp" assert_good "--service=${myservice} --remove-source-port 111-222/udp" assert_bad "--service=${myservice} --query-source-port=111-222/udp" assert_good "--service=${myservice} --add-module=sip" assert_good "--service=${myservice} --remove-module=sip" assert_good "--service=${myservice} --add-module=ftp" assert_good "--service=${myservice} --query-module=ftp" assert_good "--service=${myservice} --remove-module=ftp" assert_bad "--service=${myservice} --query-module=ftp" assert_bad "--service=${myservice} --set-destination=ipv4" # no address assert_bad "--service=${myservice} --set-destination=ipv4:foo" # bad address assert_good "--service=${myservice} --set-destination=ipv4:1.2.3.4" assert_good "--service=${myservice} --remove-destination=ipv4" assert_good "--service=${myservice} --set-destination=ipv6:fd00:dead:beef:ff0::/64" assert_good "--service=${myservice} --query-destination=ipv6:fd00:dead:beef:ff0::/64" assert_good "--service=${myservice} --remove-destination=ipv6" assert_bad "--service=${myservice} --query-destination=ipv6:fd00:dead:beef:ff0::/64" # test icmptype options, ipv4 and ipv6 destinations are default assert_bad "--icmptype=${myicmp} --add-destination=ipv5" assert_good "--icmptype=${myicmp} --add-destination=ipv4" assert_good "--icmptype=${myicmp} --remove-destination=ipv4" assert_good "--icmptype=${myicmp} --add-destination=ipv4" assert_good "--icmptype=${myicmp} --query-destination=ipv4" assert_good "--icmptype=${myicmp} --remove-destination=ipv4" assert_bad "--icmptype=${myicmp} --query-destination=ipv4" # test sctp and dccp ports assert_good "--service=${myservice} --add-port=666/sctp" assert_good "--service=${myservice} --remove-port=666/sctp" assert_good "--service=${myservice} --remove-port 666/sctp" assert_bad "--service=${myservice} --query-port=666/sctp" assert_good "--service=${myservice} --add-port=999/dccp" assert_good "--service=${myservice} --remove-port=999/dccp" assert_good "--service=${myservice} --remove-port 999/dccp" assert_bad "--service=${myservice} --query-port=999/dccp" assert_good "--service=${myservice} --add-port=666/sctp" assert_good "--service=${myservice} --add-port=999/dccp" # add them to zone assert_good "--zone=${myzone} --add-service=${myservice}" assert_good "--zone=${myzone} --add-icmp-block=${myicmp}" assert_good_contains "--zone=${myzone} --list-services" "${myservice}" assert_good_contains "--zone=${myzone} --list-icmp-blocks" "${myicmp}" # delete the service and icmptype assert_good "--delete-service=${myservice}" assert_good "--delete-icmptype=${myicmp}" # make sure they were removed also from the zone assert_good_empty "--zone=${myzone} --list-services" "${myservice}" assert_good_empty "--zone=${myzone} --list-icmp-blocks" "${myicmp}" # delete the zone assert_good "--delete-zone=${myzone}" # ipset tests ipset="myipset" source="ipset:${ipset}" zone="public" assert_good "--new-ipset=${ipset} --type=hash:ip" assert_good_empty "--ipset=${ipset} --get-entries" assert_good "--ipset=${ipset} --add-entry=1.2.3.4" assert_good_notempty "--ipset=${ipset} --get-entries" assert_bad "--ipset=${ipset} --add-entry=1.2.3.400" assert_good "--ipset=${ipset} --remove-entry=1.2.3.4" assert_good_empty "--ipset=${ipset} --get-entries" assert_good "--zone=${zone} --add-source=${source}" assert_good_contains "--get-zone-of-source=${source}" "${zone}" assert_good_contains "--zone=public --list-sources" "${source}" assert_good "--zone=${zone} --query-source=${source}" assert_good "--zone=${zone} --remove-source=${source}" assert_good "--delete-ipset=${ipset}" # helper tests myhelper="myhelper" assert_bad "--new-helper=${myhelper} --module=foo" assert_good "--new-helper=${myhelper} --module=nf_conntrack_foo" assert_good_contains "--get-helpers" "${myhelper}" assert_good_empty "--helper=${myhelper} --get-family" assert_bad "--helper=${myhelper} --set-family=ipv5" assert_good "--helper=${myhelper} --set-family=ipv4" assert_good_equals "--helper=${myhelper} --get-family" "ipv4" assert_good "--helper=${myhelper} --set-family=" assert_good_empty "--helper=${myhelper} --get-family" assert_good_empty "--helper=${myhelper} --get-ports" assert_good "--helper=${myhelper} --add-port=44/tcp" assert_good_notempty "--helper=${myhelper} --get-ports" assert_good "--helper=${myhelper} --query-port=44/tcp" assert_good "--helper=${myhelper} --remove-port=44/tcp" assert_bad "--helper=${myhelper} --query-port=44/tcp" assert_good_empty "--helper=${myhelper} --get-ports" assert_good "--delete-helper=${myhelper}" assert_bad_contains "--get-helpers" "${myhelper}" # exit return value tests assert_exit_code "--remove-port 122/udp" 0 assert_exit_code "--add-port 122/udpp" 103 assert_exit_code "--add-port 122/udp --add-port 122/udpp" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp --add-port 8745897/foo" 0 assert_exit_code "--add-port 122/udp --add-port 122/udpp --add-port 8745897/foo --add-port bar" 0 assert_exit_code "--add-port 122/udpa --add-port 122/udpp" 103 assert_exit_code "--add-port 122/udpa --add-port 122/udpp" 103 assert_exit_code "--add-port 122/udpa --add-port 122/udpp --add-port 8745897/foo" 254 assert_exit_code "--add-port 122/udpa --add-port 122/udpp --add-port 8745897/foo --add-port bar" 254 assert_exit_code "--add-port 122/udp --add-port 122/udp" 0 assert_exit_code "--remove-port 122/udp" 0 # ... --direct ... assert_bad "--direct --add-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --add-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --query-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --query-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --remove-passthrough ipv7 --table filter -A INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" # bad ipv assert_good "--direct --remove-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_bad "--direct --query-passthrough ipv4 --table filter --append INPUT --in-interface dummy0 --protocol tcp --destination-port 67 --jump ACCEPT" assert_good "--direct --add-passthrough ipv6 --table filter --append FORWARD --destination fd00:dead:beef:ff0::/64 --in-interface dummy0 --out-interface dummy0 --jump ACCEPT" assert_good_contains "--direct --get-passthroughs ipv6" "fd00:dead:beef:ff0::/64" assert_good_contains "--direct --get-all-passthroughs" "fd00:dead:beef:ff0::/64" assert_good "--direct --remove-passthrough ipv6 --table filter --append FORWARD --destination fd00:dead:beef:ff0::/64 --in-interface dummy0 --out-interface dummy0 --jump ACCEPT" assert_good "--direct --add-chain ipv4 filter mychain" assert_good_contains "--direct --get-chains ipv4 filter" "mychain" assert_good_contains "--direct --get-all-chains" "ipv4 filter mychain" assert_good "--direct --query-chain ipv4 filter mychain" assert_bad "--direct --add-chain ipv5 filter mychain" # bad ipv assert_bad "--direct --add-chain ipv4 badtable mychain" # bad table name assert_good "--direct --add-rule ipv4 filter mychain 3 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "3 -j ACCEPT" assert_good_contains "--direct --get-all-rules" "ipv4 filter mychain 3 -j ACCEPT" assert_good "--direct --query-rule ipv4 filter mychain 3 -j ACCEPT" assert_good "--direct --remove-rule ipv4 filter mychain 3 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 3 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 3 -s 192.168.1.1 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 4 -s 192.168.1.2 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 5 -s 192.168.1.3 -j ACCEPT" assert_good "--direct --add-rule ipv4 filter mychain 6 -s 192.168.1.4 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "3 -s 192.168.1.1 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "4 -s 192.168.1.2 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "5 -s 192.168.1.3 -j ACCEPT" assert_good_contains "--direct --get-rules ipv4 filter mychain" "6 -s 192.168.1.4 -j ACCEPT" assert_good "--direct --remove-rules ipv4 filter mychain" assert_bad "--direct --query-rule ipv4 filter mychain 3 -s 192.168.1.1 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 4 -s 192.168.1.2 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 5 -s 192.168.1.3 -j ACCEPT" assert_bad "--direct --query-rule ipv4 filter mychain 6 -s 192.168.1.4 -j ACCEPT" assert_good "--direct --remove-chain ipv4 filter mychain" assert_bad "--direct --query-chain ipv4 filter mychain" assert_bad "--direct --reload" # impossible combination assert_bad "--direct --list-all" # impossible combination assert_bad "--direct --get-services" # impossible combination assert_bad "--direct --get-default-zone" # impossible combination assert_bad "--direct --zone=home --list-services" # impossible combination # lockdown cmd="/usr/bin/command" ctxt="system_u:system_r:MadDaemon_t:s0" uid="6666" user="theboss" assert_good "--add-lockdown-whitelist-command ${cmd}" assert_good "--query-lockdown-whitelist-command ${cmd}" assert_good_contains "--list-lockdown-whitelist-commands" "${cmd}" assert_good "--remove-lockdown-whitelist-command ${cmd}" assert_bad "--query-lockdown-whitelist-command ${cmd}" # already removed assert_good "--add-lockdown-whitelist-context ${ctxt}" assert_good "--query-lockdown-whitelist-context ${ctxt}" assert_good_contains "--list-lockdown-whitelist-contexts" "${ctxt}" assert_good "--remove-lockdown-whitelist-context ${ctxt}" assert_bad "--query-lockdown-whitelist-context ${ctxt}" # already removed assert_good "--add-lockdown-whitelist-uid ${uid}" assert_good "--query-lockdown-whitelist-uid ${uid}" assert_good_contains "--list-lockdown-whitelist-uids" "${uid}" assert_good "--remove-lockdown-whitelist-uid ${uid}" assert_bad "--query-lockdown-whitelist-uid ${uid}" # already removed assert_bad "--add-lockdown-whitelist-uid ${uid}x" # bad uid assert_good "--add-lockdown-whitelist-user ${user}" assert_good "--query-lockdown-whitelist-user ${user}" assert_good_contains "--list-lockdown-whitelist-users" "${user}" assert_good "--remove-lockdown-whitelist-user ${user}" assert_bad "--query-lockdown-whitelist-user ${user}" # already removed # rich rules bad_rules=( '' # empty 'family="ipv6" accept' # no 'rule' 'name="dns" accept' # no 'rule' 'protocol value="ah" reject' # no 'rule' 'rule protocol value="ah" reject type="icmp-host-prohibited"' # reject type needs specific family 'rule family="ipv4" protocol value="ah" reject type="dummy"' # dummy reject type 'rule' # no element 'rule bad_element' # no unknown element 'rule family="ipv5"' # bad family 'rule name="dns" accept' # name outside of element 'rule protocol="ah" accept' # bad protocol usage 'rule protocol value="ah" accept drop' # accept && drop 'rule service name="radius" port port="4011" reject' # service && port 'rule service bad_attribute="dns"' # bad attribute 'rule protocol value="mtp" log level="eror"' # bad log level 'rule source address="1:2:3:4:6::" icmp-block name="redirect" log level="info" limit value="1/2m"' # bad limit 'rule protocol value="esp"' # no action/log/audit ) for (( i=0;i<${#bad_rules[@]};i++)); do rule=${bad_rules[${i}]} assert_rich_bad "add" "${rule}" done good_rules=( 'rule service name="ftp" audit limit value="1/m" accept' 'rule protocol value="ah" reject' 'rule protocol value="esp" accept' 'rule protocol value="sctp" log' 'rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept' 'rule family="ipv4" source NOT address="192.168.0.0/24" service name="dns" log prefix="dns" level="info" limit value="2/m" drop' 'rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject type="icmp6-addr-unreachable" limit value="20/m"' 'rule family="ipv6" source address="1:2:3:4:6::" port port="4011" protocol="tcp" log prefix="port 4011/tcp" level="info" limit value="4/m" drop' 'rule family="ipv6" source address="1:2:3:4:6::" forward-port port="4011" protocol="tcp" to-port="4012" to-addr="1::2:3:4:7"' 'rule family="ipv4" source address="192.168.0.0/24" icmp-block name="source-quench" log prefix="source-quench" level="info" limit value="4/m"' 'rule family="ipv6" source address="1:2:3:4:6::" icmp-block name="redirect" log prefix="redirect" level="info" limit value="4/m"' 'rule family="ipv4" source address="192.168.1.0/24" masquerade' 'rule family="ipv6" masquerade' 'rule forward-port port="2222" to-port="22" to-addr="192.168.100.2" protocol="tcp" family="ipv4" source address="192.168.2.100"' 'rule forward-port port="66" to-port="666" to-addr="192.168.100.2" protocol="sctp" family="ipv4" source address="192.168.2.100"' 'rule forward-port port="99" to-port="999" to-addr="1::2:3:4:7" protocol="dccp" family="ipv6" source address="1:2:3:4:6::"' 'rule forward-port port="99" to-port="10999" to-addr="1::2:3:4:7" protocol="dccp" family="ipv6" source address="1:2:3:4:6::"') for (( i=0;i<${#good_rules[@]};i++)); do rule=${good_rules[${i}]} assert_rich_good "add" "${rule}" assert_rich_good "query" "${rule}" assert_rich_good "remove" "${rule}" assert_rich_bad "query" "${rule}" done echo "----------------------------------------------------------------------" if [[ "${failures}" -eq 0 ]]; then echo "Everything's OK, you rock :-)" exit 0 else echo "FAILED (failures=${failures})" exit 2 fi firewalld-0.4.4.6/src/tests/firewalld_config.py000077500000000000000000000363201320241217000214340ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2010-2012 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # To use in git tree: PYTHONPATH=.. python firewalld-test.py import unittest import time import firewall from firewall.client import FirewallClient, \ FirewallClientZoneSettings, \ FirewallClientServiceSettings, \ FirewallClientIcmpTypeSettings from firewall.core.base import DEFAULT_ZONE_TARGET class TestFirewallDInterfaceConfig(unittest.TestCase): """ For testing of permanent changes, ie. those that survive restart: """ def setUp(self): unittest.TestCase.setUp(self) self.fw = FirewallClient() def tearDown(self): unittest.TestCase.tearDown(self) def test_zones(self): """ /org/fedoraproject/FirewallD1/config listZones() getZoneByName(String name) addZone(String name, Dict of {String, Variant} zone_settings) /org/fedoraproject/FirewallD1/config/zone/ getSettings() loadDefaults() update() rename() remove() """ print ("\nGetting invalid zone") self.assertRaisesRegexp(Exception, 'INVALID_ZONE', self.fw.config().getZoneByName, "dummyname") zone_version = "1.0" zone_short = "Testing" zone_description = "this is just a testing zone" zone_target = DEFAULT_ZONE_TARGET zone_services = ["dhcpv6-client", "ssh"] zone_ports = [("123", "tcp"), ("666-667", "udp")] zone_icmpblocks = ["redirect", "echo-reply"] zone_masquerade = False zone_forward_ports = [("443", "tcp", "441", "192.168.0.2"), ("123", "udp", "321", "192.168.1.1")] settings = FirewallClientZoneSettings() settings.setVersion(zone_version) settings.setShort(zone_short) settings.setDescription(zone_description) settings.setTarget(zone_target) settings.setServices(zone_services) settings.setPorts(zone_ports) settings.setIcmpBlocks(zone_icmpblocks) settings.setMasquerade(zone_masquerade) settings.setForwardPorts(zone_forward_ports) print ("Adding zone with name that already exists") self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', self.fw.config().addZone, "home", settings) print ("Adding zone with empty name") self.assertRaisesRegexp(Exception, 'INVALID_NAME', self.fw.config().addZone, "", settings) zone_name = "test" print ("Adding proper zone") self.fw.config().addZone (zone_name, settings) print ("Checking the saved (permanent) settings") config_zone = self.fw.config().getZoneByName(zone_name) self.assertIsInstance(config_zone, firewall.client.FirewallClientConfigZone) zone_settings = config_zone.getSettings() self.assertIsInstance(zone_settings, firewall.client.FirewallClientZoneSettings) self.assertEquals(zone_settings.getVersion(), zone_version) self.assertEquals(zone_settings.getShort(), zone_short) self.assertEquals(zone_settings.getDescription(), zone_description) self.assertEquals(zone_settings.getTarget(), "default") self.assertEquals(zone_settings.getServices().sort(), zone_services.sort()) self.assertEquals(zone_settings.getPorts().sort(), zone_ports.sort()) self.assertEquals(zone_settings.getIcmpBlocks().sort(), zone_icmpblocks.sort()) self.assertEquals(zone_settings.getMasquerade(), zone_masquerade) self.assertEquals(zone_settings.getForwardPorts().sort(), zone_forward_ports.sort()) print ("Updating settings") zone_services.append("mdns") zone_settings.setServices(zone_services) config_zone.update(zone_settings) print ("Reloading firewalld") self.fw.reload() print ("Checking of runtime settings") self.assertTrue(zone_name in self.fw.getZones()) self.assertEquals(self.fw.getServices(zone_name).sort(), zone_services.sort()) self.assertEquals(self.fw.getPorts(zone_name).sort(), zone_ports.sort()) self.assertEquals(self.fw.getIcmpBlocks(zone_name).sort(), zone_icmpblocks.sort()) self.assertEquals(self.fw.queryMasquerade(zone_name), zone_masquerade) self.assertEquals(self.fw.getForwardPorts(zone_name).sort(), zone_forward_ports.sort()) print ("Renaming zone to name that already exists") config_zone = self.fw.config().getZoneByName(zone_name) self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', config_zone.rename, "home") new_zone_name = "renamed" print ("Renaming zone '%s' to '%s'" % (zone_name, new_zone_name)) config_zone.rename(new_zone_name) print ("Checking whether the zone '%s' is accessible (it shouldn't be)" % zone_name) self.assertRaisesRegexp(Exception, 'INVALID_ZONE', self.fw.config().getZoneByName, zone_name) print ("Checking whether the zone '%s' is accessible" % new_zone_name) config_zone = self.fw.config().getZoneByName(new_zone_name) zone_settings = config_zone.getSettings() self.assertEquals(zone_settings.getVersion(), zone_version) self.assertEquals(zone_settings.getShort(), zone_short) self.assertEquals(zone_settings.getDescription(), zone_description) self.assertEquals(zone_settings.getTarget(), "default") self.assertEquals(zone_settings.getServices().sort(), zone_services.sort()) self.assertEquals(zone_settings.getPorts().sort(), zone_ports.sort()) self.assertEquals(zone_settings.getIcmpBlocks().sort(), zone_icmpblocks.sort()) self.assertEquals(zone_settings.getMasquerade(), zone_masquerade) self.assertEquals(zone_settings.getForwardPorts().sort(), zone_forward_ports.sort()) print ("Removing the zone '%s'" % new_zone_name) config_zone.remove() print ("Checking whether the removed zone is accessible (it shouldn't be)") self.assertRaisesRegexp(Exception, 'INVALID_ZONE', self.fw.config().getZoneByName, new_zone_name) # TODO test loadDefaults() ? def test_services(self): """ /org/fedoraproject/FirewallD1/config listServices() getServiceByName(String name) addService(String name, Dict of {String, Variant} settings) /org/fedoraproject/FirewallD1/config/service/ getSettings() loadDefaults() update() rename() remove() """ print ("\nGetting invalid service") self.assertRaisesRegexp(Exception, 'INVALID_SERVICE', self.fw.config().getServiceByName, "dummyname") service_version = "1.0" service_short = "Testing" service_description = "this is just a testing service" service_ports = [("123", "tcp"), ("666-667", "udp")] service_modules = ["nf_conntrack_tftp"] service_destinations = {'ipv4': '1.2.3.4', 'ipv6': 'dead::beef'} settings = FirewallClientServiceSettings() # ["", "", "", [], [], {}] settings.setVersion(service_version) settings.setShort(service_short) settings.setDescription(service_description) settings.setPorts(service_ports) settings.setModules(service_modules) settings.setDestinations(service_destinations) print ("Adding service with name that already exists") self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', self.fw.config().addService, "mdns", settings) print ("Adding service with empty name") self.assertRaisesRegexp(Exception, 'INVALID_NAME', self.fw.config().addService, "", settings) service_name = "test" print ("Adding proper service") self.fw.config().addService (service_name, settings) print ("Checking the saved (permanent) settings") config_service = self.fw.config().getServiceByName(service_name) self.assertIsInstance(config_service, firewall.client.FirewallClientConfigService) service_settings = config_service.getSettings() self.assertIsInstance(service_settings, firewall.client.FirewallClientServiceSettings) print ("Updating settings") service_modules.append("nf_conntrack_sip") service_destinations["ipv6"] = "3ffe:501:ffff::" service_settings.setModules(service_modules) service_settings.setDestinations(service_destinations) config_service.update(service_settings) self.assertEquals(service_settings.getVersion(), service_version) self.assertEquals(service_settings.getShort(), service_short) self.assertEquals(service_settings.getDescription(), service_description) self.assertEquals(service_settings.getPorts().sort(), service_ports.sort()) self.assertEquals(service_settings.getModules().sort(), service_modules.sort()) self.assertDictEqual(service_settings.getDestinations(), service_destinations) print ("Renaming service to name that already exists") config_service = self.fw.config().getServiceByName(service_name) self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', config_service.rename, "mdns") new_service_name = "renamed" print ("Renaming service '%s' to '%s'" % (service_name, new_service_name)) config_service.rename(new_service_name) print ("Checking whether the service '%s' is accessible (it shouldn't be)" % service_name) self.assertRaisesRegexp(Exception, 'INVALID_SERVICE', self.fw.config().getServiceByName, service_name) print ("Checking whether the service '%s' is accessible" % new_service_name) config_service = self.fw.config().getServiceByName(new_service_name) service_settings = config_service.getSettings() self.assertEquals(service_settings.getVersion(), service_version) self.assertEquals(service_settings.getShort(), service_short) self.assertEquals(service_settings.getDescription(), service_description) self.assertEquals(service_settings.getPorts().sort(), service_ports.sort()) self.assertEquals(service_settings.getModules().sort(), service_modules.sort()) self.assertDictEqual(service_settings.getDestinations(), service_destinations) print ("Removing the service '%s'" % new_service_name) config_service.remove() print ("Checking whether the removed service is accessible (it shouldn't be)") self.assertRaisesRegexp(Exception, 'INVALID_SERVICE', self.fw.config().getServiceByName, new_service_name) # TODO test loadDefaults() ? def test_icmptypes(self): """ /org/fedoraproject/FirewallD1/config listIcmpTypes() getIcmpTypeByName(String name) addIcmpType(String name, Dict of {String, Variant} settings) /org/fedoraproject/FirewallD1/config/icmptype/ getSettings() loadDefaults() update() rename() remove() """ print ("\nGetting invalid icmp-type") self.assertRaisesRegexp(Exception, 'INVALID_ICMPTYPE', self.fw.config().getIcmpTypeByName, "dummyname") icmptype_version = "1.0" icmptype_short = "Testing" icmptype_description = "this is just a testing icmp type" icmptype_destinations = ['ipv4'] settings = FirewallClientIcmpTypeSettings() # ["", "", "", []] settings.setVersion(icmptype_version) settings.setShort(icmptype_short) settings.setDescription(icmptype_description) settings.setDestinations(icmptype_destinations) print ("Adding icmp type with name that already exists") self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', self.fw.config().addIcmpType, "echo-reply", settings) print ("Adding icmp type with empty name") self.assertRaisesRegexp(Exception, 'INVALID_NAME', self.fw.config().addIcmpType, "", settings) icmptype_name = "test" print ("Adding proper icmp type") self.fw.config().addIcmpType (icmptype_name, settings) print ("Checking the saved (permanent) settings") config_icmptype = self.fw.config().getIcmpTypeByName(icmptype_name) self.assertIsInstance(config_icmptype, firewall.client.FirewallClientConfigIcmpType) icmptype_settings = config_icmptype.getSettings() self.assertIsInstance(icmptype_settings, firewall.client.FirewallClientIcmpTypeSettings) print ("Updating settings") icmptype_destinations.append("ipv6") icmptype_settings.setDestinations(icmptype_destinations) config_icmptype.update(icmptype_settings) self.assertEquals(icmptype_settings.getVersion(), icmptype_version) self.assertEquals(icmptype_settings.getShort(), icmptype_short) self.assertEquals(icmptype_settings.getDescription(), icmptype_description) self.assertEquals(icmptype_settings.getDestinations().sort(), icmptype_destinations.sort()) print ("Renaming icmp type to name that already exists") config_icmptype = self.fw.config().getIcmpTypeByName(icmptype_name) self.assertRaisesRegexp(Exception, 'NAME_CONFLICT', config_icmptype.rename, "echo-reply") new_icmptype_name = "renamed" print ("Renaming icmp type '%s' to '%s'" % (icmptype_name, new_icmptype_name)) config_icmptype.rename(new_icmptype_name) print ("Checking whether the icmp type '%s' is accessible (it shouldn't be)" % icmptype_name) self.assertRaisesRegexp(Exception, 'INVALID_ICMPTYPE', self.fw.config().getIcmpTypeByName, icmptype_name) print ("Checking whether the icmp type '%s' is accessible" % new_icmptype_name) config_icmptype = self.fw.config().getIcmpTypeByName(new_icmptype_name) icmptype_settings = config_icmptype.getSettings() self.assertEquals(icmptype_settings.getVersion(), icmptype_version) self.assertEquals(icmptype_settings.getShort(), icmptype_short) self.assertEquals(icmptype_settings.getDescription(), icmptype_description) self.assertEquals(icmptype_settings.getDestinations().sort(), icmptype_destinations.sort()) print ("Removing the icmp type '%s'" % new_icmptype_name) config_icmptype.remove() print ("Checking whether the removed icmp type is accessible (it shouldn't be)") self.assertRaisesRegexp(Exception, 'INVALID_ICMPTYPE', self.fw.config().getIcmpTypeByName, new_icmptype_name) # TODO test loadDefaults() ? if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(TestFirewallDInterfaceConfig) unittest.TextTestRunner(verbosity=2).run(suite) firewalld-0.4.4.6/src/tests/firewalld_direct.py000077500000000000000000000135131320241217000214400ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2012 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # To use in git tree: PYTHONPATH=.. python firewalld-test.py import dbus import sys import time import unittest from firewall import config from firewall.config.dbus import * from firewall.dbus_utils import dbus_to_python from pprint import pprint class TestFirewallDInterfaceDirect(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) bus = dbus.SystemBus() dbus_obj = bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH) self.fw = dbus.Interface(dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE) self.fw_direct = dbus.Interface( dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_DIRECT) # always have "direct_foo1" available self.fw_direct.addChain("ipv4", "filter", "direct_foo1") def tearDown(self): unittest.TestCase.tearDown(self) self.fw_direct.removeChain("ipv4", "filter", "direct_foo1") def test_add_removeChain(self): self.fw_direct.addChain("ipv4", "filter", "direct_foo2") # Re-adding self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_direct.addChain, "ipv4", "filter", "direct_foo2") ret = self.fw_direct.getChains("ipv4", "filter") self.assertTrue(len(ret)==2) # "direct_foo1" and "direct_foo2" #pprint (dbus_to_python(ret)) ret = self.fw_direct.queryChain("ipv4", "filter", "direct_foo2") self.assertTrue(dbus_to_python(ret)) self.fw_direct.removeChain("ipv4", "filter", "direct_foo2") # Re-removing self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_direct.removeChain, "ipv4", "filter", "direct_foo2") ret = self.fw_direct.getChains("ipv4", "filter") self.assertTrue(len(ret)==1) # "direct_foo1" ret = self.fw_direct.queryChain("ipv4", "filter", "direct_foo2") self.assertFalse(dbus_to_python(ret)) def test_add_removeRule(self): self.fw_direct.addRule("ipv4", "filter", "direct_foo1", 0, [ "-m", "tcp", "-p", "tcp", "--dport", "332", "-j", "ACCEPT" ]) self.fw_direct.addRule("ipv4", "filter", "direct_foo1", 0, [ "-m", "tcp", "-p", "tcp", "--dport", "333", "-j", "ACCEPT" ]) self.fw_direct.addRule("ipv4", "filter", "direct_foo1", 1, [ "-m", "tcp", "-p", "tcp", "--dport", "334", "-j", "ACCEPT" ]) self.fw_direct.addRule("ipv4", "filter", "direct_foo1", -5, [ "-m", "tcp", "-p", "tcp", "--dport", "331", "-j", "ACCEPT" ]) self.fw_direct.addRule("ipv4", "filter", "direct_foo1", -10, [ "-m", "tcp", "-p", "tcp", "--dport", "330", "-j", "ACCEPT" ]) self.fw_direct.addRule("ipv4", "filter", "direct_foo1", -5, [ "-m", "udp", "-p", "udp", "--dport", "331", "-j", "ACCEPT" ]) # Re-adding self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_direct.addRule, "ipv4", "filter", "direct_foo1", -5, [ "-m", "udp", "-p", "udp", "--dport", "331", "-j", "ACCEPT" ]) ret = self.fw_direct.queryRule("ipv4", "filter", "direct_foo1", -5, [ "-m", "udp", "-p", "udp", "--dport", "331", "-j", "ACCEPT" ]) self.assertTrue(dbus_to_python(ret)) ret = self.fw_direct.getRules("ipv4", "filter", "direct_foo1") self.assertTrue(len(ret) == 6) #pprint (dbus_to_python(ret)) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", -10, [ "-m", "tcp", "-p", "tcp", "--dport", "330", "-j", "ACCEPT" ]) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", -5, [ "-m", "tcp", "-p", "tcp", "--dport", "331", "-j", "ACCEPT" ]) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", -5, [ "-m", "udp", "-p", "udp", "--dport", "331", "-j", "ACCEPT" ]) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", 0, [ "-m", "tcp", "-p", "tcp", "--dport", "332", "-j", "ACCEPT" ]) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", 0, [ "-m", "tcp", "-p", "tcp", "--dport", "333", "-j", "ACCEPT" ]) self.fw_direct.removeRule("ipv4", "filter", "direct_foo1", 1, [ "-m", "tcp", "-p", "tcp", "--dport", "334", "-j", "ACCEPT" ]) # Re-removing self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_direct.removeRule, "ipv4", "filter", "direct_foo1", 1, [ "-m", "tcp", "-p", "tcp", "--dport", "334", "-j", "ACCEPT" ]) ret = self.fw_direct.queryRule("ipv4", "filter", "direct_foo1", 1, [ "-m", "tcp", "-p", "tcp", "--dport", "334", "-j", "ACCEPT" ]) self.assertFalse(dbus_to_python(ret)) ret = self.fw_direct.getRules("ipv4", "filter", "direct_foo1") self.assertTrue(ret == []) def test_passthrough(self): self.fw_direct.passthrough("ipv4", [ "-t", "filter", "-N", "foobar" ]) #fw_direct.passthrough("ipv4", [ "-t", "filter", "-L" ]) def test_reload(self): self.fw.reload() if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(TestFirewallDInterfaceDirect) unittest.TextTestRunner(verbosity=2).run(suite) firewalld-0.4.4.6/src/tests/firewalld_rich.py000077500000000000000000000066561320241217000211250ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2013 Red Hat, Inc. # # Authors: # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # To use in git tree: PYTHONPATH=.. python firewalld-test.py import dbus from firewall.core.base import DEFAULT_ZONE_TARGET from firewall import config from firewall.config.dbus import * from firewall.client import FirewallClientZoneSettings from firewall.dbus_utils import dbus_to_python bus = dbus.SystemBus() dbus_obj = bus.get_object(config.dbus.DBUS_INTERFACE, config.dbus.DBUS_PATH_CONFIG) fw = dbus.Interface(dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE) fw_config = dbus.Interface(dbus_obj, dbus_interface=config.dbus.DBUS_INTERFACE_CONFIG) rule = ['rule service name=ftp audit limit value="1/m" accept ', 'rule protocol value=ah accept ', 'rule protocol value=esp accept '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone1", zone.settings) rule = ['rule family=ipv4 source address="192.168.0.0/24" service name=tftp log prefix=tftp level=info limit value=1/m accept'] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone2", zone.settings) rule = ['rule family=ipv4 source not address=192.168.0.0/24 service name=dns log prefix=dns level=info limit value=2/m accept '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone3", zone.settings) rule = ['rule family=ipv6 source address=1:2:3:4:6:: service name=radius log prefix=dns level=info limit value=3/m reject limit value=20/m '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone4", zone.settings) rule = ['rule family=ipv6 source address=1:2:3:4:5:: port port=4011 protocol=tcp log prefix="port 4011/tcp" level=info limit value=4/m drop '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone5", zone.settings) rule = ['rule family=ipv6 source address=1:2:3:4:6:: forward-port port=4011 protocol=tcp to-port=4012 to-addr=1::2:3:4:7 '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone6", zone.settings) rule = ['rule family=ipv4 source address=192.168.0.0/24 icmp-block name=source-quench log level=info prefix=source-quench limit value=4/m '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone7", zone.settings) rule = ['rule family=ipv6 source address=1:2:3:4:6:: icmp-block name=redirect log prefix=redirect level=info limit value=4/m '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone8", zone.settings) rule = ['rule family=ipv4 source address=192.168.1.0/24 masquerade ', 'rule family=ipv6 masquerade '] zone = FirewallClientZoneSettings() zone.setRichRules(rule) fw_config.addZone("zone9", zone.settings) firewalld-0.4.4.6/src/tests/firewalld_test.py000077500000000000000000000315621320241217000211510ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (C) 2010-2012 Red Hat, Inc. # # Authors: # Thomas Woerner # Jiri Popelka # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # To use in git tree: PYTHONPATH=.. python firewalld-test.py import dbus import sys import time import unittest from firewall.config import * from firewall.config.dbus import * from firewall.dbus_utils import dbus_to_python from pprint import pprint class TestFirewallD(unittest.TestCase): """ For testing of temporary changes, ie. those that disappear with restart: adding/removing interfaces to zones, setting/changing of default zone adding/removing of services, ports, forward ports, icmp blocks """ def setUp(self): unittest.TestCase.setUp(self) bus = dbus.SystemBus() dbus_obj = bus.get_object(DBUS_INTERFACE, DBUS_PATH) self.fw = dbus.Interface(dbus_obj, dbus_interface=DBUS_INTERFACE) self.fw_zone = dbus.Interface(dbus_obj, dbus_interface=DBUS_INTERFACE_ZONE) def test_get_setDefaultZone(self): old_zone = dbus_to_python(self.fw.getDefaultZone()) print ("\nCurrent default zone is '%s'" % old_zone) self.fw_zone.addInterface("", "foo") self.fw_zone.addInterface(old_zone, "bar") print ("Setting default zone to 'external'") self.fw.setDefaultZone("external") # make sure the default zone was properly set self.assertEqual(self.fw.getDefaultZone(), "external") # check that *only* foo interface was moved to new default zone self.assertTrue(self.fw_zone.queryInterface("external", "foo")) self.assertTrue(self.fw_zone.queryInterface(old_zone, "bar")) print ("Re-setting default zone back to '%s'" % old_zone) self.fw.setDefaultZone(old_zone) self.fw_zone.removeInterface("", "foo") self.fw_zone.removeInterface("", "bar") def test_zone_getActiveZones(self): interface = "baz" zone = "home" print ("\nAdding interface '%s' to '%s' zone" % (interface, zone)) self.fw_zone.addInterface(zone, interface) print ("Getting active zones: ") ret = self.fw_zone.getActiveZones() self.assertTrue(len(ret)>0) pprint (dbus_to_python(ret)) self.fw_zone.removeInterface(zone, interface) #cleanup def test_zone_getZones(self): z = self.fw_zone.getZones() print ("\nZones:"); pprint(dbus_to_python(z)) def test_zone_add_remove_queryInterface(self): interface = "foo" zone = "trusted" print ("\nAdding interface '%s' to '%s' zone" % (interface, zone)) ret = self.fw_zone.addInterface(zone, interface) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryInterface(zone, interface)) print ("Re-adding") self.assertRaisesRegexp(Exception, 'ZONE_ALREADY_SET', self.fw_zone.addInterface, zone, interface) zone = "block" print ("Re-adding interface '%s' to '%s' zone" % (interface, zone)) self.assertRaisesRegexp(Exception, 'ZONE_CONFLICT', self.fw_zone.addInterface, zone, interface) print ("Removing interface '%s' from '%s' zone" % (interface, zone)) self.assertRaisesRegexp(Exception, 'ZONE_CONFLICT', self.fw_zone.removeInterface, zone, interface) zone = "trusted" print ("Removing interface '%s' from '%s' zone" % (interface, zone)) ret = self.fw_zone.removeInterface(zone, interface) self.assertEqual(ret, zone) self.assertFalse(self.fw_zone.queryInterface(zone, interface)) print ("Re-removing") self.assertRaises(Exception, self.fw_zone.removeInterface, zone, interface) print ("Add again and remove interface '%s' from zone it belongs to" % interface) self.fw_zone.addInterface(zone, interface) self.assertTrue(self.fw_zone.queryInterface(zone, interface)) ret = self.fw_zone.removeInterface("", interface) self.assertEqual(ret, zone) self.assertFalse(self.fw_zone.queryInterface(zone, interface)) print ("Re-removing") self.assertRaises(Exception, self.fw_zone.removeInterface, "", interface) def test_zone_change_queryZone(self): interface = "foo" zone = "internal" print ("\nChanging zone of interface '%s' to '%s'" % (interface, zone)) ret = self.fw_zone.changeZone(zone, interface) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryInterface(zone, interface)) print ("Get zone of interface '%s': " % (interface)) ret = self.fw_zone.getZoneOfInterface(interface) self.assertEqual(ret, zone) print (dbus_to_python(ret)) self.fw_zone.removeInterface(zone, interface) #cleanup def test_zone_add_get_query_removeService(self): service = "samba" zone = "external" print ("\nAdding service '%s' to '%s' zone" % (service, zone)) ret = self.fw_zone.addService(zone, service, 0) self.assertEqual(ret, zone) print ("Re-adding") self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_zone.addService, zone, service, 0) print ("Get services of zone '%s'" % (zone)) ret = self.fw_zone.getServices(zone) self.assertTrue(len(ret)>0) pprint (dbus_to_python(ret)) print ("Removing service '%s' from '%s' zone" % (service, zone)) ret = self.fw_zone.removeService(zone, service) self.assertEqual(ret, zone) print ("Re-removing") self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_zone.removeService, zone, service) zone = "dmz" timeout = 2 print ("Adding timed service '%s' to '%s' zone, active for %d seconds" % (service, zone, timeout)) ret = self.fw_zone.addService(zone, service, timeout) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryService(zone, service)) time.sleep(timeout+1) print ("Checking if timeout has been working") self.assertFalse(self.fw_zone.queryService(zone, service)) def test_zone_add_get_query_removePort(self): port = "443" protocol="tcp" zone = "public" print ("\nAdding port '%s/%s' to '%s' zone" % (port, protocol, zone)) ret = self.fw_zone.addPort(zone, port, protocol, 0) self.assertEqual(ret, zone) print ("Re-adding port") self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_zone.addPort, zone, port, protocol, 0) print ("Get ports of zone '%s': " % (zone)) ret = self.fw_zone.getPorts(zone) self.assertTrue(len(ret)>0) pprint (dbus_to_python(ret)) print ("Removing port '%s/%s' from '%s' zone" % (port, protocol, zone)) ret = self.fw_zone.removePort(zone, port, protocol) self.assertEqual(ret, zone) print ("Re-removing") self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_zone.removePort, zone, port, protocol) port = "443-445" protocol="udp" zone = "dmz" timeout = 2 print ("Adding timed port '%s/%s' to '%s' zone, active for %d seconds" % (port, protocol, zone, timeout)) ret = self.fw_zone.addPort(zone, port, protocol, timeout) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryPort(zone, port, protocol)) time.sleep(timeout+1) print ("Checking if timeout has been working") self.assertFalse(self.fw_zone.queryPort(zone, port, protocol)) def test_zone_add_query_removeMasquerade(self): zone = "public" print ("\nAdd masquerade to '%s' zone" % (zone)) ret = self.fw_zone.addMasquerade(zone, 0) self.assertEqual(ret, zone) print ("Re-adding") self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_zone.addMasquerade, zone, 0) print ("Checking if masquerade is added to zone '%s'" % (zone)) self.assertTrue(self.fw_zone.queryMasquerade(zone)) print ("Remove masquerade from '%s' zone" % (zone)) ret = self.fw_zone.removeMasquerade(zone) self.assertEqual(ret, zone) print ("Re-adding") self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_zone.removeMasquerade, zone) zone = "dmz" timeout = 2 print ("Add timed masquerade to '%s' zone, active for %d seconds" % (zone, timeout)) ret = self.fw_zone.addMasquerade(zone, timeout) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryMasquerade(zone)) time.sleep(timeout+1) print ("Checking if timeout has been working") self.assertFalse(self.fw_zone.queryMasquerade(zone)) def test_zone_add_get_query_removeForwardPort(self): port = "443" protocol="tcp" toport = "441" toaddr = "192.168.0.2" zone = "public" print ("\nAdding forward port '%s/%s' to '%s:%s' to '%s' zone" % (port, protocol, toaddr, toport, zone)) ret = self.fw_zone.addForwardPort(zone, port, protocol, toport, toaddr, 0) self.assertEqual(ret, zone) print ("Re-adding") self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_zone.addForwardPort, zone, port, protocol, toport, toaddr, 0) print ("Get forward ports of zone '%s': " % (zone)) ret = self.fw_zone.getForwardPorts(zone) self.assertTrue(len(ret)>0) pprint (dbus_to_python(ret)) print ("Removing forward port '%s/%s' to '%s:%s' from '%s' zone" % (port, protocol, toaddr, toport, zone)) ret = self.fw_zone.removeForwardPort(zone, port, protocol, toport, toaddr) self.assertEqual(ret, zone) print ("Re-removing") self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_zone.removeForwardPort, zone, port, protocol, toport, toaddr) port = "443-445" protocol="udp" toport = "" toaddr = "192.168.0.3" zone = "dmz" timeout = 2 print ("Adding timed forward port '%s/%s' to '%s:%s' to '%s' zone, active for %d seconds" % (port, protocol, toaddr, toport, zone, timeout)) ret = self.fw_zone.addForwardPort(zone, port, protocol, toport, toaddr, timeout) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryForwardPort(zone, port, protocol, toport, toaddr)) time.sleep(timeout+1) print ("Checking if timeout has been working") self.assertFalse(self.fw_zone.queryForwardPort(zone, port, protocol, toport, toaddr)) def test_zone_add_get_query_removeIcmpBlock(self): icmp = "parameter-problem" zone = "external" print ("\nAdding icmp block '%s' to '%s' zone" % (icmp, zone)) ret = self.fw_zone.addIcmpBlock(zone, icmp, 0) self.assertEqual(ret, zone) print ("Re-adding") self.assertRaisesRegexp(Exception, 'ALREADY_ENABLED', self.fw_zone.addIcmpBlock, zone, icmp, 0) print ("Get icmp blocks of zone '%s': " % (zone)) ret = self.fw_zone.getIcmpBlocks(zone) self.assertTrue(len(ret)>0) pprint (dbus_to_python(ret)) print ("Removing icmp block '%s' from '%s' zone" % (icmp, zone)) ret = self.fw_zone.removeIcmpBlock(zone, icmp) self.assertEqual(ret, zone) print ("Re-removing") self.assertRaisesRegexp(Exception, 'NOT_ENABLED', self.fw_zone.removeIcmpBlock, zone, icmp) icmp = "redirect" zone = "dmz" timeout = 2 print ("Adding timed icmp block '%s' to '%s' zone, active for %d seconds: " % (icmp, zone, timeout)) ret = self.fw_zone.addIcmpBlock(zone, icmp, timeout) self.assertEqual(ret, zone) self.assertTrue(self.fw_zone.queryIcmpBlock(zone, icmp)) time.sleep(timeout+1) print ("Checking if timeout has been working: ") self.assertFalse(self.fw_zone.queryIcmpBlock(zone, icmp)) def test_reload(self): interface = "foo" zone = "work" self.fw_zone.addInterface(zone, interface) self.fw.reload() print ("\nChecking if interface remains in zone after service reload: ") self.assertTrue(self.fw_zone.queryInterface(zone, interface)) self.fw_zone.removeInterface(zone, interface) #cleanup if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(TestFirewallD) unittest.TextTestRunner(verbosity=2).run(suite) firewalld-0.4.4.6/zanata.xml000066400000000000000000000051071320241217000156270ustar00rootroot00000000000000 https://fedora.zanata.org/ firewalld master gettext sq ar as ast bal eu bn bn-IN brx bs br bg ca zh-CN zh-HK zh-TW kw kw-GB cs da nl en-GB eo et fi fr gl ka de el gu he hi hu is id ia it ja kn kk km ky ko lt nds mk mai ms ml mr mn ne nb nn or pa fa pl pt pt-BR ro ru sr sr@latin si sk sl es sv tg ta te bo tr uk ur wba cy lv kw@uccor kw@kkcor af am be hr de-CH th vi zu ilo nso tw yo anp