The safeties off are the method the sipx iso installs a system. Nothing is irreversible either.
Take a nice pill or finding someone else to pick on on, because I don't play that game. Have fun! ============================ Tony Graziano, Manager Telephone: 434.984.8430 Fax: 434.984.8431 Email: tgrazi...@myitdepartment.net LAN/Telephony/Security and Control Systems Helpdesk: Telephone: 434.984.8426 Fax: 434.984.8427 Helpdesk Contract Customers: http://www.myitdepartment.net/gethelp/ ----- Original Message ----- From: sipx-users-boun...@list.sipfoundry.org <sipx-users-boun...@list.sipfoundry.org> To: Discussion list for users of sipXecs software <sipx-users@list.sipfoundry.org> Sent: Fri Dec 10 12:22:05 2010 Subject: [sipx-users] Error when starting sipxecs 0.0.4.5.1 On Fri, 10 Dec 2010, ... wrote: > Make sure iptables is off. Is selinux on and enforcing? If > so, reverse that too (disabled). and ... followed up with yet another ready description on how to disable the safeties you know -- this is just a poor response all around ... I understand that the poster produces a lot of content. I know that he is an old bull in the pen here. I also see that he races to post first, and I feel that others do not answer as a result. I see that he carries lots of URLs in all his posts so that Google's spiders crawling through the mailing list archive will widely index his business because it seems to have a lot of links But quantity is not quality The response SHOULD have been to sharpen the issue if it was unclear, and describe a diagnostic flow so that one can BOTH have iptables security, and SElinux protections, AND a working system The question, trimmed to its essence: > I get this error: > (13)Permission denied: make_sock: could not bind to address [::]:8091 > > (13)Permission denied: make_sock: could not bind to address 0.0.0.0:8091 > > no listening sockets available, shutting down > > Unable to open log So the first question to know the answer to is: did the process start and persist? Check for this thus: # netstat -pant | grep 8091 If that command, which looks for a listening socket returns some content, the process is running and its name is shown If that command returns nothing, the process in question did not start, and we need to try to manually start it IN NO CASE does iptables PREVENT a process from starting as it is running in the kernel and blocking parts of the network stack from transiting packets I note in passing that it is a usual voodoo local folk wisdom in this project that one does not bind to ALL interfaces, [0.0.0.0] -- I do not know if this is the case or in play here, but note in passing that the usual practice ** here ** is to build to a specific interface, or more commonly a specific IP Such constraints usually indicate a problem in the underlying application [ISO layer 7] not being sufficiently mature to reply to the IP that it received a service request from, and to let the routing tables manage routing at the proper ISO layer Turning to how to amend iptables for socket based services: If one needs to have 8091/tcp open (or 8091/udp), OPEN IT PROPERLY Add to /etc/sysconfig/iptables the following entry: [herr...@elided iptables]$ diff -u iptables-ORIG iptables --- iptables-ORIG 2010-12-10 10:15:19.000000000 -0500 +++ iptables 2010-12-10 10:15:48.000000000 -0500 @@ -14,6 +14,8 @@ -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT +-A RH-Firewall-1-INPUT -p udp -m udp --dport 8091 -j ACCEPT +-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 8091 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 37 -j ACCEPT [herr...@elided iptables]$ and then as root run: # /sbin/service iptables restart The rules are of a common form across all Linux variants, and exhaustively documented. There is not any valid reason NOT to manage iptables rules generation and maintenance 'right' ================ As to SELinux, there is full logging running when the auditd and the restorecond are present. One can identify, and add rules on the fly, to progressively add 'permit rules' all SELinux based 'intercepts' Here is a sample script of general applicability, under the GPLv3+: [r...@elided bin]# cat selinux-fixup.sh #!/bin/sh # # selinux-fixup.sh # Copyright (c) 2010 R P herrold <i...@owlriver.com> # License: GPLv3+ # # Additively build SELinux rule sets to investigate what # a new application needs # export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin # # make sure we have all our tools, which may not install # in a stock CentOS 5 minimal installation rpm -q diffutils 2> /dev/null || yum -y -q install diffutils rpm -q audit 2> /dev/null || yum -y -q install policycoreutils rpm -q policycoreutils 2> /dev/null || yum -y -q install policycoreutils # /sbin/chkconfig auditd on /sbin/service auditd restart /sbin/chkconfig restorecond on /sbin/service restorecond restart # cd /root/bin/ # /bin/echo "A" /bin/touch oldlog /usr/bin/audit2allow -i denial-log > oldlog # # /bin/grep ftp /var/log/audit/audit.log* > /root/bin/ftp_audit.log /bin/grep "avc: denied" /var/log/audit/audit.log* > /root/bin/denial-log # # echo A # audit2allow -a -M ftpmirror # /bin/echo "B" /usr/bin/audit2allow -i denial-log -M deniallog # /bin/echo "C" /usr/sbin/semodule -i deniallog.pp # /bin/echo "D" /usr/bin/audit2allow -i denial-log > newlog /usr/bin/diff -u oldlog newlog # /bin/echo "E" /bin/cat deniallog.te # /bin/echo "F" # which is used iteratively, running the application, and when the candidate under test stops for 'mysterious' reasons (more about 'mysterious' later), re-running it to see if some new SELinux denial has occurred --- the 'diff' is designed to make it perfectly clear what the new denial was, and to add and apply the needed allow rule We don't KNOW IF there was a SELinux denial yet, and if so, what the denial was yet, as the sharpening question was not asked, but to wrap matters up To make a set of local allow rules permanent, see: man 8 semanage for the methodology for making such permanent and persistent once the full set are known But sometimes (here in my example case !! ) the fix NEEDS to be upstreamed so that others using FOSS gain from the fix -- let's examine that next ============================================ If the problem occurs in in a package from an upstream, one can 'file bugs' against the 'selinux' component, and that group are quite attentive to addressing such A run of that script looks like this [and in point of fact, at one customer's premise, there ARE some fixes needed with Red Hat's DHCP client and VSFTPD when loop mounted ISOs are used, that I need to file a couple of bugs on] [r...@elided bin]# ./selinux-fixup.sh diffutils-2.8.1-15.2.3.el5 audit-1.7.17-3.el5 policycoreutils-1.33.12-14.8.el5 Stopping auditd: [ OK ] Starting auditd: [ OK ] Shutting down restorecond: [ OK ] Starting restorecond: [ OK ] A B ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i deniallog.pp C D E module deniallog 1.0; require { type iso9660_t; type ftpd_t; type iptables_t; type initrc_t; class unix_stream_socket { read write }; class lnk_file getattr; class unix_dgram_socket { read write }; class dir { read getattr search }; class file { read lock getattr }; } #============= ftpd_t ============== allow ftpd_t iso9660_t:dir { read getattr search }; allow ftpd_t iso9660_t:file { read lock getattr }; allow ftpd_t iso9660_t:lnk_file getattr; #============= iptables_t ============== allow iptables_t initrc_t:unix_dgram_socket { read write }; allow iptables_t initrc_t:unix_stream_socket { read write }; F [r...@elided bin]# ... which rules are saying that iptables and ftp need help [r...@elided bin]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s a.b.c.0/24 --dport 21 -j ACCEPT # permit the north data center -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s a.b.c.0/24 --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT [r...@elided bin]# pretty bog standard, but for the: -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT general allow rule on a backside RFC-1918 network on that interface note: a.b.c.0/24 is a replacement I did for privacy purposes, as the specific values do not matter and the loop mounted ISO images [r...@elided bin]# cat /etc/mtab /dev/sda1 / ext3 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-i386-boot.iso /var/ftp/pub/mirror/redhat/rhel/loop/1 iso9660 ro,loop=/dev/loop0 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-i386-dvd.iso /var/ftp/pub/mirror/redhat/rhel/loop/2 iso9660 ro,loop=/dev/loop1 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-s390x-dvd.iso /var/ftp/pub/mirror/redhat/rhel/loop/3 iso9660 ro,loop=/dev/loop2 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-source-dvd1.iso /var/ftp/pub/mirror/redhat/rhel/loop/4 iso9660 ro,loop=/dev/loop3 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-source-dvd2.iso /var/ftp/pub/mirror/redhat/rhel/loop/5 iso9660 ro,loop=/dev/loop4 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-x86_64-boot.iso /var/ftp/pub/mirror/redhat/rhel/loop/6 iso9660 ro,loop=/dev/loop5 0 0 /var/ftp/pub/mirror/redhat/rhel/ISOS/rhel-server-6.0-x86_64-dvd.iso /var/ftp/pub/mirror/redhat/rhel/loop/7 iso9660 ro,loop=/dev/loop6 0 0 [r...@elided bin]# As a side note, I do not quite understand (it is a mystery to me) how Red Hat would have been able to test 'nightlies' for anaconda based FTP wire installs of loop mounted ISOs without that rule, but perhaps that case was not in their test coverage plan ================= SELinux has been around for eight years now I am told, and iptables longer (looking back to the ancestor packet filtering approaches (ipchains !!) under the 2.4 kernel and before) -- no business would run a box all 777 on permissions or on a root account with no password. This is not Dark Arts, or Black Magic, and one does not use voodoo methods of shaking a rubber chicken at such problems to solve them. Simply ripping out such protections is to be irresponsible. It is NOT proper sysadmin nor proper development I see that composing this piece took over two hours, but it is durable content and accurate on the topics of iptables and SELinux for this project. THAT is a better answer than snapping out a quick: turn off all the safeties reply, I submit -- Russ herrold -- end ================================== .-- -... ---.. ... -.- -.-- Copyright (C) 2010 R P Herrold herr...@owlriver.com My words are not deathless prose, but they are mine. _______________________________________________ sipx-users mailing list sipx-users@list.sipfoundry.org List Archive: http://list.sipfoundry.org/archive/sipx-users/ _______________________________________________ sipx-users mailing list sipx-users@list.sipfoundry.org List Archive: http://list.sipfoundry.org/archive/sipx-users/