<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="http://it-flow.pl/feed.xml" rel="self" type="application/atom+xml" /><link href="http://it-flow.pl/" rel="alternate" type="text/html" /><updated>2024-11-15T10:19:53+01:00</updated><id>http://it-flow.pl/feed.xml</id><title type="html">it-flow.pl</title><subtitle>In a few words</subtitle><author><name>Karol Chrapek</name><email>kaarol@it-flow.pl</email></author><entry><title type="html">[En] Jmeter Load test inside kuberentes</title><link href="http://it-flow.pl/Jmeter-load-test-inside-kuberentes/" rel="alternate" type="text/html" title="[En] Jmeter Load test inside kuberentes" /><published>2018-09-15T09:53:00+02:00</published><updated>2018-09-15T09:53:00+02:00</updated><id>http://it-flow.pl/Jmeter-load-test-inside-kuberentes</id><content type="html" xml:base="http://it-flow.pl/Jmeter-load-test-inside-kuberentes/"><![CDATA[<p>I’m not a QA guy but sometimes I need to do a few load tests / checks for different
projects. I know that Jmeter is not a perfect tool but it can do the job.</p>

<p>Because I do not find any interesting project that easily ship Apache Jmeter inside Kubernetes.
Yes, there are a few concepts but each required to run 5-10 scripts to run test.
I decided to create home project that ship jmeter via helm chart in to kubernetes.
All required code was published on github <a href="https://github.com/kaarolch/kubernetes-jmeter">kuberentes-jmeter</a>.</p>

<p>Currently there are multiple scenarios of using jmeter with kubernetes:</p>
<ul>
  <li>Master and slaves are located on vms or bare metal machines. There are connected
to your kubernetes cluster. Unfortunately this case would be difficult when you would
like to test some internal components not exposed outside cluster (possible but
  additional configuration of ingress or port forwarding required).</li>
  <li>Master on your local station / vm. Slaves run inside kubernetes. This would
allow you to easily use Jmeter master UI but still this is not enough for long
testing or testing automation.</li>
  <li>Master and slaves ship to kubernetes and run on demand (kubernetes-jmeter)
is deployed this way.</li>
</ul>

<h2 id="requirements">Requirements</h2>

<ul>
  <li>Kubernetes cluster &gt; 1.10 or minikube instance</li>
  <li>Helm initialized on client and k8s cluster</li>
  <li>jmeter test cases’ files</li>
</ul>

<p><strong>Optionally:</strong></p>
<ul>
  <li>Grafana and InfluxDB instances, there is possibility to use own metric aggregation
stack.</li>
</ul>

<p>When everything is deployed from the
<a href="https://github.com/kaarolch/kubernetes-jmeter/tree/master/charts/jmeter">kubernetes-jmeter</a>
chart by default Grafana and InfluxDB pods are also deployed in the same namespace as jmeter.</p>

<p><img src="https://github.com/kaarolch/kubernetes-jmeter/raw/master/images/kubernetes-jmeter_architecture.png" alt="kubernetes-jmeter architecture" class="img-responsive" /></p>

<h2 id="installation">Installation</h2>
<p>Below there is a example run inside minikube. That deploy the whole stack with
Grafana and InfluxDB instance inside <code class="language-plaintext highlighter-rouge">default</code> namespace.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone git@github.com:kaarolch/kubernetes-jmeter.git
cd kubernetes-jmeter/charts/jmeter
helm dep update
helm install -n test ./
</code></pre></div></div>
<p>There is possibility to provide custom value yaml with <code class="language-plaintext highlighter-rouge">-f</code> flag.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>helm install install -n test ./ -f my_values.yaml
</code></pre></div></div>
<p>More about charts’ values could be found here:</p>
<ul>
  <li><a href="https://github.com/kaarolch/kubernetes-jmeter/blob/master/README.md#configuration">kubernetes-jmeter</a></li>
  <li><a href="https://github.com/helm/charts/blob/master/stable/grafana/README.md#configuration">Grafana</a></li>
  <li><a href="https://github.com/helm/charts/blob/master/stable/influxdb/values.yaml">InfluDB</a></li>
</ul>

<p>The command deploys Jmeter on the Kubernetes cluster in the <a href="https://github.com/kaarolch/kubernetes-jmeter/blob/master/charts/jmeter/values.yaml">default</a> value yaml.</p>

<blockquote>
  <p><strong>Tip</strong>: List all releases using <code class="language-plaintext highlighter-rouge">helm list</code></p>
</blockquote>

<p>If you change deployment name (<code class="language-plaintext highlighter-rouge">-n test</code>) please update Grafana datasource influx
<code class="language-plaintext highlighter-rouge">url</code> inside your custom values.yaml files.</p>

<p>Kuberentes-jmeter could be deployed without Grafana and InfluxDB. Useful when the
metric collection stack is already deployed.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>helm install install -n test ./ --set grafana.enabled=false,influxdb.enabled=false
</code></pre></div></div>

<h3 id="results">Results</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>✘ karol@albert &gt; helm status test
LAST DEPLOYED: Sat Sep 15 11:29:38 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==&gt; v1/Secret
NAME          TYPE    DATA  AGE
test-grafana  Opaque  3     1m

==&gt; v1/Service
NAME               TYPE       CLUSTER-IP    EXTERNAL-IP  PORT(S)             AGE
test-grafana       ClusterIP  10.98.160.66  &lt;none&gt;       80/TCP              1m
test-influxdb      ClusterIP  10.96.254.63  &lt;none&gt;       8086/TCP,2003/TCP   1m
test-jmeter-slave  ClusterIP  None          &lt;none&gt;       1099/TCP,60001/TCP  1m

==&gt; v1beta2/Deployment
NAME          DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
test-grafana  1        1        1           0          1m

==&gt; v1beta1/PodSecurityPolicy
NAME          DATA   CAPS      SELINUX   RUNASUSER  FSGROUP   SUPGROUP  READONLYROOTFS  VOLUMES
test-grafana  false  RunAsAny  RunAsAny  RunAsAny   RunAsAny  false     configMap,emptyDir,projected,secret,downwardAPI,persistentVolumeClaim

==&gt; v1/Pod(related)
NAME                                 READY  STATUS             RESTARTS  AGE
test-grafana-8698cfff94-gc576        0/1    Running            0         1m
test-influxdb-6dbb46d956-2c754       0/1    ContainerCreating  0         1m
test-jmeter-master-84b7c6d545-8t5rz  0/1    ContainerCreating  0         1m
test-jmeter-slave-b6675b7b7-2llh4    0/1    ContainerCreating  0         1m
test-jmeter-slave-b6675b7b7-9d89p    0/1    ContainerCreating  0         1m

==&gt; v1/Deployment
NAME                DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
test-jmeter-master  1        1        1           0          1m
test-jmeter-slave   2        2        2           0          1m

==&gt; v1/ConfigMap
NAME           DATA  AGE
test-grafana   2     1m
test-influxdb  1     1m

==&gt; v1/ServiceAccount
NAME          SECRETS  AGE
test-grafana  1        1m

==&gt; v1/ClusterRole
NAME                      AGE
test-grafana-clusterrole  1m

==&gt; v1/ClusterRoleBinding
NAME                             AGE
test-grafana-clusterrolebinding  1m

==&gt; v1beta1/Role
NAME          AGE
test-grafana  1m

==&gt; v1beta1/RoleBinding
NAME          AGE
test-grafana  1m

==&gt; v1beta1/Deployment
NAME           DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
test-influxdb  1        1        1           0          1m


NOTES:
KUBERNETES JMETER

Services deployed to default namespace.
Jmester master deployment scheduled test-jmeter-master but tests need to run manually.

InfluxDB

Api url:http://test-influxdb.default.svc.cluster.local:8086
Graphite for jmeter config:
-Host: test-influxdb.default.svc.cluster.local
-Port: 2003
-RootMetrixPrefix [influx database]: jmeter
Grafana
Grafan is available inside Kuberentes cluster via: http://test-grafana.default.svc.cluster.local:3000
User: admin
Password: `kubectl -n default get secrets test-grafana -o 'go-template={ {index .data "admin-password"} }' | base64 -d`
</code></pre></div></div>

<h2 id="run-sample-test">Run sample test</h2>

<h3 id="manual-run">Manual run</h3>
<p>Copy <a href="https://github.com/kaarolch/kubernetes-jmeter/blob/master/examples/simple_test.jmx">example</a> test to jmeter master pod</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>kubectl cp examples/simple_test.jmx $(kubectl get pod -l "app=jmeter-master" -o jsonpath='{.items[0].metadata.name}'):/test/

</code></pre></div></div>
<p>Run tests</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>kubectl exec  -it $(kubectl get pod -l "app=jmeter-master" -o jsonpath='{.items[0].metadata.name}') -- sh -c 'ONE_SHOT=true; /run-test.sh'
</code></pre></div></div>

<p>By default jmeter run in manual mode, all test need to be trigger by operator
or additional service like jenkins job.
If tests are loaded from config map, the jmeter master could run them automatically.
In this case chart attribute <code class="language-plaintext highlighter-rouge">oneShotTest</code> need to be set to <code class="language-plaintext highlighter-rouge">true</code>.</p>

<p><strong>Remember that each restart of jmeter-master would restart test when oneShotTest==true</strong></p>

<h3 id="results-1">Results</h3>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>karol@albert &gt; kubectl exec  -it $(kubectl get pod -l "app=jmeter-master" -o jsonpath='{.items[0].metadata.name}') -- sh -c 'ONE_SHOT=true; /run-test.sh'
Sep 15, 2018 9:47:16 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Creating summariser &lt;summary&gt;
Created the tree successfully using /test/simple_test.jmx
Configuring remote engine: 172.17.0.15
Configuring remote engine: 172.17.0.18
Starting remote engines
Starting the test @ Sat Sep 15 09:47:17 GMT 2018 (1537004837319)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary +    403 in 00:00:12 =   32.8/s Avg:   284 Min:   156 Max:  1643 Err:     0 (0.00%) Active: 16 Started: 16 Finished: 0
summary +   1197 in 00:00:18 =   65.8/s Avg:   248 Min:   150 Max:  1307 Err:     0 (0.00%) Active: 0 Started: 16 Finished: 16
summary =   1600 in 00:00:30 =   52.5/s Avg:   257 Min:   150 Max:  1643 Err:     0 (0.00%)
Tidying up remote @ Sat Sep 15 09:47:50 GMT 2018 (1537004870310)
... end of run
</code></pre></div></div>

<h2 id="summary">Summary</h2>
<p>This project is done during my spare time so each new feature, bugs fixing is done
when I have a one or two hours of spare time. If you see that something could be
fixed or changed create an issue or pull request.</p>

<p>I’m still working on a few new features, they could be found in <a href="https://github.com/kaarolch/kubernetes-jmeter#to-do">github</a></p>]]></content><author><name>Karol Chrapek</name><email>kaarol@it-flow.pl</email></author><category term="Jmeter" /><category term="Kubernetes" /><category term="Helm" /><category term="Load tests" /><summary type="html"><![CDATA[Jmeter load test automation inside kubernetes deployed via helm chart.]]></summary></entry><entry><title type="html">[En] Minikube &amp;amp;&amp;amp; Fedora 27 - failed to start after reboot</title><link href="http://it-flow.pl/Minikube-failed-to-start-after-reboot-fedora/" rel="alternate" type="text/html" title="[En] Minikube &amp;amp;&amp;amp; Fedora 27 - failed to start after reboot" /><published>2018-08-26T21:43:00+02:00</published><updated>2018-08-26T21:43:00+02:00</updated><id>http://it-flow.pl/Minikube-failed-to-start-after-reboot-fedora</id><content type="html" xml:base="http://it-flow.pl/Minikube-failed-to-start-after-reboot-fedora/"><![CDATA[<p>Install minikube was finished, everything was working fine. Next day command <code class="language-plaintext highlighter-rouge">minikube start --vm-driver kvm2</code> return error:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Starting local Kubernetes v1.10.0 cluster...
Starting VM...
E0826 21:48:31.660132    8562 start.go:174] Error starting host: Error starting stopped host: Error creating  Message='Requested operation is not valid: network 'minikube-net' is not active').

 Retrying.
E0826 21:48:31.660261    8562 start.go:180] Error starting host:  Error starting stopped host: Error creating VM: virError(Code=55, Domain=19, Message='Requested operation is not valid: network 'minikube-net' is not active')

</code></pre></div></div>
<p>Problem: Libvirt was not activated after restart. Simple workaround :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo virsh net-start minikube-net &amp;&amp; sudo virsh net-autostart minikube-net
</code></pre></div></div>]]></content><author><name>Karol Chrapek</name><email>kaarol@it-flow.pl</email></author><category term="Minikube" /><category term="Kubernetes" /><category term="HomeLab" /><summary type="html"><![CDATA[Install minikube was finished, everything was working fine. Next day command minikube start --vm-driver kvm2 return error: ```` Starting local Kubernetes v1.10.0 cluster… Starting VM… E0826 21:48:31.660132 8562 start.go:174] Error starting host: Error starting stopped host: Error creating Message=’Requested operation is not valid: network ‘minikube-net’ is not active’).]]></summary></entry><entry><title type="html">[En] Mounting directory inside container and SELinux</title><link href="http://it-flow.pl/en-mounting-directory-inside-container/" rel="alternate" type="text/html" title="[En] Mounting directory inside container and SELinux" /><published>2017-06-05T22:06:00+02:00</published><updated>2017-06-05T22:06:00+02:00</updated><id>http://it-flow.pl/en-mounting-directory-inside-container</id><content type="html" xml:base="http://it-flow.pl/en-mounting-directory-inside-container/"><![CDATA[<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://www.docker.com/sites/default/files/whale_0.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="472" data-original-width="520" height="160" src="https://www.docker.com/sites/default/files/whale_0.png" width="200" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Picture from&nbsp;<a href="http://www.docker.com/">www.docker.com</a></td></tr></tbody></table>Using CoreOS for daily basic sometimes lull you in a false sense of security. Everything or almost everything is working and you don't care what is behind the magic. Switching the system from time to time could be painful. Especially when you come back to CentOS or RHEL and you don't want to disable SELinux. Below one of problems that you can hit when you mount folder inside container.<br /><br />Problem was quite trivial:<br />I would like to run the docker that will map the journal folder (/run/systemd/journal) as a docker volume for my image. Unfortunately after ran:<br /><pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">docker run \<br />  -v /run/systemd/journal:/run/systemd/journal:ro \<br />  --name journal-test</code></pre>I've got a <i>Permission denied</i> in the journalctl. Fortunately in man for docker-run everything is very clearly described:<br /><script src="https://gist.github.com/kaarolch/474c1fd9eb5cf6a0b68ed61f47f32a60.js"></script>So the solution was to run docker with the :z option provided:<br /><pre style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">docker run \<br />  -v /run/systemd/journal:/run/systemd/journal:ro,z \<br />  --name journal-test</code></pre>Please remember that the ro and z should be separated by comma.<br />After some more investigation I found the post created by SELinux guru <a href="http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/">Using Volumes with Docker can Cause Problems with SELinux</a>. There is quite nice explanation of labels used by the docker and how the suffix <b>:z</b> and <b>:Z</b> works.]]></content><author><name>kaarol</name></author><category term="SELinux" /><category term="docker" /><category term="CentOS" /><summary type="html"><![CDATA[Picture from&nbsp;www.docker.comUsing CoreOS for daily basic sometimes lull you in a false sense of security. Everything or almost everything is working and you don't care what is behind the magic. Switching the system from time to time could be painful. Especially when you come back to CentOS or RHEL and you don't want to disable SELinux. Below one of problems that you can hit when you mount folder inside container.Problem was quite trivial:I would like to run the docker that will map the journal folder (/run/systemd/journal) as a docker volume for my image. Unfortunately after ran:docker run \ -v /run/systemd/journal:/run/systemd/journal:ro \ --name journal-testI've got a Permission denied in the journalctl. Fortunately in man for docker-run everything is very clearly described:So the solution was to run docker with the :z option provided:docker run \ -v /run/systemd/journal:/run/systemd/journal:ro,z \ --name journal-testPlease remember that the ro and z should be separated by comma.After some more investigation I found the post created by SELinux guru Using Volumes with Docker can Cause Problems with SELinux. There is quite nice explanation of labels used by the docker and how the suffix :z and :Z works.]]></summary></entry><entry><title type="html">[PL] Polarr instalacja na Fedorze</title><link href="http://it-flow.pl/pl-polarr-instalacja-na-fedorze/" rel="alternate" type="text/html" title="[PL] Polarr instalacja na Fedorze" /><published>2016-11-13T15:03:00+01:00</published><updated>2016-11-13T15:03:00+01:00</updated><id>http://it-flow.pl/pl-polarr-instalacja-na-fedorze</id><content type="html" xml:base="http://it-flow.pl/pl-polarr-instalacja-na-fedorze/"><![CDATA[<div style="text-align: justify;"><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody><tr><td class="tr-caption" style="text-align: center;">Polarr</td></tr></tbody></table>Ostatnimi czasy szukałem jakiegoś przyjemnego narzędzia do prostej obróbki zdjęć, który będę mógł uruchomić na kilku różnych systemach. Po kilku zapytaniach google wyrzuciło link do programu <a href="https://www.polarr.co/?homepage=true">Polarr</a>. Aplikacji jest dość intuicyjna i stosunkowo przyjemna wizualnie.&nbsp;</div><div style="text-align: justify;"><a name='more'></a><br /></div><div style="text-align: justify;">Wersja darmowa wystarcza do prostego i szybkiego kadrowania zdjęć lub zmian podstawowych efektów jak nasycenie kolorów, kontrast, itd. Jeśli ktoś chce wesprzeć twórców to za 9,90$ można zakupić licencje na trzy systemy. W wersji płatnej dodatkowo dostajemy kilka dodatkowych rzeczy: zestaw dodatkowych filtrów, zbiorczy eksport zdjęć i możliwość tworzenia własnych filtrów.&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Aplikacja jest dostępna dla &nbsp;kilku rodzin systemów. Niestety dla Linuksa twórcy dostarczają tylko paczkę deb. Jednak można ją stosunkowo prosto uruchomić na Fedorze. W tym celu należy wykonać poniższe kroki:&nbsp;</div><div style="text-align: justify;"></div><ul><li>Zainstalować aplikację do rozpakowywania paczek deb. W moim przypadku z pomocą przyszedł <i>alien,</i>&nbsp;którego czasem używam do prostej konwersji paczek deb do rpm i vice versa.&nbsp;</li><ul><li><b style="text-align: center;">sudo dnf install alien</b></li></ul><li>Pobrać ostatnia wersje programu:&nbsp;</li><ul><li><b style="text-align: center;">wget&nbsp;https://s3-us-west-2.amazonaws.com/polarrelectron/ubuntu/polarr_1.0.0-1_amd64.de</b><span style="text-align: center;">b</span></li></ul><li><div style="text-align: justify;">Następnie rozpakowujemy paczkę</div></li><ul><li><div style="text-align: justify;"><b style="text-align: center;">alien -g polarr_1.0.0-1_amd64.deb</b></div></li></ul><li>Kopiujemy zawartość katalogu <span style="text-align: center;">./</span><span style="text-align: center;">polarr-1.0.0.orig/usr/share do /usr/share:</span></li><ul><li style="text-align: left;"><b><span style="text-align: center;">cp -r ./</span><span style="text-align: center;">polarr-1.0.0.orig/usr/share /usr/</span></b></li></ul><li>Tworzymy link symboliczny w /usr/bin/:</li><ul><li><b>ln -s&nbsp;/usr/share/polarr/Polarr /usr/bin/polarr</b></li></ul><li>Teraz za pomocą komendy <b>polarr</b> możemy uruchomić edytor.&nbsp;</li></ul><div style="text-align: justify;">Uwaga konwersja DEB na RPM za pomocą alien działa dobrze, jednak potem możecie napiotkać na problem braku zależności <i>libffmpeg.so.</i> Niestety doinstalowania odpowiednich paczek, które zawierały <i>libffmpeg.so</i> wyglądało różnie na kolejnych wersjach Fedory, dlatego wolałem ręczne skopiowanie binarek, tak by nie być uzależnionym od zmian w dodatkowych paczkach. Przy okazji bibliotek libffmpeg.so jest dołączona przez twórców w paczce. &nbsp;&nbsp;</div><br /><div style="text-align: justify;"><br /></div>Poniżej prosty skrypt, który pozwala na instalacje ostatniej wersji polarr'a.   <script src="https://gist.github.com/kaarolch/de12c094b1ebb9583853d01b92937ce5.js"></script>]]></content><author><name>kaarol</name></author><category term="Tools" /><category term="Fedora" /><summary type="html"><![CDATA[PolarrOstatnimi czasy szukałem jakiegoś przyjemnego narzędzia do prostej obróbki zdjęć, który będę mógł uruchomić na kilku różnych systemach. Po kilku zapytaniach google wyrzuciło link do programu Polarr. Aplikacji jest dość intuicyjna i stosunkowo przyjemna wizualnie.&nbsp;Wersja darmowa wystarcza do prostego i szybkiego kadrowania zdjęć lub zmian podstawowych efektów jak nasycenie kolorów, kontrast, itd. Jeśli ktoś chce wesprzeć twórców to za 9,90$ można zakupić licencje na trzy systemy. W wersji płatnej dodatkowo dostajemy kilka dodatkowych rzeczy: zestaw dodatkowych filtrów, zbiorczy eksport zdjęć i możliwość tworzenia własnych filtrów.&nbsp;Aplikacja jest dostępna dla &nbsp;kilku rodzin systemów. Niestety dla Linuksa twórcy dostarczają tylko paczkę deb. Jednak można ją stosunkowo prosto uruchomić na Fedorze. W tym celu należy wykonać poniższe kroki:&nbsp;Zainstalować aplikację do rozpakowywania paczek deb. W moim przypadku z pomocą przyszedł alien,&nbsp;którego czasem używam do prostej konwersji paczek deb do rpm i vice versa.&nbsp;sudo dnf install alienPobrać ostatnia wersje programu:&nbsp;wget&nbsp;https://s3-us-west-2.amazonaws.com/polarrelectron/ubuntu/polarr_1.0.0-1_amd64.debNastępnie rozpakowujemy paczkęalien -g polarr_1.0.0-1_amd64.debKopiujemy zawartość katalogu ./polarr-1.0.0.orig/usr/share do /usr/share:cp -r ./polarr-1.0.0.orig/usr/share /usr/Tworzymy link symboliczny w /usr/bin/:ln -s&nbsp;/usr/share/polarr/Polarr /usr/bin/polarrTeraz za pomocą komendy polarr możemy uruchomić edytor.&nbsp;Uwaga konwersja DEB na RPM za pomocą alien działa dobrze, jednak potem możecie napiotkać na problem braku zależności libffmpeg.so. Niestety doinstalowania odpowiednich paczek, które zawierały libffmpeg.so wyglądało różnie na kolejnych wersjach Fedory, dlatego wolałem ręczne skopiowanie binarek, tak by nie być uzależnionym od zmian w dodatkowych paczkach. Przy okazji bibliotek libffmpeg.so jest dołączona przez twórców w paczce. &nbsp;&nbsp;Poniżej prosty skrypt, który pozwala na instalacje ostatniej wersji polarr'a.]]></summary></entry><entry><title type="html">[EN] Simple LDAP dump script</title><link href="http://it-flow.pl/simple-ldap-dump-example/" rel="alternate" type="text/html" title="[EN] Simple LDAP dump script" /><published>2016-01-16T14:11:00+01:00</published><updated>2016-01-16T14:11:00+01:00</updated><id>http://it-flow.pl/simple-ldap-dump-example</id><content type="html" xml:base="http://it-flow.pl/simple-ldap-dump-example/"><![CDATA[<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="https://upload.wikimedia.org/wikipedia/en/c/c7/OpenLDAP-logo.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="78" src="https://upload.wikimedia.org/wikipedia/en/c/c7/OpenLDAP-logo.png" width="200" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">source: wikimedia.org</td></tr></tbody></table>A few days ago my friend ask me if I can send him some simple ldap dump script. I have one old script that I made a year ago that I use to backup my home media center LDAP instance. Bash + a few standard Linux and OpenLdap tools.<br /><a name='more'></a><br /><br /><br /><br /><script src="https://gist.github.com/kaarolch/25ef6536d774ca562f25.js"></script> Comments:<br /><br /><ul><li>Main idea: create simple script that will store recent backups for a few days.&nbsp;</li><li>All old backups should be remove after $RETENTION time ( in days).</li><li>Slapcat could be done in online mode but you can have a problem with dump consistency.</li><li>Probably in your lab you don't need to kill all the processes that have something in common with slapd (kill section lines from 15-21).</li></ul>]]></content><author><name>kaarol</name></author><category term="Backup" /><category term="OpenLdap" /><category term="Open Source" /><category term="Bash script" /><summary type="html"><![CDATA[source: wikimedia.orgA few days ago my friend ask me if I can send him some simple ldap dump script. I have one old script that I made a year ago that I use to backup my home media center LDAP instance. Bash + a few standard Linux and OpenLdap tools. Comments:Main idea: create simple script that will store recent backups for a few days.&nbsp;All old backups should be remove after $RETENTION time ( in days).Slapcat could be done in online mode but you can have a problem with dump consistency.Probably in your lab you don't need to kill all the processes that have something in common with slapd (kill section lines from 15-21).]]></summary></entry><entry><title type="html">[EN] FreeIPA 4.1 to 4.2 update problem</title><link href="http://it-flow.pl/freeipa-41-to-42-update-problem/" rel="alternate" type="text/html" title="[EN] FreeIPA 4.1 to 4.2 update problem" /><published>2016-01-12T21:14:00+01:00</published><updated>2016-01-12T21:14:00+01:00</updated><id>http://it-flow.pl/freeipa-41-to-42-update-problem</id><content type="html" xml:base="http://it-flow.pl/freeipa-41-to-42-update-problem/"><![CDATA[<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="http://fedoramagazine.org/wp-content/uploads/2014/12/freeipa-150x150.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://fedoramagazine.org/wp-content/uploads/2014/12/freeipa-150x150.png" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">pic. from fedoramagazine.org&nbsp;</td></tr></tbody></table><div style="text-align: justify;">On two machines with CentOS 7.2 I was using the FreeIPA 4.1.0 that should theoretically update to a newer version 4.2.0&nbsp;without any problem. The new version brings a few new feature, byt they should not generate any update issues.</div><div><div style="text-align: justify;">Steps in the<a href="http://www.freeipa.org/page/Upgrade"> documentation</a> for version 4.2 are quite easy:</div><div style="text-align: justify;"><b><br /></b></div><div style="text-align: center;"><span style="font-family: Courier New, Courier, monospace;"><b>yum update freeipa-server</b></span></div><div style="text-align: center;"></div><div style="text-align: justify;">&nbsp;<span style="font-family: inherit;">The&nbsp;</span>package<span style="font-family: inherit;">&nbsp;manager executed all&nbsp;</span>post-installation<span style="font-family: inherit;">&nbsp;upgrade scripts (in current version:&nbsp;</span><span style="background-color: white; color: #333333; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 20px; white-space: pre-wrap;"><b><i>ipa-server-upgrade</i></b></span><span style="background-color: white; color: #333333; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 20px; white-space: pre-wrap;">). </span><br /><span style="background-color: white; color: #333333; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 20px; white-space: pre-wrap;"></span><br /><a name='more'></a><span style="background-color: white; color: #333333; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 20px; white-space: pre-wrap;"><br /></span></div><div style="text-align: justify;"><span style="background-color: white; color: #333333; line-height: 20px; white-space: pre-wrap;"><span style="font-family: inherit;">In the</span></span><span style="background-color: white; color: #333333; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; line-height: 20px; white-space: pre-wrap;"> </span><span style="color: #333333;"><span style="line-height: 20px; white-space: pre-wrap;"><span style="font-family: Monaco, Menlo, Consolas, Courier New, monospace; font-size: 13px;"><b><i>/var/log/ipaupgrade.log</i></b> </span><span style="font-family: inherit;">I did not found any interesting errors. All info looks ok:</span></span></span></div><div style="text-align: justify;"><span style="color: #333333;"><span style="line-height: 20px; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span></span></div><div style="text-align: justify;"><span style="color: #333333;"></span><br /><div style="font-family: 'Courier New', Courier, monospace; font-size: x-small; line-height: 20px; white-space: pre-wrap;"><span style="color: #333333;">2016-01-12T18:47:14Z INFO Upgrading the configuration of the IPA services 2016-01-12T18:47:14Z INFO [Verifying that root certificate is published] 2016-01-12T18:47:28Z INFO [Migrate CRL publish directory] 2016-01-12T18:47:28Z INFO CRL tree already moved 2016-01-12T18:47:28Z INFO [Verifying that CA proxy configuration is correct] 2016-01-12T18:47:36Z INFO [Verifying that KDC configuration is using ipa-kdb backend] 2016-01-12T18:47:37Z INFO [Fix DS schema file syntax] 2016-01-12T18:47:37Z INFO Syntax already fixed 2016-01-12T18:47:37Z INFO [Removing RA cert from DS NSS database] 2016-01-12T18:47:37Z INFO RA cert already removed 2016-01-12T18:47:38Z INFO [Enable sidgen and extdom plugins by default] 2016-01-12T18:47:40Z INFO [Updating mod_nss protocol versions] 2016-01-12T18:47:40Z INFO Protocol versions already updated 2016-01-12T18:47:40Z INFO [Fixing trust flags in /etc/httpd/alias] 2016-01-12T18:47:40Z INFO Trust flags already processed 2016-01-12T18:47:40Z INFO [Removing self-signed CA] 2016-01-12T18:47:40Z INFO [Checking for deprecated KDC configuration files] 2016-01-12T18:47:40Z INFO [Checking for deprecated backups of Samba configuration files] 2016-01-12T18:47:40Z INFO [Setting up Firefox extension] 2016-01-12T18:47:54Z INFO [Add missing CA DNS records] 2016-01-12T18:47:54Z INFO IPA CA DNS records already processed 2016-01-12T18:47:54Z INFO [Removing deprecated DNS configuration options] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Ensuring minimal number of connections] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Enabling serial autoincrement in DNS] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Updating GSSAPI configuration in DNS] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Updating pid-file configuration in DNS] 2016-01-12T18:47:54Z INFO DNS is not configured</span></div><span style="color: #333333;"></span><br /><div style="font-family: 'Courier New', Courier, monospace; font-size: x-small; line-height: 20px; white-space: pre-wrap;"><span style="color: #333333;"><br /></span></div><span style="color: #333333;"></span><div><span style="color: #333333;"><span style="font-family: inherit;"><span style="line-height: 20px; white-space: pre-wrap;">Unfortunately the IPA server did not start correctly. The service <b><i>named-pkcs11</i></b> </span></span><span style="line-height: 20px; white-space: pre-wrap;">responsible</span><span style="font-family: inherit;"><span style="line-height: 20px; white-space: pre-wrap;"> for DNSSEC could not correctly started and </span></span><span style="line-height: 20px; white-space: pre-wrap;">thrown error</span><span style="font-family: inherit;"><span style="line-height: 20px; white-space: pre-wrap;">:</span></span></span></div><span style="color: #333333;"><div><span style="font-family: inherit;"><span style="line-height: 20px; white-space: pre-wrap;"><br /></span></span></div></span><br /><div style="color: #333333;"><span style="background-color: white; font-size: x-small;"><span style="font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;">named-pkcs11</span><a class="missing changeset" href="https://www.blogger.com/null" style="color: #999988; font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;" title="Brak zmian 1826 w repozytorium">[1826]</a><span style="font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;">:</span><span style="color: black; font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;">ObjectStore.cpp(59): Failed to enumerate object store in /var/lib/softhsm/tokens/ <br />named-pkcs11</span><a class="missing changeset" href="https://www.blogger.com/null" style="color: #999988; font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;" title="Brak zmian 1826 w repozytorium">[1826]</a><span style="color: black; font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; text-align: start;">: SoftHSM.cpp(437): Could not load the object store</span></span></div><div style="color: #333333;"><span style="font-family: inherit;"><span style="line-height: 20px; white-space: pre-wrap;"><br /></span></span></div><div style="color: #333333;">In RH errata you can find a few info about broken install script, etc. All this hints did not solve my &nbsp; problem so I decided to run&nbsp;<i><b>ipa-dns-install</b></i> to check dns configuration. As you probably know in FreeIPA 4.2.0 the DNSSEC is enabled, so there was a tiny chance that during update the DNS re-configuration was skipped. &nbsp;</div><div style="color: #333333;"><br /></div><div style="color: #333333;">Unfortunately to run <i><b>ipa-dns-install</b> </i>script you need to bring up the LDAP and Kerberos services. Luckily <i>ipactl</i> correctly bring up this service with foce parameter (<b><i>ipactl start -f</i></b>). After that the ipa-dns-install script overwrite the current named.conf, created missing tokens and after that the named-pkcs11 started correctly.&nbsp;</div><div style="color: #333333;"><br /></div><div style="color: #333333;">After a few hours digging in the logs files I realized that I'm using a custom named.conf with additional views and the upgrade script skipped named.conf file update (<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 20px; white-space: pre-wrap;">INFO DNS is not configured)</span>&nbsp;. At <span style="font-family: inherit;">the end you need to add your custom ACL and Zones sections to named.conf&nbsp;</span></div><div style="color: #333333;"><span style="font-family: inherit;"><br /></span></div><div style="color: #333333;"><span style="font-family: inherit;">So if you have custom bind configuration you need to:</span></div><div><ol><li style="color: #333333;"><span style="color: black; text-align: center;"><span style="font-family: Times, Times New Roman, serif;">Backup current named.conf</span></span></li><li style="color: #333333;"><span style="color: black; text-align: center;"><span style="font-family: Times, Times New Roman, serif;">Update ipa server packages&nbsp;<i>yum update freeipa-server</i></span></span></li><li style="color: #333333;"><span style="color: black; text-align: center;"><span style="font-family: Times, Times New Roman, serif;">Use the force switch in<i> ipactl start -f</i></span></span></li><li style="color: #333333;"><span style="color: black; text-align: center;"><span style="font-family: Times, Times New Roman, serif;">Run&nbsp;<i>ipa-dns-install </i>or manually reconfigure<i> bind-pkcs11&nbsp;</i></span></span></li><li style="text-align: justify;"><span style="font-family: Times, Times New Roman, serif;">Add your missing zones to <i>named.conf</i></span></li><li style="text-align: justify;"><span style="font-family: Times, Times New Roman, serif;">Start ipa services.</span></li></ol></div><span style="color: #333333;"></span><br /><div><span style="color: #333333;"><br /></span></div><span style="color: #333333;"></span></div></div>]]></content><author><name>kaarol</name></author><category term="IPA" /><category term="CentOS" /><category term="FreeIPA 4.1" /><summary type="html"><![CDATA[pic. from fedoramagazine.org&nbsp;On two machines with CentOS 7.2 I was using the FreeIPA 4.1.0 that should theoretically update to a newer version 4.2.0&nbsp;without any problem. The new version brings a few new feature, byt they should not generate any update issues.Steps in the documentation for version 4.2 are quite easy:yum update freeipa-server&nbsp;The&nbsp;package&nbsp;manager executed all&nbsp;post-installation&nbsp;upgrade scripts (in current version:&nbsp;ipa-server-upgrade). In the /var/log/ipaupgrade.log I did not found any interesting errors. All info looks ok:2016-01-12T18:47:14Z INFO Upgrading the configuration of the IPA services 2016-01-12T18:47:14Z INFO [Verifying that root certificate is published] 2016-01-12T18:47:28Z INFO [Migrate CRL publish directory] 2016-01-12T18:47:28Z INFO CRL tree already moved 2016-01-12T18:47:28Z INFO [Verifying that CA proxy configuration is correct] 2016-01-12T18:47:36Z INFO [Verifying that KDC configuration is using ipa-kdb backend] 2016-01-12T18:47:37Z INFO [Fix DS schema file syntax] 2016-01-12T18:47:37Z INFO Syntax already fixed 2016-01-12T18:47:37Z INFO [Removing RA cert from DS NSS database] 2016-01-12T18:47:37Z INFO RA cert already removed 2016-01-12T18:47:38Z INFO [Enable sidgen and extdom plugins by default] 2016-01-12T18:47:40Z INFO [Updating mod_nss protocol versions] 2016-01-12T18:47:40Z INFO Protocol versions already updated 2016-01-12T18:47:40Z INFO [Fixing trust flags in /etc/httpd/alias] 2016-01-12T18:47:40Z INFO Trust flags already processed 2016-01-12T18:47:40Z INFO [Removing self-signed CA] 2016-01-12T18:47:40Z INFO [Checking for deprecated KDC configuration files] 2016-01-12T18:47:40Z INFO [Checking for deprecated backups of Samba configuration files] 2016-01-12T18:47:40Z INFO [Setting up Firefox extension] 2016-01-12T18:47:54Z INFO [Add missing CA DNS records] 2016-01-12T18:47:54Z INFO IPA CA DNS records already processed 2016-01-12T18:47:54Z INFO [Removing deprecated DNS configuration options] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Ensuring minimal number of connections] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Enabling serial autoincrement in DNS] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Updating GSSAPI configuration in DNS] 2016-01-12T18:47:54Z INFO DNS is not configured 2016-01-12T18:47:54Z INFO [Updating pid-file configuration in DNS] 2016-01-12T18:47:54Z INFO DNS is not configuredUnfortunately the IPA server did not start correctly. The service named-pkcs11 responsible for DNSSEC could not correctly started and thrown error:named-pkcs11[1826]:ObjectStore.cpp(59): Failed to enumerate object store in /var/lib/softhsm/tokens/ named-pkcs11[1826]: SoftHSM.cpp(437): Could not load the object storeIn RH errata you can find a few info about broken install script, etc. All this hints did not solve my &nbsp; problem so I decided to run&nbsp;ipa-dns-install to check dns configuration. As you probably know in FreeIPA 4.2.0 the DNSSEC is enabled, so there was a tiny chance that during update the DNS re-configuration was skipped. &nbsp;Unfortunately to run ipa-dns-install script you need to bring up the LDAP and Kerberos services. Luckily ipactl correctly bring up this service with foce parameter (ipactl start -f). After that the ipa-dns-install script overwrite the current named.conf, created missing tokens and after that the named-pkcs11 started correctly.&nbsp;After a few hours digging in the logs files I realized that I'm using a custom named.conf with additional views and the upgrade script skipped named.conf file update (INFO DNS is not configured)&nbsp;. At the end you need to add your custom ACL and Zones sections to named.conf&nbsp;So if you have custom bind configuration you need to:Backup current named.confUpdate ipa server packages&nbsp;yum update freeipa-serverUse the force switch in ipactl start -fRun&nbsp;ipa-dns-install or manually reconfigure bind-pkcs11&nbsp;Add your missing zones to named.confStart ipa services.]]></summary></entry><entry><title type="html">[PL] Z cyklu każdy wie a mało kto używa - Wireshark tips #1</title><link href="http://it-flow.pl/z-cyklu-kazdy-wie-mao-kto-uzywa/" rel="alternate" type="text/html" title="[PL] Z cyklu każdy wie a mało kto używa - Wireshark tips #1" /><published>2015-08-10T23:36:00+02:00</published><updated>2015-08-10T23:36:00+02:00</updated><id>http://it-flow.pl/z-cyklu-kazdy-wie-mao-kto-uzywa</id><content type="html" xml:base="http://it-flow.pl/z-cyklu-kazdy-wie-mao-kto-uzywa/"><![CDATA[<div style="text-align: justify;">Wireshark to dość potężne narzędzie niestety w wielu przypadkach użytkownicy często zapominają o kilku fajnych dodatkach:</div><div style="text-align: justify;"><b><br /></b></div><div style="text-align: justify;"><b>Podążaj&nbsp;za strumieniem a dojdziesz do celu.</b></div><div><div style="text-align: justify;">Wireshark ma możliwość wyłuskania konkretnych pakietów, które zostały przesłane w obrębie jednego połączenia. Tak więc zamiast aplikować N filtrów, można znaleźć jeden konkretny pakiet i z prawego menu wybrać<b> "Follow TCP Stream".</b> Regułą ta wybiera numer strumienia z wskazanego pakietu i aplikuje odpowiedni filtr:<b>&nbsp;"tcp.stream eq NUMER" (1). </b>Dodatkowo w nowym oknie zostanie otwarty zrzut danych przesłanych w danym strumieniu <b>(2)</b>. Za pomocą listy można wybrać, który <b>kierunek komunikacji nas interesuje (3).</b></div><div class="separator" style="clear: both; text-align: justify;"><a href="http://1.bp.blogspot.com/-oHN-s97qYqU/VckNqEWjqlI/AAAAAAAAAGk/AtuOuRAJhjM/s1600/wireshark_stream.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="http://1.bp.blogspot.com/-oHN-s97qYqU/VckNqEWjqlI/AAAAAAAAAGk/AtuOuRAJhjM/s640/wireshark_stream.png" width="640" /></a></div></div><div style="text-align: justify;"><b><br /></b></div><div style="text-align: justify;"><b>Rozwiązywanie PTR w celu łatwiejszej analizy</b></div><div style="text-align: justify;">Zamiast tracić czas na weryfikacje do kogo należy dany adres IP, można zmusić naszego rekina do automatycznego rozwiązywania nazw. Menu <b>(Edit-&lt; Preferences Shift+Ctrl+P),</b>&nbsp;z lewej kolumny wybrać <b>Name Resolution (1)</b> i zaznaczyć <b>Resolve network (IP addresses )(2)</b></div><div class="separator" style="clear: both; text-align: justify;"><a href="http://3.bp.blogspot.com/-3wC9494KKK8/VckPbtKbKvI/AAAAAAAAAGw/Q-56qRtDO5Q/s1600/name.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="http://3.bp.blogspot.com/-3wC9494KKK8/VckPbtKbKvI/AAAAAAAAAGw/Q-56qRtDO5Q/s640/name.png" width="640" /></a></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>Kreator reguł do kilku rodzajów&nbsp;zapór&nbsp;ogniowych</b></div><div style="text-align: justify;">WireShark za pomocą generatora reguł potrafi nam wygenerować wpisy dla danego typu zapory(2) Jego użycie jest dość proste:) Zaznaczamy wybrany pakiet z menu górnego wybieramy <b>Tool (1) </b>a następnie<b> Firewall ACL Rules. </b>W nowym oknie możemy wybrać <b>rodzaj oprogramowania (2), rodzaj filtru (3) </b>- w tym przypadku adres i numer portu. Na koniec mamy opcję <b>Inbound, Deny (4), </b>&nbsp;które definiują nam typ ruchu i akcję.&nbsp;</div><div style="text-align: justify;"><b><br /></b></div><div class="separator" style="clear: both; text-align: justify;"><a href="http://3.bp.blogspot.com/-kYGMEg9a5KA/VckRCnhX-YI/AAAAAAAAAG8/ssAJXQP3PKw/s1600/acl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="http://3.bp.blogspot.com/-kYGMEg9a5KA/VckRCnhX-YI/AAAAAAAAAG8/ssAJXQP3PKw/s640/acl.png" width="640" /></a></div><div style="text-align: justify;"><b><br /></b></div><div style="text-align: justify;"><b>Modyfikacja&nbsp;wyświetlanych&nbsp;kolumn</b></div><div style="text-align: justify;">Zamiast wyświetlać konkretny typ protokołu można skorzystać z numeru portu lub ewentualnie dodać nową kolumnę z numerem portu źródłowego/docelowego. Wszystkie te zmiany można ustawić za pomocą <b>Column Preferences</b>.&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>Kolorowanie/ markowanie złapanych pakietów</b></div><div style="text-align: justify;">WireShark daje nam możliwość dowolnego kolorowania otrzymanych pakietów. [<b>menu View-&gt; Coloring rules] </b>&nbsp;Przykłady pakietów, które możemy pokolorować:&nbsp;</div><div><ul><li style="text-align: justify;">Zwrotki http o określonych kodach [<b>http.response.code]</b></li><li style="text-align: justify;">Zapytania o rekord SPF [<b>dns.spf]</b></li><li style="text-align: justify;">Pakiety z konkretnym user_agentem [<b>http.user_agent</b>]</li></ul></div><div style="text-align: justify;">Tak naprawdę całe kolorowani opiera się na dobraniu odpowiedniego filtru co daje nam bardzo dużą dowolność w przypadku wyłapywania specyficznego typu ruchu.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Powyższe pięć wskazówek to tylko niektóre z opcji, które ułatwiają życie. W kolejnych wpisach postaram się dodać nowe porady, które mogą znacząco ułatwić pracę.&nbsp;</div>]]></content><author><name>kaarol</name></author><category term="Wireshark" /><summary type="html"><![CDATA[Wireshark to dość potężne narzędzie niestety w wielu przypadkach użytkownicy często zapominają o kilku fajnych dodatkach:Podążaj&nbsp;za strumieniem a dojdziesz do celu.Wireshark ma możliwość wyłuskania konkretnych pakietów, które zostały przesłane w obrębie jednego połączenia. Tak więc zamiast aplikować N filtrów, można znaleźć jeden konkretny pakiet i z prawego menu wybrać "Follow TCP Stream". Regułą ta wybiera numer strumienia z wskazanego pakietu i aplikuje odpowiedni filtr:&nbsp;"tcp.stream eq NUMER" (1). Dodatkowo w nowym oknie zostanie otwarty zrzut danych przesłanych w danym strumieniu (2). Za pomocą listy można wybrać, który kierunek komunikacji nas interesuje (3).Rozwiązywanie PTR w celu łatwiejszej analizyZamiast tracić czas na weryfikacje do kogo należy dany adres IP, można zmusić naszego rekina do automatycznego rozwiązywania nazw. Menu (Edit-&lt; Preferences Shift+Ctrl+P),&nbsp;z lewej kolumny wybrać Name Resolution (1) i zaznaczyć Resolve network (IP addresses )(2)Kreator reguł do kilku rodzajów&nbsp;zapór&nbsp;ogniowychWireShark za pomocą generatora reguł potrafi nam wygenerować wpisy dla danego typu zapory(2) Jego użycie jest dość proste:) Zaznaczamy wybrany pakiet z menu górnego wybieramy Tool (1) a następnie Firewall ACL Rules. W nowym oknie możemy wybrać rodzaj oprogramowania (2), rodzaj filtru (3) - w tym przypadku adres i numer portu. Na koniec mamy opcję Inbound, Deny (4), &nbsp;które definiują nam typ ruchu i akcję.&nbsp;Modyfikacja&nbsp;wyświetlanych&nbsp;kolumnZamiast wyświetlać konkretny typ protokołu można skorzystać z numeru portu lub ewentualnie dodać nową kolumnę z numerem portu źródłowego/docelowego. Wszystkie te zmiany można ustawić za pomocą Column Preferences.&nbsp;Kolorowanie/ markowanie złapanych pakietówWireShark daje nam możliwość dowolnego kolorowania otrzymanych pakietów. [menu View-&gt; Coloring rules] &nbsp;Przykłady pakietów, które możemy pokolorować:&nbsp;Zwrotki http o określonych kodach [http.response.code]Zapytania o rekord SPF [dns.spf]Pakiety z konkretnym user_agentem [http.user_agent]Tak naprawdę całe kolorowani opiera się na dobraniu odpowiedniego filtru co daje nam bardzo dużą dowolność w przypadku wyłapywania specyficznego typu ruchu.Powyższe pięć wskazówek to tylko niektóre z opcji, które ułatwiają życie. W kolejnych wpisach postaram się dodać nowe porady, które mogą znacząco ułatwić pracę.&nbsp;]]></summary></entry><entry><title type="html">Cisco 1000v - vempkt czyli zdalny wireshark.</title><link href="http://it-flow.pl/cisco-1000v-vempkt-czyli-zdalny/" rel="alternate" type="text/html" title="Cisco 1000v - vempkt czyli zdalny wireshark." /><published>2015-08-06T18:13:00+02:00</published><updated>2015-08-06T18:13:00+02:00</updated><id>http://it-flow.pl/cisco-1000v-vempkt-czyli-zdalny</id><content type="html" xml:base="http://it-flow.pl/cisco-1000v-vempkt-czyli-zdalny/"><![CDATA[<div style="text-align: justify;">Kolejne przygody z wirtualnym switchem Nexus 1000v uświadamiają mnie, że Cisco coraz częściej zaczyna dodawać coraz to ciekawsze narzędzia do swoich produktów. Przykładem takiego narzędzia jest vempkt.&nbsp;</div><div style="text-align: justify;"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://networkstatic.net/wp-content/uploads/2013/02/wireshark.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://networkstatic.net/wp-content/uploads/2013/02/wireshark.jpg" height="249" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">zapożyczone z&nbsp;http://networkstatic.net/</td></tr></tbody></table><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Narzędzie to jest dostarczane podczas instalacji moduły VEM na ESXi. Funkcjonalnością vempkt przypomina tcpdump lub według niektórych mechanizm sesji SPAN dostępnych na przełącznikach Cisco.&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><i><b>Jak zacząć zabawę z vempkt?</b></i>&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Zakładając, że mamy skonfigurowany switch Nexus 1000v musimy jeszcze odblokować możliwość logowania się do ESXi za pomocą protokołu SSH (przykładowy opis: <a href="https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vcli.migration.doc_50%2Fcos_upgrade_technote.1.4.html">dokumentacja vmware</a>).&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Po zalogowaniu się na hosta musimy zidentyfikować numer interfejsu, który chcemy podsłuchać (LTL - &nbsp;Local Target Logic) i numeru vlan, który nas interesuje.&nbsp;</div><div style="text-align: justify;">Przydatne komendy:&nbsp;</div><div style="text-align: justify;"></div><ul><li><b>vempkt show info - </b>listuje wszystkie LTL wraz z opisem maszyn, które są zarejestrowane na danym hoście oraz interfejsy nexusa lub portchannel</li><li><b>vemcmd show port vlans -</b>&nbsp;listuje porty wraz z numerami vlanów, które są przypisane</li></ul><br /><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Po skompletowaniu wszystkich niezębnych informacji na temat interfejsu, który nas interesuje możemy przystąpić do łapania ruchu:</div><div style="text-align: justify;"></div><ol><li><b>vempkt capture [ingress | egress | drop| all stages] ltl [id] vlan [nr] - </b>&nbsp;uwaga w niektórych wersjach vem, niezależnie od wybranego typu ruchu&nbsp;&nbsp;vempkt łapie ruch każdego typu (all stages).</li><li><b>vempkt show capture info - </b>&nbsp;wyświetla reguły filtra, który zdefiniowaliśmy w poprzednim kroku.</li><li><b>vempkt start - </b>&nbsp;uruchamiamy pluskwę</li><li><b>vempkt stop</b> - &nbsp;zatrzymujemy pluskwę;)</li><li><b>vempkt show info - </b>&nbsp;komenda przydaje się do wyświetlenia statystyk na temat zebranego ruchu.&nbsp;</li><li><b>vempkt pcap export file_name.pcap - </b>zapisujemy złapany ruch w formacie PCAP do pliku file_name.pcap, który potem możemy zaimportować do Wiresharka.&nbsp;</li><li><b>vempkt clear - </b>czyścimy zdefiniowane ustawienia. &nbsp;</li><li><b>scp root@esxi.ip:/root/file_name.pcap . - </b>&nbsp;zrzucamy pcap na lokalny komputer w celu dalszej analizy.&nbsp;</li></ol><div><i><b>Przypadki użycia?&nbsp;</b></i></div><div><ol><li>Weryfikacja czy ruch przechodzi przez reguły zdefiniowane na VSG&nbsp;</li><li>Złapanie ruchu na interfejsie wejściowym do ESXi</li><li>Analiza ruchu, który zostaje dostarczony do hosta &nbsp;bez potrzeby logowania się na docelową maszynę wirtualną.&nbsp;</li><li>Sprawdzenie czy ruch przechodzi przez sieć szkieletową mając dostęp tylko do serwerów ESXi ( głównie administratorzy VMware w dużych firmach)&nbsp;</li></ol><div><b><i>Drobne uwagi?&nbsp;</i></b></div></div><div><b><i><br /></i></b></div><div><ul><li>Jeśli chcemy przechwycić ruch wychodzący lub wchodzący do maszyny wirtualnej , która działa w klastrze VMware, &nbsp;musimy wiedzieć na którym hoście się ona znajduje.&nbsp;</li><li>Automatyczny DR może nam czasem popsuć łapanie ruchu:)</li><li>Czasem trzeba zwiększyć wielkość łapanego pakietu za pomocą <b>&nbsp;vempkt size [mtu size]</b></li><li>W celu szybkiej analizy pakiety można też zrzucić do pliku txt zamiast pcap: <b>vempkt display detail all &gt; name_file.txt</b></li></ul></div>]]></content><author><name>kaarol</name></author><category term="Wireshark" /><category term="Nexus 1000v" /><category term="Cisco" /><summary type="html"><![CDATA[Kolejne przygody z wirtualnym switchem Nexus 1000v uświadamiają mnie, że Cisco coraz częściej zaczyna dodawać coraz to ciekawsze narzędzia do swoich produktów. Przykładem takiego narzędzia jest vempkt.&nbsp;zapożyczone z&nbsp;http://networkstatic.net/Narzędzie to jest dostarczane podczas instalacji moduły VEM na ESXi. Funkcjonalnością vempkt przypomina tcpdump lub według niektórych mechanizm sesji SPAN dostępnych na przełącznikach Cisco.&nbsp;Jak zacząć zabawę z vempkt?&nbsp;Zakładając, że mamy skonfigurowany switch Nexus 1000v musimy jeszcze odblokować możliwość logowania się do ESXi za pomocą protokołu SSH (przykładowy opis: dokumentacja vmware).&nbsp;Po zalogowaniu się na hosta musimy zidentyfikować numer interfejsu, który chcemy podsłuchać (LTL - &nbsp;Local Target Logic) i numeru vlan, który nas interesuje.&nbsp;Przydatne komendy:&nbsp;vempkt show info - listuje wszystkie LTL wraz z opisem maszyn, które są zarejestrowane na danym hoście oraz interfejsy nexusa lub portchannelvemcmd show port vlans -&nbsp;listuje porty wraz z numerami vlanów, które są przypisanePo skompletowaniu wszystkich niezębnych informacji na temat interfejsu, który nas interesuje możemy przystąpić do łapania ruchu:vempkt capture [ingress | egress | drop| all stages] ltl [id] vlan [nr] - &nbsp;uwaga w niektórych wersjach vem, niezależnie od wybranego typu ruchu&nbsp;&nbsp;vempkt łapie ruch każdego typu (all stages).vempkt show capture info - &nbsp;wyświetla reguły filtra, który zdefiniowaliśmy w poprzednim kroku.vempkt start - &nbsp;uruchamiamy pluskwęvempkt stop - &nbsp;zatrzymujemy pluskwę;)vempkt show info - &nbsp;komenda przydaje się do wyświetlenia statystyk na temat zebranego ruchu.&nbsp;vempkt pcap export file_name.pcap - zapisujemy złapany ruch w formacie PCAP do pliku file_name.pcap, który potem możemy zaimportować do Wiresharka.&nbsp;vempkt clear - czyścimy zdefiniowane ustawienia. &nbsp;scp root@esxi.ip:/root/file_name.pcap . - &nbsp;zrzucamy pcap na lokalny komputer w celu dalszej analizy.&nbsp;Przypadki użycia?&nbsp;Weryfikacja czy ruch przechodzi przez reguły zdefiniowane na VSG&nbsp;Złapanie ruchu na interfejsie wejściowym do ESXiAnaliza ruchu, który zostaje dostarczony do hosta &nbsp;bez potrzeby logowania się na docelową maszynę wirtualną.&nbsp;Sprawdzenie czy ruch przechodzi przez sieć szkieletową mając dostęp tylko do serwerów ESXi ( głównie administratorzy VMware w dużych firmach)&nbsp;Drobne uwagi?&nbsp;Jeśli chcemy przechwycić ruch wychodzący lub wchodzący do maszyny wirtualnej , która działa w klastrze VMware, &nbsp;musimy wiedzieć na którym hoście się ona znajduje.&nbsp;Automatyczny DR może nam czasem popsuć łapanie ruchu:)Czasem trzeba zwiększyć wielkość łapanego pakietu za pomocą &nbsp;vempkt size [mtu size]W celu szybkiej analizy pakiety można też zrzucić do pliku txt zamiast pcap: vempkt display detail all &gt; name_file.txt]]></summary></entry><entry><title type="html">VCP550D i nowa polityka VMware</title><link href="http://it-flow.pl/vcp550d-i-nowa-polityka-vmware/" rel="alternate" type="text/html" title="VCP550D i nowa polityka VMware" /><published>2015-03-06T00:22:00+01:00</published><updated>2015-03-06T00:22:00+01:00</updated><id>http://it-flow.pl/vcp550d-i-nowa-polityka-vmware</id><content type="html" xml:base="http://it-flow.pl/vcp550d-i-nowa-polityka-vmware/"><![CDATA[<div style="text-align: justify;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Vmware.svg/200px-Vmware.svg.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Vmware.svg/200px-Vmware.svg.png" /></a>Zbyt dużo informacji na skrzynce zawsze kończy się źle:-) Przez ostatni rok subskrybowałem sobie sporo różnych newsletterów, powiadomień, itd. Niestety zbyt duża liczba maili z słowem VMware&nbsp;w tytule&nbsp;kończyła się częstym usuwaniem nagromadzonych informacji. Jak to zwykle bywa na pierwszy rzut poszły wiadomości bardziej istotne typu: cert expiration i takie tam. No i niestety dopiero na końcu zeszłego tygodnia natrafiłem na wiadomość o wygasaniu certyfikatów. Tak w skrócie VMware od 10 marca 2015 wprowadza nową politykę ważności certyfikatu. W skrócie certyfikaty są ważne dwa lata. W tym czasie trzeba zdać inny certyfikat lub odnowić ostatni by wydłużyć okres ważności. Jeśli certyfikaty nam wygasną to niestety aby je ponownie uzyskać trzeba zgłosić się na kurs, a potem zdać egzamin.&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Zmiana polityki jest tłumaczona faktem, że jeśli ktoś nie używa technologi przez dwa lata to automatycznie traci on wiedzę na temat produktu. Podejście może i słuszne, jednak tez miany mogły być wprowadzone troszkę później. Vmware vSphere 6.0 jest już w wersji RTM, niestety nie ma do tej wersji egzaminów. Czyli jeśli ktoś ma ważny certyfikat z 5.1 lub 5.5 to musi je odnowić by móc dalej się nimi chwalić.&nbsp;</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">W moim przypadku wystarczyło tylko podejść do VCP 550D, egzamin aktualizujący z 5.1 do 5.5. Wydawało mi się, że zmian między tymi wersjami było mało, jednak jak się człowiek wczyta w blueprinta to jest tam trochę nowości o których zapomniałem. Egzamin jest stosunkowo krótki i można go zdać z domu, tak więc jeśli nie chcesz stracić certyfikatu to warto do niego podejść. Za jedyne 95$ dostaniemy 1,5h quiz, który można zdać z domu lub pracy.&nbsp;</div>]]></content><author><name>kaarol</name></author><category term="exam" /><category term="VMware" /><summary type="html"><![CDATA[Zbyt dużo informacji na skrzynce zawsze kończy się źle:-) Przez ostatni rok subskrybowałem sobie sporo różnych newsletterów, powiadomień, itd. Niestety zbyt duża liczba maili z słowem VMware&nbsp;w tytule&nbsp;kończyła się częstym usuwaniem nagromadzonych informacji. Jak to zwykle bywa na pierwszy rzut poszły wiadomości bardziej istotne typu: cert expiration i takie tam. No i niestety dopiero na końcu zeszłego tygodnia natrafiłem na wiadomość o wygasaniu certyfikatów. Tak w skrócie VMware od 10 marca 2015 wprowadza nową politykę ważności certyfikatu. W skrócie certyfikaty są ważne dwa lata. W tym czasie trzeba zdać inny certyfikat lub odnowić ostatni by wydłużyć okres ważności. Jeśli certyfikaty nam wygasną to niestety aby je ponownie uzyskać trzeba zgłosić się na kurs, a potem zdać egzamin.&nbsp;Zmiana polityki jest tłumaczona faktem, że jeśli ktoś nie używa technologi przez dwa lata to automatycznie traci on wiedzę na temat produktu. Podejście może i słuszne, jednak tez miany mogły być wprowadzone troszkę później. Vmware vSphere 6.0 jest już w wersji RTM, niestety nie ma do tej wersji egzaminów. Czyli jeśli ktoś ma ważny certyfikat z 5.1 lub 5.5 to musi je odnowić by móc dalej się nimi chwalić.&nbsp;W moim przypadku wystarczyło tylko podejść do VCP 550D, egzamin aktualizujący z 5.1 do 5.5. Wydawało mi się, że zmian między tymi wersjami było mało, jednak jak się człowiek wczyta w blueprinta to jest tam trochę nowości o których zapomniałem. Egzamin jest stosunkowo krótki i można go zdać z domu, tak więc jeśli nie chcesz stracić certyfikatu to warto do niego podejść. Za jedyne 95$ dostaniemy 1,5h quiz, który można zdać z domu lub pracy.&nbsp;]]></summary></entry><entry><title type="html">Quo Vadis</title><link href="http://it-flow.pl/quo-vadis/" rel="alternate" type="text/html" title="Quo Vadis" /><published>2014-11-24T00:33:00+01:00</published><updated>2014-11-24T00:33:00+01:00</updated><id>http://it-flow.pl/quo-vadis</id><content type="html" xml:base="http://it-flow.pl/quo-vadis/"><![CDATA[<div style="text-align: justify;">Mija kolejny miesiąc w nowej pracy a ja dalej się zastanawiam dokąd tak naprawdę zmierzam. Po siedmiu latach ciężkich bojów z usługami Microsoftu i integracji ich z Linuksowymi serwisami, produktami firmy Cisco na chwile zrobiłem sobie przerwę od dużego M. W skrócie postanowiłem zerknąć czy pingwin nadal wygląda jak pingwin. Ponoć czasem w życiu należy dokonać zwrotu o 180 stopni i zobaczyć co słychać w innych technologiach. No może zwrot nie był o pełne 180 stopni bo przynajmniej raz dziennie widzę magiczny pasek postępu VMware a na drugim ekranie &nbsp;most firmy Cisco.</div><br /><div style="text-align: justify;">Przyznam się, że czasem w przypadku nowych produktów znowu zapala się lampka "A może by tak podziałać po pracy, tak niby dla siebie i przy okazji znowu uratować świat." Na szczęście mój mózg dobrze się broni i wewnętrzny mówca podpowiada&nbsp;"Nie, nie i jeszcze raz nie. Naucz się czegoś innego, napraw centrum multimedialne, idź się wspinać, pamiętaj co ostatnio oglądałeś." No i jak bym się z nim nie spierał muszę mu przyznać rację. Nic tak nie pomaga w rozwiązywaniu problemów w pracy jak przestanie myśleć o pracy po pracy;) Ja wiem, że to trudne ale następnego dnia naprawdę czasem problemy rozwiązują się przy porannej herbacie.</div><br />PS. Filmik, o którym przypomina mi wewnętrzny mówca.<br /><br /><iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" scrolling="no" src="https://embed-ssl.ted.com/talks/nigel_marsh_how_to_make_work_life_balance_work.html" width="640"></iframe>]]></content><author><name>kaarol</name></author><category term="Ogólne" /><summary type="html"><![CDATA[Mija kolejny miesiąc w nowej pracy a ja dalej się zastanawiam dokąd tak naprawdę zmierzam. Po siedmiu latach ciężkich bojów z usługami Microsoftu i integracji ich z Linuksowymi serwisami, produktami firmy Cisco na chwile zrobiłem sobie przerwę od dużego M. W skrócie postanowiłem zerknąć czy pingwin nadal wygląda jak pingwin. Ponoć czasem w życiu należy dokonać zwrotu o 180 stopni i zobaczyć co słychać w innych technologiach. No może zwrot nie był o pełne 180 stopni bo przynajmniej raz dziennie widzę magiczny pasek postępu VMware a na drugim ekranie &nbsp;most firmy Cisco.Przyznam się, że czasem w przypadku nowych produktów znowu zapala się lampka "A może by tak podziałać po pracy, tak niby dla siebie i przy okazji znowu uratować świat." Na szczęście mój mózg dobrze się broni i wewnętrzny mówca podpowiada&nbsp;"Nie, nie i jeszcze raz nie. Naucz się czegoś innego, napraw centrum multimedialne, idź się wspinać, pamiętaj co ostatnio oglądałeś." No i jak bym się z nim nie spierał muszę mu przyznać rację. Nic tak nie pomaga w rozwiązywaniu problemów w pracy jak przestanie myśleć o pracy po pracy;) Ja wiem, że to trudne ale następnego dnia naprawdę czasem problemy rozwiązują się przy porannej herbacie.PS. Filmik, o którym przypomina mi wewnętrzny mówca.]]></summary></entry></feed>