สวัสดีเพื่อนจาก DesdeLinux,สิ่งที่สัญญาไว้คือหนี้ และนี่คือโพสต์เกี่ยวกับ วิธีเพิ่มการป้องกันระบบ Linux และอยู่อย่างนั้น ปลอดภัย จากผู้บุกรุกรวมทั้งปกป้องข้อมูลบนเซิร์ฟเวอร์พีซีหรือแล็ปท็อปของคุณ !!!!
Comenzando
ล้มเหลว2แบน: เป็นแอปพลิเคชันที่เขียนด้วย Python เพื่อป้องกันการบุกรุกเข้าสู่ระบบซึ่งทำหน้าที่โดยการลงโทษหรือบล็อกการเชื่อมต่อระยะไกลที่พยายามบังคับให้เข้าถึง
การติดตั้ง:
Fedora, RHEL, CentOS:
yum install fail2ban
Debian, Ubuntu:
apt-get install fail2ban
การตั้งค่า:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local นาโน /etc/fail2ban/jail.local
ในส่วนที่เรียกว่า [DEFAULT] เรายกเลิกการแสดงความคิดเห็นและแก้ไข #bantime = 3600 โดยปล่อยไว้ดังนี้:
#bantime = 3600 bantime = 604800
ในส่วน [sshd] เราแนะนำ enable = true ปล่อยไว้ดังนี้:
#enabled = true เปิดใช้งาน = true
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราเริ่มให้บริการ:
Fedora, RHEL, CentOS:
systemctl เปิดใช้งาน fail2ban.service systemctl start fail2ban.service
Debian, Ubuntu:
เริ่มบริการ fail2ban
ปฏิเสธการเข้าถึงรูทโดยใช้ ssh:
เพื่อปกป้องเครื่องของเราเราจะปฏิเสธ ssh ผ่านผู้ใช้รูท ในการดำเนินการนี้เราแก้ไขไฟล์ / etc / ssh / sshd_config ดังนี้:
cp sshd_config sshd_config.bck นาโน / etc / ssh / sshd_config
เราไม่แสดงความคิดเห็นและการเปลี่ยนแปลง
# โปรโตคอล 2 โปรโตคอล 2
เราไม่แสดงความคิดเห็นและการเปลี่ยนแปลง
#PermitRootLogin ใช่ PermitRootLogin no
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราเริ่มให้บริการ:
Fedora, RHEL, CentOS:
systemctl เปิดใช้งาน sshd.service systemctl start sshd.service
Debian, Ubuntu:
เริ่มบริการ sshd
ปฏิเสธการเข้าถึงเซิร์ฟเวอร์ ssh โดยใช้รหัสผ่านและอนุญาตให้ใช้ ssh ด้วยคีย์ RSA เท่านั้น
หากเราต้องการเชื่อมต่อกับ PC1 ไปยัง Server1 สิ่งแรกที่เราต้องทำคือสร้างคีย์ของเราบน PC1 ด้วยผู้ใช้ของเราและไม่มีรูทบน PC1 เราดำเนินการ:
ssh-keygen -t rsa -b 8192 (สิ่งนี้สร้างคีย์ที่ปลอดภัยมากกว่าเนื่องจากปกติจะใช้คีย์จาก 1024 ถึง 2048)
เมื่อเรามีรหัสผ่านแล้วเราจะอัปโหลดไปที่ Server1:
ssh-copy-id ผู้ใช้ @ server_ip
เมื่อเสร็จแล้วเราจะเชื่อมต่อกับ Server1 ของเราและแก้ไขไฟล์ nano / etc / ssh / sshd_config ด้วยสิทธิ์ root:
ผู้ใช้ ssh @ Server1 nano / etc / ssh / sshd_config
เราเปลี่ยนบรรทัดที่ระบุว่า #PasswordAuthentication ใช่ตามนี้:
#PasswordAuthentication ใช่
รหัสผ่าน
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราเริ่มบริการ ssh ใหม่:
Fedora, RHEL, CentOS:
systemctl รีสตาร์ท sshd.service
Debian, Ubuntu:
บริการ sshd เริ่มต้นใหม่
เปลี่ยนพอร์ตการฟัง ssh
เราแก้ไข / etc / ssh / sshd_config อีกครั้งและในส่วนที่อ้างถึงพอร์ตเราปล่อยไว้ดังนี้:
# พอร์ต 22 พอร์ต 2000 (หรือหมายเลขอื่น ๆ ที่มากกว่า 2000 ในตัวอย่างของเราเราจะใช้สิ่งนี้)
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราเริ่มบริการ ssh ใหม่:
Fedora, RHEL, CentOS:
systemctl รีสตาร์ท sshd.service
Debian, Ubuntu:
บริการ sshd เริ่มต้นใหม่
หากพวกเขาใช้ fail2ban จำเป็นต้องเปลี่ยนการกำหนดค่าเกี่ยวกับ sshd ที่ปรับพอร์ต
nano /etc/fail2ban/jail.local [sshd] port = ssh, 2000 [sshd-ddos] port = ssh, 2000 [dropbear] port = ssh, 2000 [selinux-ssh] port = ssh, 2000
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราต่ออายุบริการ:
Fedora, RHEL, CentOS:
systemctl รีสตาร์ท fail2ban.service
Debian, Ubuntu:
บริการ fail2ban เริ่มต้นใหม่
ไฟร์วอลล์
Fedora, RHEL, CentOS:
Selinux และ Iptables จะเปิดใช้งานตามค่าเริ่มต้นในระบบเหล่านี้และขอแนะนำให้คุณดำเนินการต่อด้วยวิธีนี้ วิธีเปิดพอร์ตด้วย iptables มาดูวิธีเปิดพอร์ตใหม่ 2000 ของพอร์ต ssh ที่เราเปลี่ยนไปก่อนหน้านี้:
เปิด:
นาโน / etc / sysconfig / iptables
และเราแก้ไขบรรทัดที่อ้างถึงพอร์ต ssh เริ่มต้น 22 และปล่อยไว้เช่นนี้:
# -A อินพุต -m state --state ใหม่ -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT
บันทึกด้วย CTRL + O และปิดด้วย CTRL + X
เราเริ่มบริการใหม่:
systemctl รีสตาร์ท iptables
Debian, Ubuntu:
ใน Debian หรือ Ubuntu และอนุพันธ์เรามีไฟร์วอลล์ UFW ซึ่งจะทำให้ชีวิตของเราง่ายขึ้นเพราะจัดการ Netfilter ได้ง่ายมาก
การติดตั้ง:
apt-get ติดตั้ง ufw ufw เปิดใช้งาน
หากต้องการดูสถานะของพอร์ตที่เปิดเราดำเนินการ:
สถานะ ufw
ในการเปิดพอร์ต (ในตัวอย่างของเราจะเป็น ssh port 2000 ใหม่):
ufw อนุญาต 2000
ในการปฏิเสธพอร์ต (ในกรณีของเราจะเป็นพอร์ตเริ่มต้น 22 ของ ssh):
ufw ปฏิเสธ 22 ufw ลบปฏิเสธ 22
และเพื่อนพร้อม. วิธีนี้จะทำให้เครื่องของคุณปลอดภัย อย่าลืมแสดงความคิดเห็นและจนกว่าจะถึงเวลาต่อไป: D.
และระบบเข้ารหัสเช่น: https://www.dyne.org/software/tomb/
และยังกักขังผู้ใช้ในบ้านของคุณหากพวกเขาเชื่อมต่อโดย tty:
http://olivier.sessink.nl/jailkit/index.html#intro
https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (วิธีง่ายๆ)
การเข้ารหัสระบบไฟล์ทั้งหมดจะดีกว่าและปลอดภัยกว่ามาก
สำหรับบทช่วยสอนต่อไปนี้เกี่ยวกับความปลอดภัยใน Linux ฉันจะคำนึงถึง: D.
นอกจากนี้ยังเป็นการดีที่จะพูดคุยเกี่ยวกับการทำให้เคอร์เนลแข็งขึ้นผ่าน sysctl การเปิดใช้งานฮีปแบบสุ่มและ Exec-Shield ในเคอร์เนลที่รองรับทำให้สามารถเข้าถึง dmesg และระบบไฟล์ / proc โดยรันการตรวจสอบ daemon เปิดใช้งานการป้องกัน TCP SYN จำกัด การเข้าถึง / dev / mem ปิดใช้งานตัวเลือกสแต็ก TCP / IP ที่อาจเป็นอันตรายหรือไม่ปลอดภัยต่อระบบ (การเปลี่ยนเส้นทางเสียงสะท้อนการกำหนดเส้นทางต้นทาง) ใช้ pam_cracklib เพื่อให้ผู้ใช้สร้างรหัสผ่านที่คาดเดายากความสำคัญของ การใช้ระบบ MAC เช่น Tomoyo, AppArmor และ SELinux
มีประโยชน์มาก!!!! สิ่งที่ฉันกำลังมองหาขอบคุณ🙂
ยินดีต้อนรับเพื่อน :).
หากคุณใช้ apache คุณไม่จำเป็นต้องเพิ่มกฎด้วย mod_rewrite เพื่อหลีกเลี่ยงบอท มีประโยชน์มาก
http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
และสำหรับ nginx มีเคล็ดลับหรือการกำหนดค่าอะไรบ้าง?
ใน debian 8 ไฟล์ / etc / ssh / sshd_config มี Protocol 2 ที่ใช้งานอยู่แล้วและฟังก์ชัน PermitRootLogin อยู่กับตัวเลือกที่ไม่มีรหัสผ่าน (คุณสามารถป้อนรูทด้วยคีย์การตรวจสอบสิทธิ์และจากคอมพิวเตอร์ที่มีคีย์ส่วนตัวเท่านั้น)
pd ใน debian 8 firewalld มาแล้วซึ่งทำให้มันมีขนาดเล็กถึง ufw
คุณเคยเห็น ferm? ฉันชอบวิธีการกำหนดกฎเกณฑ์
http://ferm.foo-projects.org/download/examples/webserver.ferm
ฉันดีใจที่ Debian 8 ใช้ firewalld เพราะมันดีมาก ...
ระวัง fail2ban ที่ผู้โจมตีสร้างแพ็กเก็ตด้วย ip ของเครื่องพีซีภายในเครื่องและทำให้ DOS เป็นเรื่องง่ายมาก
Man, IP ของพีซีในเครื่องและ IP แบบย้อนกลับจะถูกแยกออกจากรายการ Fail2ban
ถ้าไม่เราอาจมีผลบวกปลอม
คำแนะนำที่ดีและมีประสิทธิภาพมาก ... แน่นอนว่าในสภาพแวดล้อมเซิร์ฟเวอร์และหากเราโฮสต์เว็บไซต์จะต้องมีขั้นตอนเพิ่มเติม ... ปัจจุบันเราดูแลโครงการที่เรียกว่า JackTheStripper ซึ่งไม่มีอะไรมากไปกว่า bash Script ที่เตรียมและรักษาความปลอดภัยเซิร์ฟเวอร์ด้วย GNU / Linux ตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดสำหรับเว็บแอปพลิเคชัน http://www.jsitech.com/jackthestripper ....
สคริปต์ที่ดีแม้ว่าฉันต้องการเก็บค่าของ kernel.randomize_va_space = 2
สิ่งที่ดีคือก่อนที่จะเรียกใช้คุณสามารถปรับเปลี่ยนเล็กน้อยตามความต้องการของคุณ ..... สวัสดี ...
สวัสดีแน่นอนโพสต์ของฉันเกี่ยวข้องกับผู้เอาประกันภัยขั้นพื้นฐานและแต่ละโพสต์จะต้องปกป้องตัวเองไม่มากก็น้อยขึ้นอยู่กับบริการที่ติดตั้งในระบบเช่น LAMP หรือ FTP, SFTP, BIND และอื่น ๆ อีกมากมาย :) ...
ในโพสต์ถัดไปเกี่ยวกับความปลอดภัยฉันจะแก้ไขปัญหาเหล่านี้
ขอบคุณสำหรับข้อเสนอแนะในเชิงบวก :)
@petercheco คำแนะนำของคุณยอดเยี่ยมมันจะดีเป็นคู่มือการเข้ารหัสสำหรับระบบ FreeeBSD ฉันไม่รู้ว่าคุณจะทำส่วนที่สองเกี่ยวกับ FreeBSD เกี่ยวกับการกำหนดค่าและปรับแต่งเดสก์ท็อปเกี่ยวกับไฟร์วอลล์เกี่ยวกับการสร้างและกำหนดค่าเครือข่ายไร้สาย
ไงเพื่อน,
ฉันค่อนข้างยุ่งเนื่องจากการโพสต์ไม่บ่อยนัก แต่ฉันจะจำไว้สำหรับโพสต์ FreeBSD ถัดไป
ทักทาย :)
ระดับนี้ในความคิดเห็นฉันไม่รู้ว่าคุณกำลังพูดถึงอะไรไม่มีใคร xD
บทความเยี่ยม!
การดำเนินการด้านความปลอดภัยนี้ส่อถึงการ จำกัด อุปกรณ์ในลักษณะใด?
ไม่ ... การใช้งานปกติของระบบไม่มีข้อ จำกัด เลย
และสิ่งที่น่าตลก (น่าเศร้า) ก็คืออย่างที่เราเพิ่งเห็นกับเครื่อง Lenovo หากเฟิร์มแวร์ bios ถูกดัดแปลงด้วยมัลแวร์คุณจะไม่ทำอะไรเลย
ตราบเท่าที่คุณใช้ Windows ที่ติดตั้งไว้ล่วงหน้าโดยผู้ผลิต ...
ข้อผิดพลาด: โปรดจำไว้ว่าพวกเขาติดตั้งไว้ในเฟิร์มแวร์ bios นั่นคือมันเริ่มต้นด้วยระบบในการรีบูตแต่ละครั้งก่อนระบบปฏิบัติการก่อนปีศาจก่อนอื่นและจะไม่อนุญาตให้คุณทำอะไรกับมัน การโจมตีสามารถทำได้เพียงเล็กน้อยซึ่งเป็นเหตุผลว่าทำไมแนวคิด uefi จึงเป็นสิ่งที่ดี
บทความที่น่าสนใจฉันจะอ่านอย่างละเอียดในบ่ายวันนี้ ขอขอบคุณ.
ยินดีต้อนรับครับ :). ฉันดีใจ.
บทความที่ยอดเยี่ยมฉันให้ความบันเทิงตลอดบ่ายที่อ่าน ขอขอบคุณเวลาที่คุณอธิบายทุกอย่างอย่างรอบคอบ
คำทักทายจากประเทศชิลี
คาร์ลอ
สวัสดีคาร์ลอส
ขอบคุณมาก :).
เครื่อง Lenovo หากดูเหมือนว่าเฟิร์มแวร์ bios ถูกแทรกแซงด้วยมัลแวร์เครื่อง (แล็ปท็อปพีซี - คอมพิวเตอร์เดสก์ท็อป) จะติดตั้ง Windows โดยผู้ผลิตเสมอตามมุมมองด้านบน ... โพสต์… .petercheco?
แม้ว่าจะไม่ได้ทำทั้งหมดนี้ แต่ก็ใช้งานได้เนื่องจากมัลแวร์สร้างขึ้นสำหรับ Windows ไม่ใช่ Linux
มีหลายสิ่งและเทคนิคที่ขาดหายไปจาก iptables เช่น Nmap เวียนหัวเพื่อให้พอร์ตที่เปิดอยู่ทั้งหมดโกหกว่าเป็น windows pc ที่ใช้ ttl และขนาดหน้าต่าง scanlogd ความปลอดภัยของ apache mod grsec, selinux หรืออะไรทำนองนั้น แทนที่ ftp ด้วย sftp จำกัด จำนวนการเชื่อมต่อต่อ IP ไปยังแต่ละบริการในพอร์ต X เพื่อหลีกเลี่ยงปัญหานั้นก่อน DDoS จะทิ้งเราไปโดยไม่มีบริการรวมทั้งบล็อก IP ที่ส่ง UDP มากกว่าจำนวนมากเป็นเวลาหลายวินาที
จากตัวอย่างที่คุณนำเสนอผู้ใช้ใหม่จะคลั่งไคล้เมื่ออ่านมัน ... คุณไม่สามารถใส่ทุกอย่างในโพสต์เดียวได้ ฉันจะทำหลายรายการ :)
ฉันได้รับข้อผิดพลาดใน archlinux ณ จุดนี้เมื่อให้บริการเริ่มต้นฉันให้สถานะและสิ่งนี้จะออกมา:
sudo systemctl สถานะ fail2ban
● fail2ban.service - บริการ Fail2Ban
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/fail2ban.service; เปิดใช้งานค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: ขีด จำกัด เริ่มต้น) ตั้งแต่ศ. 2015-03-20 01:10:01 CLST; 1 วินาทีที่ผ่านมา
เอกสาร: man: fail2ban (1)
กระบวนการ: 1695 ExecStart = / usr / bin / fail2ban-client -x start (code = exited, status = 255)
20 มี.ค. 01:10:01 น. Gundam systemd [1]: ล้มเหลวในการเริ่ม Fail2Ban Service
20 มี.ค. 01:10:01 น. Gundam systemd [1]: ยูนิต fail2ban.service เข้าสู่สถานะล้มเหลว
20 มี.ค. 01:10:01 น. Gundam systemd [1]: fail2ban.service ล้มเหลว
20 มี.ค. 01:10:01 Gundam systemd [1]: เริ่มการร้องขอซ้ำเร็วเกินไปสำหรับ fail2ban … ice
20 มี.ค. 01:10:01 น. Gundam systemd [1]: ล้มเหลวในการเริ่ม Fail2Ban Service
20 มี.ค. 01:10:01 น. Gundam systemd [1]: ยูนิต fail2ban.service เข้าสู่สถานะล้มเหลว
20 มี.ค. 01:10:01 น. Gundam systemd [1]: fail2ban.service ล้มเหลว
คำแนะนำ: เส้นบางส่วนถูกจุดไข่ปลาใช้ -l เพื่อแสดงแบบเต็ม
ความช่วยเหลือ? D:
สวัสดีถ้าคุณเปิดใช้งาน fail2ban ด้วย systemctl ให้เปิดใช้ fail2ban.service และ systemctl start fail2ban.service ปัญหาจะอยู่ในการกำหนดค่า jails ที่คุณทำ โปรดตรวจสอบคุกของคุณและตรวจสอบว่าทุกอย่างเรียบร้อยดี
อาศิรพจน์
ปีเตอร์เช็ก
ก่อนอื่นการสอนที่ดี มีหลายสิ่งที่ขาดหายไป แต่คุณได้ให้ความสำคัญกับพื้นฐาน
shini-kire ตรวจสอบ /var/log/fail2ban.log ของคุณ
อาศิรพจน์
ขอบคุณ @Maykel Franco :)
ดี
พวกเขาควรติดตั้ง fail2ban บนโฮมพีซีหรือมากกว่านั้นสำหรับเซิร์ฟเวอร์ ???
ขอบคุณ
ค่อนข้างสำหรับเซิร์ฟเวอร์ แต่ถ้าคุณใช้ wifi ที่เข้าถึงได้โดยคนมากกว่าคุณก็ดี ...
สวัสดีเพื่อนฉันคิดว่ามันเป็นโพสต์ความปลอดภัยที่ดีในส่วนของไฟระยะสั้นใน Gnu / Linux distros ฉันเขียนความคิดเห็นนี้เพราะฉันทำในการแจกจ่าย Ubuntu 14.04 โดยรู้ว่ามันอยู่ใน 15.04 แล้วสิ่งที่เกิดขึ้นคือปัญหาต่อไปนี้ ฉันป้อน nano /etc/fail2ban/jail.local เป็นรูทและฉันไม่มีการแสดงภาพในส่วน sshd และบันทึกในส่วนที่เรียกว่า [DEFAULT] เราไม่ใส่ความคิดเห็นและแก้ไข #bantime = 3600 และ
ในส่วน [sshd] เราแนะนำ enable = true ปล่อยไว้ดังนี้:
#enabled = จริง
เปิดใช้งาน = จริง
ไม่ปรากฏว่า sshd อาจเป็นเพราะฉันกำลังทำงานในเวอร์ชันก่อนหน้าขอบคุณ