Mamy już zainstalowane Alfresco (w tym przypadku wersja 5 Community Edition + system operacyjny CentOS 7), więc nie będę zagłębiał się w szczegóły instalacji i jego wstępnej konfiguracji. Na chwile obecną chcemy to ustawić, żeby wyglądało po ludzku i dodatkowo to zabezpieczyć, oraz nie męczyć się z zawiłościami konfiguracyjnymi certyfikatów i zabezpieczenia katalogów w Tomcat.
W pierwszej kolejności wywalamy zawartość katalogu /opt/alfresco/tomcat/webapps/ROOT i tworzymy tam plik index.jsp o następującej zawartości:
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Page Redirection</title>
</head>
<body>
<center>
<h1>Page Redirection</h1>
</center>
<%
// New location to be redirected
String site = new String("https://alfresco.domain.com");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);.
%>
</body>
</html>
Co przekieruje nam każde zapytanie z głównego katalogu Tomcata na wskazaną przez nas lokalizację.
Następnie instalujemy apache i konfigurujemy https i mod_jk.so, które pełni role łącznika pomiędzy Apachem a Tomcatem
To instalujemy z paczki:
yum install httpd httpd-devel mod_ssl gcc
A to musimy teraz ściągnąć i skompilować - tomcat connectors:
wget http://ftp.ps.pl/pub/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz
rozpakowywujemy:
tar xzf tomcat-connectors-1.2.40-src.tar.gz
cd tomcat-connectors-1.2.40-src
cd native
i kompilujemy (warto sprawdzic wcześniej lokalizacje pliku apxs):
./configure --with-apxs=/usr/bin/apxs
make
cd apache-2.0
Kopiujemy skompilowany moduł do odpowiedniej lokalizacji:
cp mod_jk.so /etc/httpd/modules/
Następnie konfigurujemy Apache tak, żeby nasza instalacja Alfresco działała w bezpiecznym połączeniu. Musimy dodać następujące wpisy do /etc/htps/conf.d/ssl.conf:
LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /opt/alfresco/tomcat/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
LoadModule auth_basic_module modules/mod_auth_basic.so
<VirtualHost alfresco.domain.com:443>
ServerName alfresco.domain.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/certyfikat.cert
SSLCertificateKeyFile /etc/httpd/ssl/certyfikat.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize -ForwardDirectories
JkMount /* tomcat
JkMount / tomcat
<Location "/share">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/share/users
Require user some_user
</Location>.
JkMount /share/* tomcat
JkMount /share tomcat
<Location "/alfresco">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/alfresco/tomcat/webapps/alfresco/users
Require user some_user
</Location>.
JkMount /alfresco tomcat
JkMount /alfresco/* tomcat
</VirtualHost>
Tworzymy plik workera dla Tomcata(trzeba zwrócić uwagę na port czy wpisujemy odpowiedni):
/opt/alfresco/tomcat.conf/worker.properties:
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
Tworzymy pliki users w lokalizacjach:
/opt/alfresco/tomcat/webapps/share/
/opt/alfresco/tomcat/webapps/alfresco/
A jego zawartość powinna wyglądać:
some_user:haslo_htpasswd
Restartujemy Apache:
service https restart
Teraz za pomocą ulubionej przeglądarki sprawdzamy, czy nasza konfiguracja działa tak jak potrzeba i jak chcieliśmy. W ten sposób mamy działającego Tomcat`a na warunkach Apache. Możemy teraz np. dodatkowo ustawić firewalla i przepuścić ruch tylko dla portów 80 i 443 i całkowicie odciąć od świata porty Tomcat`a.
piątek, 19 września 2014
piątek, 12 września 2014
Problem z sshd - no such device
Siedzimy sobie grzebiemy w pliku sshd_config np zezwalamy nowemu userowi korzystać z dobrodziejstw logowania się przez demona sshd. Zapisujemy plik wydajemy polecenie:
/etc/init.d/sshd restart
Demon niby wstaje , ale ......... ssh nie działa. Patrzymy w logi a tam widzimy:
server sshd[11115]: fatal: daemon() failed: No such device
Sprawdzamy plik konfiguracyjny, cuda nie widy ...... ciągle nic.
Po małym rekonesansie w sieci znajdujemy winowajcę. Jest nim /dev/null.
Zeby naprawic problem wystarczy go skasowac i na nowo wygenerować:
rm /dev/null
mknod /dev/null c 1 3
sprawdżmy jeszcze czy plik ma odpowiednie prawa:
ls -l /dev/null
crw-rw-rw-. 1 root root 1, 3 Sep 11 13:54 /dev/null
to jest ok. Następnie restartujemy demona SSHD.
/etc/init.d/ssdh restart
Sprawdzamy czy proces sie odpalił np:
ps auxf | grep sshd
I jeśli mamy go na liście to problem z głowy.
/etc/init.d/sshd restart
Demon niby wstaje , ale ......... ssh nie działa. Patrzymy w logi a tam widzimy:
server sshd[11115]: fatal: daemon() failed: No such device
Sprawdzamy plik konfiguracyjny, cuda nie widy ...... ciągle nic.
Po małym rekonesansie w sieci znajdujemy winowajcę. Jest nim /dev/null.
Zeby naprawic problem wystarczy go skasowac i na nowo wygenerować:
rm /dev/null
mknod /dev/null c 1 3
sprawdżmy jeszcze czy plik ma odpowiednie prawa:
ls -l /dev/null
crw-rw-rw-. 1 root root 1, 3 Sep 11 13:54 /dev/null
to jest ok. Następnie restartujemy demona SSHD.
/etc/init.d/ssdh restart
Sprawdzamy czy proces sie odpalił np:
ps auxf | grep sshd
I jeśli mamy go na liście to problem z głowy.
wtorek, 9 września 2014
Jak wykonać polecenie w danym dniu tygodnie bez zaprzęgania Crona
Czasem zdarza się taka potrzeba, że przydało by się naszemu skryptowi działającemu w cronie, żeby bez dodatkowych skryptów zewnętrznych i następnych wpisów w crontabie zrobił coś dodatkowo np. we wtorek. Może przydać się przy np. skryptach backupowych, bądź innych wynalazkach. Poniżej mały skrypcik, który w środę będzie zmieniał nazwę pliku:
#!/bin/sh
TUE=`date | cut -c 1-3`
DATE=`date +%F`
DZIEN=`echo "Tue"`
if
[ "$TUE" == "$DZIEN" ]; then
mv test.txt test_$DATE.txt
exit 0;
else
echo "dzis nie Tue"
fi
#!/bin/sh
TUE=`date | cut -c 1-3`
DATE=`date +%F`
DZIEN=`echo "Tue"`
if
[ "$TUE" == "$DZIEN" ]; then
mv test.txt test_$DATE.txt
exit 0;
else
echo "dzis nie Tue"
fi
Subskrybuj:
Posty (Atom)