دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Chris Fidao
سری:
ناشر:
سال نشر: 2014
تعداد صفحات: 314
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب Servers for Hackers به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سرور برای هکرها نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
مدیریت سرور برای برنامه نویسان در ساعت 3 صبح با سرور خراب یا در میانه پیکربندی مبارزه در روز کاری خود گیر نکنید. یاد بگیرید چگونه سرورهای خود را مدیریت کنید!
Server Administration for Programmers. Don’t get stuck at 3am with a broken server, or in the middle of your workday fighting configuration. Learn how to administer your servers!
Contents Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Book Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Accidental Sysadmin Syndrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Linux Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv The Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Install Virtualbox and Vagrant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Configure Vagrant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Vagrant Up! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Basic Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Basic Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Users and Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Creating a New User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Making Our User a Super User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Setting Up the Firewall: Iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Adding these rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Inserting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Deleting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Saving Firewall Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Defaulting to DROP Over ACCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Logging Dropped Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Fail2Ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 CONTENTS Iptables Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Automatic Security Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Package Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Apt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Searching Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Permissions and User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Checking Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Changing Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Creating Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Umask & Sticky Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Running Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Webservers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 HTTP, Web Servers and Web Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 A Quick Note on DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 DNS & Hosts File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Xip.io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Virtual Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Hosting Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Three Actors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Virtual Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Apache and Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 MPM Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 CONTENTS Security Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Envvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Nginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Web Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Servers (virtual hosts) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Integration with Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 PHP-FPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Server Setup for Multi-Tenancy Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Multi-Tenancy in Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Multi-Tenancy in Nginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 SSL Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 SSL Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Using SSL in Your Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Creating Self-Signed Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Creating a Wildcard Self-Signed Certificate . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Apache Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Nginx Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 One Server Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Extra SSL Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Multi-Server Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Implications of Multi-Server Environments . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Asset Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Lost Client Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 SSL Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Load Balancing with Nginx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Balancing Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 CONTENTS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Load Balancing with HAProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Common Setups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 HAProxy Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Monitoring HAProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Sample NodeJS Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 SSL with HAProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HAProxy with SSL Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HAProxy with SSL Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Sample NodeJS Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 What does Logrotate do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Configuring Logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Going Further . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Rsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Should I Use Rsyslog? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Sending To Rsyslog From An Application . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 File Management, Deployment & Configuration Management . . . . . . . . 228 Managing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Copying Files Locally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 SCP: Secure Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Rsync: Sync Files Across Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Auto-deploy with GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 How it Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Node Listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Shell Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Putting it together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Configuration Management with Ansible . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 CONTENTS Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Managing Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Basic: Running Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Basic Playbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Facts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Vault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Logging in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 SSH Config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 SSH Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Local Port Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Remote Port Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 One-Off Commands & Multiple Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Basic Ansible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Monitoring Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 A Sample Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 System Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 System V Init (SysVinit, SysV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 The Service Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Using These Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Supervisord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Controlling Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Forever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Circus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 CONTENTS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Controlling Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Starting on Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 Development and Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Serving Static Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Built-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 NodeJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Dynamic Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300