Bevezetés
Előfeltételek
1. lépés: Hozzon létre egy normál felhasználói fiókot
2. lépés: Tiltsa le a root bejelentkezést és a jelszó hitelesítést
3. lépés: Állítsa be az időzónát
4. lépés: Engedélyezze az IPTables tűzfalat
5. lépés: További forgalom engedélyezése a tűzfalon keresztül
Bevezetés
Az újonnan aktivált CentOS 7 szervert testre kell szabni, mielőtt éles rendszerként használható lenne. Ebben a cikkben a legfontosabb testreszabásokat, amelyeket végre kell hajtania, könnyen érthető módon ismertetjük.
Előfeltételek
Egy újonnan aktivált CentOS 7 szerver, lehetőleg SSH-kulcsokkal telepítve. Jelentkezzen be root felhasználóként a szerverre.
ssh -l root server-ip-address
1. lépés: Hozzon létre egy normál felhasználói fiókot
Biztonsági okokból nem tanácsos a napi számítási feladatokat a root fiókkal végrehajtani. Ehelyett javasolt egy szabványos felhasználói fiók létrehozása, amely sudorendszergazdai jogosultságok megszerzésére szolgál. Ehhez az oktatóanyaghoz tegyük fel, hogy egy joe nevű felhasználót hozunk létre . Felhasználói fiók létrehozásához írja be:
adduser joe
Állítson be jelszót az új felhasználó számára. A rendszer felkéri a jelszó megadására és megerősítésére.
passwd joe
Adja hozzá az új felhasználót a kerékcsoporthoz , hogy root jogosultságokat vegyen fel a használatával sudo.
gpasswd -a joe wheel
Végül nyisson meg egy másik terminált a helyi gépen, és a következő paranccsal adja hozzá az SSH-kulcsot az új felhasználó saját könyvtárához a távoli kiszolgálón. Az SSH-kulcs telepítése előtt a rendszer felkéri a hitelesítést.
ssh-copy-id joe@server-ip-address
A kulcs telepítése után jelentkezzen be a szerverre az új felhasználói fiókkal.
ssh -l joe server-ip-address
Ha a bejelentkezés sikeres, bezárhatja a másik terminált. Mostantól minden parancsot megelőz a sudo.
2. lépés: Tiltsa le a root bejelentkezést és a jelszó hitelesítést
Mivel mostantól normál felhasználóként is bejelentkezhet SSH-kulcsok használatával, a bevált biztonsági gyakorlat az SSH-t úgy konfigurálni, hogy a root bejelentkezés és a jelszó hitelesítés is tiltva legyen. Mindkét beállítást konfigurálni kell az SSH démon konfigurációs fájljában. Tehát nyissa meg a segítségével nano.
sudo nano /etc/ssh/sshd_config
Keresse meg a PermitRootLogin sort, törölje a megjegyzéseket, és állítsa az értéket no-ra .
PermitRootLogin no
Tegye meg ugyanezt a PasswordAuthenticationsorral, amelyhez már nem kell megjegyzést fűznie:
PasswordAuthentication no
Mentse és zárja be a fájlt. Az új beállítások alkalmazásához töltse be újra az SSH-t.
sudo systemctl reload sshd
Alapértelmezés szerint a szerveren töltött idő UTC-ben van megadva. A legjobb úgy beállítani, hogy a helyi időzónát mutassa. Ennek eléréséhez keresse meg országának/földrajzi területének zónafájlját a /usr/share/zoneinfokönyvtárban, és hozzon létre belőle egy szimbolikus hivatkozást a /etc/localtimekönyvtárra. Például, ha az Egyesült Államok keleti részén tartózkodik, a szimbolikus linket a következőképpen hozza létre:
sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
Ezt követően a dateparancs futtatásával ellenőrizze, hogy az idő helyi időben van-e megadva . A kimenetnek hasonlónak kell lennie:
Tue Jun 16 15:35:34 EDT 2015
Az EDT a kimenetben megerősíti, hogy helyi idő van.
4. lépés: Engedélyezze az IPTables tűzfalat
Alapértelmezés szerint az újonnan aktivált CentOS 7 kiszolgáló aktív tűzfalalkalmazása a FirewallD. Bár jó helyettesítője az IPTables-nak, sok biztonsági alkalmazás még mindig nem támogatja. Tehát ha ezen alkalmazások bármelyikét használja, például az OSSEC HIDS-t, a legjobb, ha letiltja/eltávolítja a FirewallD-t.
Kezdjük a FirewallD letiltásával/eltávolításával:
sudo yum remove -y firewalld
Most telepítsük/aktiváljuk az IPTables-t.
sudo yum install -y iptables-services
sudo systemctl start iptables
Állítsa be az IPTables-t úgy, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl enable iptables
A CentOS 7 IPTables alapértelmezett szabálykészlettel rendelkezik, amelyet a következő paranccsal tekinthet meg.
sudo iptables -L -n
A kimenet a következőhöz fog hasonlítani:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Láthatja, hogy az egyik szabály engedélyezi az SSH-forgalmat, így az SSH-munkamenet biztonságos.
Mivel ezek a szabályok futásidejű szabályok, és újraindításkor elvesznek, a legjobb, ha egy fájlba menti őket a következő használatával:
sudo /usr/libexec/iptables/iptables.init save
Ez a parancs menti a szabályokat a /etc/sysconfig/iptablesfájlba. A szabályokat bármikor szerkesztheti, ha módosítja ezt a fájlt kedvenc szövegszerkesztőjével.
5. lépés: További forgalom engedélyezése a tűzfalon keresztül
Mivel valószínűleg egy bizonyos ponton az új szervert fogja használni bizonyos webhelyek tárolására, új szabályokat kell hozzáadnia a tűzfalhoz, hogy engedélyezze a HTTP- és HTTPS-forgalmat. Ennek eléréséhez nyissa meg az IPTables fájlt:
sudo nano /etc/sysconfig/iptables
Közvetlenül az SSH-szabály után vagy előtt adja hozzá a HTTP (80-as port) és a HTTPS (443-as port) forgalom szabályait, hogy a fájlnak ez a része az alábbi kódblokkban látható módon jelenjen meg.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Mentse és zárja be a fájlt, majd töltse be újra az IPTables-t.
sudo systemctl reload iptables
A fenti lépés befejeztével a CentOS 7-szervernek megfelelő biztonságban kell lennie, és készen kell állnia az éles használatra.