ตอนนี้ฉันเช่า VPS มาครึ่งปีแล้ว (เพื่อการศึกษา) และฉันพยายามที่จะเรียนรู้ให้มากที่สุดเท่าที่จะทำได้เพื่อให้มันปลอดภัย
เมื่อเร็ว ๆ นี้มันถูกบุกรุกและฉันสงสัยว่ามันถูกใช้เป็นพร็อกซีของใครบางคนเป็นเวลา ~ หนึ่งสัปดาห์ก่อนที่ฉันจะรู้ตัว ฉันมีบันทึกจาก 'ไม่ระบุชื่อ' ของผู้ใช้และการลงชื่อเข้าใช้ 'ไม่มีใคร' ผ่าน SSH และการใช้งาน CPU อยู่นอกแผนภูมิ - แท้จริง
ไม่ว่าในกรณีใดฉันจะติดตั้งใหม่และฉันจะนำทุกอย่างที่ฉันรู้มาทดสอบว่ามันจะเกิดขึ้นอีกครั้งหรือไม่ภายใน 24 ชั่วโมงหลังจากติดตั้งใหม่ฉันคิดว่ามันทำ
นี่คือบันทึกที่เกี่ยวข้องจาก /var/log/auth.log
ที่ทำให้ฉันรู้สึกหวาดระแวง:
Oct 31 06:30:21 vultr su[24157]: Successful su for nobody by root
Oct 31 06:30:21 vultr su[24157]: + ??? root:nobody
Oct 31 06:30:21 vultr su[24157]: pam_unix(su:session): session opened for user nobody by (uid=0)
Oct 31 06:30:21 vultr systemd: pam_unix(systemd-user:session): session opened for user nobody by (uid=0)
Oct 31 06:30:21 vultr systemd-logind[503]: New session 40 of user nobody.
Oct 31 06:30:24 vultr su[24157]: pam_unix(su:session): session closed for user nobody
Oct 31 06:30:24 vultr systemd-logind[503]: Removed session 40.
ฉันไม่ใช่คนที่จะรับรองความถูกต้องในเวลา 6:30 น. ในตอนเช้าดังนั้นโดยธรรมชาติฉันกังวลว่าฉันจะทำสิ่งสกปรกอีกครั้ง ...
(บันทึก: .bash_history
ของ root
ไม่แสดงสิ่งที่น่าสงสัยและเท่าที่ฉันรู้จักผู้ใช้ nobody
ไม่มี .bash_history
- ช่วยแก้ให้ด้วยนะถ้าฉันผิด)
การรับรองความถูกต้องของรหัสผ่านถูกปิดใช้งานสำหรับ SSH มีเพียงการตรวจสอบความถูกต้องของคีย์ SSH เท่านั้นซึ่งเป็นสาเหตุที่ฉันสับสนจริง ๆ ว่าจะลองทำอะไรต่อไป
ฉันอ่านแล้ว บทความนี้ เกี่ยวกับ phpMyAdmin หาประโยชน์จากการที่ผู้โจมตีเข้าถึงผู้ใช้ 'ไม่มีใคร' อย่างไรก็ตามฉันไม่คิดว่ามันใช้กับกรณีของฉันเพราะตามบันทึก Apache ของฉันไม่มีความพยายามในการเข้าถึงหน้า phpMyAdmin ไม่พูดถึงบทความนี้ลงวันที่ 2010 และหน้า phpMyAdmin ของฉันไม่สามารถเข้าถึงได้ในขณะนี้ .
อย่างไรก็ตามประเภทของคำขอที่ Apache ได้รับนั้นทำให้ฉันกังวลเล็กน้อยนี่เป็นตัวอย่าง (จาก /var/log/apache2/access.log
):
192.99.144.140 - - [31/Oct/2015:03:43:48 +0000] "PROPFIND /webdav/ HTTP/1.1" 405 569 "-" "WEBDAV Client"
185.25.151.159 - - [31/Oct/2015:03:59:35 +0000] "GET http://testp2.czar.bielawa.pl/testproxy.php HTTP/1.1" 404 460 "-" "Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0"
61.228.95.69 - - [31/Oct/2015:09:07:39 +0000] "CONNECT 126mx00.mxmail.netease.com:25 HTTP/1.0" 405 536 "-" "-"
185.25.151.159 - - [31/Oct/2015:09:15:13 +0000] "GET http://testp4.pospr.waw.pl/testproxy.php HTTP/1.1" 404 457 "-" "Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0"
ในขณะที่ฉันคาดหวังอะไรแบบนี้:
my ip - - [31/Oct/2015:14:47:58 +0000] "GET / HTTP/1.1" 200 589 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36"
ฉันไม่เข้าใจสิ่งที่ทำได้โดยพยายาม
"GET http://testp4.pospr.waw.pl/testproxy.php"
จากเซิร์ฟเวอร์ของฉัน ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว /var/www/html
ฉันจะแสดงรายการทุกสิ่งที่ฉันทำเพื่อพยายามรักษาความปลอดภัยหลังจากติดตั้งใหม่ โปรดชี้ให้เห็นถ้าคุณคิดว่าฉันทำอะไรผิดหรือถ้าฉันไม่ได้ทำอะไรเลย
ฉันทำอะไรลงไป:
- ติดตั้งใหม่ของ Ubuntu 15.04
- สร้างคู่กุญแจสาธารณะและส่วนตัว
- เพิ่มกุญแจสาธารณะของฉันไปที่
authorized_keys
ไฟล์บนเซิร์ฟเวอร์ของฉัน เปลี่ยนการตั้งค่าเหล่านี้ใน
/etc/ssh/sshd_config
จึงปิดใช้งานการตรวจสอบรหัสผ่านและอนุญาตเฉพาะการรับรองความถูกต้องของคีย์ SSH เท่านั้นPermitRootLogin without-password RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
Reboot
ติดตั้งสิ่งที่ฉันต้องการในลำดับนี้:
zip unzip apache2 mysql-server php5 libapache2-mod-php5 openjdk-7-jdk gcc g++ screen vsftpd auditd
ลบค่าเริ่มต้น
/var/www/html/index.html
กำหนดค่า vsftpd ให้ทำงาน (ฉันมีรหัสผ่านที่คาดเดายากสำหรับ
FtpUser
) ฉันตาม บทช่วยสอนนี้จาก DigitalOceanmkdir /home/proj groupadd ftp-users chown root:ftp-users /home/proj chown root:ftp-users /var/www useradd -g ftp-users -d /home/proj FtpUser chown FtpUser /home/proj passwd FtpUser (add strong password)
ฉันเปลี่ยนการตั้งค่าเหล่านี้ใน
/etc/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=NO pam_service_name=ftp
Reboot
ทุกอย่างที่ฉันไม่ได้พูดถึงคือค่าเริ่มต้นซอฟต์แวร์ที่ติดตั้งทั้งหมดเป็นข้อมูลล่าสุด
โปรดแจ้งให้เราทราบหากบันทึกที่ฉันแสดงก่อนหน้านี้เป็นเรื่องที่น่ากังวล ฉันจะขอบคุณเป็นอย่างยิ่งถ้าคุณสามารถบอกฉันได้ว่าการกำหนดค่าของฉันไม่ถูกต้องและสิ่งที่ฉันสามารถทำได้เพื่อปรับปรุงความปลอดภัยของฉันต่อไป นอกจากนี้หากคุณรู้บทความที่ดีเกี่ยวกับเรื่องที่จะเป็นประโยชน์ในระยะยาว
nobody
: askubuntu.com/questions/329714/...