[Kimchi-devel] [PATCH] Issue #456: Firewall ports are not open after firewall restart v2
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Jan 9 13:24:47 UTC 2015
On 08/01/2015 17:34, Ramon Medeiros wrote:
> Changes
>
> v2:
>
> Correct firewalld argument "--permanent"
> Extend changes to debian
>
>
>
> Instead of setup firewall and selinux configuration, kimchi will just
> add the files needed by this setup and describe to the user how security
> setup will be done in README.
>
> Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
> ---
> contrib/DEBIAN/postinst | 9 ---------
> contrib/DEBIAN/postrm | 7 -------
> contrib/kimchi.spec.fedora.in | 26 --------------------------
> docs/README.md | 25 +++++++++++++++++++++++++
> 4 files changed, 25 insertions(+), 42 deletions(-)
>
> diff --git a/contrib/DEBIAN/postinst b/contrib/DEBIAN/postinst
> index 5bca009..5a300bc 100755
> --- a/contrib/DEBIAN/postinst
> +++ b/contrib/DEBIAN/postinst
> @@ -17,12 +17,3 @@
> # You should have received a copy of the GNU Lesser General Public
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> -
> -set +e
> -service firewalld status >/dev/null 2>&1
> -if [ $? -ne 0 ]; then
> - service firewalld start >/dev/null 2>&1
> -fi
> -firewall-cmd --reload >/dev/null 2>&1
> -firewall-cmd --add-service kimchid >/dev/null 2>&1
> -set -e
Seems this file is empty now. So we can remove it.
> diff --git a/contrib/DEBIAN/postrm b/contrib/DEBIAN/postrm
> index 9f1d895..ef90b49 100755
> --- a/contrib/DEBIAN/postrm
> +++ b/contrib/DEBIAN/postrm
> @@ -26,10 +26,3 @@ case "$1" in
> rm -rf /var/log/kimchi /var/run/kimchi.pid /usr/share/kimchi/
> ;;
> esac
> -
> -set +e
> -service firewalld status >/dev/null 2>&1
> -if [ $? -eq 0 ]; then
> - firewall-cmd --remove-service kimchid >/dev/null 2>&1
> -fi
> -set -e
> diff --git a/contrib/kimchi.spec.fedora.in b/contrib/kimchi.spec.fedora.in
> index e75018e..92d3e49 100644
> --- a/contrib/kimchi.spec.fedora.in
> +++ b/contrib/kimchi.spec.fedora.in
> @@ -113,23 +113,6 @@ if [ $1 -eq 1 ] ; then
> /bin/systemctl daemon-reload >/dev/null 2>&1 || :
> fi
>
> -%if 0%{?with_systemd}
> -service firewalld status >/dev/null 2>&1
> -if [ $? -ne 0 ]; then
> - service firewalld start >/dev/null 2>&1
> -fi
> -# Add firewalld rules to open 8000 and 8001 port
> -firewall-cmd --reload >/dev/null 2>&1
> -firewall-cmd --add-service kimchid >/dev/null 2>&1
> -%else
> -# Add default iptable rules to open 8000 and 8001 port
> -iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
> -iptables -I INPUT -p tcp --dport 8001 -j ACCEPT
> -iptables -I INPUT -p tcp --dport 64667 -j ACCEPT
> -service iptables save >/dev/null 2>&1
> -%endif
> -# Add SELinux rules to "open" Kimchi ports
> -semanage permissive -a httpd_t
>
> %preun
>
> @@ -137,13 +120,6 @@ if [ $1 -eq 0 ] ; then
> # Package removal, not upgrade
> /bin/systemctl --no-reload disable kimchid.service > /dev/null 2>&1 || :
> /bin/systemctl stop kimchid.service > /dev/null 2>&1 || :
> - %if 0%{?with_systemd}
> - firewall-cmd --remove-service kimchid >/dev/null 2>&1 || :
> - %else
> - iptables -D INPUT -p tcp --dport 8000 -j ACCEPT || :
> - iptables -D INPUT -p tcp --dport 8001 -j ACCEPT || :
> - iptables -D INPUT -p tcp --dport 64667 -j ACCEPT || :
> - %endif
> fi
>
> exit 0
> @@ -154,8 +130,6 @@ if [ "$1" -ge 1 ] ; then
> /bin/systemctl try-restart kimchid.service >/dev/null 2>&1 || :
> fi
> exit 0
> -# Rollback SELinux rules
> -semanage permissive -d httpd_t
>
> %clean
> rm -rf $RPM_BUILD_ROOT
> diff --git a/docs/README.md b/docs/README.md
> index 823c856..c68f625 100644
> --- a/docs/README.md
> +++ b/docs/README.md
> @@ -142,6 +142,30 @@ Run
>
> $ sudo kimchid --host=0.0.0.0
>
> +If you cannot access Kimchi, take a look at this 2 points:
s/this/these
> +
> +1. Firewall
> +Kimchi uses ports 8000, 8001 and 64667. If you are using firewalld, there is a easy way to add the rules:
Kimchi uses *by default* the ports 8000, 80001 and 64667.
For system using firewalls, do:
> +
> +firewall-cmd --reload
> +firewall-cmd --add-service kimchid --permanent
> +
I think "firewall-cmd --reload" should be run after adding the new rules.
Also I think "firewall-cmd --add-service kimchid --permanent " will only
work if the user has Kimchi properly installed on system.
So I suggest to guide user to open port by port
sudo firewall-cmd --add-port 8000 --permanent
sudo firewall-cmd --add-port 8001 --permanent
sudo firewall-cmd --add-port 64667 --permanent
> +If you want to add directly to iptables:
> +
For system using iptables, do:
> +iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
> +iptables -I INPUT -p tcp --dport 8001 -j ACCEPT
> +iptables -I INPUT -p tcp --dport 64667 -j ACCEPT
> +service iptables save
Add "sudo" to the commands above
We still need to guide openSUSE users to open the firewall ports.
For openSUSE systems, do:
sudo /sbin/SuSEfirewall2 open EXT TCP 8000
sudo /sbin/SuSEfirewall2 open EXT TCP 8001
sudo /sbin/SuSEfirewall2 open EXT TCP 64667
I am not sure those are the right commands. Please, confirm.
> +
> +Don't forget to correctly save the rules.
> +
> +
> +2. SELinux
> +
> +Allow httpd_t context for Kimchi web server:
> +
> +semanage permissive -a httpd_t
> +
>
> Test
> ----
> @@ -197,6 +221,7 @@ is configured as:
> (2) Chown of export path as libvirt user, group as kvm group,
> In order to make sure all mapped user can get into the mount point.
>
> +
> Participating
> -------------
>
More information about the Kimchi-devel
mailing list