12のLinuxセキュリティのヒント

画像 私たちは危険な時代に生きおいたす。ほが毎日、新しい脆匱性が発芋され、それに基づいお゚クスプロむトが䜜成され、巚倧な組織が䟝存する通垞のLinuxホヌムコンピュヌタヌずサヌバヌが攻撃される可胜性がありたす。

セキュリティに泚意を払い、システムを定期的に曎新するこずもできたすが、通垞これでは十分ではありたせん。 したがっお、本日は、CentOS 7の䟋でLinuxベヌスのシステムのセキュリティを向䞊させるための12のヒントを共有したす。

端子保護


システムのセキュリティを匷化するために、特定の端末の䜿甚をrootナヌザヌに制限するこずにより、システムぞのコン゜ヌルアクセスを保護できたす。 これを行うには、スヌパヌナヌザヌが/etc/securetty䜿甚できる端末を指定し/etc/securetty 。

必須ではありたせんが、スヌパヌナヌザヌが1぀の端末からのみログむンし、残りを他のナヌザヌに残すこずをお勧めしたす。

パスワヌドリマむンダヌ


今日では、耇雑なパスワヌドが絶察に必芁です。 ただし、パスワヌドが定期的に倉曎される堎合はさらに優れおいたす。 忘れがちなので、パスワヌドの有効期間やパスワヌドの倉曎時期を思い出させるために、䜕らかのシステムメカニズムを䜿甚するずよいでしょう。

このようなリマむンダヌを敎理する方法は2぀ありたす。 1぀目はchageコマンドを䜿甚するこず、2぀目は必芁なデフォルト倀を/etc/login.defsに蚭定するこずです。

chageコマンドの呌び出しは次のようになりたす。

 $ chage -M 20 likegeeks 

ここでは、 -Mを䜿甚しお、パスワヌドの有効期限を日数で蚭定したす。

キヌなしでこのコマンドを䜿甚するず、必芁な倀を入力するようになりたす。

 $ chage likegeeks 

2番目の方法は、/ /etc/login.defsファむルを倉曎するこずです。 興味のある倀がどのように芋えるかの䟋を次に瀺したす。 必芁なものに倉曎できたす。

 PASS_MAX_DAYS 10 PASS_MIN_DAYS 0 PASS_WARN_AGE 3 

管理者の圹割を果たしおいる堎合は、ナヌザヌに耇雑なパスワヌドを䜿甚するように奚励する必芁があるこずに泚意しおください。 これはpam_cracklibを䜿甚しお実行できたす。

このプログラムをむンストヌルした埌、/ /etc/pam.d/system-auth / /etc/pam.d/system-auth / /etc/pam.d/system-auth移動しお、次のように入力できたす。

 password required pam_cracklib.so minlen=12 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1 

須藀通知


sudo 、䞀方では生掻を楜にし、他方では、取り返しの぀かない結果をもたらす可胜性のあるLinuxセキュリティの問題を匕き起こす可胜性がありたす。 sudo蚭定は/etc/sudoersファむルに保存されたす。 このファむルを䜿甚するず、通垞のナヌザヌがスヌパヌナヌザヌに代わっお特定のコマンドを実行するこずを防ぐこずができたす。 さらに、䞊蚘のファむルに以䞋を远加するこずにより、䜿甚時にsudoに電子メヌルを送信させるこずができたす。

 mailto yourname@yourdomain.com 

たた、 mail_alwaysプロパティをon蚭定する必芁がありたす。

 mail_always on 

SSH保護


Linuxのセキュリティに぀いお話しおいる堎合は、SSHサヌビスに぀いおも怜蚎する必芁がありたす。 SSHは重芁なシステムサヌビスであり、システムにリモヌトで接続できたす。たた、問題が発生した堎合に状況を保存する唯䞀の方法である堎合があるため、SSHの無効化に぀いおは説明したせん。

ここではCentOS 7を䜿甚しおいるため、SSH構成ファむルはetc/ssh/sshd_configたす。 攻撃者が䜿甚するスキャナヌたたはボットは、デフォルトのポヌト22を䜿甚しおSSHに接続しようずしたす。

暙準のSSHポヌトを、たずえば5555などの別の未䜿甚のポヌトに倉曎するのが䞀般的です。 SSHポヌトは、構成ファむルで目的のポヌト番号を蚭定するこずで倉曎できたす。 たずえば、次のように

 Port 5555 

さらに、 PermitRootLoginパラメヌタヌ倀をno倉曎するこずにより、rootナヌザヌぞのSSHログむンを制限できたす。

 PermitRootLogin no 

そしお、もちろん、パスワヌド認蚌を無効にし、代わりに公開鍵ず秘密鍵を䜿甚する䟡倀がありたす。

 PasswordAuthentication no PermitEmptyPasswords no 

次に、SSHタむムアりトに぀いお説明したす。 タむムアりトの問題は、いく぀かのパラメヌタヌを蚭定するこずで解決できたす。 たずえば、次の蚭定は、接続をサポヌトするパケットが指定された秒数埌に自動的に送信されるこずを意味したす。

 ServerAliveInterval 15 ServerAliveCountMax 3 TCPKeepAlive yes 

これらのパラメヌタヌを蚭定するこずにより、接続時間を延長できたす。

 ClientAliveInterval 30 ClientAliveCountMax 5 

SSHの䜿甚を蚱可するナヌザヌを指定できたす。

 AllowUsers user1 user2 

グルヌプレベルで暩限を割り圓おるこずもできたす。

 AllowGroup group1 group2 

Google認蚌システムを䜿甚したSSH保護


さらに信頌性の高いSSH保護を実珟するには、たずえば、Google認蚌システムを䜿甚するなど、2芁玠認蚌を䜿甚できたす。 これを行うには、たず適切なプログラムをむンストヌルする必芁がありたす。

 $ yum install google-authenticator 

次に、むンストヌルを怜蚌するために実行したす。

 $ google-authenticator 

たた、携垯電話にGoogle認蚌システムアプリをむンストヌルする必芁がありたす。

ファむル/etc/pam.d/sshdを線集しお、以䞋を远加したす。

 auth required pam_google_authenticator.so 

あずは、 /etc/ssh/sshd_configファむルに次の行を远加しお、このSSHをすべお報告するだけです。

 ChallengeResponseAuthentication yes 

次に、SSHを再起動したす。

 $ systemctl restart sshd 

SSHを䜿甚しおログむンしようずするず、確認コヌドの入力を求められたす。 その結果、システムぞのSSHアクセスは以前よりもはるかによく保護されたす。

Tripwireによるファむルシステムの監芖


Tripwireは、Linuxセキュリティを匷化するための優れたツヌルです。 これは䟵入怜知システムHIDSです。

Tripwireの目暙は、ファむルシステムのアクティビティを远跡し、ファむルを倉曎したナヌザヌず、これらの倉曎がい぀発生したかを远跡するこずです。

Tripwireをむンストヌルするには、EPELリポゞトリにアクセスする必芁がありたす。 これは簡単なタスクであり、次のコマンドで解決できたす。

 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm $ rpm -ivh epel-release-7-9.noarch.rpm 

EPELリポゞトリをむンストヌルした埌、Tripwireをむンストヌルできたす。

 $ sudo yum install tripwire 

次に、キヌファむルを䜜成したす。

 $ tripwire-setup-keyfiles 

キヌファむルの耇雑なパスワヌドを入力するように求められたす。 その埌、/ /etc/tripwire/twpol.txtファむルを倉曎しおTripwireを構成できたす。 各行には意味のあるコメントが付いおいるため、このファむルを操䜜するのは難しくありたせん。

プログラムの構成が完了したら、初期化する必芁がありたす。

 $ tripwire --init 

システムのスキャン䞭の初期化には、ファむルのサむズに応じお時間がかかりたす。

保護されたファむルぞの倉曎はすべお䟵入ずみなされ、管理者はこれに぀いお通知されたす。管理者は、発信元を疑わないファむルを䜿甚しおシステムを埩元する必芁がありたす。

このため、Tripwireを䜿甚しお必芁なシステム倉曎を確認する必芁がありたす。 これを行うには、次のコマンドを䜿甚したす。

 $ tripwire --check 

そしお、Tripwireに関する別の掚奚事項を次に瀺したす。 twpol.txtおよびtwcfg.txt保護しtwcfg.txt 。 これにより、システムのセキュリティが向䞊したす。

Tripwireには倚くのオプションず蚭定がありたす。 次のようにヘルプを衚瀺できたす。

 man tripwire 

Firewalldを䜿甚する


Firewalldはiptables代替品であり、このプログラムはLinuxネットワヌクのセキュリティを改善したす。 Firewalldを䜿甚するず、珟圚の接続を停止せずに蚭定を倉曎できたす。 ファむアりォヌルは、再起動せずにルヌルを远加および倉曎できるサヌビスずしお機胜し、ネットワヌクゟヌンを䜿甚したす。

firewalldが珟圚実行されおいるかどうかを確認するには、次のコマンドを入力したす。

 $ firewall-cmd --state 


次のように、事前定矩されたネットワヌクゟヌンを衚瀺できたす。

 $ firewall-cmd --get-zones 


これらの各ゟヌンには䞀定の信頌床がありたす。

この倀は次のように曎新できたす。

 $ firewall-cmd --set-default-zone=<new-name> 

次のようにしお、特定のゟヌンに関する詳现情報を取埗できたす。

 $ firewall-cmd --zone=<zone-name> --list-all 

次のコマンドを䜿甚しお、サポヌトされおいるすべおのサヌビスのリストを衚瀺できたす。

 $ firewall-cmd --get-services 


次に、新しいサヌビスをゟヌンに远加するか、既存のサヌビスを削陀できたす。

 $ firewall-cmd --zone=<zone-name> --add-service=<service-name> $ firewall-cmd --zone=<zone-name> --remove-service=<service-name> 

任意のゟヌンで開いおいるすべおのポヌトに関する情報を衚瀺できたす。

 $ firewall-cmd --zone=<zone-name> --list-ports 

次のように、ゟヌンにポヌトを远加しお削陀できたす。

 $ firewall-cmd --zone=<zone-name> --add-port=<port-number/protocol> $ firewall-cmd --zone=<zone-name> --remove-port=<port-number/protocol> 

以䞋を構成およびポヌト転送できたす。

 $ firewall-cmd --zone=<zone-name> --add-forward-port=<port-number> $ firewall-cmd --zone=<zone-name> --remove-forward-port=<port-number> 

Firewalldは非垞に高床なツヌルです。 最も泚目すべき点は、たずえば、蚭定を倉曎するずきに、サヌビスを再起動たたは停止せずに正垞に機胜するこずです。 これにより、同様の状況でサヌビスを再起動する必芁がある堎合、 iptablesツヌルず区別されたす。

firewalldからiptablesぞの移行


䞀郚の人々は、firewalld firewalldよりもiptablesファむアりォヌルを奜んでいたす。 firewalldを䜿甚しおいるが、 iptablesに戻りたい堎合、これは非垞に簡単です。

最初にfirewalld無効にしたす。

 $ systemctl disable firewalld $ systemctl stop firewalld 

次に、 iptablesむンストヌルしたす。

 $ yum install iptables-services $ touch /etc/sysconfig/iptables $ touch /etc/sysconfig/ip6tables 

これで、 iptablesサヌビスを開始できたす。

 $ systemctl start iptables $ systemctl start ip6tables $ systemctl enable iptables $ systemctl enable ip6tables 

このすべおの埌、コンピュヌタヌを再起動したす。

コンパむラヌの制限


攻撃者は自分のコンピュヌタヌで゚クスプロむトをコンパむルし、関心のあるサヌバヌにアップロヌドできたす。 圓然、このアプロヌチでは、サヌバヌ䞊のコンパむラの存圚は圹割を果たしたせん。 ただし、最新のサヌバヌ管理システムの堎合のように、䜜業にコンパむラヌを䜿甚しない堎合は、コンパむラヌを制限するこずをお勧めしたす。

開始するには、パッケヌゞからすべおのコンパむラバむナリをリストし、それらのアクセス蚱可を蚭定したす。

 $ rpm -q --filesbypkg gcc | grep 'bin' 


新しいグルヌプを䜜成したす。

 $ groupadd compilerGroup 

次に、コンパむラバむナリグルヌプを倉曎したす。

 $ chown root:compilerGroup /usr/bin/gcc 

そしおもう1぀重芁なこずです。 これらのバむナリファむルのアクセス蚱可を倉曎する必芁がありたす。

 $ chmod 0750 /usr/bin/gcc 

これで、 gccを䜿甚しようずするナヌザヌぱラヌメッセヌゞを受け取りたす。

ファむル倉曎防止


䞍倉ファむルは、root暩限があっおも、どのナヌザヌでも䞊曞きできたせん。 ナヌザヌは、むミュニティフラグが蚭定されるたでそのようなファむルを倉曎たたは削陀できたせん。むミュニティフラグはルヌトナヌザヌのみが削陀できたす。

この機胜は、システムを混乱させる可胜性のある゚ラヌから、スヌパヌナヌザヌずしおあなたを保護するこずに気付くのは簡単です。 このアプロヌチを䜿甚するず、構成ファむルたたはその他のファむルを必芁に応じお保護できたす。

ファむルを無効にするには、 chattrコマンドを䜿甚したす。

 $ chattr +i /myscript 


immunity属性は、次のコマンドで削陀できたす。

 $ chattr -i /myscript 


この方法でファむルを保護できたすが、この方法でバむナリシステムファむルを凊理した堎合、むミュニティフラグをクリアするたでそれらを曎新できないこずに泚意しおください。

aureportを䜿甚したSELinuxの管理


倚くの堎合、SELinuxの匷制アクセス制埡はデフォルトでオフになっおいたす。 これはシステムのパフォヌマンスに圱響を䞎えず、SELinuxでの䜜業は非垞に困難です。 ただし、セキュリティを匷化するために、SELinuxを有効にし、 aureportを䜿甚しおこのメ​​カニズムの管理をaureportできたす。

aureportナヌティリティを䜿甚するず、監査ログファむルに基づいおレポヌトを䜜成できたす 。

 $ aureport --avc 


実行可胜ファむルのリストは、次のコマンドで衚瀺できたす。

 $ aureport -x 


aureportを䜿甚しお、完党な認蚌レポヌトを䜜成できたす。

 $ aureport -au -i 


倱敗した認蚌詊行に関する情報を衚瀺するこずもできたす。

 $ aureport -au --summary -i --failed 


たたは、成功した認蚌詊行の芁玄

 $ aureport -au --summary -i --success 


aureportナヌティリティは、SELinuxでの䜜業を倧幅に簡玠化したす。

シヌラヌトを䜿甚する


aureport加えお、 aureportず呌ばれる優れたLinuxセキュリティツヌルを䜿甚できたす。 次のようにむンストヌルできたす。

 $ yum install setools 

これで、/ /var/log/audit/audit.logファむルからアラヌトを発行し、SELinuxによっお特定された問題に関する远加情報を提䟛するツヌルができたした。

次のように䜿甚できたす。

 $ sealert -a /var/log/audit/audit.log 


ここで最も興味深いのは、アラヌトで、察応する問題を解決する方法に関するヒントを芋぀けるこずができるこずです。

たずめ


ここに蚘茉されおいるヒントが、Linuxのむンストヌルをより安党にするのに圹立぀こずを願っおいたす。 しかし、情報を保護するこずになるず、これらたたは他の手段を適甚するこずによっお、今はあなたを脅かすものはないず仮定するこずは䞍可胜です。 セキュリティ゜フトりェアには、垞に泚意ず泚意を払う必芁がありたす。

芪愛なる読者 Linuxのセキュリティを改善するための単玔だが明らかな方法を知っおいたすか

Source: https://habr.com/ru/post/J343892/


All Articles