@sunrise Napisano Luty 23, 2014 Zgłoszenie Share Napisano Luty 23, 2014 Łączysz się nie określając portu, zatem wypluwa Ci domyślnego Apachowego vhosta. Możesz albo zmienić 80 na coś innego w qlproxy.conf, albo w configu Apacha. Mylisz się na jednym porcie (tu 80) może "chodzić" kilka vhostów po to jest dyrektywa ServerName Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@Sorror Napisano Luty 23, 2014 Zgłoszenie Share Napisano Luty 23, 2014 Jasne, że może. Jako, że nie mam pojęcia czym jest DWS założyłem jednak, że może istnieć konflikt (np. jeśli serwowana jest osobna usługa na porcie z qlproxy.conf). @nikita: port możesz zmienić w qlproxy.conf, z :80 na np. 6283 i łączyć się przez proxy.diladele.lan:6283 Pokaż jeszcze co zwraca: sestatus Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 23, 2014 Autor Zgłoszenie Share Napisano Luty 23, 2014 Na wstępnie dodam, że wyłączyłem sieć bezprzewodową, żeby się nie oszukać z adresami. Tym samym pozostaje jeden adres: 192.168.1.100, którego używam aby otworzyć przeglądarkowe GUI Diladele. Jako że konfiguracja w pliku /etc/httpd/conf.d/qlproxy.conf jest dla apacha 2.2 a w f20 jest 2.4 to musisz zamiast Order deny,allow Allow from all wpisać Require all granted i przeładować apacha Świetnie, w końcu jakiś postęp! Udało się zalogować i przejrzałem możliwości konfiguracji. Domyślny ICAP Address (127.0.0.1) zmieniłem na automatycznie wykryty (i swoją drogą zalecany przez kreator) 192.168.1.100. ICAP Port to domyślnie 1344. Następnie dokonałem testowych zmian w subskrypcjach blokowania reklam. Wszystko byłoby OK, gdyby nie fakt niemożliwości przeładowania/zrestartowania servera ICAP, co de facto jest potrzebne do poprawnego wprowadzenia zmian. Wybrałem opcję "save and reload" i: Problem polega na tym, że lokalizacja /usr/sbin nie zawiera pliku "squid3", a plik o nazwie "squid". Wiedząc, że nie ma szans żeby to wypaliło, pomyślałem, że może zmiana nazwy pliku na "squid3" przyniesie jakieś postępy. O dziwo coś poszło do przodu - tutaj wklejka logu: http://wklej.org/id/1280932/ Oczywiście dostałem instrukcję jak zrobić to ręcznie: # /etc/init.d/qlproxy stop # service squid3 stop #/usr/sbin/squid3 -k parse # /etc/init.d/qlproxy start # service squid3 start Przy czym zamiast "service squid3 stop" (Failed to issue method call: Unit squid3.service not loaded) wpisałem "service squid stop". I na koniec: [root@new-host sbin]# service squid startRedirecting to /bin/systemctl start squid.serviceJob for squid.service failed. See 'systemctl status squid.service' and 'journalctl -xn' for details. I tutaj się chyba zaczyna coś walić. [root@new-host sbin]# service squid status Redirecting to /bin/systemctl status squid.service squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled) Active: failed (Result: exit-code) since nie 2014-02-23 16:34:38 CET; 1min 45s ago Process: 3021 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=203/EXEC) Process: 1116 ExecReload=/usr/sbin/squid $SQUID_OPTS -k reconfigure -f $SQUID_CONF (code=exited, status=0/SUCCESS) Process: 3082 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=203/EXEC) Process: 3077 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS) Main PID: 1018 (code=killed, signal=TERM) lut 23 16:34:38 new-host.home systemd[1]: Starting Squid caching proxy... lut 23 16:34:38 new-host.home systemd[1]: squid.service: control process exited, code=exited status=203 lut 23 16:34:38 new-host.home systemd[1]: Failed to start Squid caching proxy. lut 23 16:34:38 new-host.home systemd[1]: Unit squid.service entered failed state. Selinux jest wyłączony (zwraca disabled). Zastanawia mnie też kwestia połączenia "klienta" i mam tu pytanie w kwestii portu, ale do tego dojdę później, bo może sprawa sama się rozwiąże po nareperowaniu powyższego Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Luty 23, 2014 Zgłoszenie Share Napisano Luty 23, 2014 Zamiast zmieniać nazwę, utwórz dowiązanie symboliczne o nazwie squid3 do pliku squid. Jak zmieniłeś nazwę pliku to usługa squid.service nie ma prawa wystartować, bo skąd ma wiedzieć, że nazwa pliku się zmieniła. Podsumowując nigdy nie zmieniaj nazw plików pochodzących z pakietów rpm, inaczej czekają Cie tylko problemy. "Use the ln command Luke" jak rzekł Obi-Wan. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 23, 2014 Autor Zgłoszenie Share Napisano Luty 23, 2014 Dziękuję za informację. Utworzyłem dowiązanie symboliczne, ale dalej się wysypuje: stde: WARNING: Cannot write log file: /var/log/squid/cache.log stde: /var/log/squid/cache.log: Permission denied stde: messages will be sent to 'stderr'. Command '/usr/sbin/squid3 -k parse' succeeded Running command '/etc/init.d/qlproxy reload'... stdo: Reloading qlproxy configuration (via systemctl): [FAILED] stde: Failed to issue method call: Access denied Command '/etc/init.d/qlproxy reload' failed, exception 'return code 4 is not zero' Wcześniejsze kroki (aż do ostatniego na czerwono) są oznaczone na zielono ptaszkiem, ale widzę że już wcześniej następuje jakiś problem z dostępem do zapisu logu... Zawartość /etc/init.d/qlproxy: http://wklej.org/id/1281306/ Będę wdzięczny za porady. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Luty 23, 2014 Zgłoszenie Share Napisano Luty 23, 2014 Aby program działał pod fedorą musisz zmodyfikować plik /var/opt/quintolabs/qlproxy/console/config/service.py wcześniej zrób kopię. Oto patch --- service.py.orig 2014-01-13 21:58:14.000000000 +0100 +++ service.py 2014-02-23 22:13:50.000000000 +0100 @@ -62,8 +62,8 @@ def get_command(self, is_restart): if platform.system() != "FreeBSD": return [ - ["/etc/init.d/qlproxy", "reload"], - ["/etc/init.d/qlproxy", "restart"] + ["sudo", "/etc/init.d/qlproxy", "reload"], + ["sudo", "/etc/init.d/qlproxy", "restart"] ][is_restart] else: # this is FreeBSD, see if we are running in pfSense @@ -92,7 +92,7 @@ distrib = self.get_distrb() - if distrib in ['redhat', 'centos']: + if distrib in ['redhat', 'centos', 'fedora']: return [ ["/usr/bin/sudo", "/sbin/service", "squid", "reload"], ["/usr/bin/sudo", "/sbin/service", "squid", "restart"], @@ -108,7 +108,7 @@ return ["/usr/local/sbin/squid", "-k", "parse"] distrib = self.get_distrb() - if distrib in ['redhat', 'centos']: + if distrib in ['redhat', 'centos', 'fedora']: return ["/usr/sbin/squid", "-k", "parse"] return ["/usr/sbin/squid3", "-k", "parse"] @@ -118,7 +118,7 @@ return ["/usr/local/sbin/squid", "-v"] distrib = self.get_distrb() - if distrib in ['redhat', 'centos']: + if distrib in ['redhat', 'centos', 'fedora']: return ["/usr/sbin/squid", "-v"] return ["/usr/sbin/squid3", "-v"] Musisz zapisać go w katalogu /var/opt/quintolabs/qlproxy/console/config/ jako service.py.diff Następnie w tym samym katalogu wydajesz polecenie patch < service.py.diff i restartujesz apacha Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 24, 2014 Autor Zgłoszenie Share Napisano Luty 24, 2014 [root@new-host config]# patch < service.py.diff patching file service.py Hunk #1 FAILED at 62 (different line endings). Hunk #2 FAILED at 92 (different line endings). Hunk #3 FAILED at 108 (different line endings). Hunk #4 FAILED at 118 (different line endings). 4 out of 4 hunks FAILED -- saving rejects to file service.py.rej Zgaduję, że nie tak się to miało skończyć (?). Zawartość service.py.rej to dokładnie cały Twój cytat. Mimo wszystko po restarcie Apacha bez zmian. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Luty 24, 2014 Zgłoszenie Share Napisano Luty 24, 2014 Zgaduję, że nie tak się to miało skończyć (?). Zawartość service.py.rej to dokładnie cały Twój cytat. Mimo wszystko po restarcie Apacha bez zmian. Komunikat Hunk FAILED oznacza, że patch się nie nałożył, powodem są inne standardy zakończenia linii. W orginalnym pliku są windowsowe a w patchu unixowe. Możesz spróbować dodać do programu patch opcje -l lub --binary lub użyć polecenia unix2dos service.py.diff może pomoże . Jeżeli nie, musisz sam w edytorze w pliku service.py zamienić linie zaczynające się - na te zaczynające się + Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 24, 2014 Autor Zgłoszenie Share Napisano Luty 24, 2014 No to tak: patch -l < service.py.diff nie pykło. --binary również nie. Zmodyfikowałem więc service.py w następujący sposób (mam nadzieję, że wszystko ok): # # # import platform import subprocess from qlproxy.utils import * # # # class service_base: def restart(self, logger): self.run_command(logger, self.get_command(True)) def reload(self, logger): self.run_command(logger, self.get_command(False)) def run_command(self, logger, command): # log it logger.append("Running command '%s'..." % " ".join(command)) # we need info about standard handles in case of error stdout = None stderr = None try: process = subprocess.Popen(command, stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout, stderr = process.communicate() if process.returncode != 0: raise Exception("return code %d is not zero" % process.returncode) except Exception as e: self.dump(stdout, "stdo", logger) self.dump(stderr, "stde", logger) raise Exception("Command '%s' failed, exception '%s'" % (" ".join(command), e)) self.dump(stdout, "stdo", logger) self.dump(stderr, "stde", logger) # log success logger.append("Command '%s' succeeded" % (" ".join(command))) def dump(self, lines, prefix, logger): if lines is None: logger.append(prefix + ": <None>") else: for line in lines.splitlines(): logger.append("%s: %s" % (prefix, line)) # # # class service_qlproxy(service_base): def get_command(self, is_restart): if platform.system() != "FreeBSD": return [ # ["/etc/init.d/qlproxy", "reload"], # ["/etc/init.d/qlproxy", "restart"] ["sudo", "/etc/init.d/qlproxy", "reload"], ["sudo", "/etc/init.d/qlproxy", "restart"] ][is_restart] else: # this is FreeBSD, see if we are running in pfSense if environment().is_pfsense(): return [ ["/usr/local/etc/rc.d/qlproxyd.sh", "reload"], ["/usr/local/etc/rc.d/qlproxyd.sh", "restart"] ][is_restart] else: return [ ["service", "qlproxyd", "reload"], ["service", "qlproxyd", "restart"] ][is_restart] # # # class service_squid(service_base): def get_command(self, is_restart): if platform.system() == "FreeBSD": return [ ["sudo", "service", "squid", "reload"], ["sudo", "service", "squid", "restart"] ][is_restart] distrib = self.get_distrb() # if distrib in ['redhat', 'centos']: if distrib in ['redhat', 'centos', 'fedora']: return [ ["/usr/bin/sudo", "/sbin/service", "squid", "reload"], ["/usr/bin/sudo", "/sbin/service", "squid", "restart"], ][is_restart] return [ ["/usr/bin/sudo", "/usr/sbin/service", "squid3", "reload"], ["/usr/bin/sudo", "/usr/sbin/service", "squid3", "restart"], ][is_restart] def get_command_verify(self): if platform.system() == "FreeBSD": return ["/usr/local/sbin/squid", "-k", "parse"] distrib = self.get_distrb() # if distrib in ['redhat', 'centos']: if distrib in ['redhat', 'centos', 'fedora']: return ["/usr/sbin/squid", "-k", "parse"] return ["/usr/sbin/squid3", "-k", "parse"] def get_command_squid_version(self): if platform.system() == "FreeBSD": return ["/usr/local/sbin/squid", "-v"] distrib = self.get_distrb() # if distrib in ['redhat', 'centos']: if distrib in ['redhat', 'centos', 'fedora']: return ["/usr/sbin/squid", "-v"] return ["/usr/sbin/squid3", "-v"] def get_distrb(self): distrib = platform.dist()[0].lower() if distrib is None or distrib == '': distrib = platform.system().lower() return distrib def verify_config(self, logger): self.run_command(logger, self.get_command_verify()) def get_version(self, logger): self.run_command(logger, self.get_command_squid_version()) Po restarcie Apacha i 192.168.1.100: IndentationError at / unexpected indent (service.py, line 98) Request Method: GET Request URL: http://192.168.1.100/ Django Version: 1.5 Exception Type: IndentationError Exception Value: unexpected indent (service.py, line 98) Exception Location: /var/opt/quintolabs/qlproxy/console/config/views.py in <module>, line 25 Python Executable: /usr/bin/python Python Version: 2.7.5 Python Path: ['/var/opt/quintolabs/qlproxy/console', '/usr/lib/python2.7/site-packages/Django-1.5-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages'] Server time: Mon, 24 Feb 2014 12:51:56 -0600 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 24, 2014 Zgłoszenie Share Napisano Luty 24, 2014 Tak jak napisane: linia 98 niespodziewane wcięcie. if platform.system() == "FreeBSD": return [ ["sudo", "service", "squid", "reload"], ["sudo", "service", "squid", "restart"] ][is_restart] distrib = self.get_distrb() # if distrib in ['redhat', 'centos']: if distrib in ['redhat', 'centos', 'fedora']: return [ ["/usr/bin/sudo", "/sbin/service", "squid", "reload"], ["/usr/bin/sudo", "/sbin/service", "squid", "restart"], ][is_restart] Zwróć uwagę, że ten "if" poniżej komentarza powinien być na tym samym poziomie co ten wcześniejszy a jest wysunięty o 1 spację. O ile pamiętam w Pythonie to ma kolosalne znaczenie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 24, 2014 Autor Zgłoszenie Share Napisano Luty 24, 2014 Nawet tego nie dostrzegłem... Świetnie Panowie, rozwiązaliście mój problem i o ile mogę już skonfigurować Diladele po stronie serwera, to mam problem z poprawnym podłączeniem klientów. To nie jest wybitnie skomplikowane, ale przyczyna leży jeszcze po stronie konfiguracji systemu. ICAP Address: 192.168.1.100 ICAP Port: 1344 Podłączenie klientów ogranicza się do zmiany ustawień przeglądarki na proxy 192.168.1.100 oraz port 3128, ale niestety zwraca to błąd: ERROR The requested URL could not be retrieved The following error was encountered while trying to retrieve the URL: http://bing.com/ ICAP protocol error. System zwrócił wartość: [No Error] This means that some aspect of the ICAP communication failed. Some possible problems are: Serwer ICAP jest nieosiągalny. Odebrano błędną odpowiedź z serwera ICAP Gdzie mogę szukać przyczyny tego błędu komunikacji? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Luty 25, 2014 Zgłoszenie Share Napisano Luty 25, 2014 Co zwraca polecenie netstat -atpn |grep 1344 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Luty 26, 2014 Autor Zgłoszenie Share Napisano Luty 26, 2014 Co zwraca polecenie netstat -atpn |grep 1344 Takie polecenie nie zwraca nic... [root@new-host mmachnik]# netstat -atpn |grep 1344 [root@new-host mmachnik]# Cały netstat: http://wklej.org/id/1283906/ Tutaj kawałek error logu Diladele: http://wklej.org/id/1283904/ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Luty 26, 2014 Zgłoszenie Share Napisano Luty 26, 2014 Takie polecenie nie zwraca nic... [root@new-host mmachnik]# netstat -atpn |grep 1344 [root@new-host mmachnik]# To oznacza, że usługa qlproxy nie działa może przywróć adres taki jak był w oryginale czyli 127.0.0.1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
nikita Napisano Marzec 3, 2014 Autor Zgłoszenie Share Napisano Marzec 3, 2014 To oznacza, że usługa qlproxy nie działa może przywróć adres taki jak był w oryginale czyli 127.0.0.1 Hm... Wygląda na to, że się udało - zmiana ze 192.168.1.100 na domyślne 127.0.0.1 w konfiguracji Diladele, a w ustawieniach przeglądarki proxy ustawione na adres Fedory na porcie 3128. Reklamy są wycinane bardzo zgrabnie. Pozostaje dalsza konfiguracja serwera i instalacja certyfikatów SSL Wszystkim uczestniczącym w dyskusji bardzo dziękuję za pomoc. Proszę nie zamykać wątku, bo bardzo możliwe, że niebawem tutaj wrócę! Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się