Tôi có một dự án để bảo mật Ubuntu Server nhiều nhất có thể. Máy chủ là một máy chủ lưu trữ web. Máy chủ sẽ chạy LAMP, Mail và DNS.
Tôi có một dự án để bảo mật Ubuntu Server nhiều nhất có thể. Máy chủ là một máy chủ lưu trữ web. Máy chủ sẽ chạy LAMP, Mail và DNS.
Câu trả lời:
Dưới đây là danh sách những điều tôi làm để bảo mật máy chủ của mình.
sudo ufw enable
) và sau đó chỉ cho phép các cổng thực sự được sử dụng. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Một vài điều nữa để xem xét. Hầu hết mọi người quên mất truy cập vật lý. Tất cả các cấu hình phần mềm trên thế giới không có ý nghĩa gì nếu tôi có thể đi bộ thực tế với LiveCD và đánh cắp dữ liệu của bạn. Coi chừng kỹ thuật xã hội. Đặt câu hỏi để xác minh ai là người trên điện thoại và đảm bảo họ có quyền thực hiện yêu cầu họ đang thực hiện.
Vì tôi vẫn là người dùng 'mới', tôi không thể đăng nhiều hơn 2 liên kết. Bạn có thể đọc thêm về chủ đề này tại đây: https://help.ubfox.com/12.04/serverguide/index.html và đặc biệt chú ý đến https://help.ub Ubuntu.com/12.04/serverguide/security.html
iptables
quy tắc cực kỳ cụ thể để không cho phép truy cập bên ngoài vào bất kỳ dịch vụ nào bạn sẽ không sử dụng, nếu bạn có một số lẻ thiết lập bóng đòi hỏi rouing tiên tiến và công cụ mặc dù.
/ dev / shm có thể được sử dụng trong một cuộc tấn công vào một dịch vụ đang chạy, chẳng hạn như httpd. Sửa đổi / etc / fstab để làm cho nó an toàn hơn.
Mở một cửa sổ đầu cuối và nhập như sau:
sudo vi /etc/fstab
Thêm dòng sau và lưu lại. Bạn sẽ cần khởi động lại để cài đặt này có hiệu lực:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
Tệp /etc/sysctl.conf chứa tất cả các cài đặt sysctl. Ngăn chặn định tuyến nguồn của các gói đến và đăng nhập IP không đúng định dạng, hãy nhập thông tin sau vào cửa sổ đầu cuối
sudo vi /etc/sysctl.conf
Chỉnh sửa tệp /etc/sysctl.conf và bỏ bình luận hoặc thêm các dòng sau:
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Để tải lại sysctl với những thay đổi mới nhất, hãy nhập:
sudo sysctl -p
Mở Terminal và nhập thông tin sau:
sudo vi /etc/host.conf
Thêm hoặc chỉnh sửa các dòng sau:
order bind,hosts
nospoof on
Chỉnh sửa tệp php.ini:
sudo vi /etc/php5/apache2/php.ini
Thêm hoặc chỉnh sửa các dòng sau:
disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
Denyhosts là một chương trình python tự động chặn các cuộc tấn công SSH bằng cách thêm các mục vào /etc/hosts.deny. Denyhosts cũng sẽ thông báo cho quản trị viên Linux về việc vi phạm máy chủ, tấn công người dùng và đăng nhập đáng ngờ.
Mở Terminal và nhập thông tin sau:
sudo apt-get install denyhosts
Sau khi cài đặt, chỉnh sửa tệp cấu hình /etc/denyhosts.conf và thay đổi email cũng như các cài đặt khác theo yêu cầu.
Để chỉnh sửa cài đặt email quản trị, hãy mở một cửa sổ đầu cuối và nhập:
sudo vi /etc/denyhosts.conf
Thay đổi các giá trị sau theo yêu cầu trên máy chủ của bạn:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
Fail2ban tiên tiến hơn Denyhost vì nó mở rộng việc theo dõi nhật ký cho các dịch vụ khác bao gồm SSH, Apache, Courier, FTP, v.v.
Fail2ban quét các tệp nhật ký và cấm IP hiển thị các dấu hiệu độc hại - quá nhiều lỗi mật khẩu, tìm cách khai thác, v.v.
Nói chung Fail2Ban sau đó được sử dụng để cập nhật các quy tắc tường lửa để từ chối các địa chỉ IP trong một khoảng thời gian xác định, mặc dù mọi hành động khác tùy ý cũng có thể được cấu hình. Fail2Ban đi kèm với các bộ lọc cho các dịch vụ khác nhau (apache, chuyển phát nhanh, ftp, ssh, v.v.).
Mở Terminal và nhập thông tin sau:
sudo apt-get install fail2ban
Sau khi cài đặt chỉnh sửa tệp cấu hình /etc/fail2ban/jail.local và tạo quy tắc lọc theo yêu cầu.
Để chỉnh sửa cài đặt, hãy mở một cửa sổ đầu cuối và nhập:
sudo vi /etc/fail2ban/jail.conf
Kích hoạt tất cả các dịch vụ bạn muốn fail2ban theo dõi bằng cách thay đổi enable = false thành * enable = true *
Ví dụ: nếu bạn muốn kích hoạt giám sát SSH và cấm tù, hãy tìm dòng bên dưới và thay đổi được bật từ false thành true . Đó là nó.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Nếu bạn muốn nhận email từ Fail2Ban nếu máy chủ bị cấm thay đổi dòng sau thành địa chỉ email của bạn.
destemail = root@localhost
và thay đổi dòng sau từ:
action = %(action_)s
đến:
action = %(action_mwl)s
Bạn cũng có thể tạo các bộ lọc quy tắc cho các dịch vụ khác nhau mà bạn muốn fail2ban theo dõi mà không được cung cấp theo mặc định.
sudo vi /etc/fail2ban/jail.local
Hướng dẫn tốt về cách định cấu hình fail2ban và tạo các bộ lọc khác nhau có thể được tìm thấy trên HowtoForge - nhấp vào đây để xem ví dụ
Khi hoàn tất cấu hình Fail2Ban, hãy khởi động lại dịch vụ với:
sudo /etc/init.d/fail2ban restart
Bạn cũng có thể kiểm tra trạng thái với.
sudo fail2ban-client status
Cả RKHunter và CHKRootkit về cơ bản đều làm điều tương tự - kiểm tra hệ thống của bạn để tìm rootkit. Không có hại trong việc sử dụng cả hai.
Mở Terminal và nhập thông tin sau:
sudo apt-get install rkhunter chkrootkit
Để chạy chkrootkit, hãy mở một cửa sổ đầu cuối và nhập:
sudo chkrootkit
Để cập nhật và chạy RKHunter. Mở Terminal và nhập thông tin sau
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Network Mapper") là một tiện ích nguồn mở và miễn phí để khám phá mạng và kiểm tra bảo mật.
Mở Terminal và nhập thông tin sau:
sudo apt-get install nmap
Quét hệ thống của bạn để tìm các cổng mở với:
nmap -v -sT localhost
Quét SYN với các mục sau:
sudo nmap -v -sS localhost
Logwatch là một hệ thống phân tích nhật ký tùy biến. Logwatch phân tích cú pháp thông qua nhật ký hệ thống của bạn và tạo một khu vực phân tích báo cáo mà bạn chỉ định. Logwatch rất dễ sử dụng và sẽ hoạt động ngay trên gói trên hầu hết các hệ thống.
Mở Terminal và nhập thông tin sau:
sudo apt-get install logwatch libdate-manip-perl
Để xem đầu ra logwatch sử dụng ít hơn:
sudo logwatch | less
Để gửi email báo cáo logwatch trong 7 ngày qua đến địa chỉ email, hãy nhập thông tin sau và thay thế mail@domain.com bằng email yêu cầu. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger là một công cụ bảo mật có thể được sử dụng như là một hệ thống phát hiện xâm nhập và kiểm toán bảo mật.
Mở Terminal và nhập thông tin sau:
sudo apt-get install tiger
Để chạy hổ vào:
sudo tiger
Tất cả đầu ra Tiger có thể được tìm thấy trong / var / log / tiger
Để xem các báo cáo bảo mật của hổ, hãy mở Terminal và nhập thông tin sau:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Các trích dẫn ma thuật đã bị phản đối đầu tiên và sau đó bị xóa: php.net/manual/en/security.magicquotes.whynot.php
Vì bạn nói đây là máy chủ lưu trữ web ... Tôi muốn chia sẻ kinh nghiệm và thực tiễn tốt nhất của tôi về 5 năm dài trong dòng lưu trữ web.
Từ kinh nghiệm trong quá khứ của tôi, thay vì đi sâu vào cấu hình ngay lập tức, trước tiên bạn nên lắp ráp các loại nho bảo mật treo thấp như được chỉ ra trên bài viết đã cho.
Vì bạn đang có LAMP, do đó bạn phải rất thận trọng với PHP và các cài đặt php.ini của nó. Đây là một liên kết tốt để bảo mật PHP. PHP có siêu năng lực có thể trở thành vòng lặp bảo mật khi không được cấu hình đúng.
Bạn có thể sử dụng một công việc định kỳ để kiểm tra khi các tệp của bạn được sửa đổi mà không có sự cho phép của bạn và có thể bị hack; sử dụng công việc định kỳ này . Tôi thích Notepad ++ để so sánh kết quả cron (tải trực tiếp email cron từ máy chủ web của bạn và mở trong Notepad ++).
Nếu bạn muốn cài đặt một số SEM, thì cPanel được ưu tiên tốt nhất (tuy nhiên phải trả tiền). Webmin và zpanel là những lựa chọn thay thế miễn phí rất tốt. Webmin là tốt hơn cho nó ít nhất sử dụng chứng chỉ tự ký và thêm bảo mật.
Nếu bạn muốn một cái gì đó hoạt động ngay lập tức thì bạn có thể dùng Turnkey Linux. Nó dựa trên Ubuntu, cực kỳ dễ thực hiện và linh hoạt theo nhu cầu của bạn. Với rất ít nỗ lực bạn có được bảo mật ra khỏi hộp. Đây là ngăn xếp LAMP của họ . Cá nhân tôi chỉ sử dụng và thích điều này.
Nếu bạn đang bắt đầu từ đầu, thì bạn cũng có thể cài đặt ISPconfig3. Hướng dẫn tại đây .
bạn có thể kiểm tra bảo mật của mình bằng cách cố gắng xâm nhập bảo mật của bạn bằng Back-Track-Linux .
giữ mật khẩu dài và phức tạp . Đừng lưu trữ chúng trên PC. Viêt chung xuông. Sử dụng đĩa CD trực tiếp để truy cập các thông tin đăng nhập này.
có được một phần mềm bảo vệ vũ phu như fail2ban.
Đừng chạy những daemon mà bạn không cần.
Chặn tất cả các cổng không cần thiết . cực kỳ cẩn thận với cổng SSH (22).
Nhận cho mình một IP tĩnh trên hệ thống thông qua đó bạn sẽ quản lý máy chủ. Tận dụng hầu hết các khối IP và chỉ cho phép IP cụ thể của bạn truy cập vào các vị trí cấu hình như cổng 22.
Vào cuối ngày ... làm việc với tâm trí hoàn toàn, đừng có cảm xúc với việc cài đặt và áp dụng lẽ thường sẽ đưa bạn vượt xa.
**My heartiest best wishes to you. good luck.**
brute force attacks
và dictionary attacks
.. Mật khẩu dài ngẫu nhiên là cách duy nhất để bảo vệ bạn khỏi các cuộc tấn công như vậy.
Sử dụng dự án Bastille Linux.
Nó cung cấp một công cụ tương tác để thực hiện các biện pháp tăng cường bảo mật bổ sung để tăng tính bảo mật trên tất cả và giảm tính nhạy cảm của sự thỏa hiệp cho hệ thống Ubuntu của bạn (từ Bastille Linux ).
Nó cung cấp chức năng đánh giá và báo cáo, để nó có thể cho bạn biết những phần nào của hệ thống không bị khóa. Nó kiểm tra hệ thống theo kiểu chỉ đọc, báo cáo về trạng thái của từng vật phẩm cứng của nó. Ví dụ, Bastille có thể kiểm tra xem máy chủ DNS có bị khóa trong nhà tù chroot hay không, liệu telnet có bị tắt hay không, ngay cả khi mật khẩu được yêu cầu có độ dài tốt. Bạn có thể xem bản demo chỉ dành cho Web thông qua liên kết này ( thông tin thêm ).
Bạn có thể xem trước bản demo Web (chỉ) tại đây .
Sử dụng nmap
trên tất cả các giao diện trên máy, để bạn biết bạn đang chạy dịch vụ nào trên máy. Đây là một công cụ thiết yếu để bảo mật.
Xóa tất cả các dịch vụ bạn không cần trên các giao diện bên ngoài của bạn. Bạn có thể cấu hình MySQL để chỉ nghe trên các giao diện cụ thể, như localhost.
Sử dụng ufw để bảo vệ dịch vụ SSH của bạn (và những người khác có thể) để nó không cho phép quá nhiều kết nối (không thành công) mỗi phút từ cùng một máy. Điều đó sẽ làm cho các cuộc tấn công vũ phu mạnh mẽ hơn. Để thay đổi số cổng không phải là hữu ích, chỉ là tối nghĩa, không bảo mật.
Hãy hạn chế với số lượng tài khoản trên máy của bạn. Cũng không cài đặt nhiều gói / chương trình hơn bạn thực sự sử dụng. Chỉ cài đặt máy khách X11, không phải máy chủ X11.
Chỉ cho phép đăng nhập ssh vào máy có chứng chỉ kỹ thuật số, không có mật khẩu. Điều đó cũng sẽ làm cho các cuộc tấn công vũ phu trở nên khó khăn / không thể.
Tôi cũng sẽ tham khảo tài liệu Điểm chuẩn Debian Debian và nó có một số quy trình và quy trình đáng kể để làm cứng hệ điều hành sẽ áp dụng cho Ubuntu vì đây là một dẫn xuất của Debian. Tôi cũng sẽ tham khảo ý kiến:
An ninh luôn đi kèm với một mức giá. Thiết lập một số ranh giới thực tế sẽ giúp bạn đạt được mục tiêu của mình. Tôi sẽ xem xét các khía cạnh sau đây:
Kiểm tra tất cả các liên kết được đăng ở đây, tôi nghĩ rằng cái này nên được thêm vào. Nó đi vào chi tiết về không chỉ cách thiết lập phần mềm của bạn, mà còn để suy nghĩ về kế hoạch bảo mật. Như một điểm cộng, mọi lệnh để thực thi được giải thích với một nguồn cho nó.
Tôi đã thực hiện một bài viết về điều này cách đây không lâu về cách bảo mật Ubuntu 16.04-18.04. Các bước này bao gồm:
Thay thế mật khẩu Đăng nhập bằng các khóa được ủy quyền Cài đặt tường lửa trên máy chủ Linux của bạn
và một vài thứ nữa. https://hostup.org/blog/how-to-secure-a-ubfox-linux-server-in-3-simple-steps/