Archive | GNU/Linux

How to Install & Configure Squid Linux Proxy Server

Linux fproxy server or proxy server generally is a server that saves the visited web pages for later requests, so if you try to visit the same web page or any one else, the page will be retrieved from the proxy server. This is very useful, it makes web surfing much faster and reduces the traffic which means less cost. Caching servers can decrease external traffic up to 45%. Another main advantage for proxy servers, you can configure the proxy with some settings for access control. For example, you can restrict access to specific websites. If you surf the web before from an anonymous proxy, this is actually a proxy server. You can choose any of the available Linux proxy servers out there like: Squid, Varnish, Polipo, TinyProxy, and more. In this post, we will discuss the most common Linux proxy server which is Squid.

Continue Reading →

Install squid

Installing squid proxy server is very simple. For Red Hat based distro, you can install it like this:

dnf -y install squid

Or if you are using Debian based distro, you can install it like this:

apt-get -y install squid

Now you can start squid service and enable it at startup:

systemctl start squid
systemctl enable squid

To squid proxy server, you can check the configuration file in /etc/squid/squid.conf

Before we dig into the configuration, let’s see the proxy server in action.

Just change the proxy setting on your browser to the IP address of the proxy and the port 3128 since this is the squid default port. You can change the default port by changing the http_port option in the configuration file.

Linux Proxy Server set client

As shown on the image I’ve pointed my browser to my Linux proxy server and I can browse the web without any problems.

If you are using iptables firewall, don’t forget to open the squid server port.

Allow IP Address Range

If you open the configuration file /etc/squid/squid.conf, you will see the rules that allow IP addresses to connect to the proxy server like this:

acl localnet src 192.168.0.0/16

However, you can add a new ACL entry to allow a range of IP addresses to connect to your proxy server:

acl localnet src 212.80.113.0/16

Then save the file and restart squid service:

systemctl restart squid

Very easy, right?

Also, if you remove any ACL from the file, all IP addresses from that range will not be able to connect to the proxy server.

Allow Specific Ports

You can find all ports that are allowed in the configuration file like this:

acl Safe_ports port 80

Consider adding Safe_ports ACL rule for any port that your clients need. You can add a port range instead of writing a rule for every port like this:

acl Safe_ports port 6000-7000

Don’t forget to restart the squid proxy server after the modification:

systemctl restart squid

Authenticating Users

You can force your users to authenticate before they use your Linux proxy server using Apache authentication.

First, we create a file that will store the users:

touch /etc/squid/passwd

Then change the ownership to squid daemon so it can access the file:

chown squid /etc/squid/passwd

Now we will create a new user using the htpasswd command:

htpasswd /etc/squid/passwd likegeeks

It will prompt you for the password twice.

If you open the created file, you will see the user and the hashed password.

Then you change the squid configuration to tell it about the authentication that it should use.

Add the following lines below the ACL ports and nowhere else to enable authentication:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

auth_param basic children 5

auth_param basic realm Squid Basic Authentication

auth_param basic credentialsttl 3 hours

acl auth_users proxy_auth REQUIRED

http_access allow auth_users

Then restart the squid service and try to open the browser again.

systemctl restart squid

Authentication

As you can see, if you try to connect to the Linux proxy server, it will prompt you for the username and the password.

Block Websites

You can block websites from the proxy users, just create a separate file that will be the list of domains you want to block and point that file from the squid configuration like this:

touch /etc/squid/blocked

Then type all websites you want to block one per line in that file and save it.

Now change the squid configuration to block those websites under acl list and http_access list.

acl blocked_sites dstdomain "/etc/squid/blocked"

http_access deny blocked_sites

Then restart squid service:

systemctl restart squid

There are a lot of ready to use lists on the web and they are categorized, you can use them in squid, like MESD blacklists, Shalla’s Blacklists.

Modify Content

Since the Linux proxy server is between the browser and the internet, this is a very good position to alter the delivered content.

You can change images or ads or whatever. This can be done using the url_rewrite_program module.

Actually, you can do more than that, but we don’t want to be evil.

In our example, we will flip the images and surf the flipped images instead of the original.

First, we need to install ImageMagick:

dnf -y install imagemagick

Then we will write the script that will do the magic. The script will be written in Perl.

You can find the script here

This Perl script searches for JPG, GIF, and PNG, images in the carried content, once it is found, it uses mogrify utility that shipped with ImageMagick to flip the images and put the flipped image in /var/www/html/ which is the root directory for Apache server and apache service should be running of course, then send the flipped images as a response.

Just make sure to add ownership for squid for this folder:

usermod -aG www-data squid

Finally, you have to tell squid about this script. Open the configuration file and type the following:

url_rewrite_program /home/likegeeks/flip.pl

Then restart your squid service

systemctl restart squid

The web has a lot of Perl scripts that play with the content, some of them are good, and some others are evil.

Anonymous Browsing

By default squid proxy server forwards the client IP address to the requested site, if you want the proxy to be surf users anonymously, you should send squid IP instead of clients IPs.

To do that, change the forwarded_for option to off in /etc/squid/squid.conf file.

forwarded_for off

And add the following options mentioned here at the end of the configuration file.

Then restart the service:

systemctl restart squid

You can check your public IP address, you will notice that your IP is the squid proxy server IP.

Connecting Squid Servers

The cache_peer directive sets your peer caches and informs Squid how to communicate with them.

It is written like this:

cache_peer hostname Server-type http-port icp-port [options]

The first argument is the other squid hostname or IP address.

The 2nd argument specifies the type of the other server.

The 3rd argument is the port number.

The 4th argument specifies the ICP port (Internet Caching Protocol) which is 3130. This is used to query other cache servers.

The cache_peer has some options you can use like:

proxy-only: This option prevents Squid from saving any responses it receives from the other squid server.

no-delay: If any delay, it will be ignored.

login= user:password: The authentication credentials to the other server. It takes this formula login =user:password

connect-timeout: This option specifies the connection timeout to other squid servers.

Write your options and save the configuration file and restart the service.

Squid Log Files

Log files are your main source for problem diagnostics and various squid operations.

There are cache.log, access.log, and store.log. You can find them in /var/log/squid directory.

The cache.log file contains informational messages about Squid’s operation. All proxy errors are written to this file.

The access.log file contains all HTTP request made by the clients.

The store.log file contains information about the passed objects.

Each entry on these files is written with time stamps when the message was generated.

I hope you find the post easy. Keep coming back

Thank you.

0

Ubuntu Touch OTA-10 duyuruldu

Mobil cihazlar için Canonical‘ın Ubuntu Touch işletim sisteminin OTA-10 sürümü duyuruldu. Ubuntu Touch’ın bakımını yapan UBports topluluğu OTA-10’u en yeni ve önemli bir güncelleme olduğunu belirtiyor. Google oturum açma sorunlarını çözmekten kablosuz görüntüleme sorunlarına, çeşitli donanım sorunlarına kadar türlü düzeltmeler alan yeni sürüm bu ayın başlarından beri test ediliyordu. Ubuntu Touch OTA-10, SMS/MMS mesajlaşma uygulamasında taslak mesajlar için destek de eklendi. Ubuntu Touch OTA-10 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.

Continue Reading →

Ubuntu Touch OTA-10 için desteklenen cihazların listesi ve kurulum talimatları projenin  web sitesinde bulunabilir.

0

OviOS Linux 3.02 çıktı

Performans odaklı bir depolama sistemine sahip olan Kanada kökenli bir sunucu dağıtımı olan OviOS Linux‘un 3.02 sürümü çıktı. Henüz resmi olarak duyurulmamış olan sürüme ait ISO kalıpları indirilmek üzere yansılarda yerini almış bulunuyor. Kararlı bir şekilde kullanıma hazır iSCSI, NFS ve SMB’ye ihtiyaç duyan kullanıcı ve yöneticileri hedefleyen dağıtım, root ya da diğer kullanıcılar için varsayılan olarak “ovios” şifresiyle kullanıma sunuluyor. “Ovios kabuğu” olarak adlandırılan özel bir komut satırı kabuğuna sahip olan dağıtım; en hızlı ve kullanımı en kolay Linux birleşik depolama sunucusunu amaçlıyor. Dokümantasyonun iyileştirildiği, daha iyi günlük kaydı sağlamak için nfs_export ve smb_export’un geliştirildiği belirtiliyor. Kaynaktan inşa edilerek yeni paketlerin kolaylıkla eklenebileceği sistem; Linux Standard Base ile tam uyumludur. Bir sunucu dağıtımı için Linux çekirdeğinin tüm sürücülerden arındırıldığı ve gerekli olmayan modüllerin kullanımdan çıkarıldığı belirtiliyor.

Continue Reading →

Q4OviOS Linux 3.02 edinmek için aşağıdaki linkten yararlanalabilirsiniz.

Resmi duyurusu yapıldıktan sonra:

0

GNU FreeIPMI 1.6.4 duyuruldu

Bir GNU Projesi olan FreeIPMI‘nin 1.6.4 sürümü, Albert Chu tarafından duyuruldu. GNU Genel Kamu Lisansı altında kullanıma sunulan yazılım, akıllı platform yönetim sistemi anlamına geliyor. Platform yönetimi için bir dizi arabirim tanımlayan ve özgün adı Intelligent Platform Management Interface (IPMI) olan yazılım, anakartlarda sistem yönetimini desteklemek üzere çok sayıda donanım üreticisi tarafından uygulanmaktadır. IPMI v1.5/2.0 spesifikasyonu üzerinde IPMI tabanlı yazılım, bant içi ve bant dışı servis sağlıyor. Çoğu kullanıcının ilgi duyacağı IPMI’nin sensör izleme, sistem olay denetimi, güç kontrolü ve SOL üzerinden seri bağlantı (SOL) gibi özellikleri öne çıkıyor. Çeşitli performans iyileştirmeleriyle gelen yeni sürüm, küçük düzeltmeler ve iyileştirmeler içeriyor. FreeIPMI hakkında daha fazla bilgi FreeIPMI web sayfasında bulunabilir. GNU FreeIPMI 1.6.4 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.

Continue Reading →

GNU FreeIPMI 1.6.4 edinmek için aşağıdaki linkten yararlanabilirsiniz.

0

Clonezilla live 2.6.3-3 duyuruldu

Sabit disk klonlamak ve yedeklemek için tasarlanmış Debian GNU/Linux tabanlı Clonezilla Live’in yeni test sürümü 2.6.3-3, Steven Shiau tarafından duyuruldu. Debian Sid depolarıyla 21 Ağustos 2019 tarihi itibariyle senkronize edilen sistemin temel GNU/Linux işletim sistemi güncellenmiş bulunuyor. Syslinux ile ilgili bir hata da düzeltilmiş bulunuyor. 5.2.7-1 Linux çekirdeği üzerine yapılandırılan sistemin; GNU/Linux üzerinde ext2, ext3, ext4, reiserfs, xfs ve jfs dosya sistemlerini; Windows üzerinde FAT, NTFS dosya sistemlerini; Mac OS üzerinde HFS ve BSD üzerinde UFS dosya sistemlerini desteklediği hatırlatılıyor. Sistem, bilindiği gibi, Clonezilla live ve Clonezilla SE (Sunucu Sürümü) olarak kullanıma sunuluyor. Sistem, ağ yöneticisi de içeriyor. Clonezilla live 2.6.3-3 hakkında ayrıntılı bilgi edinmek için değişiklikler sayfasını inceleyebilirsiniz. 

Continue Reading →

Clonezilla live 2.6.3-3 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0

Oracle Solaris 11.4 SRU12 duyuruldu

Bir Unix varyantı olarak Sun Microsystems tarafından geliştirilen ölçeklenebilirliği ve yenilikçi kurumsal özellikleriyle tanınan Oracle Solaris’in 11.4 SRU12 sürümü, Albert White tarafından duyuruldu. Sürümü duyurmaktan memnuniyet duyduğunu söyleyen White; güvenilir bir iş platformu olan sistemin, kullanımı basit ve her zaman güvende olacak şekilde tasarlanmış olduğunu hatırlattı. Bunun Oracle Solaris 11 için son destek sürümü olduğunu belirten White; sürümün önemli düzeltmeleri içerdiğini belirterek, kullanıcıların sistemlerini SRU’yu indirerek güncelleyebileceklerini ifade etti. White; sürümün python 3.7.3, bash 5.0, pyOpenssl 19.0.0, MySQL 5.6.44, MySQL 5.7.26, BIND 9.11.8, vim 8.1.1561, Apache Tomcat 8.5.32, Thunderbird 60.8.0, Firefox 60.8.0esr, Wireshark 2.6.10 gibi pek çok güncel paket içerdiğini söyledi. Oracle Solaris 11.4 SRU12 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.

Continue Reading →

1993’te o zamanki adıyla SunOS olarak kullanıma sunulan sistem, 2010 yılında, Oracle tarafından Sun’ın satın alınmasından sonra, Oracle Solaris olarak yeniden adlandırıldı. Bir Oracle.com hesabına sahip olan kullanıcılar, x86 ve SPARC mimarileri için çeşitli ISO kalıplarını, CD veya USB kalıplarını bu sayfadan indirebilirler.

0