home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / modules / SuSEFirewallServices.ycp < prev    next >
Text File  |  2006-11-29  |  12KB  |  341 lines

  1. /**
  2.  * File:    modules/SuSEFirewallServices.ycp
  3.  * Package:    Firewall Services, Ports Aliases.
  4.  * Summary:    Definition of Supported Firewall Services and Port Aliases.
  5.  * Authors:    Lukas Ocilka <locilka@suse.cz>
  6.  *
  7.  * $Id: SuSEFirewallServices.ycp 33164 2006-09-27 08:42:24Z jsrain $
  8.  *
  9.  * Global Definition of Firewall Services
  10.  * Defined using TCP, UDP and RPC ports and IP protocols and Broadcast UDP
  11.  * ports. Results are cached, so repeating requests are answered faster.
  12.  */
  13.  
  14. {
  15.     module "SuSEFirewallServices";
  16.     textdomain "base";
  17.  
  18.     /* list of possibly conflict services because of sharing ports, for instance: "nis-server" and "nfs-server" */
  19.     list <string> possibly_conflict_services = ["nfs-server", "nis-server", "nfs-client", "nis-client"];
  20.  
  21.     /***
  22.      * Names assigned to Port and Protocol numbers can be found
  23.      * here:
  24.      *
  25.      * http://www.iana.org/assignments/protocol-numbers
  26.      * http://www.iana.org/assignments/port-numbers
  27.      */
  28.  
  29.     /**
  30.      *
  31.      * Format of SERVICES
  32.      *
  33.      * "service-id" : $[
  34.      *        "name"            : _("Service Name"),
  35.      *        "tcp_ports"        : list <tcp_ports>,
  36.      *        "udp_ports"        : list <udp_ports>,
  37.      *        "rpc_ports"        : list <rpc_ports>,
  38.      *        "ip_protocols"        : list <ip_protocols>,
  39.      *        "broadcast_ports"    : list <broadcast_ports>,
  40.      * ],
  41.      *
  42.      */
  43.  
  44.     define map <string, map<string, any> > SERVICES = $[
  45.     "http" : $[
  46.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  47.         "name"    : _("HTTP Server"),
  48.         "tcp_ports" : [ "http" ],
  49.     ],
  50.     "https" : $[
  51.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  52.         "name"    : _("HTTPS Server"),
  53.         "tcp_ports" : [ "https" ],
  54.     ],
  55.     "smtp" : $[
  56.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  57.         "name"    : _("Mail Server"),
  58.         "tcp_ports" : [ "smtp" ],
  59.     ],
  60.     "pop3" : $[
  61.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  62.         "name"    : _("POP3 Server"),
  63.         "tcp_ports" : [ "pop3" ],
  64.     ],
  65.     "pop3s" : $[
  66.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  67.         "name"    : _("POP3S Server"),
  68.         "tcp_ports" : [ "pop3s" ],
  69.     ],
  70.     "imap" : $[
  71.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  72.         "name"    : _("IMAP Server"),
  73.         "tcp_ports" : [ "imap" ],
  74.     ],
  75.     "imaps" : $[
  76.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  77.         "name"    : _("IMAPS Server"),
  78.         "tcp_ports" : [ "imaps" ],
  79.     ],
  80.     "samba-server" : $[
  81.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  82.         "name"    : _("Samba Server"),
  83.         "tcp_ports" : [ "netbios-ssn", "microsoft-ds" ],        // TCP: 139, 445
  84.         "udp_ports" : [ "netbios-ns", "netbios-dgm" ],        // UDP: 137, 138
  85.         "broadcast_ports" : [ "netbios-ns", "netbios-dgm" ],    // UDP: 137, 138
  86.     ],
  87.     "ssh" : $[
  88.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  89.         "name"    : _("SSH"),
  90.         "tcp_ports" : [ "ssh" ],
  91.     ],
  92.     "rsync" : $[
  93.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  94.         "name"    : _("Remote Synchronization"),
  95.         "tcp_ports" : [ "rsync" ],
  96.     ],
  97.     "dhcp-server" : $[
  98.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  99.         "name"    : _("DHCP Server"),
  100.         "udp_ports" : [ "bootps" ],
  101.         "broadcast_ports" : [ "bootps" ],
  102.     ],
  103.     "dhcp-client" : $[
  104.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  105.         "name"    : _("DHCP Client"),
  106.         "udp_ports" : [ "bootpc" ],
  107.     ],
  108.     "dns-server" : $[
  109.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  110.         "name"    : _("DNS Server"),
  111.         "tcp_ports" : [ "domain" ],
  112.         "udp_ports" : [ "domain" ],
  113.     ],
  114.     "nfs-client" : $[
  115.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  116.         "name"    : _("NFS Client"),
  117.         "rpc_ports" : [ "portmap", "status", "nlockmgr" ],
  118.     ],
  119.     "nfs-server" : $[
  120.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  121.         "name"    : _("NFS Server"),
  122.         "rpc_ports" : [ "portmap", "status", "nlockmgr", "mountd", "nfs", "nfs_acl" ],
  123.     ],
  124.     // Well, when nis-server is allowed in firewall, nis-client is allowed automatically too.
  125.     // nis-client's ports are the subset of nis-server ports.
  126.     "nis-client" : $[
  127.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  128.         "name"    : _("NIS Client"),
  129.         "rpc_ports" : [ "portmap", "ypbind" ],
  130.     ],
  131.     "nis-server" : $[
  132.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  133.         "name"    : _("NIS Server"),
  134.         "rpc_ports" : [ "portmap", "ypserv", "fypxfrd", "ypbind", "yppasswdd" ],
  135.     ],
  136.     // Default SUSE installation
  137.     "vnc" : $[
  138.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  139.         "name"    : _("Remote Administration"),
  140.         "tcp_ports" : [ "5801", "5901" ],
  141.     ],
  142.     "tftp" : $[
  143.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  144.         "name"    : _("TFTP Server"),
  145.         "udp_ports" : [ "tftp" ],
  146.     ],
  147.     // Internet Printing Protocol as a Server
  148.     "ipp-tcp" : $[
  149.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  150.         "name"    : _("IPP Server"),
  151.         "tcp_ports" : [ "ipp" ],
  152.     ],
  153.     // Internet Printing Protocol as a Client
  154.     // IPP Client needs to listen for broadcast messages
  155.     "ipp-udp" : $[
  156.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  157.         "name"    : _("IPP Client"),
  158.         "udp_ports" : [ "ipp" ],
  159.         "broadcast_ports" : [ "ipp" ],
  160.     ],
  161.     "ntp-server" : $[
  162.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  163.         "name"    : _("NTP Server"),
  164.         "udp_ports" : [ "ntp" ],
  165.         "broadcast_ports" : [ "ntp" ],
  166.     ],
  167.     "ldap" : $[
  168.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  169.         "name"    : _("LDAP Server"),
  170.         "tcp_ports" : [ "ldap" ],
  171.     ],
  172.     "ldaps" : $[
  173.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  174.         "name"    : _("LDAPS Server"),
  175.         "tcp_ports" : [ "ldaps" ],
  176.     ],
  177.     "ipsec" : $[
  178.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  179.         "name"    : _("IPsec"),
  180.         "udp_ports" : [ "isakmp", "ipsec-nat-t" ],
  181.         "ip_protocols" : [ "esp" ],
  182.     ],
  183.     "slp-daemon" : $[
  184.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  185.         "name"    : _("SLP Daemon"),
  186.         "tcp_ports" : [ "svrloc" ],
  187.         "udp_ports" : [ "svrloc" ],
  188.         "broadcast_ports" : [ "svrloc" ],
  189.     ],
  190.     // See bug #118200 for more information
  191.     "xdmcp" : $[
  192.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  193.         "name"    : _("Remote Access to Display Manager"),
  194.         "tcp_ports" : [ "xdmcp" ],
  195.         "udp_ports" : [ "xdmcp" ],
  196.         "broadcast_ports" : [ "xdmcp" ],
  197.     ],
  198.     // See bug #118196 for more information
  199.     "fam" : $[
  200.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  201.         "name"    : _("Remote File Alteration Monitor"),
  202.         "rpc_ports" : [ "sgi_fam" ],
  203.     ],
  204.     // requested by thofmann
  205.     "open-pbs" : $[
  206.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  207.         "name"    : _("Portable Batch System (PBS)"),
  208.         // /etc/services says: The following entries are invalid, but needed
  209.         "tcp_ports" : [ "pbs", "pbs_mom", "pbs_resmom", "pbs_sched" ],
  210.         "udp_ports" : [ "pbs_resmom" ],
  211.     ],
  212.     "mysql-server" : $[
  213.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  214.         "name"    : _("MySQL Remote Access"),
  215.         "tcp_ports"    : [ "mysql" ],
  216.     ],
  217.     "iscsi-server" : $[
  218.         // TRANSLATORS: Name of Service, can be used as check box, item in multiple selection box...
  219.         "name"    : _("iSCSI Target"),
  220.         "tcp_ports"    : [ "iscsi-target" ],
  221.     ],
  222.     ];
  223.  
  224.     /**
  225.      * Function returns if the service_id is a known (defined) service
  226.      *
  227.      * @param    string service_id
  228.      * @return    boolean if is known (defined)
  229.      */
  230.     global define boolean IsKnownService (string service_id) {
  231.     if (SERVICES[service_id]:$[] == $[]) {
  232.         return false;
  233.     } else {
  234.         return true;
  235.     }
  236.     }
  237.  
  238.     /**
  239.      * Function returns the map of supported (known) services.
  240.      *
  241.      * @return    map [service_id, service_name]
  242.      */
  243.     global define map <string, string> GetSupportedServices () {
  244.     map <string, string> supported_services = $[];
  245.  
  246.     foreach (string service_id, map <string, any> service_definition, SERVICES, {
  247.         supported_services[service_id] =
  248.         // TRANSLATORS: Name of unknown service. This should never happen, just for cases..., %1 is a requested service id like nis-server
  249.         (string) service_definition["name"]:sformat(_("Unknown service '%1'"), service_id);
  250.     });
  251.  
  252.     return supported_services;
  253.     }
  254.  
  255.     /**
  256.      * Function returns needed TCP ports for service
  257.      *
  258.      * @param    string service
  259.      * @return    list [string] of needed TCP ports
  260.      */
  261.     global define list <string> GetNeededTCPPorts (string service) {
  262.     return SERVICES[service,"tcp_ports"]:[];
  263.     }
  264.  
  265.     /**
  266.      * Function returns needed UDP ports for service
  267.      *
  268.      * @param    string service
  269.      * @return    list [string] of needed UDP ports
  270.      */
  271.     global define list <string> GetNeededUDPPorts (string service) {
  272.     return SERVICES[service,"udp_ports"]:[];
  273.     }
  274.  
  275.     /**
  276.      * Function returns needed RPC ports for service
  277.      *
  278.      * @param    string service
  279.      * @return    list [string] of needed RPC ports
  280.      */
  281.     global define list <string> GetNeededRPCPorts (string service) {
  282.     return SERVICES[service,"rpc_ports"]:[];
  283.     }
  284.  
  285.     /**
  286.      * Function returns needed IP protocols for service
  287.      *
  288.      * @param    string service
  289.      * @return    list [string] of needed IP protocols
  290.      */
  291.     global define list <string> GetNeededIPProtocols (string service) {
  292.     return SERVICES[service,"ip_protocols"]:[];
  293.     }
  294.  
  295.     /**
  296.      * Function returns needed ports allowing broadcast
  297.      *
  298.      * @param    string service
  299.      * @return    list [string] of needed broadcast ports
  300.      */
  301.     global define list <string> GetNeededBroadcastPorts (string service) {
  302.     return SERVICES[service,"broadcast_ports"]:[];
  303.     }
  304.  
  305.     /**
  306.      * Function returns needed ports and protocols for service.
  307.      * Function cares about if the service is defined or not.
  308.      *
  309.      * @param    string service
  310.      * @return    map [list, string] of needs
  311.      */    
  312.     global define map <string, list <string> > GetNeededPortsAndProtocols (string service) {
  313.     map <string, list <string> > needed = $[];
  314.  
  315.     if (! IsKnownService(service)) {
  316.         y2error("Uknown service '%1'", service);
  317.         return nil;
  318.     }
  319.  
  320.     needed["tcp_ports"]        = GetNeededTCPPorts(service);
  321.     needed["udp_ports"]        = GetNeededUDPPorts(service);
  322.     needed["rpc_ports"]        = GetNeededRPCPorts(service);
  323.     needed["ip_protocols"]        = GetNeededIPProtocols(service);
  324.     needed["broadcast_ports"]    = GetNeededBroadcastPorts(service);
  325.  
  326.     return needed;
  327.     }
  328.  
  329.     /**
  330.      * Function returns list of possibly conflicting services.
  331.      * Conflicting services are for instance nis-client and nis-server.
  332.      *
  333.      * @return    list [string] of conflicting services
  334.      */
  335.     global define list <string> GetPossiblyConflictServices () {
  336.     return possibly_conflict_services;
  337.     }
  338.  
  339. /* EOF */
  340. }
  341.