From e975c0d604809ad78557aa74d1b7b27fbf53eb39 Mon Sep 17 00:00:00 2001 From: trimstray Date: Thu, 21 Feb 2019 22:53:57 +0100 Subject: [PATCH] fixed footer; minor updates - signed-off-by: trimstray --- README.md | 9 +++++---- doc/img/start_preview.png | Bin 0 -> 24819 bytes 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 doc/img/start_preview.png diff --git a/README.md b/README.md index 7f0ee31..00ed317 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ ### General disclaimer -**The Practical Linux Hardening Guide** provides a high-level overview of the hardening GNU/Linux systems. It is not an official standard or handbook but it _touches_ and _use_ industry standards. +**[The Practical Linux Hardening Guide](https://github.com/trimstray/the-practical-linux-hardening-guide/wiki)** provides a high-level overview of the hardening GNU/Linux systems. It is not an official standard or handbook but it _touches_ and _use_ industry standards. This guide also provides you with _practical step-by-step instructions_ for building your own hardened systems and services. One of the main goals of this guide is to create a single document covering _internal_ and _external_ threats. @@ -92,8 +92,6 @@ The process of hardening servers involves both IT ops. and security teams and re You need to harden your system to protect your assets as much as possible. Why it's important? Please read a great and short article that [explains hardening process](https://linux-audit.com/linux-server-hardening-most-important-steps-to-secure-systems/) step by step by [Michael Boelen](https://michaelboelen.com/). -The first time is always the hardest, and I hope this guide will get you started down the righteous path. - ### How to hardening Linux? In my opinion you should definitely drop all non-industry policies, articles, manuals and other (especially on your production environments but also if you harden standalone home server). These lists exist to give false sense of security and they are not bases on authority standards. @@ -259,4 +257,7 @@ For more please see [LICENSE](https://github.com/trimstray/the-practical-linux-h --- -:heavy_check_mark:  If you want to start, go **[here](https://github.com/trimstray/the-practical-linux-hardening-guide/wiki)**. +

+ Master +

diff --git a/doc/img/start_preview.png b/doc/img/start_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4e33a5a5f32f101ca6c123e4dcd4b90fe9635d GIT binary patch literal 24819 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

}2gNk=HB~f1BykC#?X)HLY8s8WYc=A_cKtLS2 zD?sMP56x{}|0|tM!^dpA9mS~?UpRKSB;+hW$l|jf`kP#mUvk7%NsB%G*;~op;NFw5 z3%6obj=DQs6LY9;0|{Wc;(6mRvDrD0Dd(dGnyC3htQM=G8{vw+?LnK~!SmG@wbOY&TNaJ6SWCo$!SrN$6jK`V+oI>ekS1A|%42Q(2gq70HQla&peFCc`8A zr|l{O8eBjUguvpTUDX1qo(ZhogfE@$p{UqO;fbMf#UQdoh4U+kNNK+_ws{qLCGD2r zsCjm!rkv4MIlDNVftH;zwmEzl%5fVo+Ai%y0Lu-%hbUMXx`c3?zk?)VO^PbMvOIahLr%XzUqagP!@aqtL}! zUpq!$IxUAXc29CtY_^g3oXv(H?CC-Ta$^pEc0lyup+8Jj-d1^qyOZW%~R}PKB@1tp}N$yi&KHMZbxg!zW^m4qKE@GYn02 zH{eBJ4qJ}%ot|i6W65}YUqqygDA;h>%@~LzwCDCA(J?WP!z*a$dXj~{xS*Yl*n*fu zlGe}4VY2oe1jQZqnJ1QDTnKimZLXUYvi{?W&>tIfQ`6dD{YhdX1WWbW}!yl;;axfau+4^gZfjkM@Zgs=#` z!+-~pKc}Vwcmak{yyI%}ax_O}Q+u&iPU^6<$OvLqvkY#63E|@OcoqJM87MeRj!Ym5 zhK>uEY8WQiQ6HWVk&=$I>a6}q3>%v%E6zRanihIFkR&$#^&5|mt2%-8I~ucPw+RkidR^x+t~sIC4HVPBw16+iOl$R* zX4m5pS=I$6Nfn-Ew!lW-QUJw}D z*d0lkZ?IoyuGMe5-^*aa_sDJYkqLmq6H>-VA{yYcnKLO8I?;^(hQMdTw(E|c+(w+dJuMvX9wW-_ti|my&7kV8z=02o!Jek5-z{50k9YcIB zHoB;&akBRdmx{~@uPExsb;|aFA>=?fyO|apqaCen>|cK#+$m;#$jm9;?~_vdRJlCZ*{2*B+57zV^3V zWIRb9=+9=r@%Q%_?bUAk_~dWc2LPtKmd~dam_WEL>-=vMfv~h4W zJ_}M|Zl-xjZFw{3?Cy+#+f57qI-Z%C+yAyLsimBWyFcT+)S0YHBHQ!Up$QJi;dn-~tnP2KEr;(H0mk@I@^vnO7 zSIgpxs3Z;8`6ts%m(Jg(oTzzISbE@RM+g-$1qBNLlg(eZ4qmsu9ndh_SpRlCb_)y@ zl!-xYmMc!z+FI=CS%a7UF=xt21-}>2y0WL$9zK5sLZooi#mtMJg-})Ut zw?nFxi~Co>NZZ<=@HR>@{ypk3;pD6}&x5D8JTM`9yIrJ;PlA#Cy35nq>+jDZ-g&Va5!h)o$2>J+O?}N!wrpGOy;x( zQaqnFIP5fOQhFmDq>Va}0g$~==c8R48f?FQti1dAOg{}g=!wQvGU~h_&hAY(#eL30 z$o}omzPf?qth%NrAmXhmg?u}vvTeH@A$WlHRD zb?%>j1{DQE%U{NZnMQt&j*d108XWK2lgWN;`<7Gg{t95U#u^x(8YRkCDVbL1V*mCo}FOGkvICHuCKqi{}yam zc%v4cKdSPT`!R~~@lFqsSWc}LEd%?fiJ}?5pnDhI%-w$t`S;M!I=Ts9yvw`|(2st$ z@$zaG6*F1B?FKN!zc*K+9#^ku!D3+*!(ytA2~oCqg34pYm|eI}{qh;gU)il%H;PAj zop%tAoYDLFr3(ngZgqWr3XJXnGL^RiBWwa&G>AtWr!e-9OuX#%P+2TOT|wn?>Sepd z&ct!mxeY^q{y$p#zHdkdZgtl^$GLqF3~7fzpcc%{Ir7IH&La@>TSXY zv(UC5oMKb!E5l@H=~l~lSL=}&r-6R^?!KXQ+U1i_X$xTH%&eti8Gxi?=Gy-YFY`J~ zk!Z{4 zHl!0z&kdJz`revm3}7mj!OW3#JJq+TPp{leX&cTJsi*6ZX=t}w#|8uhL%9&t34TL552_1!A67<$ z&tiwBsr!|3vg|8OWf=EYr)VvPQ3Jz9wZ%k8A~RZ0fnv27(ap+2leN|L8hO= zWc>?QIYP*lx<_&jwI+Qgr6=24>)&`@9(`hlRYf_J0fKeQ-4DF%Ix`KH*=V#nwUp_> zq;Xj5z~e2K<=IOVdG{KEt-C%@IvRFO63dtA%?oJP$q;>J+#Xkx z{piY+Nczp#M+?-%&@%Fl`OlGHWsZYC!yyednGWFJ?XbOAGaCo?Zi??x<4DT(NT!;SdMR$JVDQ9v3{)f&>WAw zl;%$grhva|@4QGwNxy#pHadBQ@QzT8PDW$#V55Hw=3Rdd#8~p&i&t#u?E)Cu> zrg$WZ%(LK?#?fx|a1_MH5vF+$48Sc;FUlr=IMm622lvUf#WItW{A;_MDYTSHGLQPN z=4U?-ff3XY0sP^HBVs|hw;Tq;mK%Y?Ym`R(Tl${xv28?wFi`)7`mo3D<14b}_6zhV zXPy&`3Hp*8O(Wz<>^8)7khmc9hn7-J)LNUZH1}Nrl9HJ0+jpX#4e_HZfygP&v-zpm zl#P=}nZAn1xMT1sUgD8?clT8pb4I{`z)5LwHVKaCpTR+?=Qzo?hrFjB-Si9b`H$2$ z+C`~_ehmx-hDSx6@d;1jOhuc2eC{zrpY6*}<^P0qFg-2Y`$xAVSBeZ z3Q_qe=Y?r_1eY>(evEO(PQu-xzY&&;>YEh%Xu%RfmEONUq87-zwoK z1H67DiQ1swhbb9L$&5Vhg7LR~d;4S4-soWlo|sp63wQt?aLd)OQ`Wge;o4cMTKt`N zzt(24dMOC&)57-i7_TsDc)1?Y!=WA$Y^mH^paW6$QblIOX{CEw$Y-o9r;{x*txd;2 zYE81be|0AW&dFKL&n5P}Dl?r(8qaWZ$7SFS1>ax9;i~pOB|-MVWY}qQ^a~)V=ikeN zV-7YtfsX_YKG+qG^|(@6s{)uUM=_^sMG67ZegElHizy_YHBib350(=KaDJh@`!0KF z=FI=K&w>BVY$|X`*J;n*o%WLA;UxK~lDwTNJ0>fK&Mo|fGU6t%!q+ebkI~9WB4CR+ zz@{8#Gu?8mcvW^=e7M3{&+uZ5q28N{o$pzHIZFU|e9XzVrL;}#3#8Y67(CS_s?;Iw?2hf%6wLS=Ns2C!yw9O`-4 zFk@p-(aq;k_O~;jPNFiXbRaMv^6-4OZqKlBmF8tQ$docNnJwr|f+h6y+fMyKa!;H@ zE-HXiS{_ieN2?Upe6_d>9L-5R6TpA3nKnoy^I08`iKuxy6%(0d(Cqmn;& zMyTvQj$;es(6I}KxFXA;PKn8J;JS!XgB)&hICJqtv+G3%JLLVwakEjKeRb)XjNTMu zz8xof!|qS7I&~V4QbbRGR`hOQF*1S69waPB@dF9UM2+Xwu+*JF%Zr&O{de6O1vg}L zc3MC(`wBj0_SiPtct+0YsrSD*u>Sw%nct?WeX_afR;mT&Jo20Rh)89WSm8j@c{Ze4Ia{(fih_z!c~`&M4O?JW~YM;19D zKwf`JiBpbg8@DDsMTaQ|OBM-+S|f_IVc`SB?fpZCQN-Q2F;Izq!0I8VGK(7W?afMX%>!~EFR&0qKKSY~;L_wjh z&2ap_%DJbk6BifvWoAY#jg8=Zy~D5TR-p3oP|>d$#nZ?rPyuMPiLhf5dOhsnh9cT* z99D(Qg8!5KjUb_qeE9C?<-ni)9BOYo%hE45$>`H3fJPGBm(FOC?}yWxY08UNq+XC~9FMsEBta+Xn zbBLR(hlT)zGz<*v0Mo2Sv=ToCH}l&rD@@>yed|3u_B3tXA+7dT&cLJi$&6C5|2}$4K{kR|Y?!9wo&N=hU zd4Ag#O;7qZ41&mJl{){RXSPYJ()}|%OWKcW{jzPwf8U1aT=4dBs?jaGOj3WpU%wbo zlg)RZ&k|h_MRYh?zxfKfkdb4t#Vx{jNU+o`ukYMzFf3UUkD*xqmUGg-l$+*)H342n zI2`ZB2SH=vmlFb;zMD(I?Vv|dgu{PXx%iW#~J==as0S3kMhbcy76oC>ai_o?kpiPi1KtI+M#^ z-HOrd)_LfFavjfZe510hrv4)dL8B+YFVa)P02CMxXIZ6Y>dn(n@dcFnKQvM&iXV~j z;m0v&B{zf0aeu-=c(8ic3Sb_pqIl}_Z;7Q1*h*g*oE(j+kpW?Q3Ts_;W2Uw7EQ<9a z8lEDih5R@>BRWsYD@1J-F6B)m9iD56UlJMKbNpeX*l(W+x+1^P@8ouWl3T+H$wl1gao~W`q@mzla8ZHTbESd&z&K-{fpbE_$P{r~pF1mIOsk5Ichf&Qcw^08U@YF3D)C(Ut6%PXARKQ>N^bK&gcLW8ObMtlQp-mz_LMk#6bHGwq52*GPx0Cj#G+3|@FL^-M~{RLSa< z7%~jdsHrIiI~iqML+|%rYnZ5k4jNa8s0*ia5e5`gz8pBBPwl+hM9a%VD}cobFEO z_8qq$<^`iu*cE$DCOT<55l?#}?a6Z+*#7v^swJ&KJ#<&enKwqk*XCk7BcB>+mf~NW zAb+@tU&J|pe0w4T(ooMNJ~AFb=u2x3#@jsUXc;$wh8^Yqef48taX^ zn~0U@BNsbfalEY%%`4TC!mxMuM5psq(>XkU6d3c|z!&I%=U}SR{(~qGcn_6w%u0v( zq_y%iRg+5`dW08Lk-{1ym10x^iwLyxW;Fvr>8M|Gk0^uM(tqutn9}G)h-BjJdI#=e=sonvNrpVtpngQqVa_4Jp7y08o6DGz(RxT=M8$P_u>cCaJlnNBif z{^*}&`<_d|aYoXhr2zJ}a)W5A<8{+G8&y0;BoA4swW>uB9iuz_8EIR;3Ky>7+RvjV zA9oT_Qd9^9fTPzTtcy?x=Kpf@ECJcnpz2J|Ex`&2u#kN=AV1BNWlA`_- zipx9!#dIqb6u%cr&c`1XsfnDnDp2}%PSyDSMijoWk%xP#g46Rl$BELI&-w(b-rM6J zw~p&wXa2JwYJhAcf7)yxnTZST$fJ?ZxYo2YXkF#B{@&F3{Gr=beGX#Fs#2vyN!FIH z{OzlANiBj(GTgZ<*6;>acf|}11uGvq6E=ha7jeigjgK2;p-UEMkCAE}?uZ_S0RK@A zA)n~sZS4+8c2ZWPf+sPu<&em~r&Gd6k)jN@1yCu#tpUOZU?S~hbi2y|eFGd630Z0q z1cqn#&0>Lp4yOK&=_o4g#0zPthI!RLOU}`4VCNFPrD}0s&xcRL)}`lBVSB&u3p?hV z%JcL|Fn|RI)OPX3F71Clzoa04DlXs4V}}=4snUDd*?5aB5WgN&&OFn&dhfYX_LnTA zper~tgR}9u^%9iCpEOQZR;<7+Wvo{Lm`mxvGc3;LoP!X3>GETZ*04O#8dI?Q$%@95 zMQ}}xI+wpDWVRi%rW*G2$E?QyBZD6UOOdirs*!VZFkDdXpR2nb4U0~BiJs2xzqvU< zflDbSLUPNW9mxk4(XLFRqoXQhw^*1NtYBpMdOXG)#8rRmR?2WAL`r(Y&POsLr>VF0s?`<^H6t!fD5nbB7Y0BBy^> zhaO{X>h-dl&^ZgP6g}(mPFTH;!Ne0qa@x#uucAUjqAVR#PHIFDqkW#fY7!x5ielDK z2~i{IhA!TIVn1)n*7Ry5Ux@pLYAAmqcV8Qpi^f2l@ab8hgo~r&2c?{NW$2fN^z77S z9P|*k?aJ9|z0T^FfXTI>kf*fnweiuV9D^G19Of%xlp(sZv#4$yv05Sq0r?P)`p(}9 zICv(a|GqLJYdD5q#+jN0B>X1Sh;O+?2;Wu=`*R09TH1X8rQ`pDg-GW7`ICoL@y!9nX&C0;mMJ-pv@GjVmn zqk|S&MoNJpvAeznZoUT}GM% z{rXPH50fIbHfK3_=KbEgThzsI>wat3R~L1POOIoiQSo8;GH&aGnS%{P4Q8#l9!C%U z4FM2{<_Z2ibSRnG1;fY8_`L+&?FR|U)SKoozYAQb>cjuO*SkUW!{j=Y-IdZ0}OQ4~PLc+pyNK?}V zH&av7JA5B{%-Z>c@SeVySe;kGLCfKWG?YkuHWHdWPZ~tX?CB<$S-d5F3}cFRB$Cml zKlZG_jYJ%hRZ)c#&!Cw7YeLN|B)8=3|F)+4kBL$|+eqAncsD3YgjydIZcZ=RXkT+hV#EW_y)1!;Vh0<=$jI0s zG?2Vq?>m09c^kqfi39ye%+91-OV7YYm=lCWbe$83QuN*R3ECT1;Ny3C zs-@f+(J0xbwW5d;;r3i1 zFpP;&8W-)96yQ@d!Ga4J0mROP^S6=b2!A%k? zJbW5s55-s0P73?y(u=^?~uRg35Dt;$7 zH@B^ix7ipc=DhIF`e0X%ChAy%>>+u?5P1>Lw2MCQy>CQ7 zR$KG(UP6U%+b2jD6;&9<;)$}J-v<jL|n7h zvZ(&8KKGVC5>IJAjxMH@?4)zX_W6_uj$=OYFWSl~F#kD)*wr;qEZ{<_N5UzOvU~aRTSDKewgzR%#eVaG z@73{yV+by!r7fHo#gjxl5*a1)-Ad;f#3|-cfj|IuyM?W;IM>?z&KE2sX4bZ-Q+}(+ zL6o@t-4T9^fdQ0<<)eGBoAKD=*wB9-q%^mLYO6c`4!rdwaa(1VGl*jI#QXQp+wH#f zbe@Cq#_4ssXYre7`NnTQ`H0+tFrhcD1O2|0m&X+#0CB1v$@-xc^rZqA-e7GoE){yWM`KIN&l zF=!HZZ}M5!YpB;r6VCa%NR4v(s$38n}N*B45AMNEFv)I>Js;P8O1z0 z@XYWSa3JwL*?W&;Kqw5n{M#i<%5{i`S=urOm*7&MR2FuT=n^&|(j%k6r&z>Q);5*| zKjmBMNXvsK*z0k_xpE);gN~qhL=98|-KpmeZQVf`QB2U#mtBlL01%Nd!U;JLg+SvU z@qbr12p+_N%+HuIBSYBmV>Np@i{HS2o({?Rd3*7%GY%dSb|UdvDrO3XBu7FLLRG|y zUc;CnPa(()BrOXL1eUXi3n^Pm3E^+ErpsEb7q2Suk1^kt<&*2!=j>%*?Dg}x18?Cw z3`|*9V~gd4J_#Qv_cv}3!-e22d$8x23oqe8Ad2j+#v!n`P`GwpS#LcqI>;5LcRXmP z-T~r91u+9?roUjV#A+$R@5j=R-k0bebX8{k(ECZu(?yB(13wQGa(#V@)8MhnasBXa zbBRHPT)=+gKbto?S3s~A8JU_gs43Ga(naw$9ubL4cesMxQd{u#ABP~3oP~^lL)0d3 zu%D!taf0Sio;3IRg80b{IMEJY&zPZn!lTG;SZ*OZCsqosYW(fLKs!?iL`^~?cvsZv zuiEc$8k6Fg31IIu@reN#P!5BNwN18d4$U8Z1Trsyb1__}Xe%~&wfCc@ni^SJ?_XeV zbY4lZz0TUJ)h*VCAD^CjUibq(=|MZ0G((!WkBcSi2lG;SYxswrY?qm8CRDtz{RqNl z`by6lHLPPj*HwQmEIfEXOWQ)hs=O#Q zHa9-bN=8P;85S1y)qXU07SL`r!~C`i@`gI2XpXs!s$r;jE{K_77^nu4bJ_x&u7m#K><;_Y}gb~=XSiMbCu@Wgrh;3;)w@QVEyo0%yaF%KG$~%VqA!q zmlqVUKhML7X@+*DD(V8y>J-`lua9AIhkVLOmy42UOZwj#)rinL@h&R?x*F%SOF%7| zbqCZkMluqT4(WfFo@oBH7|wK6$JgcxdZotT#H8PlI6XamrS~IeId9WnT$S`EA34QK zN=h6GwBv&=f6McJRODZ;b(#_g0EgF;pb(6=PI(zbI=;Q08T{Yr?o8Jl{5Ao>a)PFi z<@e~zm-~%fR#MQ<0d77F@~miIP*$9MzRRw>wL6orc}vHwThKN^-F($-&3z_W1c+oXh~H3;oRJu z^7-h<2)U>VMVAGCQBhHpSgCD>-|K*j-5Pf^Y!=*j9f)Im7Y@$OW09R01S)=RVxmhs z#On!na&Cc^;upYCb30g+S(DEcb>}~%7a6jyC zg7y-Xp}%bgGtw8Z)=KXfq%L+UHZITp5Gu0g7aA^!RSTpBOG&`Ap5f2g6n$iJ_H`y3Qd<+P&R zDFZgEfVs7WhKZ&quU%YRIPyi&@P4l|R`q0%Pq3ca+1s-@@6akpaGI%>gSy{z3Ei~e zDx3cl;$C|klW%W$^B&nJot>SR4i3J`L2*#=L|hMhtOV@V`cwG(uy`t?Tsk^RVEbOQ z$(c3~DSdUMMFL*|)K>0huuD#Dnh*G+0!G;;HMf{8atw^5_PjDHOKNTb9Q_p3cX2H8 z$!(J(BN(w57S2eE-*_)KM{-s`z<7d$I;Prqc>^MeD1Pi}FV^Xkba2z{QLqS;bLmbq z^F;u-wPmMI^lPfAPDUMPRZR^=JD=C!pRX9U96(MvjIMG>&1LSx3VLt-Y@2aye!=pl ztnq~YiRYSfw5HvnGv}w zJG`>%w!6EFZE|HIqcn}34y zLr*?<3|*bEO)wESW&y420E8VOMfMCnbEH(ZSD7vswX6(`!NmOr)4XIFbS8UBr=l`f z@);P=#`s7K;t@6F<-?QTd|U@a{Q-e;2%P>eWvu@K>2l4F;Pm9=zcb*xEkvM5Q$<}( zoXpHZ#A*Thm^5ATr3fh`9{^_o1mXcdKAUfe0;Q~8;%b1N9!;!^@ROKlk5p2%CEOMv zo){3hmKGO3t3torx^=5YKN(zAn~U1J5Brv@ZLAi27*4U z)A7*}AN~dCnYat+&tE8z5;CyE#>Pf-uc*I@ZQAoRrU7xEqynFSbPcu}o@A0o>I43g zCzF-??tkHizl@#32%wB$f;!%78udU~Rq38}e}7ZaUL@q!b= zDawV_&V6Xu`YVF_Yz=@PEWBNRlXE5}Xz~&;z7jtg6-Vahc@`S{w5Vi{_{e z+Q29wyz0R00eF|-{9xo<({8w|1cvSqzG#_ zH+34>;l@8d#8aZGK@`zuqqL}Yj>2-K!4);X7-{7yvwuxksTh=c1}ZQ9E_XZ~9hHoD zF8!}elc@Z{Lj1&dF5_C*8Fd<4q{U$Z0<7~qwageedKPSnB$QAP2pA@zc0NiO7#H}# z3WH%G6-EfCds`RTQBTsx8N2RM$^Ifb8Oc%V0l9J+5`sVp_$n?LIcdZrY?nGBBc zBk~AM+N?UTG&mwLdG>})d3kSkd$)IXIzZx!z=4blaSzV)j&4@o%w$wNLv(p7hMAk2 zyW4vX^mo?Yg!_#lxJiAq6YXmx^f%zYmtGpVHg-N)cpo5DhR^VET^&UBR+%5pc6NNE zj8C*#Cf|@fkON(n5oZrVGPe^46u}C5h*n2-yMd}i>+3CEO;CI45)>91$;-caEF_c- zN1L4=ZMK826wplo?Cj9c(0iMiYS@~(Lf)t*2n#Tz_JsGcXHsAu_^W`#oBs%yEVt~} ze+Cl4R5f>gp~E2qW31G9zT5KmJB)C=ckkYvwZ9<~yZ|oHdbPP7zODbx4z1HQBU#ll zjQ@h-r;f-rH5U