<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Project G6</title>
	<atom:link href="https://g6.hu/feed/" rel="self" type="application/rss+xml" />
	<link>https://g6.hu</link>
	<description>Webhelyek teljes körű üzemeltetése, linuxos megoldások, hálózatépítés, ISPConfig, Plesk, WordPress, WooCommerce</description>
	<lastBuildDate>Fri, 20 Feb 2026 10:45:55 +0000</lastBuildDate>
	<language>hu</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://g6.hu/wp-content/uploads/2023/10/cropped-G6-logo-vilagoskek-kor-32x32.png</url>
	<title>Project G6</title>
	<link>https://g6.hu</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kuponkód beírására szolgáló mező hozzáadása a WooCommerce termékoldalaihoz</title>
		<link>https://g6.hu/2024/03/14/kuponkod-beirasara-szolgalo-mezo-hozzaadasa-a-woocommerce-termekoldalaihoz/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 12:58:07 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[woocommerce]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1164</guid>

					<description><![CDATA[A WooCommerce-ben alapesetben csak a Kosár oldalon találkozunk először a kuponkód beírásának lehetőségével. De miért ne tehetnénk ezt elérhetővé már a termékoldalakon?]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_0 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_0 et_pb_row et_block_row"><div class="et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>A WooCommerce hatékony marketingeszközei közé tartozik a kuponkódok használata. Ugyan beakciózhatunk termékeket a webshopunkban globális paraméterek megadásával is, ám a kuponokkal sokkal kifinomultabb módon osztogathatjuk a kedvezményeket, legyen szó ingyenes szállításról vagy a végösszeg csökkentéséről. A legtöbb esetben a felhasználó azonban a kupont csak a Kosár oldalon tudja megadni, pedig hatékony vásárlásösztönző lehet, ha az egyes termékek böngészése közben már rögtön lehetőséget biztosítunk a kuponkódok megadására.</p>
<p>Az alábbi kódrészlet segítségével a termékoldalakon is megjeleníthetjük a kuponkód megadására szolgáló mezőt, amely aztán természetesen a teljes vásárlásra is érvényes lesz (a kupon beállításainál megadott feltételeknek megfelelően) a vásárlási munkamenet egésze alatt. (Eltávolítani pedig alapesetben majd csak a Kosár oldalon tudjuk.)</p>
</div></div><div class="et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><blockquote>
<p><strong>Megjegyzés:</strong> Az egyéni PHP-kódok megadásához a <a href="https://wordpress.org/plugins/code-snippets/" target="_blank" rel="noopener">Code Snippets</a> vagy a <a href="https://wpcode.com/" target="_blank" rel="noopener">WPCode</a> használatát javasoljuk.</p>
</blockquote>
</div></div><div class="et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Kuponkód mezőjének megjelenítése a WooCommerce-termékoldalakon</h2>
<pre><code>
// Add a text input field inside the add to cart form
add_action('woocommerce_single_product_summary','add_custom_text_field_single_product', 2 );
function add_custom_text_field_single_product(){
    global $product;

    if( $product-&gt;is_type('variable') ){
        add_action('woocommerce_before_single_variation','custom_product_text_input_field', 30 );
    } else {
        add_action('woocommerce_before_add_to_cart_button','custom_product_text_input_field', 30 );
    }
}

function custom_product_text_input_field(){
    echo '&lt;div class="hidden-field"&gt;
    &lt;p class="form-row product-coupon form-row-wide" id="product-coupon_field" data-priority=""&gt;
        &lt;label for="product-coupon" class=""&gt;' . __("Rendelkezik kuponkóddal?") . '&lt;/label&gt;
        &lt;span class="woocommerce-input-wrapper"&gt;
            &lt;input type="text" class="input-text " name="product-coupon" id="product-coupon" placeholder="'.__("Kuponkód").'" value=""&gt;
        &lt;/span&gt;
    &lt;/p&gt;&lt;/div&gt;';
}

// Apply the coupon code from product custom text imput field
add_filter('woocommerce_add_cart_item_data', 'coupon_code_product_add_to_cart', 20, 3);
function coupon_code_product_add_to_cart($cart_item_data, $product_id, $variation_id) {
    if (isset($_POST['product-coupon']) &amp;&amp; ! empty($_POST['product-coupon'])) {
        WC()-&gt;cart-&gt;apply_coupon( sanitize_title( $_POST['product-coupon'] ) );
    }
    return $cart_item_data;
}</code></pre>
</div></div></div></div><div class="et_pb_row_1 et_pb_row et-vb-row--no-module et_block_row"><div class="et_pb_column_1 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough"></div></div><div class="et_pb_row_2 et_pb_row et_block_row"><div class="et_pb_column_2 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_code_0 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WooCommerce-termékek tömeges törlése (SQL-parancsokkal)</title>
		<link>https://g6.hu/2024/03/11/woocommerce-termekek-tomeges-torlese-sql-parancsokkal/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Mon, 11 Mar 2024 10:10:55 +0000</pubDate>
				<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[woocommerce]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1157</guid>

					<description><![CDATA[Bármikor előfordulhat, hogy szükségünk van a WooCommerce-termékek tömeges tölésére, ám több száz, esetleg ezer termék törlése rengeteg időt igényel az adminfelületen. Szerencsére a feladatot SQL-parancsokkal még óriási adatbázisok esetén is pillanatok alatt teljesíthetjük!]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_1 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_3 et_pb_row et_block_row"><div class="et_pb_column_3 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Akár a webhelyek fejlesztése, akár éles üzem során előfordulhat, hogy szükségessé válik a WooCommerce-ben lévő termékek tömeges, alapos törlése.</p>
<p>Sajnos a <em>WordPress</em> az ilyen feladatok terén nem túlságosan előzékeny, és az adminfelületen csak nagyon lassan és erőforrásigényes módon tudnánk ezt a feladatot elvégezni, ám ha rendelkezünk <strong>phpmyAdmin</strong>-hozzáféréssel vagy <strong>SSH</strong>-eléréssel a szerverhez, akkor pillanatok alatt lenullázhatjuk a webshop tartalmát, hogy tiszta lappal indulhasson a termékfeltöltés.</p>
<p>A műveletet kétféleképpen végezhetjük el, a termékkategóriák legyalulásával vagy a termékkategóriák megőrzése mellett. Lássuk hát az ehhez szükséges parancsok sorát!</p>
</div></div><div class="et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><blockquote>
<p><strong>FONTOS!</strong> Az alábbi parancsok a WordPress alapértelmezett táblaneveit feltételezik. Egyéni előtag használata esetén módosítani kell a parancsokat.</p>
<p>Az adatbázis minden módosítása előtt javasolt biztonsági mentést készíteni az adatokról!</p>
</blockquote>
</div></div><div class="et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>WooCommerce-termékek tömeges törlése a termékkategóriák megőrzésével</h2>
<p>Amennyiben csak a termékeket szeretnénk kigyomlálni az adatbázisunkból, a termékkategóriákat (az azonosítóikkal együtt) viszont megtartanánk, akkor az alábbi parancsokat kell kiadnunk:<em></em></p>
<p>Attribútumok törlése</p>
<p><code><span class="pln">DELETE FROM wp_terms WHERE term_id IN </span><span class="pun">(</span><span class="pln">SELECT term_id FROM wp_term_taxonomy WHERE taxonomy LIKE </span><span class="str">'pa_%'</span><span class="pun">);</span><span class="pln"> DELETE FROM wp_term_taxonomy WHERE taxonomy LIKE </span><span class="str">'pa_%'</span><span class="pun">;</span><span class="pln"> DELETE FROM wp_term_relationships WHERE term_taxonomy_id </span><span class="kwd">not</span><span class="pln"> IN </span><span class="pun">(</span><span class="pln">SELECT term_taxonomy_id FROM wp_term_taxonomy</span><span class="pun">);</span></code></p>
<p><span class="pun">Termékek törlése</span></p>
<p><code><span class="pun"><span class="pln">DELETE FROM wp_term_relationships WHERE object_id IN </span>(<span class="pln">SELECT ID FROM wp_posts WHERE post_type IN </span>(<span class="str">'product'</span>,<span class="str">'product_variation'</span>));<span class="pln"> DELETE FROM wp_postmeta WHERE post_id IN </span>(<span class="pln">SELECT ID FROM wp_posts WHERE post_type IN </span>(<span class="str">'product'</span>,<span class="str">'product_variation'</span>));<span class="pln"> DELETE FROM wp_posts WHERE post_type IN </span>(<span class="str">'product'</span>,<span class="str">'product_variation'</span>);</span></code></p>
<p><span class="pun">Elárvult metaadatok törlése</span></p>
<p><code><span class="pun"><span class="pln">DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp</span>.<span class="pln">ID </span>=<span class="pln"> pm</span>.<span class="pln">post_id WHERE wp</span>.<span class="pln">ID IS NULL;</span></span></code></p>
</div></div><div class="et_pb_text_6 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><blockquote>
<p><strong>Megjegyzés:</strong> Multisite környezetben a fenti táblaneveket a környezetnek megfelelően módosítani kell, és hozzájuk kell fűzni a megfelelő számot.</p>
</blockquote>
</div></div><div class="et_pb_text_7 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>WooCommerce-termékek tömeges törlése a termékkategóriák törlésével</h2>
<p>Ha a termékkategóriákat is törölni szeretnénk, és mindent nulláról kezdenénk, az alábbi parancsokra lesz szükségünk:<em></em></p>
<p><code><span class="pln">DELETE relations.*, taxes.*, terms.*<br />
FROM wp_term_relationships AS relations<br />
INNER JOIN wp_term_taxonomy AS taxes<br />
ON relations.term_taxonomy_id=taxes.term_taxonomy_id<br />
INNER JOIN wp_terms AS terms<br />
ON taxes.term_id=terms.term_id<br />
WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product');</span></code></p>
<p><code>DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product');<br />
DELETE FROM wp_posts WHERE post_type = 'product';</code></p>
</div></div><div class="et_pb_text_8 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><blockquote>
<p><strong>Megjegyzés:</strong> Multisite környezetben a fenti táblaneveket a környezetnek megfelelően módosítani kell, és hozzájuk kell fűzni a megfelelő számot.</p>
</blockquote>
</div></div></div></div><div class="et_pb_row_4 et_pb_row et-vb-row--no-module et_block_row"><div class="et_pb_column_4 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough"></div></div><div class="et_pb_row_5 et_pb_row et_block_row"><div class="et_pb_column_5 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_code_1 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Digi router adminfelületének jelszava</title>
		<link>https://g6.hu/2023/10/23/digi-router-adminfeluletenek-jelszava/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Mon, 23 Oct 2023 09:18:58 +0000</pubDate>
				<category><![CDATA[Egyéb kategória]]></category>
		<category><![CDATA[digi]]></category>
		<category><![CDATA[hálózat]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1106</guid>

					<description><![CDATA[A digi routerek adminisztrációs felületének eléréséhez szükséges felhasználónév és jelszó párosa.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_2 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_6 et_pb_row et_block_row"><div class="et_pb_column_6 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_9 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Az utóbbi időben számos optikai címükön cserélte le a <a href="https://digi.hu/" target="_blank" rel="noopener"><strong>DIGI</strong></a> a régebbi, Wi-Fi-kapcsolatra nem alkalmas modemeit újabb ONT-eszközökre, amelyek immáron <strong>Wi-Fi 6-kapcsolatot</strong> is képesek biztosítani, ráadásul több antennával is el vannak látva, így önmagukban, külön router használata nélkül is használhatók már a vezeték nélküli internet biztosításához.</p>
</div></div><div class="et_pb_text_10 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az eszköz átállítása ROUTER üzemmódba</h2>
<p>Ahhoz, hogy az eszköz Wi-Fi routerként is funkcionáljon, elsőként <strong>ROUTER</strong> üzemmódba kell helyezni (ha ez a telepítésekor nem történt meg automatikusan). A beállítás az <a href="https://ugyfelkapu.digi.hu/szolgaltatasok/eszkoz-kezeles/" target="_blank" rel="noopener"><strong>Ügyfélkapu</strong></a> (önkiszolgáló felület) segítségével adható meg. A beállítás életbe léptetéséhez akár 15 perc is szükséges lehet, ezért mindenképpen várjuk meg, amíg a felületen már azt látjuk, hogy befejeződött a módosítások alkalmazása. Mivel a változtatás ideje alatt a helyi internetünk nem lesz elérhető, ezért ehhez a módosításhoz <strong>mobilinternet használata javasolt</strong>. (De amúgy ha kivárjuk a 10-15 perces folyamatot, további internetkapcsolat használata nélkül is elvégezhetjük a módosítást.)<em></em></p>
</div></div><div class="et_pb_text_11 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az adminfelület megnyitása</h2>
<p>A router adminfelületének eléréséhez az alapértelmezett IP-címet kell beírnunk a böngészőbe, ha már csatlakoztunk az általa biztosított Wi-Fi-hálózathoz vagy vezetékes kapcsolattal közvetlenül a routerhez kapcsolódunk: <a href="http://192.168.1.1/"><strong>192.168.1.1</strong></a></p>
<p>A lehetséges felhasználónév és jelszó párosok a következők:</p>
<table border="1" style="width: 100%; border-collapse: collapse;">
<tbody>
<tr>
<td style="width: 50%;"><strong>login</strong></td>
<td style="width: 50%;"><strong>password</strong></td>
</tr>
<tr>
<td style="width: 50%;">user</td>
<td style="width: 50%;">digi</td>
</tr>
<tr>
<td style="width: 50%;">user</td>
<td style="width: 50%;">user</td>
</tr>
<tr>
<td style="width: 50%;">user</td>
<td style="width: 50%;">a gyári szám (SN) utolsó 6 karaktere</td>
</tr>
<tr>
<td style="width: 50%;">digi</td>
<td style="width: 50%;">a gyári szám (SN) utolsó 6 karaktere</td>
</tr>
</tbody>
</table>
<p>A fentiek közül valamelyiknek működnie kell. 3 sikertelen próbálkozás után az adminfelület 1 percre kitiltja a felhasználót, de utána folytatni lehet a próbálkozást.</p>
<p>A <strong>gyári számot</strong> és a Wi-Fi-kapcsolathoz szükséges <strong>SSID-t és jelszót</strong> a router hátulján található matricáról tudjuk leolvasni.</p>
</div></div></div></div><div class="et_pb_row_7 et_pb_row et_block_row"><div class="et_pb_column_7 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_image_0 et_pb_image et_pb_module et_block_module"><a href="https://g6.hu/wp-content/uploads/2023/10/Digi-Router-Login-1.png" class="et_pb_lightbox_image"><span class="et_pb_image_wrap"><img fetchpriority="high" decoding="async" src="https://g6.hu/wp-content/uploads/2023/10/Digi-Router-Login-1.png" width="982" height="381" srcset="https://g6.hu/wp-content/uploads/2023/10/Digi-Router-Login-1.png 982w, https://g6.hu/wp-content/uploads/2023/10/Digi-Router-Login-1-980x380.png 980w, https://g6.hu/wp-content/uploads/2023/10/Digi-Router-Login-1-480x186.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 982px, 100vw" class="wp-image-1110" title="Digi-Router-Login-1" /></span></a></div><div class="et_pb_image_1 et_pb_image et_pb_module et_block_module"><a href="https://g6.hu/wp-content/uploads/2023/10/digi-zte-router.jpg" class="et_pb_lightbox_image"><span class="et_pb_image_wrap"><img decoding="async" src="https://g6.hu/wp-content/uploads/2023/10/digi-zte-router.jpg" width="780" height="514" srcset="https://g6.hu/wp-content/uploads/2023/10/digi-zte-router.jpg 780w, https://g6.hu/wp-content/uploads/2023/10/digi-zte-router-480x316.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 780px, 100vw" class="wp-image-1109" title="digi-zte-router" /></span></a></div></div></div><div class="et_pb_row_8 et_pb_row et_block_row"><div class="et_pb_column_8 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_code_2 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Elavult PHP-verzió miatti phpMyAdmin-hiba</title>
		<link>https://g6.hu/2022/06/29/elavult-php-verzio-miatti-phpmyadmin-hiba/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Wed, 29 Jun 2022 17:08:43 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ISPConfig]]></category>
		<category><![CDATA[Kiszolgálók]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1038</guid>

					<description><![CDATA[Megmutatjuk, mi a teendő akkor, ha a phpMyAdmin az egyik pillanatról a másikra elérhetetlen lesz, és hibák jelennek meg az Apache naplófájljában.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_3 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_9 et_pb_row et_block_row"><div class="et_pb_column_9 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_12 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Amennyiben úgy tapasztaljuk, hogy az egyik pillanatról a másikra megszűnt a <strong>phpMyAdmin</strong> elérhetősége, pedig korábban minden rendben működött, érdemes első körben körülnézni az Apache <strong>error.log</strong> naplófájljában. (/var/log/apache2/error.log)</p>
<p>Ha abban az alábbihoz hasonló hibaüzenetet találunk, akkor a probléma okát az inkompatibilis alapértelmezett PHP-verzió okozza:</p>
<p><code>[Sat Jun 18 15:38:38.906793 2022] [proxy_fcgi:error] [pid 657600] [client X.X.X.X:63235] AH01071: Got error 'PHP message: PHP Warning: Unsupported declare 'strict_types' in /usr/share/php/PhpMyAdmin/MoTranslator/Loader.php on line 23\nPHP message: PHP Parse error: syntax error, unexpected '?' in /usr/share/php/PhpMyAdmin/MoTranslator/Loader.php on line 116\n'</code></p>
</div></div><div class="et_pb_text_13 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Ennek megoldása elég egyszerű, ugyanis a phpMyAdmin rendelkezik egy saját Apache conf-fájllal, amelyet módosítva megadhatjuk, hogy melyik PHP-verzióval fusson. Ehhez mindössze módosítanunk kell az <span><strong>/etc/phpmyadmin/apache.conf</strong> tartalmát, és beszúrnunk a következőt:</span></p>
<pre class="lang-php s-code-block"><code class="hljs language-php">&lt;<span class="hljs-built_in">Directory</span> /usr/share/phpmyadmin&gt;
    &lt;FilesMatch \.php$&gt;
    SetHandler <span class="hljs-string">"proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"</span>
    &lt;/FilesMatch&gt;
&lt;/<span class="hljs-built_in">Directory</span>&gt;</code></pre>
</div></div><div class="et_pb_text_14 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>A fenti megoldással a <strong>PHP 7.4</strong>-es verzióját adjuk meg a phpMyAdmin futtatásához (jelenleg ezzel a verzióval biztosan működnie kell, ha ez volt a hiba oka).</p>
<p>Természetesen a módosítások életbe léptetéséhez újra kell indítanunk az Apache2-t. (<strong>/etc/init.d/apache2 restart</strong>)</p>
</div></div><div class="et_pb_code_3 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IP-cím tiltásának feloldása fail2ban használata esetén</title>
		<link>https://g6.hu/2022/03/24/ip-cim-tiltasanak-feloldasa-fail2ban-hasznalata-eseten/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Thu, 24 Mar 2022 12:38:09 +0000</pubDate>
				<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=989</guid>

					<description><![CDATA[Írásunkban bemutatjuk, hogyan lehet egy fail2ban által letiltott IP-címet eltávolítani a tiltólistáról.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_4 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_10 et_pb_row et_block_row"><div class="et_pb_column_10 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_15 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>A <strong>fail2ban</strong> egy nagyon hatékony és hasznos eszköz, amennyiben meg szeretnénk bizonyosodni arról, hogy próbálgatásos (brute-force) technikával nem lehet kitalálni a különböző szolgáltatások hitelesítő adatait.</p>
<p>Ám természetesen alkalmanként itt is előfordulhat, hogy jóhiszemű felhasználókat zár ki a rendszer, például azért, mert egy jelszóváltozásról későn kapta meg az értesítést a felhasználó, vagy egyszerűen csak túl sokszor vétett hibát egy jelszó beírásakor.</p>
<p>A jó hír az, hogy a tiltást pillanatok alatt feloldhatjuk, ha SSH-n keresztül bejelentkezünk a rendszerünkbe.</p>
<p>Ennek mikéntjére rögtön két módszert is bemutatunk!</p>
</div></div><div class="et_pb_text_16 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Tiltás feloldása az iptables használatával</h2>
<p>A legáltalánosabb és minden esetben működő megoldást az jelenti, ha az <em>iptables</em> használatával távolítjuk el az érintett felhasználót blokkoló tűzfalszabályt. Ehhez két parancsra lesz szükségünk. Az elsővel kilistázzuk az érvényben lévő  tűzfalszabályokat, a sorszámukkal egyetemben:</p>
<pre><code>sudo iptables -n -L --line-numbers</code></pre>
<p>A listában keressük ki az érintett szolgáltatásnak megfelelő láncot (például ssh esetén ez a <em>f2b-sshd</em> <em>chain</em> lesz), és jegyezzük fel, hogy az általunk keresett IP-cím sorának elején, a <em>num</em> oszlopban milyen szám található.</p>
<p>Ha megvan ez a két információ, kiadhatjuk a második parancsot:</p>
<pre><code>sudo iptables -D &lt;fail2ban-chain&gt; &lt;sorszám&gt;</code></pre>
<p>Ennek hatására eltávolítjuk a tűzfalból az érintett szabályt, és ezzel megszűnik az IP-cím blokkolása. A fenti példánál maradva a <em>&lt;fail2ban-chain&gt;</em> helyére a <em>f2b-sshd</em> érték kerül, a <em>&lt;sorszám&gt;</em> helyére pedig az IP-címet tartalmazó sor elején látható <em>szám.</em></p>
</div></div><div class="et_pb_text_17 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Tiltás feloldása a fail2ban-client használatával</h2>
<p>A fail2ban saját eszközt is biztosít ahhoz, hogy kezelhessük a tiltott címek listáját, ennek használata azonban egy verziófrissítést követően kicsit megváltozott. Éppen ezért létezik egy parancsszintaxis a <strong>0.8.8-as verzió</strong> előtti fail2ban-hoz, és egy másik szintaxis az ennél újabb verziókhoz. Elsőként azonban mindkét esetben érdemes megnézni a fail2ban által használt jailek nevét:</p>
<pre><code>sudo fail2ban-client status</code></pre>
<p>Ha megvan az általunk keresett szolgáltatás neve (pl. <em>sshd</em>) akkor a 0.8.8-asnál korábbi verziók esetén a következő parancsot kell kiadnunk:</p>
<pre><code>sudo fail2ban-client get &lt;jail_neve&gt; actionunban &lt;IP-cím&gt;</code></pre>
<p>A 0.8.8-as verziótól kezdődően a parancs az alábbi formátumot követi:</p>
<pre><code>sudo fail2ban-client set &lt;jail_neve&gt; unbanip &lt;IP-cím&gt;</code></pre>
</div></div><div class="et_pb_text_18 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Tiltás feloldása a Plesk használatával</h2>
<p>Van egy jó hírünk azoknak, akik beruháztak a <a href="https://g6.hu/2020/09/09/ispconfig-vagy-plesk-melyiket-erdemes-valasztani/">Pleskre</a>, ugyanis a webes adminfelületen, a <strong>Tools &amp; Settings</strong> alatt elérhető egy <strong>IP Address Banning (Fail2Ban)</strong> menüpont, ahol a kényelmes felület előnyeit kihasználva is kezelhetik a tiltólistás IP-címeket, a jaileket, a kivételeket és a naplókat.<code></code></p>
</div></div></div></div><div class="et_pb_row_11 et_pb_row et_block_row"><div class="et_pb_column_11 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_image_2 et_pb_image et_pb_module et_block_module"><a href="https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban.png" class="et_pb_lightbox_image"><span class="et_pb_image_wrap"><img decoding="async" src="https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban.png" width="1313" height="737" srcset="https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban.png 1313w, https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban-1280x718.png 1280w, https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban-980x550.png 980w, https://g6.hu/wp-content/uploads/2022/03/plesk-fail2ban-480x269.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1313px, 100vw" class="wp-image-1031" title="plesk-fail2ban" /></span></a></div></div></div><div class="et_pb_row_12 et_pb_row et_block_row"><div class="et_pb_column_12 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_code_4 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mennyibe kerül egy céges WordPress-webhely fenntartása?</title>
		<link>https://g6.hu/2022/02/19/mennyibe-kerul-egy-ceges-wordpress-webhely-fenntartasa/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Sat, 19 Feb 2022 19:46:23 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ISPConfig]]></category>
		<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1018</guid>

					<description><![CDATA[Írásunkban bemutatjuk, milyen költségekkel jár egy céges WordPress-webhely üzembe helyezése és üzemeltetése, és különböző céges igényekre szabott konkrét példákkal is szolgálunk.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_5 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_13 et_pb_row et_block_row"><div class="et_pb_column_13 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_19 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Miért éppen WordPress-webhelyet válasszak a céges oldalamhoz?</h2>
<p>Manapság a <a href="https://hu.wordpress.org/download/" target="_blank" rel="noopener">WordPress</a> az egyik legnépszerűbb és leginkább elterjedt tartalomkezelő rendszer (CMS), ami nem véletlen. Először is vegyük sorra az előnyeit:</p>
<ul>
<li>Nagyon egyszerű és szinte minden szolgáltatóval <strong>kompatibilis</strong> az üzembe helyezése</li>
<li>Nem igényel semmilyen programozói vagy rendszergazdai tudást</li>
<li>Könnyen kezelhető az <strong>adminisztrációs felülete</strong></li>
<li>Teljes körű <strong>felhasználókezelés</strong>t és különálló szerepköröket biztosít</li>
<li>Teljes mértékben le van fordítva <strong>magyar nyelvre</strong> (igaz, számos hiba csúszott a közösségi fordításba, de ettől még jól használható magyarul)</li>
<li>Minden tekintetben követi az éppen aktuálisan elvárt és használt <strong>szabványokat</strong></li>
<li><strong>Automatikusan frissíthető</strong> (a bővítményeivel együtt), így mindig naprakész (és biztonságos) verziót használhatunk</li>
<li>Rengeteg <strong>sablon és bővítmény</strong> érhető el hozzá (számos közülük teljesen ingyenesen), így minden céges igény kielégíthető</li>
<li>A megfelelő bővítmények birtokában ugyanolyan jól használható <strong>blogként, magazinként, céges webhelyként vagy webáruházként</strong></li>
<li>Kiemelkedően jól teljesít a <strong>keresőoptimalizálás</strong> (SEO) terén</li>
<li>Egy jó <a href="https://www.elegantthemes.com/gallery/divi/" target="_blank" rel="noopener">sablon</a> birtokában könnyedén igazítható a céges arculathoz</li>
<li>Ráadásul teljesen <strong>ingyenes</strong></li>
</ul>
<h3>Rendszerkövetelmények</h3>
<ul>
<li><a href="https://www.php.net/" target="_blank" rel="noopener">PHP</a><span> </span>7.4-es vagy magasabb verzió</li>
<li><a href="https://www.mysql.com/" target="_blank" rel="noopener">MySQL</a><span> </span>5.7-es vagy magasabb <em>VAGY</em><span> </span><a href="https://mariadb.org/" target="_blank" rel="noopener">MariaDB</a><span> </span>10.2-es vagy magasabb verzió</li>
<li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/" target="_blank" rel="noopener">HTTPS</a><span>-</span>támogatás</li>
</ul>
</div></div><div class="et_pb_text_20 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A céges WordPress-webhely üzembe helyezésének költségei</h2>
<p>Ha eldöntöttük, hogy szeretnénk egy biztonságos és szabványos webhelyet magunknak, akkor már csak az alapvető körülményeket kell megteremtenünk a sikeres beüzemeléséhez.</p>
<p>Dönthetünk úgy, hogy <strong>saját szervert üzemeltetünk</strong>, amennyiben a webhelyen kívül más szolgáltatásokat is elérhetővé szeretnénk tenni. Ebben az esetben nagy segítségünkre lehet a <a href="https://g6.hu/2021/04/29/mennyibe-kerul-egy-vps-virtualis-szerver-fenntartasa/">virtuális szerverek (VPS) kiválasztását elősegítő útmutatónk</a>. Magának a rendszernek a kialakításához pedig érdemes elolvasni <a href="https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/">a tökéletes Ubuntu 20.04 LTS szerver telepítésének útmutatóját</a>.</p>
<p>A saját szerver fenntartásának természetesen magasabbak a költségei, de érdemes megnézni a <a href="https://atw.hu/vps" target="_blank" rel="noopener">konkrét csomagjánlatokat</a>, hiszen már havi <span style="text-decoration: underline;"><strong>5 ezer forintért</strong></span> lehet egy minden alapvető igényt kielégítő VPS-ünk, ráadásul az egyes paramétereket mi magunk szabhatjuk meg, amihez az ár is azonnal igazodik, így csupán azért a kapacitásért kell fizetnünk, amelyre valóban szükségünk van.</p>
<blockquote>
<p>A saját rendszer kialakításához és üzembe helyezéséhez igénybe veheti <a href="https://g6.hu/#kapcsolat">szakértő segítségünket</a>, és mi a céges igényeihez igazítva hozzuk létre a gyors és biztonságos rendszert, amelyet akár saját maga is üzemeltethet az <a href="https://g6.hu/2020/09/09/ispconfig-vagy-plesk-melyiket-erdemes-valasztani/">ISPConfiggal</a>, vagy <a href="https://g6.hu/#kapcsolat">minket is felkérhet</a> az üzemeltetési és karbantartási feladatokra.</p>
</blockquote>
<p>Vagy <strong>a webhely üzemeltetésének feladatát másra is bízhatjuk</strong>, ebben az esetben webtárhelyet kell vásárolnunk, és itt helyezhetjük üzembe a WordPress-webhelyünket.</p>
<p>Webtárhely vásárlása esetén éves szinten akár <strong><span style="text-decoration: underline;">10 ezer forint alatti</span></strong> összeggel is számolhatunk, és a ténylegesen fizetendő ár az általunk igényelt tárhely méretétől függ. Amennyiben igencsak nagy méretű a céges oldalunk (pl. sok képet és videót szeretnénk elhelyezni rajta), akkor érdemesebb saját VPS-t vennünk, de ha megelégszünk néhány GB-tal is, akkor sokkal jobban járunk a webtárhellyel.</p>
<blockquote>
<p>Cégünk kifejezetten a WordPress-webhelyek minél gyorsabb és stabilabb kiszolgálására és biztonságos üzemeltetésére kialakított szervereket tart fenn, amelyekkel nem csupán a legjobb felhasználó élményt tudjuk garantálni a látogatóknak, de arról is gondoskodunk, hogy a lehető legjobb pontszámot lehessen elérni a szabványosság, a válaszidő és számos más olyan tényező esetén, amelyek nagyban befolyásolják, hogy a webhelyünket milyen pozícióban jelenítik meg az egyes keresőmotorok.</p>
<p>Kiegészítő tanácsadás keretében további finomhangolással segítjük a képek méretének és megjelenítésének optimalizálását, a keresőoptimalizálást (SEO), valamint az oldalak gyorsítótárazását, a webáruházak létrehozását és a fizetési megoldások integrálását.</p>
<p><a href="https://g6.hu/#kapcsolat">További információ kéréséhez vegye fel velünk a kapcsolatot!</a></p>
</blockquote>
<p>És akkor nézzünk néhány konkrét példát!</p>
<h2>Minimális céges webhelyigény (webtárhely)</h2>
<p>Éves szinten egy átlagos, alapszintű céges WordPress-webhely minimális igényekkel évi <strong>6300 Ft</strong>-ért tartalmazza a következőket:</p>
<ul>
<li>500 MB SSD-tárhely</li>
<li>5 db e-mail-fiók (egyenként 500 MB tárhellyel)</li>
<li>1 db adatbázis</li>
<li>WordPress + <a href="https://www.elegantthemes.com/gallery/divi/" target="_blank" rel="noopener">Divi sablon</a></li>
<li>FTP-elérés</li>
<li>Webmail</li>
<li>Webhelystatisztika</li>
<li>ISPConfig-elérés (webhely, e-mailek, adatbázis és egyebek kezelésére szolgáló önkiszolgáló felület)</li>
<li>HTTPS-tanúsítvány (LetsEncrypt)</li>
<li>PHP 7.x és 8.x (igény szerint választható verzió)</li>
<li>DNS-szolgáltatás (1 domainhez)</li>
</ul>
<p>A megrendeléséhez <a href="https://g6.hu/#kapcsolat">vegye fel velünk a kapcsolatot!</a></p>
<blockquote>
<p><em>A nettó árak tájékoztató jelleggel lettek feltüntetve, a cikk írásának pillanatában érvényes állapotot tükrözik, és bármikor megváltozhatnak.</em></p>
</blockquote>
<h2>Közepes céges webhelyigény (webtárhely)</h2>
<p>Éves szinten egy átlagos, közepes szintű céges WordPress-webhely évi <strong>35 000 Ft</strong>-ért tartalmazza a következőket:</p>
<ul>
<li>20 GB SSD-tárhely</li>
<li>10 db e-mail-fiók (egyenként 1 GB tárhellyel)</li>
<li>10 db adatbázis</li>
<li>WordPress + <a href="https://www.elegantthemes.com/gallery/divi/" target="_blank" rel="noopener">Divi sablon</a></li>
<li>FTP-elérés</li>
<li>Webmail</li>
<li>Webhelystatisztika</li>
<li>Automatikus biztonsági mentés</li>
<li>ISPConfig-elérés (webhely, e-mailek, adatbázis és egyebek kezelésére szolgáló önkiszolgáló felület)</li>
<li>HTTPS-tanúsítvány (LetsEncrypt)</li>
<li>PHP 7.x és 8.x (igény szerint választható verzió)</li>
<li>DNS-szolgáltatás (10 domainhez)</li>
<li>Segítségnyújtás a webhely kezdeti üzembe helyezéséhez (legfeljebb 2 munkaóra)</li>
</ul>
<p>A megrendeléséhez <a href="https://g6.hu/#kapcsolat">vegye fel velünk a kapcsolatot!</a></p>
<blockquote>
<p><em>A nettó árak tájékoztató jelleggel lettek feltüntetve, a cikk írásának pillanatában érvényes állapotot tükrözik, és bármikor megváltozhatnak.</em></p>
</blockquote>
<h2>Komolyabb céges webhelyigény (VPS)</h2>
<p>Éves szinten egy magasabb szintű céges WordPress-webhely évi <strong>65 000 Ft</strong>-ért + egyszeri 25 000 Ft-os üzembehelyezési díjért tartalmazza a következőket:</p>
<ul>
<li>120 GB SSD-tárhelyű saját VPS</li>
<li>Korlátlan e-mail-fiók, DNS, saját levelezés<br /><a href="https://www.elegantthemes.com/gallery/divi/" target="_blank" rel="noopener"></a></li>
<li><a href="https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/">A tökéletes Ubuntu 20.04 LTS szerver (és annak minden szolgáltatása)</a></li>
<li>WordPress</li>
<li>ISPConfig</li>
<li>HTTPS-tanúsítvány (LetsEncrypt)</li>
<li>PHP 7.x és 8.x</li>
<li>Alapszintű hardening (tűzfalbeállítások, értesítés SSH-bejelentkezésekről, fail2ban, .htaccess-védelem a nyilvánosan elérhető szolgáltatásoknál, DDoS-védelem)</li>
<li>Segítségnyújtás a webhely kezdeti üzembe helyezéséhez (legfeljebb 2 munkaóra)</li>
</ul>
<p>A megrendeléséhez <a href="https://g6.hu/#kapcsolat">vegye fel velünk a kapcsolatot!</a></p>
<blockquote>
<p><em>A nettó árak tájékoztató jelleggel lettek feltüntetve, a cikk írásának pillanatában érvényes állapotot tükrözik, és bármikor megváltozhatnak.</em></p>
</blockquote>
</div></div><div class="et_pb_code_5 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IPv6-forgalom letiltása a levelezésben a Gmail irányába</title>
		<link>https://g6.hu/2022/01/28/ipv6-forgalom-letiltasa-a-levelezesben-a-gmail-iranyaba/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Fri, 28 Jan 2022 16:57:24 +0000</pubDate>
				<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[levelezés]]></category>
		<category><![CDATA[levelezőrendszer]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=1004</guid>

					<description><![CDATA[Írásunkban bemutatjuk, mi a teendő akkor, ha le szeretnénk tiltani a levelezésben az IPv6-forgalmat egy adott szolgáltató, jelen esetben a Gmail felé.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_6 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_14 et_pb_row et_block_row"><div class="et_pb_column_14 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_21 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Amennyiben az alábbihoz hasonló hibaüzenetet kapunk a leveleink saját levelezőrendszeren keresztül történő kiküldésekor, nagy valószínűséggel a legjobban akkor járunk, ha letiltjuk az IPv6-os forgalmat a Gmail felé.</p>
<pre class="moz-quote-pre" wrap=""><code>gmail-smtp-in.l.google.com[2a00:1450:400c:c07::1b]
     said: 550-5.7.1 [2a01:270:933e::1] Our system has detected that this message does not 550-5.7.1 meet IPv6 sending guidelines regarding PTR records and authentication 550-5.7.1 . Please review 550-5.7.1 <a class="moz-txt-link-freetext" href="https://support.google.com/mail/?p=IPv6AuthError" target="_blank" rel="noopener">https://support.google.com/mail/?p=IPv6AuthError</a> for more information 550
     5.7.1 . 10si2520914wrz.992 - gsmtp (in reply to end of DATA command)</code></pre>
</div></div></div></div><div class="et_pb_row_15 et_pb_row et_block_row"><div class="et_pb_column_15 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_22 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A konfiguráció módosítása</h2>
<blockquote></blockquote>
<p>Elsőként is módosítanunk kell az <strong>/etc/postfix/main.cf</strong> fájlt, és a következő értékkel kell bővítenünk a <strong>transport_maps</strong> tartalmát: <strong>hash:/etc/postfix/transport</strong></p>
<p>Ha követtük a <a href="https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/">tökéletes Ubuntu 20.04 LTS szerver</a> utasításait, akkor az érintett sor így fog kinézni:</p>
<pre class="language-markup"><code>transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf, hash:/etc/postfix/transport</code></pre>
<p>Ezután módosítanunk kell az <strong>/etc/postfix/master.cf</strong> fájlt, és a következőt kell beszúrnunk a fájl <b>végére</b>:</p>
<pre class="language-markup"><code>smtp-ipv4 unix - - - - - smtp
  -o inet_protocols=ipv4</code></pre>
<p>Ahogy mindig, most is fontos, hogy legyenek <strong>szóközök</strong> a második sor elején!</p>
<p>Most hozzuk létre az előbbi transport-fájlt az <span><strong>/etc/postfix/transport</strong> elérési úton, és írjuk bele a következőket:</span></p>
<pre class="language-markup"><code>gmail.com smtp-ipv4:

google.com smtp-ipv4:

*.google.com smtp-ipv4:

googlemail.com smtp-ipv4:

*.googlemail.com smtp-ipv4:</code></pre>
<p>Ahhoz, hogy megfelelő formátumban legyen ez a fájl, futtassuk az alábbi parancsot:</p>
<pre class="language-markup"><code>postmap hash:/etc/postfix/transport</code></pre>
</div></div><div class="et_pb_text_23 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A postfix újraindítása</h2>
<p>Amennyiben minden előkészülettel megvagyunk, adjuk ki az újraindítási parancsot:</p>
<pre class="language-markup"><code>systemctl restart postfix</code></pre>
</div></div><div class="et_pb_text_24 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Hibaelhárítás</h2>
<p>Ha valamit elrontottunk volna a konfiguráció módosítása során, akkor a <strong>postfix</strong> nem indul el, és a hibaüzenetet megtaláljuk a <strong>/var/log/mail.err</strong> fájlban.</p>
</div></div><div class="et_pb_code_6 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Frissítés Ubuntu 18.04 LTS-ről Ubuntu 20.04 LTS-re ISPConfig 3.2-vel (do-release-upgrade)</title>
		<link>https://g6.hu/2022/01/11/frissites-ubuntu-18-04-lts-rol-ubuntu-20-04-lts-re-ispconfig-3-2-vel-do-release-upgrade/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Tue, 11 Jan 2022 18:08:10 +0000</pubDate>
				<category><![CDATA[ISPConfig]]></category>
		<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ispconfig]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[parancssor]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=976</guid>

					<description><![CDATA[Ebben az útmutatóban sorra vesszük azokat a lépéseket, amelyekkel egy szabványos, az ISPConfig által menedzselt Ubuntu 18.04 LTS szervert Ubuntu 20.04 LTS verzióra lehet frissíteni a parancssorból kiadott do-release-upgrade paranccsal, az adatok megőrzése mellett.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_7 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_16 et_pb_row et_block_row"><div class="et_pb_column_16 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_testimonial_0 et_pb_testimonial et_pb_icon_off et_pb_testimonial_no_image et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_testimonial_inner"><div class="et_pb_testimonial_description"><div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p style="text-align: left;"><strong>FONTOS MEGJEGYZÉSEK:</strong></p>
<p style="text-align: left;">A frissítésre érdemes <strong>kb. 2 órát</strong> szánni, ám ebbe nem számítottuk bele a biztonsági mentés készítését.<a href="https://www.howtoforge.com/community/threads/upgrade-os-from-18-04-3-lts-to-latest-20-04-lts-with-3-2-1.85931/" target="_blank" rel="noopener"></a></p>
<p style="text-align: left;">Ha a frissítési szkript problémamentesen lefut, <strong>kb. 25 perc</strong> állásidővel kell számolni a szolgáltatások terén.</p>
<p style="text-align: left;">A frissítésbe ezzel a módszerrel csak akkor szabad belekezdeni, ha a rendszerünk <strong>ép és működőképes</strong> állapotban van, nincsenek megoldatlan csomaghibák vagy adatbázishibák, és az eredeti telepítésekor szigorúan követtük a <a href="https://g6.hu/2020/08/19/a-tokeletes-ubuntu-18-04-lts-szerver/">tökéletes Ubuntu 18.04 LTS szerver</a> létrehozásának lépéseit.</p>
</div></div><div class="et_pb_testimonial_meta"></div></div></div></div><div class="et_pb_text_25 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Ebben az útmutatóban az <strong>Ubuntu 20.04 LTS</strong> (Focal Fossa) verzióra frissítünk a 18.04 LTS verzióról, a <strong>do-release-upgrade</strong> szkript használatával.</p>
<blockquote>
<p><strong>MEGJEGYZÉS</strong></p>
<p>A művelet elkezdése előtt mindenképpen készítsünk a szerverünkről egy teljes értékű biztonsági mentést. Ez történhet egy <em>snapshot</em> vagy <em>checkpoint</em> (Hyper-V) létrehozásával, vagy egy ISO-fájlba történő mentéssel, illetve a rendszer klónozásával.</p>
<p>Ha elindítjuk a frissítést a <em>do-release-upgrade</em> szkripttel, és nem járunk sikerrel, manuálisan kell majd helyreállítanunk a működésképtelen rendszerünket!</p>
</blockquote>
<h2>Manuális biztonsági mentés</h2>
<p>Amennyiben nem tudunk a teljes rendszerről biztonsági mentést készíteni a fenti lehetőségek egyikével sem, fájlszintű mentést is létrehozhatunk, amelynek segítségével kicsit ugyan nehezebben, de újra működőképessé tehetjük a rendszert egy sikertelen frissítést követően. Ennek lépései a következők:</p>
<pre class="language-markup"><code>/* fontos adatok mentése */ 
sudo -s cd /root tar -pczf ./completesystembackup.tar.gz /etc/letsencrypt /home/USER-DIRECTORY /var/vmail /var/log /var/www /etc/cron.d /etc/apache2 /etc/bind /usr/local/ispconfig/interface/lib /usr/local/ispconfig/server/lib /etc/postfix /etc/dovecot /etc/php* 
/* adatbázisok mentése */ 
mysqldump -u root -p --all-databases &gt; all-databases.sql 
/* konfigurációs fájlok mentése (/etc) */
tar -pczf ./backup-etc.tar.gz /etc </code></pre>
</div></div></div></div><div class="et_pb_row_17 et_pb_row et_block_row"><div class="et_pb_column_17 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_26 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Felkészülés a frissítésre</h2>
<blockquote></blockquote>
<p>Mielőtt belekezdenénk a frissítésbe, meg kell győződnünk arról, hogy minden frissítést telepítettünk a jelenlegi rendszerre:</p>
<pre class="language-markup"><code>sudo apt update
sudo apt upgrade
sudo apt dist-upgrade</code></pre>
<p>Ha bármilyen frissítést telepíteni kellett, indítsuk újra a rendszert:</p>
<pre class="language-markup"><code>sudo reboot</code></pre>
<p>A frissítés elindítása előtt győződjünk meg arról, hogy a műveletet a <em>screen</em> használatával futtatjuk, ebben az esetben ugyanis akkor is folytathatjuk majd a műveletet, ha véletlenül megszakadna az SSH-kapcsolatunk:</p>
<pre class="language-markup"><code>sudo apt install screen
screen</code></pre>
<p>Ha valamilyen okból megszakadna a kapcsolat, akkor a következő paranccsal tudjuk folytatni a megkezdett munkamenetet:</p>
<pre class="language-markup"><code>screen -x</code></pre>
<blockquote>
<p><strong>MEGJEGYZÉS</strong></p>
<p>A frissítési folyamat során a szkript meg fog nyitni egy további SSH-kapcsolati portot is, a <strong>1022-es porton</strong>. Ezt a portot a tűzfalon is érdemes megnyitni a frissítési művelet kezdetén, a szkript által megjelenített <strong>iptables</strong>-parancs futtatásával.</p>
</blockquote>
</div></div><div class="et_pb_text_27 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A frissítés elindítása (do-release-upgrade)</h2>
<p>Amennyiben minden előkészülettel megvagyunk, adjuk ki a frissítési parancsot:</p>
<pre class="language-markup"><code>sudo do-release-upgrade</code></pre>
<blockquote>
<p><strong>MEGJEGYZÉS</strong></p>
<p>Amennyiben az első két kérdésnél a telepítés folytatását választjuk, onnantól nincs visszaút. Ha valami balul sül el, a biztonsági mentésből tudjuk csak helyreállítani a rendszerünket.</p>
</blockquote>
<p>A felkínált lehetőségek mindegyikénél elfogadhatjuk az alapértelmezett értéket, az apt-listchangesből a legegyszerűbben a <em>q</em> billentyű lenyomásával tudunk kilépni, az <em>LXD</em> frissítését érintő kérdés után pedig egy ideig nem történik semmi, de nincs más dolgunk, mint várni türelemmel.</p>
<p>Előfordulhat, hogy a <em>phpmyadmin</em> és a <em>roundcube</em> adatbázisának újrakonfigurálására felszólító üzenetet kapunk a frissítés során, ám mivel egyes szolgáltatások a háttérben már nem futnak, a változtatásokat nem tudja a frissítési varázsló végrehajtani. Pánikra semmi ok, ezt a lépést nyugodtan kihagyhatjuk mindenféle változtatás nélkül.</p>
<p>Ugyanígy ügyeljünk arra is, hogy bármilyen konfigurációs fájlt szeretne a folyamat felülírni, mindig az alapértelmezett <em>N</em> választ adjuk, hiszen az összes érintett szolgáltatást vagy saját magunk konfiguráltuk, vagy az ISPConfig kezeli.</p>
<p>Ha sikerrel jártunk, akkor a gép újraindítását követően már a 20.04-es Ubuntu rendszerbe tudunk bejelentkezni. Ha valami mégsem stimmelt volna, akkor viszont érdemes visszaállni a korábbi rendszerre a biztonsági mentésből, és újból nekifutni a folyamatnak. Ha semmilyen konstellációban sem boldogulunk a frissítéssel, akkor érdemes egy <a href="https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/">tiszta telepítést végrehajtani</a>, és a biztonsági mentésből helyreállítani a tartalmakat.</p>
</div></div><div class="et_pb_text_28 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A frissítést követő lépések</h2>
<p>Ugyan a rendszer már frissült az új verzióra, ám néhány további lépést még végre kell hajtanunk ahhoz, hogy minden működőképes legyen.</p>
<p>Elsőként is futtassuk az <em>apparmor</em> eltávolítási parancsát:</p>
<pre class="language-markup"><code>sudo service apparmor stop
sudo update-rc.d -f apparmor remove 
sudo apt-get purge apparmor apparmor-utils</code></pre>
<p>Majd nézzük meg, hogy van-e olyan csomag, amelyet még frissíteni szükséges, és tegyünk egy kicsit rendet a már szükségtelenek eltávolításával:</p>
<pre class="language-markup"><code>sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo apt autoclean</code></pre>
<p>Ha ez is megvan, akkor tegyük rendbe a <em>dovecot</em> levélkiszolgáló szolgáltatást, amelynek az új verziója a korábbinál szigorúbb követelményeket támaszt az általa használt tanúsítvánnyal szemben:</p>
<pre class="language-markup"><code>sudo openssl dhparam -out /etc/dovecot/dh.pem 4096
sudo systemctl restart dovecot</code></pre>
<p>Ez a lépés eltarthat pár percig.</p>
<p>Ha befejeződött, akkor még végig kell mennünk <a href="https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/">a tökéletes Ubuntu 20.04 LTS szerver telepítésének lépésein</a>, ugyanis egyes csomagok vagy konfigurációs beállítások még hiányozhatnak, többek között a <em>postfixnél</em>, a <em>mariadb</em>-nél  és az <em>apache</em>-nál.</p>
<p>Ha ez is megvan, akkor újrakonfigurálhatjuk az ISPConfigot az alábbi paranccsal:</p>
<pre class="language-markup"><code>ispconfig_update.sh --force</code></pre>
<p>A vonatkozó kérdéseknél a szolgáltatásokat és a <em>master</em> adatbázist is újra kell konfigurálnunk, ám ha nem tapasztalunk problémákat, akkor az ISPConfig által beállított tanúsítványokat nem szükséges újra létrehozni.</p>
<p>Végül pedig engedélyeznünk kell a frissítéssel együtt letiltott külső csomagforrásokat (pl. az alternatív PHP-verziókat).</p>
<p>És ha mindez megvan, akkor már csak annyi a feladatunk, hogy utánanézünk a naplófájlokban, hogy minden problémamentesen működik-e. Ha pedig nem, akkor célzott hibaelhárítást kell végeznünk az érintett szolgáltatáson.</p>
<p>Érdemes az ISPConfig adminfelületére is bejelentkezni, és megnézni, hogy ott is a megfelelő adatok látszanak-e. Többszerveres környezetben előfordult, hogy az alárendelt szerver verziószáma csak egy nappal később frissült, és voltak olyan webhelyek is, ahol a tárhelykvótát újra be kellett állítani ahhoz, hogy az áttekintő lapon ne korlátlanként szerepeljenek.</p>
</div></div><div class="et_pb_code_7 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div><div class="et_pb_row_18 et_pb_row et_block_row"><div class="et_pb_column_18 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_29 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Összegzés</h2>
<p>A fenti lépéseket követve egy biztonságos, éles üzemben is használható LAMP-kiszolgálót kapunk, amelyen az Ubuntu 20.04 LTS fut. Mindennek természetesen az alapfeltétele az, hogy a kiindulási alapként szolgáló Ubuntu 18.04 LTS is mindenben kövesse a <a href="https://g6.hu/2020/08/19/a-tokeletes-ubuntu-18-04-lts-szerver/">tökéletes Ubuntu 18.04 LTS szerverre vonatkozó útmutató</a> előírásait. Ha mégsem sikerülne megbirkózni a feladattal, akkor <a href="https://g6.hu/#kapcsolat">vegye fel velünk a kapcsolatot</a>, és segítünk a frissítésben!</p>
<p>&nbsp;</p>
</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A tökéletes Ubuntu 20.04 LTS szerver ISPConfig 3.2-vel</title>
		<link>https://g6.hu/2021/12/23/a-tokeletes-ubuntu-20-04-lts-szerver-ispconfig-3-2-vel/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Thu, 23 Dec 2021 20:48:16 +0000</pubDate>
				<category><![CDATA[ISPConfig]]></category>
		<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Szkriptek]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=952</guid>

					<description><![CDATA[Írásunkban bemutatjuk, hogyan lehet létrehozni egy tökéletes Ubuntu 20.04 LTS szervert a megfelelő biztonsági beállításokkal és szolgáltatásokkal, valamint néhány hasznos extrával, majd pedig telepíteni rá az ISPConfig nevű felügyeleti szoftvert.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_8 et_pb_section et_section_regular et_block_section">
<div class="et_pb_row_19 et_pb_row et_block_row">
<div class="et_pb_column_19 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough">
<div class="et_pb_testimonial_1 et_pb_testimonial et_pb_icon_off et_pb_testimonial_no_image et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_testimonial_inner"><div class="et_pb_testimonial_description"><div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p style="text-align: center;">Az útmutatónak létezik egy <strong>Ubuntu 18.04 LTS</strong>-hez készült változata is, amely <a href="https://g6.hu/2020/08/19/a-tokeletes-ubuntu-18-04-lts-szerver/">itt érhető el</a>.</p>
</div></div><div class="et_pb_testimonial_meta"></div></div></div></div>

<div class="et_pb_text_30 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Ebben az útmutatóban sorra vesszük az <strong>Ubuntu 20.04 LTS</strong> (Focal Fossa) szolgáltatásainak üzembe helyezéséhez szükséges lépéseket, majd telepítjük az <strong>ISPConfigot</strong>, végül pedig elvégezzük a szerver biztonságossá tételét (hardening).</p>
<blockquote>
<p><strong>MEGJEGYZÉS</strong></p>
<p>Az ISPConfig telepíthető többszerveres konfigurációban is, mi ebben az útmutatóban csak a főszerver (master) telepítését ismertetjük. Az ISPConfig telepítése ki is hagyható, ha nincs szükség webes kezelőfelületre a szerver és annak felhasználóinak adminisztrálásához (például egyfelhasználós környezetben, ha nem kell több webhelyet adminisztrálni). Ebben az esetben a megjegyzéseket követve néhány opcionális lépést ki lehet hagyni, végeredményül azonban továbbra is egy biztonságos szerverkörnyezet áll majd a rendelkezésünkre, amely éles üzemben is használható.</p>
<p>Az eredeti, angol nyelvű útmutató itt található: <a href="https://www.howtoforge.com/tutorial/perfect-server-ubuntu-20.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/" target="_blank" rel="noopener">https://www.howtoforge.com/tutorial/perfect-server-ubuntu-20.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/</a></p>
</blockquote>
<p>Az alábbi, magyar nyelvű útmutató az következő plusz információt nyújtja az eredetihez képest:</p>
<ul>
<li>helyenként részletesebb magyarázatok</li>
<li>az <strong>ext4</strong> mellett az <strong>xfs</strong> fájlrendszer támogatása a kvóták beállításánál</li>
<li>a pontos idő rendszeres szinkronizálása <strong>ntpdate</strong> segítségével</li>
<li>jelszóval védett <strong>phpmyadmin</strong></li>
<li><strong>e-mailes értesítés</strong> minden SSH-bejelentkezés és -kijelentkezés esetén</li>
<li><strong>mod_evasive</strong> Apache-modul a szigorúbb webes védelem és a DDoS-támadások megelőzése érdekében</li>
<li><strong>fail2ban-szabályok</strong> az Apache és a roundcube védelméhez</li>
</ul>
</div></div>
</div>
</div>

<div class="et_pb_row_20 et_pb_row et_block_row">
<div class="et_pb_column_20 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough">
<div class="et_pb_text_31 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Előfeltételek</h2>
<p>Az útmutatóban szereplő lépések feltételezik egy már telepített <strong>Ubuntu 20.04 LTS</strong> szerver meglétét, amelyhez a felhasználó <strong>root</strong> jogosultsággal rendelkezik. Ez VPS-szerverek esetén általában automatikusan megtörténik a VPS létrehozásakor, saját környezetben viszont egy telepítési adathordozóról kell először telepíteni az operációs rendszert. Ez az útmutató ezekkel a lépésekkel nem foglalkozik, csak a már müködő rendszer konfigurálásával. Ugyanígy nem tér ki arra sem, hogyan lehet bejelentkezni a frissen telepített rendszerre SSH-n keresztül.</p>
<blockquote>
<p><strong>FIGYELEM!</strong></p>
<p>A sikeres konfigurálás érdekében érdemes egy teljesen újonnan telepített rendszert használni, mivel egyéb esetben a korábbi beállítások ütközést okozhatnak az egyes lépések utasításainak végrehajtása során.</p>
</blockquote>
<p>Az összes használt parancs <strong>root</strong> jogosultságot igényel, ezért a konzolra történő bejelentkezést vagy az SSH-kapcsolat létrejöttét követően elsőként érdemes kiadni az alábbi parancsot:</p>
<pre class="command"><code spellcheck="false">sudo -s</code></pre>
<p>Az egyes fájlok szerkesztéséhez a <strong>nano</strong> szerkesztőt használjuk a példákban. Érdemes megismerkedni a használatával és a benne elérhető parancsokkal, mindenesetre kezdőknek segítségül jelezzük, hogy a módosítások mentéséhez és a fájlok bezáráshoz a <strong>CTRL + X</strong> billentyűkombinációt kell lenyomni, majd az <strong>Y</strong> billentyűt.</p>
</div></div>

<div class="et_pb_text_32 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az /etc/apt/sources.list tartalmának ellenőrzése és a források frissítése</h2>
<p>Amennyiben a telepítés valamilyen fizikai adathordozóról történt, előfordulhat, hogy az még szerepel a telepítési források között. Ennek ellenőrzéséhez érdemes megnyitni az /etc/apt/sources.list fájlt:</p>
<pre class="command"><code spellcheck="false">nano /etc/apt/sources.list</code></pre>
<p>majd meggyőződni annak tartalmáról:</p>
<pre class="command"><code spellcheck="false"># See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse</code></pre>
<p>Ezt követően pedig jöhet a rendszer frissítése:</p>
<pre class="command"><code spellcheck="false">apt-get update</code></pre>
<pre class="command"><code spellcheck="false">apt-get upgrade</code></pre>
<p>Ha a frissítések között újabb kernelverziók is láthatók, akkor ezt követheti egy:</p>
<pre class="command"><code spellcheck="false">apt-get dist-upgrade</code></pre>
<pre class="command"><code spellcheck="false">apt-get autoremove</code></pre>
<p>majd pedig egy újraindítás:</p>
<pre class="command"><code spellcheck="false">reboot</code></pre>
</div></div>

<div class="et_pb_text_33 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az alapértelmezett rendszerhéj beállítása</h2>
<p>Az Ubuntu alapértelmezett rendszerhéja a <strong>dash</strong>, ám nekünk a <strong>bashre</strong> lesz szükségünk, ehhez pedig az alábbi parancsot kell kiadni:</p>
<pre class="command"><code spellcheck="false">dpkg-reconfigure dash<br /><span class="system">Use dash as the default system shell (/bin/sh)?</span><span> </span><span class="highlight">&lt;-- <strong>No</strong></span></code></pre>
<blockquote>
<p><strong>FIGYELEM!</strong></p>
<p>Ennek a lépésnek az elmulasztása esetén az ISPConfig ugyan nem lesz telepíthető, de a rendszer ettől még használható lesz.</p>
</blockquote>
<p>&nbsp;</p>
</div></div>

<div class="et_pb_text_34 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az AppArmor letiltása</h2>
<p>Az Ubuntu egyik beépített biztonsági szolgáltatása az <strong>AppArmor</strong>, ám általában inkább több problémát okoz, mint amennyit segítene a biztonság fokozása terén, ezért érdemes letiltani. Az általa biztosított biztonsági megoldásokat bőven pótoljuk majd a későbbiekben.</p>
<pre class="command"><code spellcheck="false">service apparmor stop
update-rc.d -f apparmor remove 
apt-get remove apparmor apparmor-utils</code></pre>
<blockquote>
<p><strong>FIGYELEM!</strong></p>
<p>Ennek a lépésnek az elmulasztása esetén az ISPConfig ugyan nem lesz telepíthető, de a rendszer ettől még használható lesz.</p>
</blockquote>
</div></div>

<div class="et_pb_text_35 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A rendszeróra szinkronizálása és naprakészen tartása (opcionális)</h2>
<p>Minden rendszeren fontos, hogy pontos legyen a rendszeridő, ehhez pedig érdemes telepíteni az <strong>ntp</strong> nevű csomagot, illetve rendszeres időközönként szinkronizálni az egyik időkiszolgálóval.</p>
<pre class="command"><code spellcheck="false">apt-get -y install ntp ntpdate
</code></pre>
<p>Ezt követően szerkeszteni kell a crontabot, és be kell szúrni az alábbi sort.</p>
<pre class="command"><code spellcheck="false">nano /etc/crontab 

<strong>00 2 * * * root ntpdate time.kfki.hu</strong></code></pre>
<p>Ebben a példában minden nap hajnali 2-kor fut le a szinkronizálás a magyarországi <strong>time.kfki.hu</strong> szerverrel. Érdemes mindig egy közeli szervert kiválasztani a szinkronizáláshoz. Nemzetközi környezetben a <strong>pool.ntp.org</strong> használata javasolt.</p>
</div></div>

<div class="et_pb_text_36 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A postfix, dovecot, mariaDB, rkhunter és binutils telepítése</h2>
<p>A <strong>postfix</strong> telepítéséhez biztosnak kell lennünk abban, hogy nincs telepítve a <em>sendmail</em>:</p>
<pre class="command"><code spellcheck="false">service sendmail stop; update-rc.d -f sendmail remove</code></pre>
<p>Ha nincs telepítve, az alábbi hibaüzenet jelenik meg:</p>
<pre class="command"><code spellcheck="false">Failed to stop sendmail.service: Unit sendmail.service not loaded.</code></pre>
<p>Ekkor jöhet a többi csomag telepítése:</p>
<pre class="command"><code spellcheck="false">apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo patch</code></pre>
<pre class="system"><code spellcheck="false">General type of mail configuration: <span class="highlight">&lt;-- <strong>Internet Site</strong></span>
System mail name: <span class="highlight">&lt;-- <strong>mail.sajatdomain.hu</strong></span></code></pre>
<blockquote><p>A <strong>mail.sajatdomain.hu</strong> helyett egy olyan domainnevet kell megadni, amelyet éles rendszerek esetén aztán majd beállítunk a DNS-ben is. Soha ne olyan nevet adjunk itt meg, amely egyben weboldal címe is lesz, hanem egy technikai nevet, amelyet webes tartalom kiszolgálására biztosan nem használunk.</p></blockquote>
<p>Ezt követően engedélyezzük a <strong>TLS és SASL</strong> működését:</p>
<pre class="command"><code spellcheck="false">nano /etc/postfix/master.cf</code></pre>
<p>Ki kell szedni a megjegyzésből a <strong>submission</strong> és az <strong>smtp</strong> alábbi szakaszait, valamint be kell szúrni 1-1 sort is:</p>
<pre class="command"><code spellcheck="false">[...]
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
<strong>  -o smtpd_client_restrictions=permit_sasl_authenticated,reject</strong>
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
<strong>  -o smtpd_client_restrictions=permit_sasl_authenticated,reject</strong>
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
[...]</code></pre>
<blockquote><p>Fontos, hogy a <strong>-o</strong> előtti szóközök nem hagyhatók le.</p></blockquote>
<p>Most újraindíthatjuk a szolgáltatást:</p>
<pre class="command"><code spellcheck="false">service postfix restart</code></pre>
<p>Majd beállítjuk, hogy a MariaDB a kívülről jövő kapcsolatokat is engedélyezze:</p>
<pre class="command"><code spellcheck="false">nano /etc/mysql/mariadb.conf.d/50-server.cnf</code></pre>
<p>Ehhez megjegyzésbe (#) kell tenni a localhostra (127.0.0.1-re) vonatkozó alábbi sort:</p>
<pre class="command"><code spellcheck="false">[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
<strong>#</strong>bind-address           = 127.0.0.1

[...]</code></pre>
<p>Ezt követően jelszóval kell ellátnunk az adatbáziskiszolgáló root jogosultságú felhasználóját, letiltjuk az anonim felhasználókat, illetve a távoli bejelentkezést root jogosultságokkal:</p>
<pre class="command"><code spellcheck="false">mysql_secure_installation</code></pre>
<pre class="command"><code spellcheck="false">Enter current password for root (enter for none): &lt;-- <strong>Enter billentyű szöveg beírása nélkül</strong>
Set root password? [Y/n] &lt;-- <strong>y</strong>
New password: &lt;-- <strong>A MariaDB root jelszava</strong>
Re-enter new password: &lt;-- <strong>A jelszó még egyzer</strong>
Remove anonymous users? [Y/n] &lt;-- <strong>y</strong>
Disallow root login remotely? [Y/n] &lt;-- <strong>y</strong>
Reload privilege tables now? [Y/n] &lt;-- <strong>y</strong></code></pre>
<p>Beállítjuk a <strong>phpmyadmin</strong> használatához a megfelelő azonosítási módot:</p>
<pre class="command"><code spellcheck="false">echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root</code></pre>
<p>Majd az előbb beállított jelszót megadjuk a rendszer karbantartási feladatai számára:</p>
<pre class="command"><code spellcheck="false">nano /etc/mysql/debian.cnf</code></pre>
<pre class="command"><code spellcheck="false"># Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = <strong>a_root_felhasználó_jelszava</strong>
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = <strong>a_root_felhasználó_jelszava</strong>
socket = /var/run/mysqld/mysqld.sock
basedir = /usr</code></pre>
<p>Szerkesszük az /etc/security/limits.conf fájlt, és adjuk a következő sorokat a fájl végéhez:</p>
<pre class="command"><code spellcheck="false">nano /etc/security/limits.conf

mysql soft nofile 65535
mysql hard nofile 65535</code></pre>
<p>Hozzunk létre egy új könyvtárat, benne egy fájllal és az alábbi tartalommal:</p>
<pre class="command"><code spellcheck="false">mkdir /etc/systemd/system/mysql.service.d/

nano /etc/systemd/system/mysql.service.d/limits.conf

[Service]
LimitNOFILE=infinity</code></pre>
<p>Végül pedig indítsuk újra a szolgáltatást a változtatások életbe léptetéséhez:</p>
<pre class="command"><code spellcheck="false">systemctl daemon-reload
service mariadb restart</code></pre>
</div></div>

<div class="et_pb_text_37 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az amavisd-new, spamassassin és clamav telepítése</h2>
<p>A vírusok és a kéretlen levelek kiszűréséhez telepítsük az alábbi csomagokat:</p>
<pre class="command"><code spellcheck="false">apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey</code></pre>
<blockquote><p>Az ISPConfig használata esetén nincs szükség arra, hogy a spamassassin külön fusson:</p>
<pre class="command"><code spellcheck="false">service spamassassin stop
update-rc.d -f spamassassin remove</code></pre>
</blockquote>
<p>Indítsuk el a clamavot (ha egy hibaüzenet jelenik meg a parancs futtatásakor, azzal most nem kell foglalkoznunk):</p>
<pre class="command"><code spellcheck="false">freshclam
service clamav-daemon start</code></pre>
</div></div>

<div class="et_pb_text_38 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az apache, php, phpmyadmin, fcgi, suexec és pear telepítése</h2>
<p>A weboldalak kiszolgálásához telepítsük az alábbi csomagokat:</p>
<pre class="command"><code spellcheck="false">apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload-perl</code></pre>
<pre class="command"><code spellcheck="false">Web server to reconfigure automatically: &lt;-- <strong>apache2</strong> 
Configure database for phpmyadmin with dbconfig-common? &lt;-- <strong>Yes</strong>
MySQL application password for phpmyadmin: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong></code></pre>
<p>Ezt követően engedélyezzük a szükséges modulokat:</p>
<pre class="command"><code spellcheck="false">a2enmod suexec rewrite ssl actions include cgi alias proxy_fcgi
a2enmod dav_fs dav auth_digest headers</code></pre>
<p>Majd pedig bebiztosítjuk a kiszolgálót a HTTPOXY-támadásokkal szemben:</p>
<pre class="command"><code spellcheck="false">nano /etc/apache2/conf-available/httpoxy.conf</code></pre>
<p>Ennek új tartalma ez lesz:</p>
<pre class="command"><code spellcheck="false"><strong>&lt;IfModule mod_headers.c&gt;
    RequestHeader unset Proxy early
&lt;/IfModule&gt;</strong></code></pre>
<blockquote><p><strong>MEGJEGYZÉS</strong></p>
<p>Ez egy viszonylag régi támadástípus, amelyet 2016 közepén fedeztek fel, és a legnagyobb veszélyt a CGI-környezetekben folytatott PHP-s kódfuttatásra jelenti, ám mivel LTS rendszert használunk, így érdemes duplán bebiztosítani magunkat. (További információ: <a href="https://httpoxy.org/" target="_blank" rel="noopener">https://httpoxy.org/</a>.)</p></blockquote>
<p>Majd engedélyezzük a szabályzatot:</p>
<pre class="command"><code spellcheck="false">a2enconf httpoxy</code></pre>
<p>És ezt követően újraindítjuk a szolgáltatást:</p>
<pre class="command"><code spellcheck="false">service apache2 restart</code></pre>
</div></div>

<div class="et_pb_text_39 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A hhvm telepítése (opcionális)</h2>
<p>A Facebook által létrehozott HipHop Virtual Machine segít felgyorsítani a PHP-kódok futását. A telepítése a következő paranccsal történik:</p>
<pre class="command"><code spellcheck="false">apt-get -y install hhvm</code></pre>
</div></div>

<div class="et_pb_text_40 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A mod_evasive telepítése (opcionális)</h2>
<p>A <strong>mod_evasive</strong> segít megakadályozni a szolgáltatásmegtagadásos támadásokat (DoS, DDoS) és a vég nélküli jelszókitalálásos próbálkozásokat, ugyanis korlátozza, hogy egy felhasználó egy adott időintervallumon belül hány oldalt kérhet le. Önmagában nem nyújt elegendő védelmet, azonban tökéletes kiegészítése a fail2ban működésének, mivel az főként csak a hitelesítésre összpontosít.</p>
<p>A telepítése a következő paranccsal történik:</p>
<pre class="command"><code spellcheck="false">apt-get -y install libapache2-mod-evasive</code></pre>
<p>Ha esetleg rákérdez a telepítő bármire, akkor az alapértelmezett beállítást kell elfogadni. A következő paranccsal lehet ellenőrizni a sikeres telepítését:</p>
<pre class="command"><code spellcheck="false">apachectl -M | grep evasive</code></pre>
<p>Erre egy ehhez hasonló választ kapunk:</p>
<pre class="command"><code spellcheck="false"> evasive20_module (shared)</code></pre>
<p>Alapértelmezés szerint a konfiguráció nincs élesen üzembe helyezve, ezért most ezt kell módosítanunk:</p>
<pre class="command"><code spellcheck="false">nano /etc/apache2/mods-enabled/evasive.conf</code></pre>
<p>Éles üzemben használt szervereken az alábbi értékek használata a javasolt:</p>
<pre class="command"><code spellcheck="false">&lt;IfModule mod_evasive20.c&gt;
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10

    DOSEmailNotify      <strong>root@mail.sajatdomain.hu</strong>
    DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
    DOSLogDir           "/var/log/mod_evasive"
&lt;/IfModule&gt;
</code></pre>
<blockquote></blockquote>
<p>Értelemszerűen a fenti példában lévő <strong>root@mail.sajatdomain.hu</strong> címet egy saját használatú e-mail-címre kell lecserélni. Ezt követően még létre kell hoznunk a naplózáshoz szükséges mappát, megfelelő jogosultságot kell adnunk annak, majd újra kell indítanunk az apache szolgáltatást:</p>
<pre class="command"><code spellcheck="false">mkdir /var/log/mod_evasive
chown -R www-data:www-data /var/log/mod_evasive</code></pre>
<pre class="command"><code spellcheck="false">systemctl restart apache2</code></pre>
</div></div>

<div class="et_pb_text_41 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A phpmyadmin jelszavas védelme</h2>
<p>Bármilyen hihetetlen is, de a phpmyadmin alapértelmezett konfigurációban csak egy olyan jelszavas mezőt tesz elérhetővé, amellyel magához a MySQL szolgáltatáshoz lehet csatlakozni. Ez nem túl biztonságos megoldás, hiszen bárki elkezdhet próbálkozni a jelszavakkal. Szerencsére nem kell túl sok erőfeszítést tennünk ahhoz, hogy az Apache segítségével egy olyan jelszavas bejelentkezést hozzunk létre még ezt megelőzően, amelynél a sikertelen próbálkozásokat már a fail2ban kezeli, így a megadott számú téves próbálkozás után le is tiltja a próbálkozó szellemű támadót.</p>
<p>Ehhez első körben módosítanunk kell az alábbi konfigurációs fájlt, és engedélyeznünk kell a beállítások .htaccess általi módosítását (<strong>AllowOverride All</strong>):</p>
<pre class="command"><code spellcheck="false">nano /etc/apache2/conf-available/phpmyadmin.conf</code></pre>
<pre class="command"><code spellcheck="false"># phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin&gt;
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    <strong>AllowOverride All<br /></strong>[...]</code></pre>
<p>Ezt követően létrehozzuk a bejelentkezést megkövetelő fájl:</p>
<pre class="command"><code spellcheck="false">nano /usr/share/phpmyadmin/.htaccess</code></pre>
<p>És beleírjuk az alábbi tartalmat:</p>
<pre class="command"><code spellcheck="false"><strong>AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user</strong></code></pre>
<p>Majd létrehozunk egy phpmyadmin nevű felhasználót a belépéshez:</p>
<pre class="command"><code spellcheck="false">htpasswd -c /etc/phpmyadmin/.htpasswd phpmyadmin</code></pre>
<p>Ha további felhasználókat szeretnénk hozzáadni ehhez a fájlhoz, akkor az alábbi parancsot kell használnunk:</p>
<pre class="command"><code spellcheck="false">htpasswd /etc/phpmyadmin/.htpasswd <strong>felhasznalonev</strong></code></pre>
<p>A <strong>felhasznalonev</strong> helyére az adott felhasználó nevét írjuk. Végül pedig indítsuk újra a szolgáltatást a változtatások életbe léptetéséhez:</p>
<pre class="command"><code spellcheck="false">systemctl restart apache2</code></pre>
</div></div>

<div class="et_pb_text_42 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A Let's Encrypt telepítése</h2>
<p>Napjaink webhelyei szinte kizárólag HTTPS-kapcsolaton keresztül érhetők el, és az olyan oldalak esetén, amelyeknél ez a feltétel nem teljesül, a böngésző biztonsági értesítést jelenít meg, és egyben nem is tanácsolja annak felkeresését. Régen az ehhez szükséges tanúsítványok csak fizetős verzióban voltak elérhetők (jó drágán), az önaláírt tanúsítványokat pedig szintén nem részesítik előnyben a böngészők. Szerencsére manapság már elérhető a <strong>Let's Encrypt</strong>, amely ugyan nem veheti fel a versenyt a komolyabb tanúsítványokkal, az alapfunkciókat tökéletesen ellátja, és minden böngésző biztonságosként fogja feltüntetni a nálunk tárolt webhelyeket. És ami a legfontosabb, teszi mindezt teljesen ingyenesen és automatikusan.</p>
<p><img decoding="async" src="https://g6.hu/wp-content/uploads/2020/08/secure_https_connection.png" width="479" height="450" alt="" class="wp-image-242 alignnone size-full" style="display: block; margin-left: auto; margin-right: auto;" srcset="https://g6.hu/wp-content/uploads/2020/08/secure_https_connection.png 479w, https://g6.hu/wp-content/uploads/2020/08/secure_https_connection-300x282.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></p>
<p>Így telepíthetjük:</p>
<pre class="command"><code spellcheck="false">apt-get -y install certbot</code></pre>
</div></div>

<div class="et_pb_text_43 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A pureftpd és quota telepítése</h2>
<p>A szerverhez engedélyezhetünk FTP-kapcsolatot (és SSH-kapcsolatot is, de utóbbi használatát nehezebb lesz egyes felhasználóinknak elmagyarázni), és természetesen lehetőségünk nyílik arra, hogy elejét vegyük felhasználóink korlátlan terjeszkedésének, azaz mindenkinek beállíthatunk egy kvótát a webes, adatbázisban tárolt és levelezési tartalmak tárhelyhasználatára vonatkozóan.</p>
<p>Elsőként is telepítsük a szükséges csomagokat:</p>
<pre class="command"><code spellcheck="false">apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool</code></pre>
<p>Ezt követően ellenőrizzük, hogy <strong>standalone</strong> módban fut-e a démon, és a felhasználókat bezárja-e a saját könyvtárukba:</p>
<pre class="command"><code spellcheck="false">nano /etc/default/pure-ftpd-common</code></pre>
<pre class="command"><code spellcheck="false">[...]
STANDALONE_OR_INETD=<strong>standalone</strong>
[...]
VIRTUALCHROOT=<strong>true</strong>
[...]</code></pre>
<p>Mivel a pureftpd alapesetben titkosítatlan kapcsolatokat is engedélyez, itt az ideje, hogy konfiguráljuk hozzá a TLS-kapcsolatokat és létrehozzunk egy (önaláírt) tanúsítványt, mivel nem szeretnénk, hogy a jelszavak sima szövegként utazgassanak az interneten:</p>
<pre class="command"><code spellcheck="false">echo 1 &gt; /etc/pure-ftpd/conf/TLS</code></pre>
<pre class="command"><code spellcheck="false">mkdir -p /etc/ssl/private/</code></pre>
<pre class="command"><code spellcheck="false">openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem</code></pre>
<pre class="command"><code spellcheck="false">Country Name (2 letter code) [AU]: &lt;-- <strong>HU</strong>
State or Province Name (full name) [Some-State]:&lt;-- <strong>Budapest (vagy bármely más megye, ékezetek nélkül)</strong>
Locality Name (eg, city) []:&lt;-- <strong>Budapest (vagy bármely más város, ékezetek nélkül)</strong>
Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;-- <strong>Vállalat vagy szervezet neve</strong>
Organizational Unit Name (eg, section) []:&lt;-- <strong>Részleg neve (pl.: informatikai részleg)</strong>
Common Name (eg, YOUR name) []:&lt;-- <strong>A rendszer teljesen minősített tartományneve (pl.: mail.sajatdomain.hu)</strong>
Email Address []:&lt;-- <strong>A webmester vagy a rendszergazda e-mail-címe</strong></code></pre>
<pre class="command"><code spellcheck="false">chmod 600 /etc/ssl/private/pure-ftpd.pem</code></pre>
<p>Majd indítsuk újra a szolgáltatást:</p>
<pre class="command"><code spellcheck="false">service pure-ftpd-mysql restart</code></pre>
<p>Ezt követően a kvótarendszer aktiválásához módosítanunk kell a következő fájlt:</p>
<pre class="command"><code spellcheck="false">nano /etc/fstab</code></pre>
<p>Minden rendszernél más lehet az egyes csatolt fájlrendszerek elnevezése, mindenesetre nekünk a root fájlrendszert kell megkeresnünk, amit a sima perjel ("/") jelöl, és ehhez kell hozzáadnunk a megfelelő plusz paramétereket.</p>
<p style="padding-left: 30px;">Néhány példa erre:</p>
<p style="padding-left: 30px;"><strong>ext4</strong> fájlrendszer esetén: (<code spellcheck="false"><strong>,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0</strong></code>)</p>
<pre class="command"><code spellcheck="false"># /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# &lt;file system&gt; &lt;mount point&gt; &lt;type&gt; &lt;options&gt; &lt;dump&gt; &lt;pass&gt;
/dev/mapper/server1--vg-root / ext4 errors=remount-ro<strong>,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0</strong> 0 1
/dev/mapper/server1--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0</code></pre>
<p style="padding-left: 30px;">Vagy <strong>ext4 és UUID</strong> használata esetén: (<code spellcheck="false"><strong>,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0</strong></code>)</p>
<pre class="command"><code spellcheck="false">UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / ext4 defaults<strong>,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0</strong> 0 0
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /boot ext4 defaults 0 0
/swap.img       none    swap    sw      0       0
</code></pre>
<p style="padding-left: 30px;"><strong>xfs</strong> fájlrendszer esetén: (<code spellcheck="false"><strong>,uquota,gquota</strong></code>)</p>
<pre class="command"><code spellcheck="false">proc            /proc   proc    defaults        0 0
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / xfs defaults<strong>,uquota,gquota</strong> 1 1
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap sw 0 0
</code></pre>
<p>Ezt követően a módosítások életbe léptetéséhez a következők parancsok kiadására van szükség:</p>
<pre class="command"><code spellcheck="false">mount -o remount /</code></pre>
<pre class="command"><code spellcheck="false">quotacheck -avugm
quotaon -avug</code></pre>
<blockquote>
<p><strong>FIGYELEM!</strong><br /><strong>xfs</strong> fájlrendszer esetén további lépésekre van szükség, ugyanis a kernelben is engedélyezni kell (<strong>rootflags=uquota,gquota</strong>) a kvótát. Ennek lépéseit lásd alább:</p>
<pre class="command"><code spellcheck="false">nano /etc/default/grub</code></pre>
<pre class="command"><code spellcheck="false">[...]
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 <strong>rootflags=uquota,gquota</strong>"
[...]</code></pre>
<pre class="command"><code spellcheck="false">grub-mkconfig -o /boot/grub/grub.cfg</code></pre>
<p>A végén pedig újra is kell indítanunk a rendszert a változtatások életbe léptetéséhez, hiszen a kernelt paramétereztük fel a <strong>rootflags=uquota,gquota</strong> attribútumokkal, így azt is újra be kell tölteni:</p>
<pre class="command"><code spellcheck="false">reboot</code></pre>
</blockquote>
</div></div>

<div class="et_pb_text_44 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A kernel által nem támogatott kvótaformátum hiba</h2>
<p>Előfordulhat, hogy a kernelben még <em>ext4</em> fájlrendszer esetén sem érhetők el a megfelelő modulok, ebben az esetben a következő hiba jelenik meg:</p>
<pre>quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.</pre>
<p>Szerencsére ennek a megoldása nagyon egyszerű, csak az alábbi parancsokat kell futtatnunk:</p>
<pre>apt-get install linux-image-extra-virtual</pre>
<pre><code>echo quota_v1 &gt;&gt; /etc/modules
echo quota_v2 &gt;&gt; /etc/modules</code></pre>
<p>Ha ezzel megvagyunk, akkor már csak újra kell indítanunk a szervert, és máris aktiválni tudjuk a kvótánkat.</p>
</div></div>

<div class="et_pb_text_45 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A bind telepítése</h2>
<p>A DNS-rendszerünket és -kéréseinket kiszolgáló szolgáltatás a manapság iparági szabványnak tekinthető bind lesz, amelynek kísérőjeként egy véletlenszám-generátort is telepítünk. Ennek lépései:</p>
<pre class="command"><code spellcheck="false">apt-get -y install bind9 dnsutils haveged</code></pre>
<pre class="command"><code spellcheck="false">systemctl enable haveged
systemctl start haveged</code></pre>
</div></div>

<div class="et_pb_text_46 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A vlogger, webalizer és awstats telepítése</h2>
<p>A nálunk elhelyezett egyes webhelyekhez statisztikákat is elérhetővé tehetünk, amelyek segítségével jobban nyomon követhető a forgalom, illetve a látogatók statisztikái:</p>
<pre class="command"><code spellcheck="false">apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess</code></pre>
<pre class="command"><code spellcheck="false">nano /etc/cron.d/awstats</code></pre>
<p>Majd itt az összes sort megjegyzésbe kell tenni:</p>
<pre class="command"><code spellcheck="false"><strong>#</strong>MAILTO=root

<strong>#</strong>*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &amp;&amp; /usr/share/awstats/tools/update.sh

# Generate static reports:
<strong>#</strong>10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &amp;&amp; /usr/share/awstats/tools/buildstatic.sh</code></pre>
</div></div>

<div class="et_pb_text_47 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A jailkit telepítése</h2>
<p>A jailkit segítségével lehet a saját könyvtárukra korlátozni az SSH-val bejelentkező felhasználókat:</p>
<pre class="command"><code spellcheck="false">apt-get -y install jailkit</code></pre>
</div></div>

<div class="et_pb_text_48 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2></h2>
<h2>A fail2ban és ufw telepítése</h2>
<p>A <strong>fail2ban</strong> abban segít minket, hogy az egyes szolgáltatások használatakor korlátozza az azonosítási kísérletek számát, így a rosszindulatú támadók nem tudnak egy-egy szolgáltatásnál végtelen alkalommal próbálkozni, amíg ki nem találják a helyes jelszót.</p>
<pre class="command"><code spellcheck="false">apt-get -y install fail2ban</code></pre>
<pre class="command"><code spellcheck="false">nano /etc/fail2ban/jail.local</code></pre>
<p>(ez egy újonnan létrehozott fáj, így az alábbi teljes tartalmat bele kell másolni)</p>
<pre class="command"><code spellcheck="false"><strong>[pure-ftpd]
enabled  = true
port     = ftp
filter   = pure-ftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot]
enabled = true
filter = dovecot
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 3

[apache]
enabled  = true
port     = http,https
filter   = apache-auth
# logpath  = /var/log/apache*/*error.log
logpath  = /var/log/ispconfig/httpd/*/error.log
findtime = 3600
maxretry = 3
bantime  = 86400

[roundcube]
enabled  = true
port     = http,https
filter   = roundcube
logpath  = /var/log/roundcube/userlogins
maxretry = 5</strong></code></pre>
<pre class="command"><code spellcheck="false">service fail2ban restart</code></pre>
<p>Az <strong>ufw</strong> egy alapszintű tűzfal, amely kompatibilis az ISPConfiggal, így annak webes felületén lehet konfigurálni a megnyitni kívánt portokat. Mivel nem túl kifinomult, így általában nem szoktuk használni, hanem saját tűzfalszabályokat szoktunk alkalmazni az adott környezetnek megfelelően, viszont ha valaki csak egy egyszerű környezetben szeretné biztonságosabbá tenni a rendszerét, annak az ufw által nyújtott lehetőségek (az egyes szolgáltatások portjainak engedélyezése vagy letiltása) is elegendőek lehetnek. Akárhogyan is, telepíteni azért érdemes, mert a működése a webes felületről teljes mértékben irányítható (és ki is kapcsolható).</p>
<pre class="command"><code spellcheck="false">apt-get install ufw</code></pre>
</div></div>

<div class="et_pb_text_49 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A roundcube webmail telepítése</h2>
<p>Levelezésünket ugyan teljes mértékben kezelni tudjuk a különböző levelezőkliensekből, mégis egyes felhasználók előnyben részesítik néha a webes kezelőfelület használatát. Arról nem is beszélve, hogy a spamszűrést és egyéb, a levelezéssel kapcsolatos beállítási lehetőséget csak a webmailen keresztül tudjuk elérhetővé tenni a számukra (ezzel egy külön cikkben foglalkozunk). Ehhez a roundcube-ot hívjuk segítségül:</p>
<pre class="command"><code spellcheck="false">apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce</code></pre>
<pre class="command"><code spellcheck="false">Configure database for roundcube with dbconfig-common? &lt;-- <strong>Yes</strong>
MySQL application password for roundcube: &lt;-- <strong>Enter billentyű szöveg beírása nélkül</strong></code></pre>
<pre class="command"><code spellcheck="false">nano /etc/apache2/conf-enabled/roundcube.conf</code></pre>
<p>Itt engedélyeznünk kell a roundcube aliasait (az egyiknél csak a megjegyzést kell eltávolítani, a másikat újonnan kell beírni), illetve engedélyezni kell a .php kiterjesztést is.</p>
<pre class="command"><code spellcheck="false"># Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
<strong>    Alias /roundcube /var/lib/roundcube
    Alias /webmail /var/lib/roundcube</strong>

&lt;Directory /var/lib/roundcube/&gt;
<strong>  AddType application/x-httpd-php .php</strong>
  Options +FollowSymLinks
  # This is needed to parse /var/lib/roundcube/.htaccess. See its
  # content before setting AllowOverride to None.
  AllowOverride All
[...]</code></pre>
<p>Majd újraindítjuk a szolgáltatást:</p>
<pre class="command"><code spellcheck="false">service apache2 restart</code></pre>
<p>Végül pedig csak a helyi gép levelezéséhez engedélyezzük a csatlakozást:</p>
<pre class="command"><code spellcheck="false">nano /etc/roundcube/config.inc.php</code></pre>
<pre class="command"><code spellcheck="false">[...]
$config['default_host'] = '<strong>localhost</strong>';
[...]
$config['smtp_server'] = 'localhost';
$config['smtp_port']  = 25;
[...]</code></pre>
</div></div>

<div class="et_pb_text_50 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Az ISPconfig telepítése</h2>
<p>A legújabb verzió a következő parancsokkal telepíthető:</p>
<pre class="command"><code spellcheck="false">cd /tmp 
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/</code></pre>
<pre class="command"><code spellcheck="false">php -q install.php</code></pre>
<p>A telepítő gyakorlatilag minden szolgáltatást konfigurál nekünk, csupán néhány kérdésre kell választ adnunk.</p>
<blockquote><p>FONTOS!<br />
Az alábbiakban a főkiszolgáló (<strong>master</strong>) beállításait tüntetjük fel. Többkiszolgálós környezetben a többi szerver telepítésénél más beállításokat kell kiválasztani!</p></blockquote>
<pre class="command"><code spellcheck="false">--------------------------------------------------------------------------------

&gt;&gt; Initial configuration
Operating System: Ubuntu 18.04 (Bionic Beaver)
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with &lt;enter&gt;.
Tap in "quit" (without the quotes) to stop the installer.

Select language (en,de) [en]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Installation mode (standard,expert) [standard]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [mail.sajatdomain.hu]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
MySQL server hostname [localhost]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
MySQL server port [3306]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
MySQL root username [root]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
MySQL root password []: &lt;-- <strong>A MySQL-nél megadott rootjelszó</strong>
MySQL database to create [dbispconfig]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
MySQL charset [utf8]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
.......................................................................++
........................................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: &lt;-- <strong>HU</strong>
State or Province Name (full name) [Some-State]: &lt;-- <strong>Budapest (vagy bármely más megye, ékezetek nélkül)</strong>
Locality Name (eg, city) []: &lt;-- <strong>Budapest (vagy bármely más város, ékezetek nélkül)</strong>
Organization Name (eg, company) [Internet Widgits Pty Ltd]: &lt;-- <strong>Vállalat vagy szervezet neve</strong>
Organizational Unit Name (eg, section) []: &lt;-- <strong>Részleg neve (pl.: informatikai részleg)</strong>
Common Name (e.g. server FQDN or YOUR name) []: &lt;-- <strong>A rendszer teljesen minősített tartományneve (pl.: mail.sajatdomain.hu)</strong>
Email Address []: &lt;-- <strong>A webmester vagy a rendszergazda e-mail-címe</strong>
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Metronome XMPP Server
writing new private key to 'localhost.key'
-----
Country Name (2 letter code) [AU]: &lt;-- <strong>HU</strong>
Locality Name (eg, city) []: &lt;-- <strong>Budapest (vagy bármely más város, ékezetek nélkül)</strong>
Organization Name (eg, company) [Internet Widgits Pty Ltd]: &lt;-- <strong>Vállalat vagy szervezet neve</strong>
Organizational Unit Name (eg, section) []: &lt;-- <strong>Részleg neve (pl.: informatikai részleg)</strong>
Common Name (e.g. server FQDN or YOUR name) [server1.canomi.com]: &lt;-- <strong>A rendszer teljesen minősített tartományneve (pl.: mail.sajatdomain.hu)</strong>
Email Address []: &lt;-- <strong>A webmester vagy a rendszergazda e-mail-címe</strong>
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Admin password [admin]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül (a jelszót a webes felületen érdemes módosítani, az első bejelentkezés után)</strong>
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Generating RSA private key, 4096 bit long modulus
.......................++
................................................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: &lt;-- <strong>HU</strong>
State or Province Name (full name) [Some-State]: &lt;-- <strong>Budapest (vagy bármely más megye, ékezetek nélkül)</strong>
Locality Name (eg, city) []: &lt;-- <strong>Budapest (vagy bármely más város, ékezetek nélkül)</strong>
Organization Name (eg, company) [Internet Widgits Pty Ltd]: &lt;-- <strong>Vállalat vagy szervezet neve</strong>
Organizational Unit Name (eg, section) []: &lt;-- <strong>Részleg neve (pl.: informatikai részleg)</strong>
Common Name (e.g. server FQDN or YOUR name) []: &lt;-- <strong>A rendszer teljesen minősített tartományneve (pl.: mail.sajatdomain.hu)</strong>
Email Address []: &lt;-- <strong>A webmester vagy rendszergazda e-mail-címe</strong>
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
An optional company name []: &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
writing RSA key

Symlink ISPConfig LE SSL certs to postfix? (y,n) [y]:  &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>
Symlink ISPConfig LE SSL certs to pureftpd? Creating dhparam file takes some times. (y,n) [y]:  &lt;-- <strong>Enter billentyű lenyomása szöveg bevitele nélkül</strong>

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.............................................................+.........................................................................................................................................................................+...................

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.</code></pre>
<p>Ezt követően pedig a 8080-as porton máris be tudunk jelentkezni az ISPConfigba. A felhasználónév és a jelszó azonos (admin), ám <strong>a jelszót az első bejelentkezés után erősen javasolt megváltoztatni!</strong></p>
<pre class="command"><code spellcheck="false">https://mail.sajatdomain.hu:8080</code></pre>
<p><img decoding="async" src="https://g6.hu/wp-content/uploads/2020/08/ispconfig_login-300x243.png" width="300" height="243" alt="" class="wp-image-183 alignnone size-medium" style="display: block; margin-left: auto; margin-right: auto;" /></p>
</div></div>

<div class="et_pb_text_51 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>E-mailes értesítés az SSH-bejelentkezésekről</h2>
<p>Egy nyilvános szerver esetén érdemes minden óvintézkedést megtenni annak érdekében, hogy minden furcsa eseményről értesüljünk. A parancssori (SSH-) bejelentkezés egy kiemelten kritikus pontja a rendszerünknek, még akkor is, ha a korábbi lépéseket követve mindenkit bezártunk a saját könyvtárába. Az események nyomon követését segíti, ha e-mailes értesítést kapunk az SSH-s bejelentkezésekről. Ehhez először is hozzuk létre a figyelést végző szkriptet:</p>
<pre class="command"><code spellcheck="false">nano /usr/sbin/user-monitor.pl</code></pre>
<pre class="command"><code spellcheck="false"><strong>#!/usr/bin/perl
# user_monitor.pl v0.4 :: keep track on who's logged in
# Written by Stephan Schmieder - http://www.unix-geek.info, 2003
# Usage: ./user-monitor.pl&amp;

use strict;
use warnings;
use diagnostics;
use Net::SMTP;

#configuration
my $server =`uname -a|cut -d" " -f2`;
my $smtp_server ='localhost';
my $mail_to     ='root@mail.sajatdomain.hu';
my $mail_from   ='root@' . $server;
my $subject     ="$server :: User login monitor";
#configuration

my @old_users=split(/n/, qx/who/);
while(sleep(60))
{
        my @users=split(/n/, qx/who/);
        if(@users ne @old_users)
        {
                my $smtp = Net::SMTP-&gt;new($smtp_server);
                die "Couldn't connect to server" unless $smtp;
                $smtp-&gt;mail( $mail_from );
                $smtp-&gt;to( $mail_to );
                $smtp-&gt;data();
                $smtp-&gt;datasend("Subject: $subjectnn");
                foreach my $user (@users)
                {
                        $smtp-&gt;datasend("$usern");
                }
                $smtp-&gt;dataend();
                $smtp-&gt;quit();
        }
        @old_users=@users;
}</strong></code></pre>
<p>A <strong>root@mail.sajatdomain.hu</strong> helyére azt az e-mail-címet írjuk, ahová az értesítéseket kérjük.</p>
<blockquote>
<p><strong>FONTOS!</strong><br /> A szkript a rendszer saját postfix szolgáltatását használja a kimenő levelekhez, és elég kevés információt tesz bele a levélbe, ezért könnyen lehet, hogy az olyan nagyobb rendszerek, mint a gmail, levélszemétként észlelik az így küldött üzeneteket. Érdemes engedélyezési listára (whitelist) tenni a feladót, de a fenti szkriptet át is lehet írni igény szerint (akár egy külső SMTP-szolgáltatás, például a <a href="https://postmarkapp.com/" target="_blank" rel="noopener"><strong>Postmark</strong></a> használatára).</p>
</blockquote>
<p>Ezután módosítjuk a futtatási engedélyeket:</p>
<pre class="command"><code spellcheck="false">chmod 755 /usr/sbin/user-monitor.pl</code></pre>
<p>Ahhoz, hogy a szkript minden rendszerindításkor elinduljon a háttérben, felvesszük a crontab bejegyzései közé a következő sor beszúrásával:</p>
<pre class="command"><code spellcheck="false">nano /etc/crontab</code></pre>
<pre class="command"><code spellcheck="false"><strong>@reboot root    /usr/sbin/./user-monitor.pl&amp;</strong></code></pre>
<p>Most pedig elindítjuk kézzel:</p>
<pre class="command"><code spellcheck="false">/usr/sbin/./user-monitor.pl&amp;</code></pre>
<p>A sikeres indítást követően meg kell jelennie a futó folyamatok listájában:</p>
<pre class="command"><code spellcheck="false">ps aux | grep monitor.pl</code></pre>
<pre class="command"><code spellcheck="false">root      1026  0.0  0.2  59548 11380 ?        S    Aug09   0:22 /usr/bin/perl /usr/sbin/./user-monitor.pl</code></pre>
</div></div>

<div class="et_pb_code_8 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div>
</div>
</div>

<div class="et_pb_row_21 et_pb_row et_block_row">
<div class="et_pb_column_21 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough">
<div class="et_pb_text_52 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Összegzés</h2>
<p>A fenti lépéseket követve egy biztonságos, éles üzemben is használható LAMP-kiszolgálót kapunk, amely ráadásul egy webes kezelőfelületen keresztül menedzselhető. Akár késznek is nyilváníthatjuk, ha az alapfunkciókon felül különösebb igényeink nincsenek, de alapul is szolgálhat a további testreszabásokhoz.</p>
</div></div>
</div>
</div>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ext2/3/4 vagy xfs fájlrendszerű partíció megnövelése újraindítás nélkül egy virtuális gépen</title>
		<link>https://g6.hu/2021/11/03/ext2-3-4-vagy-xfs-fajlrendszeru-particio-megnovelese-ujrainditas-nelkul-egy-virtualis-gepen/</link>
		
		<dc:creator><![CDATA[Chilly]]></dc:creator>
		<pubDate>Wed, 03 Nov 2021 08:31:41 +0000</pubDate>
				<category><![CDATA[Kiszolgálók]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vps]]></category>
		<guid isPermaLink="false">https://g6.hu/?p=940</guid>

					<description><![CDATA[Írásunkban bemutatjuk, hogy virtuális gépek esetén hogyan lehet a gépnek kiosztott további tárhelyet felhasználni a partíció megnöveléséhez anélkül, hogy ehhez újra kellene indítani a rendszert.]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section_9 et_pb_section et_section_regular et_block_section"><div class="et_pb_row_22 et_pb_row et_block_row"><div class="et_pb_column_22 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough"><div class="et_pb_text_53 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><p>Kiindulási pontként tegyük fel, hogy van egy virtuális gépünk (VPS), amelyet elhelyeztünk egy szolgáltatónál, vagy pedig saját magunk üzemeltetünk. Mivel a VPS esetén az erőforrásokat dinamikusan, az igények megváltozásával összhangban tudjuk kiosztani, így amikor elkezd elfogyni a tárhely, egyszerűen csak több tárterületet adunk a gépnek, és ez a változtatás azonnal életbe is lép.</p>
<p>Igen ám, de mi a helyzet a partíció megnövelésével? Attól még, hogy a virtuális gép rendelkezik a megfelelő erőforrásokkal, a meglévő partíciós sémánk és partícióink nem fogják rögtön használatba venni a rendelkezésükre álló tárhelyet. Szerencsére a manapság használatos rendszerek esetén már nincs szükség új partíciók létrehozására, megformázására, adatok másolgatására vagy a rendszer újraindítására. Néhány egyszerű lépésben birtokba vehetjük a plusz kapacitást.</p>
</div></div><div class="et_pb_text_54 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>Előkészületek</h2>
<p>Mielőtt bármilyen parancsot is futtatnánk, először is meg kell győződnünk arról, hogy a gépünk rendelkezik a megnövelt kapacitással. Ha a szolgáltató felületén megrendeltük a nagyobb tárhelyet, vagy a saját üzemeltetési környezetünkben kiosztottuk a további erőforrásokat, a következő parancsok futtatásával azonosíthatjuk be a későbbi parancsokhoz szükséges partíciót és a rendelkezésre álló hely mennyiségét:</p>
<pre><code>blkid</code></pre>
<p><img decoding="async" src="https://g6.hu/wp-content/uploads/2021/11/partition_types.png" width="887" height="85" alt="" class="wp-image-948 aligncenter size-full" srcset="https://g6.hu/wp-content/uploads/2021/11/partition_types.png 887w, https://g6.hu/wp-content/uploads/2021/11/partition_types-480x46.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 887px, 100vw" /></p>
<p>A segítségével megjeleníthetjük a jelenleg elérhető partíciókat és az azonosítójukat, valamint a használt fájlrendszer típusát. Utóbbi fogja meghatározni, hogy az alábbiakban pontosan mely parancsokkal tudjuk megnövelni a fájlrendszer méretét.</p>
<pre><code>lsblk</code></pre>
<p><img decoding="async" src="https://g6.hu/wp-content/uploads/2021/11/free_unallocated_space.png" width="481" height="139" alt="" class="wp-image-947 aligncenter size-full" srcset="https://g6.hu/wp-content/uploads/2021/11/free_unallocated_space.png 481w, https://g6.hu/wp-content/uploads/2021/11/free_unallocated_space-300x87.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<p>A segítségével megjeleníthetjük a lemezek és partíciók listáját, továbbá láthatjuk, hogy valamelyik lemezen rendelkezésre áll-e a számunkra a még kiosztatlan tárterület.</p>
</div></div><div class="et_pb_text_55 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A partíció megnövelése</h2>
<p>Ha meggyőződtünk arról, hogy ext2/3/4 vagy xfs fájlrendszert használunk, illetve hogy rendelkezésünkre áll a szabad tárhely, akkor következő lépésként meg kell növelnünk a kiszemelt partíció méretét. Ehhez először meg kell győződnünk arról, hogy rendelkezünk a megfelelő parancs futtatásához szükséges csomagokkal a rendszeren:</p>
<pre><code>sudo apt -y install cloud-guest-utils gdisk</code></pre>
<p><em>(Ubuntu/Debian rendszer esetén)</em></p>
<pre><code>sudo yum -y install cloud-utils-growpart gdisk</code></pre>
<p><em>(CentOS/Fedora/RHEL rendszer esetén)</em></p>
<p>Tegyük fel, hogy a megnövelendő partíció a fenti példában is látható <strong>/dev/vda1</strong>. Ebben az esetben a használandó parancs a következő:</p>
<pre><code>sudo growpart /dev/vda 1</code></pre>
<p><em>(Ügyeljünk arra, hogy a partíció száma előtt egy szóköz is van!)</em></p>
<p>Ha most lefuttatjuk az <strong>lsblk</strong> parancsot, akkor már a megnövelt partícióméretnek kell megjelennie.</p>
</div></div><div class="et_pb_text_56 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module"><div class="et_pb_text_inner"><h2>A fájlrendszer megnövelése</h2>
<p>Egyetlen feladatunk maradt hátra, és ez a tényleges tárhely használatba vétele. Ehhez <strong>ext2/3/4</strong> fájlrendszer esetén a következő parancsot kell kiadnunk:</p>
<pre><code>sudo resize2fs /dev/vda1</code></pre>
<p><strong>xfs</strong> fájlrendszer használata esetén pedig a következő parancsot:</p>
<pre><code>sudo xfs_growfs /</code></pre>
<p>Ha nem a <em>root</em> fájlrendszert méretezzük át, akkor használhatjuk az alábbi szintaxist is:</p>
<pre><code>sudo xfs_growfs -d /dev/vda1</code></pre>
<p>Most már csak annyi a dolgunk, hogy ellenőrizzük, életbe léptek-e a változások:</p>
<pre><code>df -hT | grep /dev/vda</code></pre>
<p>Ha minden jól ment, máris rendelkezünk a megnövelt tárhellyel, és ehhez még csak a rendszert sem kellett újraindítani!</p>
</div></div><div class="et_pb_code_9 et_pb_code et_pb_module"><div class="et_pb_code_inner">[icegram campaigns=206]</div></div></div></div></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
