VPS ถูกบุกรุกหรือไม่ กำหนดค่าผิดหรือเปล่า?


7

ตอนนี้ฉันเช่า 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

ฉันจะแสดงรายการทุกสิ่งที่ฉันทำเพื่อพยายามรักษาความปลอดภัยหลังจากติดตั้งใหม่ โปรดชี้ให้เห็นถ้าคุณคิดว่าฉันทำอะไรผิดหรือถ้าฉันไม่ได้ทำอะไรเลย

ฉันทำอะไรลงไป:

  1. ติดตั้งใหม่ของ Ubuntu 15.04
  2. สร้างคู่กุญแจสาธารณะและส่วนตัว
  3. เพิ่มกุญแจสาธารณะของฉันไปที่ authorized_keys ไฟล์บนเซิร์ฟเวอร์ของฉัน
  4. เปลี่ยนการตั้งค่าเหล่านี้ใน /etc/ssh/sshd_configจึงปิดใช้งานการตรวจสอบรหัสผ่านและอนุญาตเฉพาะการรับรองความถูกต้องของคีย์ SSH เท่านั้น

    PermitRootLogin without-password
    RSAAuthentication yes
    PubkeyAuthentication yes
    PasswordAuthentication no
    
  5. Reboot

  6. ติดตั้งสิ่งที่ฉันต้องการในลำดับนี้:

    zip 
    unzip 
    apache2
    mysql-server
    php5 libapache2-mod-php5
    openjdk-7-jdk
    gcc
    g++
    screen
    vsftpd
    auditd
    
  7. ลบค่าเริ่มต้น /var/www/html/index.html

  8. กำหนดค่า vsftpd ให้ทำงาน (ฉันมีรหัสผ่านที่คาดเดายากสำหรับ FtpUser ) ฉันตาม บทช่วยสอนนี้จาก DigitalOcean

    mkdir /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
    
  9. Reboot

ทุกอย่างที่ฉันไม่ได้พูดถึงคือค่าเริ่มต้นซอฟต์แวร์ที่ติดตั้งทั้งหมดเป็นข้อมูลล่าสุด

โปรดแจ้งให้เราทราบหากบันทึกที่ฉันแสดงก่อนหน้านี้เป็นเรื่องที่น่ากังวล ฉันจะขอบคุณเป็นอย่างยิ่งถ้าคุณสามารถบอกฉันได้ว่าการกำหนดค่าของฉันไม่ถูกต้องและสิ่งที่ฉันสามารถทำได้เพื่อปรับปรุงความปลอดภัยของฉันต่อไป นอกจากนี้หากคุณรู้บทความที่ดีเกี่ยวกับเรื่องที่จะเป็นประโยชน์ในระยะยาว


ข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ nobody: askubuntu.com/questions/329714/...

@AustinHartzheim ขอบคุณสำหรับลิงค์!

คำตอบ:


0

วิ่ง เว็บเซิร์ฟเวอร์ hiawatha เป็น reverse proxy ต่อหน้าเว็บเซิร์ฟเวอร์ของคุณ มันจะปิดกั้นการหาประโยชน์เช่นนี้ (พวกเขาจะถูกปิดกั้นเป็น " ขยะ ") ในบันทึก:

91.196.50.33|Sat 19 Mar 2016 21:12:15 +0000|GET http://testp3.pospr.waw.pl/testproxy.php HTTP/1.1
Host: testp3.pospr.waw.pl
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate

เรียกใช้เว็บเซิร์ฟเวอร์ & amp; พร็อกซีภายในแยกต่างหาก lxc ภาชนะบรรจุเพื่อแยกกระบวนการเพิ่มเติม

ใช้ chroot คุณลักษณะที่สร้างขึ้นใน php-fpm.

อย่าทำ shell พร้อมใช้งานภายใน chroot

ชิงทรัพย์ของคุณ ssh ท่าเรือ .

เมานต์ของคุณ /var/www/public_html เช่น noexec nosuid nodev.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.